Grails:组织 i18n 包

标签 grails internationalization

我看下grails-app/i18n有一吨messages*.properties捆绑。我想将我的应用程序国际化,但每页有 1 个“捆绑集”。我所说的包集是指包含相同文本但用于不同语言的一组包/属性文件。例如,如果我希望我的网站支持英语、法语和西类牙语,那么我的“关于”页面可能有 3 个捆绑包:

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

  • 如果我的应用程序包含 100 个页面,并且每页有 3 个属性文件,那么我最终将在 grails-app/i18n 下拥有 300 个属性文件。 !这是一个可以o'蠕虫!

    我想知道是否可以在 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 获取 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

    关于Grails:组织 i18n 包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30031098/

    相关文章:

    grails - 根据 hasman 关系中的最新记录搜索记录

    java - 在 Grails 中,如何获取语言环境的 messages.properties ConfigObject?

    data-binding - Grails 将请求参数绑定(bind)到枚举

    ruby-on-rails - Rails 中的时区

    java - 对于复杂的多模块 Java 应用程序的国际化,您推荐的工具套件是什么?

    Grails 集群 quartz 作业示例代码和所需的配置

    grails - 寻找有效的 neo4j 和 grails 配置

    .net - 如何在 .NET 中使用非英文引号进行格式化?

    java - GWT i18n 呈现键而不是值

    Flutter 富内容本地化