4

joomla3.1 カスタム コンポーネントを多言語プラットフォームに対応させるための最善の回避策は何ですか? つまり、サイトを 3 つの言語で実行しているため、コンポーネントはコンポーネントの翻訳されたアイテムを表示できるはずです。

realestates

  --realestate(items) - en-EN
  --realestate(items) - de-DE
  --realestate(items) - cn-CN

translationクエリがこれを考慮に入れるたびに、翻訳言語コードを保持する列でアイテムテーブルを拡張することは良い回避策でしょう

select * item from realestets where translation = 'en-EN'

またはこれを行うためのより良い方法はありますか?

4

1 に答える 1

3

languageコンポーネントを多言語化するには、Web サイトの管理者側と公開側の両方のフォルダーに保存されている言語ファイルを定義する必要があります。これらの言語ファイルは.ini、含める言語ごとに定義する必要があるファイルです。したがって、英語とオランダ語を行う場合、.iniファイルは次の場所にあります。

/language/en-GB/en-GB.com_yourcom.ini

/language/nl-NL/nl-NL.com_yourcom.ini

次に、すべての文字列を次のようにクラスのトランスレーターメソッド_()(はい、アンダースコアです) に渡す必要があります。JText

JText::_("COM_YOURCOM_STRING")whereCOM_YOURCOM_STRINGは、コンポーネント内の単なる文字列です。

翻訳する文字列が大きなテキスト ブロックである場合は、短い文字列の説明を使用することをお勧めします。

編集:あなたの特定のケースtranslation_idでは、アイテムが保存されているテーブルに列を追加します。次に、翻訳が保存される 3 (または 4) 列の新しいテーブルを作成します。

id, item_id, (language), translation

コンポーネント xml に、アイテムの言語を定義するドロップダウンを生成するエントリを追加できます。デフォルトの言語以外の場合は、翻訳テーブルに新しいエントリを作成する必要があります。

また、Joomla! の方法を確認することもお勧めします。内部で言語を管理し、Joomfish の仕組みも管理します!

良いリソース:

http://docs.joomla.org/Embedding_translatable_strings_in_the_template

http://docs.joomla.org/Specification_of_language_files

http://docs.joomla.org/Language_Guidelines_for_3rd_Party_Extensions

于 2013-09-23T22:40:38.163 に答える