5

私は現在、Zend Framework で開発するかなり大規模なプロジェクトの計画段階にあります。私が直面している問題の 1 つは、顧客がコンテンツだけでなくインターフェイスも翻訳したいということです。私は現在 gettext と poedit を使用して言語ファイルを管理していますが、サイトへの FTP アクセスがないため、これは顧客のオプションではありません。

したがって、顧客がインターフェースの独自の翻訳を管理できるように、フロントエンドにインターフェースを備えた mysql バックエンドを考えています。ただし、Zend_Translate 用の mysql アダプターはまだありません。

では、Zend_Translate 用のアダプタ スクリプトを作成して、mysql テーブルで動作できるようになった人はいますか? または、mysql を使用することに反対する意見や、この問題に対する他の解決策はありますか?

4

3 に答える 3

7

この問題はさまざまな方法で解決できます。

Zend_Translate_Adapter を拡張して独自のものを作成します。すべての新しいアダプターは、ソースから翻訳を取得することのみを担当します。つまり、データベースから翻訳を取得するだけで済みます。他のアダプターを見て、それらがどのように実装されているかを確認してください。

データベースからデータを取得して Zend_Translate_Adapter_Array に渡します

Zend_Translate_Adapter_Csv または Ini を使用します。翻訳を読んだり書いたりすることが増えるため、このソリューションはデータベースへのクエリの数を削減します。クライアントが新しい言語を追加したり、既存の言語を変更したりした場合は、データベースではなくファイルに書き込むだけです。

データベース アダプタを使用することにした場合は、何らかの形で翻訳に「タグを付ける」ことができるので、ホームページではホームページの翻訳のみを取得し、連絡先ページでは連絡先ページの翻訳のみを取得します...

チッ!

于 2010-06-08T08:42:29.687 に答える
3

デフォルトの Zend アダプターはキャッシングを適切に処理するので、データベースが本当に必要でない限り、私はそれらに固執します。

翻訳データをデータベースに保存する代わりに、翻訳ファイル (po テンプレートなど) を直接操作することができます。これは、新しい翻訳文字列を追加 (ファイルに追加) する必要がある場合に最適です。

Zend_Translate のオプションを使用して、翻訳されていないメッセージを(ファイルまたはデータベースを含む任意のログ アダプタに) ログに記録し、ログを処理したり、保存された文字列を翻訳するリスナーを作成したりすることもできます。

于 2010-06-08T11:27:16.180 に答える
0

方法は次のとおりです:http://cloetensbrecht.be/zend_translate_mysql.html

于 2010-11-20T19:13:51.590 に答える