JavaScriptを使用してアプリケーションのUIを記述するにはGoogle Closure Templateを使用しています。なぜ私はGoogleのクロージャテンプレートを使用しているの詳細な理由のLook at this question。私は多言語にしたい。 --locales
スイッチがあり、プロジェクトhereとhereで提供されているサンプルも見ています。 README_FOR_EXAMPLESではそれはそれは簡単な上 を実行したときSoyToJsSrcCompilerによって生成されたJSファイルはGoogle Closure Templatesは、個別のリソースファイルを使用する単一のJavaScriptコードベースではなく、言語ごとに複数のJavaScriptファイルを生成します。
+ simple_generated_en.js、features_generated_en.js、
simple_generated_x-zz.js、features_generated_x-zz.js ことを書かれているファイル.soyおよびfeatures.soy(ロケールは、共有サンプルディレクトリ 'examples'の翻訳されたXLIFFファイルと上記のコンパイル時のグローバル ファイルと一緒に 'en'および 'x-zz'です)。 features.soy内のいくつかのテンプレートがsimple.soyのテンプレートを呼び出すため、simple.soyとfeatures.soyの両方が必要です。 注: がこれらのファイルを生成するAntターゲット(およびコマンドライン引数)の例については、最上位の 'build.xml'内のtarget 'js-features-example'を参照してください。
私が期待したのは、テンプレート関数が呼び出される前に実行時に提供されたオプションに基づいて、適切なロケールファイルから目的の文字列を使用する1つのJavaScriptコードベースを生成することでした。クロージャテンプレートで可能ですか?
辞書オブジェクトに関するドキュメントにリンクしていただけますか? – IsmailS
OK私はそれを得た。プレーンJavaScriptオブジェクトが行います。問題は今、 'soy。$$ escapeHtml(opt_data.title)'を使ってHTMLをエスケープしていますが、私にとっては文字列にHTMLビットがある可能性があります。それのための任意のアイデア? – IsmailS
Al-right!私もそれを見つけました。私のテンプレートに '{$ dict.content | noAutoescape}'があると、 'content'にHTMLを渡すことができ、エスケープされません。つまり' <'は' < 'に変換されません。 – IsmailS