Интернационализация выходного дня - PullRequest
1 голос
/ 16 марта 2012

Мне нужно вывести дни недели в JSP.Ясно, что я мог бы просто сделать:

<fmt:message key="day.monday" />
<fmt:message key="day.tuesday" />
...

и иметь дни недели в файлах ресурсов сообщений, зависящих от локали.Но я заметил, что существует класс java.text.DateSymbols, который содержит служебные методы для вывода строк дня недели в виде массива, в котором есть конструктор, который принимает строку локали.Я пытался использовать это с помощью <jsp:useBean>, но я не вижу простого способа установить локаль - использование <fmt:setLocale> не дает никакого эффекта.

Я поступаю неправильно?Похоже, что это довольно распространенная вещь, и я не вижу встроенного способа обойти это.

1 Ответ

2 голосов
/ 17 марта 2012

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

Примечание: не используйте эти переводы повторно, так как из-за грамматики они могут находиться в одном месте и быть совершенно неверными в другом, опять же, это зависит от контекста.

Если вы все равно хотите использовать некоторые классы, зависящие от локали, вам нужно создать HttpSession и сохранить в нем объект Locale. Затем вы можете получить его в серверной части и вернуть действительную информацию, зависящую от локали.
Это не легко, хотя. Ну, есть причины, по которым люди создавали такие вещи, как Spring Framework, Struts, JSF и т. Д. Сам по себе JSP очень болезненно использовать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...