我的枝条模板中有这个:
{% trans %}lala{% endtrans %}
{{ 'Presentation'|trans|raw }}
and lots of not translatable twig html in between.
它应用翻译的唯一方法是在控制器操作中我调用翻译器:
$t = $this->get('translator')->trans('lala');
如果我对上面的行进行评论,则不会进行翻译。我怎么强迫呢? (好吧,我做错了什么?)
有关详细信息,请参阅我的config.yml文件:
framework:
translator: { fallback: %locale% }
default_locale: "%locale%"
我通过路由获取了locale变量:
my_bundle_name:
resource: "@MyBundle/Resources/config/routing.yml"
prefix: /{_locale}/add
requirements:
_locale: en|ja
编辑: 这些文件的位置与普通的symfony项目类似。 我的树枝模板位于:
src/COMP/myBundle/Resources/views/entity1/new.twig.html
唯一的区别可能是它扩展了位于
中的基本模板src/COMP/myBundle/Resources/views/base.html.twig
翻译也位于Resources文件夹中:
src/COMP/myBundle/Resources/translations/messages.en.xlf
src/COMP/myBundle/Resources/translations/messages.ja.xlf
src/COMP/myBundle/Resources/translations/validators.ja.xlf
控制器也位于默认位置:
src/COMP/myBundle/Controller/myentitycontroller.php
我一直在继续开发这个技巧,明确地打电话给翻译,现在它突然工作,即使没有解决方法。我无法像以前那样重复同样的事情。
我仍然很好奇为什么会发生这种情况,但也许我应该删除这个问题......
我的第一个猜测是我试图翻译一个“偏”的模板。我的意思是,从base.html.twig我调用了一个控制器的动作:
{{ render(controller('COMPMyBundle:Default:Welcome', {'aprequest': app.request})) }}
但我无法重复同样的事情。 (之前,当发生在我身上的时候,现在,当我试图获得相同的beheaviour时,我清理了几次缓存,所以它不应该那样)。