Хороший способ ввести постоянную строку в файл интернационализации i18n в Grails - PullRequest
5 голосов
/ 14 сентября 2011

В grails, есть ли способ в файле i18n ссылаться на постоянное значение. Я пытаюсь сделать что-то вроде этого:

constant.sitename=Fancy SiteName

intro.headline.label=Welcome to {constant.sitename}
home.headline=You're at {constant.sitename}

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

Я понимаю, что мог бы также установить константу в Config.groovy, но тогда это потребовало бы передачи параметра для каждого отдельного сообщения, которое требовало этого, что я бы предпочел не делать, так как это заставило бы разработчиков работать хуже.

1 Ответ

2 голосов
/ 25 сентября 2011

Вы можете переопределить стандартный bean-компонент Grails messageSource с помощью пользовательской реализации resources.groovy.По умолчанию плагин Grails i18n для этого использует PluginAwareResourceBundleMessageSource.

Итак, создайте подкласс этого класса и переопределите необходимый код для добавления замены свойства.Не знаю наизусть, какие это точные методы, но это должно быть легко понять с помощью отладчика.

...