使用Resource文件实现应用程序多语言
写在前面:
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文件实现应用程序多语言的更多相关文章
- 可用于在 Microsoft.NET Framework 4.0 中的 ASP.NET 浏览器定义文件的修补程序
http://support.microsoft.com/kb/2600088 此修补程序为 Internet Explorer 和 Mozilla Firefox 在浏览器定义文件引入了更新的定义. ...
- 微信小程序开发语言的选择
微信使用的开发语言和文件很「特殊」. 小程序所使用的程序文件类型大致分为以下几种: ①WXML(WeiXin Mark Language,微信标记语言) ②WXSS(WeiXin Style Shee ...
- 如何在MVC的ActionLink中应用Resource文件
项目中建立Resources文件夹. 添加Resource文件,必须添加一个默认的,其他语言可以添加很多个.我这里只添加了一个中文的. 双击每个资源文件,将Access Modifier 设置成pub ...
- 利用SHELL脚本实现文件完整性检测程序(1.2版更新)
一..开发背景 因时势所逼,需要对服务器的文件系统实行监控.虽然linux下有不少入侵检测和防窜改系统,但都比较麻烦,用起来也不是很称手.自己琢磨着也不需要什么多复杂的功能,写个脚本应该就可以满足基本 ...
- ACEXML解析XML文件——简单示例程序
掌握了ACMXML库解析XML文件的方法后,下面来实现一个比较完整的程序. 定义基本结构 xml文件格式如下 <?xml version="1.0"?> <roo ...
- 导出resource文件的的资源
写个小工具,方便一次性将resource文件中的资源导出,不然反编译后一个个找,真是太麻烦了. using System;using System.Collections.Generic;using ...
- IOS 从Resource文件夹下Copy文件到沙盒
- (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. self.t ...
- JWebFileTrans(JDownload): 一款可以从网络上下载文件的小程序(二)
一 前言 本文是上一篇博客JWebFileTrans:一款可以从网络上下载文件的小程序(一)的续集.此篇博客主要在上一篇的基础上加入了断点续传的功能,用户在下载中途停止下载后,下次可以读取断点文件, ...
- JWebFileTrans(JDownload): 一款可以从网络上下载文件的小程序(三),多线程断点下载
一 前言 本篇博客是<JWebFileTrans(JDownload):一款可以从网络上下载文件的小程序>系列博客的第三篇,本篇博客的内容主要是在前两篇的基础上增加多线程的功能.简言之,本 ...
随机推荐
- Pandas常用操作 - 去重
1. 使用 drop_duplicates 去重 1.1 初始化数据 df = pd.DataFrame({'stu_name': ['Tom', 'Tony', 'Jack', 'Jack', np ...
- 初识面向对象(Day17-Day18)
人狗大战的游戏 你现在是一家游戏公司的开发人员,现在需要你开发一款叫做<人狗大战>的游戏,你就思考呀,人狗作战,那至少需要2个角色,一个是人, 一个是狗,且人和狗都有不同的技能,比如人拿棍 ...
- k8s-ingress增加跨域问题
第一种: kubectl get ingresses. -n rrzhibo-admin test-rrzb-apiadmin-gateway-http-ingress -o yaml apiVers ...
- Visual Studio 2017-2019版本创建C#项目时没有创建网站这一选项?
通过了解以后发现Visual Studio 2017之后的版本在新建选项中已经不再有这一选择项了. 解决办法: 1.在创建新项目的面板滑倒最下面,---> 安装多个人工具和功能 2.这时已经打开 ...
- IC应届生40万白菜价!从业多年的资深专家手把手指导你如何选择offer!
这是IC男奋斗史的第1篇原创 关注公众号[IC男奋斗史],让我们一起撸起袖子加油干! 芯片行业2021年的秋招市场又是风起云涌.高手过招,继OPPO给应届生开出40万白菜价offer之后,平头哥又被爆 ...
- [Python]数据类型、常量、变量和运算符(未完待续)
标识符 一个ASCII标识符需要同时满足以下三个条件: 1.第一个字符必须是字母表中的字母或者下划线_ 2.标识符的其他部分由字母.数字.下划线组成 3.标识符对大小写是敏感的,即A与a是不同的 一般 ...
- 【C# Task】开篇
概览 在学task类之前必须学习线程的知识. 以下是task命名空间的类的结构图 1.2种任务类型: 有返回值task<TResult> .无返回值task. 2.2座任务工厂 TaskF ...
- 【C#基础概念】程序集清单
.NET Core 程序集(模块)还包含描述程序集本身的元数据,我们称之为清单.清单记录了当前程序集正常运行所需的所有外部程序集.程序集的版本号.版权信息.模块 .资源(图片 xml等)等.与类型元数 ...
- Oracle建表和SQL语句的增删改
创建表 --建表语法结构: /* CREATE TABLE 表名( 字段名1 数据类型, 字段名2 数据类型 .... ); */ --建一张老师表,里面包含老师编号,老师姓名,老师联系方式,老师入职 ...
- Python:datetime
学习自:datetime - Basic date and time types - Python 3.10.0b2 documentation datetime模块用于操作date和time. da ...