资源文件本地化使用

原创 2004年07月20日 12:14:00

资源文件是解决本地化的有效途径之一。

建立一个空白的项目。

首先建立一个FORM。摆上两个BUTTON。

第一个BUTTON用来切换语言。第二个BUTTON用来显示对应的语言资源。

查看FORM的属性。在杂项里面,有一个Language。我们首先选择中文(简体)。然后编辑窗体的text为“这是一个例子”。button1的text为“切换语言”,button2的text为“得到信息”。保存。然后选择英语(美国),编辑窗体的text为“This is a Example”,button1.Text为“Switch Language”,button2.Text为“Get Info”。保存。

这些信息保存在bin/debug下面的zh-CH和en-US的文件夹下面。

 

然后我们切换回代码页面,请大家重点看看InitializeComponent()这个方法。这个方法和普通的(没有设置语言属性)的窗体就不一样了。看下面的代码,它尝试从资源文件里面来读取窗体有关的信息。

System.Resources.ResourceManager resources = new System.Resources.ResourceManager(typeof(Form1));

...................................

this.button2.Text = resources.GetString("button2.Text");
this.button2.TextAlign = ((System.Drawing.ContentAlignment)(resources.GetObject("button2.TextAlign")));
this.button2.Visible = ((bool)(resources.GetObject("button2.Visible")));

...................................

 我们编写button1的click事件,如下:

if(System.Threading.Thread.CurrentThread.CurrentUICulture.Name == "en-US")
{
System.Threading.Thread.CurrentThread.CurrentUICulture = System.Globalization.CultureInfo.CreateSpecificCulture("zh-CN");?
}
else
{
System.Threading.Thread.CurrentThread.CurrentUICulture = System.Globalization.CultureInfo.CreateSpecificCulture("en-US");?
}

//这段代码,大家可以从InitializeComponent方法里面拷贝出来。用来重新设置窗体的信息。

System.Resources.ResourceManager resources = new System.Resources.ResourceManager(typeof(Form1));

this.button1.Location = ((System.Drawing.Point)(resources.GetObject("button1.Location")));
this.button1.Size = ((System.Drawing.Size)(resources.GetObject("button1.Size")));
this.button1.Text = resources.GetString("button1.Text");
this.button1.TextAlign = ((System.Drawing.ContentAlignment)(resources.GetObject("button1.TextAlign")));

this.button2.Location = ((System.Drawing.Point)(resources.GetObject("button2.Location")));
this.button2.Size = ((System.Drawing.Size)(resources.GetObject("button2.Size")));
this.button2.TabIndex = ((int)(resources.GetObject("button2.TabIndex")));
this.button2.Text = resources.GetString("button2.Text");
this.button2.TextAlign = ((System.Drawing.ContentAlignment)(resources.GetObject("button2.TextAlign")));

this.Text = resources.GetString("$this.Text");

 

然后给项目添加两个资源文件,分别为MyResource.resx和MyResource.en-US.resx。

双击MyResource.en-US.resx,添加一个内容。name栏里面添加ONE,value里面添加ONE.

 同样给MyResource.resx添加一项,name里面也是ONE,value里面是"一".

 然后编写button2的click事件。

如下:

 

ResourceManager rm = new ResourceManager("ResourceMgr.MyResource",this.GetType().Assembly);
MessageBox.Show(rm.GetString("ONE"));

 

OK.运行起来这个FORM,点击按钮查看效果。

Mac OS X 文件夹本地化方法(汉化)

为避免中文编码问题,建议以后无论是操作系统语言还是文件夹、文件语言还有软件语言,一律用英文来代替。 经常看到 OS X 中的一些文件夹名称会随系统语言的更改而自动改变。有时候你想要某...
  • afdnlw
  • afdnlw
  • 2013年12月21日 16:55
  • 4359

ios开发之使用bundle来管理资源文件

在ios开发中为了方便管理资源文件,可以使用bundle的方式来进行管理,比如kkgridview里就是把所需的图片文件全部放在一个bundle来管理的 . 切记目前iOS中只允许使用bundl...
  • bl1988530
  • bl1988530
  • 2013年06月07日 16:59
  • 14516

Android使用WebView加载本地资源

Android使用WebVie 在网上看了许多关于WebView 的例子。但当自己做起来时,总是有些差别,是另一种体会。这节我就以 模拟器为2.1 为例来讲。    WebView 主要调...
  • u013338165
  • u013338165
  • 2015年07月10日 12:01
  • 1399

iOS开发那些事-iOS应用本地化-资源文件本地化

资源文件包括:图片文件、音频文件以及前文提到的Localizable.strings等文件,它们的特点是都是随着应用一起打包发布。但就本地化而言无论是图片文件还是音频文件都必须实现的步骤都是类似的,因...
  • wangeclipse
  • wangeclipse
  • 2013年11月26日 19:20
  • 496

精彩编程与编程技巧-地大物博——谈谈在VB6.0中如何使用资源文件进行编程...

  • 2009年10月09日 23:00
  • 916B
  • 下载

精彩编程与编程技巧-地大物博——谈谈在VB6.0中如何使用资源文件进行编程...

  • 2009年10月10日 17:44
  • 5KB
  • 下载

资源文件中图标的使用

  • 2011年12月21日 13:36
  • 211KB
  • 下载

C#简单三层架构 使用压缩后的XML资源文件、解压查询手机号码归属地

  • 2010年11月10日 12:24
  • 748KB
  • 下载

Android xml资源文件中@、@android、@+以及问号的使用详解

  • 2014年12月27日 22:13
  • 21KB
  • 下载

C# 使用资源文件国际化程序.附源代码

  • 2011年07月22日 21:57
  • 18KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:资源文件本地化使用
举报原因:
原因补充:

(最多只允许输入30个字)