这个问题是通过询问Chromium 浏览器不允许为“打印到文件”设置默认纸张大小的问题
以及在聊天中与@Gilles 进行对话而激发的。正如@don_crissti 所指出的,并经我证实,更改语言环境(至少LC_PAPER
)会影响选择的纸张尺寸。
我从来没有想过要选择什么,而且总是选择,en_US.UTF-8
因为这似乎是一个合理的默认选择。
但是,根据聊天中的@Gilles(请参阅从http://chat.stackexchange.com/transcript/message/17017095#17017095开始的对话)。摘录:
吉尔斯:LC_PAPER 默认为 $LANG
吉尔斯:你必须有 LANG=en_US.UTF-8。这是一个坏主意:它设置了 LC_COLLATE 而这几乎总是一件坏事
Gilles:LC_COLLATE 没有描述正确的排序规则,它太严格了(它逐个字符)删除 LANG 而是设置 LC_CTYPE 和 LC_PAPER
Gilles:加上 LC_MESSAGES 如果你想要非英语的消息
显然,这里有一些我不知道的问题,我相信还有很多其他问题。那么,在设置语言环境时应该考虑哪些问题,又应该如何设置呢?我一直只是dpkg-reconfigure locales
在 Debian 中运行,并没有三思而后行。
具体问题:我应该将语言环境设置为 en_IN.UTF-8 吗?这样做有什么缺点吗?
Gil*_*il' 35
区域设置是与您的文化相关的用户首选项。
在我知道的所有当前 unix 变体上(但不是在一些古董上),语言环境名称遵循相同的模式:
en
对于英语,de
对于德语,ja
对于日语,uk
对于乌克兰语,ber
对于柏柏尔语,......_
后跟ISO 3166大写的两个字母的国家/地区代码。因此:en_US
对于美国英语、en_UK
对于英国英语、对于fr_CA
加拿大(魁北克)法语、de_DE
对于德国的德语、de_AT
对于奥地利的德语、ja_JP
对于日语(日本的)等。.
后跟一个名称的字符编码,例如UTF-8
,ISO-8859-1
,KOI8-U
,GB2312
,Big5
,等有了GNU libc中至少(我不知道如何广泛,这是),外壳和标点编码名称被忽略。例如,zh_CN.UTF-8
普通话(简体)中文用UTF-8zh_CN
编码,普通话用GB2312编码,zh_TW
台湾(繁体)中文用Big5编码。@
后跟一个变体的名称。变体的含义取决于语言环境。例如,许多欧洲国家/地区都有一种@euro
语言环境变体,其中货币符号为 € 并且编码为包含此字符的编码(ISO 8859-15 或 ISO 8859-16),而不是带有旧货币符号的未修饰变体。例如,en_IE
(English, Ireland) 使用 latin1 (ISO 8859-1) 编码和 £ 作为货币符号,而en_IE@euro
使用 latin9 (ISO 8859-15) 编码和 € 作为货币符号。此外,所有类 Unix 系统上都存在两个语言环境名称:C
和POSIX
. 这些名称是同义词,意思是计算机术语,即适用于由计算机程序解析的数据的默认设置。
POSIX定义了以下语言环境类别:
LC_CTYPE
:终端应用使用的字符集:分类数据(哪些字符是字母、标点、空格、无效等)和大小写转换。文本实用程序通常会注意LC_CTYPE
确定字符边界。LC_COLLATE
:整理(即排序)顺序。由于以下几个原因,此设置的用途非常有限:
LC_COLLATE
.LC_COLLATE
可能会产生令人讨厌的副作用,特别是因为它会导致排序顺序 A < a < B < ...,这使得“在 A 和 Z 之间”包括小写字母 a 到 y。特别是非常常见的正则表达式,例如[A-Z]
break some applications。LC_MESSAGES
:信息和错误消息的语言。LC_NUMERIC
: 数字格式:十进制和千位分隔符。.
为小数点分隔符。这使得LC_NUMERIC
不是很有用并且有潜在危险:
.
小数点或,
字段分隔符。LC_MONETARY
: 像LC_NUMERIC
,但适用于当地货币的数量。LC_TIME
: 日期和时间格式:工作日和月份名称、12 或 24 小时制、日期部分的顺序、标点符号等。您可以在非嵌入式 Linux 上找到 GNU libc,它定义了其他语言环境类别:
LC_PAPER
:默认纸张大小(由高度和宽度定义)。LC_NAME
, LC_ADDRESS
, LC_TELEPHONE
, LC_MEASUREMENT
, LC_IDENTIFICATION
: 我不知道有任何使用这些的应用程序。使用区域设置的应用程序根据环境变量确定它们。
LANG
使用环境变量的值,除非被另一个设置覆盖。如果LANG
未设置,则默认语言环境为C
.LC_xxx
名称可以用作环境变量。LC_ALL
设置,则忽略所有其他值;这主要用于设置LC_ALL=C
运行应用程序,无论它们在哪里运行,都需要产生相同的输出。LANGUAGE
定义回退LC_MESSAGES
(例如LANGUAGE=fr_BE:fr_FR:en
,首选比利时法语,或者如果不可用法国法语,或者如果不可用英语)。区域设置数据可能很大,因此某些发行版不会以可用形式提供它们,而是需要额外的安装步骤。
dpkg-reconfigure locales
并从对话框中的列表中选择,或者编辑/etc/locale.gen
然后运行locale-gen
.locale-gen
的名称作为参数运行。您可以定义自己的语言环境。
有用的设置是:
LC_CTYPE
为您对文本文件进行编码的语言和编码。确保您的终端使用该编码。i
是I
在大多数语言,但?
在土耳其(tr_TR
)。LC_MESSAGES
为您想要查看消息的语言。LC_PAPER
为,en_US
如果您想要 A4 ,则设置为其他任何尺寸(例如en_GB
)。LC_TIME
为您喜欢的时间格式。如上所述,避免设置LC_COLLATE
和LC_NUMERIC
。如果您使用LANG
,请通过将它们设置为 来显式覆盖这两个类别C
。
归档时间: |
|
查看次数: |
14191 次 |
最近记录: |