Solaris 8 オペレーティング環境には、Thai Language Environment (TLE) が含まれます。TLE には、タイ語の入力、表示、印刷が可能なタイ語環境が用意されています。また、TLE には、タイ語のアプリケーションとコマンドを作成するためのプラットフォームと、Solaris 8 および CDE 1.4 の操作と保守に対応した他の機能もあります。
TLE の機能は次のとおりです。
コードセットの規格
今回のリリースでは、タイ語を表示するためにタイ工業規格 (TIS 620-2533) をサポートします。ディレクトリ名とファイル名にタイ語の文字を使用できます。
タイ語の入力
今回のリリースには、各ウィンドウの現在の入力モードを示す入力モードインジケータがあります。国際化された X11R6 ライブラリの動的呼び出し可能なモジュールを使って、ASCII 入力をタイ文字に変換することもできます。通常の Sun Type 4 または Type 5 キーボードによるテキスト入力も可能です。
タイ語の出力
CDE 1.4 におけるテキストの描画操作ルーチンはすべて、タイ語のテキストを表示するために拡張されています。出力メソッドのアルゴリズムは、タイ政府が管理する WTT 2.0 タイ語テキスト表示規格に準拠します。今回のリリースには、タイ語のビットマップと TrueType フォントも含まれています。
タイ語の印刷
15 ドットマトリックスプリンタに対応しています。サポートされるプリンタについては、『Thai Language Supplement for Solaris 2.6: Release Overview』の付録 C を参照してください。
共通デスクトップ環境生産性ツール (Common Desktop Environment Productivity Tools)
どの CDE 1.4 アプリケーション ウィンドウでもタイ語の表示と入力が可能です。ウィンドウアプリケーション間でテキストをカット&ペーストすることもできます。今回のリリースは、Xlib レベルでのタイ語の入力と、CDE 1.4 を含むツールキットレベルでのタイ語の出力をサポートします。また、タイ語のラベルとメッセージを表示するローカライズされた CDE デスクトップツールのほか、テキストやファイル名でのタイ語の使用をサポートします。
Complex Text Layout (CTL)
この追加機能によって、論理テキスト表現と物理テキスト表現の間の複雑な変換が必要な書き込み方式を Motif API がサポートできます。また、文字の整形機能と、静的および動的テキストウィジェットの変換機能もあります。さらに、動的テキストウィジェットの左右両方向に対するテキスト配置とタブ機構もサポートします。
TLE の CDE 1.4 ライブラリには、WTT 2.0 規格に準拠したタイ語のテキスト操作 (挿入、削除、選択、カット、コピー、ペースト、ドラッグ&ドロップ) が含まれています。このライブラリを使ってプログラムを開発する方法については、『Solaris 共通デスクトップ環境 プログラマーズ・ガイド』を参照してください。
この節では、タイの文字を操作する機構について説明します。
同じファイルにタイ語と英語を混在させなければならないことがあります。英語とタイ語の入力切り替えには、[Ctrl] キーとスペースキーを同時に押します。各ツールの下部にあるメッセージ・ウィンドウに現在の入力言語が表示されます。
この節では、タイ語の処理方法を次の項目に分けて説明します。
テキストの挿入と削除
テキストの折り返し
カーソルの移動
テキストの選択
テキストのコピーまたはペーストとドラッグ&ドロップ
タイ語の文字の挿入と削除を行うと、文字クラスの構成に応じて、テキストの表示が変更されます。
図 D-1 は、SARA_II (AV3 母音) と YOYAK (子音) の間に MAIHUNAKAT (AV2 母音) を挿入する手順を示します。
MAIHUNAKAT は SARA_II と合成できないので、独立したセルに表示されます。
次の例は、 SARA_II (AV3 母音) を削除する手順を示します。
MAIHUNAKAT は NONU (子音クラス CONS) と合成できるので、直前のセルに表示されます。
タイ語には区切り文字 (スペース) がありません。そのため、スペースを送る文字と送らない文字を組み合わせると、文字の適切な折り返しが難しくなります。
Solaris 8 TLE は、表示セルで文字を折り返し、行の折り返しでスペースを送らない文字を補います。たとえば、スペースを送る文字を行末で入力すると、カーソルは次の行に進みます。スペースを送らない文字を行末で入力すると、カーソルは次の行に進みません。スペースを送らない文字は行末の表示セルに表示され、カーソルの位置はそのままです。
表示セルを選択すると、スペースを送る文字かどうかにかかわらず、選択したセルの文字がすべて選択されます。
タイ語における複数の表示レベルにより、dtpad (テキスト・エディタ) ウィンドウでのカーソルの動作が不規則に見えることがあります。多くのセルには複数のタイ文字が入っていますが、カーソルは表示セルの間を移動するだけです。そのため、同一セルの文字間ではカーソルが移動しません。
端末エミュレータでのカーソルの動作は、(dtpad など) のテキストウィジェットを使ってタイ語 CDE ツールのいずれかでテキストを編集する場合と少し異なります。端末エミュレータでカーソルを動かしたとき、表示セルに文字が 1 つだけ入っていると、表示セルのカーソルが強調表示されます。ある文字がいくつかの表示セルを共有していると、表示セルの全体が強調表示されます。
このリリースに含まれる 4 種類のタイ語フォントを使って、タイ語と英語を組み合わせて表示できます。表 D-1 と 表 D-2 にタイ語フォントを示します。
このリリースに含まれる 4 種類のタイ語フォントを使って、タイ語と英語を組み合わせて表示できます。表 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 pt |
-logic-gothic-medium-r-normal--12-120-75-75-c-80-tis620.2533-0 |
14 pt |
-logic-gothic-medium-r-normal--14-140-75-75-c-90-tis620.2533-0 |
|
16 pt |
-logic-gothic-medium-r-normal--16-160-75-75-c-80-tis620.2533-0 |
|
20 pt |
-logic-gothic-medium-r-normal--20-200-75-75-c-100-tis620.2533-0 |
|
24 pt |
-logic-gothic-medium-r-normal--24-240-75-75-c-100-tis620.2533-0 |
|
太字ゴシック |
12 pt |
-logic-gothic-bold-r-normal--12-120-75-75-c-100-tis620.2533-0 |
14 pt |
-logic-gothic-bold-r-normal--14-140-75-75-c-110-tis620.2533-0 |
|
16 pt |
-logic-gothic-bold-r-normal--16-160-75-75-c-80-tis620.2533-0 |
|
20pt |
-logic-gothic-bold-r-normal--20-200-75-75-c-120-tis620.2533-0 |
|
24 pt |
-logic-gothic-bold-r-normal--24-240-75-75-c-120-tis620.2533-0 |
|
太字イタリック |
16 pt |
-logic-gothic-medium-i-normal--16-160-75-75-c-80-tis620.2533-0 |
この節では、CDE 1.4 とドットマトリックスプリンタからタイ語のテキストを印刷する方法を説明します。サポートされるドットマトリックスプリンタについては、『Thai Language Supplement for Solaris 2.6: Release Overview』の付録 C を参照してください。
Angsana UPC フォントがプリンタにインストールされている場合、どの CDE 1.4 ツールからでも印刷できます (フォントは Solaris 8 TLE に含まれていません) 。
この節では、『Thai Language Supplement for Solaris 2.6: Release Overview 』の付録 C「Printer Brand, Model, and Code IDs」に掲載されている WTT 2.0 規格に登録されたプリンタを使うと想定しています。
お使いのシステムで WTT 2.0 規格に登録されたプリンタを使用する場合は、『Solaris のシステム管理 (第 2 巻)』を参照してください。
プリンタを設定したら、次の手順でタイ語の印刷を有効にします。
cd /usr/lp/interfaces と入力します。
設定したプリンタに対応するファイルを編集します。
次の行の lp.cat を lp.filter に変更します。
if [! -x "${LPCAT:=${LOCALPATH}/lp.cat}"]
lp.cat にプリンタジョブを渡す lp.filter というシェルスクリプトを /usr/lib/lp/bin に作成します。
lp.filter プログラムの構文は次のとおりです。thai_filter_command の構文については、『Thai Language Supplement for Solaris 2.6: Release Overview』の付録 D の thaifilter(1) のマニュアルページを参照してください。
thai_filter_command | lp.cat
この節では、タイ語の印刷に必要な thaifilter(1) 印刷ユーティリティとプリンタ変換テーブルの使用方法を説明します。
thaifilter(1) プログラムは、タイ語のテキストを次の 3 段階に変換するフィルタです。
すべての ASCII 文字を含む基本レベルの文字
上位レベルの文字
下位レベルの文字
このシステムは、「3-Level Classification」と呼ばれています。3-Level Classification に変換されたファイルの主な用途は次の 2 つです。
正しい表示レベルでタイ語の文字を印刷することをプリンタに指示する。
通常はタイ語テキストを複数レベル (通常) で表示できない端末にタイ語のテキストファイルを表示する。
一部の新型プリンタでは、3-Level Classification ソフトウェアが既にインストールされています。そのため、thaifilter(1) プログラムには、3-Level Classification をオフに切り替える -x オプションがあります。
thaifilter(1) のマニュアルページは、TLE 2.6 ソフトウェアで提供されています。『Thai Language Supplement for Solaris 2.6: Release Overview』を参照してください。
WTT 2.0 規格には、タイ語の印刷について次の条件と規約があります。
プリンタ ID
プリンタ ID は、プリンタの機種、製造元、文字コードを指定するための、TAPIC が定義した 6 文字のコードです。プリンタのメーカは、自社製プリンタに明記するプリンタコードを保有しています。プリンタ ID の構文は BBMMCC で、BB は製造元の略称を示す 2 つの文字、MM は機種の略称を示す 2 つの文字、CC はプリンタで使用される変換コードを示す 2 桁の数字です。プリンタの製造元と機種の略称は、『Thai Language Supplement for Solaris 2.6: Release Overview』の付録 C「Printer Brand, Model, and Code IDs」を参照してください。プリンタ変換コードについては、次の節を参照してください。
たとえば、表 D-3 の 1 行目は、Data Products IZR650 プリンタの製造元と機種の略称が DA および ZI であることを示します。このプリンタがコード変換テーブルの 10 番を使用すると、プリンタ ID の完全な形式は DAZI10 になります。
変換コードとプリンタコード変換テーブル
プリンタ ID を指定するときに、表 D-3 の右側に記載されたコードを使用します。Solaris 8 TLE は、TAC11x11.COD 規格に対して印刷するためのコードテーブルが指定された TIS 988-2533 に準拠します。ただし、このテーブルを使用しないプリンタもあるので、TIS 規格では既存の他のプリンタコードを TAC11x11.COD に変換するための変換ルックアップテーブルを 17 個指定しています。TAC とは、Thai API Consortium の略称です。Thai Internationalization Committee が定義した API には、接頭辞「TAC.」が付きます。
各種プリンタに付属するコードを TAC11x11.COD 規格に変換するため、前述した 17 個のコード変換テーブルが Solaris 8 TLE に用意されています。 表 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 |
どのプリンタコード変換テーブルも使用しないプリンタの場合は、次の節を参照して独自の変換テーブルを作成してください。
プリンタ変換テーブルを使用して、印刷命令を WTT 2.0 のデフォルト印刷形式である TIS 988-2553 形式に変換します。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 ! comment
このフィールドに何も文字を書かないときは空白にするのではなく、ダッシュを 2 つ記入する必要があります。1 行目のフィールドについては、表 D-4 で説明します。
表 D-4 コード変換テーブル
フィールド |
説明 |
---|---|
CC |
TIS 988-2553 の結合コード。SaraI、MaiEk など |
LG |
ライングラフィック |
UM |
SaraAm と Nikhahit の結合コード |
EX |
Ascender 拡張子 |
TN |
タイの数字 |
SP |
TIS 988-2553 で定義されていない特殊コード |
! comments |
任意のコメント。WTT 2.0 規格では、このフィールドにファイル名と日付が入ります。コメントの前には「!」が必要です。 |
変換ファイルの中間には、16 コード x 16 行の合計 256 コードがあります。これらのコードは TIS 988-2553 の代替コードです。TIS 988-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 ! End of TAC11x10.COD Note: There is no conversion in this table
変換テーブルの最終行は、! から始まる別のコメントです。WTT 2.0 変換テーブルは、次の行で終わります。
! END OF filename