Временное отображение текста (не даты) на другом языке - PullRequest
4 голосов
/ 23 августа 2010

Я пытаюсь отобразить некоторые сообщения на экране на другом языке (но сохраняю даты на языке по умолчанию, uk_eng), в зависимости от того, что пользователь смотрит на экран.Будучи лишь временной установкой, мне было интересно, как лучше всего это сделать на Java.

Ответы [ 2 ]

3 голосов
/ 23 августа 2010

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

Пример: http://java.sun.com/developer/onlineTraining/Programming/BasicJava2/int.html

Вы также можете загрузить их в веб-приложение, например http://www.devsphere.com/mapping/docs/guide/internat.html

0 голосов
/ 23 августа 2010

Если я хорошо вижу проблему, вы хотите отобразить сообщения с MessageFormat, например:

 Object[] arguments = {
     new Integer(7),
     new Date(System.currentTimeMillis()),
     "a disturbance in the Force"
 };

String result = MessageFormat.format(
         "At {1,time} on {1,date}, there was {2} on planet {0,number,integer}.",
         arguments);

(пример из javadoc)

Я проверил источник MessageFormat и я вижу, что getLocale() является общим для всего сообщения.Вы не можете сделать отдельный параметр для параметра.

Почему бы вам не создать параметр с самой форматированной строкой даты?Например:

 Object[] arguments = {
     new SimpleDateFormat("yyyyy.MMMMM.dd GGG hh:mm aaa", Locale.UK).format(new Date())
 };

String result = MessageFormat.format(
         "This is the date format which I always want independently of the locale: {1} ",
         arguments);

Первый параметр методов форматирования может быть из локализованных файлов свойств.

...