知识大全 用.NET的System.Globalization来创建多语言应用程序

Posted 资源

篇首语:宁给好汉拉马,不给懒汉作爷。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 用.NET的System.Globalization来创建多语言应用程序相关的知识,希望对你有一定的参考价值。

用.NET的System.Globalization来创建多语言应用程序  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  如果你计划在你的应用程序中包括对使用各种语言的用户的支持 那么开发它的代价不会比开发只支持英语的版本要高很多 但是如果你需要翻新一个已有应用程序 那么其代价和重新开发它差不了多少       NET框架在它的System Globalization名字空间中提供了对全球化(globalization 指得是支持多种语言)的支持 这样你就可以在你的应用程序中实现多语种支持了 这个名字空间包括了若干类 用来处理许多重要的全球化问题 如文明识别字符串比较 日期和时间格式 数字格式和支持阳历和其它历法的日历 你首先需要知道的一个关键的类就是CultureInfo类 (译者注 这里的文明即culture 主要指得是语种 也包括记录时间日期的习惯等等)      使用CultureInfo类    CultureInfo类提供了文明参数选择的支持以及可以在每个线程(per thread)基础上的控制 CurrentCulture合适的处数据和数字格式 字符串比较和大小写 CurrentUICulture属性由开发者来设置 CLR用它来为用户界面装载适当的资源 你可以用CultureInfo类来为当前线程设置CurrentCulture和CurrentUICulture 如下所示   Thread CurrentThread CurrentUICulture = new CultureInfo( ja )  Thread CurrentThread CurrentCulture = new CultureInfo( ja JP )    还有一些API函数可以用CultureInfo类来控制输出   Str = DateTime Now ToString(cultureInfo);    所有与文明有关的(culture aware)类都是默认为文明敏感的(culture sensitive) 因此你只要简单的设置当前线程的文明就可以自动给System Globalization名字空间中的类(如CompareInfo StringInfo和Calendar)以及核心系统类(如Resources DataTime和String)提供针对特定文明的支持     为了可以支持更多的文明种数 你还需要在你的应用程序中全部使用符合统一字符编码标准的字符串(Unicode string) 尽管 NET框架提供了对Unicode字符串的完全支持 不过你仍需要在编写代码的时候意识到所有的字符串都写成Unicode格式 而且你还需要清楚许多依靠操作系统的操作(包括对文件系统的访问和某些控制)并不支持Unicode格式的字符串 因此你还必须在执行这些操作之前进行显式格式转换     规划本地化    全球化将某些关键的数据以我们熟悉的国际通用(international)格式保存 但是如果你希望让你的用户得到专门为他们的文明而开发的应用程序 你就需要本地化你的应用程序 本地化包括了为特定文明创建特定资源然后再写你的应用程序 这样它针对程序所设定或者检测出来的某种文明而装载合适的资源 让我们详细看看资源模型   资源模型        NET框架的资源模型包括了对任何可串行化对象(serializable object)的支持 它还可以扩展以支持新的格式 这就意味着除了提示符 标签以及其它用户界面元素上的针对特定文明的字符串之外 你还可以把声音 图像和其它二进制数据当作资源使用 ASP NET(包括 NET Compact Framwork 它在设备的运行时间和内存的大小上有限制)和Windows Form支持该资源模型     为了本地化应用程序 你需要识别特定文明资源(你需要用它们来展开程序) 然后把它们放置到一个资源文件中 简单的应用程序只需要字符串资源(字符串中保存 名字——值 对) 你可以创建特定文明的文本文件 尽管自己演示一番很有趣 但你应该用微软ResX格式来创建资源文件 Visual Studio中有一个工具支持创建 resx文件(它包括了用XML格式对资源的描述)和 resources文件(它包括了二进制已编译文件) 你即可以把这些文件随同你的程序一同发布 也可以把它们编译到一个附属汇编(satellite assembly)中去     在命名和保存你的资源文件时 你应该保持一致性 微软建议在命名 resources文件时 文件名应该嵌入文明名(例如 resources) 一个资源文件对应于你支持的一种文明 附属资源汇编应该以项目名称命名(如 resources dll) 然后把它们放到不同的子目录下(每个子目录对应一种文明)         在运行时使用资源文件    一旦创立了资源文件 你就可以用资源管理器(resource manager)来在运行时载入字符串和对象 资源即可以根据CurrentThread中的CurrentUICulture设置来载入(例如 RM GetObject( Button Cursor )) 你也可以在载入某个资源时指明文明(例如 RM GetString( mystring new CultureInfo( en NZ ))     ASP NET NET Compact Framework以及Windows Forms应用程序中都有资源管理器 而且Windows Forms引擎提供了额外的本地化支持 每个form都有一个可以设置的本地化属性 当设置为 真 时 项目系统会自动跟踪form的不同语言版本并把不同语言的form编译到附属汇编中去     只要你在你的原设计中考虑到本地化 那么建立international应用程序并不建立支持单一文明的应用程序难很多 在建议一个假定只支持英语用户界面的应用程序之前 NET体系应该询问针对其它文明所期望提供支持的特定问题            cha138/Article/program/Java/hx/201311/26165

相关参考

知识大全 用ADO.NET处理层次数据

用ADO.NET处理层次数据  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  ADONET为数据在

知识大全 用脚本解决ASP.NET页面刷新问题

用脚本解决ASP.NET页面刷新问题  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  用ASPNE

知识大全 用ASP.NET加密口令的方法

用ASP.NET加密口令的方法  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  每当我们要建立数据

知识大全 用.NET框架实现序列化

用.NET框架实现序列化  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  序列化是将一个对象保存到

知识大全 用ASP.NET加密Cookie数据

用ASP.NET加密Cookie数据  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Cookie

知识大全 用.Net开发DB2应用程序比较

用.Net开发DB2应用程序比较  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  简介  在NET

知识大全 用VB.NET轻松制作特效窗体

用VB.NET轻松制作特效窗体  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!体是Windows应用

知识大全 用VB.NET设定当前工作路径

用VB.NET设定当前工作路径  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  如果一名开发者希望

知识大全 用Vb.net实现自定义界面

用Vb.net实现自定义界面  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 个人都不希望在别人的身

知识大全 用VB.NET绘制GDI图形

用VB.NET绘制GDI图形  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!下面的例子通过重载For