Lost in Translation

Erstellt am 02. Juli 2012

Lost in Translation

Magento-Lost-in-Translation

Nachdem es immer wieder Probleme mit den Magento Übersetzungsdateien gibt, haben wir uns vorgenommen, in diesem Artikel das Konzept der Übersetzungen zu erklären. Ein Blick in die Core-Klasse Mage_Core_Model_Translate offenbart folgenden Code:

  1. foreach ($this->getModulesConfig() as $moduleName=>$info) {
  2.    $info = $info->asArray();
  3.    /* loads the translation file configured in modules config.xml */
  4.    $this->_loadModuleTranslation($moduleName, $info['files'], $forceReload);
  5. }
  6.  
  7. /* loads the themes translation file  translate.csv */
  8. $this->_loadThemeTranslation($forceReload);
  9.  
  10. /* loads the inline translation from database */
  11. $this->_loadDbTranslation($forceReload);

Zur Erklärung:

Alle drei Methoden befüllen ein und dasselbe Array mit ihren jeweiligen Übersetzungen. Ein Eintrag aus einer CSV-Datei z.B. “Product Name”, “Produkt Name” wird zu:

array("Product Name" => "Produkt Name")

Nachdem ein Schlüssel in einem assoziativen Array nur einmal vorhanden sein darf, überschreiben sich die Übersetzungen. D.h. die Übersetzungen aus dem Theme (translate.csv) überschreiben die modulspezifische Übersetzung (siehe config.xml <translate>), die Übersetzungen aus der DB (Inline Translations) überschreiben wiederum die Übersetzungen aus dem Theme. Das bedeutet also nichts anderes, als dass eine DB-Inline-Translation Priorität vor der Theme translate.csv hat, die translate.csv eine höhere Priorität als die CSV-Datei eines Moduls hat. 

Funktioniert das Übersetzen immer noch nicht, sollte dringend de Developer Mode ausgeschaltet werden, denn folgender Code verhindert die korrekte Funktion der Übersetzungen. Ziemlich fies so klangheimlich…

  1. /**
  2. * Not allow use translation not related to module
  3. */
  4. if (Mage::getIsDeveloperMode()) {
  5.      unset($this->_data[$key]);
  6. }
  7.  


Kommentare

Gepostet am 22. Juli 2012 um 08:59 Uhr
Danke für die Erklärung. Die Problematik hat mir schon so manches Mal Kopfschmerzen bereitet.

Kommentar schreiben

* - Pflichtangabe

Zertifizierungen

  • TYPO3 Certified Integrator
  • Magento Certified Developer
  • Magento Certified Frontend Developer
Kontakt

Cookies helfen uns dabei unsere Webinhalte zu verbessern und Ihnen die bestmögliche Erfahrung zu bieten. Mit der Nutzung der Webseite akzeptieren Sie die Verwendung von Cookies.