JFP 開発ガイド

第 1 章 概要

この章では、マニュアルを読み進むにあたって必要な概念、または知っていると便利な概念について説明し、関連マニュアルを紹介します。

国際化プログラミング

国際化とは、単一のソフトウェアを最小限のコストで各地域向けに適応させるように設計・実装する手法のことです。国際化されたプログラムは、特定の国家・地域に依存しない共通の枠組みだけで実装され、次項で説明する「言語対応化」と呼ばれる作業を経て、容易に各地域に適合したソフトウェア製品となります。言語対応化とは、国際化されたプログラムに対して特定地域向けに固有の言語情報や文化情報を付加する作業のことです。

JFP ユーザーズガイド』の第 1 章では、Solaris における言語対応化の 1 つとして Japanese Feature Package (以降「JFP」と記述) がどのような日本語化機能を提供しているかを紹介しています。このマニュアルも併せて参照してください。

言語対応化と環境変数

言語対応化したソフトウェアを使用する場合、ユーザーは環境変数を設定します。これにより、ソフトウェアは、メッセージや日付、時刻などの情報を各地域・各文化に適合させて動作するようになります。環境変数を使用することで、ユーザーはソフトウェアの動作形式を制御できます。どのような環境変数が存在し、どのような制御ができるかについては、setlocale(3C)environ(5) のマニュアルページを参照してください。

標準への準拠

さまざまな標準化機関が国際化ソフトウェア開発のための仕様・ガイドラインを提供しています。このマニュアルで説明する実例は、基本的に X/Open で規定される CAE 仕様に準拠しています。なお、主として従来の Solaris リリースとの互換性を保つために、実際の動作が XPG で規定された仕様に厳密には従わない可能性があります。XPG での仕様に厳密に準拠した動作を行うアプリケーションを作成する場合は、standards(5) のマニュアルページに記載されている手順に従ってコンパイルとリンクを行う必要があります。各リリースに対応するXPG のバージョンについても、standards(5) のマニュアルページを参照してください。

文字集合とコードセット

言語対応化を行う際に、その地域で使用される文字集合を文字コードとして表現できるようにすることが重要です。しかし、日本をはじめとするアジア系の地域では、使用する文字数が多いので、すべての文字の文字コードを格納して表現するためには複数バイト必要です。Solaris 2.5 までは、Extended UNIX Code (以降「EUC」と記述) と呼ばれるコード体系を採用して、この問題を解決しています。EUC では最大 4 種の文字集合を取り扱うことができ、そのうちの 3 種には、複数バイトの文字集合を割り当てることができます。

JFP ユーザーズガイド』の第 2 章では、ja と ja_JP.eucJP ロケールにおける日本語 EUC の定義と文字集合について説明しています。

CSI

国際化の基礎となる文字コード体系に EUC を採用した場合、EUC 以外の文字コード体系を使って言語対応化することは、原則としてできません。この問題を解消するため、Solaris 2.5.1 以降のバージョンでは、システムから EUC に依存する部分を取り除き、 X/Open の仕様を基にした特定の文字コード体系に依存しない機構 (Code Set Independence。以降「CSI」と記述) を導入しました。CSI の下では、EUC も文字コード体系の 1 つとして扱われます。

CSI の導入に伴って、Solaris 2.5.1 からは「PCK」、Solaris 7 からは UTF-8 がサポートされるようになりました。

JFP ユーザーズガイド』の第 2 章では、ja_JP.PCK ロケール における PCK と、ja_JP.UTF-8 ロケールにおける UTF-8 の定義および文字集合について紹介しています。

日本語化プログラミングの移植性と利便性

Solaris では、大別して 2 種類の日本語ロケール情報が提供されています。1 つは、日本語固有の言語情報と文化情報です。これらは、国際化されたプログラムを支援する言語対応化の 1 つであり、標準化された国際化プログラミングの枠組みを介してアクセス可能です。この枠組みに従って処理を行う限り、アプリケーションの高い移植性を保ちながら日本語化を行うことができます。

Solaris で提供するもう1つの日本語ロケール情報は、国際化の枠組みの中で日本語化を補う付加的な情報です。これらを利用すると、日本語に固有の文字分類や文字対応などの処理が簡単に行える反面、同様の情報を持たない Solaris 以外の環境では、アプリケーションを実行できなくなる可能性があります。こうした付加的な情報を利用するインタフェースについては、第 3 章「日本語ロケールと文字分類」で紹介しています。