族谱网 头条 人物百科

区域设置

2020-10-16
出处:族谱网
作者:阿族小谱
浏览:600
转发:0
评论:0
实际落实计算机中一套定义用户的语言、国家和用于定义用户希望在其用户界面上看到的各种可以改变的选择的参数集合。通常一个区域设置标识符至少包括一个语言标识符和一个区域标识符。在UNIX和Windows中,区域设置的控制是不同的。在UNIX下,通常通过环境变量来控制区域设置。这些环境变量包括:LC_ALL,LC_CTYPE,LC_TIME,等等。你可以通过改变这些环境变量来控制你的程序或者命令所表现出来的区域设置。在Windows下,你可以通过改变控制面板上的“语言/区域”中的区域的值来设定Windows的当前用户的区域设置。Ubuntu操作系统在Ubuntu操作系统中,使用manlocale-gen或manlocale可获得关于locale实现的细节。实际上是由glibc库实现的。locale相关(环境)变量生效的优先顺序:LANGUAGE指定个人对语言环境值的主次偏好,例如zh_CN:en_...

实际落实

计算机中一套定义用户的语言、国家和用于定义用户希望在其用户界面上看到的各种可以改变的选择的参数集合。通常一个区域设置标识符至少包括一个语言标识符和一个区域标识符。

在UNIX和Windows中,区域设置的控制是不同的。在UNIX下,通常通过环境变量来控制区域设置。这些环境变量包括:LC_ALL, LC_CTYPE, LC_TIME, 等等。你可以通过改变这些环境变量来控制你的程序或者命令所表现出来的区域设置。在Windows下,你可以通过改变控制面板上的“语言/区域”中的区域的值来设定Windows的当前用户的区域设置。

Ubuntu操作系统

在Ubuntu操作系统中,使用man locale-gen或man locale可获得关于locale实现的细节。实际上是由glibc库实现的。

locale相关(环境)变量生效的优先顺序:

LANGUAGE 指定个人对语言环境值的主次偏好,例如zh_CN:en_US:en

LC_ALL 这不是一个环境变量,是一个可被C语言库函数setlocale设置的宏,其值可覆盖所有其他的locale设定。因此缺省时此值为空

LC_xxx 可设定locale各方面(category)的值,可以覆盖LANG的值。

LANG 指定默认使用的locale值

可以把上述环境变量设在/etc/profile 或 /etc/environment等系统初始文件中。值得注意的是,若LANG或LC_ALL被设定为 "C",那么LANGUAGE的值将被忽视。

除 C 和 POSIX这两个locale名称外,locale的名称并未标准化。Linux平台与Windows系统的locale名称有很大不同。Linux名称的命名规则为:

其中language是ISO 639-1标准中定义的语言代码,territory是ISO 3166-1标准中定义的国家和地区代码,codeset是字符集的名称 (如 UTF-8等),而 modifier 则是某些 locale 变体的修正符。

bash中的使用示例:

相关系统文件:

在文件/usr/share/i18n/SUPPORTED中,列出了当前系统支持的所有locale与字符集的名字。

在目录/var/lib/locales/supported.d/下,列出了当前系统已经生成的所有locale的名字。

在文件/var/lib/locales/supported.d/local中,列出了所有想要生成或已经生成的locale的名字

在目录/usr/lib/locale//LC_*,用locale-gen编译出的locale文件

在文件/usr/lib/locale/locale-archive中,包含了很多本地已经生成的locale的具体内容,因此这个文件往往很大。使用命令localedef管理这一文件。使用locale-gen命令编译出来的locale内容默认写入该文件中。

在文件/etc/default/locale中,可以手动配置locale环境变量,LC_CTYPE之类

在目录/usr/share/i18n/charmaps下,缺省的charmap存放路径

在目录/usr/share/i18n/locales下,缺省的locale source file存放路径

相关系统命令:

locale 列出当前采用的各项本地策略,这些由LC_*环境变量定义

locale charmap 列出系统当前使用的字符集

locale -a 列出系统中已经安装的所有locale

locale -m 列出系统中已经安装的所有charmap

locale-gen --purge 将/usr/lib/locale/里面的locale支持文件删掉

编辑文件/var/lib/locales/supported.d/local,增加需要的locale与字符集名字,如:

保存并关闭此文件。运行sudo dpkg-reconfigure --force locales,则重新生成字符集。

或者使用命令sudo locale-gen en_US.UTF-8,生成制定的locale en_US.UTF-8,并把这个locale名字加入文件/var/lib/locales/supported.d/local中

或者使用命令sudo locale-gen,生成所有列在文件/var/lib/locales/supported.d/local中的locale

或者

也可以安装zh_CN的相关语言包。

或者使用命令localedef -f UTF-8 -i zh_CN zh_CN.UTF8,从字符映射文件UTF-8,locale源文件zh_CN,编译出locale称为zh_CN.UTF8,存放入文件/usr/lib/locale/locale-archive中

使用命令localedef --list-archive,列出文件/usr/lib/locale/locale-archive中所有可用的locale的名字

sudo apt-get install language-selector language-env language-pack-zh-hans language-pack-zh-hant 安装中文语言包

sudo nano /etc/default/locale 修改该文件内容。

Windows操作系统

Windows SDK规定,“语言”是与沟通有关的一组属性的集合,包括所有允许的字符、通货符号、日期时间格式等等。每个“语言”有一个语言名字与语言标识符。语言往往还需要指出国家/地区,如“英语(美国)”使用的语言名字是“en-US”。

每个区域设置(locale)是一个“语言”及一个排序规则。Windows XP支持超过150个区域设置(locale);Windows Vista支持超过200个区域设置(locale)。每个区域设置(locale)有区域设置(locale)名字与区域设置(locale)标识符。例如:"de-DE_phonebook"是德国德语使用德式电话薄排序规则(该排序规则与拉丁字母序稍有不同)。

“区域标识符”(Locale ID ,LCID ),为32位的值,在程序设计中经常用到。LCID构成为:

LCID的低10位是主语言(primary language)的ID;高6位指定次语言(sublanguage)。LCID的低16位称为语言标识符(language identifier),数据类型名为LANGID。

同一个区域设置(locale),可以有多种字符集编码表示。例如,Windows操作系统的简体中文的默认编码字符集(即代码页)是GBK,即“936 (ANSI/OEM - Simplified Chinese GBK)”。而Linux操作系统统一使用UTF8字符集,所以Linux简体中文的默认编码字符集是UTF8.

排序标识符(Sort Order Identifier)占4位,用于表示排序的方法。如简体中文有SORT_CHINESE_PRC(笔划序)、SORT_CHINESE_PRCP(拼音序)。例如,使用笔划序的简体中文的locale名字为"zh-CN_stroke"。

因而,LCID的标识符命名格式为:

其中,primaryLanguage是ISO 639-1或ISO 639-2/T中定义的语言缩写的小写形式;SubLanguage是ISO 3166-1中定义的国家/地区二位字母代码的大写形式;例如:zh-CN_stroke的值为MAKELCID(MAKELANGID(LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED), SORT_CHINESE_PRC),即133124。

如果需要指出语言使用的书写系统,格式为:

其中,Script是ISO 15924定义的书写系统的首字母大写的4字母表示。例如,拉丁字母拼写的乌兹别克语为“uz-Latn-UZ”。

操作系统有一个当前区域设置。用户可以在控制面板的区域设置中改变它。每个区域设置有许多相关的信息,编程时可以用Locale information types获取这些值的信息。操作系统赋予每个线程一个区域设置,初始值为LOCALE_SYSTEM_DEFAULT

相关系统API函数:

GetUserDefaultLCID 获取当前用户的缺省LCID。对于中文操作系统返回值为2052

GetUserDefaultLocaleName 获取当前用户的缺省locale的名字。对于中文操作系统该名字为zh-CN

GetSystemDefaultLCID 获取系统的缺省LCID。对于中文操作系统返回值为2052

GetSystemDefaultLocaleName 获取系统缺省locale的名字

GetThreadLocale() 获取当前线程的LCID

SetThreadLocale 设置当前线程的LCID。

IsValidLocaleName 判断一个字符串是否为当前操作系统支持的locale的名字

LocaleNameToLCID 从locale的名字获取它的LCID

GetLocaleInfoEx 获取指定locale的各方面的信息

EnumSystemLocalesEx 枚举当前操作系统支持的所有的locale的名字

EnumCalendarInfoExEx 枚举指定locale的日历数据。例如zh-TW有两个日历型,分别为“格里历(本地)”与“格里历(英文)”。

EnumDateInfoExEx 枚举指定locale的各种calendar的日期格式。

GetCalendarInfoEx 查询指定locale指定日历型的指定方面的数据。

GetDateFormatEx 把时间数据转换为指定格式的日期字符串。

GetTimeFormatEx 把时间数据转换为指定格式的时间字符串。

GetDurationFormatEx 把一段持续时间的数据转换为指定格式的字符串。

EnumSystemLanguageGroups 同一语言组可能共享键盘布局、输入法、TT字体、代码页翻译表等等。

GetSystemDefaultLangID 系统缺省的非Unicode语言

GetKeyboardLayout 当前进程的输入法

GetSystemDefaultUILanguage 菜单、对话框、Windows消息、INF文件、帮助文件等的默认语言

GetSystemPreferredUILanguages 操作系统使用的菜单、对话框、Windows消息、INF文件、帮助文件等的语言

GetUserDefaultUILanguage 用户使用的菜单、对话框、Windows消息、帮助文件等的语言

GetUserPreferredUILanguages 用户使用的菜单、对话框、Windows消息、帮助文件等的语言集合

GetThreadPreferredUILanguages 当前线程使用的UI语言集合

 


免责声明:以上内容版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。感谢每一位辛勤著写的作者,感谢每一位的分享。

——— 没有了 ———
编辑:阿族小谱
发表评论
写好了,提交
{{item.label}}
{{commentTotal}}条评论
{{item.userName}}
发布时间:{{item.time}}
{{item.content}}
回复
举报
点击加载更多
打赏作者
“感谢您的打赏,我会更努力的创作”
— 请选择您要打赏的金额 —
{{item.label}}
{{item.label}}
打赏成功!
“感谢您的打赏,我会更努力的创作”
返回

更多文章

更多精彩文章
打赏
私信

推荐阅读

· 设置刺史
秦朝于每郡置监御史一人,以监察地方。西汉初,省废。武帝时,为了加强对地方的控制,于元封五年(前106年),分全国为十三个州部(监察区),每个州部设刺史一人,以监察地方。刺史“以六条问事”,一条是监察“强宗豪右”,五条是监察郡守、尉和王国相。征和四年(前89年),又于首都所在地设司隶校尉,掌纠察京师百宫(三公除外)和三辅(京兆、冯翊、扶风)、三河(河东、河内、河南)、弘农七郡。这套监察制度比秦朝的监察制度严密得多,进一步加强了皇帝对整个官僚机构的控制。
· 区域
内点与开集设E是平面上的一个点集,P是平面上的一个点,如果存在点P的某一邻域U(P)⊂⊂-->E{\displaystyleU(P)\subsetE}则称P为E的内点。如果点集E的点都是内点,则称E为开集。边界如果点P的任意邻域内既有属于E的点也有不属于E的点(点P本身可以属于E,也可以不属于E),则称P为E的边界点。E的边界点的全体称为E的边界。连通性设D是开集,如果对于D内任何两点,都可用折线联结起来且该折线上的点都属于D,则称开集D是连通的。开区域与闭区域连通的开集称为区域或开区域.例如:{(x,y)|1<x2+y2<4}{\displaystyle\{(x,y)|1开区域同他的边界一起称为闭区域。例如:{(x,y)|1≤≤-->x2+y2≤≤-->4}{\displaystyle\{(x,y)|1\leqx^{2}+y^{2}\leq4\}}对于点集E...
· 力浦区域
参考文献^朝鲜中央统计局,2008年人口普查结果,2009年。
· 大温哥华区域局
历史大温区域局的历史可以追溯至20世纪初。温哥华及区域联合污水处理局(VancouverandDistrictJointSewerageandDrainageBoard)于1914年成立,协调温哥华地区城镇的污水处理事务。大温水务局(GreaterVancouverWaterDistrict)则于1926年成立,管理区内的食水供应。菲沙河水位于1948年暴涨引致大温哥华广泛地区水浸,并造成严重破坏,反映出城镇之间协调规划工作的重要性。有见及此,省政府于1949年成立低陆平原区域规划局(LowerMainlandRegionalPlanningBoard),以便计划都会区内未来的发展,规划局并于1950年落实区域性的排水和堤坝工程方案。污水处理局则于1956年改称大温污水处理局(GreaterVancouverSewerageandDrainageDistrict)。到1965年,卑诗省政府...
· 大城区域
参考文献^朝鲜中央统计局,2008年人口普查结果,2009年。

关于我们

关注族谱网 微信公众号,每日及时查看相关推荐,订阅互动等。

APP下载

下载族谱APP 微信公众号,每日及时查看
扫一扫添加客服微信