【问题标题】:Symfony 2: Translate to default localeSymfony 2:翻译到默认语言环境
【发布时间】:2014-12-28 17:14:29
【问题描述】:

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

所以我在树枝模板中写了

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

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

【问题讨论】:

  • 尝试彻底删除缓存目录。此外,如果找不到翻译,则会以调试模式记录 - 检查您的日志以查看是否找不到翻译。此外,您不必指定“消息”,因为这是默认设置,您只需执行{{ 'Symfony'|trans }}
  • 我删除了缓存目录,它成功了!非常感谢!
  • 没问题!我将其添加为答案

标签: php symfony localization translation


【解决方案1】:

确保您的缓存已完全删除。您可能在添加英文翻译后重置缓存,但不是您的后备。请参阅Symfony documentation 了解更多信息:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-29
    相关资源
    最近更新 更多