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_CTYPE LC_ALL. 。这些变量不受 dtlogin 语言资源或登录屏幕"选项"菜单的影响。 它们必须在下述文件中设置:

NLSPATH 环境变量

NLSPATH 环境变量决定了应用程序搜索消息目录的目录路径。必须将 LANG NLSPATH 都设置为使用该消息目录。 有关本地化消息的位置的详细信息,请参考"本地化信息目录"。大多数桌面客户机程序将预先指定 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 ,将忽略语言 ,应用程序在 /usr/app-defaults/C 目录中寻找其 app-defaults 文件。

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

如果将 XFILESEARCHPATH 设置在 HomeDirectory/.dtprofile 中,其值对运行的所有桌面和 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 文件用以检索关于 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_CTYPELANG LC_ALL 环境变量决定的,或者由 -lang 选项指定的语言决定。

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

LANG=C   dtterm

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

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

LANG=C LC_CTYPE=DeDE dtterm

如果 X 服务器已经重新设置,并且键映射已经初始化,您可以在服务器使用 xmodmap 命令重新设置适当的键盘映射。