私のアプリケーションはいくつかの部分で構成されています。1 つの小さな GWT の場所を除いて、すべてのアプリケーションで URL を変更することにより、ユーザーがロケールを変更できないようにしたいと考えています。その場所が正しい言語で読み込まれるように、URL でその場所にロケールを提供する必要があります。
私に何ができる?
次のオプションが表示されます。
1) その場所から別のモジュールを作成し、そのモジュールの xml 設定ファイルでロケールのソースとして queryparam を使用できるようにします。私が理解している限り、 <set-configuration-property name="locale.searchorder" value="queryparam,cookie"/>
おそらくうまくいくだろうが、そのような小さなタスクには少し難しいようなものを書き留める必要があります。
2) 別のオプションは、必要な機能を手動で実装することです。私は次のコードを書きました:
String languageCode = Window.Location.getParameter("lang");
Cookies.setCookie(COOKIE_NAME, languageCode, new Date(System.currentTimeMillis() * 1000 * 3600 * 24 * 365 * 100));
Scheduler.get().scheduleDeferred(new ScheduledCommand()
{
@Override
public void execute()
{
Window.Location.reload();
}
});
それは機能しますが、問題は遅延呼び出しにあります。それを使用すると、ページが読み込まれ、リロード信号が来て、ページが表示された後にリロードが開始されます。ユーザーは奇妙な点滅を観察します。遅延呼び出しを使用しないと、Cookie が設定されないため、理由がわかりません (これについて説明していただけますか? )。
では、このタスクをどのように解決しますか?