2016-06-23 10 views
2

내 응용 프로그램에 일부 번역을해야합니다. 응용 프로그램에 부분적으로 부분적으로 렌더링 된 dashboard.tmpl이라는 템플릿 파일이 있습니다.내 부분 jquery 템플릿 파일의 레이블 내용을 번역하는 방법

<div> 
    <span>Latest News</span> 
    {{if my_recommendations[0]}} 
     {{each(i, my_rec) my_recommendations}} 
     {{/each}} 
    {{else}} 
    <p>No News yet.</p> 
    {{/if}} 
</div> 

은 내가 최신 뉴스를 번역하려고합니다. 그래서 < % = t ('latest_news')> 대신 입력하십시오. 그러나 그것은 작동하지 않습니다. 어떻게 번역 할 수 있습니까? 도와주세요.

+0

번역하려는 대상은 무엇입니까? 이 블록은 여기 최신 뉴스? 작동하지 않는 코드를 표시 할 수 있습니까? <% = t : latest_news %>? –

+0

은'config/locales/*. yml'에 정의 된'latest_news' 라벨입니까? – retgoat

+0

로케일 파일에 정의되어 있습니다. 내 erb 파일에서 작동하지만 tmpl 파일에서 작동하지 않습니다. –

답변

0

여기에 의견을 보내 주시면 문제가됩니다. 페이지를 요청할 때 템플릿을 "즉시"생성해야합니다. 레일 엔진이 로컬라이제이션을 수행 할 수 있도록 먼저 프리 컴파일해야하므로 파일에서로드 할 수 없습니다.

템플릿을 별도의 파일 대신 HTML의 일부로 스크립트 태그 안에 넣으십시오. 당신의 .html.erb 파일 내부

다음 코드를 추가하려고 : 사용 다음 대신 TMP 파일을로드 HTML 내부를 참조하지 않는 사용할 때 다음

<script type="text/template" id='news-template'> 
    <span><%=t :latest_news %></span> 
</script> 

var newsTemplate = $('#news-template').html(); 

올바른 번역 템플릿을로드 한 후에는 렌더링에 사용할 수 있습니다.

$.template("newsTemplate", newsTemplate); 
$.tmpl("newsTemplate", news).appendTo("#news-list"); 

템플릿 내부에서 파일을 사용하여 템플릿을 가져 오지 않고 대신 클라이언트 측에서 사용하는 스크립트 태그를 사용하여 HTML 페이지에서로드하고 있습니다.

이 보석도 확인하실 수 있습니다. https://github.com/jimmycuadra/jquery-tmpl-rails - 아직 시도하지는 않았지만이 문제를 해결했을 수도 있습니다.

희망 하시겠습니까?