0

私は自分のアプリケーションに対してi18nを実行しています。ショーケースの例に示されていることを実行しました。リストボックスを使用してさまざまなロケールを表示しています。問題は、あるロケールから別のロケールにスワップしているときに、ロケールが変更されていますが、リストボックスです。私がいるロケールを表示していません。リロードするたびにリストの最初の要素を表示しています

ここにコードがあります:

@Override
    public void changeSwap() {

    final String queryParam = LocaleInfo.getLocaleQueryParam(); 
    String locale=getView().getLocale().getValue(getView().getLocale().getSelectedIndex());
        Log.info("revealed locale is"+locale);
     if (queryParam != null) {
         UrlBuilder builder = Location.createUrlBuilder().setParameter(
             queryParam, locale);
         Window.Location.replace(builder.buildString());
       } else {
         // If we are using only cookies, just reload
         Window.Location.reload();
       }
    }

リストボックスAPIでそれを行うためのメソッドが見つかりませんでした

ありがとう

4

1 に答える 1

1

ショーケース()のコードの一部を使用していますShowcaseShell.initializeLocaleBox()が、リストボックスで正しい値を選択する役割を果たしているのは次のとおりです。

String currentLocale = LocaleInfo.getCurrentLocale().getLocaleName();
if (currentLocale.equals("default")) {
  currentLocale = "en";
}
String[] localeNames = LocaleInfo.getAvailableLocaleNames();
for (String localeName : localeNames) {
  if (!localeName.equals("default")) {
    String nativeName = LocaleInfo.getLocaleNativeDisplayName(localeName);
    localeBox.addItem(nativeName, localeName);
    if (localeName.equals(currentLocale)) {
      localeBox.setSelectedIndex(localeBox.getItemCount() - 1);
    }
  }
}

ChangeHandlerをlocaleBoxに追加する前に、必ずコードに追加してください。


Showcase2.4.0の例の完全なセットアップは次のとおりです。

単純な新しいGWTプロジェクト(最初はgwtpや特別なものを使用しない)を作成し、これらのコードを追加することをお勧めします。次に、セットアップをプロジェクト全体に移行してみます。

于 2012-05-16T14:39:15.587 に答える