亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > ASP > 正文

ASP實現多語言支持

2019-11-18 22:03:09
字體:
來源:轉載
供稿:網友
綱 要 :
讓 我 們 設 想 你 使 用 Active Server Pages 設 計 了 一 個 成 功 的 站 點 , 而 你 的 客 戶 紛 紛 要 求 將 此 站 點 國 際 化 以 提 供 多 種 語 言 版 本 。這 時 候 你 該 怎 么 辦?請 看 本 文。

正 文 :
    一 、 介 紹

    讓 我 們 設 想 你 使 用 Active Server Pages 設 計 了 一 個 成 功 的 站 點 , 而 你 的 客 戶 紛 紛 要 求 將 此 站 點 國 際 化 以 提 供 多 種 語 言 版 本 。 該 問 題 的 關 鍵 在 于 , 你 必 須 使 用 某 種 方 法 實 現 快 速 的 頁 面 內 容 轉 換 。 可 以 將 此 問 題 看 成 是 從 數 據 庫 提 取 適 當 數 據 并 用 asp 動 態 顯 示 。 在 本 文 中 我 們 將 討 論 如 何 使 用 Active Server Pages 的 字 典 對 象 以 及 一 個 后 臺 數 據 庫 實 現 國 際 化 支 持 。

    具 體 實 現 過 程 分 以 下 三 個 步 驟 :
    ◇ 設 計 數 據 庫 并 存 儲 文 本 和 文 件 路 徑 。
    ◇ 從 數 據 庫 讀 取 數 據 到 字 典 對 象 。
    ◇ 在 ASP 頁 面 引 用 文 本 和 文 件 路 徑 。

    二 、 步 驟 1 - 設 計 數 據 庫 并 存 儲 文 本 和 文 件 路 徑

    我 們 需 要 在 數 據 庫 設 計 上 花 些 時 間 。 使 用 此 數 據 庫 , 我 們 希 望 能 夠 把 所 有 要 用 到 的 文 本 和 圖 片 適 當 編 目 , 并 且 這 些 文 本 和 圖 片 不 能 重 復 ; 如 果 要 在 應 用 中 把“ 是 ” 改 成 “ 確 定 ” , 希 望 只 在 一 個 地 方 作 改 動 ; Web 維 護 者 在 更 改 內 容 時 應 能 夠 快 速 找 到 目 標 文 本 。 基 于 以 上 要 求 , 讓 我 們 開 始 設 計 數 據 庫 。

    首 先 創 建 兩 個 表 來 放 置 文 本 。 其 中 一 個 表 為 CommonStrings , 用 于 存 放 在 整 個 站 點 重 復 使 用 的 單 詞 和 短 語 。 另 外 一 個 表 為 SpecializedStrings , 用 于 存 放 只 在 特 定 頁 面 使 用 的 單 詞 和 短 語 。 把 公 用 和 限 于 特 定 頁 面 使 用 的 文 本 分 別 存 放 有 利 于 簡 化 站 點 維 護 。

    兩 個 表 都 使 用 StringKey 字 段 來 標 記 紀 錄 , 使 用 StringLanguage 來 說 明 所 用 語 言 , 聯 合 StringKey 和 StringLanguage 創 建 一 個 主 鍵 。 字 段 StringHolder 用 來 保 存 單 詞 、 短 語 或 語 句 。 這 個 字 段 必 須 創 建 唯 一 索 引 以 保 證 不 會 輸 入 重 復 的 單 詞 、 短 語 或 語 句 。

    對 于 SpecializedStrings 表 , 還 需 要 一 個 額 外 的 字 段 ASPPage 來 標 記 文 本 所 在 的 ASP 頁 面 。

    對 于 圖 片 文 件 , 我 們 可 以 使 用 相 同 的 步 驟 創 建 表 來 存 儲 指 向 這 些 文 件 的 路 徑 。 只 需 要 在 CommonImage 表 和 SpecializedImage 表 中 用 FileName 字 段 替 換 對 應 的 StringHolder 就 可 以 了 。

    在 新 創 建 的 表 中 裝 入 數 據 時 , StringKey 的 內 容 應 該 給 站 點 維 護 者 盡 可 能 多 的 提 示 以 表 明 頁 面 上 將 顯 示 的 文 本 。 例 如 , 對 于 一 個 在 線 銷 售 站 點 來 說 有 關 拒 絕 承 諾 的 聲 明 語 句 使 用 OrderDisclaimer 是 一 個 不 錯 的 選 擇 , 站 點 維 護 者 由 此 可 以 非 常 清 楚 地 了 解 使 用 該 記 錄 將 在 Web 頁 面 上 顯 示 的 內 容 。

    把 那 些 公 用 的 單 詞 和 短 語 放 在 CommonStrings 表 。 這 樣 , 維 護 者 就 知 道 如 果 他 們 修 改 CommonStrings 表 中 的 一 個 記 錄 , 將 影 響 到 站 點 內 的 許 多 頁 面 。

    對 于 大 的 站 點 , 可 以 設 計 一 個 易 于 使 用 的 界 面 來 輸 入 和 修 改 數 據 庫 中 的 文 本 。 準 備 這 些 資 料 是 一 項 冗 長 乏 味 的 任 務 , 越 簡 單 就 越 少 出 錯 。

    三 、 步 驟 2 - 從 數 據 庫 讀 取 數 據 到 字 典 對 象

    字 典 對 象 ( Dictionary Object ) 是 一 個 多 用 途 的 服 務 器 端 對 象 , 它 相 當 于 二 維 數 組 , 保 存 了 鍵 以 及 與 鍵 相 關 聯 的 數 據 。 提 取 數 據 的 唯 一 途 徑 在 于 取 得 鍵 值 或 索 引 。 可 以 把 字 典 對 象 的 作 用 范 圍 配 置 為 整 個 應 用 范 圍 或 對 話 范 圍 , 而 不 必 擔 心 損 失 性 能 。 賦 予 應 用 層 作 用 范 圍 意 味 著 對 象 只 被 實 例 化 一 次 , 且 所 有 會 話 均 使 用 同 一 個 字 典 對 象 。 以 下 代 碼 創 建 兩 個 字 典 對 象 實 例 , 分 別 和 兩 個 文 本 表 關 聯 。 記 住 , 我 們 希 望 對 象 只 被 初 始 化 一 次 , 所 以 把 這 些 代 碼 放 在 application_OnStart 事 件 中 :

< Script RUNAT=SERVER Language=VBScript>
Sub Application_OnStart()
Dim DictCommonStrings
Dim DictSpecializedStrings

Dim Conn
Dim rsCommonStrings
Dim rsspecializedStrings

Set DictCommonStrings = Server.CreateObject("Scripting.Dictionary")
Set DictSpecializedStrings = Server.CreateObject("Scripting.Dictionary")

    接 下 來 的 任 務 是 把 數 據 裝 入 字 典 對 象 。 我 們 將 遍 歷 表 , 連 接 StringKey 和 StringLanguage , 并 把 連 接 后 的 值 作 為 字 典 的 鍵 值 , 把 StringHolder 放 在 對 應 的 字 典 數 據 區 。 由 此 我 們 獲 得 了 使 用 數 據 庫 存 儲 數 據 的 彈 性 , 并 避 免 了 持 久 的 數 據 庫 連 接 而 導 致 的 性 能 影 響 。 事 實 上 , 數 據 庫 只 在 應 用 啟 動 時 被 訪 問 一 次 , 其 后 ASP 頁 面 將 從 速 度 更 快 的 字 典 對 象 讀 取 所 需 數 據 。

'建立數據庫連接
Set Conn = Server. CreateObject("ADODB.Connection")<BR>
Conn.ConnectionString = "Some Connection String"<BR>
Conn.open

'打開 CommonStrings 表, 遍歷所有記錄并裝入數據
Set rsCommonStrings = Conn.Execute("Select StringKey, StringHolder from CommonStrings")
Do until rsCommonStrings.EOF
DictCommonStrings.Add rsCommonStrings("StringLanguage") & rsCommonStrings("StringKey")  _
,rsCommonStrings("StringHolder")
rsCommonStrings.MoveNext
Loop

'打開SpecializedStrings表, 遍歷所有記錄并裝入數據
Set rsSpecializedStrings = Conn.Execute("Select StringKey, StringHolder from SpecializedStrings")
Do until rsSpecializedStrings.EOF
DictSpecializedStrings.Add rsSpecializedStrings ("StringLanguage") &  _
rsSpecializedStrings ("StringKey")  , rsSpecializedStrings ("StringHolder")
rsSpecializedStrings.MoveNext
Loop

rsSpecializedStrings.Close
rsCommonStrings.Close
Conn.Close
Set rsSpecializedStrings = Nothing
Set rsCommonStrings = Nothing
Set Conn = Nothing
End Sub

< /Script>

    四 、 步 驟 3-在 ASP 頁 面 引 用 文 本 和 文 件 路 徑

    接 下 來 的 工 作 是 在 ASP 頁 面 引 用 已 經 實 例 化 的 字 典 對 象 中 的 文 本 ( 以 及 文 件 路 徑 ) 。 首 先 我 們 需 要 知 道 當 前 用 戶 所 使 用 的 語 言 , 其 中 一 個 辦 法 是 從 Request.Server.Variables 取 得 該 值 。 請 把 下 列 代 碼 放 入 session_Onstart 事 件 處 理 過 程 :


< Script Language=VBScript>
Sub Session_OnStart()
Session("Lang") = Request.Server.Variables("HTTP_ACCEPT_LANGUAGE")
End Sub
< /Script>

     通 過 鍵 值 可 以 從 字 典 對 象 取 得 對 應 的 文 本 ( 或 圖 片 文 件 路 徑 ) , 鍵 值 由 語 言 前 綴 加 名 字 組 成 。 以 下 為 示 例 代 碼 :
< HTML>
< P Align=center>
< h1>< %= DictSpecializedStrings.Item(Session("Lang")  & "Confirmation")%>< /h1>
< /P><BR>
< P Align=center>
< h5>< %= DictSpecializedStrings.Item(Session("Lang")  & "OrderDisclaimer")%>< /h5>
< /P>
< /HTML>

    對 于 中 文 瀏 覽 器 , 該 頁 面 的 提 示 類 如 :
    感 謝 您 的 購 買 。 請 進 入 下 一 頁 付 款 。
    而 對 于 一 個 缺 省 語 言 為 英 文 的 的 瀏 覽 器 , 則 提 示 為 :
Thank you for your order. Continue to the Next Page to make your payment.

    根 據 我 的 經 驗 , 從 字 典 對 象 引 用 文 本 ( 以 及 圖 片 路 徑 ) 和 直 接 在 ASP 代 碼 中 輸 入 數 據 相 比 , 沒 有 性 能 上 的 不 利 影 響 。 這 是 由 于 文 本 ( 和 圖 片 路 徑 ) 字 典 被 放 在 內 存 中 , 因 而 可 以 快 速 地 提 取 。

    五 、 討 論

    當 然 , 實 現 多 語 言 支 持 還 有 其 它 的 因 素 需 要 考 慮 。 使 站 點 內 容 的 變 化 和 應 用 開 發 者 隔 離 是 本 文 試 圖 說 明 的 實 質 內 容 。 本 方 案 不 僅 對 于 實 現 站 點 內 容 國 際 化 非 常 有 用 , 而 且 對 于 站 點 內 容 頻 繁 改 變 而 布 局 基 本 不 變 的 情 形 , 本 方 案 同 樣 能 起 作 用 。 后 臺 數 據 庫 、 集 合 對 象 ( 字 典 對 象 ) 以 及 ASP 技 術 提 供 了 一 個 極 好 的 方 案 來 實 現 站 點 內 容 從 源 語 言 到 其 它 語 言 的 擴 展 。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久婷婷国产麻豆91天堂| 日日狠狠久久偷偷四色综合免费| 亚洲韩国欧洲国产日产av| 欧美精品国产精品日韩精品| 亚洲精品98久久久久久中文字幕| 国产精品视频xxx| 最近中文字幕2019免费| 欧美性猛交视频| 在线日韩日本国产亚洲| 欧美激情精品久久久久久大尺度| 国产在线久久久| 日本精品久久久久影院| 欧美精品国产精品日韩精品| 久久国产加勒比精品无码| 国产精品久久久久福利| 欧美成人精品在线播放| 欧美亚洲免费电影| 欧美日韩国产激情| 91色在线视频| 国产精品69久久久久| 91久久精品美女高潮| 欧美国产精品人人做人人爱| 久久久91精品| 国产亚洲欧美视频| 日韩av免费在线播放| 欧美中文字幕在线| 亚洲精品中文字幕av| 国产精品美女久久久久av超清| 亚洲精品v天堂中文字幕| 亚洲在线免费看| 久久人人爽人人爽爽久久| 欧洲精品毛片网站| 日韩免费在线视频| 97国产精品视频人人做人人爱| 丁香五六月婷婷久久激情| 国产啪精品视频| 欧美视频免费在线观看| 在线播放国产一区二区三区| 欧美高清第一页| 欧美激情综合亚洲一二区| 欧美性猛交xxxx黑人猛交| 日韩在线视频网站| 2018日韩中文字幕| 久久99精品视频一区97| 欧洲成人在线视频| 日韩在线免费视频| 岛国精品视频在线播放| 国产精品日韩欧美| 国产综合在线看| 国内精品久久久| 欧美日本高清一区| 亚洲一区二区久久久久久| 日韩黄色av网站| 91亚洲午夜在线| 成人福利视频在线观看| 91美女福利视频高清| 日韩精品在线播放| 2019中文字幕在线观看| 欧美精品激情blacked18| 成人黄色短视频在线观看| 国产精品久久久久av免费| 亚洲伊人久久综合| 国产精品久久久久久久久粉嫩av| 91夜夜未满十八勿入爽爽影院| 亚洲一区二区久久久| 日韩美女在线观看一区| 久久精品国产一区| 91麻豆国产语对白在线观看| 亚洲美女精品成人在线视频| 国产欧美日韩专区发布| 一区二区三区视频观看| 欧美亚洲激情在线| 欧美性猛交xxxx乱大交3| 亚洲free性xxxx护士白浆| 亚洲成人网久久久| 精品国产一区二区三区久久狼5月| 91在线观看免费高清完整版在线观看| 欧美一区二粉嫩精品国产一线天| 亚洲欧美日韩第一区| 日本免费久久高清视频| 午夜精品久久久久久久99热| 亚洲女人天堂av| 精品国产福利视频| 国产精品成人观看视频国产奇米| 国产精品手机播放| 欧美老女人在线视频| 97在线日本国产| 亚洲国产精品字幕| 91免费看片网站| 两个人的视频www国产精品| 国产在线精品播放| 亚洲一区二区自拍| 一区二区成人av| 亚洲国产精品悠悠久久琪琪| 亚洲福利小视频| 中文字幕在线看视频国产欧美在线看完整| 中文字幕日韩精品在线| 国产精品视频1区| 国内精品国产三级国产在线专| 日韩电影大片中文字幕| 97视频免费观看| 国产精品久久久久久久7电影| 亚洲视频欧洲视频| 97国产精品视频人人做人人爱| 日韩av日韩在线观看| 亚洲第一av在线| 欧美成人久久久| 亚洲国产高清福利视频| 亚洲一区二区三区乱码aⅴ蜜桃女| 欧美日韩国产在线| 91精品国产综合久久男男| 国产91九色视频| 欧美中文字幕在线播放| 欧美极品少妇xxxxⅹ裸体艺术| 久久久久久亚洲精品不卡| 综合激情国产一区| 国产亚洲激情在线| 91精品国产色综合久久不卡98| 亚洲欧洲第一视频| 国产精品美女在线观看| 91美女片黄在线观看游戏| 国内外成人免费激情在线视频| 欧美成人午夜免费视在线看片| 日韩一区在线视频| 久久韩剧网电视剧| 在线不卡国产精品| 成人国产精品久久久久久亚洲| 色综合久久久久久中文网| 日本一区二区三区四区视频| 欧美最猛性xxxx| 国产精品免费在线免费| 亚洲第一男人av| 国产一区二区三区中文| 成人性教育视频在线观看| 亚洲精品98久久久久久中文字幕| 91精品国产沙发| 国产91免费观看| 中文字幕成人在线| 国产精品高潮视频| 色小说视频一区| 欧美大全免费观看电视剧大泉洋| 欧美日韩国产限制| 午夜欧美不卡精品aaaaa| 4p变态网欧美系列| 亚洲第一偷拍网| 亚洲精品国产综合久久| 欧美激情乱人伦| 久久久久亚洲精品国产| 成人日韩在线电影| 疯狂蹂躏欧美一区二区精品| 992tv在线成人免费观看| 国产欧美在线观看| 日韩欧美亚洲国产一区| 欧美三级免费观看| 亚洲第一网站男人都懂| 都市激情亚洲色图| 性欧美办公室18xxxxhd| 成人美女av在线直播| xvideos成人免费中文版| 精品国产一区av| 成人精品视频99在线观看免费| 性欧美xxxx| 色偷偷噜噜噜亚洲男人| 欧美日韩一区二区三区|