【问题标题】:Symfony 2 - Bidirectionnal translationSymfony 2 - 双向翻译
【发布时间】:2016-10-05 12:25:22
【问题描述】:

我必须翻译一个页面内容可以用英语或法语编写的网站。
所以我在我的翻译库中制作了两个文件:

  • message.en.yml(当区域设置为 en_us 或 en_gb 时将 法语翻译成英语
  • message.fr.yml(当区域设置为fr时将英语翻译成法语

为了解释我的问题,我举个例子,Hardware | Matériel这对词。

当使用 fr 语言环境查看页面时,Hardware 需要由 Matériel 翻译。
所以我把:Hardware: Matériel 放在我的message.fr.yml 中。

当使用 en_us 或 en_gb 语言环境查看页面时,Matériel 需要由 Hardware 翻译。
所以我把:Matériel: Hardware 放在我的message.en.yml 中。

此时的翻译行为是:
当使用 fr 语言环境查看页面时,Hardware 被正确翻译。
当使用 en_gb 语言环境查看页面时,Hardware 未正确翻译。
当使用 en_us 语言环境查看页面时,HardwareMatériel 错误地翻译。

更有趣的是,如果我清除 Symfony 缓存,行为会发生变化,有时所有内容都会被 Matériel 翻译,有时什么都不会...
一周前,我只需要将法语翻译成英语,只需使用 message.en.yml 文件就可以完美运行,也许当您使用多个文件时我没有注意到。
有人能解释一下如何处理这两种方式的翻译吗?

【问题讨论】:

    标签: php symfony internationalization locale translation


    【解决方案1】:

    使用变量。

    我正在使用这样的翻译:

    messages.en.yml

    string.hardware: Hardware
    

    messages.fr.yml

    string.hardware: Matériel
    

    在树枝上:

    {{ "string.hardware"|trans }}
    

    与动态变量一起使用:

    string.hardware: %variable% Hardware
    

    在树枝中的用法:

    {{ "string.hardware"|trans({"%variable%": your_variable_or_string}) }}
    

    【讨论】:

    • 我不认为我可以这样做,因为我翻译的东西通常是变量,例如有一个地方我循环对象属性并翻译对象的每个属性。
    • 谢谢,我要试试这个。
    • 我认为我们并不了解对方。如果我做对了,您在代码中显示的内容将允许我翻译硬件并将变量包含在翻译中。我的意思是我有变量,有时恰好是单词Hardware,有时是Matériel。所以我把它们翻译成这样var | trans
    【解决方案2】:

    好的,我明白我做错了什么。 对于这种情况,您必须:

    • 在我的 message.fr.yml 中输入:Hardware: Matériel。 (如果 fr 语言环境翻译 Hardwareby Matériel
    • 在我的 message.en.yml 中输入:Matériel: Hardware。 (如果在语言环境中翻译 Matérielby Hardware
    • 在我的 message.en.yml 中输入:Hardware: Hardware。 (如果在语言环境中不翻译 Hardware

    我认为这一切都是因为翻译后备,我要求翻译Hardwareso symfony 在 message.en.yml.first 中寻找一个(因为语言环境是 en),如果它没有找到任何,它在 message.fr.yml 中查找它,在这里它找到了 Hardware: Matérielso 它使用它。
    我仍然不明白为什么有时,根据缓存,翻译在 en_gb 语言环境下运行良好......

    【讨论】:

      猜你喜欢
      • 2014-12-22
      • 1970-01-01
      • 1970-01-01
      • 2012-12-20
      • 1970-01-01
      • 1970-01-01
      • 2015-04-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多