【发布时间】:2014-01-09 02:15:51
【问题描述】:
我正在尝试在一些 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"
由于我在添加扩展程序时没有收到任何错误,因此我认为在我尝试渲染模板时它只是被完全忽略了,但我不确定我在哪里犯了错误。
任何帮助表示赞赏。
【问题讨论】:
-
很抱歉回答我自己的问题,但似乎我已经解决了,所以我想在这里分享解决方案。但是我仍然不能 100% 确定它是如何工作的: $app['twig'] = $app->share($app->extend('twig', function($twig, $app) { $twig- >addExtension(new Twig_Extensions_Extension_I18n()); return $twig; }));看起来我之前的代码根本没有将扩展添加到正确的环境中。
标签: php internationalization twig silex