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

本文共 1739 字,大约阅读时间需要 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();}
 

运行结果如下:

转载于:https://www.cnblogs.com/LoveJenny/archive/2011/08/02/2125442.html

你可能感兴趣的文章
JDK7中的新特性 The try-with-resources Statement
查看>>
linux 清空文件内容命令
查看>>
Android——通知 Notification
查看>>
【转】Android:Animation的简单学习--不错
查看>>
标志位 last break
查看>>
SpringCloud分布式开发五大神兽
查看>>
运行网站项目时,有时出现Bad Request,该怎么解决?
查看>>
10个最好的免费Javascript图表生成方案
查看>>
数据库读图片
查看>>
程序员的七大坏毛病
查看>>
小白学数据分析------>相关分析之距离分析在道具购买量的应用探索
查看>>
PHP5调试工具debugConsole
查看>>
java.lang.InstantiationException:
查看>>
转:jmf編譯問題的解決
查看>>
Hosts文件的位置
查看>>
java设计模式演示样例
查看>>
phantomjs 是什么?----主要是mac下面
查看>>
Codeforces Round #345 (Div. 2) D. Image Preview 暴力 二分
查看>>
suggest
查看>>
Java集合框架实现自定义排序
查看>>