Solaris 7 製品では、選択したロケールにおいて、ISO-10646 で定義されている Unicode 2.0 をサポートしています。Solaris 7 は、Sun の国際市場向けのメジャーリリーです。アジア向けの新機能が数多く含まれており、東ヨーロッパおよびバルト諸国の言語サポートを大幅に拡張しています。
対応言語の拡張
ユーロ通貨単位のサポート。為替業務、銀行業務、融資などを含む EC 加盟国の各業界団体では、各国の独自通貨からユーロへの使用通貨の移行が現在進行中です。Solaris 7 では、ユーロ通貨単位および 6 つの新しいユーザロケールのサポートが追加されました。
アジア版には、CDE アプリケーションの追加による CTL (Complex Text Layout) のサポート。複雑なテキストの処理機能が統合され、特殊なテキスト前処理を必要とする複雑なテキストレイアウト言語がサポートされたことにより、双方向、複合、およびコンテキスト型テキストの取り扱いが可能になりました。
Solaris 7 は、新しい 5 つの Motif ウィジェットを含む Motif 2.1 をサポートします。Motif 2.1 はマルチスレッドに対して安全で、CTL ロケールのサポート用ソフトウェアを含みます。
中華人民共和国向け中国語簡体字用の zh.GBK ロケール。 この機能は、zh ロケールで使用されている GB2312 のスーパーセットである、GBK 文字セットをサポートしています。
英語およびヨーロッパ各言語版の Solaris 7 動作環境を一枚の CD-ROM に収録。この複合 CD-ROM をインストールする場合に利用可能なロケールの選択肢が広がりました。
Desktop Font Downloader による PostScript プリンタの操作。フォントのダウンロード、削除、再符号化、および変換、プリンタのステータスチェック、その他の管理タスクを実行できます。
各国語対応 (localization) とはソフトウェアを特定の言語や地域に適応させる処理であるのに対し、国際化とはソフトウェアを異なる言語や地域の間で移植可能にする処理のことを指します。国際化ソフトウェアは、特定の文化の要件に応じて実行時にプログラムの動作を変化させるインタフェースを使用して開発します。各国語対応には、「ロケール」と呼ばれる言語や地域をサポートするためのオンライン情報を確立する処理が含まれます。
異なる言語や慣習に従って動作させるために完全に書き直す必要のあるソフトウェアとは異なり、国際化されたソフトウェアはそのような作業を必要としません。あるロケールから別のロケールへそのまま移植できます。Solaris システムは国際化に対応しており、国際化ソフトウェアを作成する際に必要な基本構造やインタフェースを備えています。第 3 章「言語対応された Solaris 7 製品の内容」および第 4 章「en_US.UTF-8 ロケールのサポートの概要」で、使用可能な機能とその使用方法について説明します。
国際化はソフトウェアを任意のロケールに依存しないようにする処理です。国際化されたソフトウェアは特定のロケールに容易に適応させることができます。
Solaris 7 動作環境には、言語対応された次の製品があります。
国際化されたアプリケーションの実行可能イメージは、異なる言語や地域の間で共有することができます。ソフトウェアを国際化する手順を次に示します。
このマニュアルに記載されているインタフェースを使用して、再コンパイルしなくても異なる環境に動的に対応できるソフトウェアを作成します。
ソフトウェアを実行可能イメージとメッセージに分離します。メッセージには、操作中に印刷または表示されるすべてのメッセージが含まれます。メッセージ文字列はメッセージカタログに格納します。
メッセージ文字列は、言語や地域に合わせて翻訳します。ロケールには、メッセージ文字列やソートで使用される手続きなどが含まれます。
ロケールは言語と同じではありません。言語には複数の地域が含まれる場合があります。たとえば、フランス語はフランスおよびカナダで話されていますが、通貨や時間の表示方法は各国で異なります。
ある製品の言語対応されたバージョンを使用する場合、ユーザーは環境変数 (「ロケールのカテゴリ」を参照) を設定します。これにより、ユーザーメッセージは翻訳された形式で表示されます。日付、時刻、通貨、およびその他の情報は、ロケール固有の規約に従ってフォーマットおよび表示されます。
ロケールは、基礎になる言語と使用地域の両方の情報に基づいて構成できます。これら両方を考慮することにより、通貨単位など国ごとに異なる項目を反映させることができます。
アプリケーションプログラムの国際化にとって重要な概念に、プログラムのロケールの概念があります。ロケールは言語環境を示す明示的なモデルであり、定義でもあります。ロケールの概念は明示的に定義されており、ANSI 標準 C のライブラリ定義の中にも組み込まれています。
ロケールは、言語固有の書式やその他の仕様による、いくつかのカテゴリで構成されています。プログラムのロケールは、コードセットや、日付および時間の表記規則、通貨の表記規則、小数の表記規則、照合 (ソート) の順序などを決定します。
ロケール名は言語と地域から成り立っており、コードセットが含まれる場合もあります。なお、地域は不要な場合には省略され、コードセットは通常推定されます。たとえば、ドイツ語は Deutch の略で de、スイス (ドイツ) 語は de_CH (CH は Confederation Helvetica の略) となっています。
言語によっては複数のロケールを持つものもあります。これらの言語では、通貨の表記などが地域によって異なることがあります。たとえば、アメリカ英語を使う場合は en_US ロケール (アメリカ英語) を、イギリス英語を使う場合は en_GB (イギリス英語) を選択できます。
通常、ロケール名は環境変数 LANG で指定します。ロケールのカテゴリは LANG に依存しますが、別に設定することも可能です。この場合、ロケールのカテゴリは LANG の設定に優先します。LC_ALL が設定されている場合、LC_ALL の設定は LANG だけでなく、ロケールの個別のカテゴリに優先されます。
Solaris の完全ロケールは、列挙された機能をすべて備え、システムメッセージはその言語に言語対応されます。ドイツ語の de ロケールは完全ロケールです。ドイツ語版のシステムメッセージはすべてドイツ語で表示されます。
部分ロケールは列挙された機能を備えていますが、メッセージは言語対応されません。ロシア語の ru ロケールでは、入力、出力、ソートなどは処理されますが、メッセージはロシア語に言語対応されません。このため部分ロケールと呼ばれます。
すべての部分ロケールが英語のメッセージを使用するわけではありません。これは、必要とする言語対応されたメッセージが他の完全ロケールに含まれることがあるからです。たとえば、de_AT はオーストリアの部分ロケールです。オーストリアではドイツ語が話されますが、通貨は異なります。オーストリアのロケールは、ドイツ語の de ロケールのサブセットです。de_AT ロケールはメッセージをドイツ語で表示し、通貨をドイツマルクではなくオーストリアシリングで表示します。
文化が異なると、日付、時間、数値、通貨、語句の区切り、引用符などの表記も異なります。
ロケールは、言語や文化的な地域の規則に従って実行時のプログラムの動作を定義します。システム全体では、ロケールは次の動作を指定します。
テキストデータの符号化方式および処理
言語の識別およびリソースファイルとテキスト値の符号化方式
テキスト文字列の描画および配置
クライアント間のテキスト通信で使用されるテキストの相互変換
クライアント間のテキスト通信の符号化および複合化
入力方式 (つまり、生成されるコードセット) の選択およびテキストデータの処理
文化的に固有なフォントおよびアイコンファイル
処理およびファイル形式
ユーザーインタフェース定義 (UID) ファイル
日付および時間の形式
数値の形式
通貨の形式
照合の順序
情報および診断メッセージと対話形式の応答の形式
Solaris 環境は、言語と文化に依存する情報をアプリケーションから分離し、アプリケーションとは別に保存します。
言語と文化に依存する情報をアプリケーションから分離することにより、開発者は各市場に合わせて、アプリケーションを翻訳、書き直し、または再コンパイルする必要はありません。新規市場に参入するには、各言語および慣習に合わせて外部情報を言語対応するだけで済みます。
以下にロケールのカテゴリを示します。
通貨形式を指定します。SunOS のコマンドやライブラリルーチンで実際にこのカテゴリを使用するものはほとんどありません。
言語のレンダリングに関する情報を提供する、言語エンジンを指定します。言語のレンダリング (またはテキストのレンダリング) は、テキストのシェイピングと方向設定から成ります。
製品の各国語対応は、対象となる言語や地域に密着したユーザーとともに進める必要があります。特定のスタイルや情報の形式が、開発者にとっては非常に明確であり、普遍的に見える場合でも、実際のユーザーにとっては奇妙であったり、正しくなかったり、状況によっては不快感を与えることもあります。ここでは、製品を正しく国際化するために、Solaris オペレーティング環境により制御および指定できる各要素について説明します。
表 1-1 に、午後 11 時 59 分を表すいくつかの方法を示します。
表 1-1 国際的な時間の表記形式
ロケール |
表記形式 |
---|---|
カナダ (英語またはフランス語) |
23:59 |
フィンランド語 |
23.59 |
ドイツ語 |
23.59 Uhr |
ノルウェー語 |
Kl 23.59 |
イギリス英語 |
11.59 PM |
タイ語 |
13:10 PM |
時間は、12 時間単位および 24 時間単位のどちらでも表すことができます。時間と分はコロン (:) またはピリオド (.) で区切ります。
国が異なる場合、または国によっては国内でも時間帯が異なることがあります。時間帯は通常、グリニッジ標準時 (GMT) との時差で表現されますが、この時差は必ずしも整数であるとは限りません。たとえば、ニューファンドランド島の時間帯と隣接する時間帯との時差は 0.5 時間です。
表 1-2 は世界中で使用されている日付の表示形式の一部を示しています。ただし、各国内でもさまざまな形式がある場合もあります。
表 1-2 国際的な日付の表記形式
ロケール |
表記 |
例 |
---|---|---|
カナダ (英語およびフランス語) |
yyyy-mm-dd |
1998-08-13 |
デンマーク語 |
dd/mm/yy |
13/08/98 |
フィンランド語 |
dd.mm.yyyy |
13.08.1998 |
フランス語 |
dd/mm/yy |
13/08/98 |
ドイツ語 |
dd.mm.yy |
13.08.98 |
イタリア語 |
dd.mm.yy |
13.08.98 |
ノルウェー語 |
dd.mm.yy |
13.08.98 |
スペイン語 |
dd-mm-yy |
13-08-98 |
スウェーデン語 |
yyyy-mm-dd |
1998-08-13 |
イギリス英語 |
dd/mm/yy |
13/08/98 |
アメリカ英語 |
mm-dd-yy |
08-13-98 |
タイ語 |
dd/mm/yyyy |
10/12/2539 |
イギリスと米国では小数位を表すのにピリオドを使用しますが、その他の多くの国々ではピリオドの代わりにコンマを使用しています。小数位の区切り文字は小数点とも呼ばれます。同様に、イギリスと米国では千単位をコンマで区切るのに対し、他の国々では代わりにピリオドを用いたり、狭い空白文字で区切ったりしています。表 1-3 に、一般的な数値の表記形式を示します。
表 1-3 国際的な数値の表記形式
ロケール |
大きな数値の表記 |
---|---|
カナダ (英語およびフランス語) |
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 |
ノルウェー語 |
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-4 にいくつかの国の通貨形式を示します。
表 1-4 国際的な通貨の表記規則
ロケール |
通貨 |
例 |
---|---|---|
カナダ (英語) |
ドル ($) |
$1 234.56 |
カナダ (フランス語) |
ドル ($) |
1 234.56$ |
デンマーク語 |
クローネ (kr) |
kr.1.234,56 |
フィンランド語 |
マルッカ (mk) |
1.234 mk |
フランス語 |
フラン (F) |
F1.234,56 |
ドイツ語 |
ドイツマルク (DM) |
1,234.56DM |
イタリア語 |
リラ (L) |
L1.234,56 |
日本語 |
41,234 Yen |
|
ノルウェー語 |
クローネ (kr) |
kr 1.234,56 |
スペイン語 |
ペセタ (Pts) |
1.234,56Pts |
スウェーデン語 |
クローナ (Kr) |
1234.56KR |
イギリス英語 |
ポンド |
31,234.56 pounds |
アメリカ英語 |
ドル ($) |
$1,234.56 |
タイ語 |
バーツ |
2539 Baht |
国内での通貨記号と国際的に使われる通貨記号が異なっている場合があります。たとえば、フランスの通貨フランはフランス国内では F で示しますが、国際的にはスイスフランやポリネシアフランと区別するために FRF と表記される場合があります。
また、通貨を他の通貨に換算すると、金額の桁数が元の桁数と異なる場合があるので注意が必要です。たとえば、$1,000 をリラに換算すると L1.307.000 になります。
英語では、語は空白文字で区切ります。ただし、中国語、日本語、タイ語などの言語では多くの場合、語を区切りません。
言語によって、句や文の中での単語の順序は変化します。たとえば、英語の「a black cat」という句と同じ意味の句をスペイン語で表すと、「cat」と「black」を現す単語の順番が逆になり、uno gato negro と書きます。また、フランス語の否定文では、否定する語を否定語の ne と pas で囲むので、英語の I do not speak に相当するフランス語は Je ne parle pas となります。
特定の文字をソートする順序は言語によって異なります。たとえば、ドイツ語の文字 o は普通の o と一緒にソートされますが、スウェーデン語ではアルファベットの最後の文字として別にソートされます。言語によっては、文字の優先順位を決めるために重みが定められています。たとえば、タイ語の辞書では、文字に異なる重みを与えることによってソート順序が決定されます。
英語のアルファベットは 26 文字しかありませんが、256 以上の文字を使用する言語もあります。たとえば、日本語には 40,000 以上の文字があり、中国語にはそれ以上の文字があります。
西ヨーロッパ諸国のほとんどのアルファベットは英語圏の国で使用される 26 文字の標準アルファベットに類似しています。ただし、基本的な文字が追加されていたり、記号 (またはアクセント) の付いた文字や合字が使用される場合もあります。
日本語の文章には 3 種類の文字が混在しています。中国の漢字に由来する表意文字である漢字と、ひらがなとカタカナという 2 つの表音文字 (音節文字) です。
ひらがなとカタカナはそれぞれ対になっていますが、ひらがなのほうがより一般的で、丸みのある形をしています。漢字は語幹となる語を書くのに使用され、カタカナは主に外来語を書き記すのに使用されます。
漢字の数は数万もありますが、使用される漢字の数は徐々に減ってきています。現在、頻繁に使用される漢字の数は 3500 字程度ですが、一般的な日本人の語彙に使用される漢字はおよそ 2000 字ほどです。ただし、コンピュータシステムは日本工業規格 (JIS) で定められた 7000 字以上の漢字に対応しなければなりません。また、170 文字ほどのひらがなとカタカナも必要です。日本語の文章の平均的な文字別構成は、ひらがな 55%、漢字 35%、カタカナ 10% となっています。また日本語の文章にはアラビア数字やローマ字も使用されます。
漢字をまったく使用しないことも可能ですが、ほとんどの日本人にとっては漢字かな混じり文のほうが容易に理解できます。
韓国語は、ハングルと呼ばれる表音文字で表されます。ハングルには 11,000 以上の文字があり、19 の子音と 21 の母音で構成されます。これ以外に、27 のオプションの子音があります。通常、韓国語のコンピュータシステムでは、全ハングル文字の内約 3,000 文字が使用されています。韓国語にはまた、ハンジャと呼ばれる中国の漢字から派生した表意文字があります。韓国語では 6,000 以上のハンジャ文字が必要です。ハンジャは主に、ハングルだけでは意味があいまいになる場合に使用されます。ハングル文字では子音と母音を組み合わせて 1 つの音節を構成します。ハングル文字は通常、四角く配列されており、ハンジャ文字と同じスペースを必要とします。韓国語では、アラビア数字、ローマ字、および特殊記号も表示されます。
タイ語の文字は、4 つの表示セルを持つディスプレイ上のカラム位置として定義されます。各カラム位置に表示できるのは最大 3 文字です。表示セルの構成内容はタイ文字の分類に基づいています。タイ文字の一部は、別の分類の文字と組み合わせることができます。組み合わされた文字は、同じセルに入ります。それ以外の場合は、別のセルに入ります。
中国語は通常、表意文字である漢字ですべてを表記します。中華人民共和国 (PRC) では、GB2312 (zh ロケール) にある約 7,000 の漢字が一般的に使用されており、この他にも GBK (zh.GBK ロケールにある 20,000 を超える文字があります。中華民国 (ROC/台湾) では、現在の規格で必要とされる漢字の数は 13,000 文字以上で、さらに 6,000 の漢字が最近規格化されましたが、頻繁に使用されることはありません。
語幹文字でない限り、通常 1 つの文字は 2 つ以上の部分で形成されます。最も一般的なのは 2 つの部分で形成されるものです。2 つの部分で構成される文字では、1 つが意味を表し、もう 1 つは発音を表すのが普通ですが、両方とも意味を表すこともあります。漢字では部首が最も重要な要素です。漢字は伝統的に部首によって分類され、部首の数は数百にものぼります。異なる文字で同じ読み方をするものも多数ありますが、使用する際は明確に区別されます。同じ文字で異なる読み方をするものもあります。
中国語には四声と呼ばれる声調があり、文脈の中で適切な文字を音声によって区別します。一方、日本語と韓国語には声調はありません。
中国語の発音を表す表音体系にはいくつかの種類があります。中華人民共和国で最も普及しているのはピンイン方式です。これはローマ字を使用するもので、広く西部で採用されており、たとえば北京を Beijing と表します。ウェードガイル方式は旧式のもので、北京を Peking と表すなど地名の表現に以前は使用されていました。台湾では、独特の字体を持った表音用のアルファベットである zhuyin (bopomofo) がよく使用されています。
商用アプリケーション、特に人名を扱うアプリケーションでは、コードセットの拡張の影響を考慮する必要があります。中国の多くの人々は、標準コードセットには存在しない文字を含む名前を持っています。この問題に対応するために、割り当てられていないコードセット用に、スペースを提供する必要があります。
U.S. キーボードにあるすべての文字が他のキーボードにあるとは限りません。同様に、U.S. キーボードにはない文字のキーが他のキーボードに付いている場合もあります。ただし、SPARC マシンで Compose キーを使用すると、ISO Latin-1 コードセットをサポートするキーボードでれば ISO Latin-1 の任意の文字を生成できます。
Compose キーは、英語およびヨーロッパ言語ロケールで使用できますが、韓国語、中国語、および日本語ロケールでは使用できません。
言語によっては句読点の位置や形状が異なる場合があります。スペイン語の や ! は文の先頭に位置します。また、フィンランド語ではコロン (:) を単語内で使用することもあります。
ある文化では日常的に使用されるシンボルでも、他の文化では何の意味も持たない場合があります。たとえば、米国の郊外でよく見かける郵便受けは他の国にはあまり存在しないので、世界中で通用する電子メールツールのアイコンとしては適していません。
ほとんどの国では現在メートル法を採用していますが、米国、カナダの一部、および (非公式ですが) イギリスでは現在も大英帝国時代の方式を使用しています。フィート (`) やインチ (") を表す記号が、すべての国で通用するわけではありません。
言語の中には、形容詞や、冠詞、名詞を性によって区別するものがあります。たとえば、フランス語の un petit gamin と une petite gamine はどちらも「小さな子」という意味ですが、初めの表現は男の子を示し、次の表現は女の子を示します。また、英語では中性のもの (たとえば a computer) が、別の言語では性を持つ場合があります (フランス語の un ordinateur は男性名詞です)。
Mr.、Miss、Mrs.、および Ms. などの敬称は米国では一般的ですが、他の国ではあまり使用されません。また、住所を書く順序も異なります。
住所の表記方法も国によって異なります。郵便番号に数字だけでなく文字も使用する国も多数あります。
住所を書く順序や姓と名を書く順序も国によって異なります。
各国にはよく使用される紙のサイズがいくつかあり、通常はそのうちの 1 つが頻繁に使用されます。ほとんどの国は ISO 216 規格の「筆記用紙および印刷物の分類 -- A 版と B 版の定型サイズ」に従っています。
国際化アプリケーションでは、使用可能なページサイズをあらかじめ想定するべきではありません。Solaris には出力のページサイズを保持する機能はなく、これはアプリケーションプログラムが行わなければなりません。表 1-5 に一般的な国際ページサイズを示します。
表 1-5 一般的な国際ページサイズ
用紙の種類 |
寸法 |
採用している国 |
---|---|---|
ISO A4 |
21.0 cm by 29.7 cm |
米国以外 |
ISO A5 |
14.8 cm by 21.0 cm |
米国以外 |
JIS B4 |
25.9 cm by 36.65 cm |
日本 |
JIS B5 |
18.36 cm by 25.9 cm |
日本 |
US レター |
8.5 インチ * 11 インチ |
米国、カナダ |
US リーガル |
8.5 インチ * 14 インチ |
米国、カナダ |
『Creating Worldwide Software』(第 2 版、Bill Tuthill、David A. Smallberg 共著、SunSoft Press、1997 年) は、Solaris プラットフォームでの各国語対応の手引きです。Solaris システムで作業をしている開発者にはこの本を推奨します。その他の参考マニュアルについては、「関連マニュアル」を参照してください。
『Creating Worldwide Software』は、世界的な UNIX プラットフォーム、特に Sun の Solaris システム用の製品を開発する開発者や管理者を対象としています。
第 1 章「Winnning in Global Markets」 製品を国際化することによる潜在的な市場を示し、国際化と各国語対応の手順を定義しています。
第 2 章「Understanding Linguistic and Cultural Differences」 ある事柄が文化によってどのように表されるかについての例を示しています。
第 3 章「Encoding Character Sets」 任意の言語の文字集合をコード化する方法を説明しています。
第 4 章「Establishing Your Locale Environment」 ロケールの選択方法を説明しています。日付、時間、通貨の形式など、製品に固有のロケールを作成する手順を示しています。
第 5 章「Messaging for Program Translation」 製品において言語対応されたメッセージを扱う方法について説明しています。翻訳されたメッセージカタログを作成およびインストールする方法を示しています。
第 6 章「Displaying Localized Text」 フォント、ユーザーインタフェース、および印刷の問題について説明しています。
第 7 章「Handling Language Input」 さまざまな言語の入力方式について説明しています。
第 8 章「Working with CDE」 CDE 環境と各国語対応について説明しています。
第 9 章「Motif Programming」 Motif および CDE 環境でアプリケーションを作成する方法について説明しています
第 10 章「X11 Programming」 X11 の国際化について説明しています。
第 11 章「Communicating Network Data」 データの共有およびネットワーク上での分散について説明しています。
第 12 章「Writing International Documentation」 マニュアルの作成および翻訳のガイドラインを示しています。
第 13 章「Product Localization」 ビジネスの問題を説明しています。
第 14 章「Standards Organizations」 国際規格に関連する組織の概要を示しています。
第 15 章「Internationalization Checklist」 国際化のチェックリストが示されています。
付録 A「Languages, Territories, and Locale Names」 言語、ロケールなどの標準的な名前がリストされています。
付録 B「Locale Summaries and Keyboard Layouts」 ロケール固有の情報とキー配列が記載されています。
付録 C「OpenWindows and DevGuide」 OpenWindows での国際化の方法について説明しています。
付録 D「XView Programming」 XView の国際化について説明しています。
付録 E「OLIT Programming」 OPENLOOK Intrinsics Toolkit (OLIT) の国際化について説明しています。
付録 F「Example Program」 国際化された Motif アプリケーションの完全なサンプルコードを示しています。
付録 G「Annotated Bibliography」 関連マニュアルをまとめています。
付録 H「Glossary」 重要な用語をリストしています。