站長(zhǎng)資訊網(wǎng)
最全最豐富的資訊網(wǎng)站

ASP如何實(shí)現(xiàn)站點(diǎn)國(guó)際化多語(yǔ)言支持?

如果 客 戶 紛 紛 要 求 將 Asp的 站 點(diǎn) 國(guó) 際 化 以 提 供 多 種 語(yǔ) 言 版 本 ,這個(gè)問(wèn)題如何實(shí)現(xiàn)呢? 該 問(wèn) 題 的 關(guān) 鍵 在 于 , 你 必 須 使 用 某 種 方 法 實(shí) 現(xiàn) 快 速 的 頁(yè) 面 內(nèi) 容 轉(zhuǎn) 換 。 可 以 將 此 問(wèn) 題 看 成 是 從 數(shù) 據(jù) 庫(kù) 提 取 適 當(dāng) 數(shù) 據(jù) 并 用 ASP 動(dòng) 態(tài) 顯 示 。 在 本 文 中 我 們 將 討 論 如 何 使 用 Active Server Pages 的 字 典 對(duì) 象 以 及 一 個(gè) 后 臺(tái) 數(shù) 據(jù) 庫(kù) 實(shí) 現(xiàn) 國(guó) 際 化 支 持 。

 

   具 體 實(shí) 現(xiàn) 過(guò) 程 分 以 下 三 個(gè) 步 驟 :

   ◇ 設(shè) 計(jì) 數(shù) 據(jù) 庫(kù) 并 存 儲(chǔ) 文 本 和 文 件 路 徑 。

   ◇ 從 數(shù) 據(jù) 庫(kù) 讀 取 數(shù) 據(jù) 到 字 典 對(duì) 象 。

   ◇ 在 ASP 頁(yè) 面 引 用 文 本 和 文 件 路 徑 。

 

   二 、 步 驟 1 – 設(shè) 計(jì) 數(shù) 據(jù) 庫(kù) 并 存 儲(chǔ) 文 本 和 文 件 路 徑

 

   我 們 需 要 在 數(shù) 據(jù) 庫(kù) 設(shè) 計(jì) 上 花 些 時(shí) 間 。 使 用 此 數(shù) 據(jù) 庫(kù) , 我 們 希 望 能 夠 把 所 有 要 用 到 的 文 本 和 圖 片 適 當(dāng) 編 目 , 并 且 這 些 文 本 和 圖 片 不 能 重 復(fù) ; 如 果 要 在 應(yīng) 用 中 把“ 是 ” 改 成 “ 確 定 ” , 希 望 只 在 一 個(gè) 地 方 作 改 動(dòng) ; Web 維 護(hù) 者 在 更 改 內(nèi) 容 時(shí) 應(yīng) 能 夠 快 速 找 到 目 標(biāo) 文 本 。 基 于 以 上 要 求 , 讓 我 們 開(kāi) 始 設(shè) 計(jì) 數(shù) 據(jù) 庫(kù) 。

   首 先 創(chuàng) 建 兩 個(gè) 表 來(lái) 放 置 文 本 。 其 中 一 個(gè) 表 為 CommonStrings , 用 于 存 放 在 整 個(gè) 站 點(diǎn) 重 復(fù) 使 用 的 單 詞 和 短 語(yǔ) 。 另 外 一 個(gè) 表 為 SpecializedStrings , 用 于 存 放 只 在 特 定 頁(yè) 面 使 用 的 單 詞 和 短 語(yǔ) 。 把 公 用 和 限 于 特 定 頁(yè) 面 使 用 的 文 本 分 別 存 放 有 利 于 簡(jiǎn) 化 站 點(diǎn) 維 護(hù) 。

   兩 個(gè) 表 都 使 用 StringKey 字 段 來(lái) 標(biāo) 記 紀(jì) 錄 , 使 用 StringLanguage 來(lái) 說(shuō) 明 所 用 語(yǔ) 言 , 聯(lián) 合 StringKey 和 StringLanguage 創(chuàng) 建 一 個(gè) 主 鍵 。 字 段 StringHolder 用 來(lái) 保 存 單 詞 、 短 語(yǔ) 或 語(yǔ) 句 。 這 個(gè) 字 段 必 須 創(chuàng) 建 唯 一 索 引 以 保 證 不 會(huì) 輸 入 重 復(fù) 的 單 詞 、 短 語(yǔ) 或 語(yǔ) 句 。

   對(duì) 于 SpecializedStrings 表 , 還 需 要 一 個(gè) 額 外 的 字 段 ASPPage 來(lái) 標(biāo) 記 文 本 所 在 的 ASP 頁(yè) 面 。

   對(duì) 于 圖 片 文 件 , 我 們 可 以 使 用 相 同 的 步 驟 創(chuàng) 建 表 來(lái) 存 儲(chǔ) 指 向 這 些 文 件 的 路 徑 。 只 需 要 在 CommonImage 表 和 SpecializedImage 表 中 用 FileName 字 段 替 換 對(duì) 應(yīng) 的 StringHolder 就 可 以 了 。

   在 新 創(chuàng) 建 的 表 中 裝 入 數(shù) 據(jù) 時(shí) , StringKey 的 內(nèi) 容 應(yīng) 該 給 站 點(diǎn) 維 護(hù) 者 盡 可 能 多 的 提 示 以 表 明 頁(yè) 面 上 將 顯 示 的 文 本 。 例 如 , 對(duì) 于 一 個(gè) 在 線 銷 售 站 點(diǎn) 來(lái) 說(shuō) 有 關(guān) 拒 絕 承 諾 的 聲 明 語(yǔ) 句 使 用 OrderDisclaimer 是 一 個(gè) 不 錯(cuò) 的 選 擇 , 站 點(diǎn) 維 護(hù) 者 由 此 可 以 非 常 清 楚 地 了 解 使 用 該 記 錄 將 在 Web 頁(yè) 面 上 顯 示 的 內(nèi) 容 。

   把 那 些 公 用 的 單 詞 和 短 語(yǔ) 放 在 CommonStrings 表 。 這 樣 , 維 護(hù) 者 就 知 道 如 果 他 們 修 改 CommonStrings 表 中 的 一 個(gè) 記 錄 , 將 影 響 到 站 點(diǎn) 內(nèi) 的 許 多 頁(yè) 面 。

   對(duì) 于 大 的 站 點(diǎn) , 可 以 設(shè) 計(jì) 一 個(gè) 易 于 使 用 的 界 面 來(lái) 輸 入 和 修 改 數(shù) 據(jù) 庫(kù) 中 的 文 本 。 準(zhǔn) 備 這 些 資 料 是 一 項(xiàng) 冗 長(zhǎng) 乏 味 的 任 務(wù) , 越 簡(jiǎn) 單 就 越 少 出 錯(cuò) 。

 

   三 、 步 驟 2 – 從 數(shù) 據(jù) 庫(kù) 讀 取 數(shù) 據(jù) 到 字 典 對(duì) 象

 

   字 典 對(duì) 象 ( Dictionary Object ) 是 一 個(gè) 多 用 途 的 服 務(wù) 器 端 對(duì) 象 , 它 相 當(dāng) 于 二 維 數(shù) 組 , 保 存 了 鍵 以 及 與 鍵 相 關(guān) 聯(lián) 的 數(shù) 據(jù) 。 提 取 數(shù) 據(jù) 的 唯 一 途 徑 在 于 取 得 鍵 值 或 索 引 。 可 以 把 字 典 對(duì) 象 的 作 用 范 圍 配 置 為 整 個(gè) 應(yīng) 用 范 圍 或 對(duì) 話 范 圍 , 而 不 必 擔(dān) 心 損 失 性 能 。 賦 予 應(yīng) 用 層 作 用 范 圍 意 味 著 對(duì) 象 只 被 實(shí) 例 化 一 次 , 且 所 有 會(huì) 話 均 使 用 同 一 個(gè) 字 典 對(duì) 象 。 以 下 代 碼 創(chuàng) 建 兩 個(gè) 字 典 對(duì) 象 實(shí) 例 , 分 別 和 兩 個(gè) 文 本 表 關(guān) 聯(lián) 。 記 住 , 我 們 希 望 對(duì) 象 只 被 初 始 化 一 次 , 所 以 把 這 些 代 碼 放 在 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”)

 

   接 下 來(lái) 的 任 務(wù) 是 把 數(shù) 據(jù) 裝 入 字 典 對(duì) 象 。 我 們 將 遍 歷 表 , 連 接 StringKey 和 StringLanguage , 并 把 連 接 后 的 值 作 為 字 典 的 鍵 值 , 把 StringHolder 放 在 對(duì) 應(yīng) 的 字 典 數(shù) 據(jù) 區(qū) 。 由 此 我 們 獲 得 了 使 用 數(shù) 據(jù) 庫(kù) 存 儲(chǔ) 數(shù) 據(jù) 的 彈 性 , 并 避 免 了 持 久 的 數(shù) 據(jù) 庫(kù) 連 接 而 導(dǎo) 致 的 性 能 影 響 。 事 實(shí) 上 , 數(shù) 據(jù) 庫(kù) 只 在 應(yīng) 用 啟 動(dòng) 時(shí) 被 訪 問(wèn) 一 次 , 其 后 ASP 頁(yè) 面 將 從 速 度 更 快 的 字 典 對(duì) 象 讀 取 所 需 數(shù) 據(jù) 。

 

‘建立數(shù)據(jù)庫(kù)連接

 

Set Conn = Server. CreateObject(“ADODB.Connection”)

Conn.ConnectionString = “Some Connection String”

Conn.open

‘打開(kāi) CommonStrings 表, 遍歷所有記錄并裝入數(shù)據(jù)

Set rsCommonStrings = Conn.Execute(“Select StringKey, StringHolder from CommonStrings”)

Do until rsCommonStrings.EOF

DictCommonStrings.Add rsCommonStrings(“StringLanguage”) & rsCommonStrings(“StringKey”) _

,rsCommonStrings(“StringHolder”)

rsCommonStrings.MoveNext

Loop

‘打開(kāi)SpecializedStrings表, 遍歷所有記錄并裝入數(shù)據(jù)

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>

 

 

分享到: 更多

贊(0)
分享到: 更多 (0)
網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)
亚洲精品日韩中文字幕久久久| 国产综合色在线精品| 苍井空亚洲精品AA片在线播放 | 国产精品一国产AV麻豆| 久久99精品久久久久久青青日本 | 国产精品人成在线播放新网站| 国产精品JIZZ在线观看老狼| 日韩在线一区视频| 日韩视频中文字幕专区| 亚洲国产精品日韩| 中文日韩字幕一区在线观看| 国产精品免费小视频| 国产精品酒店视频| 在线观看亚洲精品专区| 精品久久久无码中字| 99偷拍视频精品一区二区| 久久精品无码中文字幕| 精品av天堂毛片久久久| 97超碰精品成人国产| 日本久久中文字幕精品| 国产精品午夜电影| 国产91精品一区| 手机看片日韩福利| 日韩网红少妇无码视频香港| 日韩精品无码一区二区三区不卡| 中文字幕亚洲日韩无线码| 日韩人妻一区二区三区蜜桃视频| 日韩精品系列产品| 无码国产亚洲日韩国精品视频一区二区三区 | 精品一区二区三区免费| 亚洲精品少妇30p| 精品一区二区三区中文字幕| 久久国产精品只做精品| 亚洲精品高清国产一久久| 91在线精品中文字幕| 99国产精品永久免费视频| 久久精品成人一区二区三区| 成人久久伊人精品伊人| 国产一卡2卡3卡四卡精品一信息 | assbbwbbwbbwbbwbw精品| 精品国产日产一区二区三区|