【问题标题】:Symfony translation ignores curly braces in parametersSymfony 翻译忽略参数中的花括号
【发布时间】:2020-04-29 16:04:13
【问题描述】:

当使用 symfony 翻译模块翻译一段代码时,symfony 似乎忽略了花括号。

 <trans-unit id="test">
    <source>test<source>
    <target>
        test {test}
    </target>
</trans-unit>

使用以下Translator 配置时。

$translator = new Translator("en");
$translator->addLoader('xlf', new XliffFileLoader());
$translator->addResource('xlf', 'translations/messages+intl-icu.en.xlf', 'en');
$translator->setFallbackLocales(["en"]);

$message = $translator->trans("test", ["test" => "error"], null, "en");

产生以下翻译:error {error} 而我期望test error

这是我的配置中的错误还是我误解了应该如何进行替换?

我的symfony版本如下。

"symfony/translation": "v5.0.2",
"symfony/config": "v5.0.2"

根据文档(https://symfony.com/doc/current/translation/message_format.html

Everything within the curly braces ({...}) is processed by the formatter and replaced by its placeholder:

这是 Symfony 中的错误还是我用错了?

【问题讨论】:

    标签: php symfony translation xliff


    【解决方案1】:

    我遇到了同样的问题,问:https://github.com/symfony/symfony/issues/36461

    答案:你需要将['{test}' =&gt; 'error']作为参数数组传递,包括键字符串中的花括号。

    【讨论】:

    • 遗憾的是文档中没有这样说。即使这不是我希望的解决方案,我也会接受。
    猜你喜欢
    • 2018-07-19
    • 2017-04-12
    • 2011-09-25
    • 1970-01-01
    • 2011-05-08
    • 2019-01-26
    • 2012-05-09
    • 2019-10-12
    • 1970-01-01
    相关资源
    最近更新 更多