C# 支持多种语言
通过Resource文件建立本地化。
net 资源文件名(这里是Resource1.resx)由根名称(即Resource1),本地语言名称(默认情况下还没有)及扩展名组成,在读取资源时,资源管理器会根据当前环境决定需要的本地语言名称,例如英语,然后试图以全名读取资源,美国英语的本地名称为en-US(更多语言名称可以从MSDN中查询CultureInfo信息得到),那么资源全名为Resource1.en-US.resx,如果存在该文件,则载入该文件作为资源文件,如果没有则使用默认值Resource1.resx,确定好资源文件后开始查找指定的资源(例如"String1"),如果在本地资源文件中没有找到,则向上查找上一级的本地资源文件,最终找到根名称Resource1为止
1.分别建立Resource.resx,Resource.en-US.resx,Resource.zh-CHS.resx文件;其String1值分别对应为"默认语言”,“英文","中文"。
目前发现:1.必须在程序根目录,不能放在自己建立的文件夹里;
2.必须有Resource.resx文件(引用的时候就是用这个文件的名字,缺少会引用不了),也就是说虽然系统默认语言中文,已建立中文(Resource.zh-CHS.resx),
但也不能没有Resource.resx文件。
3.其他语言有的字符串变量名,在Resource1.resx必须存在,因此使用的时候先完整在Resource1.resx建立需要汉化或英语变量名。
2.
程序会随着操作系统语言而保持相同。
以下代码手动控制使用语言种类。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms; namespace GlobalizationTest
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
} private void Form1_Load(object sender, EventArgs e)
{ } private void btnChiness_Click(object sender, EventArgs e)
{
System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("zh-CHS");
lblMsg.Text = Resource1.String1;
} private void btnEnUs_Click(object sender, EventArgs e)
{
System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("en-US");
lblMsg.Text = Resource1.String1;
}
}
}
3.在不同语言建立相同的字符串变量,对应不同语言value值。字符串变量命名要窗口Id名字+字符串变量名。resx文件其实就是xml文件,用记事本可以打开编辑。
C# 支持多种语言的更多相关文章
- 【转】让Souce Insight支持多种语言的语法高亮:Python,Ruby,ARM汇编,windows脚本文件(bat/batch),PPC,SQL,TCL,Delphi等
		
原文网址:http://www.crifan.com/source_insight_support_highlight_for_python_ruby_arm_batch_ppc_sql_tcl_de ...
 - Netflix 开源 Polynote:对标 Jupyter,一个笔记本运行多种语言
		
谈到数据科学领域的开发工具,Jupyter 无疑是非常知名的一种.它具有灵活高效的特点,非常适合进行开发.调试.分享和教学.近日,Netflix(奈飞)居然也玩起了跨界,他们开源了一个名为 Polyn ...
 - django支持多语言
		
Django支持多语言切换 下面介绍下如何使网站或APP国际化,让其支持多种语言 . 官网 效果 1.创建locale文件夹 先在项目根目录下创建一个名为locale的文件夹,这个文件夹是用来存放dj ...
 - Cassandra在CQL语言层面支持多种数据类型
		
Cassandra在CQL语言层面支持多种数据类型. CQL类型 对应Java类型 描述 ascii String ascii字符串 bigint long 64位整数 blob ByteBuffer ...
 - Win10 UWP 开发系列:使用多语言工具包让应用支持多语言
		
之前我在一篇blog中写过如何使用多语言工具包,见http://www.cnblogs.com/yanxiaodi/p/3800767.html 在WinEcos社区也发布过一篇详细的文章介绍多语言工 ...
 - 使用AuthDBMType指令支持多种类似DBM的数据库
		
Unix线程 在支持POSIX线程的Unix系统上,现在Apache能在混合的多进程.多线程模式下运行,使很多(但非全部)配置的可伸缩性得到了改善. 新的编译系统 重写了编译系统,现在是基于autoc ...
 - StreamSets学习系列之StreamSets支持多种安装方式【Core Tarball、Cloudera Parcel 、Full Tarball 、Full RPM 、Docker Image和Source Code 】(图文详解)
		
不多说,直接上干货! Streamsets的官网 https://streamsets.com/ 得到 https://streamsets.com/opensource/ StreamSets支持多 ...
 - asp.net core 实现支持多语言
		
asp.net core 实现支持多语言 Intro 最近有一个外国友人通过邮件联系我,想用我的活动室预约,但是还没支持多语言,基本上都是写死的中文,所以最近想支持一下更多语言,于是有了多语言方面的一 ...
 - 华为方舟编译器正式支持C语言:完全开源
		
投递人 itwriter 发布于 2020-10-14 19:08 评论(15) 有1938人阅读 原文链接 2019 年 8 月底,华为方舟编译器(OpenArkCompiler)正式开源,迈出了跨 ...
 
随机推荐
- Java-异常Throwable,Exception,Error
			
异常指不期而至的各种状况,如:文件找不到.网络连接失败.非法参数等. 异常是一个事件,它发生在程序运行期间,干扰了正常的指令流程. Java通过API中Throwable类的众多子类描述各种不同的 ...
 - 36.Android之多线程和handle更新UI学习
			
android经常用到多线程更新UI,今天学习下. 首先布局比较简单: <?xml version="1.0" encoding="utf-8"?> ...
 - BZOJ-1407   Savage    枚举+拓展欧几里得(+中国剩余定理??)
			
zky学长实力ACM赛制测试,和 大新闻(YveH) 和 华莱士(hjxcpg) 组队...2h 10T,开始 分工我搞A,大新闻B,华莱士C,于是开搞: 然而第一题巨鬼畜,想了40min发现似乎不可 ...
 - CODEVS 1258 关路灯
			
写动归终于能不看题解一次A了!(其实交了两次,一次80一次A) 我练功发自真心! 题目描述 Description 多瑞卡得到了一份有趣而高薪的工作.每天早晨他必须关掉他所在村庄的街灯.所有的街灯都被 ...
 - [IOS UICollectionView模版]
			
创建CollectionCell模版: 1.新建类CollectionCell继承自UICollectionViewCell 2.新建Xib,命名为CollectionCell.xib a.选中Col ...
 - Linux mount/unmount命令(转)
			
格式:mount [-参数] [设备名称] [挂载点] 其中常用的参数有:-a 安装在/etc/fstab文件中类出的所有文件系统.-f 伪装mount,作出检查设备和目录的样子,但并不真正挂载文件系 ...
 - 轻量级应用开发之(07) UIPickerView使用
			
#import "ViewController.h" @interface ViewController ()<UIPickerViewDataSource,UIPicker ...
 - POJ1459Power Network(dinic模板)
			
Power Network Time Limit: 2000MS Memory Limit: 32768K Total Submissions: 25832 Accepted: 13481 D ...
 - gcc/g++ 参数
			
-static 此选项将禁止使用动态库,所以,编译出来的东西,一般都很大,也不需要什么 动态连接库,就可以运行. -share 此选项将尽量使用动态库,所以生成文件比较小,但是需要系统由动态库.
 - centos命令
			
alt + z 打开终端(自定义命令) su 切换到root