我想让我的 Grails 应用程序只支持一种语言,我可以在某处定义,完全忽略客户端的 header 或“lang”参数。有什么办法可以这样做吗?谢谢。
最佳答案
定义一个 LocaleResolver
bean 在您的 config/spring/resources.groovy
设置默认语言环境。
beans = {
localeResolver(org.springframework.web.servlet.i18n.SessionLocaleResolver) {
defaultLocale = new Locale("de","DE")
java.util.Locale.setDefault(defaultLocale)
}
}
如果您不必处理
lang
,这很有用参数 - 否则它会被覆盖。甚至忽略 lang
您可以在 Filter
中设置语言环境的参数值根据每个请求:import org.springframework.web.servlet.support.RequestContextUtils as RCU
...
def filters = {
all(controller:'*', action:'*') {
before = {
def locale = new Locale("sv","SV")
RCU.getLocaleResolver(request).setLocale(request, response, locale)
}
}
}
这种方法似乎有点重复,因为每个请求都会重新设置区域设置。通过配置选项禁用浏览器区域设置检测会更优雅。
关于grails - 如何强制 Grails 只使用一种语言?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8808188/