我正在翻译我的Symfony2网站,除了布局外似乎工作得很好......我的模板扩展了layout.html.twig,其中包含翻译的菜单。当我用法语时,一切正常(这是我的默认语言环境),但是当我切换到英语时,菜单保留为法语,页面的其余部分(包含在我的模板中)翻译为英语。有人知道发生了什么吗?
模板(services.html.twig)
{% extends "GslsAppBundle::layout.html.twig" %}
布局(layout.html.twig)
<div id="menu">
<a href="{{ path('gsls_app_homepage') }}" class="accueil">{{ "menu.accueil"|trans|raw }}</a> |
<a href="{{ path('gsls_app_services') }}" class="services">{{ "menu.services"|trans|raw }}</a> |
<a href="#" class="reservation">{{ "menu.reservation"|trans }}</a> |
<a href="#" class="contact">{{ "menu.contact"|trans }}</a>
</div>
messages.fr.yml
menu:
accueil: Accueil
services: Services
reservation: Réservation
contact: Contactez-nous
messages.en.yml
menu:
accueil: Home
services: Services
reservation: "Book online"
contact: "Contact us"
谢谢!
答案 0 :(得分:0)
我可以使用其中一种翻译,但不能使用其他翻译,并且不知道为什么。如果您也有翻译问题,请阅读此内容。
首先,标准清单:
php app/console cache:clear
命令清除缓存。$this->getRequest()->setLocale('en');
,也可以尝试直接在控制器中使用$this->get('translator')->trans('Some message');
。在翻译文件中留意BOM
。翻译yml文件的翻译人员使用UTF8,这是好的,但编辑他在文件的开头使用了留空BOM。这很危险,可能是因为PHP's UTF8 BOM bug,因为它会在文件的第一部分添加几个不可见的字符。
顺便说一下,debugging your translations也可能非常有帮助。
Btw2,抱歉两次发送此答案,但我无法发表评论并链接到原始问题:)