Spring managt die Resource-Bundles. Dort gibt es eine Einstellung, die beeinflusst, was passieren soll, wenn ein String im aktuellen Locale nicht gefunden wird. Soll die Suche im System-Locale oder im Default-Locale stattfinden? System-Locale ist m.E. schlecht, weil der Server meist zufällig auf irgendeinem Locale läuft, das eh niemanden interessiert. Default-Locale (also messages.properties) ist meist die bessere Wahl, die ist aber nicht standardmäßig so eingestellt.
Deshalb hilft folgender Code in
Bootstrap.groovy:
import org.codehaus.groovy.grails.commons.ApplicationAttributes
def init = { servletContext ->
def ctx = servletContext.getAttribute(ApplicationAttributes.APPLICATION_CONTEXT)
def messageSource = ctx.getBean("messageSource")
messageSource.fallbackToSystemLocale = false
}
Gruß,
Matthias