doushichun9409 2015-01-11 02:55
浏览 91
已采纳

没有gettext的php twig多语言

I am novice in php and I write my first web page using PHP + JS without any frameworks (maybe later).

I have the next question.

How to implement multi language in Twig without Gettext or other plugins?

Something like that (in pure PHP - no questions... but how use it in twig)

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

In fact my project has no restrictions. If Gettext is the best solution for me - I'll use it. I thought I'll have to translate only 5-10 words per page. Using Gettext for this purpose is a bit strange.

  • 写回答

1条回答 默认 最新

  • douguizhuang8276 2015-01-24 13:25
    关注

    You can easily use a php array like yours for translation in twig. Just pass the array to the twig template:

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

    And in the template:

    <!-- 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>
    

    But mind, if you have complex translations with singular/plural expressions, variables, date expressions etc. I would strongly recommend you to use the twig i18n extension that is built upon gettext: http://twig.sensiolabs.org/doc/extensions/i18n.html

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 基于单片机数字电压表电路组成及框图
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 unity第一人称射击小游戏,有demo,在原脚本的基础上进行修改以达到要求
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?
  • ¥15 加热介质是液体,换热器壳侧导热系数和总的导热系数怎么算
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
  • ¥15 cmd cl 0x000007b
  • ¥20 BAPI_PR_CHANGE how to add account assignment information for service line