Spec-Zone .ru
спецификации, руководства, описания, API
След: Интернационализация
Урок: Форматирование
Сообщения
Домашняя страница > Интернационализация > Форматирование

Сообщения

Всем нам нравится использовать программы, которые сообщают нам то, что продолжается. Программы, которые держат нас в курсе часто, делают так, выводя на экран сообщения о состоянии и сообщения об ошибках. Конечно, эти сообщения должны быть преобразованы так, они могут быть поняты под конечными пользователями во всем мире. Раздел, Изолирующий Специфичные для локали Данные, обсуждает переводимые текстовые сообщения. Обычно, Вы делаетесь после того, как Вы перемещаете сообщение String в a ResourceBundle. Однако, если Вы встроили переменные данные в сообщение, необходимо сделать некоторые дополнительные шаги, чтобы подготовить их к преобразованию.

Составное сообщение содержит переменные данные. В следующем списке составных сообщений подчеркиваются переменные данные:

The disk named MyDisk contains 300 files.
The current balance of account #34-09-222 is $2,745.72.
405,390 people have visited your website since January 1, 2009.
Delete all files older than 120 days.

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

double numDays;
ResourceBundle msgBundle;
// ...
String message = msgBundle.getString(
                     "deleteolder" +
                     numDays.toString() +
                     msgBundle.getString("days"));

Этот подход хорошо работает на английском языке, но это не будет работать на языки, на которых глагол появляется в конце предложения. Поскольку порядок слов этого сообщения является hardcoded, Ваш localizers не будет в состоянии создать грамматически корректные преобразования для всех языков.

Как можно сделать свою программу локализуемой, если Вы должны использовать составные сообщения? Можно сделать так при использовании MessageFormat class, который является темой этого раздела.


Предостережение: 

Составные сообщения трудно преобразовать, потому что текст сообщения фрагментируется. Если Вы будете использовать составные сообщения, то локализация будет занимать больше времени и стоить больше. Поэтому следует использовать составные сообщения только когда необходимо.


Контакт с Составными сообщениями

Составное сообщение может содержать несколько видов переменных: даты, времена, строки, числа, валюты, и проценты. Чтобы отформатировать составное сообщение независимым от локали способом, Вы создаете образец, что Вы применяетесь к a MessageFormat объект.

Обработка Множественных чисел

Слова в сообщении обычно изменяются, если и множественные и исключительные словоформы возможны. С ChoiceFormat class, можно отобразить число на слово или фразу, разрешая Вам создать сообщения, которые грамматически корректны.


Проблемы с примерами? Попытайтесь Компилировать и Выполнить Примеры: FAQ.
Жалобы? Поздравление? Предложения? Дайте нам свою обратную связь.

Предыдущая страница: Изменение Символов Формата Даты
Следующая страница: Контакт с Составными сообщениями