【问题标题】:gender related translations with transchoice and lingohub带有 transchoice 和 lingohub 的性别相关翻译
【发布时间】:2015-09-11 09:25:25
【问题描述】:

我一直在尝试为此寻找解决方案,但没有找到适合我的答案。基本上我想要的是 Symfony2 中使用 twig 和服务lingohub 的性别特定翻译。

我们的英文翻译文件(XLIFF 格式)如下所示:

<trans-unit id="1234" resname="some_key">
  <source xml:lang="en">My text goes here </source>
  <target xml:lang="en">My text goes here </target>
</trans-unit>

对于另一种语言,它看起来像这样:

<trans-unit id="2345" resname="some_key">
  <source xml:lang="en">My text goes here </source>
  <target xml:lang="es">My text in Spanish goes here</target>
</trans-unit>

我现在想要的是针对特定性别的翻译。 我很想使用 transchoice 并使用我文件中的翻译

Symfony doc我只能找到静态文本的例子。

问题是我必须在 twig 中放入什么以及在翻译文件中放入什么?

我尝试将选项放在 twig 中,但它根本无法翻译。 我还尝试将一个键和选项放在翻译文件中,但这也不起作用。它总是选择第二个选项并按原样打印文本(包括女性的 {f})

我想要的是这样的:

{% transchoice gender with {'%lastname%': user.lastname}  %}
  {f} key_for_female |{m} key_for_male | {u} key_for_unknown
{% endtranschoice %}

这将被替换为类似的翻译

<trans-unit id="1234" resname="key_for_female">
  <source xml:lang="en">Hello Ms %lastname% </source>
  <target xml:lang="en">Hello Ms %lastname%  </target>
</trans-unit>

所以输出最后是“Hello Ms Doe”。什么是正确的语法? ;)

【问题讨论】:

  • 也许捆绑包可以提供帮助:github.com/webfactory/icu-translation-bundle
  • 我找到了一个使用普通翻译的简单解决方法。我在 twig 中使用来自我们已经拥有的不同跨域的现有密钥定义了一个新变量,并使用了这个变量。示例:{% set salutation = (user.gender) |反式({},'user_gender')%}; user_gender 在此是被翻译为正常的键(例如,“f”将解析为 Ms)。
  • 很好,做出回答并接受它以帮助他人。

标签: symfony twig translation


【解决方案1】:

我找到了一个使用正常翻译的简单解决方法。我在 twig 中定义了一个新变量,其中包含来自我们已经拥有的不同跨域的现有密钥并使用此变量。示例:

{% set salutation = (user.gender) | trans({}, 'user_gender')%}; 

user_gender 在此是被翻译为正常的键(例如,“f”将解析为 Ms)。

【讨论】:

    猜你喜欢
    • 2012-06-09
    • 2013-09-16
    • 2017-06-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-04
    • 2021-04-01
    • 2010-11-22
    相关资源
    最近更新 更多