无法从Grails中的本地化表中获取message()字符串

时间:2013-10-04 05:57:35

标签: grails grails-2.0 grails-plugin

我使用Localizations (messages) plugin从数据库中提取i18n定义,而不是从i18n文件夹中的标准属性文件中提取。{/ p>

我正在尝试将Localization插件用于我的Service.groovy文件。我这样做..

import org.grails.plugins.localization.*
// some code.....
def body = message(code: "goal.auto.email.alert")  
log.info("body : "+body)

当我检查日志时,我的身体显示为空。我已经将具有相同代码名称的记录添加到我的Localization表中。但它没有从表中获取String消息。我无法弄清楚问题。请帮忙。提前谢谢。

2 个答案:

答案 0 :(得分:0)

尝试以下代码

class FirstService {

def messageSource

  def test() {
    ...
    def msg = messageSource.getMessage('localization.cache.hits', null, Locale.US)
    ...
  }
}

请参阅blog

答案 1 :(得分:0)

根据我的经验,我认为message(code: "goal.auto.email.alert")不适用于服务。所以我通过使用sql查询来完成这个..

def body = sql.rows("SELECT TEXT FROM Localization WHERE CODE='goal.auto.email.alert'") 
    body = body.text[0]

现在它适用于我:)