2016-12-12 3 views
0

Использование Twig Я представляю конкретный вид. Мне нужно, чтобы это представление было переведено на выбранный мной язык. Я отобразить вид, используя:Twig перевод всего текста визуализированного представления

return $this->setup->twig->display($view, $params); 

Где $view это имя *.html.twig шаблона и $params массив с параметрами, мне нужно пройти.

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

В настоящее время я включил .yml-файлы для разных языков, и я также заменил текст внутри представлений соответствующими соответствующими значениями из файла yml.

Помимо всего прочего, я также загрузил переводчик Twig в файл отдельно от остальной части проекта. Он имеет следующий код:

require dirname(__DIR__) . '/vendor/autoload.php'; 

use Symfony\Component\Translation\Translator; 
use Symfony\Component\Translation\Loader\ArrayLoader; 

class Translation 
{ 
    public $translator; 

    public function translator() 
    { 
     $this->translator = new Translator('fr_FR'); 
     $this->translator->addLoader('array', new ArrayLoader()); 
     $this->translator->addResource('array', array(
      'Symfony is great!' => 'J\'aime Symfony!', 
     ), 'fr_FR'); 

     var_dump($this->translator->trans('Symfony is great!')); 
    } 
} 

$show = new Translation; 
$show->translator(); 

И он действительно отображает перевод.

Тем не менее, я не знаю, как соединить все вместе ....

+1

Посмотрите на http://symfony.com/doc/current/translation.html –

+0

Symfony уже, что вам нужно, просто использовать его, посмотрите на ссылку выше в разделе «Переводы в шаблонах». – yceruto

ответ

1

ли вы пытаетесь установить локаль перед визуализацией ваш взгляд прут?

public function exampleAction(Request $request) { 
    $locale = 'de'; // Set the language 
    $request->setLocale($locale); 

    $content = $this->renderView($view, $params); 

    // Maybe return to default locale.... 
} 
+0

Благодарим вас, идея этого кода решила множество моих проблем. Единственная проблема, с которой я сталкиваюсь сейчас, это то, что, когда я меняю язык локали, я пытаюсь отобразить представление, оно не переводится. Однако, если я использую функцию trans() со строкой, например var_dump ($ this-> translator-> trans ('Symfony is great!')); Тогда это переведено – Dimentica

+0

Можете ли вы показать мне свой шаблон? Используете ли вы транс-транс-выбор в своем шаблоне для перевода вашего сообщения? Пример: {{'dummy.text' | trans}} –

+0

Я создал тестовый шаблон, в нем у меня есть только {% trans%} отличный {% endtrans%}, а в моем файле messages.it.yml у меня отличное: \t «Supremo» – Dimentica

Смежные вопросы