Webで少し検索しましたが、ExtJSとSpringMVCを実行しているアプリケーションを国際化するための具体的なソリューションは実際には見つかりませんでした。現在(テスト用)、JSPでグローバルJavaScript変数を定義し、JSTLタグを使用して文字列リテラルを割り当てています。
誰かがこれについて明確/クリーン/柔軟な解決策を考え出すことに成功しましたか?
どんな考えでも本当にありがたいです。TIA。
Webで少し検索しましたが、ExtJSとSpringMVCを実行しているアプリケーションを国際化するための具体的なソリューションは実際には見つかりませんでした。現在(テスト用)、JSPでグローバルJavaScript変数を定義し、JSTLタグを使用して文字列リテラルを割り当てています。
誰かがこれについて明確/クリーン/柔軟な解決策を考え出すことに成功しましたか?
どんな考えでも本当にありがたいです。TIA。
アプリケーションで翻訳する必要がある文字列は 3 種類あります
あなたのページの静的文字列 - >アダムがテンプレートを使用することは良い考えだと言ったように。MVC は問題を解決できます。したがって、すべての文字列を db またはプロパティ ファイルに保持します。
Ext JS に送信されるエラー メッセージ文字列 -> ここでは 2 つの解決策があります。Ext JS に処理を許可するか、つまり、翻訳が読み込まれた js ファイルを持っているか、返信を送信する前に MVC にあなたの応答の翻訳
車の部品など、変換する必要がある db テーブルの値。この場合、キーを car_parts テーブルに保持し、翻訳をプロパティ ファイルまたは db の変換テーブルに保持します。
現在のアプリでは、MVC レベルで翻訳を実行し、翻訳をデータベースに保持しています。利点は 1. 変換ロジックが MVC の 1 つの場所であり、分割されていないことです。2. 翻訳は 1 か所にあり、翻訳でエラーが発生した場合はいつでも、新しいリリースを作成する必要はありません。データベースを更新するか、アプリケーション管理者にフォームを提供して自分で翻訳するだけです。変換テーブルのバックアップが必要です!!!
これは、Pylons、Ext JS、およびMakoと呼ばれるテンプレートエンジンを使用している私のアプリケーションで行われる方法です。
JavaScriptファイルをテンプレートとして扱っています。私は各クラスを別々のファイルに保持し、依存関係を処理するために私が定義した関数require()を使用します。私のサーバーはこれらのテンプレートを処理し、依存関係を処理し、それらを結合して圧縮します。これらのテンプレートには、gettextのような関数「_」の呼び出しが含まれています。例:
window.setTitle("${_('My title')}");
これらのテンプレートは通常のMakoテンプレートであり、gettextのようなユーティリティで前処理して.poファイルを作成できます。私が使用している.poジェネレーター(Babel)は、見つかった文字列の位置をコメントとして.poファイル内に配置します。これは、文字列がどこに表示されたかがわかっているため、便利です。
Spring MVC Ajax の例frpm Springを見てください。JSP ビューを使用する場合は、fmt タグ ライブラリとリソース バンドルを使用できます。Velocity ビューを使用する場合は、Springドキュメントで説明されているように #springMessage('my.key') を使用します。