码迷,mamicode.com
首页 > 编程语言 > 详细

深入Resource实现多语言支持的应用详解

时间:2018-05-10 17:13:14      阅读:220      评论:0      收藏:0      [点我收藏+]

标签:new   一个   gets   uri   arp   结果   main函数   中文   files   

首先为假设有一个应用程序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();
}

运行结果如下:

技术分享图片

 

http://www.jb51.net/article/36772.htm

深入Resource实现多语言支持的应用详解

标签:new   一个   gets   uri   arp   结果   main函数   中文   files   

原文地址:https://www.cnblogs.com/tianciliangen/p/9020074.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!