C# CultureInfo 和CultureUIInfo的区别.
今天网上搜索了一下CultureInfo 和CultureUIInfo的区别. 发现这个原来也不是那么简单.大有来头的.简单的说说我们应用程序中的语言翻译吧.有几个概念先要了解一下:全球化,本地化
全球化:简单说就是你开发的应用程序能够跨越多个文化地区使用,而不必顾虑语言和地区的差别.就是说我的程序在中国以中文的形势显示,到了俄国能以俄文的形势显示.
本地化:使用一种本地特有的文化和语言显示创建,存储,输入,输出数据的内容的过程.文化影响日期的显示格式(如显示mm/dd/yyyy还是dd/mm/yyyy),货币显示格式.
世界分为若干个文化和区域.文化是基于语言和文化习惯的一组特性.语言与文化相互依赖,相互影响,语言是文化的重要载体.RFC 1766 定义了文化的名称,这些名称根据语言和国家或区域的不同在世界各地使用。例如 en-AU 、 en-CA 、 en-GB 和 en-US 分别用于表示澳大利亚、加拿大、英国和美国的英语。一个区域有多种语言像(中国,台湾,香港这个区域
,说的都是中文,但是有(zh-CHS(简体中文),zh-TW(台湾中文),zh-HK(香港中文)),一种语言也可以在多个
区域使用,像(墨西哥,西班牙,阿根廷,秘鲁都说西班牙语).
本地化是通过(语言+地理位置)实现的.
例如:fr是法语语言的代码,而fr-FR意味着是法国使用的语言.因此fr仅仅是指定的语言,而fr-FR才实现了本地化.同样fr-CA带表加拿大法语的本地化.如果我们仅仅使用fr它仅代表一种中立性的文化.
现在要区别这三个名次的区别:特定文化,中立文化,不变的文化
特定文化:在引用上面的例子fr-FR和fr-CA就是特定的文化,分别代表法国法语和加拿大法语. 如果只有fr表示法语.是一种中立的文化.
有时候应用程序不必为每个特定文化翻译,如果法国和加拿大说的法语没有太大区别的话,可以使用中立的文化本地化应用程序.
而不需要特定的文化.
不变的文化(Invaraint Culturre):固定区域性不区分区域性。应用程序可通过语言标识符或使用空字符串 ("") 的名称来指定固定区域性。InvariantCulture 用于检索固定区域性的实例。它与英语语言关联,但不与任何国家/地区关联。Globalization 命名空间中需要设置区域性的几乎所有方法都使用固定区域性。这个是我从msdn上抄来的.
图 显示了文化类型的相互关系。
CurrentCulture和CurrentUICulture 设置文化时必须区分用户界面的文化和数字及日期格式的文化。文化与线程相关, 有了这两种文化类型,就可以把两个文化设置应用于线程。用线程设置文化时, Thread 类提供了属性 CurrentCulture 和 CurrentUICulture 。属性 CurrentCulture 用于设置与格式化和排序选项一起使用的文化,而属性 CurrentUICulture 用于设置用户界面的语言。 使用 Windows 控制面板中的“区域和语言”选项,用户就可以改变 CurrentCulture 的默认设置, 如图 17-3 所示。使用这个配置,还可以改变文化的默认数字、时间和日期格式。 CurrentUICulture 不依赖于这个配置,而依赖于操作系统的语言。 这有一个例外:如果 Windows XP 或 Windows 2000 安装了多语言用户 界面 (Muti-language User Interface, MUI) ,就可以用区域配置改变用户界面的语言, 这会影响 CurrentUICulture 属性。 Resources.zh-CHS.resx ,注意到新的名称新增加的部分必须是文化
C# CultureInfo 和CultureUIInfo的区别.相关推荐
- CreateSpecificCulture('zh-cn')和new CultureInfo('zh-cn')的区别
最近在看.net资源的文章时发现以下两句代码: Thread.CurrentThread.CurrentUICulture = new CultureInfo('zh-cn'); Thread.Cur ...
- Html.RenderPartial和Html.Partial在Razor视图中的区别
Html.RenderPartial和Html.Partial在Razor视图中的区别 两者都可以输出一个Partial视图:其区别如下: 1. Partial有返回值(MvcHtmlString): ...
- WPF-Binding问题-模板样式使用Binding TemplatedParent与TemplateBinding区别
一.问题场景 在定义控件模板中,经常使用到Binding和TemplateBinding,有时候,在使用TemplateBinding进行属性绑定时,会存在无效状况,这两类写法,又存在什么区别,案例x ...
- html.partial的作用,Html.RenderPartial()与Html.Partial()区别
这个HtmlHelper的扩展方法Partial,和HtmlHelper自带的 RenderPartial功能比较接近, 两者都可以输出一个Partial视图:其区别如下: . Partial有返回值 ...
- Html.Partial()与Html.RenderPartial()区别
文章有点长,但大多是代码,看看很快的,不要压力太大.网上有很多关于这两个方法的区别,都说出了它本质的区别(不看代码,只看这个结论,就已经足够了,如果觉得有必要从代码中得出这个结论,那就继续往下看),这 ...
- RPC 笔记(01)— RPC概念、调用流程、RPC 与 Restful API 区别
1. 基本概念 PRC 远程过程调用 Remote Procedure Call,其就是一个节点请求另外一个节点提供的服务.当两个物理分离的子系统需要建立逻辑上的关联时,RPC 是牵线搭桥的常见技术手 ...
- C++ 笔记(28)— C++ 中 NULL和 nullptr 的区别
最近看公司代码的时候发现在判断指针是否为空的时候,有的时候用的是 NULL, 有的时候用的是 nullptr 感觉很奇怪,好奇心驱使我查了下两者的区别,发现还是有很多细节需要学习的. 1. NULL ...
- gcc 和 g++ 的联系和区别,使用 gcc 编译 c++
GCC 编译器已经为我们提供了调用它的接口,对于 C 语言或者 C++ 程序,可以通过执行 gcc 或者 g++ 指令来调用 GCC 编译器. 实际使用中我们更习惯使用 gcc 指令编译 C 语言程序 ...
- Python2 与 Python3 区别
Python2.x 与 Python3.x 区别 1. print 函数 Python2 中 print 是语句(statement),Python3 中 print 则变成了函数.在 Python3 ...
最新文章
- Spring Cloud应用开发(七:使用Git存储方式实现分布式配置管理 )
- linux怎么查看fastq格式文件,2020-01-11 了解FASTQ格式并处理FASTQ文件
- 专访小米欧阳辰:深度揭秘小米广告平台的构建、底层模块和坑
- VTK修炼之道73:交互部件_Widget应用综述
- Android逆向:二进制xml文件解析 之 Start Tag Chunk
- 源代码安装g95编译器
- 卷积神经网络-感受野的定义
- 20150915密度聚类
- C语言之pthread_cond_wait()和pthread_cond_timedwait()区别(十五)
- coreos mysql_CoreOS 实战:在 UOS上体验CoreOS 操作全记录
- L. Ray in the tube
- 魏晋名士:骂人都不带脏字
- mpeg文件格式分析
- #PPT进阶——图片变形
- 作为运营,如何在职场上野蛮生长
- Java 数字金额,字符串格式化
- java实现踢下线用户_浅谈踢人下线的设计思路!(附代码实现方案)
- 计算机毕业设计之 新生报名系统系统
- 软件工程团队项目——subway
- 【2021】网络协议从入门到底层原理-MJ【新】附上下载链接