Grails:组织i18n捆绑

时间:2015-05-04 13:13:04

标签: grails internationalization

我在grails-app/i18n下看到有大量messages*.properties个捆绑包。我想国际化我的应用程序,但有1"捆绑集"每页。通过 bundle set 我的意思是,包含相同文本但是针对不同语言的set bundle / properties文件。例如,如果我希望我的网站支持英语,法语和西班牙语,那么我的"关于"页面可能包含3个捆绑包:

  • about.properties(英文)
  • about_fr.properties(法文)
  • about_es.properties(西班牙文)

如果我的应用包含100个页面,并且每页有3个属性文件,那么我最终会在grails-app/i18n下拥有300个属性文件!多数民众赞成在一起。蠕虫!

我想知道我是否可以在grails-app/i18n下添加子文件夹并以分散的方式组织它:

myapp/
    grails-app/
        i18n/
            about/
                about.properties
                about_fr.properties
                about_es.properties
            contact/
                contact.properties
                contact_fr.properties
                contact_es.properties
            fizzbuzz/
                fizzbuzz.properties
                fizzbuzz_fr.properties
                fizzbuzz_es.properties
            ... etc.

这将使更好/更清洁/更有组织的代码。如果可能的话:

  • 我只是在grails-app/ i18n下创建文件夹/包,还是有我可以使用的Grails CLI命令(例如grails create-i18n-bundle about)?
  • 如何从GSP内部引用我的嵌套包?例如,在我的about.gsp中,我会使用:<g:message code="about/foo.bar" />

1 个答案:

答案 0 :(得分:1)

Grails获取grails-app / i18n文件夹下的所有包。因此,您可以为每个组创建一个文件夹。

引用它们就像在messages.properties中一样简单。 我的意思是,如果你有:

  

的grails-app / I18N / messages.properties

foo.bar = foo bar
  

的grails-app / I18N /约/ about.properties

bar.foo = bar foo

你可以用你的gsp:

<g:message code="foo.bar"/>
<g:message code="bar.foo"/>

这里有一份简短的文档:https://grails.org/wiki/Internationalization