Solaris 7 操作环境包括泰语环境 (TLE) 。TLE 提供了使您能键入、显示和打印泰语的本地化泰语环境。此外,TLE 还提供了为 Solaris 7 和 CDE 1.3 的操作和维护生成泰语应用程序、命令和其它功能的平台。
下表描述了 TLE 的特性:
代码集标准
本发行版支持代表泰语字符的泰语行业标准 (TIS 620-2533) 。目录和文件名可包含泰语字符。
泰语文本输入
本发行版包括输入模式指示器,它为每个窗口指示当前的输入模式。 也可以用国际化 X11R6 库的动态可加载模块将 ASCII 输入转换成泰语字符。 可以用普通的 Sun 4 型或 5 型键盘键入文本。
泰语文本输出
所有通用桌面环境 (CDE 1.3) 的文本呈现例程都已经过改进,可以显示泰语文本。输出法算法基于由泰国政府维护的 WTT 2.0 泰语文本显示规范。本发行版还包括了泰语位图和 TrueType 字体。
泰语文本打印
提供对 15 点阵打印机的支持。有关所支持的打印机列表,请参阅《Solaris 2.6 的泰语增补:有关所支持的打印机列表,请参阅《Solaris 2.6 的泰语增补:发行概述》中的附录 C。有关所支持的打印机列表,请参阅《Solaris 2.6 的泰语增补:发行概述》中的附录 C。 有关所支持的打印机列表,请参阅《Solaris 2.6 的泰语增补:发行概述》中的附录 C。 发行概述》中的附录 C。
通用桌面环境生产工具
所有的 CDE 1.3 应用程序窗口都显示和接受泰语文本。也可以在窗口应用程序之间剪切和粘贴文本。本发行版支持 Xlib 级别的泰语输入和工具箱级别的泰语输出,包括 CDE 1.3。本发行版还提供显示泰语标签和消息的本地化 CDE 桌面工具,并支持泰语文本和文件名的使用,等等。
复杂文本布局 (CTL)
CTL 增加的功能使 Motif 的 API 能支持需要在逻辑和物理文本表示之间进行复杂转换的书写系统。它也提供字符形成以及静态和动态文本小部件的转换。此外,CTL 支持从右到左和从左到右的文本方向和动态文本小部件的制表。
TLE 包含 CDE 1.3 库,该库包括依据 WTT 2.0 标准的泰语文本操作(插入、删除、选择、剪切、复制、粘贴、拖放)。 有关使用该库开发程序的信息,请参阅《Solaris 通用桌面环境: 程序员指南》。
本节解释处理泰语字符的机制。
可能需要在同一文件中交替引入泰语文本和英文文本。要使窗口在英文和泰语或泰语和英文之间切换,按 Ctrl+空格键。每个工具底部的消息窗口显示当前的输入语言。
本节讲述如何处理泰语文本,特别是如何:
插入和删除文本
自动换行
移动光标
选择文本
复制/粘贴和拖放文本
插入和删除泰语文本会改变文本的显示,这取决于字符类是否可以书写。
下列图形显示了在 SARA_II(AV3 元音)和 YOYAK(辅音)之间插入 MAIHUNAKAT(AV2 元音)的序列。
MAIHUNAKAT 不能用 SARA_II 书写,所以它必须在自己的单元中显示。
下例显示了 SARA_II(AV3 元音)的删除。
MAIHUNAKAT 可以用 NONU(辅音类 CONS)书写。所以,它显示在上一个单元中。
在泰语中,字和字之间没有分隔符(空格)。由于空格和非空格字符的组合,这给正确的字符换行造成困难。
在 Solaris 7 TLE 中,字符换行在显示单元中完成,并且 TLE 软件在换行时会补上非空格字符。例如,当向前空格字符被键入到行的最后一列时,光标会进到下一行。如果在相同的地方键入了非空格字符,则光标不会进到下一行。 非空格字符显示在前一行的最后一个显示单元中,且光标位置保持不变。
当选定显示单元时,显示单元中的所有字符(空格和非空格)都被选定。
泰语的多个显示层看上去会造成光标在 dtpad(文本编辑器)窗口中的异常移动。光标实际上只在显示单元之间移动。然而,由于在一个显示单元中经常有多个泰语字符,所以光标实际上并不在其间移动。
“终端”窗口中的光标移动与使用文本小部件(如dtpad )在泰语 CDE 工具中编辑文本稍有差别。在“终端”窗口移动光标时,如果显示单元中只有一个字符,光标会在单元中突出显示。 如果字符共享显示单元,则整个显示单元都会突出显示。
可以用本发行版中所包括的四种泰语字体来显示泰语和英文字符的组合。这些字体列在 表 D–1 和 表 D–2 中。
可以用本发行版中所包括的四种泰语字体来显示泰语和英文字符的组合。字体列在 表 D–1 中。
表 D–1 Solaris 7 TLE 字体(可缩放)
字样 |
式样 |
字体名 |
---|---|---|
Angsana |
常规 |
-monotype-angsa-medium-r-normal--*-*-*-*-m-*-tis620.2533-0 |
粗体 |
-monotype-angsab-bold-r-normal--*-*-*-*-m-*-tis620.2533-0 |
|
斜体 |
-monotype-angsai-medium-i-normal--*-*-*-*-m-*-tis620.2533-0 |
|
粗斜体 |
-monotype-angsaz-bold-i-normal--*-*-*-*-m-*-tis620.2533-0 |
|
Browalia |
常规 |
-monotype-browa-medium-r-normal--*-*-*-*-m-*-tis620.2533-0 |
粗体 |
-monotype-browab-bold-r-normal--*-*-*-*-m-*-tis620.2533-0 |
|
斜体 |
-monotype-browai-medium-i-normal--*-*-*-*-m-*-tis620.2533-0 |
|
粗斜体 |
-monotype-browaz-bold-i-normal--*-*-*-*-m-*-tis620.2533-0 |
|
Cordia |
常规 |
-monotype-cordia-medium-r-normal--*-*-*-*-m-*-tis620.2533-0 |
粗体 |
-monotype-cordiab-bold-r-normal--*-*-*-*-m-*-tis620.2533-0 |
|
斜体 |
-monotype-cordiai-medium-i-normal--*-*-*-*-m-*-tis620.2533-0 |
|
粗斜体 |
-monotype-cordiaz-bold-i-normal--*-*-*-*-m-*-tis620.2533-0 |
|
表 D–2 Solaris 7 TLE 字体(固定宽度)
字样 |
式样 |
字体名 |
---|---|---|
哥特式常规 |
12 磅 |
-logic-gothic-medium-r-normal--12-120-75-75-c-80-tis620.2533-0 |
14 磅 |
-logic-gothic-medium-r-normal--14-140-75-75-c-90-tis620.2533-0 |
|
16 磅 |
-logic-gothic-medium-r-nor mal--16-160-75-75-c-80-tis620.2533-0 |
|
20 磅 |
-logic-gothic-medium-r-normal--20-200-75-75-c-100-tis620.2533-0 |
|
24 磅 |
-logic-gothic-medium-r-normal--24-240-75-75-c-100-tis620.2533-0 |
|
哥特式粗体 |
12 磅 |
-logic-gothic-bold-r-normal--12-120-75-75-c-100-tis620.2533-0 |
14 磅 |
-logic-gothic-bold-r-normal--14-140-75-75-c-110-tis620.2533-0 |
|
16 磅 |
-logic-gothic-bold-r-normal--16-160-75-75-c-80-tis620.2533-0 |
|
20 磅 |
-logic-gothic-bold-r-normal--20-200-75-75-c-120-tis620.2533-0 |
|
24 磅 |
-logic-gothic-bold-r-normal--24-240-75-75-c-120-tis620.2533-0 |
|
哥特式斜体 |
16 磅 |
-logic-gothic-medium-i-normal--16-160-75-75-c-80-tis620.2533-0 |
本节讲述如何从 CDE 1.3 和点阵打印机打印泰语。有关所支持的点阵打印机列表,请参阅《Solaris 2.6 的泰语增补:发行概述》的附录 C。
如果打印机上安装了 Angsana UPC 字体,则可从任何 CDE 1.3 工具打印(Solaris 7 TLE 中不提供字体)。
本节假定您的打印机已注册在 WTT 2.0 标准,附录 C中的「打印机的品牌、型号和代码 ID」中列出《Solaris 2.6 的泰语增补:发行概述》。
如果设置的系统使用的是在 WTT 2.0 标准中注册的打印机,请使用 SunOS 5.6 文档的《设置用户帐号、打印机和邮件》手册中的说明来设置这些打印机。
设置完打印机后,按照下列步骤启用泰语字符的打印:
键入 cd /usr/lp/interfaces
编辑为刚设置的打印机命名的文件。
在下行中,将 lp.cat 改成 lp.filter:
if [! -x "${LPCAT:=${LOCALPATH}/lp.cat}"]
在 /usr/lib/lp/bin 中创建一个名为 lp.filter 的 shell 脚本,它通过 lp.cat 传送打印机作业。
lp.filter 程序应具有如下语法。请参阅thaifilter附录 D “手册页”中 (1) 手册页,《 Solaris 8 的泰国语补充:发行概述中的关于命令 thai_filter_command语法。
thai_filter_command | lp.cat
本节讲述如何使用打印泰语文本可能需要的 thaifilter(1) 打印公用程序和打印机转换表。
这个 thaifilter(1) 程序是将泰语文本转换成三层不同字符的过滤器:这个 thaifilter(1) 程序是将泰语文本转换成三层不同字符的过滤器:
基层字符(包括任何 ASCII 字符)
上层字符
下层字符
这个系统被称为 三层分类。将文件转换成三层分类的两个主要用途为:
指导打印机在正确的显示层打印泰语字符。
在通常不允许多层(正常)泰语文本显示的终端上查看泰语文本文件。
一些较新的打印机已经安装了三层分类软件。由于这个原因,thaifilter(1) 程序有将三层分类关闭的 -x 选项。
thaifilter(1)手册页在 TLE 8 软件中有提供,附录 D“手册页”印刷形式有提供于《Solaris 2.6 的泰语增补:发行概述》的附录 D“手册页”中还可获得其书面形式。
WTT 2.0 标准确定了关于泰语文本打印的以下术语和惯例:
打印机 ID
打印机 ID 是由 TAPIC 定义以指定打印机的型号、牌子和字符代码的六字符代码。打印机供应商应清晰地将其打印机代码标在打印机上。打印机 ID 的语法是 BBMMCC,其中 BB 是两个字母的品牌缩写, MM 是两个字母的型号缩写,CC 是代表打印机使用的转换代码的两位数字。 打印机品牌和型号的缩写列在《Solaris 2.6 泰语增补:发行概述》的附录 C“打印机的品牌、型号和代码 ID”中。 有关打印机转换代码的讨论,请参阅下一节。
例如,表 D–3 的第一行显示了 Data Products IZR650 打印机的品牌和型号缩写是 DA 和 ZI. 如果这台打印机使用 10 号转换表,则完整的打印机 ID 为: DAZI10。
转换代码和打印机代码转换表
在指定打印机 ID 时,使用列在“表 A-3”右边的代码。Solaris 7 TLE 遵循 TIS 988-2533,TIS 988-2533 指定了一个按 TAC11x11.COD 标准打印的代码表。由于并不是每台打印机都使用这个表,TIS 标准一共指定了 17 个代码转换查找表,以将其它已知的打印机代码转换成 TAC11x11.COD。 (TAC 是“泰语 API 联合会”的缩写。由泰语国际化委员会定义的所有 API 前都加以前缀 “TAC”。)
这 17 个代码转换表提供给 Solaris 7 TLE,使其能够将各种打印机提供的代码转换成 TAC11x11.COD 标准。 这些列在表 D–3中的表保存在 /usr/lib/lp/files目录中。
表 D–3 代码转换表
代码转换表 |
与打印机 ID 一同使用的代码 |
---|---|
TAC11x10.COD |
10 |
TAC11x12.COD |
12 |
TAC11x13.COD |
13 |
TAC11x14.COD |
14 |
TAC11x15.COD |
15 |
TAC11x16.COD |
16 |
TAC11x17.COD |
17 |
TAC11x18.COD |
18 |
TAC11x19.COD |
19 |
TAC11x20.COD |
20 |
TAC11x21.COD |
21 |
TAC11x22.COD |
22 |
TAC11x40.COD |
40 |
TAC11x41.COD |
41 |
TAC11x42.COD |
42 |
TAC11x43.COD |
43 |
TAC11xAA.COD |
AA |
如果您的打印机不使用任何打印机代码转换表,请参阅下节,了解有关创建您自己的代码转换表的帮助。
打印机转换表用于将打印指令转换成 TIS 988-2553 格式,这是 WTT 2.0 的缺省打印格式。Solaris 7 TLE 中包含了 WTT 2.0 标准中列出的代码转换表。
如果使用的打印机不使用 TIS 988-2553 格式,且无法使用任何代码转换表,则需要建立定制的转换表。本节说明如何创建新的打印机代码转换表。
转换表语法
以下是代码转换文件的一个示例:
-- -- -- -- TN -- ! TAC11x10.COD 16 AUG 1991 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F 40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F 50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F 60 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F 70 71 72 73 74 75 76 77 78 79 7A 7B 7C 7D 7E 7F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F 3F A1 A2 A3 A4 A5 A6 A7 A8 A9 AA AB AC AD AE AF B0 B1 B2 B3 B4 B5 B6 B7 B8 B9 BA BB BC BD BE BF C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 DA 3F 3F 3F 3F DF E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 EA EB EC ED EE EF F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 FA FB 3F 3F 3F FF ! End of TAC11x10.COD
CC LG UM EX TN SP ! comment
如果两个字符字段中有一个没有用到,则它必须用两个破折号 (--) 来替代。表 D–4对第一行中的字段进行了解释。
表 D–4 代码转换表
字段 |
说明 |
---|---|
CC |
TIS 988-2553 中的组合代码,例如,SaraI 和 MaiEk |
LG |
行图形 |
UM |
SaraAm 和 Nikhahit 的组合代码 |
EX |
Ascender 扩展 |
TN |
泰语数值 |
SP |
TIS 988-2553 中未定义的特殊代码 |
!注释 |
您的任何注释。在 WTT 2.0 标准中,这个字段包含文件名和日期。注释前面必须有“!”符号。 |
转换文件的中间部分包含 16 行(每行 16 个代码),总共 256 个代码。这些代码替代了 TIS 988-2553。TIS988-2553 代码显示如下:
-- -- -- -- TN -- ! TAC11x11.COD 16 AUG 1991 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F 40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F 50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F 60 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F 70 71 72 73 74 75 76 77 78 79 7A 7B 7C 7D 7E 7F 80 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F 90 91 92 93 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 AA AB AC AD AE AF B0 B1 B2 B3 B4 B5 B6 B7 B8 B9 BA BB BC BD BE BF C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 DA DB DC DD DE DF E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 EA EB EC ED EE EF F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 FA FB FC FD FE FF ! FA FB FC FD FE FF ! End of TAC11x10.COD Note: There is no conversion in this table
转换表的最后一行是另一个注释,其前面有“!”符号。 WTT 2.0 转换表到此行结束:
! END OF filename