没有gettext的php twig多语言

时间:2015-01-11 02:55:21

标签: php twig translation multilingual

我是php的新手,我使用PHP + JS编写我的第一个网页,没有任何框架(可能稍后)。

我有下一个问题。

如何在没有Gettext或其他插件的情况下在Twig中实现多语言?

类似的东西(在纯PHP中 - 没有问题......但是如何在树枝上使用它)

$lang=array(
"about_site" => "о нас",
"project" => "проект",
"team" => "команда");

事实上我的项目没有任何限制。 如果Gettext对我来说是最好的解决方案 - 我会使用它。 我以为我每页只翻译5-10个单词。为此目的使用Gettext有点奇怪。

1 个答案:

答案 0 :(得分:0)

你可以轻松地使用像你这样的php数组进行翻译。只需将数组传递给树枝模板:

/* $twig is a is an instance of Twig_Environment */
$template = $twig->loadTemplate('yourtemplate.html');

$templateVars['trans'] = array(
  "about_site" => "о нас",
  "project" => "проект",
  "team" => "команда"
);
echo $template->render($templateVars);

在模板中:

<!-- a lot of html stuff -->
<ul>
  <li><a href="#">{{ trans.about_site }}</a></li>
  <li><a href="#">{{ trans.project }}</a></li>
  <li><a href="#">{{ trans.team }}</a></li>
</ul>

但是请注意,如果您使用单数/复数表达式,变量,日期表达式等进行复杂的翻译,我强烈建议您使用基于gettext构建的twig i18n扩展: http://twig.sensiolabs.org/doc/extensions/i18n.html