Сведения о вопросе

FromRussia

22:50, 17th August, 2020

Теги

url   gwt   locale    

как получить locale информацию о приложении GWT

Просмотров: 492   Ответов: 5

В GWT я должен указать, какие локали поддерживаются в моем приложении. Код компилируется в различных файлах, по одному для каждого locale (кроме других версий), но я должен дать своим клиентам только один URL. Эта URL должна быть страницей, которая должна отображаться в соответствии с locale предпочтительным браузером. Я не хочу иметь параметр HTTP для locale, так как я хочу отказаться от locale, предпочитаемого браузером. Как это может быть закодировано в GWT?

Должен ли я попытаться сделать это с помощью apache правил перезаписи? Я сделал это, но я думаю, что не могу легко получить доступ к такому параметру в правиле перезаписи.

Большое спасибо, Джузеппе



  Сведения об ответе

PHPH

02:52, 12th August, 2020

У меня была та же проблема, что и у вас, но так как мне действительно нужно знать текущий locale (я запрашиваю второй сервер для данных, которые я хочу локализовать), я нашел этот класс: com.google.gwt.i18n.client.LocaleInfo#getCurrentLocale() . Это должно дать вам то, что GWT использует в настоящее время.


  Сведения об ответе

PHPH

07:40, 29th August, 2020

GWT имеет хорошую поддержку для интернационализации. Смотрите эту ссылку . Команда i18nCreator может помочь вам настроить инфраструктуру интернационализации аналогично тому, как projectCreator и applicationCreator настраивают приложение GWT.

Если у вас есть статические строки (т. е. недопустимая запись!) которые должны быть интернационализированы, вам не нужно никакого дополнительного флага для команды i18nCreator, чтобы создать файлы свойств и инфраструктуру.

Если у вас есть строки, которые должны принимать параметры (т. е. Привет {0}), вам нужно передать флаг -createMessages команде i18nCreator, чтобы создать файлы свойств и инфраструктуру.

Теперь ваш модуль должен включать модуль i18n в свой MyApplication.gwt.xml:

<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 реализует интерфейс для вас автоматически.

Вы можете получать сообщения аналогичным образом.

Надеюсь, это поможет вам начать работу.


  Сведения об ответе

DAAA

03:22, 26th August, 2020

Проверьте это com.google.gwt.i18n.client.LocaleInfo.getCurrentLocale()


  Сведения об ответе

VERSUION

21:06, 1st October, 2020

Если я не читаю документацию неправильно, я не думаю, что вы должны что-то делать.

GWT и Locale

Сделав locale свойством клиента, стандартный процесс запуска в gwt.js выбирает соответствующую локализованную версию приложения, обеспечивая простоту использования (это проще, чем может показаться!), оптимизированная производительность и минимальный размер скрипта.

Как я понимаю, если ваш модуль добавил в него все варианты locale, он должен быть автоматическим?


  Сведения об ответе

pumpa

18:13, 24th August, 2020

<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"/>


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться