GWTのサーバー側の「ロケール」値(国際化アプリの)にアクセスする方法
質問
OK、私は国際化をサポートするアプリを開発しています。私は私のアプリのためにStatic String Internationalization
メソッドを使っています。
私のアプリは英語とドイツ語のバージョンを持つことができると言いましょう。
-1st、私はすべてのメッセージテキストが英語で書かれているMyMessages.java
を作成しました。その後、DEARM
MyMessages_ge
とほぼ同じであるMyMessages.java
を作成しました。
-2nd、MyProject.html
では、<meta http-equiv="content-type" content="text/html; charset=UTF-8">
があり、すべての言語をサポートすることを確認します。
-3RD、MyProject.gwt.xml
I <extend-property name="locale" values="ge"/>
今すぐ私はEclipse http://localhost:8888/MyProject.html?gwt.codesvr=127.0.0.1:9997&locale=ge
でアプリを実行します&私が予想されるようにすべてのドイツ語のテキストを表示します。
しかし、私は私のアプリがドイツ語のAt Server Side
であることを知る必要があります。つまり、GWT GUIがドイツ語版であるときはいつでも、サーバーが英語であればlanguageCode=1
がDefault言語を使用することを知っています
これは私がしたことです。 languageCode=0
@Override
public void prepareFromRequest(PlaceRequest request){
super.prepareFromRequest(request);
String locale=request.getParameter("locale", "");
setLanguage(locale); // servercall back here
}
.
だから私のアプリが初めて実行されると、GWTアプリがどの言語を使用しているかをサーバーに知らせる
@Override
public SetLanguageResult execute(SetLanguage action, ExecutionContext context)
throws ActionException {
String locale=action.getLocale();
if("ge".equals(locale)){
Data.languageType=1;
}
return null;
}
.
しかし、それは仕事には思われません
OrderPageにアクセスすると、URLはHeaderPresenter.java
のフォームに含まれていません。
ここで何か誤解したと思います。私はかなり混乱しています。
それでは、GWTのサーバ側の「ロケール」値(国際化アプリの)にアクセスする方法は?
解決
GWT SDKのロケール情報を処理するためのユーティリティクラスがあります。URLパラメータを自分で解析する必要はありません。 localeinfo.getCurrentLocale()次に getLocalEname()メソッドを使用して、実際のコードを文字列として取得します。
サーバー側のロケール情報の保存方法はわかりませんか?サーブレットがユーザー間で共有されていることに気にしてください、あなたはセッションにローカルを添付するか、またはすべての呼び出しを渡す必要があります。