新しい文字列のテーマ固有の翻訳を追加する適切な方法は何ですか?
-
16-10-2019 - |
質問
新しいテンプレートを作成しており、まだ定義されていない新しいテキストがあります。
いくつかを追加する前にそれらが定義される場合
"Mage_TheModule::Foo";"Fuh"
に translate.csv
テーマで。
新しい翻訳に対処する良い方法は何ですか?
ただに追加されますか translate.csv
モジュールコードなしで明らかに?
それとも、翻訳のためだけに独自のモジュールを作成する方が良い /必要ですか?
解決
ベストプラクティスは、テーマの意図された使用に依存します。それは、配布され再利用されるテーマですか、それともプロジェクト固有のテーマですか?
1.再利用を目的とした分散テーマ
使用を避ける translate.csv
この場合、まったく。エンドユーザーが自分のものを追加するとすぐに translate.csv
彼の子供のテーマには、これはあなたのものを無効にします(通常のフォールバックメカニズムが適用されます)。元のファイルからすべてをコピーし、変更を追跡する必要があります。
代わりに、テーマモジュールを使用します。ほとんどのテーマには、主にテーマ固有のブロックを含む1つ以上のモジュールだけでなく、新しい翻訳も含まれています。次に、使用します Mage::helper('yourtheme')->__('your string')
翻訳のために:
- サードパーティモジュールとの競合から安全です
- ユーザーは、この特定の翻訳をオーバーライドできます
Your_Theme::your string
の 彼らの translate.csv
2.プロジェクト固有のテーマ
プロジェクト固有のテーマの翻訳については、 translate.csv
発明されたので、私はそれを使用します。
モジュールスコープは、それぞれのCSVファイルの既存の翻訳に直接接続されていないことを知っておく必要があります。そのため、新しいモジュールを追加したり、モジュールCSVファイルを変更したりせずに、既存の変換スコープを使用できます。
たとえば、カスタム翻訳を追加した場合、 製品ページで使用されます 間に Mage_Catalog
ブロック、翻訳は次のようになります:
"Mage_Catalog::New translation","New translation"
ここで特定の翻訳の範囲を見つける方法の詳細: 翻訳と権威の階層
(またはあなたは私を使うことができます TranslationHints 拡大)
他のヒント
私の好みの方法 - 特にモジュール固有の翻訳が必要な場合、またはモジュールを配布する場合は、モジュール固有のCSVファイル(モジュールのconfig.xmlで定義)を作成し、 app/locale
それぞれの翻訳ディレクトリ。 「テーマ」は、ロケール言語設定のために使用するものを把握します。
それがテーマ固有の場合、 しないでください translate.csvでモジュールコードを使用します。私 個人的にはしないでください like like like.csv まったく - しかし、私はそれをインライン翻訳よりも好みます - そして.
Translate.csvは、テーマに微調整(ショッピングバッグ対ショッピングカートなど)をテーマにしなければならない製品のエンドユーザー向けである必要があります。
編集:2年後、私がかつて持っていた古い信念を修正しました。
それらがテーマ固有の場合は、それらをに追加する必要があります translate.csv
.
あなたのウェブサイトが英語のみである場合、翻訳を無視することもできます。
あなたのウェブサイトが他の言語であり、テキストが1つ以上のモジュールに応じて意味がある場合、その特定のモジュールの翻訳ファイルにそれらのテキストを追加する必要があります。 (ただし、英語ファイルを変更しないでください)。
私は通常、2番目のアプローチを取ります。なぜなら、ウェブサイトの次の「フェイスリフト」では、 translate.csv
テーマのファイル。
テキストの翻訳のみを処理する別の拡張機能を作成することもできますが、そうする場合は次のように各テキストを呼び出す必要があります。 Mage::helper('myhelper')->__('Some text')
. 。これは内部使用では問題ありませんが、テンプレートを再利用する場合は、拡張機能をあるプロジェクトから別のプロジェクトに移行する必要があります。
あなたの質問は修辞的で曖昧です。
私のアプローチは、あなたがあなたの質問で説明したとおりです。翻訳がモジュール固有の場合はプレーンになります "text":"text"
に translate.csv
あなたのテーマの。モジュールの依存関係を除外し、翻訳でテーマを再配布できるようにします。