开发者

Stripe Grails configuration per locale

开发者 https://www.devze.com 2023-04-02 18:03 出处:网络
Is there a way in Grails to stripe the config by locale? eg like this: locale { fr-FR { grails.serverURL = \"http://www.mysite.fr\"

Is there a way in Grails to stripe the config by locale?

eg like this:

locale {
    fr-FR {
        grails.serverURL = "http://www.mysite.fr"
    }
    en-GB {
        grails.serverURL = "ht开发者_如何学运维tp://www.mysite.co.uk"
    }
}

We are starting to internationalise our site for multiple country/language and some configuration will have to be country specific.

Thanks


If the configuration values are strings (as above) you could put them in the message*.properties files instead of Config.groovy. You can then use either the messageSource Spring bean or the message tag to retrieve the values for the current Locale.

Update

Further to the comment below about mixing config information in resource bundles, an alternative is to do it programatically - remember Config.groovy is a .groovy file, so you can mix code with your configuration data. Something like the following should work:

locale {    
  def serverUrls = [Locale.FRANCE: "http://www.mysite.fr", 
            Locale.UK: "http://www.mysite.co.uk"]

  def currentLocale = org.springframework.context.i18n.LocaleContextHolder.locale
  def serverlUrl = serverUrls[currentLocale]
  assert serverUrl, "no serverUrl found for Locale $currentLocale"    

  grails.serverURL = serverUrl
}

If you have several config parameters that you want to vary by Locale, something like the following would be neater

def currentLocale = org.springframework.context.i18n.LocaleContextHolder.locale

switch (currentLocale) {
  case Locale.FRANCE:
    // config params for France
  break;
  case Locale.UK:
    // config params for UK
  break;        
}
0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号