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
(再次,由控制器提供上游)。有什么想法吗?
答案 0 :(得分:2)
使用<g:message>
标记中的模型变量作为参数是实现此目的的最简单方法。
例如:
<g:message code="my.localized.content" args="${ [str1, str2] }" />