Symfony 2:转换为默认语言环境

时间:2014-12-28 17:14:30

标签: php symfony localization translation

我正在试验Symfony 2翻译组件。我的默认语言环境是el_GR,我的备用语言环境是en_US。我已经设置了config.yml,我创建了2个翻译文件:messages.el_GR.yml和messages.en_US.yml,然后清除了app / cache。我在两个语言环境中都翻译了Symfony这个词。所以当我使用命令php app / console translation时:debug en_US abcNikBundle我得到:

State | Id       | Message Preview (en_US) | Fallback Message Preview (el_GR)
      | Symfony  | Symfony_US              | Symfony_GR

所以在一个twig模板中我写

{{ 'Symfony'|trans({},'messages') }} 

当我使用en_US语言环境时它工作正常(它打印Symfony_US)但是当我使用我的默认语言环境(el_GR)时,它会输出Symfony而不是Symfony_GR。能以某种方式完成吗?

1 个答案:

答案 0 :(得分:3)

确保您的缓存已完全删除。您可能会在添加英语翻译后重置缓存,但不会重置您的后备。有关详细信息,请参阅Symfony documentation

  

每次创建新的翻译资源(或安装包含翻译资源的软件包)时,请务必清除缓存,以便Symfony可以发现新的翻译资源:

有时只运行cache:clear命令对我来说失败,在这种情况下我只是手动删除app/cache目录的内容。

此外,如果找不到翻译,则会在翻译频道( dev.translation.log )中以调试模式记录 - 检查日志以查看是否找不到翻译。此外,您不必指定“消息”,因为这是默认值,您可以{{ 'Symfony'|trans }}