每个区域设置的Stripe Grails配置

时间:2011-09-05 09:41:35

标签: grails configuration localization locale

Grails中是否有办法按区域设置对配置进行条带化?

例如像这样:

locale {
    fr-FR {
        grails.serverURL = "http://www.mysite.fr"
    }
    en-GB {
        grails.serverURL = "http://www.mysite.co.uk"
    }
}

我们开始将我们的网站国际化为多个国家/地区/语言,有些配置必须针对具体国家/地区。

由于

1 个答案:

答案 0 :(得分:2)

如果配置值是字符串(如上所述),您可以将它们放在message*.properties文件而不是Config.groovy中。然后,您可以使用messageSource Spring bean或message标记来检索当前区域设置的值。

更新

除了下面关于在资源包中混合配置信息的评论之外,另一种方法是以编程方式进行 - 请记住Config.groovy是一个.groovy文件,因此您可以将代码与配置数据混合。以下内容应该有效:

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
}

如果您想要根据区域设置改变多个配置参数,则以下内容将更整洁

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;        
}