私のアプリケーションでは、動的なローカリゼーションを使用する必要があるため、Constantsインターフェイスを使用することはできません。私はしばらくの間Constantsを使っていましたが、コンパイルせずにテキストを変更する必要がありましたので、他の方法で見つける必要がありました。定数のようなGWTインターフェイス
だから私は現在辞書を使用しています。つまり、今ではUiBinderでテキストを使用したいときは、引数のないメソッドしか使用できません。だから私はクラス "StringIdentifiers"を作成しました。ここではMyConstantsで以前と同じメソッドを使用していましたが、ここで指定されたStringを返すメソッドごとに本文を指定する必要があります。
だから、例えば私が持っている:
Dictionary locale = Dictionary.getDictionary("myJsObjectWithStrings");
//and then the methods for returning the actual strings from the JS object
String loading(){
return locale.get("loading");
}
を私は残りの部分は、常にではStringパラメータとして表示されるメソッドの名前と同じであるためのみ
String loading();
する方法をしたいと思いますget()メソッドJSオブジェクトに文字列がないときに、デフォルト値を返す可能性もあります。しかし、私はそれをどうやって行うのか分かりません。私はConstantsインターフェイスをチェックしましたが、そこのコードは実際には分かりません。誰か私にそのようなことを実装する方法の例を教えてくださいできますか?
なぜあなたは動的であるのですか?ページの再読み込みは受け入れ可能ですか? –
はい、ユーザーはログイン画面で言語を変更し、選択した言語に対応する別のURL(http://page.com/index.html?locale=ja)でページをリロードします。 UiBinderテンプレートを変更してもページが読み込まれないので、私はそれを好きです。私の質問は、各文字列のメソッドシグネチャ(Constantsなど)だけを書くことができます。 –
ページをリロードすると、なぜi18n文字列の古典的なGWTメカニズムを使用できないのですか? –