Я новичок в php и пишу свою первую веб-страницу, используя PHP + JS без каких-либо фреймворков (возможно, позже).
У меня следующий вопрос.
Как реализовать многоязычность в Twig без Gettext или других плагинов?
Как-то так (в чистом PHP — без вопросов … но как его использовать в ветке)
$lang=array(
"about_site" => "о нас",
"project" => "проект",
"team" => "команда");
На самом деле мой проект не имеет ограничений.
Если Gettext — лучшее решение для меня — я воспользуюсь им.
Я думал, что мне придется переводить только 5-10 слов на странице. Использование Gettext для этой цели немного странно.
Вы можете легко использовать массив 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>
Но учтите, что если у вас есть сложные переводы с выражениями в единственном / множественном числе, переменными, выражениями даты и т. Д., Я настоятельно рекомендую вам использовать расширение twig i18n, построенное на gettext:
http://twig.sensiolabs.org/doc/extensions/i18n.html
Других решений пока нет …