C#多语言实施方法

开发环境:C# 2008

默认语言:英语(美国) en-US

扩展语言:中文(简体) zh-CN

前提条件:要在项目稳定后,再做多语言本地化

要求:代码中一定不要使用硬编码,统一使用Resoures.XXX来使用资源中的字符串

步骤:

  1. 将所有跟多语言相关的字符串资源改成从Resources.resx文件中读取,使用默认语言
  2. 双击打开一个窗体进入界面编辑模式(View Designer)
  3. 将AutoScaleMode改为None、Font改为Microsoft Sans Serif 8号字、Localizable改为True,调整当前窗体为适合的界面,供默认语言时调用,保存后会生成窗体名.resx文件。
  4. 修改Language为Chinese (PPC),Font可以改为宋体 9号字或小五,也可以保留Microsoft Sans Serif 8号字,修改各字符串为扩展语言并调整为适合的界面,保存后会生成窗体名.zh-CN.resx文件。
  5. 重复2~4步修改所有的窗体。修改控件时将Language改成Default再做修改。
  6. 右击Resources.resx文件选Copy菜单,右击工程名选Paste菜单,会在工程下贴粘出Resources.resx文件,重命名成与扩展语言对应的名称Resources.zh-CN.resx,并拖进Properties文件组(夹)。
  7. 双击打开Resources.zh-CN.resx,修改各个资源字符串为对应的扩展语言并保存,可以删除Resources.zh-CN.Designer.cs,因为除了字符串资源,其它多媒体资源仍保存在默认的Designer.cs文件中。
  8. 在Program.cs的Main函数调用System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("en-US");设置默认的语言,缺省的话系统会使用第一个添加的扩展语言,这里会是zh-CN。注意有多线程操作界面时各线程要分别设置CurrentUICulture。
  9. 重复2~8步支持其它扩展语言,编译后会在执行程序所在目录下新建zh-CN等多语言的资源目录,如果想使用默认语言可以删除所有的多语言资源目录,也可以按第8步修改默认的语言。

测试工程:TestLanguage.zip

Tags:

Leave a Reply


提醒: 评论者允许使用'@user空格'的方式将自己的评论通知另外评论者。例如, ABC是本文的评论者之一,则使用'@ABC '(不包括单引号)将会自动将您的评论发送给ABC。请务必注意user必须和评论者名相匹配(大小写一致)。