zoukankan      html  css  js  c++  java
  • C#WinForm多语言方案

      因为没找到现成可用的,所以写了这篇:

    1、流程、设计图

    2、解决了两大痛点:

      2.1:新增一个语言,只需修改xml配置文件,通过动态对象DynamicObject,有3个语言就添加3个属性

      2.2可修改字体大小,有时中文换成英文,位置不够,需要修改字体大小

    示例:

    图1

    图2

    3、可拓展

      想修改控件其他属性,在xml中添加后,在代码稍稍修改即可

      另外特殊控件,还需自己修改,ListView 的 Columns集合的ColumnHeader 需要自己添加Name属性(重要)

    <?xml version="1.0" encoding="utf-8"?>
    <TranslateXMl>
    
      <Options>
        <Language>CN</Language>
        <Language>EN</Language>
        <Language>JP</Language>
        <Language>粤语</Language>
      </Options>
    
      <Form>
    !界面1
        <Form Name = "Form1">
          <Item 属性="Text"  CN = "界面" EN = "From" JP ="インターフェース "/>
    
          <Control Name="bt_Test">
            <Item 属性="Text" CN = "测试" EN = "Test" JP ="テスト " 粤语 = "AAA"/>
            <Item 属性="Font" CN = "20" EN = "10" JP ="30"/>
          </Control>
        <Control Name="button1">
            <Item 属性="Text" CN = "按钮1" EN = "btn1" JP ="ボタン1 "/>
          </Control>
          <Control Name="button2">
            <Item 属性="Text" CN = "按钮2" EN = "btn2" JP ="ボタン2 "/>
          </Control>
          <Control Name="toolStripMenuItem1">
            <Item 属性="Text" CN = "目录1" EN = "Menu1" JP ="目次1"/>
          </Control>
          <Control Name="toolStripMenuItem2">
            <Item 属性="Text" CN = "目录2" EN = "Menu2" JP ="目次2"/>
          </Control>
          <Control Name="toolStripTextBox1">
            <Item 属性="Text" CN = "按钮" EN = "btn" JP ="ボタン"/>
          </Control>
        
          <Control Name="toolStripTextBox3">
            <Item 属性="Text" CN = "目录的按钮" EN = "Menubtn" JP ="ボタン"/>
          </Control>
          <Control Name="toolStripTextBox2">
            <Item 属性="Text" CN = "最底按钮" EN = "Lowbtn" JP ="ボタン"/>
          </Control>
        </Form>
      
      </Form>
    </TranslateXMl>

    4、Demo下载地址:Rick413/MultiLanguageDemo (github.com)

    运行环境:vs2019,win10

    吾生也有涯,而知也无涯,以有涯随无涯,殆已。
  • 相关阅读:
    UIView用户事件响应
    登录模块之静态登录
    对C# 中Readonly的再认识
    [Android学习笔记4]四大应用组件之一:Service 上
    修改XPMenu让ToolButton在Down=True时正确显示
    通过程序预览Office文档
    发掘ListBox的潜力(三):显示即时提示(Tips)
    从网络上下载文件的两种方法
    解决窗体闪烁问题的方法
    C/C++中动态链接库的创建和调用
  • 原文地址:https://www.cnblogs.com/kcir/p/15010817.html
Copyright © 2011-2022 走看看