2011-02-10 5 views
1

국제화 (i18n) 특성 파일의 코드 my.message.code과 관련된 레이블을 표시합니다 다음 코드 코드에 메시지로 전환하는 방법 :Grails의 국제화 -

이 매우 쉽습니다 <g:message code="my.message.code" />

편리 잘 작동하지만 필요시 스위치를 활성화하여 실행중인 응용 프로그램에 my.error.code을 대신 표시하고 싶습니다.

이러한 기능의 목적은 Grails 애플리케이션 사용자가 특정 코드에 대한 수정을 요청할 수있게 해주기 때문에 번역사가 응용 프로그램을 검토하고 배치를 쉽게 수정할 수 있습니다.

Grails로 가능합니까?

감사합니다. 때

또한
 def messageWithCode = {attrs, body -> 
     if (attrs.showCode) {//You will need to pass a boolean (or retrieve from a 
// config file) to indicate whether to show the message or the code 
      out << attrs.code 
      } else { 
      out << g.message(attrs) 
      } 
     } 

, Grails는 항상 코드를 표시합니다

+0

번역이 정의되지 않은 i18n 용 의사 언어를 만들 수 있습니까? 식별자를 보여주지 않습니까? – Piskvor

+0

흠. 아니요, 번역이 누락되면 자동으로 영어로 대체됩니다. – Titom

답변

1

당신은 (당신이 필요한 경우는 g 네임 스페이스와 메시지 태그를 무시할 수 있다고 생각)는 태그 라이브러리를 통해 그렇게 할 수있는 사용자 정의 태그를 만들 수 있습니다 메시지와 관련된 메시지를 찾을 수 없습니다.

+0

이것은 좋은 제안이며, 저는 이것을 시도 할 것입니다. – Titom

0

표준 메시지 태그를 무시할 수 있습니다. 깨끗한 해결책은 아니지만 작동합니다 :

http://grails.org/doc/latest/ref/Tags/message.html#message에서 소스를 가져 와서 자신 만의 taglib (표준 네임 스페이스 'g')을 만들고 소스를 복사하여 taglib에 붙여 넣으십시오. 이렇게하면 모든 gsp 파일을 변경하지 않아도됩니다.

로캘에 'code'와 같은 특수 값이있는 경우 메시지 코드 (예)를 표시하는 방식으로 코드를 변경하십시오.