Twig i18n:意外的标签名称“trans”

时间:2014-01-09 02:15:52

标签: php internationalization twig silex

我正在尝试在一些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"

由于添加扩展时没有出现任何错误,我认为当我尝试渲染模板时,它只是被完全忽略了,但我不确定我在哪里犯了错误。

任何帮助表示感谢。

1 个答案:

答案 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扩展名!

另见Silex TranslationServiceProvider