用最简单有效的办法实现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

转载于:https://www.cnblogs.com/mane/archive/2011/01/19/1939183.html

WinForm实现多国语言的方法有多种。一种方法是通过改变程序中界面的语言实现。首先,可以设定好默认情况下的界面,然后将localizable属性设置为True,选择某个语言,再设定该语言的界面。接着,可以改变Language属性,设定相应的界面。此时,如果将localizable属性改为False,程序将使用当前选择的Language语言界面覆写默认界面资源文件。这样就可以实现WinForm中切换不同语言的界面。\[1\] 另一种方法是在表级别支持多语言。可以为每种语言建立独立的表,不同语言的用户操作不同的表,但它们在同一个数据库中。对于与语言无关的表,不同语言的用户共享一套表。而对于与语言相关的表,根据支持语言的种类来建立不同的表格。这样可以简化维护,节省存储空间,并且方便扩展。需要注意的是,对于一些字段是不同语言版本的表共享的情况,数据共享可能会有一些困难,可以通过不同的解决方法来解决这个问题。\[2\] 综上所述,WinForm实现多国语言可以通过改变界面语言或在表级别支持多语言实现。具体选择哪种方法取决于实际需求和项目的复杂度。 #### 引用[.reference_title] - *1* [WinForm多国语言实现 ](https://blog.csdn.net/hengbo/article/details/4106395)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [WinForm多国语言实现](https://blog.csdn.net/manimanihome/article/details/2053292)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值