我使用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消息。我无法弄清楚问题。请帮忙。提前谢谢。
答案 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]
现在它适用于我:)