【问题标题】:Symfony/Twig not translating correctly when using message placeholders使用消息占位符时 Symfony/Twig 无法正确翻译
【发布时间】:2012-03-03 00:38:59
【问题描述】:

我正在尝试将消息占位符与 Twig 模板引擎一起使用。我的navlist.it.yml 存储此消息及其占位符:

users:
  label: Gestione utenti %app%

在我的 Twig 模板中,我想将应用名称作为字符串传递。所以我正在做的是:

<ul class="nav nav-list">
    <li class="nav-header">
        {{ 'users.label'|trans({'app' : 'Fid'}, 'navlist')|raw }}
    </li>
</ul>

注意我使用raw 因为users.label 可能包含HTML。输出就是:

<li class="nav-header">Gestione utenti %Fid%</li>

所以消息被翻译但额外的%...%被添加。我错过了什么?

【问题讨论】:

  • 你试过{'%app%': 'Fid'}吗?
  • @Maerlyn 谢谢你,工作。如果需要,请随时添加答案。

标签: symfony translation twig


【解决方案1】:

百分号是模式的一部分,因此您应该将它们添加到翻译值数组的键中,如下所示:

{{ 'users.label'|trans({'%app%' : 'Fid'}, 'navlist')|raw }}

【讨论】:

  • 此外,如果您通过 PHP 从控制器内部进行翻译,您可能会执行类似 $page_title = $this-&gt;get('translator')-&gt;trans('Templates from category %category_title%',['%category_title%'=&gt;$category_title]); 的操作
猜你喜欢
  • 2021-02-08
  • 2012-01-12
  • 2014-05-02
  • 1970-01-01
  • 2015-12-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多