Solaris 公用桌面环境: 高级用户和系统管理员指南

第 18 章 配置本地化的桌面会话

如果要配置本地化的桌面会话,需要:

管理 LANG 环境变量

如果要使用操作系统中对语言有关的例程,就必须为桌面设置 LANG 环境变量。桌面支持:


注意:

桌面供应商可能已经添加了对其它类型语言的支持。


可以将 LANG 设置为操作系统所支持的任何值。 登录屏幕中的"选项"菜单显示了系统所支持的语言和地区列表。

为桌面设置 LANG 的方法有四种:

当设置完 LANG 后,桌面使用下列与语言相关的 文件来决定本地化接口。

颜色-/usr/dt/palettes/desc.language

背景-/usr/dt/backdrops/desc.language

为多个用户设置语言

如果通过 Xconfig 文件的手段来设置语言,则 将登录屏幕本地化,并为所有用户设置了 LANG 。该方法是在多重显示器系统中为所有显示器更改 LANG 的唯一方法。(要修改 Xconfig ,请将 /usr/dt/config/Xconfig 复制到 /etc/dt/config/Xconfig

设置语言的方法是,在 /etc/dt/config/Xconfig 文件中插入如下一行:

dtlogin.host_display.language: language 

例如,下面一行将 my_host:0 中的 LANG 设置为 Swedish_locale

dtlogin.my_host_0.language: Swedish_locale 

dtlogin 客户程序读取该语言相应的信息目录, 并调用本地化的登录屏幕。然后,dtlogin客户程序使用 /etc/dt/config/Xresources 资源文件中的如下资源来决定语言环境列表:

Xconfig 文件可能需要根据所选择的语言来设置 NLSPATH 环境变量。如果不是这种情况,或者希望自己来设置 NLSPATH 变量,请参阅 "NLSPATH 环境变量"

设置一个会话的语言

要为一个会话过程设置语言,请使用登录屏幕"选项"菜单。将登录屏幕本地化,并为该用户设置了 LANG。 在会话结束时,LANG 将返回其缺省值(在 dtlogin 中设置)。

设置一个用户的语言

用户可在 HomeDirectory/.dtprofile 中复位登录 LANG 设置。将不会本地化登录屏幕,而是为该用户设置了 LANG

	LANG=language  	export LANG 
	setenv LANG language

LANG 环境变量和会话配置

LANG 环境变量更改了在其中搜索会话配置文件的目录名。

本地化的会话的配置文件为:

设置其它的 NLS 环境变量

除了 LANG 外,还有一些其它的 NLS 环境变量,例如LC_CTYPELC_ALL。这些变量不受 dtlogin 语言资源或登录屏幕"选项"菜单的影响。它们必须在下述文件中设置:

NLSPATH 环境变量

NLSPATH 环境变量决定了应用程序搜索信息目录的 目录路径。必须将 LANGNLSPATH 都设置为使用该信息目录。关于本地化信息的位置的进一步信息, 请参阅 "对信息目录进行本地化"。大多数桌面客户程序将使用该路径作为启动时 NLSPATH 的前缀。

查找字体

桌面包含的字体在 /usr/lib/X11/fonts 目录中。 每个目录含有一个目录文件 fonts.dir 和一个别名文件 fonts.alias。关于创建 fonts.dirfonts.alias 文件的进一步信息,请参阅 mkfontdir 的手册页。

要列出服务器上所有可用的字体,请使用 xlsfonts 命令。要添加或删除服务器的字体,请使用 xset 命令。

对 app-defaults 资源文件进行本地化

桌面客户的 app-defaults 文件的缺省位置为 /usr/dt/app-defaults/language。例如 ,如果将 LANG 设置为 Swedish_locale,那么应用程序将在 /usr/dt/app-defaults/Swedish_locale 中寻找其 app-defaults 文件。如果没有设置 LANG ,那么应用程序将忽略 language ,而在 /usr/app-defaults/C 目录中寻找其 app-defaults 文件。

要更改 app-defaults 文件的位置,请使用 XFILESEARCHPATH 环境变量。例如,如果要将 app-defaults 移动到 /users 目录中,可将 XFILESEARCHPATH 变量设置为 /usr/app-defaults/language/classname

如果在 HomeDirectory /.dtprofile 中设置 XFILESEARCHPATH, 该数值将应用于所有的桌面和运行的 X 客户程序中。 非客户程序将无法找到其资源文件,除非将这些文件链接或复制到 XFILESEARCHPATH 所指定的目录中。

对动作和数据类型进行本地化


注意:

要将 /usr/dt/appconfig 目录中的文件用户化,可在 定制之前将该文件复制到 /etc/dt/appconfig 目录中。


动作和数据类型定义文件的搜索路径包括与语言相关的目录:

"应用程序管理器"的配置文件的搜索路径是:

对图标和位图进行本地化

如果要本地化图标,可用"图标编辑器"进行编辑,并将它保存在:

/etc/dt/appconfig/icons/language

如果将它保存在其它目录中,可将 XMICONSEARCHPATH 环境变量设置为包含保存图标的目录。XMICONBMSEARCHPATH 控制 用以搜索图标的路径。

对背景名进行本地化

背景的本地化是通过使用说明文件(desc.language desc.backdrops)来实现的。无任何指定的本地化 目录(例如 /usr/dt/backdrops/language)供背景文件使用。 所有的语言环境使用相同的背景文件,但是它们有各自的 desc.language 文件,其中含有背景的译名。

说明文件中包含已翻译的背景名称的资源说明。例如:

Backdrops*Corduroy.desc:					
Velours Backdrops*DarkPaper.desc:					
PapierKraft Backdrops*Foreground.desc:				
AvantPlan

desc.language 文件用以获得背景说明中关于语言环境的背景说明,以便使背景能在"式样管理器" 中显示。如果有描述说明,则它将在"式样管理器"的背景列表中显示。否则,将使用背景文件名。

用户可以在 HomeDirectory/.dt/backdrops/desc.backdrops 文件中添加自己的背景说明。该文件用于在忽略语言环境的情况下,获得背景说明中所有用户添加的 背景。

说明 文件的搜索路径是:

对调色板名进行本地化

调色板的本地化是通过使用说明文件(desc.languagedesc.palettes)实现的。不存在指定的本地化目录(例如 /usr/dt/palettes/language)。所有语言环境的 调色板使用相同的调色板文件,但是它们都有各自的 desc.palettes 文件,该文件中含有调色板的译名。

说明文件中含有关于调色板译名的资源说明。例如:

		Palettes*Cardamon.desc:					Cardamone 		Palettes*Cinnamon.desc:					Cannelle 
		Palettes*Clove.desc:						Brun

desc.language 文件用于搜索调色板描述中关于语言环境 language的说明,以使其能在"式样管理器" 的调色板列表中显示。如果有说明,它将显示在"式样管理器"的调色板列表中。否则,将会使用调色板文件名。

用户可以在 HomeDirectory/.dt/palettes/desc.palettes 文件中添加自己的调色板说明。该文件用于在忽略语言环境的情况下,获得调色板说明中的所有用户添加的 调色板。

该说明文件的搜索路径为:

对帮助卷进行本地化

如果已本地化了帮助卷,必须将它存储在下列目录中的任一目录下。系统使用所找到的第一个帮助卷。 这些目录是按下面顺序搜索的:

对信息目录进行本地化

如果本地化了信息目录,则将它存储到下面的目录中:

/usr/dt/lib/nls/msg/language

这些目录中含有 *.cat 文件。

远程执行本地化了的桌面应用程序

可以在任何安装了类似的本地化桌面的 远程执行主机上调用本地化桌面应用程序。 当应用程序启动时,在调用它的主机上,与 NLS 相关的环境变量的数值将传送到远程主机上。 然而,这些环境变量并不包含任何主机信息。

对键盘映射进行复位

如果出现意外的字符或行为,或者字符不能显示或键入,可能需要复位或安装键盘映射或者更改输入法。

输入法是由 LC_CTYPELANGLC_ALL 环境变量所决定的,或者由 -lang 选项所指定的语言决定。

例如,如果用户希望在 POSIX shell 中以 C 语言环境打开终端:

LANG=C   dtterm

这个新的终端使用 C 语言环境,包括 C 的输入法和字体。如果使用指定语言的的键盘,那么输入法可能 不接受输入的任何扩展字符。当用指定语言的键盘使用 C 语言环境时,在调用终端之前用户需要将 LC_CTYPE (或 LANGLC_ALL))环境变量设置为相应的数值。

例如,用德国键盘使用 C 语言环境,应键入:

LANG=C LC_CTYPE=DeDE dtterm

如果 X 服务器已经复位,并且键盘映射已经初始化,可以在服务器使用 xmodmap 命令复位正确的键盘映射。