我阅读了教程,翻译工作正常。我的问题是处理关键字。在这里你可以看到一个例子:
http://symfony.com/doc/current/book/translation.html#creating-translations
当我的语言是法语时,我可以运行关键字symfony.is.great -> J'aime Symfony2
。但是我该如何翻译symfony.is.great -> Symfony2 is great
?把它翻译成英文。我错过了文档中的那部分,或者我没有真正理解它!我的默认语言是Englisch!
我有一个messages.fr.xliff和messages.en.xliff。
我的部分信息.en.xliff:
<?xml version="1.0" encoding="UTF-8" ?>
<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
<file source-language="en" datatype="plaintext" original="file.ext">
<trans-unit id="3">
<source>symfony2.is.great</source>
<target>Symfony is great</target>
</trans-unit>
...
答案 0 :(得分:2)
您分享的section of the doc只是向您展示了定义翻译密钥的不同方式(真实消息或关键字)。
查看文档的this part。要使translation process正常工作,您必须在两个消息目录文件中使用相同的密钥。然后根据会话中存储的_locale
加载正确的翻译。
此外,每次创建新的翻译资源时,请务必清除缓存,以便考虑新文件。
答案 1 :(得分:0)
尝试设置翻译服务
$translator = $this->get('translator');
然后设置用户区域设置($ language =&#39; en&#39;或&#39; fr&#39;)
$translator->setLocale($language);
或者
$translator->setFallbackLocales(array($language));
此后,您可以调用翻译功能
$translator->trans('symfony.is.great');
请确保您在法语和英语目录中使用相同的关键字,并尝试清除缓存
php bin/console cache:clear --no-warmup