Übersetzungen von Anwendungen verwalten
Kommentare

Schreiben eigener Analyzer
Da die Datenquellen in ihrer Struktur vielfältig sein können, ist es möglich, eigene Analyzer zu verwirklichen. Sie werden gegen das Interface Msd_Import_Interface programmiert

Schreiben eigener Analyzer

Da die Datenquellen in ihrer Struktur vielfältig sein können, ist es möglich, eigene Analyzer zu verwirklichen. Sie werden gegen das Interface Msd_Import_Interface programmiert und müssen im Ordner modules/library/Import gespeichert werden. Das Interface verlangt lediglich zwei Methoden. Die Methode getInfo() rendert eine .phtml-Datei, die auf der Importseite angezeigt wird, sobald man auf das Info-Icon klickt. Sie soll dem Anwender Sinn und Zweck des Analyzers erklären. Das zugehörige View-Skript wird im Unterordner modules/library/Import/views abgelegt.

Aufwändiger ist die Methode extract($data) . Sie erhält den Inhalt der zuvor befüllten Textbox als String und hat die Aufgabe, diesen in Key-Value-Paare zu zerlegen. Hier wird die Logik platziert, anhand derer die Daten aufgeteilt werden. Letztendlich liefert sie ein assoziatives Array zurück, bei dem die Indexe die Keys repräsentieren und die Werte die Übersetzungen. In Listing 1 finden Sie exemplarisch eine Umsetzung dieser Methode für den CSV-Analyzer. Er wurde von Steffen Hartmann (Internet Development, Steinigke Showtechnic GmbH) entwickelt.

Listing 1
public function extract($data)
{
    $this->_data = $data;
    $this->_extractedData = array();
    $this->_lines = explode("n", $this->_data);
    for ($i = 0; $i _lines); $i++) {
        $currentLine = explode($this->_separator, $this->_lines[$i], 2);

        $currentKey = $currentLine[0];
        $currentValue = trim($currentLine[1]);
        $dataLength = strlen($currentValue);

        if (($currentValue{0} == "'" && $currentValue{$dataLength -1} == "'")
            || ($currentValue{0} == """ && $currentValue{$dataLength -1} == """)) {
            $currentValue = substr($currentValue, 1, $dataLength - 2);
        }

        $this->_extractedData[$currentKey] = $currentValue;
    }
    return $this->_extractedData;
}

Mit der Speicherung der beiden Dateien ist die Einbindung bereits abgeschlossen. OTC erkennt den Analyzer automatisch und bietet ihn in der Auswahlbox an. Wir möchten OTC auf diese Weise für möglichst viele Anwendungsfälle öffnen.

Stand und Zukunft

oTranCe befindet sich noch in einem frühen Stadium, eine zugehörige Website [4] gerade im Aufbau. In Kürze wird die erste Betaversion erscheinen, der hoffentlich schnell der erste Release Candidate folgen wird. Bei der Umsetzung und mit jedem Gespräch tauchen natürlich immer wieder neue Ideen auf. In der ersten Version umfasst der Funktionsumfang den Import von Dateien, die Möglichkeit eigene Analyzer zu schreiben und ein fein justierbares Rechtesystem. Dies dürfte die häufigsten Anwendungsgebiete abdecken. In einer der nächsten Versionen möchten wir den Export ebenso flexibel erweiterbar gestalten. Denkbar ist auch die Unterstützung von weiteren Adaptern, wie z. B. gettext oder TMX. Charmant wäre auch ein direkter Im-/Export von/in nicht Datei basierte Quellen, wie z. B. eine Datenbank. Es bestehen noch viele Möglichkeiten der Erweiterung. Wenn Sie das Projekt verfolgen oder sich gar beteiligen möchten, besuchen Sie gerne die Projektseite. Happy Translating!

Daniel Schlichtholz (admin [ätt] mysqldumper.de) ist Begründer des 2003 gestarteten Open-Source-Projekts MySQLDumper. Mit mehr als 5 Jahren Erfahrung in der professionellen Erstellung von webbasierten Anwendungen kann er auf zahlreiche Projekte zurückblicken. Momentan arbeitet er als selbstständiger Auftragsprogrammierer mit dem Schwerpunkt Datenbankanbindung und Schnittstellen.
Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -