【 tulaoshi.com - ASP 】
纲 要 :
让 我 们 设 想 你 使 用 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 ) 是 一 个 多 用 途 的 服 务 器
端 对 象 , 它 相 当 于 二 维 数 组 , 保 存 了 键 以 及 与 键 相 关 联
的 数 据 。 提 取 数 据 的 唯 一 途 径 在 于 取 得 键 值 或 索 引 。 可
以 把 字 典 对 象 的 作 用 范 围 配 置 为 整 个 应 用 范 围 或 对 话 范
围 , 而 不 必 担 心 损 失 性 能 。 赋 予 应 用 层 作 用 范 围 意 味 着
对 象 只 被 实 例 化 一 次 , 且 所 有 会 话 均 使 用 同 一 个 字 典 对
象 。 以 下 代 码 创 建 两 个 字 典 对 象 实 例 , 分 别 和 两 个 文 本 <