内置语言更改在Grails2中不起作用

时间:2012-05-11 20:00:18

标签: grails internationalization

我有Grails 2应用程序,我已经添加了i18n / messages_ru.properties。所以,根据文档我使用request?lang = ru(f.e.userOperations / index?lang = es)但没有改变。语言仍然是默认语言,未创建lang cookie。 怎么了?我该如何解决这个问题?

PS。我在Ubuntu上使用Oracle Java7

2 个答案:

答案 0 :(得分:0)

您有什么期望改变?如果你查看默认索引页面(列出控制器的那个页面等)它不使用消息 - 它们都是硬编码的。

我刚刚测试过,它在2.0.3中适用于我。这是我做的:

  1. 创建新的应用程序
  2. 使用单个字段(字符串名称)
  3. 创建域类
  4. 为该班级运行“全部生成”
  5. 创建的gsp将具有以下内容:

     <g:message code="yourDomainClass.name.label" default="Name" />
    
  6. 现在,如果我不做任何事情并查看页面,即使使用lang = ru或lang = es,它仍然会说出Name。但后来我进入并在messages_es.properties文件中添加了以下内容:

        yourDomainClass.name.label=Nombre
    

    当我刷新页面时,它会显示“Nombre”而不是“Name。”

    某些消息(例如“default.home.label”)的消息文件中有默认值,当我使用lang = es时,那些确实会改变为西班牙语,就像没有我做任何事情一样。

答案 1 :(得分:0)

问题是您配置了url(或者它是默认的“/”(view:“index”))映射到没有控制器直接渲染视图。创建一个控制器并在其中呈现一个视图。没有控制器就不起作用!