2013-10-04 2 views
0

Localizations (messages) plugin을 사용하여 i18n 폴더의 표준 속성 파일이 아닌 데이터베이스에서 i18n 정의를 가져옵니다.Grails의 현지화 테이블에서 String을 가져올 수 없습니다.

내 Service.groovy 파일에 현지화 플러그인을 사용하려고합니다. 나는 이렇게하고있다 ..

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

로그를 확인할 때 내 몸이 null로 표시됩니다. 이미 로컬 화 테이블에 동일한 코드 이름의 레코드를 추가했습니다. 그러나 테이블에서 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에서 메시지를 읽을 방법을 나타내는이 블로그를. String을 얻기 위해 message.properties 파일을 사용하고 싶지 않습니다. 내 데이터베이스에 이미 현지화 테이블이 있습니다. 그 테이블에서만 메시지를 받고 싶습니다. –

+0

message.properties의 경우 잘 작동합니다. –

+0

테스트 응용 프로그램을 만들고 h2 데이터베이스를 사용하여 현지화 플러그인으로 테스트했는데 정상적으로 작동합니다. – user1690588

관련 문제