zoukankan      html  css  js  c++  java
  • winForm 国际化的简单实现

        国际化就是要实现多语种的界面切换。首先,我们不可能用if else等语句来根据选择的不同语种对所有的控件一个一个的设值,这样太麻烦了。.Net提供了国际化相关的支持,主要放在System.Globalization命名空间下。下面是一个简单的实现,麻雀虽小,五脏俱全。
    这个程序是最近写的一个程序,就在这基础上进行改造,关键是弄懂原理。
    1> 首先要加入Resource文件
    在VS工程-->添加新项目里加入三个resource文件,Resource文件的作用就是存放我们的界面控件的显示字符串。这里我们要实现3种语言的切换,所有加入了3个,分别命名为:Resource.en-US.resx,Resource.zh-CN.resx,Resource.ja-JP.resx。注意命名规则第一部分要相同,第二部分是不同语言的culture name,我定义的就是英语,中文,日文。
    2> 在这3个文件中定义界面相关的字符串信息。
    注意定义的名字在3个文件中要一致,否则找不到。
    Resource.en-US.resx
    tsmi_language_Name Language
    tsmi_japanese_Name Japanese
    tsmi_english_Name English
    tsmi_close_Name Close
    tsmi_chiniese_Name Chinese

    Resource.zh-CN.resx
    tsmi_language_Name 语言
    tsmi_chiniese_Name 中文
    tsmi_english_Name 英文
    tsmi_japanese_Name 日文
    tsmi_close_Name 退出

    Resource.ja-JP.resx
    tsmi_language_Name 言語
    tsmi_chiniese_Name 中国語
    tsmi_english_Name 英語
    tsmi_japanese_Name 日本語
    tsmi_close_Name 閉じる
    3> 利用ResourceManager类进行读取。
    ResourceManager会根据不同的cultrue来读不同的resource文件,所以,实现的关键就是根据不同的语言来改变当前程序线程的cultrue就可以达到目地。而对于界面控件Text的赋值代码将是不变的,当新增加一种语言是,也就是再加一个resource文件,对代码的改动几乎没有影响。
    基本代码:
    Resource的读取类


    设定控件文字的代码:


    4> 基本完成,看看效果图

      

  • 相关阅读:
    python14 1.带参装饰器 | wrapper 了了解 # 2.迭代器 ***** # 可迭代对象 # 迭代器对象 # for迭代器 # 枚举对象
    python13 1.函数的嵌套定义 2.global、nonlocal关键字 3.闭包及闭包的运用场景 4.装饰器
    python12--字符串的比较 函数的默认值的细节 三元表达式 函数对象 名称空间 作用域 列表与字典的推导式 四则运算 函数的嵌套
    python11 函数的定义,调用,分类
    python10--函数的来源,优点,定义,组成,使用(定义,调用)函数的分类,函数的返回值
    python1--计算机原理 操作系统 进制 内存分布
    python2 配置环境变量
    python3 数据类型
    Java创建线程的三种方式
    webhooks动态更新配置
  • 原文地址:https://www.cnblogs.com/xiashengwang/p/2578786.html
Copyright © 2011-2022 走看看