使用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();
它确实显示了翻译。
不过,我不知道如何将所有东西连在一起......
答案 0 :(得分:1)
您是否尝试在渲染树枝视图之前设置区域设置?
public function exampleAction(Request $request) {
$locale = 'de'; // Set the language
$request->setLocale($locale);
$content = $this->renderView($view, $params);
// Maybe return to default locale....
}