1

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

我找到了这些方法:

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

我应该使用什么最好的案例,同时,我需要它简单并且不需要很长时间的开发。

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

4

1 回答 1

0

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

您的应用程序存储在不同的域名上,也关闭了继承域的语言。

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

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

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

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

案例三 - 上述两者的混合体

很难做到这一点,所以假设我们要手动选择。

然后有一些配置要做。当您使用时间和其他基于特定位置的功能时。所以让我们做一个 php switch 女巫包含所有支持的语言。然后你需要用定义或其他方法替换你的 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 或会话值是荷兰语时,结果是:

Er is iets fout gegaan

于 2012-10-17T15:24:25.667 回答