我有 Grails 2 应用程序,我已经在其中添加了 i18n/messages_ru.properties。因此,根据文档,我使用 request ?lang=ru (fe userOperations/index?lang=es) 但没有任何改变。语言仍然是默认设置,没有创建语言 cookie。怎么了?我该如何解决?
PS。我在 Ubuntu 上使用 Oracle Java7
我有 Grails 2 应用程序,我已经在其中添加了 i18n/messages_ru.properties。因此,根据文档,我使用 request ?lang=ru (fe userOperations/index?lang=es) 但没有任何改变。语言仍然是默认设置,没有创建语言 cookie。怎么了?我该如何解决?
PS。我在 Ubuntu 上使用 Oracle Java7
问题是您配置了 url(或者它是默认的“/”(view:“index”))映射以直接呈现视图而无需控制器。创建一个控制器并在其中渲染一个视图。没有控制器就不行!
你期望改变什么?如果您查看默认索引页面(列出控制器等的页面),它不会使用消息 - 它都是硬编码的。
我刚刚测试过,它在 2.0.3 中对我有用。这是我所做的:
创建的 gsp 将具有以下内容:
<g:message code="yourDomainClass.name.label" default="Name" />
现在,如果我什么都不做并查看页面,即使使用 lang=ru 或 lang=es,它仍然会显示名称。但后来我进去并在 messages_es.properties 文件中添加了以下内容:
yourDomainClass.name.label=Nombre
当我刷新页面时,它显示“Nombre”而不是“Name”。
对于某些消息,例如“default.home.label”,消息文件中有默认值,当我使用 lang=es 时,它们确实会更改为西班牙语,就像他们应该做的那样,而无需我做任何事情。