2013-02-14 46 views
0

我正在构建一个php切换器,以将多语言功能添加到我的网站。Php多语言:如何存储活动语言?

MySQL中的每个内容都有一个特定于语言的文本,我想根据活动语言进行检索。

在开始时,我想在MySQL中构建一个量身定制的表来存储语言状态
例如:
意大利语1
中文0
..其中1表示语言处于活动状态,0表示关闭。

每次用户切换语言时,我都会调用该表并更改语言状态。然后,在通话结束时,我刷新页面,并且php检索正确的内容。

这似乎是一个好主意,直​​到我发现每次用户切换时MySQL中的语言状态都会改变。因此,如果用户正在用意大利语查看该网站,并且其他用户同时切换到英语,则第一个用户也将查看英语。

我的问题是:如何为特定用户存储语言状态,避免更改其他用户的语言状态?

非常感谢

+1

想想用户会话 – Popnoodles 2013-02-14 17:44:34

+0

您是否考虑过Cookie?基本上,除非您使用认证模块来确定谁在浏览页面,否则您将留下会话和cookie。 – Ranty 2013-02-14 17:46:09

+0

locale + session + GNU getText(i18n) – malletjo 2013-02-14 17:47:08

回答

0

不要使用数据库。改为设置一个$_SESSION变量(并且在修改之前不要忘记调用session_start())。 (Php Manual)

+0

会话部分是正确的。数据库部分不是。会议是暂时的。您需要将其存储在数据库中,以便将语言选择与用户帐户绑定。 – 2013-02-14 17:52:02

+0

我想我会选择SESSION方法,除非我的用户是休闲用户,不是注册用户或类似的人。我的意思是用户查看该网站。感谢所有的帮助 – 2013-02-14 18:14:47

1

如果你想有一个持久的保存,在用户表中添加一个 “郎” 列

用户(ID,用户名,passhash,郎);

而只是在那里存储他们的语言设置。如果您有另一个带有语言的表格,则可以使用外键来避免完整性问题。

如果您不在乎持久性(如果用户从其他计算机登录,它默认恢复为默认语言),则可以使用Session或Cookies。