4

LocaleInfoクラスとメソッドgetCurrentLocale()を使用して、クライアントの現在のロケールを取得しようとしました。ただし、クライアントマシンでの地域およびロケールの設定に関係なく、常にデフォルトのロケールの値が返されます。

DateクラスのtoLocaleString()メソッドはロケール固有の文字列を返しますが、LocaleInfoはシステムのロケールを取得できないようです。

4

3 に答える 3

6

GWT アプリでロケールを自動検出するには、ベースとなる index.html ファイル (「nocache.js」スクリプトを含むファイル) の名前を index.jsp に変更し、セクションに次の行を追加します。

<meta name="gwt:property" content="locale=<%=request.getLocale()%>">
于 2012-06-08T16:05:11.560 に答える
3

GWTのロケールは、システム/ブラウザー設定から自動的に取得されません。GETロケールのドキュメントに従って、実行時に使用するロケールは、次の2つの方法のいずれかで設定できます。

  1. localeアプリケーションのURLでリクエストパラメータを指定する。つまりhttp://www.myapplication.com/?locale=es
  2. gwt:propertyホストページにメタタグを含めると、次のようになります。

    <meta name="gwt:property" content="locale=es" />

    これは、実稼働アプリケーションに推奨される方法です。Accept-Languageホストページは、ユーザーがローカルを構成できるようにする、またはリクエストヘッダーに基づいて優先ロケールを検出するなど、さまざまな方法でユーザーのロケールを決定できます。

于 2012-04-11T16:24:03.817 に答える
2

JavaScriptでユーザーのロケールを正確に取得することはほとんど不可能であるため、GWT は試しません [1]。アプリでコンパイルし
LocaleInfoたロケールの中から選択したロケールに関する情報を返します。つまり、 で使用して追加したロケールの 1 つです。<extend-property name="locale" ... />*.gwt.xml

https://developers.google.com/web-toolkit/doc/latest/DevGuideI18nLocaleを参照してください

[1] 最近のバージョンでは (ブラウザのコンパイル時のロケールを使用して) 試みますが、コンパイルされたロケールの 1 つを選択するだけなので、 の動作は何も変わりませんLocaleInfo

于 2012-04-12T07:39:36.393 に答える