用最简单有效的办法实现Winform的全球化多国语言版本软件

     因为本身技术很菜,所以很复杂的问题总喜欢找最简单的解决方法,所以我就用最简单的方法实现软件的多国语言版,首先创建winform工程,设置所有的界面元素Text属性为一种语言版本。注意:添加删除控件必须在默认的语言版本中进行。

    在Form表单的属性中有一组设置本地化的属性:

  • Localizable:true   确定是否生成本地化的代码
  • Language:Default    指示当前本地化语言

    切换language为另一种语言 如:英语(美国)en-US  后再重新编辑所有界面元素的Text属性为这个版本的语言,对于Messagebox推荐使用form来创建。

    编辑好后运行程序,则会自动生成下面两个资源文件。

  • Form1.resx
  •  Form1.en-US.resx

 程序源码:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

using System.Threading;//
using System.Globalization;//
using ControXML;//

   

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            //读取配置
            ControXMLClass cxc = new ControXMLClass("SetApp.xml");
            string lang = cxc.ReadXML("appset", "lang");
            //设置方法
            this.Controls.Clear();
            System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo(lang);
            InitializeComponent();
        }

        private void 中文ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            //设置方法
            this.Controls.Clear();
            System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("");
            InitializeComponent();
            //写入配置
            ControXMLClass cxc = new ControXMLClass("SetApp.xml");
            cxc.WriteXML ("appset", "lang","");
        }

        private void 英文ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            //设置方法
            this.Controls.Clear();
            System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("en-US");
            InitializeComponent();
            //写入配置
            ControXMLClass cxc = new ControXMLClass("SetApp.xml");
            cxc.WriteXML("appset", "lang", "en-US");
        }
    }
}

  

上面引用的ControXML命名空间为一个读取XML配置文件的类,别让大家迷糊了,具体参照:http://www.cnblogs.com/mane/archive/2010/11/19/1881400.html

posted @ 2011-01-19 16:00  Yao,Mane  阅读(1033)  评论(0编辑  收藏  举报