Frage

Wir erstellen eine neue Vorlage und haben einen neuen Text, der noch nirgendwo definiert ist.

Wenn sie definiert würden, bevor wir einige hinzufügen würden

"Mage_TheModule::Foo";"Fuh"

zum translate.csv im Thema.

Was ist ein guter Weg, um mit neuen Übersetzungen umzugehen?

Sollen sie nur zum hinzugefügt werden translate.csv Einfach ohne Modulcode?

Oder ist es besser / erforderlich, ein eigenes Modul nur für die Übersetzungen zu erstellen?

War es hilfreich?

Lösung

Die beste Praxis hängt von der beabsichtigten Verwendung des Themas ab: Ist es ein Thema, das verteilt und wiederverwendet wird oder ist es ein projektspezifisches Thema?

1. Verteilter Thema, die zur Wiederverwendung bestimmt ist

Vermeide das Benutzen translate.csv überhaupt in diesem Fall. Sobald der Endbenutzer seinen eigenen hinzufügt translate.csv Für sein Kinderthema wird dies Ihre außer Kraft setzen (der übliche Fallback -Mechanismus gilt). Sie müssten alles aus der Originaldatei kopieren und Änderungen im Auge behalten.

Verwenden Sie stattdessen ein Themenmodul. Die meisten Themen werden mit einem oder mehreren Modulen geliefert, die hauptsächlich Themenspezifische Blöcke, aber auch neue Übersetzungen enthalten. Dann benutze Mage::helper('yourtheme')->__('your string') für Übersetzungen und:

  1. Sie sind vor Konflikten mit Modulen von Drittanbietern sicher
  2. Benutzer können diese spezifische Übersetzung mit überschreiben Your_Theme::your string in ihr translate.csv

2. Projektspezifisches Thema

Für Übersetzungen in einem projektspezifischen Thema, translate.csv wurde erfunden, also würde ich es benutzen.

Sie sollten wissen, dass das Modulbereich nicht direkt mit vorhandenen Übersetzungen in den jeweiligen CSV -Dateien verbunden ist. Sie können also einen vorhandenen Übersetzungsbereich verwenden, ohne ein neues Modul hinzuzufügen oder Modul -CSV -Dateien zu ändern.

Zum Beispiel, wenn ich benutzerdefinierte Übersetzungen hinzufüge, das heißt verwendet auf der Produktseite innerhalb eines Mage_Catalog Block, die Übersetzung sieht so aus:

"Mage_Catalog::New translation","New translation"

Mehr dazu, wie Sie hier den Umfang einer bestimmten Übersetzung herausfinden können: Übersetzungen und Hierachie der Autorität

(Oder du könntest meine benutzen Übersetzungen Verlängerung)

Andere Tipps

Meine bevorzugte Methode - insbesondere wenn Sie modulspezifische Übersetzungen benötigen oder das Modul verteilen möchten - besteht darin, modulspezifische CSV -Dateien (in der Konfiguration Ihres Moduls definiert) zu erstellen und sie in die Inszenierung zu app/localeDie jeweiligen Übersetzungsverzeichnisse. Ihr "Thema" wird herausfinden, welche aufgrund der Einstellungen für die Lokale der Gebietsschema verwendet werden soll.

Wenn es themenspezifisch ist, nicht Verwenden Sie den Modulcode in translate.csv. ich Persönlich nicht wie translate.csv überhaupt - aber ich bevorzuge es der Inline -Übersetzung - und.

translate.csv sollte für Endbenutzer Ihres Produkts sein, die Änderungen (z. B. Einkaufstasche gegen Einkaufswagen) an Ihrem Thema vornehmen müssen.

Bearbeiten: Zwei Jahre später, um einen alten Glauben zu korrigieren, den ich einmal gehalten habe.

Wenn sie themenspezifisch sind, sollten Sie sie hinzufügen translate.csv.
Wenn Ihre Website nur auf Englisch ist, können Sie sogar die Übersetzung ignorieren.
Wenn sich Ihre Website in einer anderen Sprache befindet und die Texte je nach einem oder mehreren Modulen eine Bedeutung haben, sollten Sie diese Texte in der Übersetzungsdatei dieses spezifischen Moduls hinzufügen. (Aber ändern Sie die englischen Dateien nicht).
Normalerweise verfolge ich den zweiten Ansatz, denn beim nächsten "Facelift" der Website muss ich das nicht duplizieren translate.csv Datei des Themas.
Sie können auch eine separate Erweiterung erstellen, die nur die Textübersetzung verarbeitet. Wenn Sie jedoch jeden Text wie folgt aufrufen müssen: Mage::helper('myhelper')->__('Some text'). Dies ist für den internen Gebrauch in Ordnung. Wenn Sie jedoch die Vorlagen wiederverwenden möchten, müssen Sie die Erweiterung auch von einem Projekt zu einem anderen migrieren.

Ihre Frage ist rhetorisch und gleichzeitig vage.

Mein Ansatz ist genau so, wie Sie in Ihrer Frage beschrieben haben. Wenn die Übersetzungen nicht modulspezifisch sind "text":"text" in die translate.csv von deinem Thema. Es wird Modulabhängigkeiten ausschließen und Ihr Thema auch mit Übersetzungen erneut verteilt.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit magento.stackexchange
scroll top