zoukankan      html  css  js  c++  java
  • 程序的国际化

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

    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”,中文则显示“确定”,所以这个不需要我们来修改。
  • 相关阅读:
    全角半角转换
    MSN的头像存放路径
    treeview托拽和动态添加节点以及treeview和xml的交互的实现
    一个简单的分页存储过程
    datagrid数据导出到excel文件给客户端下载的几种方法
    大容量数据传输,web.config修改方法
    XSD(XML Schema Definition)学习笔记
    最近想发起一次服务器合租,有米有人有兴趣
    从首页看CCS布局
    关于CS1.1后台管理页面的研究
  • 原文地址:https://www.cnblogs.com/xiaoxiangfeizi/p/2776669.html
Copyright © 2011-2022 走看看