2010-09-15 131 views
1

您好我是在php中devloping網站我需要翻譯整個網站在德語,西班牙語等其他語言...如何可能在PHP中我曾嘗試使用一些CSV但它都變成靜態我意味着我不能轉換整個網站..網站語言翻譯在php

如果您有任何CSV或API的信息

..

請幫助..

-div

回答

1
<?php 
    $GLOBAL['langs']=array(
     'en'=>array(
      'Welcome to my site!'=>'Welcome to my site!' 
     ), 
     'it'=>array(
      'Welcome to my site!'=>'Benvenuto sul mio sito web!' 
     ) 
    ); 

    function _($text){ 
     $lang=$_COOKIE['lang']; 
     return $GLOBAL['langs'][$text]; 
    } 
?><html><head><?php 

    echo '<title>'._('Welcome to my site!').'</title>'; 

?></head><body> 

    .... 

</body></html> 
+1

它是'$ GLOBALS',而不是'$ GLOBAL'。 – Lekensteyn 2010-09-15 06:44:11

+1

如果PHP啓用了* gettext *支持,使用'_()'可能會出現問題,因爲這是'gettext()'的別名,這也是本地化的一種方法。 http://php.net/manual/en/function.gettext.php – Archimedix 2010-09-15 07:04:14

0

儘管Christian的答案能夠解決問題,但還是有一種更加清潔和高效的方式來實現您的需求:gettext是PHP內置的國際化功能。

0

Zend Translate是一個爲此準備的庫。

Gettext不是線程安全的。 PHP只支持gettext和本地數組。 Zend_Translate支持多種源格式,包括PHP支持的格式,以及其他格式,包括TMX和CSV文件。

+0

不幸的是,Zend框架的人甚至不知道自己的哪些組件相互關聯。所以最好的做法是安裝整個Zend-Framework。這意味着非常多的文件和輕微的矯枉過正,我會說。但是對於基於Zend-Framework構建的應用程序,Zend_Translate當然是一個很好的解決方案。 – 2010-09-15 07:24:59

+0

我不同意。您可以在這裏檢查依賴關係,包括PHP包和內部ZF。 http://framework.zend.com/manual/en/requirements.introduction.html – 2010-09-15 07:31:49