當前位置:首頁 » 編程語言 » php中英網站

php中英網站

發布時間: 2024-08-09 01:51:39

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調用:
<?php
require_once()
?>;
<html>;
<head>;
<title>;$title<title>;
<meta http-equiv="content-type" content="text/html;charset=$charset">;
</head>;
<body>;</body>;
</html>;

這樣通過擴展就可以實現頁面的多搏飢語言化.

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.假設用戶簡體中文版時候:
<meta http-equiv="content-type" content="text/html;charset=UTF-8">;
所有語言版本都是這樣。

B.調用language/gb的語言包。

C.搜索資料庫有語言欄位為gb的數據,並顯示

D.當用戶提交信息,參照上面資料庫多語言的B問題。

❷ 請問:如何讓PHP程序檢查瀏覽者操作系統的默認語言,而進入相應的網站頁面(假如是中英韓三種) (急)

用PHP判斷客戶端瀏覽器語言跳轉到相應的網頁
程序的實現原理很簡單:
首先用PHP獲取客戶端瀏覽器的語言 (用$_SERVER['HTTP_ACCEPT_LANGUAGE']來實現),如果是中文則跳轉到中文的網頁;反之就跳轉到英文版。
1.<?php
2.$language = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'],0,5);
3.if($language == "zh-cn") header("Location: /gbk/chinese.html");
4.else header("Location: /utf8/english.html");
5.?>

另外一種就是根據IP來判斷的, 具體可以看下geoip

❸ 如果設計一個中英文這樣的雙語網站,一般資料庫怎麼設計比較合理(php)

採用兩個庫(中文庫和英文庫)。這樣,在申請虛擬主機時,一般只允許建立一個資料庫,所以選擇虛擬主機的用戶好像不太適用。
通過標記欄位來區分,但是這樣的話會不會效率就會下降,因為每次都要中英文的匹配。

熱點內容
C語言讀盤 發布:2024-11-25 18:41:55 瀏覽:572
我的世界伺服器被破壞了怎麼恢復 發布:2024-11-25 18:27:57 瀏覽:329
日常電瓶叉車配置有哪些 發布:2024-11-25 18:21:17 瀏覽:361
java的二分查找 發布:2024-11-25 18:21:11 瀏覽:23
買帕薩特選哪個配置 發布:2024-11-25 18:17:23 瀏覽:224
編程很掙錢嗎 發布:2024-11-25 18:13:43 瀏覽:935
接受btc支付的香港雲伺服器 發布:2024-11-25 18:02:09 瀏覽:909
華為手機怎麼密碼解鎖 發布:2024-11-25 17:56:34 瀏覽:938
伺服器管理員怎麼編輯別人背包 發布:2024-11-25 17:55:45 瀏覽:930
plc編程T 發布:2024-11-25 17:55:02 瀏覽:268