2016-01-08 291 views
1

我有一個論壇網站,我想在我的論壇中添加各種不同的自定義語言。多語言:將自定義語言添加到Web內容php

通過語言的意思我只想改變我的系統文本而不是用戶在那裏發表。現在通過語言我不希望任何西班牙/法國的實施。我想要做些自定義語言,如Funky/Punk/Ghetto這些。

例如 - 英語 - 你好,你的問題是什麼?

貧民窟 - Aiyo,whatya問題男人!?

現在我可以在users mysql表中創建一個名爲lang的日誌,然後使用sessions來檢測他/她想要的語言。

但問題是重寫我的整個代碼> 30K線和最好的方法去做

現在我不想讓home_en.phphome_ghetto.php語言重複文件的單頁。

我不認爲在每個打印我的網站系統文本的echo之前做一個switch-case也是一個好主意。

我沒有任何可能性,因此我可以看到,因此我需要你的願景來啓發我,讓我走出這個黑暗。

ps - 谷歌,微軟等大型網站如何做到這一點?

回答

0

通常這樣做的方法是讓一個「語言表」帶有一個ID。您網站上的所有文本都保存在該表格中,每個文本部分都有一個標識語言的ID以及一個標識哪個文本塊的TextID。

當您的用戶訪問該網站時,如果他們的偏好是英語,則顯示來自與英語匹配的ID的文本。其他語言也一樣。

-------------------------------------- 
| id | language | text  | textId | 
| 1 | English | Hello  | 1 | 
| 2 | Spanish | Hola  | 1 | 
| 3 | German | Guten Tag | 1 | 
-------------------------------------- 

這裏的想法是,當用戶來到網站,您從您的數據庫就像拉:

SELECT text from languageTable where id=1 and textID=1 

這將返回「你好」 或

SELECT text from languageTable where id=2 and textID=1 

哪將返回「霍拉」

艱難的部分是填充每個表在您的網站上使用您需要的每一種語言的一小段文字。但一旦完成,您的頁面就會填充所需的語言。

+0

你可以給我一個想法,表 – Ohmyholy

+0

現在的工作是什麼專欄。掛在 – durbnpoisn

+0

所以你的意思是服務器上的壓力更大。如果我將這些文本存儲在一個php數組而不是mysql表中,這會不會更快? – Ohmyholy