Как передать Symfony переведенные предложения ветке? - PullRequest
2 голосов
/ 08 октября 2019

Я использую Twig, twig-bridge, symfony / form и symfony / translationator v4. Не Symfony рамки. Я запутался в переводчике. В {root} /translations/messages.fr.php я написал:

// translations/messages.fr.php
return [
    'Symfony is great' => "J'aime Symfony",
];

В основном скрипте в {root} я написал:

setlocale(LC_ALL, 'fr_FR');
$translator = new Translator('fr');
$translated = $translator->trans('Symfony is great');
var_dump($translated); // Not translated!

и в шаблоне Twig я написал:

<h1>{% trans %}Symfony is great{% endtrans %}</h1>

Но это не переводится. Я все еще получаю английскую версию. Какую ошибку я сделал? Должен ли я переместить {root} /translations/messages.fr.php куда-нибудь еще, поскольку это автономный, а не фреймворк Symfony?

1 Ответ

3 голосов
/ 08 октября 2019

Если вы используете Symfony Translator без фреймворка, вам нужно вручную настроить пути к файлам перевода, иначе Translator не сможет их найти, и любые попытки перевода будут возвращаться к исходной строке.

Я никогда не делал этого сам, но согласно документации , это должно работать для вас:

$translator->addLoader('php', new PhpFileLoader());
$translator->addResource('php', 'path/to/messages.fr.php', 'fr_FR');
...