2009-10-18 44 views
1

最近我正在研究将PHP Web应用程序从一种语言翻译成另一种语言的能力。那么,大多数的我读的涉及有语言文件,然后显示所选择的一个是这样的:翻译算法

en.lang.php

<?php 

$_TEXT = array(); 
$_TEXT['welcome'] = 'Welcome to My Application'; 

?> 

fr.lang.php://法国(我翻译,谷歌= X)

<?php 

$_TEXT = array(); 
$_TEXT['welcome'] = 'Bienvenue sur mon application Web'; 

?> 

我想问是否有更好的工作流程或算法比这个?因为价值可能会插入到文本等等 - 非常毛茸茸的情况。任何帮助谢谢!

另外需要注意的是:这个应用程序必须跨平台工作(或者我应该说平台无关)本身没有额外的扩展需要基于从PHP 4.4.2

回答

0

结帐PHP'的gettext:http://www.php.net/manual/en/intro.gettext.php

如果你想推出自己的简单的解决方案,我定义一个函数,__($本地,$ VAR1,$ VAR2,...),这需要本土字符串并为您执行翻译+变量替换。 __(两个下划线)的实际实现取决于你,但通常$ native是你上面的数组中的关键,它使用sprintf来替代。

+0

能够产生一些例子吗?我在手册上有点困惑。 – mauris 2009-10-18 05:04:23

0

这实际上称为国际化或本地化。

如果您使用的是PHP,我建议您使用smarty。您可以像使用Java一样执行相同的操作。 smarty有gettext插件。你甚至不必乱搞gettext,你可以做到这一点比这更容易。
http://www.smarty.net/

或者你也许可以查看我看过的包的本地化梨库。

http://pear.php.net/packages.php?catpid=28

0

gettext的,如通过几个同胞SOers建议是一个很好的解决方案。这是not php specific,这是相当受欢迎,因此several tools to simplify translation可用。

最后但并非最不重要的一点是,在源文件中保留默认语言的文本要比记住文本的常量值容易得多。