• 程序的国际化


        以前看到别人的软件可以随便切换语言,当时觉得非常好奇,当时也想自己做一个,但是一直不知道别人怎么做的,后来才知道,原来是通过资源文件来切换语言的。也就是为每种语言添加一个资源文件,然后在程序里面动态的加载这些资源文件。下面做了一个测试的程序,实现了中英文的简单切换,效果如下:

    imageimage

       在这个程序里面建了两个资源文件,在资源文件里面,分别设置了窗体的一些属性在不同的语言环境下的值,如下图:

    imageimage

        然后在程序中动态加载切换这些资源文件即可,但需要注意的是,这时候,在给窗体上的属性赋值时,就不能直接赋值,而是要通过资源文件来赋值,看下面的代码:

    this.Text = GloalManager.GetGlobalizationResource("FromName");
    this.文件ToolStripMenuItem.Text = GloalManager.GetGlobalizationResource("MFile");
    this.设置ToolStripMenuItem.Text = GloalManager.GetGlobalizationResource("MSetting");
    this.tsmiChinese.Text = GloalManager.GetGlobalizationResource("MiChinese");
    this.tsmiEnglish.Text = GloalManager.GetGlobalizationResource("MiEnglish");
    this.打开NToolStripMenuItem.Text = GloalManager.GetGlobalizationResource("MiOpen");
    this.保存SToolStripMenuItem.Text = GloalManager.GetGlobalizationResource("MiSave");
    this.退出EToolStripMenuItem.Text = GloalManager.GetGlobalizationResource("MiExit"); 

        然后有一个资源管理类,在这个类里面来确定加载哪一种资源文件,代码如下:

    public static string GetGlobalizationResource(string name)
    {
        //bool flag = true;
        ResourceManager _rm;
     
        if (Flag)
        {
            _rm = new ResourceManager("ChangeLanguage.Resourceen-US", System.Reflection.Assembly.GetExecutingAssembly());
        }
        else
        {
            _rm = new ResourceManager("ChangeLanguage.Resourcezh-CN", System.Reflection.Assembly.GetExecutingAssembly());
        }
        return _rm.GetString(name);
    }
    这样就实现了简单的中英语切换,在这个过程中有一个问题就是MessageBox弹出框上面的确定按钮,切换成英语时“确定”不能改成“Ok”,网上有人说,这个是系统默认会根据操作系统来改,如果是在英语的操作系统下,那么按钮上显示的就会是“OK”,中文则显示“确定”,所以这个不需要我们来修改。
  • 相关阅读:
    大神没事接个活!
    帝国cms 后台账户密码都对,提示你还未登录!
    帝国cms 反馈时提示此信息反馈不存在
    帝国cms e:loop 文章编号标签
    eyoucms 首页以及列表页内容调用标题、关键词、描述
    eyoucms 点击下拉分类,没有分类的不切换代码
    eyoucms class类样式切换写法
    eyoucms if 判断显示或者隐藏
    eyoucms 调用搜索代码
    eyoucms 获取单页内容的代码
  • 原文地址:https://www.cnblogs.com/xiaoxiangfeizi/p/2776669.html
Copyright © 2020-2023  润新知