2010-09-15 96 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