1. 程式人生 > >多語言網站開發 不完全技術分析收錄

多語言網站開發 不完全技術分析收錄

多語言網站,顧名思義就是能夠以多種語言(而不是單種語言)為使用者提供資訊服務,讓使用不同語言的使用者都能夠從同個網站獲得內容相同的資訊。

多語言網站實現方案

1,靜態:就是為每種語言分別準備一套頁面檔案,要麼通過檔案字尾名來區分不同語言,要麼通過子目錄來區分不同語言。

例如對於首頁檔案index_en.htm提供英語介面,index_gb.htm提供簡體中文介面,index_big.htm提供繁體中文介面,或者是en/index.htm提供英語介面,gb/index.htm提供簡體中文介面,big/index.htm提供繁體中文介面,一旦使用者選擇了需要的語言後,自動跳轉到相應的頁面,首頁以下其他連結也是按照同樣方式處理。從維護的角度來看,通過子目錄比通過檔案字尾名來區分不同語言版本顯得要簡單明瞭。

2,動態:站點內所有頁面檔案都是動態頁面檔案(PHP,ASP等)而不是靜態頁面檔案,在需要輸出語言文字的地方統一採用語言變數來表示,這些語言變數可以根據使用者選擇不同的語言賦予不同的值,從而能夠實現在不同的語言環境下輸出不同的文字。

例如:語言變數ln_name,當用戶選擇的語言是英語時賦值為“Name”,當用戶選擇的語言是簡體中文時賦值為“姓名”,這樣就可以適應不同語言時的輸出。

採用靜態方式的優點是頁面直接輸出到客戶端,不需要在伺服器上執行,佔用伺服器的資源比較少,系統能夠支援的併發連線數較多,缺點是要為每種語言製作一套頁面檔案,很多內容即使是和語言無關的也要分不同語言來儲存,因此佔用的儲存空間較多。

採用動態方式和靜態方式的優缺點正好相反,它的優點是動態頁面檔案只有一套,不同語言的文字使用語言變數來儲存,和語言無關的內容只儲存一份,佔用的儲存空間較少,並且擴充套件新語言比較容易,缺點需要在伺服器上執行,然後把結果輸入到客戶端,佔用伺服器的資源比較多,系統能夠支援的併發連線數較少。

動態資料存貯涉及的一些技術問題


由於現在網站上動態應用日益增多,相當多的網站還會使用檔案或者資料庫來儲存應用資訊,因此如果檔案或者資料庫中儲存的內容與語言相關時,還需要特別注意。對於儲存在資料庫中資訊,可以採取以下幾種方式支援多語言:

1,在資料庫級別支援多語言:為每種語言建立獨立的資料庫,不同語言的使用者操作不同的資料庫。

2,在表級別支援多語言:為每種語言建立獨立的表,不同語言的使用者操作不同的表,但是它們在同一個資料庫中。

3,在欄位級別支援多語言:在同一個表中為每種語言建立獨立的欄位,不同語言的使用者操作不同的欄位,它們在同一個表中。

由於資料庫中有大量的資訊(如標誌,編碼,數字等)是用於內部處理使用的,與語言無關的,因此在資料庫級別支援多語言會導致空間的極大浪費,在欄位級別支援多語言最大的問題是一旦需要支援新的語言,由於需要修改表結構,維護起來非常麻煩,可擴充套件性不好。

相比之下,在表級別支援多語言比較好,因為並不是所有的表都需要支援多語言,對於與語言無關的表,不同語言的使用者共用一套,那些和語言相關的表根據支援語言的種類來建立,不同語言的使用者存取訪問不同的表格。這樣使得維護簡單,節省了儲存空間,即使是擴充套件起來也比較方便,只要把需要支援多語言的表,多建立一套即可。

還需要注意的問題是:有些表中某些欄位是不同語言版本的表共享的(例如庫存量),由於各種語言的表之間的相對獨立性,使得資料共享有些困難。解決的方法有兩個:

1,不同語言的表的共享欄位同步:也就是說,只要修改了其中一個表的共享欄位,其他語言表中該欄位也作相應改變,實際上當不同語言的使用者同時訪問時處理還是比較麻煩的,並且擴充新語言時修改工作比較大。

2,增加一個新的表:把所有語言共享的欄位(例如貨物編號,產地編碼等)全部放在這個表,支援多語言的表只存放與各種語言相關的欄位。不同語言的使用者在使用資料庫時,需要操作兩個資料表。
比較而言,第二種方法比較簡單,並且效率比較高,維護也比較方便。

應用字符集的選擇


一個定位於不同語言國家的企業網站勢必需要提供多種語言版本的產品和銷售資訊來滿足其世界各地使用不同語言的客戶和合作夥伴,其中包括法語、德語、義大利語、葡萄牙語、西班牙語、阿拉伯語等等。但有一個問題卻極易被網站設計者們所忽略。這就是網站的字符集設定問題。

一般我們使用的是簡體中文(GB2312)字符集,而對多語言網站來說,中文字符集卻可能會使你辛辛苦苦的努力功虧一簣。原因很簡單:就是這個毫不起眼的小小字符集在作怪。

計算機應用領域中存在著幾十種互不相同的字符集,而不同語言客戶在瀏覽不同語言網頁時,往往會因為相互間所使用字符集無法相容而出現亂碼情況。我們在瀏覽國外一些網站時,往往也會出現為了能正常地看到網站上的資訊而不得不在各種字符集之間來回切換的情況。

試想一下:如果一個網站提供了中,英,法,德等多種語言版本的內容,內容全之又全,設計美侖美奐。我們在中文編碼環境下瀏覽這些非中文版本的頁面覺得非常完美,現在一個法國客戶對你的產品發生了興趣,當他進到法語版面一看—亂碼多多,甚至可能整個版面都一塌裡糊塗。你的網站再下大工夫又有什麼意義呢?

所以對提供了多語言版本的網站來說,Unicode字符集應該是最理想的選擇。它是一種雙位元組編碼機制的字符集,不管是東方文字還是西方文字,在Unicode中一律用兩個位元組來表示,因而至少可以定義65536個不同的字元,幾乎可以涵蓋世界上目前所有通用的語言的每一種字元。 所以在設計和開發多語言網站時,一定要注意先把非中文頁面的字符集定義為“utf-8”格式。

這一步非常重要,原因在於若等頁面做好之後再更改字符集設定,可說是一件非常非常吃力不討好的工作,有時候甚至可能需要從頭再來,重新輸入網站的文字內容。

HTML中的META標籤:


<META HTTP-EQUIV=“Content-Type” CONTENT=“text/html; CHARSET=字符集">


不寫,根據瀏覽器預設字符集顯示
charset=gb2312 簡體中文
charset=big5 繁體中文
charset=EUC_KR 韓語
charset=Shift_JIS 或 EUC_JP 日語
charset= KOI8-R / Windows-1251 俄語
charset=iso-8859-1 西歐語系(荷蘭語,英語,法語,德語,義大利語,挪威語,葡萄牙語,瑞士語.等十八種語言)http://www.microsoft.com/
charset=iso-8859-2 中歐語系
charset=iso-8859-5 斯拉夫語系(保加利亞語,Byelorussian語,馬其頓語,俄語,塞爾維亞語,烏克蘭語等)
charset=uft-8 unicode多語言



ASP與指令碼引擎頁碼的概念
由於我們傳統使用的內碼像Big5,GB2312與unicode並不是一一對應,故兩者之間的轉換要靠codepage(頁碼)來實現
<%@ Language=VBScript CodePage=xxx%>


不寫,根據伺服器端解析引擎預設內碼表自動解析並返回瀏覽器。
如果製作的網頁尾本與WEB服務端的預設內碼表不同,則必須指明內碼表:
codepage=936 簡體中文GBK
codepage=950 繁體中文BIG5
codepage=437 美國/加拿大英語
codepage=932 日文
codepage=949 韓文
codepage=866 俄文
codepage=65001 unicode UFT-8



建議採用utf8的靜態和動態文件。即:


<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 

相關推薦

語言網站開發 完全技術分析收錄

多語言網站,顧名思義就是能夠以多種語言(而不是單種語言)為使用者提供資訊服務,讓使用不同語言的使用者都能夠從同個網站獲得內容相同的資訊。多語言網站實現方案1,靜態:就是為每種語言分別準備一套頁面檔案,要麼通過檔案字尾名來區分不同語言,要麼通過子目錄來區分不同語言。例如對於首頁

國際外貿網站定製,英文網站建設,貿易網站開發語言網站製作

      本公司專業承接外貿英文網站定製,國外英文網站建設,多語言貿易網站開發,多語言網站製作等服務,支援電腦版,手機版等,並且個性化定製。 網站顯示語言支援:簡體,繁體,英文,韓文,日文,法文等提供一站式服務:聯絡QQ:2 3 6 0 2 4 8666(私聊),微信:

外貿網站定制,英文網站建設,貿易網站開發語言網站制作

英文 專業 簡體 51cto images 繁體 顯示 pro 公司 本公司專業承接外貿英文網站定制,國外英文網站建設,多語言貿易網站開發,多語言網站制作等服務,支持電腦版,手機版等,並且個性化定制。 網站顯示語言支持:簡體,繁體,英文,韓文,日文,法文等提供一站式服務:聯

msf stagers開發完全指北(四): msf 中使用域前置技術隱藏流量

# msf 中使用域前置技術隱藏流量 前幾篇都是說了下如何採用不同的語言開發 reverse_tcp 第二階段,接下來將慢慢分析 reverse_http,這篇文章並不會圍繞 stagers 進行講解,這篇文章只是半埋上我之前挖的一個坑,關於域前置技術如何在 msf 中進行應用。 ## 域前置技術介紹

【IE兼容性】代碼中語言樣式+IE兼容解決

ie兼容 BE enum 20px 代碼 jquery parent right get 一、代碼中樣式根據不同語言對IE做不兼容解決二、代碼邏輯:1. 後臺返回語言信息;result.addObject("language",getLocaleStr());1 1resu

紙殼CMS可視化建站系統搭建語言網站

gin 建站系統 mis ron com 開啟 proc body src 紙殼CMS是可視化建站系統,現已經從架構上支持多語言。但是多語言功能默認是沒有開啟的。您可以從設置中開啟多語言,或者隨時關閉它,您可以隨時進行切換。 開啟多語言 如果您沒有在系統設置中看到多語言設置

紙殼CMS視覺化建站系統建立語言網站

紙殼CMS是視覺化建站系統,現已經從架構上支援多語言。但是多語言功能預設是沒有開啟的。您可以從設定中開啟多語言,或者隨時關閉它,您可以隨時進行切換。 開啟多語言 如果您沒有在系統設定中看到多語言設定選單,首先先確認一下您的登入角色是否有多語言設定的許可權:

[譯]MVC網站教程(一):語言網站框架

本文簡介 本博文介紹了 Visual Studio 工具生成的 ASP.NET MVC3 站點的基本框架;怎樣實現網站的語言的國際化與本地化功能,從零開始實現使用者身份認證機制,從零開始實現使用者註冊機制,實現自定義的MVC驗證特性…… 本系列包含四篇,在codeproject中都評級為4+顆星。我會全部

網站開發之ajax技術介紹

在當今網際網路高數發展的時代,人們對使用者的體驗要求越來越高,老式網站開發技術正在逐漸的被淘汰,越來越新的技術城縣人們眼前,然鵝有一個技術卻在時代的浪潮中越來越受歡迎,這就是被科技界所有大公司採用的ajax技術,下面來介紹一下ajax技術的實現原理,以及應用優缺點。 首先看

iOS語言(國際化)開發(跟隨系統 + APP內手動設定)

一:跟隨系統切換語言 1>建立好專案工程後, 新建一個多語言檔案: 2>新增要設定的語言型別: 3>新增成功 細心的朋友可能會發現在English後面寫的是3 Files Localized,這是因為英語是系

語言網站(如何實現網站語言版本?)

多語言網站,顧名思義就是能夠以多種語言(而不是單種語言)為使用者提供資訊服務,讓使用不同語言的使用者都能夠從同個網站獲得內容相同的資訊。多語言網站實現方案 1,靜態:就是為每種語言分別準備一套頁面檔案,要麼通過檔案字尾名來區分不同語言,要麼通過子目錄來區分不同語言。例如對於首頁檔案index_en.htm提

網站設計--語言網站實現方案

多語言網站實現方案   1,靜態:就是為每種語言分別準備一套頁面檔案,要麼通過檔案字尾名來區分不同語言,要麼通過子目錄來區分不同語言。   例如對於首頁檔案index_en.htm提供英語介面,index_gb.htm提供簡體中文介面,index_big.htm提供繁體

C++ 實現語言程式開發研究與Xtreme ToolkitPro的使用(一)

        實現 多語言程式的思路比較簡單清楚,主要是通過建立不同語言的資原始檔即可,網上的帖子也挺多,不過個人感覺比較雜,經過研究,總結得出自己的開發心得。 在本次學習中,還用到了Xtreme

平臺的開源股票市場技術分析庫:TA-LIB

下載地址: http://ta-lib.org/ 介紹: TA-Lib : Technical Analysis Library Multi-Platform Tools for Market Analysis ... TA-Lib is widely used

angular6開發完全筆記(一)

ref 檢查 ack webp interface -- dir wiki lint 新建項目 請在終端/控制臺窗口中運行 ng -v 命令。 確定您已安裝@angular/cli if沒有執行 npm install -g @angular/cli 全局安裝 Angula

ngular6開發完全筆記(二)-- 管道

課程 tst 考試 一個 tor 點擊 裏的 ive scribe 自定義管道 管道(過濾器)為過濾數據顯示下列list數據 pip.ts 文件 import { Pipe, PipeTransform } from '@angular/core';

msf stagers開發完全指北(二)

# 採用 Golang 開發stagers 上一篇文章 [msf stagers開發不完全指北(一)](https://www.cnblogs.com/Akkuman/p/13183702.html)中我們談到如何採用 c 進行 msf 的 stagers 開發,這篇文章我們探討一下如何使用 Golang

網站內容被百度收錄的原因反思及解決方法!

網站優化 seo 網頁收錄 大發跡創業項目網有個網站百度已經沒有一個月收錄,站長也是著急,於是想著應該怎麽解決這個問題。其實網站出了問題,站長應該是最清楚的,所以不要急,仔細回想一下最近操作了什麽,然後一個一個去排查就可以找出問題所在,對癥下藥就ok了。比如我的這個網站,想要找出問題所在就很簡單。

為什麼越來越的軟體開發公司都需要Python語言技術開發

    相信從來軟體開發行業的人都知道Python。那什麼是Python呢?Python 是一門有條理的和強大的面向物件的程式設計語言,類似於Perl, Ruby, Scheme, Java.近幾年,越來越多的軟體開發公司將Python作為開發環境的首選語言,那為什麼它越來越

用app.net Core搞點語言網站

configure cor cati addm ons 文章 nop aspnet info Asp.net Core 中文文檔很少,你可以看英文的,不過英文的也是說的有點亂。這篇文章是幹貨。 1. 配置好你的WebApplication,使他可以支持國際化語言,修改