2017-02-16 50 views
1

Я пытаюсь реализовать Runtime Locales в GWT, но я не смог заставить его работать. В сети имеется очень ограниченная документация. Не могли бы вы помочь мне в реализации Runtime Locales в GWT. Будет полезно, если кто-нибудь даст пример о том, как реализовать Runtime Locales, потому что я уже потратил много времени на реализацию Runtime Locales. Поэтому, если кто-нибудь объяснит, как реализовать его, используя пример, который был бы замечательным.Как реализовать Runtime Locales в GWT

Причина, по которой мне нужен Runtime Locale, я хочу получить формат даты, названия месяцев и имена рабочих дней на основе строки locale (Ex: en_US, es_MX и т. Д.), Я имею в виду, что хочу получить объект Locale из строки locale, поскольку он возможно на Java. Насколько мне известно, мы не можем получить информацию о каких-либо других языковых стандартах, чем язык по умолчанию, загруженный GWT. и я не хочу использовать язык компиляции Locales из-за нехватки времени компиляции и увеличения статического следа.

Это документация для реализации языкового стандарта в GWT, который я имею в виду - http://www.gwtproject.org/doc/latest/DevGuideI18nLocale.html

Спасибо,

Madhusudhan.

+0

Если вы используете Константы интерфейс, чтобы показать, локализованный контент, просто добавьте месяц имена и дни недели в соответствующие файлы .properties. Если вы этого не сделаете, как вы переводите свое приложение? Вы хотите перевести имена _only_ week days и months, оставив все остальное на английском языке? – walen

+0

Привет, Вален, спасибо за ответ. Поскольку я не мог реализовать Runtime Locale, я собираюсь использовать файл свойств. При входе я отправляю запрос на сервер с выбранной локалью и получаю имя формата даты, месяца и недели из файла свойств. У нас есть реализация пакета ресурсов для каждого языка. Но мы не хотели указывать имена месяцев и дней недели в файле свойств, поэтому мы попытались получить эту информацию из Locale. Теперь мы собираемся только с файлами свойств. – Madhusudhan

+0

Чтобы сделать его динамическим, вы должны включить * all * locales в свой код клиента. Это означает, что каждый пользователь должен будет загружать ненужный код только потому, что он «может» выбрать другой язык - и большинство пользователей никогда не изменят предпочитаемый язык. –

ответ

0

Я думаю, что вы пропустите одну важную вещь о времени выполнения локалей:

[...] все локали, что GWT знает о , которые наследуют от вашего времени компиляции локаль будут автоматически включены [... ]

В качестве примера у вас может быть один набор переводов для всего испанского языка, на котором говорят в Латинской Америке (es_419), но разрешить пользователям выбирать языковой стандарт, такой как аргентинский испанский (es_AR).

Обратите внимание, что DateTimeFormatInfoImpl_es_AR расширяет DateTimeFormatInfoImpl_es_419.

Но есть трюк, который позволит вам получить формат даты в любой местности, получая DateTimeFormatInfo реализации непосредственно для данной местности:

DateTimeFormatInfo format = new DateTimeFormatInfoImpl_es_MX(); 
format.dateFormatLong(); // d 'de' MMMM 'de' y 
+0

Привет, Адам, спасибо за ответ. если я использую этот параметр «DateTimeFormatInfo format = new DateTimeFormatInfoImpl_es_MX();» это как-то статично. Если у меня есть формат даты для какой-либо другой локали, тогда мне нужно создать экземпляр этого класса. Я имею в виду, что это не динамика. Здесь мне нужен метод, чтобы получить объект Locale, передав строку locale. В моем приложении на экране входа в систему выберите язык, поэтому мне нужно отобразить формат даты на основе выбранной локали. – Madhusudhan