2009-03-23 14 views
2

私は少しウェブを検索しましたが、ExtJS & Spring MVCを実行しているアプリケーションを国際化する具体的な解決策は実際に見つかりませんでした。現在(テスト用に)、JSPの&にJSTLタグを使用して文字列リテラルを割り当てるグローバルJavaScript変数を定義します。ExtJS&Spring MVCのi18n

誰もこの上にクリア/クリーン/フレキシブルなソリューションを用意することに成功しましたか?

本当にありがとうございます。 TIA。

答えて

0

これは、Pylons、Ext JS、およびMakoというテンプレートエンジンを使用している私のアプリケーションで行われます。

私はJavaScriptファイルをテンプレートとして扱っています。私は各クラスを別々のファイルに保ち、定義された関数を使用します。依存関係を処理するためには、require()が必要です。私のサーバーはこれらのテンプレートを処理し、依存関係を処理し、それらを結合して圧縮します。これらのテンプレートはのgettextのような機能する「_」例えば:

window.setTitle("${_('My title')}"); 

を呼び出しを含むこれらのテンプレートは、通常のマコテンプレートであり、 .poファイルを作成するために、gettextのようなユーティリティで前処理することができます。 .po私が使用しているジェネレータ(Babel)は、見つかった文字列の位置を.poファイル内に置きます。これは、文字列の出現場所を知っているので便利です。

0

Spring MVC Ajax example frpm Springを見てください。 JSPビューを使用する場合は、fmtタグライブラリとリソースバンドルを使用できます。 Velocityビューを使用する場合は、Spring documentationで説明されているように、#springMessage( 'my.key')を使用します。

1

は、アプリケーションに変換する必要がある文字列の3種類がありますページの

  1. 静的文字列 - >アダムは、テンプレートを使用するとよいでしょう言ったように。 MVCはこの問題を解決できます。したがって、すべての文字列をdbファイルまたはプロパティファイルに保存します。 Ext JSに送信され

  2. エラーメッセージ文字列 - >ここでは、2つのソリューションを持っている、どちらかあなたはのExt JSは、それらを処理することができますので、これはあなたが翻訳とJSファイルが前にMVCに OR をロードしたことを意味あなたはあなたの応答に翻訳を追加する返信を送付します

  3. 翻訳する必要があるdbテーブルの値、たとえば自動車部品。この場合、キーはcar_partsテーブルに格納され、変換はプロパティファイルまたはdbの変換テーブルに保存されます。

私の現在のアプリケーションでは、MVCレベルで翻訳を実行しています。私は翻訳をdbに保存しています。利点は です。1.翻訳ロジックは、MVCの1つの場所で、分割されません。 2.あなたの翻訳は1か所にあります。翻訳に誤りがある場合は、新しいリリースを作る必要はありません。データベースを更新するだけです。あるいは、アプリケーション管理者が自分でそれを行うためのフォームを提供します。変換テーブルのバックアップが必要です!!!