g:dateFormattag the default behaviour is to format the date according to the
Localespecified in the user’s
Accept-Languageheader. Even though we are explicitly specifying a format pattern for the date Java is aware of localized day names for some languages so the output can vary. The result is that on a page full of English text there suddenly appears a Spanish or Swedish day name. What makes things worse is that as we use server-side content caching and a CDN if a user with a non-English
Accept-Languageheader is the first to see a particular page or bit of dynamically retrieved content then the cache is primed and until it expires everyone will see the non-English day name text.
The solution in a Grails app is as simple as replacing Spring’s standard
localeResolverbean with an instance of
FixedLocaleResolver. Just add the following to grails-app/conf/spring/resources.groovy:
This changes the way Spring works out the request locale and any locale-aware tags should just fall into place.