2012-10-10 144 views
1

我想创建一个具有多种语言的应用程序。这些语言必须配置一个语言选项。使用PHP支持多种语言

我发现这些方法:

  1. 使数据库表一为默认语言,一个用于其他的副本。这种方式除了为其他语言添加一个额外列的常量表以外的所有表。 2.为其他语言的所有表添加附加列。 “桌子尺寸变得巨大,没有支持3种或4种语言的想象力!”
  2. 使用语言文件,它添加标签,消息返回给不同语言的用户!
  3. 使用数据库而不是语言文件来支持提供标签,消息,这里是提供这种做法的video
  4. 使用翻译API(例如Zend_translate)翻译用户使用默认语言输入的常量数据,消息,标签和数据。

什么是最好的情况下,我应该使用和在同一时间,我需要它是简单的,而不是花费很长时间在开发。

备注:该网站添加了大量的数据,这些数据将以不同的语言显示在网站上。这不是关于翻译菜单项目,标签等等。这是关于网站内容。

+0

如何 “大” 是您的网站?你使用任何框架? – alexn

+0

嗯我将使用codeignitor框架并添加所需的zend框架库,该网站包含超过300个服务的庞大数据。 – palAlaa

+0

你的问题太含糊,它有被封为“不是真正的问题”的危险。你需要问一些更具体的问题。 – Jocelyn

回答

0

您正在创建一个web应用程序,所以我的建议是:

您的应用程序存储到不同的域名女巫还关闭继承域的语言。

所以yourapp.com是英语和yourapp.nl是荷兰和德国yourapp.de等

这是你必须做出的第一个决定。建议您在制作一个网站时为不同的国家/地区提供不同的版本。但是如果你想要一个域名来主持,那么还有另一个决定。

案例一 - 自动语言检测女巫中的语言选项

案例两者之间选择 - 手动选择语言的商店这在饼干

情况下为三个 - 两个以上

及其一种混合硬让这个自动化,让我们说我们想要手动选择。

然后有一些配置要做。当你使用时间和其他特定位置的功能。所以让我们做一个php开关女巫包含所有支持的语言。然后,你需要用定义或其他方法替换你的PHP的所有文本输出,但我更喜欢定义。

就像这样:

//this has to be saved somewhere in php file has lang.dutch.php and lang.eng.php 

$lang['dutch']['error'] = 'Er is iets fout gegaan'; 
$lang['english']['error'] = 'Something went wrong'; 

//make up for language (has to be included in front of every script) 

$witch = $_SESSION or $_COOCIE ['language']; 

$lang['dutch'] = 'lang.dutch.php'; 
$lang['eng'] = 'lang.eng.php'; 

include("language/$lang[$switch]"); 

define("error", $lang[$witch]['error'], true); 

//inside function witch uses defined variables 

if(true){ 
    do something 
} 
else{ 
    echo error; 
} 

时cookie或会话值是荷兰人的结果是:

二是IETS FOUT gegaan