0

我的数据库中插入了不同语言的数据,例如中文、法语、英语、马来语、日语、韩语等。

我如何检测这些语言并查询特定的语言。例如,如果我只想查询中文数据并将其显示给用户。

4

1 回答 1

2

如果我是你,我会有这样的东西来存储显示在你的 UI 控件中的文本:

create table ui_labels (
  control_id int,
  language varchar(2),
  label varchar(500),
  primary key (control_id, language)
);

control_idUI 中的每个控件(例如按钮)都有一个唯一的。每个控件可以有许多标签,每种语言一个。

然后,每个 UI 控件可以为每种语言使用不同的标签。(我假设这里是两个字母的 ISO 语言代码,但您也可以使用数字 ID 或其他一些标识方案。)

这使得只需向表中添加行即可轻松添加新语言,并且只需切换查询中使用的值ui_labels即可轻松切换 UI 中显示的语言。language

按钮的数据可能如下所示:

insert into ui_labels (control_id, language, label)
  values (1, 'en', 'Read the article');
insert into ui_labels (control_id, language, label)
  values (1, 'es', 'Leer el artículo');
insert into ui_labels (control_id, language, label)
  values (1, 'tl', 'Bumasa ang balita');

但是,作为这种方法的替代方法,您可能需要查看gettext,这是在 PHP 中进行翻译的标准方法。它不使用您的数据库。如果需要将字符串放入数据库(例如,如果最终用户必须能够编辑它们),那么这不是一个选项,但您可以考虑这样做。如果你对此感兴趣,你可能想看看这篇博文:

http://verens.com/2008/04/03/translation-in-php/

于 2012-08-27T05:03:48.380 回答