当使用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中的错误还是我用错了?
我遇到了同样的问题并问:https://github.com/symfony/symfony/issues/36461
答:您需要传递['{test}' => 'error']
作为参数数组,包括键字符串中的大括号。