LocaleInfoクラスとgetCurrentLocale()メソッドを使用して、現在のロケールをクライアントで取得しようとしました。しかし、クライアントマシン上でどのような地域設定とロケール設定をしても、常にデフォルトロケールの値が返されます。LocaleInfoを使用してGWTで現在のロケールを取得する方法
DateクラスのtoLocaleString()メソッドはロケール固有の文字列を返しますが、LocaleInfoはシステムLocaleを取得できないようです。
LocaleInfoクラスとgetCurrentLocale()メソッドを使用して、現在のロケールをクライアントで取得しようとしました。しかし、クライアントマシン上でどのような地域設定とロケール設定をしても、常にデフォルトロケールの値が返されます。LocaleInfoを使用してGWTで現在のロケールを取得する方法
DateクラスのtoLocaleString()メソッドはロケール固有の文字列を返しますが、LocaleInfoはシステムLocaleを取得できないようです。
GWTのロケールは、システム/ブラウザ設定から自動的に取得されません。 the GET locale documentationあたりなどのロケールが実行時に使用するためには、次のいずれかの方法で設定することができます。
locale
リクエストパラメータを指定します。私。ホストページでgwt:property
メタタグを含むことでhttp://www.myapplication.com/?locale=es
:
<meta name="gwt:property" content="locale=es" />
これは、本番アプリケーションのための好ましい方法です。ホストページでは、ユーザーがローカルを設定できるようにする方法や、Accept-Language
request headerに基づいて優先ロケールを検出する方法など、さまざまな方法でユーザーのロケールを判断できます。
GWTでもしようとしないので、それは正確にJavaScriptでユーザーのロケールを取得することはほとんど不可能です[1]。
LocaleInfo
はアプリにコンパイルされたロケールの情報を返します。つまり、*.gwt.xml
に<extend-property name="locale" ... />
を使用して追加したロケールの1つです。
ことがないように、[1]だけでなく、最近のバージョンでは、それは(ブラウザのコンパイル時ロケールを使用して)しようとしないが、唯一のコンパイルされたロケールのいずれかを選択するようにhttps://developers.google.com/web-toolkit/doc/latest/DevGuideI18nLocale
を参照してください。 LocaleInfo
の動作に何か変更してください。
私はロケールに日付と時刻のフォーマットを設定したいだけなので、JavascriptのtoLocaleは信頼できると思いました。私はサポートされているロケールのリストをモジュールファイルに追加し、コンパイル時にブラウザが正しいロケールを選択することを願っています。 私は、アプリケーションを実行するたびにロケール自体を選択するようにユーザーを想像することはできませんでした。 – snowstreams
GWTアプリでロケールを自動検出するには、ベースのindex.htmlファイル(「nocache.js」スクリプトを含むファイル)の名前をindex.jspに変更し、セクションに次の行を追加します。
<meta name="gwt:property" content="locale=<%=request.getLocale()%>">
実際に、可能なロケールの一覧を入手できる場所はありますか? [CldrLocales](http://code.google.com/p/google-web-toolkit/source/browse/releases/2.0/user/src/com/google/gwt/i18n/CldrLocales.gwt.xml)作業? – snowstreams