php - 交响乐2 : Translate to default locale

标签 php symfony localization translation

我正在试验 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/

相关文章:

php - 用户权限功能php的简便方法

authentication - 在早期阶段使用 Symfony2 开发时关闭防火墙?

c++ - 将 std::string 从一种语言环境转换为另一种语言环境

php - 我如何为网站创建安装程序。 PHP 数据库

PHP & MySQL - 如何在下拉菜单中显示选定的值

php - 使用 .htaccess (PHP) 即时创建子域

javascript - symfony 中的 Bootstrap 模板

command-line - Symfony2 命令行应用程序在几分钟后是 "Killed"

Java 语言环境变体 : does it exist? 的 .NET 对应项

javascript - 使用 Knockoutjs 动态调整页面内容以适应用户选择的语言?