Grails i18n不适用于语言环境“he”(希伯来语)

问题描述:

我正在编写Grails i18n消息。我在messages_he.propertiesGrails i18n不适用于语言环境“he”(希伯来语)

_appNav.apps.show-label-button.title = הצג תוויות 

上面的代码给"iw"

在resources.groovy

localeChangeInterceptor(ParamsAwareLocaleChangeInterceptor) { 
    paramName = "locale" 
} 

localeResolver(org.springframework.web.servlet.i18n.SessionLocaleResolver) { 
    defaultLocale = new Locale("en") 
    java.util.Locale.setDefault(defaultLocale) 
} 

添加下面的消息中添加代码,但它是没有得到回升,

而且session.'org.springframework.web.servlet.i18n.SessionLocaleResolver.LOCALE'

+0

he_IL是什么你需要,你应该有它的消息文件 – Vahid

+0

@vahid我不认为'_he_IL'应该是必需的,应该吗?我认为''他'也应该工作。 –

+0

这个问题提到'messages_he.proerties'就是'.proerties'只是一个错字,或者是实际的文件名?文件名应该以'.properties'结尾。 –

我有它的工作使用这种更复杂的方式,params.lang = he_IL

它接收到这个然后查找

import org.springframework.web.servlet.support.RequestContextUtils as RCU 

Locale = getLocaleForLanguage(params.lang) 
session.'org.springframework.web.servlet.i18n.SessionLocaleResolver.LOCALE' = locale 
      session.language = locale.language 
      session.locale = locale 
      session.langConfirmed=true 
      if (updateReq) { 
       RCU.getLocaleResolver(request).setLocale(request, response, locale) 
      } 



static Locale getLocaleForLanguage(String language) { 
      if (language.contains('_')) { 
       def splitLang=language.split('_') 
       return 


Locale.getInstance(splitLang[0].toLowerCase(),splitLang[1].toUpperCase(),'') 
      } 
      return Locale.getInstance(language,'','') 
     } 

然后相关文件名为messages_iw.properties

works fine for me