今天网上搜索了一下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的区别.相关推荐

  1. CreateSpecificCulture('zh-cn')和new CultureInfo('zh-cn')的区别

    最近在看.net资源的文章时发现以下两句代码: Thread.CurrentThread.CurrentUICulture = new CultureInfo('zh-cn'); Thread.Cur ...

  2. Html.RenderPartial和Html.Partial在Razor视图中的区别

    Html.RenderPartial和Html.Partial在Razor视图中的区别 两者都可以输出一个Partial视图:其区别如下: 1. Partial有返回值(MvcHtmlString): ...

  3. WPF-Binding问题-模板样式使用Binding TemplatedParent与TemplateBinding区别

    一.问题场景 在定义控件模板中,经常使用到Binding和TemplateBinding,有时候,在使用TemplateBinding进行属性绑定时,会存在无效状况,这两类写法,又存在什么区别,案例x ...

  4. html.partial的作用,Html.RenderPartial()与Html.Partial()区别

    这个HtmlHelper的扩展方法Partial,和HtmlHelper自带的 RenderPartial功能比较接近, 两者都可以输出一个Partial视图:其区别如下: . Partial有返回值 ...

  5. Html.Partial()与Html.RenderPartial()区别

    文章有点长,但大多是代码,看看很快的,不要压力太大.网上有很多关于这两个方法的区别,都说出了它本质的区别(不看代码,只看这个结论,就已经足够了,如果觉得有必要从代码中得出这个结论,那就继续往下看),这 ...

  6. RPC 笔记(01)— RPC概念、调用流程、RPC 与 Restful API 区别

    1. 基本概念 PRC 远程过程调用 Remote Procedure Call,其就是一个节点请求另外一个节点提供的服务.当两个物理分离的子系统需要建立逻辑上的关联时,RPC 是牵线搭桥的常见技术手 ...

  7. C++ 笔记(28)— C++ 中 NULL和 nullptr 的区别

    最近看公司代码的时候发现在判断指针是否为空的时候,有的时候用的是 NULL, 有的时候用的是 nullptr 感觉很奇怪,好奇心驱使我查了下两者的区别,发现还是有很多细节需要学习的. 1. NULL ...

  8. gcc 和 g++ 的联系和区别,使用 gcc 编译 c++

    GCC 编译器已经为我们提供了调用它的接口,对于 C 语言或者 C++ 程序,可以通过执行 gcc 或者 g++ 指令来调用 GCC 编译器. 实际使用中我们更习惯使用 gcc 指令编译 C 语言程序 ...

  9. Python2 与 Python3 区别

    Python2.x 与 Python3.x 区别 1. print 函数 Python2 中 print 是语句(statement),Python3 中 print 则变成了函数.在 Python3 ...

最新文章

  1. Spring Cloud应用开发(七:使用Git存储方式实现分布式配置管理 )
  2. linux怎么查看fastq格式文件,2020-01-11 了解FASTQ格式并处理FASTQ文件
  3. 专访小米欧阳辰:深度揭秘小米广告平台的构建、底层模块和坑
  4. VTK修炼之道73:交互部件_Widget应用综述
  5. Android逆向:二进制xml文件解析 之 Start Tag Chunk
  6. 源代码安装g95编译器
  7. 卷积神经网络-感受野的定义
  8. 20150915密度聚类
  9. C语言之pthread_cond_wait()和pthread_cond_timedwait()区别(十五)
  10. coreos mysql_CoreOS 实战:在 UOS上体验CoreOS 操作全记录
  11. L. Ray in the tube
  12. 魏晋名士:骂人都不带脏字
  13. mpeg文件格式分析
  14. #PPT进阶——图片变形
  15. 作为运营,如何在职场上野蛮生长
  16. Java 数字金额,字符串格式化
  17. java实现踢下线用户_浅谈踢人下线的设计思路!(附代码实现方案)
  18. 计算机毕业设计之 新生报名系统系统
  19. 软件工程团队项目——subway
  20. 【2021】网络协议从入门到底层原理-MJ【新】附上下载链接

热门文章

  1. 【iOS】监听耳机状态
  2. 8.mysql备份恢复
  3. Java专栏学习导图【一】
  4. 【OpenCV】图像缩放
  5. hugo使用katex
  6. 用Python中的hashlib实现md5和sha加密
  7. 模糊测试中的动态符号执行
  8. 统计学(二)之一般线性模型(一)
  9. 单模光电转换器怎么接_单纤光纤收发器a与b怎么放?如何使用光纤收发器的AB端?...
  10. Linux CentOS6和CentOS7设置静态ip