问题列表
1. 多语言显示
i. 页面显示的语言 [page]
ii. 控件及公共部分的多语言
iii. 多语言环境中使用AJAX与JS
iv. 文本及图片的多语言处理
v. 代码中提示及输出信息的多语言[通用标签 、提示、错误信息等]
2. 多语言的切换
i. 多语言之间的切换 [当用户选择切换]
ii. 如何保存用户的多语言信息 [第一次打开与页面间跳转]
3. 本地化的编程
i. 信息内容的多语言 [文章、留言等]
ii. 本地化设置的转换 [时间 货币]
iii. 本地化编程[排序与比较]
4. 结合第三方组件
i. 第三方控件的多语言结合使用 []
ii. 与外部数据[web service]结合的问题
5. 管理与发布多语言
i. 如何添加多语言 [发布新的语言信息]
本地化方案介绍
1、 概述
系统将基于NET本地化特性,利用资源文件来实现用户的本地化需求。关于NET的本地化特性相关知识,请参考ASP.NET 全球化和本地化[MSDN文档]。
系统通过XML文件来存储保存多语言信息;使用cookie将用户的语言设置保存在客户端。当用户访问时页面,基类pageBase 读取用户本地语言设置与语言更改请求,在页面初始化前完成当前页面的语言设置。
2、 主要类
通过CultureCommon来完成对配置文件的读取,对本地化设置的读取与保存操作;通过页面基类pageBase来完多语言之间的切换。
CultureCommon 类CultureCommon 主要完成对多语言信息处理的封装。通过LanguageName与CurrentCulture来读取当前页面的配置信息;通过DefaultLanguage来获取与设置客户端的语言设置信息。通过BindLanguage 将配置文件信息绑定到DropDownList控件上。
pageBase 类pageBase 为站点所有页面的基类。其重写Page类的InitializeCulture方法,通过与CultureCommon完成了多语言之间的切换。
3、 多语言切换的流程
调用与编程
1、 本地化开发步骤
i. 继承。所有继承页面pageBase。
ii. 转换。页面上的静态文本转换成Localize控件。
iii. 生成资源文件。待页面功能完成后,将公共信息创建到GlobalResource,其它信息通过VS工具创建到LocalResource中[页面-设计视图-工具-生成本地资源文件].
iv. 调用。在页面中通过自动绑定和手动绑定;程序中可以通过GetLocalResourceObject 、GetGlobalResourceObject 或强类型来完成调用。参考示例代码。
2、 注意事项
i. page中的 Direction [ltr| rtl],title 特殊处理,参考示例代码。
ii. 字符串的串联。有些文本需要组合标签时,请使用先{0}来代替运行中的文本,再使用string.Format(str,param,parma) 来处理文本标签。
iii. 使用FCK等第三方工具时,注意手动设置第三方工具的语言信息。如:
FCKeditor3.DefaultLanguage= CultureCommon.LanguageName.ToLower(CultureCommon.CurrentCulture)
iv. 统一使用Unicode UTF-16(net默认值)编码输入输出信息。
v. JS中使用文本都需要通过程序控制声称变量。
3、 调用多语言的信息
i. 程序中可以通过CultureCommon来获取当前系统的本地化信息与系统的语言列表。
ii. 程序中请把语言的name 作为识别标记。如 en-GB,en-US,zh-CN
多语言的维护
1、 添加所需的资源文件。
2、 修改多语言配置文件[App_Data/ LanguageConfig.xml]。
讨论点
1. 客户端保存语言的信息的问题[COOKIE切换保存]
2. 是否需要使用本地化。[需要,除了货币]
3. 多语言配置保存的问题。[XML]
4. Web Service结合的问题。时间与数据类型。
文档及代码下载