Version: Magento 1.5 & 1.5.1

Themen spezifische Übersetzungen werden in Magento üblicherweise in der Datei /app/design/frontend/***BASE ODER DEFAULT***/***DEIN TEMPLATE***/locale/de_DE/tanslate.csv hinterlegt. Dabei muss das Format „***STRING IN TEMPLATE***“,“***ÜBERSETZTER TEXT***“ eingehalten werden. Teilweise sind auch Variablen wie %s enthalten. Die sind am Prozent Zeichen zu erkennen.

Die translate.csv im Template Ordner erhält, beim generieren der Übersetzungen, eine niedrigere Priorität als die standard Übersetzungen. Das nimmt der Möglichkeit Übersetzungstexte mit dem Template zu liefern die bereits in der standard Übersetzungstexten enthalten sind.

Um das zu ändern kann quick and dirty die Datei app/code/core/Mage/Core/Model/Translate.php in Zeile 558 folgendermaßen editiert werden:

    /**
     * Return translated string from text.
     *
     * @param string $text
     * @param string $code
     * @return string
     */
    protected function _getTranslatedString($text, $code)
    {
    	$translated = '';
        if (array_key_exists($text, $this->getData())) {
            $translated = $this->_data[$text];
        }
        elseif (array_key_exists($code, $this->getData())) {
            $translated = $this->_data[$code];
        }
        else {
            $translated = $text;
        }
        return $translated;
    }

Am einfachsten ist es die Methode _getTranslatedString() komplett zu ersetzen. 😉

Eine schönere Möglichkeit ist es die Datei app/code/local/Mage/Core/Model/Translate.php zu erstellen, mit den Inhalten der originalen Datei app/code/core/Mage/Core/Model/Translate.php zu füllen und dabei die Methode _getTranslatedString() mit der oben abgebildeten Methode zu ersetzen.

Wer möchte kann hier den fertigen Magento 1.5.X Translate Bugfix heruntergeladen werden. Der Fix muss gemäß der im Archiv enthaltenen Ordnerstruktur in das Magento root Verzeichnis kopiert werden.

4 Kommentare »