Grails i18n не меняет атрибут кода

Я новичок в Grails и пытаюсь использовать плагин i18n, который стандартно интегрирован в фреймворк Grails (я использую 2.2.1). Я использую динамические леса и удивляюсь, что метки переменных моей модели предметной области не изменились со значениями файла свойств. Вот почему я попытался использовать тег сообщения напрямую. Но оба способа не работают. Я не менял никаких настроек. Я беру простой вид и добавляю:

<g:message code=„my.test.de.label“ />

И добавляю в message.properties и message_de.properties следующую запись:

test.de.label=testDE 

Я открыл URL-адрес с «?lang=de», и без этого параметра ничего не работает. Также не работала маркировка модели предметной области с помощью динамического ругательства. Если я использую этот g:message-tag с кодом, который стандартно находится в файле свойств, все в порядке. И я не понимаю, почему мой собственный ярлык не работает.

Вопрос: – Нужно ли мне что-то настраивать? - Есть ли какая-либо кодовая ошибка, которую я сделал?


person Der_V    schedule 06.05.2013    source источник


Ответы (1)


Вам не нужно ничего настраивать, кроме создания новых сообщений по мере необходимости. Я только что создал новый проект 2.2.1 с тестовым классом домена (Notification), а затем запустил generate all для нового домена.

Когда я перехожу к представлению списка для нового домена в http://localhost:8080/TestApp/notifications/list?lang=de, я определенно вижу, что используется немецкий язык: Notifications anlegen и Notifications Liste.

Единственные ошибки, которые я вижу при прямом использовании тега сообщения, — это запятые ,, вместо кавычек " и my в my.test.de.label. Это работает для меня:

//gsp
<g:message code="test.label" />

//messages_de.properties
test.label=testDe

Вероятно, вам НЕ следует ссылаться на язык в фактическом названии сообщения - это противоречит цели. Каждый языковой файл должен иметь одно и то же «имя» для сообщения:

//messages_de.properties
default.button.create.label=Anlegen

//messages.properties
default.button.create.label=Create

//messages_es.properties
default.button.create.label=Crear

Затем используйте в своей GSP

<g:message code="default.button.create.label" />

Таким образом, система i18n выбирает его на основе языка, отправленного из браузера.

person Kelly    schedule 09.05.2013
comment
Эй, спасибо за помощь. Я обновил Grails 2.2.2, посмотрел на запятые и понял, что все работает! :) - person Der_V; 12.05.2013