Freitag, 24. September 2010

Grails i18n und die GAE

Momentan scheint es mit dem aktuellen app-engine Plugin (0.8.10) für Grails ein paar Probleme bezüglich der Internationalisierung zu geben.

Bindet man in die Seite das Tag g:message

<g:message code="hallo.welt" />

ein und definiert in der messages.properties (bzw. in der entsprechenden Lokalisierung davon) einen passenden Key

hallo.welt=Hallo Welt !

wird beim lokalen starten der Applikation noch alles richtig angezeigt und auf der Webseite erscheint der Text "Hallo Welt!". Wird die Anwendung jedoch auf die App Engine deployt, erscheint an derselben Stelle nur noch "hallo.welt"

Um dieses Problem zu lösen, kann man die BootStrap.groovy um folgendes erweitern:

class BootStrap {
 def messageSource

  def init = { servletContext ->
   messageSource.basenames = [ 'WEB-INF/grails-app/i18n/messages' ]
   messageSource.clearCache()
  }
  def destroy = {
  }
}


Dadurch werden die Namen der property-Dateien, in denen die Keys stehen nochmal neu gesetzt.

Keine Kommentare:

Kommentar veröffentlichen