跳过导航链接 | |
退出打印视图 | |
Oracle Solaris 11.1 国际语言环境指南 Oracle Solaris 11.1 Information Library (简体中文) |
本节介绍如何基于系统提供的现有语言环境使用 localedef(1) 创建定制语言环境。
注 - 仅支持 Oracle 提供的语言环境。语言环境的格式错误可能是问题的原因。
要从现有语言环境定制并因此创建新语言环境,您需要准备至少三个语言环境定义源文件:
localedef 源文件-包含语言环境的必要定义。
charmap 源文件-包含代码点值与可读性较好的符号名称之间的映射。localedef 源文件中使用符号名称。charmap 源文件还包含其他定义,例如语言环境的代码集名称、语言环境代码点中可以表示的最大字节数等。
extension 源文件-包含内部语言环境方法的标准接口(如 strcoll(3C) 和 fgetwc(3C))的映射,以及正确操作语言环境所需的其他信息。
系统提供的各语言环境在 source/locale/localedef 软件包中获取其各自的语言环境定义数据文件。仅当需要对现有系统语言环境进行略微更改时,这些文件才比较有用。
$ sudo pkg install system/header source/locale/localedef
$ export PATH=<oracle-studio-path>/bin:$PATH
$ mkdir mynewlocale $ cd mynewlocale $ mkdir amd64 $ cp /usr/lib/locale/common/methods_unicode.so.3 . $ cp /usr/lib/locale/common/amd64/methods_unicode.so.3 amd64/ $ cp /usr/lib/localedef/src/charmaps/UTF-8.charmap \ /usr/lib/localedef/src/extensions/UTF-8.x \ /usr/lib/localedef/src/locales/fr_FR.UTF-8.src .
$ localedef -m lp64 -f UTF-8.charmap -x UTF-8.x -i fr_FR.UTF-8.src \ -L "-R\\\$ORIGIN/../../common -Bdirect -M /usr/lib/ld/map.pagealign \ -M /usr/lib/ld/map.noexdata" fr_FR.UTF-8@custom $ mv fr_FR.UTF-8@custom.so.3 amd64/
$ localedef -m ilp32 -f UTF-8.charmap -x UTF-8.x -i fr_FR.UTF-8.src \ -L "-R\\\$ORIGIN" fr_FR.UTF-8@custom
$ sudo mkdir -p /usr/lib/locale/fr_FR.UTF-8\@custom/amd64 $ sudo cp fr_FR.UTF-8\@custom.so.3 /usr/lib/locale/fr_FR.UTF-8\@custom/ $ sudo cp amd64/fr_FR.UTF-8\@custom.so.3 /usr/lib/locale/fr_FR.UTF-8\@custom/amd64/
$ export LANG=fr_FR.UTF-8@custom
很少情况下需要从头开始创建语言环境。可以使用基于系统语言环境创建新的语言环境中所述的方法从头开始创建语言环境。有关 localedef、charmap 和 extension 源文件可用的语言环境和选项的更多详细信息,请参阅 localedef(1)、locale(5)、extensions(5) 和 charmap(5) 手册页。