メッセージのローカライズ

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'
    });
}