2016-12-01 6 views
1

私の小枝のテンプレートの中にひげそりのテンプレートがあります。私はjavascriptで口ひげテンプレートを使用し、それはいくつかのテキストとJS変数を含んでいます。Twig内のMustacheの中でtwig翻訳を使用

{# _partial.html.twig #} 
{% verbatim %} 
    <script id="insuranceOptionTpl" type="text/template"> 
     {{ #. }} 
      <strong>My template is {{ adjective }}</strong> 
     {{ /. }} 
    </script> 
{% endverbatim %} 

このページは国際化する必要がありますが、私の小枝の翻訳は逐語的には機能しません。それを行うためのエレガントな方法はありますか?おそらく、翻訳するテキストがたくさんあるので、新しい逐語的なブロックをすべて終了して開始するのは理想的ではありません。逐語的なブロックを除去することにより、および、口ひげのものよりも貴様こと小枝の区切り文字をカスタマイズ(in Twig docを説明するように)[[例えば]]によって{{}}を置き換えることにより、

答えて

2

、あなたは同じに小枝や口ひげを使用することができますテンプレート:あなたのテンプレートのほとんどが小枝に既にある通り

$twig = new Twig_Environment(); 

$lexer = new Twig_Lexer($twig, array(
    'tag_comment' => array('{#', '#}'), 
    'tag_block'  => array('{%', '%}'), 
    'tag_variable' => array('[[', ']]'), 
    'interpolation' => array('#{', '}'), 
)); 
$twig->setLexer($lexer); 

は、あなたの代わりに口ひげの区切り文字を変更することができます。もちろん

$(document).ready(function() { 
    var output = $("#output");  
    var template = $("#insuranceOptionTpl").html(); 

    //Custom tags for Mustache 
    var customTags = [ '[[', ']]' ]; 
    Mustache.tags = customTags; 

    // render string 
    var data1 = "Hello world!"; 
    var html = Mustache.render(template, data1); 
    output.append(html); 
}); 
+0

ああ、!私はJS翻訳を使用することを考えていましたが、これは実際にはエレガントではありません。私はあまりにも多くの小枝テンプレートとちょうど少数のひげそりのものを持っている。 Mustacheの区切り記号だけを変更することはできますか? – ecc

関連する問題