我是Symfony 3的新手,希望你能帮助我。
我想在我的项目中使用翻译组件,我按照以下步骤"https://symfony.com/doc/3.4/translation.html#configuration"进行操作,但是当我使用 CLI 清除缓存时,出现此错误并且翻译不起作用:
>php bin/console cache:clear
// Clearing the cache for the dev environment with debug true
In XliffFileLoader.php line 56:
Unable to load "C:wamp64wwwMyWebSite/translationsmessages.en_US.xlf": [ERROR 64] XML declaration allowed only at the start of the document (in n/a - line 2, column 6)
In XmlUtils.php line 62:
[ERROR 64] XML declaration allowed only at the start of the document (in n/a - line 2, column 6)
这些是我的文件:
- app/config
/config.yml
parameters: locale: en framework: #esi: ~ translator: { fallbacks: ['%locale%'] }
翻译\messages.fr_FR.xlf
<!-- messages.fr.xlf --> <?xml version="1.0"?> <xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2"> <file source-language="en" datatype="plaintext" original="file.ext"> <body> <trans-unit id="symfony_is_great"> <source>Symfony is great</source> <target>J'aime Symfony</target> </trans-unit> </body> </file> </xliff>
我在树枝文件中使用棕褐色
{% trans %} Symfony is great { endtrans %}
希望你能帮到我!!
XML 解析器正在对你大喊大叫,因为文档声明需要在第一行。因此,切换这两行,该错误应该消失:
<!-- messages.fr.xlf -->
<?xml version="1.0"?>
翻译可能不起作用,因为模板中的字符串周围有空格,而不是 xml 文件中的空格:
<source>Symfony is great</source>
{% trans %} Symfony is great { endtrans %}