我正在尝试在一些Twig模板上做一些i18n。 index.php中的相关代码如下:
// Twig
$app->register(new Silex\Provider\TwigServiceProvider(), array(
'twig.path' => __DIR__ . '/../src/views',
));
$twig = new \Twig_Environment($app['twig.loader.filesystem']);
$twig->addExtension(new \Twig_Extensions_Extension_I18n());
// User Controller Service Provider for SimpleUser
$app->register($u = new SimpleUser\UserServiceProvider());
$app['twig.loader.filesystem']->addPath(__DIR__.'/../src/views/user','user');
$app['user.controller']->setLayoutTemplate('layout.twig');
$app->mount('/silex-ror/user', $u);
然后,在渲染的树枝模板中,我写道:
<h1>{% trans %}List users{% endtrans %}</h1>
但是我收到了一个错误:
Unexpected tag name "trans"
由于添加扩展时没有出现任何错误,我认为当我尝试渲染模板时,它只是被完全忽略了,但我不确定我在哪里犯了错误。
任何帮助表示感谢。
答案 0 :(得分:2)
在注册翻译提供商之前:
$app->register(new Silex\Provider\TranslationServiceProvider(), array(
'locale_fallbacks' => array('en'),
));
然后注册Twig:
$app->register(new Silex\Provider\TwigServiceProvider(), array(
'twig.path' => __DIR__ . '/../src/views',
));
无需注册Twig i18n扩展名!