2013-10-04 1 views
0

Я использую Localizations (messages) plugin, чтобы вытащить определения i18n из базы данных, а не из стандартных файлов свойств в папке i18n.Невозможно получить сообщение() Строка из таблицы локализации в Grails

Я пытаюсь использовать плагин локализации в свой файл Service.groovy. Я делаю вот так ..

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

Когда я проверяю журнал, мое тело показывает нуль. Я уже добавил запись с таким же кодовым именем в мою таблицу локализации. Но он не получает сообщение String из таблицы. Я не могу понять проблему. Пожалуйста помоги. Заранее спасибо.

ответ

1

По моему опыту, я думаю, 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] 

И теперь он работает для меня :)

0

Попробуйте следующий код

class FirstService { 

def messageSource 

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

ВИДЕТЬ blog.

+0

Спасибо за ваш ответ, но этот блог метод, показывающий, чтобы читать сообщения от messages.properties. Я не хочу использовать файл message.properties для получения String. У меня уже есть таблица локализации в моей базе данных. Я хочу получить сообщение только из этой таблицы. –

+0

В случае message.properties он работает нормально –

+0

Я создал тестовое приложение и протестировал его с помощью плагина локализации с использованием базы данных h2 и работает нормально. – user1690588