Solaris 共通デスクトップ環境 ユーザーズ・ガイド

付録 D ロケールについて

この付録では、CDE 上でのタイ語とヘブライ語ロケールによるテキストの表示、操作、および印刷について説明します。

タイ語のロケール

Solaris オペレーティング環境には、タイ言語環境 Thai Language Environment (TLE) が含まれます。TLE には、タイ語の入力、表示、印刷が可能なタイ語環境が用意されています。また、TLE には、タイ語のアプリケーションとコマンドを作成するためのプラットフォームと、Solaris および CDE の操作と保守に対応した他の機能もあります。

TLE の機能は次のとおりです。

CDE ライブラリの機能

TLE の CDE ライブラリには、WTT 2.0 規格に準拠したタイ語のテキスト操作 (挿入、削除、選択、カット、コピー、ペースト、ドラッグ&ドロップ) が含まれています。このライブラリを使ってプログラムを開発する方法については、『Solaris 共通デスクトップ環境 プログラマーズ・ガイド』を参照してください。

タイ語のテキスト操作

この節では、タイの文字を操作する機構について説明します。

タイ語を入力する

同じファイルにタイ語と英語を混在させなければならないことがあります。英語とタイ語の入力切り替えには、[Ctrl] キーとスペースキーを同時に押します。各ツールの下部にあるメッセージ・ウィンドウに現在の入力言語が表示されます。

タイ語のテキストを編集する

この節では、タイ語の処理方法を次の項目に分けて説明します。

文字の挿入と削除

タイ語の文字の挿入と削除を行うと、文字クラスの構成に応じて、テキストの表示が変更されます。

図 D–1 は、SARA_II (AV3 母音) と YOYAK (子音) の間に MAIHUNAKAT (AV2 母音) を挿入する手順を示します。

図 D–1 テキスト挿入前の論理バッファと表示内容

Graphic

図 D–2 テキスト挿入後の論理バッファと表示内容

Graphic

MAIHUNAKAT は SARA_II と合成できないので、独立したセルに表示されます。

次の例は、 SARA_II (AV3 母音) を削除する手順を示します。

図 D–3 テキスト削除前の論理バッファと表示内容

Graphic

図 D–4 テキスト削除後の論理バッファと表示内容

Graphic

MAIHUNAKAT は NONU (子音クラス CONS) と合成できるので、直前のセルに表示されます。

文字の折り返し

タイ語には区切り文字 (スペース) がありません。そのため、スペースを送る文字と送らない文字を組み合わせると、文字の適切な折り返しが難しくなります。

Solaris の TLE は、表示セルで文字を折り返し、行の折り返しでスペースを送らない文字を補います。たとえば、スペースを送る文字を行末で入力すると、カーソルは次の行に進みます。スペースを送らない文字を行末で入力すると、カーソルは次の行に進みません。スペースを送らない文字は行末の表示セルに表示され、カーソルの位置はそのままです。

テキストの選択、コピー、ペースト、およびドラッグ&ドロップ

表示セルを選択すると、スペースを送る文字かどうかにかかわらず、選択したセルの文字がすべて選択されます。

エディタ・ウィンドウ (dtpad) でのカーソルの動作

タイ語における複数の表示レベルにより、dtpad (テキスト・エディタ) ウィンドウでのカーソルの動作が不規則に見えることがあります。多くのセルには複数のタイ文字が入っていますが、カーソルは表示セルの間を移動するだけです。そのため、同一セルの文字間ではカーソルが移動しません。

端末エミュレータ (dtterm) でのカーソルの動作

端末エミュレータでのカーソルの動作は、(dtpad など) のテキストウィジェットを使ってタイ語 CDE ツールのいずれかでテキストを編集する場合と少し異なります。端末エミュレータでカーソルを動かしたとき、表示セルに文字が 1 つだけ入っていると、表示セルのカーソルが強調表示されます。ある文字がいくつかの表示セルを共有していると、表示セルの全体が強調表示されます。

このリリースに含まれる 4 種類のタイ語フォントを使って、タイ語と英語を組み合わせて表示できます。表 D–1表 D–2 にタイ語フォントを示します。

タイ語のフォント

このリリースに含まれる 4 種類のタイ語フォントを使って、タイ語と英語を組み合わせて表示できます。表 D–1 にフォントを示します。

表 D–1 Solaris の 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 の 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 とドットマトリックスプリンタからタイ語のテキストを印刷する方法を説明します。サポートされるドットマトリックスプリンタについては、『Thai Language Supplement for Solaris 2.6: Release Overview』の付録 C を参照してください。

CDE ツールから印刷する

Angsana UPC フォントがプリンタにインストールされている場合、どの CDE ツールからでも印刷できます (フォントは Solaris の TLE に含まれていません) 。

ドットマトリックスプリンタでタイ語の印刷を設定する

この節では、『Thai Language Supplement for Solaris 2.6: Release Overview 』の付録 C「Printer Brand, Model, and Code IDs」に掲載されている WTT 2.0 規格に登録されたプリンタを使うと想定しています。

お使いのシステムで WTT 2.0 規格に登録されたプリンタを設定する場合は、『Solaris のシステム管理 (上級編)』を参照してください。

プリンタを設定したら、次の手順でタイ語の印刷を有効にします。

  1. cd /usr/lp/interfaces と入力します。

  2. 設定したプリンタに対応するファイルを編集します。

    次の行の lp.catlp.filter に変更します。

    if [! -x "${LPCAT:=${LOCALPATH}/lp.cat}"]
  3. 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) ユーティリティを使用する

thaifilter(1) プログラムは、タイ語のテキストを次の 3 段階に変換するフィルタです。

このシステムは、「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 規格には、タイ語の印刷について次の条件と規約があります。

各種プリンタに付属するコードを TAC11x11.COD 規格に変換するため、前述した 17 個のコード変換テーブルが Solaris の 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 の 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

コード変換テーブルの 1 行目には、次の構文を使用します。

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

ヘブライ語のロケール

Solaris オペレーティング環境には、ヘブライ語言語環境 Hebrew Language Environment が含まれます。この節では、Hebrew Language Environment の主要な機能について説明します。

ヘブライ語のテキストを入力する

同じファイルにヘブライ語と英語を混在させなければならないことがあります。ヘブライ語と英語の入力モードを切り替えるには、[Ctrl] キーと [t] キーを同時に押します。各ツールの下部にあるメッセージウィンドウに現在の入力言語が表示されます。

ヘブライ語のテキストを編集する

この節では、論理編集モードでカーソルを操作する方法を説明します。


注 –

入力したテキストの行頭にカーソルの残像が表示されることがあります。この残像は機能に影響しないので、データの入力を続けてください。


文字の挿入

ヘブライ語と英語のテキストの境界にテキストを挿入する場合、その位置は明確に表示されません。曖昧な表示を解消するため、分割カーソルで 2 つの位置を反映しています。表示形式は ab|DC| となり、| は各カーソルを示します。


注 –

[Home] キーまたは [End] キーを押すと、分割カーソルが正しく表示されないことがあります。


ヘブライ語のテキストを印刷する

フィルタのセットを使用すると、ヘブライ語を印刷できます。プリンタが接続されるサーバとクライアントの両方に、ヘブライ語のロケールパッケージ SUNWheu をインストールする必要があります。

インストール済みのヘブライ語フィルタ

次のフィルタリストがヘブライ語ロケールパッケージに含まれています。

heb2ps

この heb2ps フィルタは、任意のテキストを PostScript に変換し、フォントとヘブライ語フォントをプリンタに送信します。

hebl2r

hebl2r フィルタで印刷すると、入力テキストの並べ替えは行われません。テキストは 80 カラムの用紙サイズに合わせてフォーマットされます。この形式は、ヘブライ語が少し含まれた英語文書の印刷に役立ちます。

hebr21

hebr21 フィルタで印刷すると、すべてのテキストが反転し、プリンタの出力結果が右寄せになります。

hebtxt

フィルタで印刷すると、テキストがヘブライ語と英語の両方向で並べ替えられ、プリンタの出力結果が右寄せになります。

コマンドラインからヘブライ語フィルタを使用する

コマンドラインから印刷するには、hebtxt フィルタを使用します。lp 印刷コマンドは、lp -T hebtxt -d printer_name です。

dt アプリケーションから印刷する

dt 構成ファイルの印刷アクションフィールドを変更して、ヘブライ語テキストフィルタを追加する必要があります。たとえば、dtmail アプリケーションでは、/usr/dt/appconfig/types/he/dtmail.dt ファイル の印刷アクションは次のようになります。

ACTION Print  
{
LABEL        Print 
ARG_TYPE     DTMAIL_FILE   
TYPE         COMMAND
WINDOW_TYPE  NO_STDIO
EXEC_STRING  sh -c ' \                                 
             dtmailpr -p -f %(File)Arg_1% | 
             /usr/lib/lp/postscript/convert_text -inputTextMode text_mode_implicit
             -outputTextMode text_mode_visual -lineWidth 80 -inputLayoutDirection left_down
             -outputLayoutDirection right_down| mp -A4 -L he| dtlp -u %(File)Arg_1%;'
}

リストされた convert_text パラメータでは、右寄せのテキストが右から左に向かって印刷されます。左寄せのテキストを左から右に向かって印刷するには、これらのパラメータを -lineWidth 80 に置換します。