Перевод Symfony 4 - PullRequest
       11

Перевод Symfony 4

0 голосов
/ 09 июня 2018

Я пытался поработать с этим: https://symfony.com/doc/current/translation.html

Но, похоже, ни у кого нет проблем с переводами, я должен сделать это совершенно неправильно.

Моя локальустановите значение 'fr' в 'services.yaml'

У меня есть свои message.en.xlf и message.fr.xlf

Вот мой .fr:

<?xml version="1.0"?> 
<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
    <file source-language="en" target-language="fr" datatype="plaintext" original="file.ext">
        <body>
            <trans-unit id="homepage_presta">
                <source>homepage.presta</source>
                <target>Les prestations</target>
            </trans-unit>
        </body>
    </file>
 </xliff>

Попытка в контроллере (предупреждение "отсутствует ключ перевода"):

var_dump($translator->trans("homepage_presta"));

или в ветке:

{{ 'homepage.presta'|trans }}  

Но ничего не работает .. В конце я хотел быпереводить на нужный язык в зависимости от языка браузера, а затем на некоторый язык, если он выбран на панели навигации (например, в файле cookie?).

1 Ответ

0 голосов
/ 09 июня 2018
/**
 * @Route("/test/translation")
 */
public function translationAction(TranslatorInterface $translator)
{
    dump($translator->trans("homepage.presta"));

    return new Response('<html><body>testaroni</body></html>');
}

работает для меня ... несколько вещей ...

  1. доменом перевода по умолчанию являются сообщения, а не сообщения, поэтому ваш файл должен быть translations / messages.fr.xlf

  2. Я не привык к xlf, но, похоже, вам нужно использовать <source>homepage.presta</source> для перевода, а не id homepage_presta

  3. Не забывайте очищать кэш каждый раз, когда создаете новый файл перевода php bin/console cache:clear

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