2009-10-18 91 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可用。

最後但並非最不重要的一點是,在源文件中保留默認語言的文本要比記住文本的常量值容易得多。