メッセージのローカライズ
Ext.jsのGridのツールバーだとか、バリデーションのメッセージなどローカライズする方法。
Tutorial:Localizing Ext
を参考に。
Extクラス
Extに含まれるクラスについては、"source\locale"にローカライズ用のJavaScriptファイルがあるのでこれをHTMLのヘッダで読込みます。とりあえず、日本語にする場合には、"ext-lang-ja.js"を読み込んでおきます。多言語対応のアプリケーションであればlocaleを取得して対応する言語のJavaScriptファイルを読込みます。
言語ごとファイルの読み込みは、extのメインのJavaScriptファイルを読込んだあとで。
どんなことをやっているのかと思ってJavaScriptファイルを見てみると、
if(Ext.form.TextField){ Ext.apply(Ext.form.TextField.prototype, { minLengthText : "このフィールドの最小値は {0} です。", maxLengthText : "このフィールドの最大値は {0} です。", blankText : "必須項目です。", regexText : "", emptyText : null }); }
こんな感じで、各クラスのプロトタイプのメッセージをオーバーライドしてます。
アプリケーション
自前のアプリケーションのメッセージをローカライズする方法も同じで、メッセージを各クラスのパブリック変数で宣言しておき、言語ごとのJavaScriptファイルでプロトタイプのメッセージをオーバーライドします。
チュートリアルでは、以下の様にExt.override()を使っています。
if(Tutorial.LocalizationWin) { Ext.override(Tutorial.LocalizationWin, { titleText:'Príklad lokalizácie' ,selectLangText:'Zvoľ jazyk' ,textFieldText:'Textové pole' ,dateFieldText:'Dátumové pole' }); }