2012-12-28 23 views
0

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

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

回答

2

section of the doc您共享只是告诉你不同的方式,你可以定义你的翻译键(实信息或关键字)。

看看文档的this part。为使translation process正常工作,您必须在两个消息目录文件中使用相同的密钥。然后根据会话中存储的_locale加载正确的翻译。

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

+0

是的,我已经看到了这一点,但是这是没有的事。我如何翻译symfony.is.great - > Symfony2很棒。我确实有一个messages.en.xliff。是的,我清除了缓存。 – craphunter

+0

当_locale设置为“en_XX”时,Symfony将从右列表“messages.en.xliff”加载翻译消息。检查您的区域设置?你也可以[强制](http://symfony.com/doc/current/book/translation.html#forcing-the-translator-locale)。 –

+0

好吧,我试着用法语和英语强制它。我猜symfony不加载我的messages.en.xliff文件。但是我通过命令rm清除了缓存。我想这是另一个问题。我得到一个错误,当我做缓存:清除...供应商/小枝/小枝/库/小枝/ Lexer.php ...减少33554432字节耗尽的内存大小。任何想法? – craphunter

0

尝试设置翻译服务

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

然后设置用户区域设置($语言= 'EN' 或 'FR')

$translator->setLocale($language); 

或者

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

后这个,你可以打电话翻译功能

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

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

php bin/console cache:clear --no-warmup