.NET Framework 中多语言支持的实现

原创 2004年08月02日 14:06:00
 
 

标题:.NET Framework 中多语言支持的实现

关键词:.NET 多语言 作者:dREAMtHEATER 难度:普通[x]  中等[]  高级[]
http://dREAMtHEATER.yeah.net E-Mail:NoteXPad@163.com

完成日期:2004年08月02日

 
前言
  
曾经记得在 win32 的原生代码编程时代,为实现一个多语言界面而绞尽脑汁,因此出现了大量的教程都是教你如何让程序实现多语言支持,这些实现方法的技术水平参差不齐,很难找到好的框架实现在商业程序中。.NET 时代的到来,我们突然发现这一切变得那么简单,你只需轻松点击鼠标就可以让你的程序完美实现多语言支持。
    我不想在这里过多的解释文中出现的概念,因为 MSDN 已经为我们提供了完全本地化的技术文档。

正文
    我用的是 Visual Studio 2003 中的 Visual C#.NET 来实现的,
我设计的这个 Demo 不仅可以自动根据当前区域设置进行本地化的实现,还可以手动更改界面语言,并且实现自定义资源的本地化。 Demo 源码这里下载
    请跟随我的步骤来完成:
  1. 创建名为“MultiLanguage”的新 Windows 应用程序。
  2. 在“属性”窗口中,将窗体的 Localizable 属性设置为 true。
    Language 属性已经设置为 (Default)。
  3. 将 MainMenu、PictureBox、Button 控件从“工具箱”的“Windows 窗体”选项卡拖到窗体上,然后按照我在 Demo 窗体中对这些控件的布局、设计进行设置。
  4. 将该窗体的 Language 属性设置为“中文(中华人民共和国)”。
  5. 重新按照我在 Demo 窗体中对这些控件的中文界面的布局、设计进行设置。
  6. 单击解决方案资源管理器中的“显示所有文件”按钮。
    资源文件出现在 Form1.cs 的下面。Form1.resx 是后备区域性的资源文件,它将生成到主程序集中。Form1.zh-CN.resx 是在中国讲的简体中文的资源文件。
  7. 分别生成菜单项的 Click 事件,按照我在 Demo 中的实现代码添加到事件处理部分。
    大家主要学习我是如何动态修改界面上所有跟语言相关的元素,包括字符串、对象(例如PictureBox.Image)。
  8. 在“项目”菜单上单击“添加新项”。
  9. 在“模板”框中选择“程序集资源文件”模板。在“名称”框中键入文件名“WinFormStrings.resx”。WinFormStrings.resx 文件将包含英语的后备资源。每当应用程序找不到更适合于 UI 区域性的资源时,就将访问这些资源。
    该文件被添加到解决方案资源管理器中的项目中,并自动在 XML 设计器中以“数据”视图形式打开。
  10. 在“数据表”窗格中选择“data”。
  11. 在“数据”窗格中,单击空行,并在“name”列中输入“strMessage”,在“value”列中输入“Hello World”。
  12. 在“文件”菜单上,单击“保存 WinFormStrings.resx”。
  13. 再执行两次步骤 8-12 以创建一个名为“WinFormStrings.zh-CN.resx”的资源文件,并且这个文件具有在下表中指定的字符串资源。WinFormStrings.zh-CN.resx 文件将包含特定于在中国讲的简体中文的资源。
    资源文件名 name value
    WinFormStrings.zh-CN.resx strMessage 你好!世界
  14. 生成 Button1 的 Click 事件,按照我在 Demo 中的实现代码添加到事件处理部分。
    这部分大家主要学习如何访问手动添加的资源,其目的是为了在你以后编程时生成在对话框和错误信息中出现的可本地化字符串。
  15. 添加构造函数 Form1() 的代码,按照我在 Demo 中的代码进行添加。
  16. 保存和生成解决方案。
  17. 编译并试着运行。
    我是用 Release 模式进行编译的,在项目目录的 MultiLanguage/bin/Release 下会生成两个子目录“zh-CHS”、“zh-CN”,里面都有一个叫“MultiLanguage.resources.dll”的文件,分别对应你在窗体中设计的后备区域性的资源文件。发布时请随最后的编译程序一起发布,不要改变 Bin 目录下的任何目录设置,.NET Framework 会根据一定规律进行本地化实现,原理请参考 MSDN 相应章节。
参考
  1. MSDN Feb 2003 简体中文版。具体参见
    ms-help://MS.MSDNQTR.2003FEB.2052/vbcon/html/vbwlkWalkthroughLocalizingWindowsForms.htm

.Net 多语言 与资源文件

目前很多网站都支持多语言,特别是中英文。而.Net网站中的多语言就要用到资源文件。资源文件分为全局资源文件(App_GlobalResource)以及本地资源文件(App_LocalResource)...
  • dong5151
  • dong5151
  • 2016年04月06日 22:13
  • 3427

.NET中多语言版本的实现---WinForm

在.NET中WinForm要实现多语言版本,其原理也是用Resource资源文件存到不同的语言环境下的文字描述.不过使用IDE既可以实现,相对WebForm中窗体上的文字描述,不需要手工的编写代码,不...
  • zjyong0123
  • zjyong0123
  • 2005年08月05日 10:33
  • 3244

C# ASP.NET 最佳的实现多语言网站的例子

  • 2017年07月19日 21:43
  • 8.08MB
  • 下载

.Net 多语言 与资源文件

目前很多网站都支持多语言,特别是中英文。而.Net网站中的多语言就要用到资源文件。资源文件分为全局资源文件(App_GlobalResource)以及本地资源文件(App_LocalResource)...
  • dong5151
  • dong5151
  • 2016年04月06日 22:13
  • 3427

ASP.NET MVC 多语言配置

步骤1:打开VS2015新建测试项目。 步骤2:创建资源文件。 步骤3:新建类CultureModule public class CultureModule : IHttpMod...
  • Sky_666
  • Sky_666
  • 2017年02月18日 14:42
  • 2046

超级简单:ASP.NET Localization (本地化,多语言)

有很多讨论ASP.NET localization(本地化,多语言)的文章,这篇文章是不会的深入讨论ASP.NET Localization (本地化,多语言)。相反,它将给你有关asp.net页面中...
  • qq285679784
  • qq285679784
  • 2015年07月13日 15:01
  • 2309

ASP.NET MVC:多语言的三种技术处理策略

背景 本文介绍了多语言的三种技术处理策略,每种策略对应一种场景,这三种场景是: 多语言资源信息只被.NET使用。 多语言资源信息只被Javascript使用。 多语言资源信息同时被....
  • dyllove98
  • dyllove98
  • 2013年08月01日 20:24
  • 1730

.NET Framework详解之内存机制

.NET Framework详解之内存机制:在.NET Framework中,内存中的资源(即所有二进制信息的集合)分为"托管资源"和"非托管资源".托管资源必须接受.NET Framework的CL...
  • xiaoran1985
  • xiaoran1985
  • 2014年03月11日 11:22
  • 617

.NET Framework各版本操作系统支持

.NET Framework .NET版本 1.0 1.1 2.0 3.0 3.5 4.0 4.5 完整版本 1.0.3705.0 1.1.4322.573 ...
  • wangcs017
  • wangcs017
  • 2013年08月20日 16:15
  • 4477

如何让.Net 程序脱离.net framework框架运行

Net 框架目前逐步在普及了,仍然有很多人在寻找如何让.NET程序脱离.NET框架的方法。现成的工具有 Xenocode 的postbuidle或者vas,还有 Salamander .NET Lin...
  • demo1573
  • demo1573
  • 2015年09月15日 17:00
  • 652
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:.NET Framework 中多语言支持的实现
举报原因:
原因补充:

(最多只允许输入30个字)