1

GWT のドキュメントによると、GWT アプリを国際化する方法は 2 つあります。1 つはタグを介して HTML 自体で言語を宣言する (ハードコーディング) ことmetaで、もう 1 つは URL でクエリ パラメータを使用することです (のように&locale=de)。

私の webapp は動的で、さまざまなロケールのさまざまなユーザーが使用するため、最初のオプションは実行できません。2 番目のオプションは問題ありませんが、どういうわけか、クエリ パラメータを URL に追加するのは私の面倒です。$("head).append("<meta name='gwt:property' content='locale=de'>");で最初のことのようなことをして動的にしようとしましたonModuleLoadが、機能しません。

私のアプリは実際にはリダイレクトになり、他の Web ページには のようなリダイレクトが含まれますfoo.com&locale=de。それに基づいて、必要なロケールをうまくロードします。しかしその後、最初の読み込みで設定できる Cookie からロケール情報を取得して、URL にクエリ パラメータを表示せずに再度読み込みたいと思います。そうすることは可能ですか?

4

2 に答える 2

3

(の)モデルにパラメータを追加し、(のController)クライアントでそれを取得すること*.jspはあなたのために働きますか?

<meta name="gwt:property" content="locale=${locale}">  

次に、ページを更新して、コントローラーのロケール値をリセットする必要があります。ページにメタタグコードを追加しますhtml/jsp。ページを読み込む前にメタタグコードが含まれている必要があります。

onModuleLoadブラウザウィンドウにすでにロードされているコードで動作するため、metaロード後に追加することはできません。

于 2013-03-15T00:27:45.797 に答える
3

を使用する 3 番目のオプションがありますcookie

リファレンス -動的に生成されるコンテンツの GWT 国際化

ユーザーがロケールを選択する前に、Cookie にロケール値を設定するか、Cookie のデフォルト値を設定してください。私たちの場合、ユーザーはログイン前に言語を選択し (ここでユーザーの Cookie ロケール値を設定します)、ロード時にこれを gwt アプリケーションに読み込みます。

于 2013-03-15T03:32:20.863 に答える