分类
.NET Framework 中多语言支持的实现‖
| 曾经记得在 win32 现了大量的教程都是教你如 难找到好的框架实现在商业 你只需轻松点击鼠标就可以 | 的原生代码编程时代,为实现一 何让程序实现多语言支持,这些 程序中。.NET 时代的到来,我 让你的程序完美实现多语言支持 | 个多语言界面而绞尽脑汁,因此出 实现方法的技术水平参差不齐,很 们突然发现这一切变得那么简单, 。 |
| 我不想在这里过多 的技术文档。 | 的解释文中出现的概念,因为 M | SDN 已经为我们提供了完全本地化 |
| 正文 |
| 我用的是 Visual Demo 不仅可以自动根据当 现自定义资源的本地化。 D | Studio 2003 中的 Visual C#.N 前区域设置进行本地化的实现, emo 源码这里下载。 | ET 来实现的,我设计的这个 还可以手动更改界面语言,并且实 |
| 请跟随我的步骤来完成: |
| 创建名为“MultiLanguage”的新 Windows 应用程序。 |
| 在“属性”窗口中,将窗体的 Localizable 属性设置为 true。 |
| Language 属性已经设置为 (Default)。 |
| 将 MainMenu、PictureBox、Button 体上,然后按照我在 Demo 窗体中对这些 | 控件从“工具箱”的“Windows 窗体”选项卡拖到窗 控件的布局、设计进行设置。 |
| 将该窗体的 Language 属性设置为“中文(中华人民共和国)”。 |
| 重新按照我在 Demo 窗体中对这些控件的中文界面的布局、设计进行设置。 |
| 单击解决方案资源管理器中的“显示所有文件”按钮。 |
| 资源文件出现在 Form1.cs 的下面。 主程序集中。Form1.zh-CN.resx 是在中 | Form1.resx 是后备区域性的资源文件,它将生成到 国讲的简体中文的资源文件。 |
| 分别生成菜单项的 Cli | ck 事件,按照我在 Demo 中的 | 实现代码添加到事件处理部分。 |
| 大家主要学习我是如何动态修改界面 PictureBox.Image)。 | 上所有跟语言相关的元素,包括字符串、对象(例如 |
| 在“项目”菜单上单击“添加新项”。 |
| 在“模板”框中选择“ WinFormStrings.resx”。W 找不到更适合于 UI 区域性 | 程序集资源文件”模板。在“名 inFormStrings.resx 文件将包 的资源时,就将访问这些资源。 | 称”框中键入文件名“ 含英语的后备资源。每当应用程序 |
| 该文件被添加到解决方 图形式打开。 | 案资源管理器中的项目中,并自 | 动在 XML 设计器中以“数据”视 |
| 在“数据表”窗格中选择“data”。 |
| 在“数据”窗格中,单 中输入“Hello World”。 | 击空行,并在“name”列中输入 | “strMessage”,在“value”列 |
| 在“文件”菜单上,单击“保存 WinFormStrings.resx”。 |
| 再执行两次步骤 8-12 以创建一个名 且这个文件具有在下表中指定的字符串资 在中国讲的简体中文的资源。 | 为“WinFormStrings.zh-CN.resx”的资源文件,并 源。WinFormStrings.zh-CN.resx 文件将包含特定于 |
| 资源文件名 | name value |
| WinFormStrings.zh-CN | .resx strMessage | 你好!世界 |
| 生成 Button1 的 Clic | k 事件,按照我在 Demo 中的实 | 现代码添加到事件处理部分。 |
| 这部分大家主要学习如何访问手动添 框和错误信息中出现的可本地化字符串。 | 加的资源,其目的是为了在你以后编程时生成在对话 |
| 添加构造函数 Form1() 的代码,按照我在 Demo 中的代码进行添加。 |
| 保存和生成解决方案。 |
| 编译并试着运行。 |
| 我是用 Release 模式 成两个子目录“zh-CHS薄?br>文件,分别对应你在窗体中 布,不要改变 Bin 目录下 现,原理请参考 MSDN 相应 | 进行编译的,在项目目录的 Mul “zh-CN”,里面都有一个叫“M 设计的后备区域性的资源文件。 的任何目录设置,.NET Framewo 章节。 | tiLanguagebinRelease 下会生 ultiLanguage.resources.dll”的 发布时请随最后的编译程序一起发 rk 会根据一定规律进行本地化实 |