php 没有 gettext 的 twig 多语言

php twig multilanguage without gettext

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

我有下一个问题。

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

类似的东西(纯 PHP - 没问题......但如何在 twig 中使用它)

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

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

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

/* $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>

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