I18n - несколько шаблонов для одной локали или несколько файлов локали - PullRequest
0 голосов
/ 05 октября 2011

Я работаю над редизайном крупного розничного веб-сайта, ориентированного на потребителя. Думайте что-то вроде gap.com

Технологический стек - это Apache тайлы, Apache speed, Spring MVC.

Вопрос: Чтобы правильно реализовать I18N, я должен просто создать несколько шаблонов скорости для каждой локали или перенести строки в файлы свойств? При последнем подходе в шаблонах скоростей такого типа будет много путаницы - resourcebundle.getMessage ("website.title", "en_US"), тогда как в более раннем случае я, вероятно, буду иметь дублированную логику в нескольких шаблонах. .

1 Ответ

1 голос
/ 05 октября 2011

Вы не должны делать несколько шаблонов (по одному на язык). Это было бы контрпродуктивно.

Также вам нужно определить какую-нибудь оболочку для перевода текста. Вы не хотите использовать Locale или Locale Identifiers напрямую ("en_US"), вместо этого вам нужно установить Locale для сеанса и использовать этот объект (возможно, неявно, так что вам не нужно будет передавать его каждый раз, когда вы вызываете getMessage(), таким образом обертка).

Имейте в виду, что если вы вызываете методы ResourceBundle class 'напрямую, некоторые из них могут выдать MissingResourceException (что является исключением во время выполнения, чтобы усугубить ситуацию). Вы должны обязательно проверить это.

КСТАТИ. Скорость определяет некоторый инструмент для целей локализации. Забавно то, что я никогда не видел, чтобы кто-нибудь на самом деле использовал его (но, честно говоря, мой опыт работы с Velocity весьма ограничен).

...