2015-05-04 19 views
5

Vedo sotto grails-app/i18n ci sono un sacco di pacchetti messages*.properties. Vorrei internazionalizzare la mia app, ma ho 1 "set di pacchetti" per pagina. Con set di bundle Voglio dire, un set di pacchetti/file di proprietà che contengono lo stesso testo ma per lingue diverse. Per esempio, se voglio che il mio sito per sostenere inglese, francese e spagnolo, allora la mia pagina "About" potrebbe avere un set fascio di 3 pacchi:Grails: organizzazione dei bundle i18n

  • about.properties (inglese)
  • about_fr.properties (francese)
  • about_es.properties (spagnolo)

Se la mia applicazione si compone di 100 pagine, e ho 3 proprietà dei file per pagina, che è di 300 proprietà file sarò alla fine hanno sotto grails-app/i18n! Questo è un verme!

Mi chiedo se posso aggiungere sottocartelle grails-app/i18n e organizzare in modo decentralizzato:

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. 

Questo renderebbe per/pulitore/code più organizzata molto più bello. Se questo è possibile:

  • Posso solo creare cartelle/imballaggi che sono in grails-app/ i18n, o c'è un comando Grails CLI posso usare (per esempio, grails create-i18n-bundle about)?
  • Come faccio quindi a fare riferimento ai miei bundle nidificati da un GSP? Ad esempio, nel mio about.gsp, dovrei semplicemente usare: <g:message code="about/foo.bar" />?

risposta

1

Grails prende tutti i pacchetti che si trovano nella cartella grails-app/i18n. Quindi puoi creare una cartella per ciascuno dei tuoi gruppi.

Per fare riferimento a loro è semplice come se fosse nei messaggi.proprietà. Voglio dire, se si dispone di:

Grails-app/i18n/messages.properties

foo.bar = foo bar 

graal-app/i18n/about/about.properties

bar.foo = bar foo 

Si può fare nella gsp:

Qui avete una breve documentazione: https://grails.org/wiki/Internationalization

Problemi correlati