Symfony перевод игнорирует фигурные скобки в параметрах - PullRequest
1 голос
/ 13 января 2020

При использовании модуля перевода 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 или я ее неправильно использую?

1 Ответ

0 голосов
/ 16 апреля 2020

Я столкнулся с той же проблемой и спросил: https://github.com/symfony/symfony/issues/36461

Ответ: вам нужно передать ['{test}' => 'error'] в качестве массива параметров, включая фигурные скобки в строке ключа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...