GWTのサーバー側の「ロケール」値(国際化アプリの)にアクセスする方法

StackOverflow https://stackoverflow.com//questions/25009115

  •  20-12-2019
  •  | 
  •  

質問

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()メソッドを使用して、実際のコードを文字列として取得します。

サーバー側のロケール情報の保存方法はわかりませんか?サーブレットがユーザー間で共有されていることに気にしてください、あなたはセッションにローカルを添付するか、またはすべての呼び出しを渡す必要があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top