2015-05-04 66 views
5

我看到grails-app/i18n有一噸messages*.properties捆綁。我想國際化我的應用程序,但每個頁面有1個「捆綁集」。通過捆綁套裝我的意思是,一套捆綁/屬性文件包含相同的文本,但不同的語言。舉例來說,如果我想我的網站支持英語,法語和西班牙語,然後我的「關於」頁面可能有捆綁一套3根:Grails:組織i18n捆綁

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

如果我的應用程序由100頁,我有每頁3個屬性文件,這是300的屬性文件,我最終將有grails-app/i18n下!這是一個可以蠕蟲!

我想知道如果我能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/國際化,或者是有一個Grails CLI命令,我可以使用(例如,grails create-i18n-bundle about)?
  • 然後我如何從GSP中引用我的嵌套包?例如,在我的about.gsp中,我會使用:<g:message code="about/foo.bar" />

回答

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