Locale关键字翻译英文

时间:2012-12-28 13:38:36

标签: symfony locale

我阅读了教程,翻译工作正常。我的问题是处理关键字。在这里你可以看到一个例子:

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>
...

2 个答案:

答案 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