我正在试验 Symfony 2 翻译组件。我的默认区域设置是 el_GR,我的备用区域设置是 en_US。我已经设置了 config.yml,创建了 2 个翻译文件:messages.el_GR.yml 和 messages.en_US.yml,然后清除了应用程序/缓存。我已经在两种语言环境中翻译了 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。可以以某种方式完成吗?
最佳答案
确保您的缓存已完全删除。您可能会在添加英文翻译后重置缓存,但不会重置缓存。请参阅Symfony documentation欲了解更多信息:
Each time you create a new translation resource (or install a bundle that includes a translation resource), be sure to clear your cache so that Symfony can discover the new translation resources:
有时,仅运行 cache:clear
命令对我来说会失败,在这种情况下,我只需手动删除 app/cache
目录的内容。
此外,如果找不到翻译,则会以 Debug模式记录在翻译 channel (dev.translation.log) 中 - 检查日志以查看是否找不到翻译。另外,您不必指定“messages”,因为这是默认值,您只需执行 {{ 'Symfony'|trans }}
关于php - 交响乐2 : Translate to default locale,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27678711/