Solaris 8 操作环境包括泰国语环境 (TLE) 。TLE 提供了使您能键入、显示和打印泰国语的本地化泰国语环境。除此之外,TLE 还提供了为 Solaris 8 和 CDE 1.4 的操作和维护建立泰国语应用程序、命令和其他特性的平台。
下表描述了 TLE 的特性:
代码集标准
本发行版本支持代表泰国语字符的泰国工业标准 (TIS 620-2533) 。目录和文件名可包含泰国语字符。
泰文文本输入
本发行版本包括了为每个窗口所用来指示当前输入模式的输入模式指示器。也可以用国际化的 X11R6 库的动态可加载模块将 ASCII 输入转换成泰国语字符。可用普通的 Sun 4 型或 5 型键盘来键入文本。
泰文文本输出
所有公用桌面环境 (CDE 1.4) 的文本处理程序都已经过改进,以显示泰文文本。输出法算法是基于由泰国政府维护的 WTT 2.0 泰文文本显示规范。本发行版本也包括了泰文位图和 TrueType 字体。
泰文文本打印
提供对 15 针点阵打印机的支持。关于所支持的打印机列表,请参阅 Thai Language Supplement for Solaris 8:Release Overview (《Solaris 8 的泰国语补充:发行概述) 》中的"附录 C"。
公用桌面环境生产工具
所有的 CDE 1.4 应用程序窗口都显示和接受泰文文本。也可在窗口应用程序之间剪切和粘贴文本。本发行版本支持 Xlib 级别 的泰文输入和工具箱级别的泰文输出,包括 CDE 1.4。本发行版本也提供显示泰文标签和消息的本地化的 CDE 桌面工具,并支持泰文文本和文件名的使用,等等。
复杂文本布局 (CTL)
CTL 增加的功能使 Motif 的 API 能支持需要在逻辑和物理文本表达之间进行复杂转换的书写系统。它也提供字符形成以及静态和动态文本转换的附加工具。除此之外,CTL 支持从右到左和从左到右的文本定向和动态文本小部件的制表。
TLE 包括 CDE 1.4 库。根据 WTT 2.0 标准,CDE 1.4 库包括对泰文文本的操作 (插入、删除、选择、剪切、复制、粘贴、拖和放) 。关于使用库来开发程序的信息,请参阅 《Solaris 公用桌面环境:程序员指南》。
本节解释了处理泰文字符的机制。
可能需要在同一文件中相间泰文文本和英文文本。如要使窗口在英文和泰文或泰文和英文之间切换,按 Ctrl+空格键。每个工具底部的消息窗口显示当前的输入语言。
本节讲述了如何处理泰文文本,特别是,如何:
插入和删除文本
换行文本
移动光标
选择文本
复制/粘贴和拖放文本
插入和删除泰文文本会改变文本的显示,这取决于字符类是否可以被书写。
下列图形显示了在 SARA_II (AV3 元音) 和 YOYAK (辅音) 之间插入 MAIHUNAKAT (AV2 元音) 的序列。
MAIHUNAKAT 不能和 SARA_II 复合,所以它必须在自己的单元中显示。
下例显示了 SARA_II (AV3 元音) 的删除。
MAIHUNAKAT 可以和 SARA_II 复合。所以,它显示在上一个单元中。
在泰文中,字和字之间没有分隔符 (空格) 。因为空格和非空格字符的组合,给正确的字符换行造成困难。
在 Solaris 8 TLE 中,字符的换行在显示单元中完成,且在换行时 TLE 软件会补偿非空格字符。例如,当向前空格字符被键入到行的最后一列时,光标会进到下一行。如果在相同的地方键入了非空格字符,则光标不会进到下一行。 非空格字符显示在前一行的最后一个显示单元中,且光标位置保持不变。
当选定显示单元时,显示单元中的所有字符 (空格和非空格) 都被选定。
泰国语的多个显示层看上去会造成光标在 dtpad (文本编辑器) 窗口中的异常移动。光标实际上只在显示单元之间移动。然而,由于在一个显示单元中经常有多个泰文字符,所以光标实际上并不在其间移动。
"终端"窗口中的光标移动与使用文本附加工具 (如dtpad) 在泰国语 CDE 工具中编辑文本稍有差别。当在"终端"窗口中移动光标时,如果在显示单元中只有一个字符,光标会在单元中高亮显示。 如果字符共享显示单元,则整个显示单元都会高亮显示。
可用本发行版本中所包括的四种泰文字体来显示泰文和英文字符的组合。这些字体列在表 D-1和表 D-2中。
可用本发行版本中所包括的四种泰文字体来显示泰文和英文字符的组合。字体列在表 D-1中。
表 D-1 Solaris 8 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 8 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-normal--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.4 和点阵式打印机来打印泰文。关于所支持的点阵式打印机列表,请参见 Thai Language Supplement for Solaris 8: Release Overview (《Solaris 8 的泰国语补充:发行概述》) 的"附录 C"。
如果 Angsana UPC 字体安装在打印机上,则可从任何 CDE 1.4 工具进行打印 (Solaris 8 TLE 中不提供该字体) 。
本节假定打印机已注册在 Thai Language Supplement for Solaris 8: Release Overview (《Solaris 8 的泰国语补充:发行概述》) 的"附录 C","打印机牌名、型号和代码 ID"中列出的 WTT 2.0 标准中。
如果正在设置的系统使用在 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) 程序是将泰文文本转换成三层不同字符的过滤器程序:
基层字符 (包括任何 ASCII 字符)
上层字符
下层字符
这个系统被称为 三层分类。将文件转换成三层分类的两个主要用途为:
指导打印机在正确的显示层打印泰文字符。
在通常不允许多层 (正常) 泰文文本显示的终端上查看泰文文本文件。
一些较新的打印机已经安装了三层分类软件。由于这个原因,thaifilter(1) 程序带有 将三层分类关闭的 -x 选项。
thaifilter(1)手册页在 TLE 8 软件中有提供,也可在 Solaris 8 的泰国语补充:发行概述D"手册页"的附录获得其印刷形式。
WTT 2.0 标准标识了以下打印泰文文本的术语和惯例:
打印机 ID
打印机 ID 是由 TAPIC 定义来指明打印机的 型号、牌名和字符代码的六字符代码。打印机供货商应清晰地将其打印机代码标在打印机上。打印机 ID 的语法是 BBMMCC,其中 BB 是两个字母的品牌缩写,MM 是两个字母的型号缩写,而 CC 是代表打印机所用转换码的两位数数字。 打印机品牌和型号的缩写列在 Thai Language Supplement for Solaris 8: Release Overview (《Solaris 8 的泰国语补充:发行概述》) 的"附录 C","打印机品牌、型号和代码 ID"中。 关于打印机转换码的讨论,请参阅下一节。
例如,表 D-3第一行显示了 Data Products IZR650 打印机的牌名和型号缩写是 DA 和 ZI。如果这台打印机使用 10 号码转换表,则完整的打印机 ID 应为:DAZI10。
转换代码和打印机代码转换表
在指定打印机 ID 时,使用列在"表 A-3"右边的代码。Solaris 8 TLE 遵循 TIS 988-2533,TIS 988-2533 指定了一个按 TAC11x11.COD standard. 由于并不是每台打印机都使用这个表,TIS 标准一共指定了 17 个代码转换查找表来将其他已知的打印机代码转换成 TAC11x11.COD。 (TAC 是"泰国语 API 联合协会"的缩写。 (TAC 是 Thai API Consortium 的缩写。由泰国语国际化委员会定义的所有 API 前都加以前缀 "TAC"。)
这 17 个代码转换表由Solaris 8 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 的缺省打印格式。列在 WTT 2.0 标准中的代码转换表包括在Solaris 8 TLE 中。
如果正在使用的打印机不使用 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 ! 注释
如果两个字符字段中有一个没有用到,则它必须用两个破折号 (--) 来替代。第一行中的这些字段在表 D-4中有所解释。
表 D-4 代码转换表
字段 |
说明 |
---|---|
CC |
TIS 988-2553 中的 Combined Code (组合代码) ,例如 SaraI 和 MaiEk |
LG |
行图形 |
UM |
SaraAm 和 Nikhahit 的组合代码 |
EX |
Ascender 扩展 |
TN |
泰国语数字 |
SP |
在 TIS 988-2553 中未定义的特殊代码 |
! comments (注释) |
您的任何注释。在 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