Smarty和gettext

时间:2011-10-06 13:47:00

标签: php smarty gettext

将gettext与smarty结合使用的最简单方法是什么,是否有类似于php中可用的功能:_('hello world');

谢谢,

4 个答案:

答案 0 :(得分:4)

我确实发现Smarty对(n)gettext的支持也很缺乏。虽然现有的插件似乎做得很好,但我仍然认为我应该试一试。

我刚刚发布了:http://code.google.com/p/smarty-gettext/

也许这对任何人都有帮助。反馈等不仅仅是赞赏。

答案 1 :(得分:3)

看起来有一个smarty-gettext插件可用:http://sourceforge.net/projects/smarty-gettext/,最后更新于2011年5月。http://smarty.incutio.com/?page=SmartyGettext

答案 2 :(得分:3)

有很多方法可以用Smarty实现页面的翻译。

我的方式

我创建了一些包含以下内容的.conf文件:

en.conf

hello_world = "Hello! World!"
my_name_is = "They call me"

nl.conf

hello_world = "Hallo! Wereld!"
my_name_is = "Ik heet"

fr.conf

hello_world = "Bonjour! Tout le Monde!"
my_name_is = "Ils m'appellent"

现在您有两个选择:

  • 您可以从.conf文件中加载.tpl文件:
  • 或者您希望PHP处理正确的文件。 (我使用这种方法)

template.tpl(英文)

{config_load file="en.conf"}

<html>
    <body>
        <h1>{#hello_world#}</h1>
        <p>
            {#my_name_is#}
        </p>
    </body>
</html>

template.tpl(荷兰语)

{config_load file="nl.conf"}

<html>
    <body>
        <h1>{#hello_world#}</h1>
        <p>
            {#my_name_is#}
        </p>
    </body>
</html>

template.php(在PHP中使用Smarty类)

 $configFile = 'fr.conf';

 // Smarty Version 2
 $this->smarty->config_load($configFile);

 //Smarty Version 3
 $this->smarty->configLoad($configFile);

我希望这也适合你。

答案 3 :(得分:0)

您可以使用Smarty修改器功能,如下所述:https://blog.ueffing.net/post/2013/07/19/php-smarty-a-modifier-for-internationalization-tool-gettext/ (当然假定安装gettext)