Debian/本地化
Debian | Debian安装 | Debian使用 | Debian系统升级 | Debian常见问题 |
Debian 是国际化的操作系统,它所支持的语言和地区惯例的数目正在不断增加。接下来的部分列出了当前 Debian 对各种差异形式的支持,接着再讨论本地化,该过程负责定制你的工作环境,根据你所选的语言确定当前系统的输入输出方式,并按照你所在地区的惯例转化日期、数字、货币格式以及系统中其它相关方面。
本地化基础[ ]
定制系统的本地化和国家语言支持包括以下几个方面。
键盘本地化[ ]
Debian 发布版中包含了二十多种键盘布局方案。在 Woody 中重新配置键盘可使用:
- dpkg-reconfigure --priority=low console-data # console
- dpkg-reconfigure --priority=low xserver-xfree86 # XF4
- dpkg-reconfigure --priority=low xserver-common-v3 # XF3
资料文件本地化[ ]
绝大多数 Debian 软件包都能使用 non-US-ASCII 字符,它们通过 glibc 中的 locale 技术,用 LC_CTYPE 环境变量来操作这些字符。
纯 8-bit 字符:应用于所有程序中
其它拉丁字符集(例如:ISO-8859-1 或 ISO-8859-2):应用于绝大多数程序中
多字节语言如中文、日文或韩文:应用于较新的应用程序中
信息和文档的本地化[ ]
许多在 Debian 系统中显示的文本信息和文档被翻译成了各种译本,如出错信息、标准程序输出、菜单以及帮助页面。当前 Debian 支持德语、西班牙语、芬兰语、法语、匈牙利语、意大利语、日语、韩语、波兰语、葡萄牙语、汉语以及俄语帮助页面,可通过安装 manpages-LANG 软件包实现这些支持(此处 LANG 代表双位的 ISO 国家代码。使用 apt-cache search manpages-|less 获得可用的 Unix 帮助页面列表。)
要访问 NLS 帮助页面,用户必须将环境变量 LC_MESSAGES 设置成相应的字串。例如,要访问意大利语的帮助页面,需要将 LC_MESSAGES 设置成 it,这时 man 程序会在 /usr/share/man/it/ 目录下搜索帮助页面。
Locales[ ]
Debian 支持 locale 技术。locale 机制允许程序按照该地区惯例来提供输出和其它特殊功能如字符集、日期时间显示格式,货币符号等等。该机制使用环境变量来确定其相关的行为。例如,假设你同时在系统上安装了美式英语和法语 locales,许多程序的出错信息都以双语显示:
$ LANG="en_US" cat foo cat: foo: No such file or directory $ LANG="de_DE" cat foo cat: foo: Datei oder Verzeichnis nicht gefunden
Glibc 以函数库的形式向程序提供该功能的支持。
Locales 简介[ ]
完整的 locale 描述包括三个部分:xx_YY.ZZZZ。
- xx: ISO 639 个语言代码(小写)
- YY: ISO 3166 个国家代码(大写)
- ZZZZ: 编码集,例如,字符集或编码标志。
请注意,为了完成跨平台的兼容性,这个编码集部分可能被“内部标准化”。移除了所有 -,把所有字符都转化成小写的。典型的编码集:
- UTF-8: 适合所有区域的 Unicode 码,通常是 1-3 个八进制数(新的事实上的标准)
- ISO-8859-1: western Europe (de facto old standard)
- ISO-8859-2: eastern Europe (Bosnian, Croatian, Czech, Hungarian, Polish, Romanian, Serbian, Slovak, Slovenian)
- ISO-8859-3: Maltese
- ISO-8859-5: Macedonian, Serbian
- ISO-8859-6: Arabic
- ISO-8859-7: Greek
- ISO-8859-8: Hebrew
- ISO-8859-9: Turkish
- ISO-8859-11: Thai (=TIS-620)
- ISO-8859-13: Latvian, Lithuanian, Maori
- ISO-8859-14: Welsh
- ISO-8859-15: western Europe with euro
- KOI8-R: Russian
- KOI8-U: Ukrainian
- CP1250: Czech, Hungarian, Polish (MS Windows origin)
- CP1251: Bulgarian, Byelorussian (MS Windows origin)
- eucJP: Unix style Japanese (=ujis)
- eucKR: Unix style Korean
- GB2312: Unix style Simplified Chinese (=GB, =eucCN) for zh_CN
- Big5: Traditional Chinese for zh_TW
- sjis: Microsoft style Japanese (Shift-JIS)
询问基本编码系统术语的意思:
- ASCII: 7 bits (0-0x7f)
- ISO-8859-?: 8 bits (0-0xff)
- ISO-10646-1: Universal Character Set (UCS) (31 bits, 0-0x7fffffff)
- UCS-2: First 16 bit of UCS as straight 2 Octets (Unicode: 0-0xffff)
- UCS-4: UCS as straight 4 Octets (UCS: 0-0x7fffffff)
- UTF-8: UCS encoded in 1-6 Octets (mostly in 3 Octets)
- ISO-2022: 7 bits (0-0xff) with the escape sequence. ISO-2022-JP is the most popular encoding for the Japanese e-mail.
- EUC: 8 bits + 16 bits combination (0-0xff), Unix style
- Shift-JIS: 8 bits + 16 bits combination (0-0xff), Microsoft style.
激活 locale 支持[ ]
Debian 并不在系统中编译所有可用的 locales,检查 /usr/lib/locale 确定哪个 locales(除了默认的“C”)已在系统上编译安装。如果所需的 locale 并不在其中,有两个解决办法:
- 编辑 /etc/locale.gen 添加需要的 locale,然后以 root 身份运行 locale-gen 编译它。
- 运行 dpkg-reconfigure locales 可以重新配置 locales 软件包。如果还没有安装 locales,locales 安装程序会调出 debconf 界面让你选择所需的 locales 并编译相关数据库。
激活特定 locale[ ]
相关的环境变量按如下次序将特定 locale 值赋给程序:
LANGUAGE:该环境变量由一个用冒号分隔、以优先级排序的地区名称列表组成。仅当 POSIX 地区值与“C”地区值相异时才使用到它[在 Woody 中;在 Potato 版本中通常其优先级高于 POSIX locale]。(GNU 扩展名)
- LC_ALL:如果为非空值,其值将作用于所有 locale 项目。(POSIX.1)通常为“”(空值)。
- LC_*:如果为非空值,其值将作用于相应的 locale 项目。(POSIX.1)通常为“C”。
LC_*变量有:
- LC_CTYPE:字符分类和环境转换
- LC_COLLATE:校正命令
- LC_TIME:时间显示格式
- LC_NUMERIC:非货币型数字格式
- LC_MONETARY:货币符号
- LC_MESSAGES:常规信息、诊断消息和交互响应信息的格式
- LC_PAPER:纸张尺寸
- LC_NAME:姓名格式
- LC_ADDRESS:地址格式和地区信息
- LC_TELEPHONE:电话号码格式
- LC_MEASUREMENT:度量单位(公制或其它)
- LC_IDENTIFICATION:有关地区信息的元数据
- LANG:如果为非空值且 LC_ALL 也没有定义,则该值作用于所有没有定义的 LC_*地区项目。(POSIX.1)通常为“C”。
注意,有些应用程序(例如Netscape 4)忽略LC_*设置。
locale 程序可显示当前激活的地区设置和可用的 locale;(注意:locale -a 将列出系统已知的所有的 locales;这并不代表它们都已在系统中编译了!)
US(ISO-8859-1)例子[ ]
将下列语句添加到 ~/.bash_profile:
LC_CTYPE=en_US.ISO-8859-1 export LC_CTYPE
带Euro符号的 France(ISO-8859-15)的例子[ ]
将下列语句添加到 ~/.bash_profile:
LANG=fr_FR@euro export LANG LC_CTYPE=fr_FR@euro export LC_CTYPE
按键盘本地化, 将键盘设置成 French "AZERTY"。安装 manpages-fr 包添加法语帮助页面。US 中的 Right-Alt 键在 Europe 中称为Alt-Gr,它与其它键组成的组合键可用于输出大量特殊字符,例如 Alt-Gr+E 可以输出欧元符号。
可使用类似的方法配置绝大多数西欧语言环境。
超越locales[ ]
当你第一次在系统上安装“国家语言环境”(national language environment)时,请注意使用 tasksel 或 aptitude 查看一下,在选择相关语言环境任务项时都有哪些软件包被选上了,这些选择信息非常有用特别是进行多语言设置时。如果遇到某些关联包与运行良好的系统上的某些软件发生冲突,就不要安装那些引起冲突的包。由于新装的软件比原来的软件具有更高的优先级,所以必须用 update-alternative 结合有关命令让系统恢复到原来状态。
有时为了获得更好的工作环境,仅通过 locale 来配置程序是不够的。language-env 软件包和 set-language-env命令可以大大简化你的工作。
参考来源[ ]
http://www.debian.org/doc/manuals/debian-reference/ch-tune.zh-cn.html#s-l10n
Debian使用手册导航 | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
|