跳过导航链接 | |
退出打印视图 | |
Oracle Solaris 11.1 国际语言环境指南 Oracle Solaris 11.1 Information Library (简体中文) |
在 Oracle Solaris 的缺省安装中,提供了以下核心语言环境,每种语言仅一种语言环境:
中文-简体 (zh_CN.UTF-8)
中文-繁体 (zh_TW.UTF-8)
英文 (en_US.UTF-8)
法文 (fr_FR.UTF-8)
德文 (de_DE.UTF-8)
意大利文 (it_IT.UTF-8)
日文 (ja_JP.UTF-8)
韩文 (ko_KR.UTF-8)
葡萄牙文-巴西 (pt_BR.UTF-8)
西班牙文 (es_ES.UTF-8)
以下各节介绍添加对其他语言的支持的不同方法。
为了更好地了解在 Oracle Solaris 11 中安装语言支持的过程,您应当熟悉侧面的概念。
在以前的 Oracle Solaris 发行版中,可选的组件(如文档、本地化或调试文件)通常拆分为不同的软件包。通过 Oracle Solaris 11 中的映像包管理系统 (Image Packaging System, IPS),Oracle 可以使用称为侧面的特殊标记将可选组件保留在同一软件包中。侧面使包管理更简单,同时可以降低磁盘空间使用量(如果不需要其他功能)。有关侧面的更多信息,请参见《添加和更新 Oracle Solaris 11.1 软件包》中的"软件包侧面和变量"和《在 Oracle Solaris 11.1 中使用映像包管理系统打包和交付软件》中的第 5 章 "允许变量"。
语言环境侧面用于标记特定于语言或语言环境的文件或操作。例如,在 web/wget 软件包的清单中,文件 /usr/share/locale/ja/LC_MESSAGES/wget.mo 使用 facet.locale.ja=true 进行标记。此标记指示仅当通过将 facet.locale.ja 侧面设置为 true 来启用日文支持时,才会安装包含 wget 消息的日文翻译的文件。
语言环境侧面没有固定格式。Oracle IPS 系统信息库中使用以下约定:
facet.locale.{language}[_territory]
language 是遵循 ISO 639 标准的双字母语言代码,territory 是遵循 ISO 3166 标准的双字母地区代码。
所安装软件包的所有可选组件将会自动更新。
注 - 软件包管理器仅管理 system/locale 软件包中存在的语言。使用命令行添加或删除对任何其他语言的支持。
要从命令行添加语言支持,请使用 pkg change-facet 命令设置相关语言环境侧面。例如,可以使用以下命令添加对法国所说法文的支持。
安装所有法文语言环境通用的文件
# pkg change-facet facet.locale.fr=True
安装特定于法国法文的文件
# pkg change-facet facet.locale.fr_FR=True
可以使用以下命令添加对所有可用法文变体的支持。
安装所有法文语言环境通用的文件
# pkg change-facet facet.locale.fr=True
安装特定于所有法文变体的所有文件
# pkg change-facet facet.locale.fr_*=True
在以前的 Oracle Solaris 发行版中,缺省系统语言环境在 /etc/default/init 文件中配置。在 Oracle Solaris 11 中,这些设置已移至 svc:/system/environment:init 服务的相应属性。服务属性可以使用 svccfg(1M) 命令进行编辑。例如,要将缺省系统语言环境更改为 fr_FR.UTF-8,可以运行以下命令:
# svccfg -s svc:/system/environment:init setprop environment/LANG = astring: \ fr_FR.UTF-8
要使更改生效,必须刷新服务:
# svcadm refresh svc:/system/environment
可以通过以下命令验证服务属性的值:
# svccfg -s svc:/system/environment:init listprop environment/LANG
虽然 Oracle Solaris 中的缺省系统语言环境使用 UTF-8 编码,但也可以使用很多传统语言环境。
注 - GNOME 桌面环境仅支持 UTF-8 语言环境。
system/locale/extra 软件包中包含传统语言环境支持。运行以下命令以安装传统语言环境支持:
# pkg install pkg:/system/locale/extra
要启用对特定语言的支持,请将相应语言环境侧面设置为 true。例如,要安装 da_DK.ISO8859-1 语言环境(实际上是所有 da_DK 语言环境),可以按如下所示启用 facet.locale.da 和 facet.locale.da_DK:
# pkg change-facet facet.locale.da=True
# pkg change-facet facet.locale.da_DK=True
虽然主要的操作系统通常都能很好地支持最常见的语言环境,但在很多情况下各语言环境的名称会不同。例如,Oracle Solaris 使用 fr_FR.UTF-8 作为法国所说法文的语言环境名称(采用 UTF-8 编码),而 IBM AIX 使用 FR_FR,HP-UX 11.11 和 RHEL 5.4 使用 fr_FR.utf8。在异构环境中或迁移到 Oracle Solaris 时,此不一致可能会带来麻烦。
为了解决该问题,Oracle Solaris 11 的 libc 中引入了对语言环境别名的支持。语言环境选择(如 setlocale(3C) 中所指定)和消息目录处理(如 gettext(1)、catopen(3C) 和 gettext(3C) 手册页中所指定)期间,语言环境名称别名将被接受并映射到相应的规范语言环境名称(如果有)。
此外,为了提供与以前的 Oracle Solaris 发行版更好的兼容性,消息传送功能现在将使用过时的 Solaris 语言环境名称(如 fr 或 fr_FR)来查找消息对象或目录。有关更多信息,请参见 Oracle Solaris 11 - End of Feature Notices(Oracle Solaris 11-功能终止通知)页上的 “Localization”(本地化)部分中的 “Localization”(短格式语言环境)。
典型使用案例主要是 Linux 环境,在该环境下,Linux 样式语言环境名称将用于用户的 shell 初始化文件的语言环境通知中。例如,命令 setenv LANG ja_JP.utf8 包含于 $HOME/.login 中,起始目录已挂载 NFS。在此网络环境中,当用户登录到 Oracle Solaris 11 系统时,内部的语言环境别名支持机制会将语言环境名称透明地映射到相应 Oracle Solaris 语言环境名称(即 ja_JP.UTF-8),并将接受和支持用户指定的语言环境名称。同样,当将非 Solaris 语言环境名称通过 ssh(1) 传递到远程 Oracle Solaris 11 计算机时,系统将会识别出、接受和支持这些名称。
有关更多详细信息,请参阅 locale_alias(5) 手册页,其中也包含语言环境名称映射的完整列表。