Georgian Citizen
Georgian Citizen

Reputation: 3957

grails internationalization (i18n)

i work on grails project

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}')}"

i need to send a variable inside message code as i mention above

problem: this code appears as

default.result.${result}

that there is no code in message.properties refer to these code

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

Question: how can i send variable inside message Code?

Upvotes: 0

Views: 1426

Answers (2)

Chris
Chris

Reputation: 8109

Try:

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

If you want to pass in some values, e.g. a string, you can define your message like this:

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

And resolve your code like this:

def m = message(code: 'default.result.' + result, args: ['delete User'])

Upvotes: 2

david
david

Reputation: 2587

Try omitting the double quotes (GString) and it should work like the following:

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

Results in following message-code

foo.bar

Upvotes: 2

Related Questions