Установите указанный языковой стандарт в калитке, где по умолчанию (для пользователя) недоступны - PullRequest
1 голос
/ 02 февраля 2011

У меня есть файлы свойств, ориентированные только на определенный язык (page_ru_RU.prop и page_en_GB.prop). Откуда на этой странице появился пользователь с локалью en US - он получил исключение, потому что не найден правильный локаль. Могу ли я таким образом сделать somwhere проверкой на ручную настройку локали, если у пользователя нет доступных локалей без make default locale (page.prop) Если мне неясно, скажите, пожалуйста.

1 Ответ

4 голосов
/ 02 февраля 2011

Если вы создаете файл свойств только с языком, он будет использоваться для всех вариантов: поэтому вместо page_en_GB.properties вы можете иметь page_en.properties, который будет использоваться для всех субполос en_ *. *

Вы также можете иметь простой page.peroperties, который будет использоваться для всех, кто не вписывается в более конкретную категорию.

Обновление: Взять два, как полностью взять под контроль Locale выбор.

Локаль в Wicket хранится в объекте Session, им можно манипулировать, используя методы getLocale() и setLocale(). Одно это может дать вам решение, но вы также можете перехватывать вызовы этих методов для автоматического переопределения выбора локали.

//this is your application class
public class MyApplication extends WebApplication {

  @Override      
  public Session newSession( Request req, Response res ) {
    return new MySession( req )
  }
}

//this is your session class
public class MySession extends WebSession {
  public MySession( Request req ) {
    super( req );
  }

  @Override
  public void setLocale( Locale locale ) {
    // your locale substitution code goes here, for example:
    if( locale.getLanguage().equals( "en" ) ) {
      super.setLocale( new Locale( "en", "GB" ) );
    }
  }
}

Это то, что вы ищете?

...