Интернационализация Грааля (i18n) - PullRequest
0 голосов
/ 30 декабря 2011

Я работаю над проектом Grails

def result = "customer"
//(this value is according to returned method parameter, 
//it may be customer, company,... & so on)
def messages = "${message(code: 'default.result.${result}', default:'${result}')}"

Мне нужно отправить переменную внутри кода сообщения, как я упоминал выше

проблема: этот код отображается как

default.result.${result}

что в сообщении нет кода. Свойства ссылаются на этот код

there is default.result.customer ....$ so on

Вопрос: как я могу отправить переменную внутри кода сообщения?

Ответы [ 2 ]

2 голосов
/ 30 декабря 2011

Попробуйте:

def messages = message(code: 'default.result.' + result, default: result)

Если вы хотите передать некоторые значения, например строку, вы можете определить свое сообщение следующим образом:

default.result.success = Action {0} was successfull.

и разрешить свой код следующим образом:

def m = message(code: 'default.result.' + result, args: ['delete User'])
2 голосов
/ 30 декабря 2011

Попробуйте опустить двойные кавычки (GString), и это должно работать следующим образом:

def xxx = "bar"
def m = message(code: "foo.${xxx}", args: ['hello world'])

Результат в следующем коде сообщения

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