写在前面:

1.创建资源文件

资源文件命名规则为:文件名(自定义)+cultrueInfo.Name+.resx后缀名

如:A.en-US.resx A.zh-CN.resx

这样命名应用程序代码会根据cultureInfo来确定从哪一个文件读取资源

2.加载资源文件

var rm = ResourceManager("{namespace}.A", typeof({namespace}.{className}).Assembly);

以资源名规则举例的名称为例加载资源

3.设置应用的Culture

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

4.读取资源

根据设置的Culture不同读取对应的资源文件。 en-US则读取A.en-US.resx, zh-CN则读取A.zh-CN.resx

下来我们逐步操作

创建资源文件

创建两个资源文件分别用来记录对应culture的语言 ResourceLan.en-US.resx,ResourceLan.en-US.resx

加载资源文件

namespace MutilLanguage
{
  public class Language
  {
      public static ResourceManager LanResManager
      {
          get
          {
              return new ResourceManager("MutilLanguage.ResourceLan", typeof(MutilLanguage.Language).Assembly);
          }
      }
  }
}

ResourceManager 第一个参数为资源文件的源名称,源名称是用来定位资源文件的,为:命名空间.文件前缀(文件名第一个点以前为前缀),即MutilLanguage.MutilLanguage。我的资源文件名称为ResourceLan.en-US.resx,ResourceLan.en-US.resx 前缀为 ResourceLan

第二个参数,用来定位Assembly文件位置,也就是资源文件项目的Assembley,我在项目中添加了Language类,用来定位Assembley

设置CultureInfo,读取数据

        var culture = new CultureInfo("en-US");//if set culture new CultureInfo("zh-CN"); output:运动商店
      Thread.CurrentThread.CurrentCulture = culture;
      Thread.CurrentThread.CurrentUICulture = culture;
       
        var resManager = MutilLanguage.Language.LanResManager;
        var appName= resManager.GetString("appName");
      Console.WriteLine(appName);
      //output:SportStore

根据CultureInfo读取 MutilLanguage.ResourceLan.[CultureInfo.Name].resx资源文件;

最新文章

  1. 手把手教你用FineBI做数据可视化
  2. javascript模块化编程(三):require.js用法
  3. 几种display:table-cell的应用
  4. jsp页面往mysql里插入中文后数据库里显示乱码
  5. PowerDesigner 16.5 反向PostgreSQL9.01 中 Unable to list the columns. SQLSTATE = 22003不良的类型值 short : t 解决方法
  6. iframe与主框架跨域相互访问方法【转】
  7. HoloLens开发手记 - Known issues 已知问题
  8. ollydbg z
  9. android音乐播放器开发 SweetMusicPlayer 实现思路
  10. matlab 子函数的使用
  11. 【】小技巧】CSS文字两端对齐
  12. numpy用法小结
  13. PyQt5嵌入matplotlib动画
  14. 无网 离线状态下pip3安装 django等软件
  15. epoll代码示例
  16. Day13 Python基础之time/datetime/random模块一(十一)
  17. js判断类型的四种方法
  18. Linux Shell 简介
  19. iframe 父页面与子页面之间的方法的相互调用【转】
  20. 【linux】Linux软连接和硬链接

热门文章

  1. Redis 源码简洁剖析 10 - aeEventLoop 及事件
  2. VUE3 之 ref、provide、inject 的使用 - 这个系列的教程通俗易懂,适合新手
  3. YOLOv5模型训练及检测
  4. Pandas常用操作 - 去重
  5. 06 jQuery
  6. Diary -「PKUSC 2021」游记
  7. Flask中本地栈的使用
  8. code-server服务端开发利器,再也不用vim装逼了!!!
  9. 模块和包—Day28
  10. html特殊字符(css3 content)