9

GWT では、アプリケーションでサポートされているロケールを指定する必要があります。コードはさまざまなファイルにコンパイルされ、ロケールごとに (他のバージョンとは別に) 1 つずつコンパイルされますが、クライアントに URL を 1 つだけ指定する必要があります。この URL は、ブラウザが優先するロケールに従って表示されるページであると想定されています。ブラウザーが優先するロケールを強制したいので、ロケールの HTTP パラメーターを持ちたくありません。これをGWTでどのようにコーディングできますか?

Apacheの書き換えルールを使用してこれを行う必要がありますか? と思いましたが、リライトルールではそのようなパラメータに簡単にアクセスできないと思います。

どうもありがとう、ジュゼッペ

4

5 に答える 5

13

私はあなたと同じ問題を抱えていましたが、現在のロケールを本当に知る必要があるため (ローカライズしたいデータ用に 2 番目のサーバーを要求しています)、このクラスを見つけました: com.google.gwt.i18n.client.LocaleInfo#getCurrentLocale(). これにより、GWT が現在使用しているものがわかります。

于 2009-08-27T19:12:19.443 に答える
5

GWT は国際化を適切にサポートしています。このリンクを参照してください。i18nCreatorコマンドは、projectCreator と applicationCreator が GWT アプリケーションをセットアップする方法と同様に、国際化インフラストラクチャーをセットアップするのに役立ちます。

国際化が必要な静的文字列 (つまり、無効なエントリ!) がある場合、プロパティ ファイルとインフラストラクチャを作成するために i18nCreator コマンドにフラグを追加する必要はありません。

パラメータを受け入れる必要がある文字列 (つまり、Hello {0}) がある場合は、-createMessages フラグを i18nCreator コマンドに渡して、プロパティ ファイルとインフラストラクチャを作成する必要があります。

ここで、モジュールの MyApplication.gwt.xml に i18n モジュールを含める必要があります。

<inherits name="com.google.gwt.i18n.I18N"/>

定数またはメッセージを拡張し、すべて文字列を返すメソッド (プロパティ エントリと一致する名前) を定義するプロパティ ファイルと同じパッケージで Java インターフェイスを定義します。

MyConstants.properties には以下が含まれます。

errorMessage=Invalid Entry!

MyConstants.java には以下が含まれます。

import com.google.gwt.i18n.client.Constants;

public interface myConstants extends Constants {
    String errorMessage();
}

アプリケーションからこれらの国際化された文字列にアクセスするには、次のようにします。

public class MyApplication implements EntryPoint {
    private static final MyConstants constants = (MyConstants)GWT.create(MyConstants.class);

    public void onModuleLoad() {
        final Label errorMessage = new Label(constants.errorMessage);
    }
}

GWT は自動的にインターフェイスを実装します。

同様の方法でメッセージを取得できます。

うまくいけば、これはあなたが始めるのに役立つでしょう.

于 2008-09-02T20:25:26.623 に答える
3

ドキュメントを間違って読んでいない限り、何もする必要はないと思います。

GWT とロケール

locale をクライアント プロパティにすることで、gwt.js の標準的な起動プロセスでアプリケーションの適切なローカライズ バージョンが選択され、使いやすさ (想像以上に簡単です!)、最適化されたパフォーマンス、最小のスクリプト サイズが提供されます。

私がそれを読んだ方法は、あなたのモジュールがすべてのロケール選択をそれに追加している限り、それは自動的であるべきですか?

于 2008-08-19T19:18:40.690 に答える
3

この com.google.gwt.i18n.client.LocaleInfo.getCurrentLocale() を確認してください

于 2010-12-18T03:39:20.007 に答える
2
<inherits name="com.google.gwt.i18n.I18N"/>

<!-- Use browser-specified locale for i18n -->
<set-configuration-property name="locale.useragent" value="Y"/>

<!-- Specify locales your application support -->
<extend-property name="locale" values="en"/>
<extend-property name="locale" values="de_DE"/>
<extend-property name="locale" values="ru_RU"/>
于 2013-03-01T06:22:41.780 に答える