来自mysql的网站上有多种语言

时间:2014-02-07 10:43:15

标签: php mysql

在数据库中保存翻译并根据用户设置显示单词翻译是不错的主意。我想象这样的事情:
MySQL的

lang    | greeting
spanish | ola
english | hi
例如

$sql=mysql_query("SELECT * FROM lang where lang='spanish'");

然后只在正确的div中回显该值

3 个答案:

答案 0 :(得分:1)

您可以拥有1张适合您语言的表格

id_lang | label
1 | English
2 | Spanish
3 | French

然后你的其他每个表都可以有第二个密钥ID,例如:

traduction_table
id | id_lang | value
1 | 1 | Hi
2 | 2 | Ola
3 | 3 | Salut

你需要在id和id_lang上拥有主键。 然后你只需要正确地发出你的SQL请求,例如:

select * from traduction_table where ID = 1 and id_lang = ??

哪里??被用户语言ofc替换。

答案 1 :(得分:0)

根据我的经验,最好是保持我所说的"界面"文本(英语"取消",西班牙语" cancelar",...)与.po文件(gettext标准)

另一方面,所有文本都可能被用户编辑,它们应该存储在数据库中。例如,如果它是一个需要以不同语言发布描述的站点,并且该描述需要由用户编辑/维护,而不是由程序员编辑/维护,那么您应该将翻译存储在数据库中。是的,像你说的那样表格是个好主意。

答案 2 :(得分:0)

这样您就不需要为其他语言添加列。

id | text    | lang  
------------------------  
1  | ola     |spanish  
2  | hi      |english