2013-02-14 54 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。