写在前面:

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资源文件;

使用Resource文件实现应用程序多语言的更多相关文章

  1. 可用于在 Microsoft.NET Framework 4.0 中的 ASP.NET 浏览器定义文件的修补程序

    http://support.microsoft.com/kb/2600088 此修补程序为 Internet Explorer 和 Mozilla Firefox 在浏览器定义文件引入了更新的定义. ...

  2. 微信小程序开发语言的选择

    微信使用的开发语言和文件很「特殊」. 小程序所使用的程序文件类型大致分为以下几种: ①WXML(WeiXin Mark Language,微信标记语言) ②WXSS(WeiXin Style Shee ...

  3. 如何在MVC的ActionLink中应用Resource文件

    项目中建立Resources文件夹. 添加Resource文件,必须添加一个默认的,其他语言可以添加很多个.我这里只添加了一个中文的. 双击每个资源文件,将Access Modifier 设置成pub ...

  4. 利用SHELL脚本实现文件完整性检测程序(1.2版更新)

    一..开发背景 因时势所逼,需要对服务器的文件系统实行监控.虽然linux下有不少入侵检测和防窜改系统,但都比较麻烦,用起来也不是很称手.自己琢磨着也不需要什么多复杂的功能,写个脚本应该就可以满足基本 ...

  5. ACEXML解析XML文件——简单示例程序

    掌握了ACMXML库解析XML文件的方法后,下面来实现一个比较完整的程序. 定义基本结构 xml文件格式如下 <?xml version="1.0"?> <roo ...

  6. 导出resource文件的的资源

    写个小工具,方便一次性将resource文件中的资源导出,不然反编译后一个个找,真是太麻烦了. using System;using System.Collections.Generic;using  ...

  7. IOS 从Resource文件夹下Copy文件到沙盒

    - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. self.t ...

  8. JWebFileTrans(JDownload): 一款可以从网络上下载文件的小程序(二)

    一  前言 本文是上一篇博客JWebFileTrans:一款可以从网络上下载文件的小程序(一)的续集.此篇博客主要在上一篇的基础上加入了断点续传的功能,用户在下载中途停止下载后,下次可以读取断点文件, ...

  9. JWebFileTrans(JDownload): 一款可以从网络上下载文件的小程序(三),多线程断点下载

    一 前言 本篇博客是<JWebFileTrans(JDownload):一款可以从网络上下载文件的小程序>系列博客的第三篇,本篇博客的内容主要是在前两篇的基础上增加多线程的功能.简言之,本 ...

随机推荐

  1. AI模型运维——GPU性能监控NVML和DCGM

    最近一年负责运维的GPU主机越来越多,发现现有的监控项无法很好的了解GPU的性能和负载情况,研究了下官方文档,在此记录. 一.NVML和DCGM NVML:https://developer.nvid ...

  2. WEB前端开发--1(Web前端开发综述)

    Web前端开发 Web--Web系统      前端--网页上为用户呈现的部分   开发--编写代码 1. 前端与后端 前端:网页上为用户呈现的部分 后端:与数据库进行交互,完成数据存取 2. 网站与 ...

  3. Pandas常用操作 - 新增数据列

    初始化测试数据 df = pd.DataFrame({'stu_name': ['Nancy', 'Tony', 'Tim', 'Jack', 'Lucy'], 'stu_age': [17, 16, ...

  4. 初探Matrix Android ApkChecker

    背景 因为我所在的项目是做投放包,对安卓包的大小很敏感,经常会优化包的大小,所以想引入工具静态检测包大小,看能不能找到其中可以优化的地方,防患于未然.Matrix是微信终端自研和正在使用的一套APM( ...

  5. SpringBoot学习第一天

    1 引用starter包可以很方面的引入一组你需要的依赖,而不需要逐个去添加依赖到项目中,也就是一站式获取,比如你想写一个有关spring 和jpa相关的项目,仅仅只需要添加一个spring-boot ...

  6. 05网络并发 ( GIL+进程池与线程池+协程+IO模型 )

    目录 05 网络并发 05 网络并发

  7. 图解python | for循环

    作者:韩信子@ShowMeAI 教程地址:http://www.showmeai.tech/tutorials/56 本文地址:http://www.showmeai.tech/article-det ...

  8. IDEA 端口占用,启动失败,提示Web server failed to start. Port 8080 was already in use.

    问题描述: 使用IDEA开发Spring Boot项目,今天启动提示端口占用,导致启动失败!(我昨天也是用的这个端口,可以正常启动) *************************** APPLI ...

  9. Vue3学习(十五)之 级联选择组件Cascader的使用

    写在前面 好像又过去了一周,依旧是什么也没产出,不是懒,而是心情不好,什么也不想干,失眠是常事. 应该是从今年开始,突然感觉博客园就像是我自己的日记一样,承载着自己的喜怒哀乐和酸甜苦辣咸,当然,尴尬的 ...

  10. NSSCTF-easyupload3.0

    打开环境,是一个上传的界面,点击下面的会回显出上传成功之后的路径,选择上传文件可以直接上传文件 尝试各种文件的上传(菜狗不知道怎么一下做出来,只好一个一个试),最后试出来的文件是.htaccess文件 ...