我面临一个问题,我在symfony2 twigjs和assetic中使用它来动态地呈现我的一些模板。
我看过医生,资料来源和测试。
TransFilterCompilerTest.php/testCompileDynamicTranslations中,似乎
{{ 'foo' | trans }}在我的小枝模板中
将在twigjs模板中替换为
在我的Twigjs One中
但在我编译的js中,我只有'this.env_.filter("trans",'...
你知道为什么吗?
谢谢!

最佳答案

经过进一步的调查,我发现虽然翻译编译过滤器是几个月前在jmstwigjsbundle中添加的,但是所需的特性只是最近才添加到assetic中。使用库的发布版本将不起作用。现在,必须使用git的master。
使用DEPS文件…

[assetic]
    git=http://github.com/kriswallsmith/assetic.git

[AsseticBundle]
    git=http://github.com/symfony/AsseticBundle.git
    target=/bundles/Symfony/Bundle/AsseticBundle

必须将网站支持的语言指定为参数。我把它添加到我的config.yml文件中。
parameters:
    assetic.variables:
        locale: ['en', 'fr']

最后,文件集必须表明它根据区域设置而变化。
{% javascripts vars=["locale"]
    '@AcmeBundle/Resources/views/Default/some_template.html.twig'
    filter="twig_js"
%}

以下是完整性模板示例:
{% twig_js name="some_template" %}
<b>{{'test.say.hello' | trans({"%name%": name|default("World")})}}</b>

还必须在模板定义之前加载twig.js引导文件。按预期调用模板:
Twig.render(some_template, {name: 'CoBaLt2760'})

10-06 14:19