HOME 戻る

言語別フォントセットの設定 (欧米,中国,韓国,ヒンディ,ペルシャ等)

 
 
言語の国際化に関しては、更に調査を進めなければならないところがありますので参考程度にお読みください。
 
 
【 言語について 】
 
CentOS5の様なデフォルト文字コードにユニコードを使用しているOSでは国際化が図られつつあります。
このことは、 言語を選択してログインするとログイン後の画面の世界がその国のものになっている事からもうかがえます。
この国際化された環境では、ユニコード版に対応したKaracrixBuilderも実行レベルで動作します。
実際にKaracrixBuilderを国別環境に切り替えて実行してみてください。
ただし現時点(2008.4)では、中国環境のデフォルト起動で画面文字の一部に不具合が出るようですが、 その他韓国や欧米含めた環境では日本文表示ではありますがそのままKaracrixBuilderが走ります。
漢字含めた各国文字入力は、CentOS5内の多言語入力メソッドシステム(SCIM)が担当しており、 日本語は勿論のこと韓国語も入るようで国際化に向けて徐々に整備されているようです。
 
現KaracrixBuilderは、各国環境で動作しますが、KaracrixBuilder画面内の説明は日本語のままです。
従って各国で使用する場合には、この日本語を対象言語に直す必要があります。
直す部分は、言語依存部分をリソースファイルという形で分離使用していますので、 このリソースファイルを対象言語に入れ替えれば使用できるということになります。
但し、弊社によるこの対象言語化作業は余力無いため保留されています。
 
○言語依存リソースファイルの修正に関して
 
リソースには以下に示す4種類があります。
リソースファイルは全てテキストで書かれており編集することが可能です。
対象リソースファイルと変換方法について説明します。
 
1. コンソール画面
  KaracrixXXX/sys/sxrs 配下に sed cad cns com0 icn msg というディレクトリがあります。
これらディレクトリ下に存在する *.exx というファイルが各画面リソースファイルです。
リソースファイルには、画面の大きさや色、データ入力欄の位置大きさ等が定義されており、 画面の文字も定義されています。
この中の日本語で記述されているところを対象言語に変えます。
日本語部分はほとんど単語(約900語)なので、対応する対象言語と対にまとめたファイルを作成しsedスクリプト等で一括全置換します。
 
2. Web及び携帯画面
  KaracrixXXX/sys/sweb/htdocs 配下の *.html というファイルが画面リソースファイルです。
この中の日本語で記述しているところを対象言語に変えます。
 
3. ヘルプ
  KaracrixXXX/sys/stbl/kcxtext_help.tbl が「ヘルプ」文を格納しているファイルです。
約7000行のボリュームがあります。ここを対象言語に翻訳します。
 
4. 設定参照テーブル
  KaracrixXXX/sys/stbl 配下に、以下に示すような設定参照テーブルファイルがあります。
kcxtext_system.tbl
kcxitem_objmem.tbl
kcxname_objtype.tbl
kcxname_operator.tbl
kcxtext_stat_object.tbl
kcxtext_stat_binary.tbl
kcxmenu_pulldown_A.tbl
kcxmenu_pulldown_B.tbl
kcxmenu_sed_A.tbl
kcxtext_sys_msg.tbl
kcxtext_edit_msg.tbl
kcxtext_edit_dpy.tbl
kcxtext_emailhelp.tbl
この中の日本語で記述しているところを対象言語に変えます。
それほど多くはありません。
 
○ユーザ設定データに関して
  これは、KaracrixBuilder上で利用者によって設定されるものです。
KaracrixBuilderにサンプル登録されている日本語データは削除するなどして 一旦システムを空の状態にし、それから各国言語で再編成してください。
 
 
 
【 フォントセットの指定について 】
 
フォントとは、文字の書体(大きさ太め細め斜め文字間隔等)のことです。
ですので、文字を表示する時には必ずこのフォントを指定しなければなりません。
フォントの指定は書体データが格納された物理ファイルを指す論理フォント名で設定します。
KaracrixBuilderではこの論理フォント名にXLFD(XLogicalFontDescription)というものを使用します。
そして、OSの画面表示を司るXウインドウシステムというものがこのXLFDをもとに文字を表示します。
 
なお、フォントとXLFDの詳細に関し専門書籍あるいは他の専門サイトで別途お調べください。
○XLFDの簡単なまとめ
  下記例に示すような長いフォーマットのフォント名です。
-jis-fixed-medium-r-normal--16-110-100-100-c-160-jisx0208.1983-0
上記のフォントは、jisという提供者のもので標準書体16ドットサイズのフォントというものです。
フォーマット各要素のつながりと大まかな意味を以下の英語略(EN)及び日本語略(JP)に示します。
EN= -fndry-fmly-wght-slant-sWdth--pxlsz-ptSz-resx-resy-spc-avgWdth-rgstry-encdng
JP= -提供者-書体名-太さ-傾き-横幅--ドットサイズ-印刷サイズ-X解像度-Y解像度-等幅/可変幅-平均幅-文字集合名-エンコード方式
 
KaracrixBuilderに設定するフォントは、 karacrixXXX/usr/env/font.env の中のXLFDを記述する部分を編集し設定します。
フォントを一意に決めたい場合には、XLFDのフォーマット全要素を指定します。
表示(Xウインド)システムにお任せの場合には、フォントサイズ等必要最小限の要素を指定し それ以外をワイルドカードである*(アスタリスク)を指定します。
 
なお、ワイルドカード(*)で示した要素に対応するものに何が選ばれたかを確認しておく必要があります。
この確認には、karacrixXXX/sys/srun/xfontlist.run のログファイルを参照します。
xfontlist.run には、表示(Xウインド)システムが上記 font.env のXLFDを読み、 OS内に実存する適合フォントの書体データを1つ或いは複数読み込みその実フォント名が出力されています。
 
CentOS5には、xfontselというフォントを確認するツール(コマンド)が入っています。
これを使用(端末画面より実行)し、フォント名に対応する書体を目視確認してください。
逆に上記において、xfontselを使用してXLFDを捜し出しておくのも良いかもしれません。
 
XLFDのフォーマットには文字サイズを指定するところがあります。
KaracrixBuilderでは、全角文字の表示に14x14,16x16,24x24ドットの正方形フォントを使用するように設計されています。
そして、半角文字の表示には全角(漢字やひらがな)の半分の幅になるようなそれぞれ7x14,8x16,12x24ドットの長方形フォントを使用するように設計されています。
XLFDの文字サイズ関係には、この条件に適合するよう設定してください。
なおCentOS5の日本語環境の場合、14,16,24サイズの汎用XLFDを1つ設定すれば 上記全角半角両フォントが複数同時に自動的に読み込まれるようです。
次に、XLFDのフォーマットには文字幅を指定するところもあります。
フォントを一意に指定する場合の文字幅には、 等幅(正方形フォント)か可変幅(プロポーショナルフォント)のところを等幅フォントにしてください。
KaracrixBuilderはこの等幅を条件に作られています。
従って、欧米のアルファベットを使用される環境でも等幅をご指定ください。
 
全角と半角のフォントを任意に選びたい場合には、それぞれに対する複数のXLFDを指定します。
font.env 内に記述するフォーマットは、display,オプション,XLFD の並びになります。
font.env でXLFDを指定する場合、全角予定のXLFDには2を、半角予定のXLFDには1をオプションに与えます。
このオプション値は、KaracrixBuilderが文字を出力する時正方形長方形フォントの区別に使っています。
全角及び半角指定のXLFDを2つ以上設定しても構いませんが、 それを表示(Xウインド)システムがこれをどう解釈しどう表示するかは実装依存で難解なものがあります。
複数のXLFDを設定する例(実際には有り得ない解説用のもの)
  NO,SIZExSIZE,,,
  display,1,"-*-*...-*-"   (半角フォント指定のXLFDの1つ目)
  display,1,"-*-*...-*-"   (半角フォント指定のXLFDの2つ目)
  display,1,"-*-*...-*-"   (半角フォント指定のXLFDの3つ目)
  display,2,"-*-*...-*-"   (全角フォント指定のXLFDの1つ目)
  display,2,"-*-*...-*-"   (全角フォント指定のXLFDの2つ目)
  end
※KaracrixBuilder内部では、複数設定されたXLFDを全てXCreateFontSet()に渡し、 文字描画に関しては、表示(Xウインド)システムに一任しています。
 
以上説明した全角と半角の両文字に対応したフォント集合体のことをフォントセットと呼んでいます。
 
KaracrixBuilderデフォルト状態(font.env)でのXLFDは、 標準書体でかつフォントサイズのみを与えた非常に汎用的なものになっています。
これは国別環境が変わってもその国に合ったフォントセットが自動的に読み込まれるように期待している為です。
16ドットフォントを例に取ると、以下に示したXLFDを指定しています。
-*-*-medium-*-*--16-*-*-*
これを、国別に表示(Xウインド)システムに読み込ませた場合どのようなフォントを読むのかを調べました。
読み込んだフォントは xfontlist.run ログファイルに出力されますので、その一部を以下に示します。
 
# 日本語環境では
-sony-fixed-medium-r-normal--16-120-100-100-c-80-iso8859-1   ←半角用フォント
-jis-fixed-medium-r-normal--16-110-100-100-c-160-jisx0208.1983-0   ←全角用(日本)フォント
# 中国語環境では
-sony-fixed-medium-r-normal--16-120-100-100-c-80-iso8859-1   ←半角用フォント
-isas-fangsong ti-medium-r-normal--16-160-72-72-c-160-gb2312.1980-0   ←全角用(中国)フォント
# 韓国語環境では
-sony-fixed-medium-r-normal--16-120-100-100-c-80-iso8859-1   ←半角用フォント
-daewoo-gothic-medium-r-normal--16-120-100-100-c-160-ksc5601.1987-0   ←全角用(韓国)フォント
-jis-fixed-medium-r-normal--16-110-100-100-c-160-jisx0208.1983-0   ←全角用(日本)フォント
-isas-fangsong ti-medium-r-normal--16-160-72-72-c-160-gb2312.1980-0   ←全角用(中国)フォント
# 英語、ヒンディ語、ペルシャ語等の表音語圏環境では
-sony-fixed-medium-r-normal--16-120-100-100-c-80-iso8859-1   ←半角用フォント
-jis-fixed-medium-r-normal--16-110-100-100-c-160-jisx0208.1983-0   ←全角用(日本)フォント
-daewoo-gothic-medium-r-normal--16-120-100-100-c-160-ksc5601.1987-0   ←全角用(韓国)フォント
-isas-fangsong ti-medium-r-normal--16-160-72-72-c-160-gb2312.1980-0   ←全角用(中国)フォント
 
汎用的なXLFDで表示(Xウインド)システムが期待通りのフォントを読んでくれない場合、 やはりXLFDを一意に指定しなければなりません。
上記出力されているフォント名のように、 論理フォント名のフォーマット全要素が埋まっているXLFDを font.env に設定してください。
 
 
 
karacrixXXX/usr/env/font.env デフォルト設定内容 (各国対応)

0,KcxMbFont,"X11ドットフォント","X11ドットフォント",KcxTBLtp_DOTFONT_X11
 0,14x14,f14,"X11ドット(14x14)","X11フォント(14x14)"
   display,2,"-*-*-medium-*-*--14-*-*-*"   14ドット角のXLFDを与える
   printer,1,"Ryumin-Light.Hankaku"
   printer,2,"Ryumin-Light-H"
   end
 1,16x16,f16,"X11ドット(16x16)","X11フォント(16x16)"
   display,2,"-*-*-medium-*-*--16-*-*-*"   16ドット角のXLFDを与える
   printer,1,"Ryumin-Light.Hankaku"
   printer,2,"Ryumin-Light-H"
   end
 2,24x24,f24,"X11ドット(24x24)","X11フォント(24x24)"
   display,2,"-*-*-medium-*-*--24-*-*-*"   24ドット角のXLFDを与える
   printer,1,"Ryumin-Light.Hankaku"
   printer,2,"Ryumin-Light-H"
   end
 end

 
 
XLFDを少々詳しく指定した例 (日本語指定例)

0,KcxMbFont,"X11ドットフォント","X11ドットフォント",KcxTBLtp_DOTFONT_X11
 0,14x14,f14,"X11ドット(14x14)","X11フォント(14x14)"
   display,1,"-misc-fixed-medium-r-normal--14-130-75-75-c-70-iso8859-1"
   display,2,"-misc-fixed-medium-r-normal--14-*-*-*-*-*-jisx0208.1983-0"
   printer,1,"Ryumin-Light.Hankaku"
   printer,2,"Ryumin-Light-H"
   end
 1,16x16,f16,"X11ドット(16x16)","X11フォント(16x16)"
   display,1,"-sony-fixed-medium-r-normal--16-120-100-100-c-80-iso8859-1"
   display,2,"-jis-fixed-medium-r-normal--16-*-*-*-*-*-jisx0208.1983-0"
   printer,1,"Ryumin-Light.Hankaku"
   printer,2,"Ryumin-Light-H"
   end
 2,24x24,f24,"X11ドット(24x24)","X11フォント(24x24)"
   display,1,"-sony-fixed-medium-r-normal--24-170-100-100-c-120-iso8859-1"
   display,2,"-jis-fixed-medium-r-normal--24-*-*-*-*-*-jisx0208.1983-0"
   printer,1,"Ryumin-Light.Hankaku"
   printer,2,"Ryumin-Light-H"
   end
 end

 
 

HOME 戻る