最近,我正致力于将PHP Web应用程序从一种语言翻译成另一种语言。好吧,我阅读的大部分内容涉及语言文件,然后显示所选的一个:
en.lang.php :
<?php
$_TEXT = array();
$_TEXT['welcome'] = 'Welcome to My Application';
?>
fr.lang.php ://法语(我用Google = x翻译)
<?php
$_TEXT = array();
$_TEXT['welcome'] = 'Bienvenue sur mon application Web';
?>
我想问一下,有没有比这更好的工作流程或算法?因为价值可能会插入到文本中等等 - 非常毛茸茸的情况。任何帮助谢谢!
另请注意:此应用程序必须跨平台工作(或者我应该说与平台无关),因此不需要基于PHP 4.4.2的其他扩展。
答案 0 :(得分:3)
我建议使用gettext,它会让你的生活更加简单......
gettext函数实现了NLS (Native Language Support)API 可以用来国际化你的 PHP应用程序。请看看 系统的gettext文档 对这些进行彻底的解释 功能或查看文档» http://www.gnu.org/software/gettext/manual/gettext.html
答案 1 :(得分:0)
Checkout PHP的gettext:http://www.php.net/manual/en/intro.gettext.php
如果你想推出自己的简单解决方案,我定义一个函数,__($ native,$ var1,$ var2,...),它接受本机字符串并为你执行翻译+变量替换。 __(两个下划线)的实际实现将取决于您,但通常$ native是上面数组中的键,它使用sprintf替换。
答案 2 :(得分:0)
这实际上称为国际化或本地化。
如果您使用的是php,我建议您使用smarty。您可以使用Java执行相同的操作。而smarty有gettext插件。你实际上甚至不必弄乱gettext,你可以比这更容易 http://www.smarty.net/
或者您可以查看我看过的本地化软件包。
答案 3 :(得分:0)
gettext,正如SOers的几位同事所建议的那样,是一个很好的解决方案。这是not php specific,它很受欢迎,因此several tools to simplify translation可用。
最后但并非最不重要的一点是,将文本保留为源中的默认语言比使用文本的常量值更容易使用。