博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
完全详解--使用Resource实现多语言的支持
阅读量:5774 次
发布时间:2019-06-18

本文共 1771 字,大约阅读时间需要 5 分钟。

首先为假设有一个应用程序CAStudy,接着右键添加一个资源文件Resource1.resx

Resource1.resx里面如下:

Main函数如下:

static void Main(){    ResourceManager resourceManager = new ResourceManager(        "CAStudy.Resource1",        Assembly.GetExecutingAssembly());    Console.WriteLine("String1 : " + resourceManager.GetString("String1"));    Console.WriteLine("String1 : " + Resource1.String1);    Console.ReadLine();}
 

使用的ResourceManager构造函数如下:

[SecuritySafeCritical]public ResourceManager(string baseName, Assembly assembly);

在应用程序编译的时候Resource1.resx就会被编译成Resource1的一个类。所以如果你不知道baseName是什么,也可以这样:

ResourceManager resourceManager = new ResourceManager(                Resource1.ResourceManager.BaseName,                Assembly.GetExecutingAssembly());

或者你查看IL代码,可以发现如下:

 

运行结果如下:

 

假设我们要支持 英语-美国(en-US) 的人来访问的话:

那么我们可以复制Resource1.resx ,从而生成Resource1.en-US.resx。

注意除了中间多出来了en-US之外,其他都相同,

当然,如果你需要支持中文-台湾,那么可以生成Resource1.zh-TW.resx.

 

Resource1.en-US.resx内容如下:

 

可以看到,现在的是Hello。

使用的时候只需要修改

Thread.CurrentThread.CurrentUICulture = new CultureInfo("en-US");

 

为什么修改 CurrentUICulture 就可以了呢?

// 摘要:// 获取或设置资源管理器使用的当前区域性以便在运行时查找区域性特定的资源。public CultureInfo CurrentUICulture { get; set; }

 

完整的Main函数如下:

static void Main(){    ResourceManager resourceManager = new ResourceManager(        Resource1.ResourceManager.BaseName,        Assembly.GetExecutingAssembly());    Console.WriteLine("String1 :" + resourceManager.GetString("String1"));    Console.WriteLine("String1 :" + Resource1.String1);    Thread.CurrentThread.CurrentUICulture = new CultureInfo("en-US");    Console.WriteLine("String1 :" + resourceManager.GetString("String1"));    Console.WriteLine("String1 :" + Resource1.String1);    Console.ReadLine();}
 

运行结果如下:

本文转自LoveJenny博客园博客,原文链接:http://www.cnblogs.com/LoveJenny/archive/2011/08/02/2125442.html,如需转载请自行联系原作者
你可能感兴趣的文章
js原生继承之——构造函数式继承实例
查看>>
linux定时任务的设置
查看>>
[CareerCup] 13.3 Virtual Functions 虚函数
查看>>
[Angular 2] ng-model and ng-for with Select and Option elements
查看>>
Visio中如何让重叠图形都显示
查看>>
Tasks and Back stack 详解
查看>>
关于EXPORT_SYMBOL的作用浅析
查看>>
成功的背后!(给所有IT人)
查看>>
在SpringMVC利用MockMvc进行单元测试
查看>>
Nagios监控生产环境redis群集服务战
查看>>
Angular - -ngKeydown/ngKeypress/ngKeyup 键盘事件和鼠标事件
查看>>
Android BlueDroid(一):BlueDroid概述
查看>>
Java利用httpasyncclient进行异步HTTP请求
查看>>
循环多少次? 【杭电--HDOJ-1799】 附题+具体解释
查看>>
linux系统终端命令提示符设置(PS1)记录
查看>>
C++运算符重载
查看>>
【Web】URI和URL,及URL的编码
查看>>
宿舍局域网的应用
查看>>
html代码究竟什么用途
查看>>
oracle的substr函数的用法
查看>>