PHP - 如何将网站翻译成多种语言?

时间:2009-06-05 03:33:11

标签: php internationalization translation

我的网站目前使用英文;我希望能够在用户点击其他语言时切换到其他语言(网站上有很少的国家/地区标志图标)。我目前正在尝试的方式是使用数组,例如:

$english = array('index',
           array('h1' => 'this is some h1 text', 
                 'h2' => 'this is some h2 text'));

$japanese = array('index',
            array('h1' => '世界交換への歓迎',
                  'h2' => 世界交換への'));


print $english[index][h1];
print $japanese[index][h2];

正如您所看到的,如果我使用单独的语言为每个页面执行此操作,那将是一个疯狂的代码量。我可以尝试其他什么方法?

4 个答案:

答案 0 :(得分:5)

鉴于您正在寻找最终将获得l10n支持的完整i18n支持,我建议您在支持这些开箱即用的PHP框架中编写您的页面。

就我个人而言,我只使用Symfony框架进行了翻译。它们在数据库中使用i18n表扩展的内容组合,以及用于接口翻译的XLIFF文件。一旦设置它就相当透明,并且使用框架避免了必须手工编写所有这些支持。

我也知道Zend,CakePHP和Code Igniter支持i18n。

答案 1 :(得分:1)

  • 内容数据库(或我猜的文件)
  • 每种语言的每页输入
  • ID引用的语言
  • 在$ _SESSION变量中设置的ID
  • 可选择记住cookie以供后续访问

我已将此系统与自定义CMS @ www.grandhall.eu一起使用。当你需要拿出小册子和小册子等东西时,它会变得特别有趣。其他下载考虑在内。

答案 2 :(得分:-2)

我建议将您的网站挂钩到Windows Live或Google Translate API。我不知道谷歌的那个,但Windows Live API似乎很容易使用。

http://msdn.microsoft.com/en-us/magazine/dd569750.aspx

那,或者您可以用两种语言写出页面上的所有内容,将它们存储在“内容”数据库中的不同表中,然后在用户单击更改语言按钮时更改加载的表。现在,你的大多数苦差事都在用两种语言重写内容。

答案 3 :(得分:-4)

您可以使用Google翻译API:

  

http://code.google.com/apis/ajaxlanguage/

它有大量的文档,并且有一些如何在谷歌代码游乐场使用它的例子:

  

http://code.google.com/apis/ajax/playground/

只需浏览ajax>翻译