PHP中英文切換的網站是如何做的
最後更新:2016-06-13
來源:互聯網
上載者:User
PHP中英文切換的網站是怎麼做的?
現在要做一個外貿網站,需要中文和英文兩個版本,我想問問,是單獨做兩個網站出來還是只做一個,然後中英文之間切換?
------解決方案--------------------
多語言網站解決方案 php
前言:
多語言網站開發,重點的還是在解決語言之間的問題。
那如何解決這個問題呢?大概就分三步走:
1.頁面多語言
2.資料庫多語言
3.使用者訪問語言統一
1.頁面多語言
需要考慮的問題:
A.使用者登陸時候,自動識別字元,調用不同的語言套件?
B.使用者切換不同語言時候,調用不同的語言套件?
C.增加多語言後的目錄結構?
頁面多語言也就是外觀的多語言化,這裡可以採用靜態語言套件的方式。
設計時候就應該包括language的目錄,針對不同語言有獨立的子目錄。
如英文language/en ,簡體中文language/gb,繁體中文language/b5 (可以擴充其他語言)
每個目錄下就包含了對每個頁面的語言版本。選擇語言版本時候就可以調用相應版本的語言套件。
具體做法:
0.利用js語言,識別瀏覽器語言,在調用不同的語言套件.
1.language/en/global.ln是針對英文版的全域語言套件。
2.global.ln 內容為:
$title = "English webstie";
$charset = "UTF-8";
3.index.php調用:
require_once()
?>;
;
;
;$title;
;
;
;;
;
這樣通過擴充就可以實現頁面的多語言化.
2.資料庫多語言
這個考慮的問題:
A.後台錄入資料的多語言化?
B.使用者在不同版本下,提交的內容,如何儲存?
C.提供三種語言套件,還是提供英文和簡體,簡體通過轉化提供繁體?
資料庫多語言就是達到多語言在資料庫裡面的統一。就需要採用utf-8統一編碼。
無論什麼語言的文字,都統一使用utf-8來存放到資料庫裡面。採用表欄位來表識
屬於什麼語言版本的文字。
具體:
A.對於後台添加的問題:
1.後台添加時候,就需要多語言化的錄入。先建立一個以utf-8編碼的資料庫,錄入英文/簡體,簡體在通過轉化為繁體,
再以utf-8編碼方式存於資料庫中。
2.建立以utf-8為編碼的表結構,importlanguage標識屬於什麼語言版本
但在某個版本下,就搜尋屬於這個版本的文字來顯示。其他文字不顯示。
DROP TABLE IF EXISTS `zz_importer`;
CREATE TABLE IF NOT EXISTS `zz_importer` (
`importID` int(11) NOT NULL auto_increment,
`importTime` date NOT NULL default '0000-00-00',
`improtfile` varchar(100) NOT NULL default '',
`importlanguage` varchar(100) NOT NULL default ''
PRIMARY KEY (`importID`)
) ENGINE=MyISAM DEFAULT CHARSET=uft-8;
3.簡體轉化的繁體。
利用php的iconv.此過程對於linux/unix有效,對於windows無效。
iconv("GB2312","BIG5",$text);
4.因為,charset = "utf-8",資料就都是以utf-8編碼方式存在,
添加資料時候,要分別用en/gb/big5來標識語言版本.
INSERT INTO `zz_importer` VALUES (,'', '', 'en');
INSERT INTO `zz_importer` VALUES (,'', '', 'gb');
INSERT INTO `zz_importer` VALUES (,'', '', 'big5');
B.對於使用者添加的問題:
1.假設下簡體中文下.使用者因為頁面頭為UTF-8.則使用者瀏覽器會以utf-8編碼
方式瀏覽頁面。
2.添加的資料庫本身以utf-8方式存在。
3.添加資料時候,要分別用gb來標識語言版本
INSERT INTO `zz_importer` VALUES (,'', '', 'gb');
C.對於簡體和繁體是單獨提供還是轉化問題
單獨提供 - 比較符合多語言的標準,靈活性大,對ISP沒有特別的要求。
轉化提供 - 提交速度會受影響,同時要ISP提供iconv的函數支援。
3.使用者訪問語言統一
A.假設使用者簡體中文版時候:
;
所有語言版本都是這樣。
B.調用language/gb的語言套件。
C.搜尋資料庫有語言欄位為gb的資料,並顯示
D.當使用者提交資訊,參照上面資料庫多語言的B問題。