2012-05-30 2 views
0

나는 grails app을 다중 언어로 만들려고 노력하고있다. 내가 번역 내가 할 모든 텍스트에 대한 은 할 필요가 :<%= %> (i18n-gettext 사용)

<%=t9n.tr(s: "Delete Filter")%> 

constrast에서 다음은 (출력 문자열로 "필터를 삭제") 작동하지만 국제화-gettext를 번역하기 위해 문자열을 찾을 수 없습니다

${t9n.tr(s: "Delete Filter")} 

은 그래서

<g:link controller="user" title="<%=t9n.tr(s: 'Delete Filter')%>">foo</g:link> 

다음 작품 같이가 someting를 시도하지만 코드의 2 줄 필요가 있기 때문에 불쾌한 보이는했다 :

<% the_title = t9n.tr(s: "Delete Filter")%> 
<g:link controller="user" title="${the_title}">foo</g:link> 

어떤 아이디어가 있습니까? 도움말 감사합니다

답변

0

문제는 gettext가 gsp 파일을 구문 분석 할 수 없다는 것입니다. 플러그인은 gettext가 변환해야하는 문자열을 인식하기 위해 PHP 파서를 사용하도록 구성합니다. 따라서 태그 내부에 <% %>이 실패합니다.

슬프게도, 이것에 대한 쉬운 해결책이 없습니다. 필자는 gettext에서 모든 파서를 사용했지만, PHP 파서보다 나은 것은 아닙니다.

편집 : 현재 빠른 (더티) 수정 작업을하고 있습니다.

0

Grails에는 고유 한 i18n 메커니즘이 포함되어 있습니다. 현지화 파일은/grails-app/i18n/아래에 있습니다. 당신이 방법을 사용할 수있는 코드에서

<g:message code="my.key" default="My key" /> 

: 다음 GSP에서

당신이 태그를 사용할 수 있습니다 파일
message(code:'my.key') 

그리고 당신이 결합 할 수 있습니다 GSP 몇 가지 복잡한 상황에서

:

<g:link controller="user" title="${ message(code:'delete.filter') }">foo</g:link> 
+0

i18n-gettext를 사용하면 'my.key'와 같은 코드 대신 실제 영어 텍스트가 표시됩니다. –

관련 문제