i18n в ExtJS & Spring MVC - PullRequest
       12

i18n в ExtJS & Spring MVC

2 голосов
/ 23 марта 2009

Я немного искал в Интернете, но не нашел конкретного решения для интернационализации приложения, использующего ExtJS & Spring MVC. В настоящее время (для тестирования) я определяю глобальные переменные javascript в JSP и назначаю строковые литералы, используя теги JSTL.

У кого-нибудь был успех в разработке прозрачного / чистого / гибкого решения для этого?

Любые мысли действительно ценятся. ТИА.

Ответы [ 3 ]

1 голос
/ 21 октября 2010

Существует 3 типа строк, которые вы должны перевести в приложении

  1. Статические строки на вашей странице -> как сказал Адам, использование шаблона - хорошая идея. MVC может решить проблему. Таким образом, вы храните все свои строки в БД или в файле свойств.

  2. Строки сообщений об ошибках, которые отправляются в Ext J.S -> Здесь у вас есть два решения, либо вы разрешаете Ext J.S их обрабатывать, так что это означает, что у вас есть файлы js с загруженными переводами ИЛИ ЖЕ на MVC перед отправкой ответа вы добавляете перевод в свой ответ

  3. Значения из таблицы БД, которые необходимо перевести, например, автомобильные детали. В этом случае вы храните ключ в своей таблице car_parts и переводы в файле свойств или в таблице переводов в db.

В моем текущем приложении я выполняю перевод на уровне MVC и сохраняю переводы на БД. Преимущество 1. Логика перевода в одном месте MVC и не разделена. 2. Ваши переводы находятся в одном месте, и когда вы делаете ошибку в переводе, вам не нужно делать новую версию, вы просто обновляете БД ИЛИ предоставляете форму администраторам приложения, чтобы сделать это самостоятельно. Требуется резервная копия таблицы перевода !!!

0 голосов
/ 26 мая 2010

Взгляните на пример Spring MVC Ajax frpm Spring. если вы используете представления JSP, вы можете использовать библиотеку тегов fmt и пакеты ресурсов. Если вы используете представления Velocity, используйте #springMessage ('my.key'), как описано в документации Spring .

0 голосов
/ 25 марта 2009

Вот как это делается в моем приложении, которое использует Pylons, Ext JS и шаблонизатор Mako.

Я рассматриваю файлы JavaScript как шаблоны. Я храню каждый класс в отдельном файле и использую определенную мной функцию require () для обработки зависимостей. Мой сервер обрабатывает эти шаблоны, обрабатывает зависимости, объединяет их и сжимает. Эти шаблоны содержат вызовы функции, подобной gettext «_», например ::1005*

window.setTitle("${_('My title')}");

Эти шаблоны являются обычными шаблонами Mako и могут быть предварительно обработаны утилитой, подобной gettext, для создания .po файлов. Используемый мной генератор .po (Babel) помещает позиции найденных строк в качестве комментариев в файл .po , что мне удобно, поскольку я знаю, где появилась строка.

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