我目前正在開發一個國際化的網站,因此需要使用不同的語言。使用PHP的多語言網站
我有一個名爲「lang」的文件夾,其中包含諸如en.php,no.php等等文件。這些文件由具有不同單詞的數組組成。
我的問題是我應該如何使用它。我應該使用cookie將個人電腦中的語言保存起來嗎?或者我應該保存IP地址併爲其分配一種語言並將其保存在數據庫中,或者我應該在整個網站的url中傳遞一個& land = en參數嗎?
關於如何處理多語言網站的想法和想法?
最佳regarsds的, 亞歷山大
我目前正在開發一個國際化的網站,因此需要使用不同的語言。使用PHP的多語言網站
我有一個名爲「lang」的文件夾,其中包含諸如en.php,no.php等等文件。這些文件由具有不同單詞的數組組成。
我的問題是我應該如何使用它。我應該使用cookie將個人電腦中的語言保存起來嗎?或者我應該保存IP地址併爲其分配一種語言並將其保存在數據庫中,或者我應該在整個網站的url中傳遞一個& land = en參數嗎?
關於如何處理多語言網站的想法和想法?
最佳regarsds的, 亞歷山大
我認爲這可能是最好保存用戶的語言在cookie中,因此你不需要通過查詢參數周圍通過。您也可以將其設置爲$_SESSION
但是,您應該在每個頁面中接受參數lang=
,這將允許任何用戶輕鬆地立即更改語言。新語言應該覆蓋現有的cookie。
$valid_langs = array('en','fr','de','no');
if (isset($_GET['lang'])) {
// verify that it is a valid language choice before attempting to use it
// you may store an array of possibilities.
if (in_array($_GET['lang'], $valid_langs)) {
$language = $_GET['lang'];
setcookie('lang', $_GET['lang']);
}
}
else if (isset($_COOKIE['lang'])) {
// also be sure to check that the language is a valid choice in a cookie too.
if (in_array($_GET['lang'], $valid_langs)) {
$language = $_COOKIE['lang'];
}
}
我使用了一些簡單的方法......我確實保持calculla的網站。這就像兩個語言:波蘭語(PL)和英語(EN)。
如果有人進入域calculla.pl那麼我確實假設默認值是波蘭語。如果有人輸入域名calculla.com,我認爲它是英文。但後來,網站內部的每個「鏈接」都可以像calculla.pl/en/something - 這會變成英語而忽略默認的域名。
用戶始終可以通過單擊 - 重新選擇語言,然後將所有鏈接「切換」爲所選語言。
這只是一種可能的方法,但我認爲它可能適合您的需求 - 根本沒有cookie,沒有其他依賴關係,只是URL決定。
如果您可以選擇在主域上使用CNAME別名,那麼一種廣泛使用的方法是使用語言特定的域名,例如。除了www.site.com有no.site.com挪威,en.site.com英語等等,這些都指向同一個網站。然後使用當前域名檢測要使用的語言。
這樣檢測的語言看起來是這樣的:
$language = substr($_SERVER['HTTP_HOST'],0,2);
也可以考慮使用HTTP內容協商頭在請求中選擇默認語言,如果您既沒有看到也沒有餅乾明確的參數。 –
+1,讓我再提一下'url = lang ='的另一個好處是你可以提供永久鏈接到頁面的某個語言版本。 – nobody