在树枝中使用树枝翻译



我的树枝模板里有一个胡子模板。我在javascript中使用moustache模板,它包含一些文本和JS变量。

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

现在我需要对此页面进行国际化,但我的树枝翻译无法逐字逐句地工作。有什么优雅的方法可以做到这一点吗?我可能会有许多不同的文本需要翻译,所以一直结束和开始一个新的逐字记录块并不理想。

通过删除逐字块并将 Twig 分隔符自定义为与 Mustache 分隔符不同,例如用[[]]替换{{}}(如 Twig 文档中所述),您将能够在同一模板中使用 Twig 和 Mustache:

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

由于您的大多数模板已经在 Twig 中,因此您可以改为更改胡须分隔符:

$(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);
});

相关内容

  • 没有找到相关文章

最新更新