使用控制器提供的模型args注入Grails 2.4.x i18n消息

时间:2015-11-18 13:40:06

标签: grails internationalization

Grails 2.4.4。在i18n docs中,他们提供了以下示例:

<g:message code="my.localized.content" args="${ ['Juan', 'lunes'] }" />

此处的问题是'Juan''lunes' GSP层提供的硬编码字符串但是,如果我们希望将这些注入 - 作为GSP数据模型的一部分 - 由控制器注入呢?例如:

class MyController {
    SomethingService somethingService

    def something() {
        String str1 = somethingService.doSomething() // Might return 'Juan'
        String str2 = somethingService.doSomethingElse() // Might return 'lunes'

        render(view: 'something', model: [ str1: str1, str2: str2 ])            
    }
}

// Inside the GSP:
<h1><g:message code="my.localized.content" args=??? /></h1>

在这里,我需要配置args以从我的模型中注入具有<g:message />str1的本地化str2(再次,由控制器提供上游)。有什么想法吗?

1 个答案:

答案 0 :(得分:2)

使用<g:message>标记中的模型变量作为参数是实现此目的的最简单方法。

例如:

<g:message code="my.localized.content" args="${ [str1, str2] }" />