【问题标题】:Symfony translations in Twig templates with variables带有变量的 Twig 模板中的 Symfony 翻译
【发布时间】:2021-11-12 12:14:08
【问题描述】:
{% trans with {'%name%': 'Hans'} %}Hello %name%{% endtrans %}

{{ 'Hello filter %name%'|trans({'%name%': 'Hans'}) }}

这会产生:

Hello Hans 

Hello filter Hans

当我这样做时

php bin/console translation:update --force en

翻译文件已创建

<?xml version="1.0" encoding="utf-8"?>
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">
  <file source-language="en" target-language="en" datatype="plaintext" original="file.ext">
    <header>
      <tool tool-id="symfony" tool-name="Symfony"/>
    </header>
    <body>
      <trans-unit id="SzX5ua9" resname="Hello %name%">
        <source>Hello %name%</source>
        <target>__Hello %name%</target>
      </trans-unit>
      <trans-unit id="6l2Ebbm" resname="Hello filter %name%">
        <source>Hello filter %name%</source>
        <target>__Hello filter %name%</target>
      </trans-unit>
    </body>
  </file>
</xliff>

当我刷新网站时 - 变量不再被替换:

__Hello %name% 

__Hello filter %name%

我做错了什么?如何转储翻译并保留变量替换?我需要修改翻译文件才能完成这项工作吗?

【问题讨论】:

    标签: php symfony


    【解决方案1】:

    使用 icu 翻译格式时 - 必须修改占位符:

    https://symfony.com/doc/current/translation/message_format.html#message-placeholders

    <target>__Hello filter {name}</target>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-05
      • 1970-01-01
      • 2012-07-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多