Интернационализация длительности с помощью сообщений gwt

#java #gwt #internationalization #duration

#java #gwt #интернационализация #Продолжительность

Вопрос:

Я хочу включить длительность тайм-аута, например «25 секунд» или «1 минута», в пользовательское сообщение. Есть ли способ сделать это в gwt?

Из этого ресурса я знаю, что могу делать такие даты:

 @DefaultMessage("Last update: {0,date,medium} {0,time,medium}")
String lastUpdate(Date timestamp);
 

но, похоже, нет ничего подобного:

 // hypothetical
@DefaultMessage("Requests time out after {0,duration}")
String timeout(Interval duration); // also Interval is a JodaTime concept...
 

Есть ли?

Ответ №1:

JodaTime по-прежнему недоступен для GWT (есть / было несколько проектов, но, к сожалению, ни один из них так и не зарекомендовал себя). Я надеюсь, что когда-нибудь мы увидим новый API даты JavaSE 8 в GWT!

До тех пор я бы использовал следующий подход:

  • Сохранение длительности в виде количества секунд (или миллисекунд, если требуется).
  • Создание одного интернационализированного сообщения на 0-59 секунд, одного на 1-59 минут и одного на 1-… часов.
  • Каждое из этих сообщений может использовать формы множественного числа.
  • Выбор наилучшего сообщения (секунды / минуты / часы) программно.