この章では、Solaris の国際化と地域対応に関する新機能および重要概念について説明します。この章の内容は次のとおりです。
Solaris の最新リリースには、UTF-8 ロケールに対する Unicode 4.0 サポート、拡張キーボードサポート、mp 印刷フィルタの改良などの多数の新機能が含まれます。
Solaris 国際化アーキテクチャは、全世界におけるアプリケーションや言語サービスの開発、導入、および管理を容易にします。1 つの多言語対応製品によって 39 の異なる言語と 162 のロケールがサポートされます。さらに、タイ語やヒンディー語のスクリプトに必要な複雑なテキストレイアウトに対するサポートも行われます。アラビア語、ヘブライ語などに対する双方向テキスト機能もサポートされています。
多数の Solaris ロケールに対して、入力方式、文字セット、コードセット変換、およびその他の言語関連機能がサポートされています。標準 API に従うことによって、アプリケーションを複数の言語環境に導入できます。言語属性のカスタマイズ、コンバータテーブルの変更、新しい入力方式エディタの Solaris 環境への追加も可能です。
2000 年秋、Solaris X グローバル化フレームワークのソースコードがオープンソースコミュニティにリリースされました。このリリースに基づいて、共通の参照実装に従うことによって、グローバルアプリケーションの互換性および相互運用性を強化できます。グローバル化のためにコードセットを独立させたため、自国語と Unicode ロケールのどちらでも運用が可能です。Solaris フレームワークには、プラットフォームを越えた拡張性があります。豊富なデータコンバータにより、さまざまなエンコーディングやサン以外のプラットフォームにおける相互運用性が実現されます。
さらに Solaris プラットフォームでは、多国籍企業がサーバーの管理を世界レベルで運用できます。他社のプラットフォームとは異なり、Solaris プラットフォームでは、サービスベースのアプローチを使って言語サービスを管理します。サーバー管理者は、世界的なネットワークからリモートで言語サービスを有効にすることができます。クライアントシステムが何であるかは関係ありません。クライアントから独立したこのアプローチでは、クライアントアプリケーションを変更せずにシステムをアップグレードできます。たとえば、パリのインターネットカフェから送信されたアラビア語の電子メールを読むために、ローカルのクライアントアプリケーションを変更する必要がありません。
Solaris の最新リリースで使用できる新機能は次のとおりです。
エンコーディング自動検出
エンコーディング自動検出はグローバルな文字処理のためのユーティリティです。汎用のインタフェースを介して、特定のファイルまたは文字列のエンコーディングを簡単に検出できます。エンコーディングの検出によって、さまざまな言語の文字エンコーディングを簡単に使用できます。詳細については、auto_ef(1) または libauto_ef(3LIB) のマニュアルページを参照してください。
ロケール管理
ロケール管理では、コマンド行インタフェースを介して Solaris OS のロケールを照会および設定できます。localeadm(1M) ツールを使用すると、システムにインストールされているロケールパッケージおよび特定のデバイスやディレクトリにあるロケールパッケージに関する情報を表示できます。地域単位で、現在のシステムにロケールを追加したり、ロケールを削除したりできます。 たとえば、東ヨーロッパ地域のすべてのロケールを現在のシステムに追加できます。
ロケール管理が導入される以前では、システムのインストール後は、マシンのロケールを変更するために個々のパッケージを追加または削除する必要がありました。パッケージを個別に操作するので、パッケージを見つけられないなどの間違いを犯しやすくなっていました。
ロケール管理は、Solaris インストールプログラムのロケール選択ロジックを補完するものです。Solaris のロケールを正しくインストールするための主要アプリケーションは、これまでどおりインストールプログラムです。
mp の拡張
最初に Solaris 9 OS でリリースされた mp 印刷フィルタは、Solaris の最新リリースでは xutops 印刷フィルタを置き換えています。拡張された mp 印刷フィルタの主な改良点は次のとおりです。
mp.conf ファイルに設定済みフォントがない場合、認められないフォントを使用するグリフが出現するまで mp プログラムは実行を続ける
mp に使用される辞書メカニズムの微調整により、より高速な印刷が可能
TrueType エンジンの拡張により、さまざまな幅のすべてのスペース文字の処理が可能
xutops 印刷フィルタは Solaris OS ではサポートされません。これまで、国際化テキストを UTF-8 ロケールで印刷するために xutops 印刷フィルタが使用されていました。xutops に代わる mp 印刷フィルタは、xutops 印刷フィルタのサポート機能のスーパーセットです。詳細については、mp(1) のマニュアルページを参照してください。
新しいヨーロッパ向けキーボードのサポート
ポーランド語プログラマ向け Type 5 キーボードおよび Sun RayTM USB Type 6 のロシア語、エストニア語、フランス語系カナダ向けキーボードで、サンの入出力キーボードサポートを使用できます。
現在、新しいヨーロッパ向けキーボードタイプ用のハードウェアはありません。新しいキーボードソフトウェアを使用するには、「新しい Solaris キーボードのソフトウェアサポート」の手順を参照してください。
Unicode 4.0 のサポート
次の UTF-8 ロケールが更新されて、新しい Unicode 4.0 バージョンの規格をサポートします。
ar_EG.UTF-8
de_DE.UTF-8
en_US.UTF-8
es_ES.UTF-8
fi_FI.UTF-8
fr_BE.UTF-8
fr_FR.UTF-8
he_IL.UTF-8
hi_IN.UTF-8
it_IT.UTF-8
ja_JP.UTF-8
ko_KR.UTF-8
pl_PL.UTF-8
pt_BR.UTF-8
ru_RU.UTF-8
sv_SE.UTF-8
th_TH.UTF-8
tr_TR.UTF-8
zh_CN.UTF-8
zh_HK.UTF-8
zh_TW.UTF-8
新しいバージョンの規格では、1,226 文字が新たに追加され、規格および情報に関してさまざまな変更が行われています。
Unicode 3.2 は、次のように「UTF-8 Corrigendum」に従って UTF-8 バイトシーケンスをより厳密に定義します。
表 1–1 正当な UTF-8 バイトシーケンス
コードポイント |
1 番目のバイト |
2 番目のバイト |
3 番目のバイト |
4 番目のバイト |
---|---|---|---|---|
U+0000..U+007F |
00..7F | |||
U+0080..U+07FF |
C2..DF |
80..BF | ||
U+0800..U+0FFF |
E0 |
A0..BF |
80..BF | |
U+1000..U+CFFF |
E1..EC |
80..BF |
80..BF | |
U+D000..U+D7FF |
ED |
80..9F |
80..BF | |
U+D800..U+DFFF |
ill-formed | |||
U+E000..U+FFFF |
EE..EF |
80..BF |
80..BF | |
U+10000..U+3FFFF |
F0 |
90..BF |
80..BF |
80..BF |
U+40000..U+FFFFF |
F1..F3 |
80..BF |
80..BF |
80..BF |
U+100000..U+10FFFF |
F4 |
80..8F |
80..BF |
80..BF |
これらのシーケンスでは、U+D800 と U+DFFF 間のサロゲートコードポイントが除外されます。ほかの不正なバイト値も禁止されます。新しい定義に準拠するために、Unicode のロケール方式および UTF-8 の iconv モジュールを拡張したことにより、新たに定義された UTF-8 の不正なバイトシーケンスが検出されます。
Kedmanee (TIS820-2531) キー配列。Kedmanee 配列は、コンピュータキーボードとしてではなくタイプライタ用に設計されました。数に制限があるタイプライタキーボードのキーでは、タイ語のいくつかの特殊文字が配列上にありません。TIS820-2531 は、コンピュータキーボードとして使用するため Kedmanee 配列を採用しました。
TIS820-2538 キー配列。この拡張 Kedmanee 配列は TIS820-2531 配列の更新バージョンであり、元の Kedmanee 配列にはなかったタイ語の特殊文字が含まれます。現在、TIS820-2538 はタイ工業標準研究所が定める唯一のタイ語キー配列規格です。
Pattajoti キー配列。Pattajoti 配列もタイプライタ用に設計されたものですが、指をより使いやすいようにキーが配列されています。Pattajoti はタイ灌漑局の職員によって考案され、現在も同局で広く使用されています。
タイ語入力方式に合わせて設定可能な、ユーザー定義のキー配列。
インド語の入力方式のサポート
このリリースでは、中国語の入力方式に使用されるインタフェースと同様のコードテーブル入力方式インタフェースを使用できます。IIIMF SDK および SunIM 言語インタフェースに基づくインド語入力方式の新しい機能は次のとおりです。
表音、翻字ベースの入力方式とキー配列。サポートされるキー配列は、INSCRIPT キーボードがオーバーレイする ISCII 規格で定義される
標準入力方式の切り替え
インド語スクリプト (ヒンディー語、タミル語、カナラ語、マラヤーラム語、テルグ語、グジャラート語、パンジャブ語、ベンガル語)。F5 キーを押して入力スクリプトを変更する
将来の拡張を簡単に行える、新しいキー配列のプラグインメカニズム。プラグイン設定ファイルは言語エンジンモジュールによってロードされる
国際化と地域対応の手順は異なります。国際化とは異なる言語や地域の間でソフトウェアを移植可能にする処理を指し、地域対応とは特定の言語や地域に合わせてソフトウェアを適応させる処理を指します。国際化されたソフトウェアの開発には、特定の文化的要件に応じて実行時にプログラムの動作を変えるインタフェースを使用します。地域対応には、「ロケール」と呼ばれる言語や地域をサポートするためのオンライン情報を設定する処理が含まれます。
異なる言語や慣習に従って動作させるために完全に書き直す必要のあるソフトウェアとは異なり、国際化されたソフトウェアはそのような作業を必要としません。ソフトウェアが国際化されていれば、ロケールを入れ替える場合でもソフトウェアを変更する必要はありません。Solaris システムは国際化に対応しており、国際化ソフトウェアを作成する際に必要な基本構造やインタフェースを備えています。
国際化されたアプリケーションの実行可能イメージは、異なる言語や地域の間で共有することができます。ソフトウェアを国際化する手順を次に示します。
このマニュアルに記載されているインタフェースを使用して、動的な再コンパイルによって変更されるソフトウェアを 1 つの環境で作成します。
ソフトウェアを、実行可能コードと、ユーザーに表示されるすべてのメッセージに分離します。メッセージ文字列はメッセージカタログに格納します。
メッセージ文字列は、特定の言語や地域向けに翻訳されます。ロケールには、メッセージ文字列やソートで使用される手続きなどが含まれます。
ある製品の地域対応されたバージョンを使用する場合、ユーザーは特定の環境変数を設定します。これにより、メッセージがその言語のロケールに翻訳されて表示されます。日付、時刻、通貨、およびその他の情報は、ロケール固有の規定に従ってフォーマットおよび表示されます。メッセージ翻訳とオンラインヘルプの内容は、次の図で示すさまざまな層を通して提供されます。
OS (オペレーティングシステム) のロケール層によって、アプリケーションの実行時に OS のシステムインタフェースに差し込まれる基本的なロケールデータベースと機能が実現します。アプリケーションでは、標準的な API を通してこれらの OS ロケールモジュールにアクセスします。
X11 ロケール層によって、X11 アプリケーションがローカルのテキスト入力と表示ができるように、X 入力方式と X 出力方式へのインタフェースを実現します。アプリケーションがさまざまな言語の文字を表示できるように各種のフォントが用意されています。
CDE/Motif は、X11 ウィンドウシステムの上に構築されています。したがって、CDE/Motif は、X11 API を使って X11 ロケールの機能を使用できます。目標のロケール内部でデスクトップを機能させるため、Solaris の地域対応には、CDE アプリケーションに関するさまざまなロケール固有の設定があります。翻訳されたメッセージとオンラインヘルプの内容は、さまざまな層で提供されます。
アプリケーションプログラムにとって主要な概念となるのは、プログラムのロケールの概念です。ロケールとは、自国語環境の明示的なモデルであり、定義です。ロケールの概念は、ANSI C 言語規格のライブラリ定義で明示的に定義され、組み込まれています。
ロケールは、国ごとの書式やその他の指定に関する多くのカテゴリから構成されています。プログラムのロケールは、コードセット、日付と時間の形式の規定、通貨の規定、10 進数の書式の規定、照合 (ソート) 順を定義します。
ロケールは、基本言語、使用国 (地域)、オプションのコードセットから構成されています。コードセットは、通常、言語に応じて自動的に選択されます。たとえばドイツ語は Deutsch の略語である de です。一方、スイス系ドイツ語は de_CH です。CH は Confederation Helvetica の略語です。この規定によって、通貨単位の指定のような国ごとに固有の差異に対応することができます。
言語によっては複数のロケールを持つものもあり、地域によって異なることがあります。たとえば、アメリカ英語を使う場合は en_US ロケール (アメリカ英語) を、イギリス英語を使う場合は en_GB (イギリス英語) を選択できます。
通常、ロケール名は環境変数 LANG で指定します。ロケールのカテゴリは LANG に依存しますが、カテゴリ別に設定することも可能です。この場合、そのロケールのカテゴリは LANG の設定に優先します。LC_ALL オペランドを設定すると、LANG とすべての個別ロケールカテゴリに優先します。
ロケールの命名規則は次のとおりです。
language[_territory][. codeset] [@modifier]
2 文字の language コードは ISO 639 に、2 文字の territory コードは ISO 3166 にそれぞれ準拠します。codeset は、ロケールで使用されているコードセットの名前です。modifier は、このロケールと、修飾子のないロケールを区別する特徴を表す名前です。
Solaris 製品の全ロケールには、US-ASCII コード値を持つ移植可能な文字セット (Portable Character Set) が含まれています。
移植可能な文字セットについては、『X/Open CAE Specification: System Interface Definitions, Issue 5 (ISBN 1–85912–186–1)』を参照してください。
単一のロケールが複数のロケール名を持つ場合があります。たとえば、POSIX は C と同じロケールです。
C ロケール (POSIX ロケール) は、すべての POSIX 互換システムの POSIX システムデフォルトロケールです。Solaris OS は POSIX システムです。Single UNIX Specification, Version 3 によって C ロケールが定義されています。この仕様を閲覧およびダウンロードするには、http://www.unix.org/version3/online.html で登録が必要です。
作成した国際化プログラムを C ロケールで実行するように指定するには、次の 2 つの方法があります。
すべてのロケール環境変数を設定解除する
system% unsetenv LC_ALL LANG LC_CTYPE LC_COLLATE LC_NUMERIC \ LC_TIME LC_MONETARY LC_MESSAGES
これにより、すべてのロケール環境変数が設定解除され、アプリケーションが C ロケールで実行されます。
ロケールを明示的に C または POSIX に設定する
system% setenv LC_ALL C system% setenv LANG C
アプリケーションによっては、現在のロケールを参照するために実際には setlocale(3C) を呼び出さずに LANG 環境変数をチェックします。この場合、setenv で、LC_ALL と LANG のロケール環境変数を指定することによって明示的に C ロケールを設定します。ロケール環境変数の優先関係については、setlocale(3C) のマニュアルページを参照してください。
端末環境の現在のロケール設定をチェックするには、locale(1) コマンドを実行します。
system% locale
Solaris の完全ロケールは、ロケールとしてのすべての機能を備え、言語に対応した翻訳メッセージを含んでいます。部分ロケールは、言語に対応した翻訳メッセージを含んでいません。Solaris 環境のすべてのロケールは翻訳メッセージを表示できます。ただし、その言語に対応する翻訳メッセージがインストールされている必要があります。たとえば、次のロケールは部分ロケールにも完全ロケールにもなります。
de_DE.ISO8859–1
de_DE.ISO8859–15
de_DE.UTF-8
de_AT.ISO8859–1
de_AT.ISO8859–15
de_CH.ISO8859–1
LANGUAGES CD からドイツ語のメッセージがインストールされている場合、上記のすべてのロケールは、完全に翻訳されたデスクトップにアクセスするので、完全ロケールになります。この LANGUAGES CD には、以下の言語に対する翻訳メッセージが入っています。
ドイツ語
フランス語
スペイン語
スウェーデン語
イタリア語
日本語
韓国語
簡体字中国語
繁体字中国語
部分ロケールはすべて SOFTWARE CD に格納されています。翻訳メッセージは LANGUAGES CD に格納されています。
英語ロケールはすべて完全ロケールであり、SOFTWARE CD に格納されています。
文化が異なると、多くの場合、数、日付と時刻の表記、語句の区切り方、および著作物や話し言葉の引用符の使い方も異なります。ロケールは、以下に示す操作、ファイル、書式、および表現がさまざまな地域に合わせてどのように処理されるかを決定します。
テキストデータのエンコーディングと処理
リソースファイルの言語とエンコーディングの識別
テキスト文字列の描画と配置
クライアント間のテキストの交換
選択したスクリプトのコードセットとテキスト処理の要件に合う入力方式の選択
文化的に固有なフォントおよびアイコンのファイル
アクションとファイルタイプ
ユーザーインタフェース定義 (UID) ファイル
日付と時刻の書式
数値形式
通貨形式
照合順序
ロケール特有の正規表現処理
通知と診断のメッセージと対話型応答の形式
Solaris 環境は、言語と文化に依存する情報をアプリケーションから分離し、アプリケーションとは別に保存します。したがって、異なる市場ごとにアプリケーションの翻訳や手直し、再コンパイルを行う必要はありません。各言語および慣習に合わせて外部情報を言語対応化するだけで新規市場に参入することができます。
文字処理関数の動作を制御します。
日付と時間の形式を指定します。指定には月の名前、曜日、一般的な完全表記と省略表記も含まれます。
通貨の形式を指定します。これには、そのロケールの通貨記号、千単位の区切り記号、符号の位置、小数位以下の桁数などが含まれます。
小数位記号 (小数点)、千単位の区切り文字、グループ化を指定します。
そのロケールの照合順序や、正規表現の定義を指定します。
翻訳メッセージの言語、および肯定と否定の応答ロケール (yes と no の文字列と表現) を指定します。
言語のレンダリングに関する情報を提供する、配置 (レイアウト) エンジンを指定します。言語のレンダリング (またはテキストレンダリング) は、スクリプトの形状と方向の属性に依存します。
製品の地域対応は、対象となる言語や地域に密着したユーザーとともに進める必要があります。情報の特定のスタイルや形式が、開発者にとっては非常に明確であり、普遍的に見える場合でも、ユーザーにとっては扱いにくかったり、正しくなかったり、状況によっては不快感を与えることもあるかもしれません。次の各節では、製品の地域対応の要件に合わせてカスタマイズできる Solaris OS の要素について説明します。
次の表に、異なるロケールで午後 11 時 59 分を表すいくつかの方法を示します。
表 1–2 国際的な時間の表記形式
ロケール |
表記形式 |
---|---|
カナダ (英語またはフランス語) |
23:59 |
フィンランド語 |
23.59 |
ドイツ語 |
23.59 Uhr |
ノルウェー語 |
23.59 |
タイ |
23:59 |
イギリス英語 |
23:59 |
時間は、12 時間単位および 24 時間単位のどちらでも表すことができます。時間と分はコロン (:)またはピリオド (.) で区切ります。
時間帯は国別および同一国内で分かれます。時間帯は通常、協定世界時 (UTC) またはグリニッジ標準時 (GMT) との時差で表現されますが、この時差は必ずしも整数であるとは限りません。たとえば、ニューファンドランド島の時間帯と隣接する時間帯との時差は 0.5 時間です。
夏時間 (DST) の開始および終了の日付は国によって異なります。DST を全く導入していない国もたくさんあります。さらに、同一時間帯でも夏時間が異なることもあります。たとえば、米国では夏時間の実施は各州によって異なります。
次の表に、世界中で使用されている日付の形式のいくつかを示します。同じ国内で異なる場合もあります。
表 1–3 国際的な日付の表記形式
ロケール |
表記 |
例 |
---|---|---|
カナダ (英語) |
dd/mm/yy |
24/08/01 |
デンマーク語 |
yyyy-mm-dd |
2001–08–24 |
フィンランド語 |
dd.mm.yyyy |
24.08.2001 |
フランス語 |
dd/mm/yyyy |
24/08/2001 |
ドイツ語 |
yyyy-mm-dd |
2001–08–24 |
イタリア語 |
dd/mm/yy |
24/08/01 |
ノルウェー語 |
dd-mm-yy |
24–08–01 |
スペイン語 |
dd-mm-yy |
24-08-01 |
スウェーデン語 |
yyyy-mm-dd |
2001-08-24 |
イギリス |
dd/mm/yy |
24/08/01 |
米国 |
mm-dd-yy |
08-24-01 |
タイ |
dd/mm/yyyy |
24/08/2001 |
イギリスと米国は小数位をピリオドで表す数少ない 2 つの国です。その他の多くの国ではピリオドの代わりにコンマを使用しています。小数位の切り記号は 小数点文字とも呼ばれます。同様に、イギリスと米国では千単位をコンマで区切るのに対し、他の国々では代わりにピリオドを用いたり、狭い空白文字で区切ったりしています。
データファイルにロケール固有の形式で格納されている場合、ロケールの異なるシステムに転送したときに正しく解釈されない可能性があります。たとえば、フランスの形式で数値を格納したファイルは、イギリス向けのプログラムでは使用できません。
次の表に、一般的な数値の表記形式を示します。
表 1–4 国際的な数値の表記形式
ロケール |
大きな数値の表記 |
---|---|
カナダ (英語) |
4,294,967.00 |
デンマーク語 |
4.294 967.295,00 |
フィンランド語 |
4 294 967 295,00 |
フランス語 |
4 294 967 295,00 |
ドイツ語 |
4,294,967.00 |
イタリア語 |
4.294.967,00 |
ノルウェー語 |
4.294.967.295,00 |
スペイン語 |
4.294.967.295,00 |
スウェーデン語 |
4 294 967 295,00 |
イギリス |
4,294,967,295.00 |
米国 |
4,294,967,295.00 |
タイ |
4,294,967,295.00 |
並んでいる数を区切る方法を指定する特別なロケールの規則はありません。
通貨の単位や表記は世界中で大きく異なっています。国内での通貨記号と国際的に使われる通貨記号が異なっている場合があります。次の表に、いくつかの国の通貨形式を示します。
表 1–5 国際的な通貨の表記規則
ロケール |
通貨 |
例 |
---|---|---|
カナダ (英語) |
ドル ($) |
$1,234.56 |
カナダ (フランス語) |
ドル ($) |
1 234,56$ |
デンマーク語 |
クローネ (kr) |
Kr 1.234,56 |
フィンランド語 |
ユーロ () |
1 234,56 |
フランス語 |
ユーロ () |
1,234 |
日本語 |
円 (¥) |
¥ 1,234 |
ノルウェー語 |
クローネ (kr) |
kr 1.234,56 |
スウェーデン語 |
クローナ (Kr) |
1 234,56 Kr |
イギリス |
ポンド (£) |
£1,234.56 |
米国 |
ドル ($) |
$1,234.56 |
タイ |
バーツ |
2539 Baht |
ユーロ |
ユーロ () |
5,000 |
最新リリースでは、ユーロ通貨をサポートします。現地通貨記号は、下位互換としてまだ使用できます。
表 1–6 ユーロ通貨をサポートするユーザーロケール
地域 |
ロケール名 |
ISO コードセット |
---|---|---|
オーストリア |
de_AT.ISO8859-15 |
8859-15 |
ベルギー (フランス語) |
fr_BE.ISO8859-15 |
8859-15 |
ベルギー (フラマン語) |
nl_BE.ISO8859-15 |
8859-15 |
デンマーク |
da_DK.ISO8859-15 |
8859-15 |
エストニア |
et_EE.ISO8859–15 |
8859–15 |
フィンランド |
fi_FI.ISO8859-15 |
8859-15 |
フランス |
fr_FR.ISO8859-15 |
8859-15 |
ドイツ |
de_DE.ISO8859-15 |
8859-15 |
イギリス |
en_GB.ISO8859-15 |
8859-15 |
アイルランド |
en_IE.ISO8859-15 |
8859-15 |
イタリア |
it_IT.ISO8859-15 |
8859-15 |
オランダ |
nl_NL.ISO8859-15 |
8859-15 |
ポルトガル |
pt_PT.ISO8859-15 |
8859-15 |
カタロニア (スペイン語) |
ca_ES.ISO8859-15 |
8859–15 |
スペイン |
es_ES.ISO8859-15 |
8859-15 |
スウェーデン |
sv_SE.ISO8859-15 |
8859-15 |
米国 |
en_US.ISO8859-15 |
8859-15 |
ユーロロケールは、ISO8859-15 コードセットに基づいています。
変換前と変換後の通貨金額の表記に必要なスペースが異なることがあることに注意が必要です。たとえば、$1,000 は1.307.000 です。
ユーロ地域内のロケールの場合、ロケールの現在の設定値は locale ユーティリティの LC_MONETARY オペランドで表されます。たとえば、ドイツ語の場合は、次の表のようになります。
表 1–7 ドイツ語のロケールとその LC_MONETARY オペランド
ロケール |
LC_MONETARY |
---|---|
de_DE.ISO8859–1 |
DM |
de_DE.ISO8859-15 |
Euro |
de_DE.UTF-8 |
Euro |
de_DE.ISO8859–15@euro |
Euro |
de_DE.UTF-8@euro |
Euro |
この節では、言語間の重要な相違点について説明します。
英語では、通常、語は空白文字で区切ります。それに対して中国語、日本語、タイ語などの言語では多くの場合、語を区切りません。
特定の文字をソートする順序は、すべての言語で同じであるわけではありません。たとえば、ドイツ語の文字 ö は普通の o と一緒にソートされますが、スウェーデン語ではアルファベットの最後の文字として別にソートされます。言語によっては、文字の優先順位を決めるために重みが定められています。たとえば、タイ語の辞書では、文字に異なる重みを与えることによってソート順序が決定されます。
アルファベット文字や特殊文字の数は文字セットによって異なります。英語のアルファベットは 26 文字しかありませんが、それよりもずっと多くの文字を使用する言語もあります。たとえば、日本語には 20,000 以上の文字があり、中国語にはそれ以上の文字があります。
ほとんどの西ヨーロッパ諸国のアルファベットは、英語圏の国で使用されている 26 文字の標準アルファベットに類似しています。ただし、基本的な文字が追加されていたり、記号 (またはアクセント) の付いた文字や合字が使用される場合があります。
ひらがなとカタカナはそれぞれ対になっていますが、ひらがなの方がより一般的で、丸みのある形をしています。漢字は語幹となる語を書くのに使用され、カタカナは主に外来語を書き記すのに使用されます。
漢字の数は数万もありますが、使用される漢字の数は徐々に減ってきています。現在、頻繁に使用される漢字の数は 3,500 字程度ですが、一般的な日本人の語彙に使用される漢字はおよそ 2,000 字ほどです。ただし、コンピュータシステムは日本工業規格 (JIS) で定められた 7,000 字以上の漢字に対応しなければなりません。また、170 文字ほどのひらがなとカタカナも必要です。日本語の文章の平均的な文字別構成は、ひらがな 55%、漢字 35%、カタカナ 10% となっています。また日本語の文章にはアラビア数字やローマ字も使用されます。
文章に漢字を全く使用しないこともできますが、ほとんどの日本人にとって、そのような文章は理解が困難です。
韓国語テキストは、ハングルと呼ばれる表音文字で表されます。ハングルには、 jamos と呼ばれる母音と子音から成る 11,000 以上の文字があります。通常、韓国語のコンピュータシステムでは、全ハングル文字の内約 3,000 文字が使用されています。韓国語にはまた、ハンジャと呼ばれる中国の漢字から派生した表意文字があります。韓国語では 6,000 以上のハンジャ文字が必要です。ハンジャは主に、ハングルだけでは意味があいまいになる場合に使用されます。ハングル文字では子音と母音を組み合わせて 1 つの音節を構成します。結合された子音と母音は 1 つの音節としてハングル文字になります。ハングル文字は通常、四角く配列されており、ハンジャ文字と同じスペースを必要とします。韓国語では、アラビア数字、ローマ字、および特殊記号も表示されます。
タイ語の文字は、4 つの表示セルを持つディスプレイ上のカラム位置として定義されます。各カラム位置に表示できるのは最大 3 文字です。表示セルの構成内容はタイ文字の分類に基づいています。タイ文字の一部は、別の分類の文字と組み合わせることができます。組み合わされた文字は、同じセルに入ります。それ以外の場合は、別のセルに入ります。
中華人民共和国 (PRC) の場合、GB2312 (zh ロケール) には一般によく使用されている約 7,000 の漢字があり、GBK 文字セット (zh.GBK ロケール) には 20,000 以上の文字があり、GB18030-2000 文字セット (zh_CN.GB18030 ロケール) には約 30,000 の文字があります (Unicode 3.0 で定義されているすべての CJK 拡張 A 文字を含む)。
台湾では、CNS11643-1992 (zh_TW ロケール) と Big5 (zh_TW.BIG5 ロケール) 文字セットが最もよく使用されています。どちらのロケールにも約 13,000 の漢字が定義されています。
香港では、Big5 文字セットに 4702 文字が追加された Big5-HKSCS 文字セット (zh_HK.BIG5HK) が使用されています。
語幹文字でない限り、通常 1 つの文字は 2 つ以上の部分で形成されます。最も一般的なのは 2 つの部分で形成されるものです。2 つの部分で構成される文字では、1 つが意味を表し、もう 1 つは発音を表すのが普通です。しかし、両方とも意味を表すこともあります。漢字では部首が最も重要な要素です。漢字は伝統的に部首によって分類され、部首の数は数百にものぼります。異なる文字で同じ読み方をするものも多数ありますが、使用する際は明確に区別されます。同じ文字で異なる読み方をするものもあります。
中国語には四声と呼ばれる声調があり、文脈の中で適切な文字を音声によって区別します。一方、日本語と韓国語には声調はありません。
中国語の発音を表す表音体系にはいくつかの種類があります。中華人民共和国で最も普及しているのはピンイン方式です。これはローマ字を使用するもので、広く西部で採用されており、たとえば北京を Beijing と表します。ウェードガイル方式は旧式のもので、北京を Peking と表すなど地名の表現に以前は使用されていました。 台湾では、独特の字体を持った表音用のアルファベットである zhuyin (bopomofo) がよく使用されます。
スクリプトをヘブライ語やイディッシュ語で作成するときにヘブライ語のテキストが使用されます。ヘブライ語は双方向スクリプトを使用します。ヘブライ文字は右から左に読み書きされますが、数字は左から右に読まれます。さらに、ヘブライ語テキストに組み込まれた英語テキストも左から右に読まれます。
ヘブライ語では、27 文字のアルファベットのほかに、標準的なラテン (英語) アルファベットの句読点と数字が使用されます。ヘブライ語テキストには、さらに、母音と発音記号が付きます。これらの記号は、基本文字内のドット (dagesh) や、文字の下の母音記号、文字の左上のアクセント記号として使用されます。これらの記号は、通常、典礼のテキストとして使用されるだけで日常の生活ではほとんど使用されません。ヘブライ語には大文字はありません。
ヒンディー語のテキストは、神の書き物を意味するデーバナーガリーというスクリプトで使用されます。ヒンディー語は表音言語であり、一連の音節として書かれます。各音節は、3 種類の子音文字、独立母音、従属母音の記号であるアルファベット部分 (デーバナーガリー文字) から構成されます。音節自体は子音と母音のコア部分から構成され、その前に子音が付くこともあります。基線から始まる英語とは異なり、デーバナーガリー文字は、文字の上部に引かれた水平線 (頭なで線) から垂れ下がります。これらの文字は、内容に応じて結合したり、形を変えたりします。ヘブライ語と同じように、ヒンディー語テキストには、大文字と小文字の区別はありません。
U.S. キーボードにあるすべての文字がほかのキーボードにあるとは限りません。同様に、U.S. キーボードにはない文字のキーがほかのキーボードに付いている場合もあります。
入力は Solaris OS によって処理されるため、任意のロケールの文字を任意のキーボードから入力できます。
SPARC® マシンでは、Compose キーを使用すれば、区別的発音符が付いた任意のラテン文字を、サポートされる任意の ISO8859 文字セットの中に生成できます。Compose キーは、ラテンベースのロケールで使用できますが、韓国語、中国語、日本語ロケールでは UTF-8 ロケールを除き使用できません。
それぞれの国で一般的に使用される用紙サイズの数は多くはありません。しかも、そのうちの 1 つが他よりも頻繁に使用されます。ほとんどの国は、ISO 216 規格の「筆記用紙および印刷物の分類 - A 版と B 版の定型サイズ」に従っています。
国際化アプリケーションでは、使用可能なページサイズをあらかじめ想定するべきではありません。Solaris には、出力ページのサイズを管理する機能はありません。したがって、この機能は、アプリケーションプログラムで行う必要があります。次の表に、各国で一般に使用されているページサイズを示します。
表 1–8 一般的な国際ページサイズ
用紙の種類 |
寸法 |
採用している国 |
---|---|---|
ISO A4 |
21.0 cm x 29.7 cm |
米国以外 |
ISO A5 |
14.8 cm x 21.0 cm |
米国以外 |
JIS B4 |
25.9 cm x 36.65 cm |
日本 |
JIS B5 |
18.36 cm x 25.9 cm |
日本 |
米国 レター |
8.5 インチ × 11 インチ |
米国、カナダ |
US リーガル |
8.5 インチ × 14 インチ |
米国、カナダ |