`
猫太的鱼
  • 浏览: 239968 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

linux的locale介绍

阅读更多
Locale是根据计算机用户所使用的语言,所在国家或者地区,以及当地的文化传统所定义的一个软件运行时的语言环境。
locale把按照所涉及到的文化传统的各个方面分成12个大类,这12个大类分别是:
1、语言符号及其分类(LC_CTYPE)
2、数字(LC_NUMERIC)
3、比较和习惯(LC_COLLATE)
4、时间显示格式(LC_TIME)
5、货币单位(LC_MONETARY)
6、信息主要是提示信息,错误信息,状态信息,标题,标签,按钮和菜单等(LC_MESSAGES)
7、姓名书写方式(LC_NAME)
8、地址书写方式(LC_ADDRESS)
9、电话号码书写方式(LC_TELEPHONE)
10、度量衡表达方式 (LC_MEASUREMENT)
11、默认纸张尺寸大小(LC_PAPER)
12、对locale自身包含信息的概述(LC_IDENTIFICATION)。

所以说,locale就是某一个地域内的人们的语言习惯和文化传统和生活习惯。一个地区的locale就是根据这几大类的习惯定义的,这些locale定义文件放在/usr/share/i18n/locales目录下面,例如en_US, zh_CN and de_DE@euro都是locale的定义文件,这些文件都是用文本格式书写的,你可以用写字板打开,看看里边的内容,当然出了有限的注释以外,大部分 东西可能你都看不懂,因为是用的Unicode的字符索引方式。

完全的locale表达方式是 [语言[_地域][.字符集] [@修正值]。

怎样设定locale呢?

设定locale就是设定12大类的locale分类属性,即12个LC_*。除了这12个变量可以设定以外,为了简便起见,还有两个变量:LC_ALL和LANG。它们之间有一个优先级的关系:LC_ALL > LC_* >LANG。可以这么说,LC_ALL是最上级设定或者强制设定,而LANG是默认设定值。

1、如果你设定了LC_ALL=zh_CN.UTF-8,那么不管LC_*和LANG设定成什么值,它们都会被强制服从LC_ALL的设定,成为 zh_CN.UTF-8。

2、假如你设定了LANG=zh_CN.UTF-8,而其他的LC_*=en_US.UTF-8,并且没有设定LC_ALL的话,那么系统的locale设定以LC_*=en_US.UTF-8。

3、假如你设定了LANG=zh_CN.UTF-8,而其他的LC_*,和LC_ALL均未设定的话,系统会将LC_*设定成默认值,也就是LANG的值zh_CN.UTF-8。

4、假如你设定了LANG=zh_CN.UTF-8,而其他的LC_CTYPE=en_US.UTF-8,其他的LC_*,和LC_ALL均未设定的话, 那么系统的locale设定将是:LC_CTYPE=en_US.UTF-8,其余的 LC_COLLATE,LC_MESSAGES等等均会采用默认值,也就是 LANG的值,也就是LC_COLLATE=LC_MESSAGES=……= LC_PAPER=LANG=zh_CN.UTF-8。

所以,locale是这样设定的:

1、如果你需要一个纯中文的系统的话,设定LC_ALL= zh_CN.XXXX,或者LANG=zh_CN.XXXX都可以,当然你可以两个都设定,但正如上面所讲,LC_ALL的值将覆盖所有其他的locale设定,不要作无用功。

2、如果你只想要一个可以输入中文的环境,而保持菜单、标题,系统信息等等为英文界面,那么只需要设定 LC_CTYPE=zh_CN.XXXX,LANG=en_US.XXXX就可以了。这样LC_CTYPE=zh_CN.XXXX,而LC_COLLATE=LC_MESSAGES=……= LC_PAPER=LANG=en_US.XXXX。

3、假如你高兴的话,可以把12个LC_*一一设定成你需要的值,打造一个古灵精怪的系统: LC_CTYPE=zh_CN.GBK/GBK(使用中文编码内码GBK字符集); LC_NUMERIC=en_GB.ISO-8859-1(使用大不列颠的数字系统) LC_MEASUREMEN=de_DE@euro.ISO-8859-15(德国的度量衡使用ISO-8859-15字符集) 罗马的地址书写方式,美国的纸张设定……。估计没人这么干吧。

4、假如你什么也不做的话,也就是LC_ALL,LANG和LC_*均不指定特定值的话,系统将采用POSIX作为lcoale,也就是C locale。
分享到:
评论

相关推荐

    linux中locale自用总结

    Linux 中 locale 自用总结 locale 是根据计算机用户所使用的语言、所在国家或者地区、以及当地的文化传统所定义的一个软件运行时的语言环境。在 Linux 中,locale 把按照所涉及到的文化传统的各个方面分成 12 个...

    locale-archive 和 locale-archive.tmpl

    在Linux操作系统中,`locale-archive`和`locale-archive.tmpl`是两个非常关键的文件,它们与系统的国际化(Internationalization,简称i18n)和本地化(Localization,简称l10n)设置密切相关。`locale`是系统用来...

    linux中文编码locale

    "locale"是Linux中用于设定区域和语言环境的工具,它定义了系统的默认字符集、日期格式、数字格式等。当系统需要显示中文时,正确的locale设置就显得至关重要。在Ubuntu上设置中文locale,可以解决文件名、终端输出...

    Linux 中文语言包

    linux 中文语言包,解决操作系统中文乱码的问题

    Locale详解

    在Linux中,locale的设定通常涉及修改系统配置文件,如`/etc/locale.conf`,并使用`localectl`或`update-locale`命令来更新系统locale。例如,若要设定为简体中文GBK编码,可以将`LANG`变量设置为`"zh_CN.GBK"`。 4...

    基于Locale的Linux控制台国际化技术.pdf

    【基于Locale的Linux控制台国际化技术】 Linux操作系统在全球范围内广泛应用,由于各国和地区使用不同的语言文字,因此Linux内核的国际化支持至关重要。国际化的两大主要部分是文件系统和控制台。对于文件系统,...

    kali linux修改系统语言为中文的方法

    本文将详细介绍如何在Kali Linux系统中实现这一操作。 #### 准备工作 在开始修改系统语言之前,请确保您的Kali Linux系统已安装完毕,并且处于可操作状态。此外,您还需要具备一定的Linux基础知识,包括但不限于...

    Linux下中文文件名乱码问题的详解 - CSDN博客1

    在Linux中,可以通过修改locale设置来实现这一点,如使用`locale-gen`命令来生成或更新locale。同时,还需要确保终端或shell环境变量(如LANG、LC_ALL等)设置为支持中文的locale。 此外,当在不同编码之间进行转换...

    linux字符集介绍写的比较详细

    要设置Linux系统的locale,可以通过编辑`/etc/sysconfig/i18n`或`/etc/locale.conf`文件来实现。例如,要设置中文环境,可以将文件内容修改为: ```sh LANG="zh_CN.UTF-8" ``` 此外,用户也可以通过修改自己的`....

    linux 编码文件

    在Linux中,这些文件通常位于`/usr/lib/locale`目录下。此目录包含了系统支持的所有字符集信息,使得系统能够正确显示和处理不同语言的文本。 描述中提到的“复制到/usr/lib/locale下即可”,这可能是指更新或安装...

    用EasyBCD和Linux iso文件安装Linux

    本文将详细介绍如何使用EasyBCD这一工具配合Linux的ISO镜像文件来安装Linux,从而实现Windows与Linux的双系统配置。 #### 准备工作 1. **下载并安装EasyBCD**:EasyBCD是一款非常实用的多系统引导管理软件,支持...

    linux、window通用文件解压

    本篇文章将详细介绍如何在Linux和Windows上解压兼容的压缩文件,特别是处理包含中文的压缩包。 首先,让我们关注“通用”这个词。在Linux和Windows之间实现通用解压,通常意味着我们需要使用一种在两个平台上都广泛...

    aarch64-himix100-linux

    安装海思3559a的交叉编译环境,具体见海思的手册《Hi3559A╱C V100 SDK 安装及升级使用说明.pdf》,安装好的交叉编译工具在/opt/hisi-linux/x86-arm/aarch64-himix100-linux/

    便携中文linux操作系统tinycorelinux_4.2.1.cn.plus.iso

    便携中文linux操作系统,约37M,以tinycore linux 4.2.1为基础,内核是3.0.3。集成了常用的基本功能,可进行文件管理,文字、图像处理,简单的网络浏览和下载,硬盘分区维护等,同时支持一些常用的压缩格式。更多...

    乱码消除Locale.Emulator.2.4.1.0.zip

    这个工具允许开发者在Windows环境中模拟macOS或Linux的行为,以确保应用在处理国际化字符时的一致性。 在2.4.1.0这个版本中,可能包含了一些改进和修复,比如: 1. 改进了对某些特定编码的支持,如Unicode的子集或...

    Linux中文乱码问题.pdf

    解决中文乱码问题,首先需要了解字符编码的基础知识和Linux系统中的locale设置。 字符编码是指用数字来表示字符和符号的方法,常用的字符编码有ASCII、Unicode、UTF-8等。ASCII码是最早的编码标准,主要针对英文...

    linux下的文件名乱码,转为正常

    下面将详细介绍如何在Linux下处理文件名乱码问题。 1. **字符编码基础** - **Unicode**:Unicode 是一种统一的字符编码标准,包含了世界上大部分文字系统,以数字的形式表示每个字符。 - **UTF-8**:UTF-8是...

    linux解决中文乱码问题

    Linux系统中的locale设置对字符编码有很大影响。你可以通过`locale`命令查看当前系统的locale设置。如果系统不支持中文,你需要创建或修改locale。首先,更新locale信息: ``` sudo locale-gen "zh_CN.UTF-8" ...

    linux 默认语言设置 txt

    通过以上介绍,我们可以看到,Linux的默认语言设置是一个相对简单的概念,但其背后涉及的细节和步骤却非常重要。正确地管理和调整这些设置,能够帮助我们更好地适应不同的工作和生活环境,提升Linux系统的用户体验。

    解决linux环境下sqlplus乱码的方法

    本篇文章将详细介绍如何解决在Linux环境下SQL*Plus出现的乱码问题。 首先,我们需要了解Linux系统的字符编码。Linux默认使用UTF-8作为系统编码,而SQL*Plus则可能根据Oracle数据库的字符集进行显示。如果两者不一致...

Global site tag (gtag.js) - Google Analytics