2016-07-02 33 views
-2

イムは、私は私のテンプレートを翻訳するための最良の方法である知っていただきたいと思いJsrender、を使用してrokieeJsRender - テンプレートの変換方法(ベストプラクティス)

私はこのようなテンプレートを持っている:

_welcome.tmpl.html: 

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

と私は、ファイルからのDAAT読みますこのように:

welcome.json: 

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

ここまでは正常です。

これで、私は異なった言語で "hello"と "welcome to"という言葉を翻訳したいと思います。しかし、私のシステムは本当に醜く非効率です。

"lang"属性に依存するファイルがあります。 expample についてLANG負荷に行く= "EN" イム:

english_vars.js 

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

LANG負荷に行く= "ES" イム場合:

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

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

はその後、私のテンプレートは次のようになります

このテンプレートエンジンの翻訳を改善する方法はありますか?

注:

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

その後、あなたが渡すことができます。翻訳はあなたがJSONまたはJavaScriptオブジェクト(ハッシュ)などのローカライズ辞書を持っている場合は、データ

答えて

1

が同じ.jsonに来てはなりませんこのような

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

0123ヘルパー変数などのデータとは別に用語、

言語を変更するときは、適切なローカライズ語を入力してください。

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


別の可能性を参照してくださいが翻訳しJsRender自体を使用して、各言語のテンプレートを翻訳することです。あなたが唯一の用語を翻訳して、単純に他のタグを変更せずに、変換ステップのための区切り文字を変更します。

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

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

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

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

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

は、両方のアプローチがあるhttp://www.jsviews.com/#settings/delimiters


を参照してください。 this jsfiddle

関連する問題