【问题标题】:Grails: Organizing i18n bundlesGrails:组织 i18n 包
【发布时间】:2015-05-04 13:13:03
【问题描述】:

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

【问题讨论】:

    标签: grails internationalization


    【解决方案1】:

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

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

    grails-app/i18n/messages.properties

    foo.bar = foo bar
    

    grails-app/i18n/about/about.properties

    bar.foo = bar foo
    

    你可以在你的 gsp 中做:

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

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

    【讨论】:

      猜你喜欢
      • 2012-11-11
      • 1970-01-01
      • 2012-10-01
      • 2013-08-24
      • 1970-01-01
      • 2013-03-03
      • 2013-03-28
      • 2023-04-10
      • 1970-01-01
      相关资源
      最近更新 更多