使用PHP支持多种语言

使用PHP支持多种语言,php,sql,database-design,local,Php,Sql,Database Design,Local,我想用多种语言创建一个应用程序。这些语言必须配置语言选项 我发现了以下方法: 制作数据库表的副本,一个用于默认语言,另一个用于其他语言。这种方法适用于除常数表之外的所有表,常数表为另一种语言添加了一个附加列。 2.为所有使用其他语言的表添加附加列。表的大小变得巨大,无法支持3或4种语言!! 使用添加标签的语言文件,消息返回给使用不同语言的用户! 使用数据库而不是语言文件来支持提供标签、消息,下面是提供此实践的方法。 例如,使用翻译API翻译常量数据、消息、标签和用户使用默认语言输入的数据。 我应

我想用多种语言创建一个应用程序。这些语言必须配置语言选项

我发现了以下方法:

制作数据库表的副本,一个用于默认语言,另一个用于其他语言。这种方法适用于除常数表之外的所有表,常数表为另一种语言添加了一个附加列。 2.为所有使用其他语言的表添加附加列。表的大小变得巨大,无法支持3或4种语言!! 使用添加标签的语言文件,消息返回给使用不同语言的用户! 使用数据库而不是语言文件来支持提供标签、消息,下面是提供此实践的方法。 例如,使用翻译API翻译常量数据、消息、标签和用户使用默认语言输入的数据。 我应该使用什么样的最佳案例?同时,我需要它简单,并且不需要花很长时间进行开发


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

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

您的应用程序存储在不同的域名上,这些域名也会继承域的语言

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

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

案例一-自动语言检测开关在语言选项之间进行选择

案例二-手动选择语言并将其存储在cookie中

案例三——上述两种情况的混合

这很难使它自动,所以让我们说,我们想手动选择

然后有一些配置要做。当您使用基于时间和其他特定位置的功能时。让我们制作一个包含所有支持语言的php开关。然后您需要用defines或其他方法替换php中的所有文本输出,但我更喜欢define

就这样,

//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或会话值为荷兰语时,结果为:

呃,让我们一起去吧


你的网站有多大?你在使用任何框架吗?嗯,我将使用codeignitor框架并添加所需的zend框架库,该网站包含300多个服务的巨大数据。你的问题太模糊,有可能被关闭,因为这不是一个真正的问题。你需要问一些更具体的问题。duplicate@Jocelyn,我读了很多关于这个主题的文章,从哪里开始我真的很困惑,但是Imran提供的url中显示的设计非常有用,现在我知道该怎么做了。