我是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:\wamp64\www\MyWebSite/translations\messages.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)
这些是我的文件:
应用程序/配置/ 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>
我在Twig文件中使用tanslation
{% trans %} Symfony is great { endtrans %}
我希望你能帮助我!!
答案 0 :(得分:0)
XML解析器正在大喊大叫,因为文档声明需要在第一行。所以切换这两行,该错误应该消失:
<!-- messages.fr.xlf -->
<?xml version="1.0"?>
翻译可能无法正常工作,因为模板中的字符串周围有空格,而不是xml文件中的空格:
<source>Symfony is great</source>
{% trans %} Symfony is great { endtrans %}