2016-07-02 3 views
-2

임 내 템플릿을 변환하는 가장 좋은 방법입니다 알고 싶습니다 Jsrender, 를 사용 rokieeJsRender - 템플릿을 변환하는 방법? (모범 사례)

이 같은 템플릿이 :

_welcome.tmpl.html: 

<div> Hello, {{:name}}</div> 
<div> welcome to {{:place}}</div> 

그리고 난 파일에서 daat 읽기 like :

welcome.json: 

{ 
    "name": "David" 
    "place": "wien" 
} 

여기까지는 문제가 없습니다.

이제는 다른 언어로 "hello"및 "welcome to"이라는 단어를 번역하고 싶습니다. 하지만 제 시스템은 정말 못 생기고 비효율적입니다.

내가로드하는 다른 파일은 "lang"속성에 따라 다릅니다.

은 랭 = "ES는"메신저로드하려고하면
english_vars.js 

var t_hello = "Hello"; 
var t_msg = "Welcome to"; 

:

var wellcomeTemplate = ` 
<div>`+t_hello+`, {{:name}}</div> 
<div>`+t_msg+` {{:place}}</div>` 
:

spanish_vars.js 
    var t_hello = "Hola"; 
    var t_msg = "Bienvenido a"; 

을 그리고 내 템플릿은 다음과 같습니다 expample 를 들어 LANG = "EN은"메신저로드 할 것

이 템플릿 엔진 번역을 향상시킬 방법이 있습니까?

참고 :

var terms = { 
    hello: "Hola", 
    welcome: "Bienvenido a" 
}; 

은 당신이에 전달할 수 있습니다 : 번역은 JSON이나 자바 스크립트 객체 (해시) 등의 현지화 된 사전이있는 경우 데이터

답변

1

이 같은 .json에 와서는 안된다 이런

<script id="tmpl" type="text/x-jsrender"> 
    <div>{{:~hello}}, {{:name}}</div> 
    <div>{{:~welcome}} {{:place}}</div> 
</script> 

:

헬퍼 변수와 데이터와 별도로 용어

언어를 변경하면 적절한 현지화 된 용어를 전달하십시오.

http://www.jsviews.com/#helpers


또 다른 가능성은 번역 JsRender 자체를 사용하여 각 언어에 대한 템플릿을 번역하는 것입니다 참조하십시오.

$.views.settings.delimiters("<%", "%>"); 

var localizedTemplate = $.templates("#baseTmpl").render(terms); 

$.views.settings.delimiters("{{", "}}"); 

var html = $.templates(localizedTemplate).render(data); 

http://www.jsviews.com/#settings/delimiters


두 가지 접근법은 참조 : 간단하게 번역 단계의 구분 기호를 변경, 그래서 당신은 단지 다른 태그 변경하지 않고, 용어를 번역 : 다음

<script id="baseTmpl" type="text/x-jsrender"> 
    <div><%:hello%>, {{:name}}</div> 
    <div><%:welcome%> {{:place}}</div> 
</script> 

this jsfiddle