0

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

http://symfony.com/doc/current/book/translation.html#creating-translations

symfony.is.great -> J'aime Symfony2当我的语言是法语时,我可以运行关键字。但是我该如何翻译symfony.is.great -> Symfony2 is great呢?把它翻译成英文。我错过了文档中的那部分,或者我真的不明白!我的默认语言是英语!

我确实有messages.fr.xliff 和messages.en.xliff。

我的部分messages.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>
...
4

2 回答 2

2

您共享的文档部分仅向您展示了定义翻译键(真实消息或关键字)的不同方式。

看看文档的这一部分。要使翻译过程正常工作,您必须在两个消息目录文件中使用相同的键。然后根据_locale会话中存储的内容加载正确的翻译。

此外,每次创建新的翻译资源时,请务必清除缓存,以便将新文件考虑在内。

于 2012-12-28T13:48:33.757 回答
1

尝试设置翻译服务

$translator = $this->get('translator');

然后设置用户语言环境($language = 'en' 或 'fr')

$translator->setLocale($language);

或者

$translator->setFallbackLocales(array($language));

在此之后,您可以调用翻译功能

$translator->trans('symfony.is.great');

确保您在法语和英语目录中使用相同的关键字,并尝试清除缓存

php bin/console cache:clear --no-warmup
于 2018-01-05T09:08:39.463 回答