我的数据库中插入了不同语言的数据,例如中文,法语,英语,马来语,日语,韩语等。
如何检测这些语言并查询特定语言。例如,如果我只想查询中文数据并将其显示给用户。
答案 0 :(得分:2)
如果我是你,我会有类似的东西来存储UI控件中显示的文字:
create table ui_labels (
control_id int,
language varchar(2),
label varchar(500),
primary key (control_id, language)
);
UI中的每个控件(例如按钮)都会有一个唯一的control_id
。每个控件都可以有多个标签,每种语言一个。
然后,每个UI控件可以为每种语言使用不同的标签。 (我假设这里有两个字母的ISO语言代码,但您也可以使用数字ID或其他识别方案。)
这样,只需在ui_labels
表中添加行即可轻松添加新语言,只需切换查询中使用的language
值,即可轻松切换UI中显示的语言
按钮的数据可能如下所示:
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中进行转换的标准方法。它不使用您的数据库。如果需要将字符串放在数据库中(例如,如果最终用户必须能够编辑它们),那么这不是一个选项,但它可能是您可以考虑的事情。如果您对此感兴趣,可能需要查看此博客文章: