2017-08-10 191 views
0

我正在編寫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'結尾。 –

回答

0

我有它的工作使用這種更復雜的方式,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

相關問題