Skip to main content

This is documentation for Caché & Ensemble. See the InterSystems IRIS version of this content.Opens in a new tab

For information on migrating to InterSystems IRISOpens in a new tab, see Why Migrate to InterSystems IRIS?

ローカライズのサポート

この章では、Caché のローカライズのサポートの概要を説明します。以下のトピックについて説明します。

Caché の Web ページを作成するツール (Zen ページおよび Caché Server Page) には、ページをローカライズできるオプションが用意されています。"Zen アプリケーションの開発" および "Caché Server Pages (CSP) の使用法" を参照してください。

はじめに

Caché はローカライズをサポートしています。これにより、アプリケーションを再設計せずに複数の国または複数の地域向けのアプリケーションを開発できます。Caché のローカライズ・モデルは、以下のように動作します。

  • Caché には、一連の定義済みロケールが用意されています。Caché のロケールとは、ユーザの言語、通貨記号、書式、および特定の国または地域に固有のその他の規約を指定するメタデータのセットです。この章の次のセクションで詳しく説明します。

    ロケールは、Caché データベースに書き込むときに使用する文字エンコードを指定します。また、他の文字エンコードとの間で文字変換を処理するために必要な情報も含まれます。

  • Caché サーバをインストールするときに、サーバの既定のロケールがインストーラによって設定されます。

    インストール後に既定のロケールを変更することはできませんが、必要に応じて、既定以外のロケールを使用するように指定できます。

  • 管理ポータルには、ブラウザ設定で固定の言語セットに指定されたローカル言語の文字列が表示されます。

  • Web ページにも、管理ポータルと同じメカニズムを使用してローカライズされた文字列を指定できます。

Caché のロケールと各国言語のサポート

Caché のロケールは、特定の国または地域に適用されるストレージと表示の規約を定義するメタデータのセットです。ロケールの定義には、以下が含まれます。

  • 数の形式

  • 日付と時刻の形式

  • 通貨記号

  • 文字のソート順

  • 標準 (ISO、Unicode、またはその他) によって定義される既定の文字セット (このロケールの文字エンコード)。

    Caché では、文字セット文字エンコードの語句を同義語として使用しますが、厳密には必ずしも同義ではありません。

  • 他のサポートされている文字セットとの間で文字を変換する変換テーブル (I/O テーブルとも呼ぶ) のセット。

    特定の文字セット (CP1250 など) の “変換テーブル” は、実際にはテーブルのペアです。1 つのテーブルは既定の文字セットを他言語文字セットに変換する方法を指定し、もう 1 つのテーブルは反対方向に変換する方法を指定します。Caché では、このテーブルのペアを 1 つの単位として参照して変換を実行します。

Caché は、各国言語サポート (NLS) という語句を使用して、ロケール定義とロケール定義を表示して拡張するために使用するツールを一括して示します。

管理ポータルには、既定のロケールを確認し、インストールされているロケールの詳細を表示してロケールを表示するページがあります。以下に例を示します。

generated description: locale details

このページを使用して、利用可能な変換テーブルの名前を確認することもできます。それらの名前は、Caché に固有のものです。(この章で後述するような場合には、これらのテーブルの名前を知っていることが必要になります。)

この管理ポータル・ページにアクセスして使用する方法の詳細は、"Caché システム管理ガイド" の “管理ポータルの NLS ページの使用法” を参照してください。

Caché には、一連のクラスも用意されています (%SYS.NLS パッケージおよび Config.NLS パッケージ内)。詳細は、"Caché 専用のシステム/ツールおよびユーティリティ" の "Caché システムのカスタマイズ" の章にある “各国言語サポートのシステム・クラス” を参照してください。

既定の入出力テーブル

ロケール定義の外側で、特定の Caché インスタンスは、入出力アクティビティに特定の変換テーブルを使用するように既定で構成されています。具体的には、次の各シナリオで既定の変換テーブルを使用するように指定されています。

  • Caché プロセスとの通信時

  • ターミナルとの通信時

  • 別のターミナルとの通信時

  • ファイルの読み取りおよび書き込み時

  • テープの読み取りおよび書き込み時

  • TCP/IPデバイスの読み取りおよび書き込み時

  • オペレーティング・システムにパラメータ (ファイル名やパスなど) として送信される文字列の読み取りおよび書き込み時

  • プリンタの読み取りおよび書き込み時

例えば、Caché から、パラメータ (ファイル名やパスなど) として文字列を受け取るオペレーティング・システム関数を呼び出す必要がある場合は、まず、呼び出し先の syscall に適した NLS 変換に文字列を渡します。この変換結果をオペレーティング・システムに送信します。

現在の既定値を確認するには、%SYS.NLS.TableOpens in a new tab を使用します。詳細は、クラス・リファレンスを参照してください。

ファイルと文字エンコード

データベースの外部にあるエンティティに対する読み取りまたは書き込みを行うときには、そのエンティティが Caché とは別の文字セット使用している可能性が常に存在します。最も一般的なシナリオは、ファイルの操作です。

最も低いレベルでは、Open コマンドを使用してファイルまたは他のデバイスを開きます。このコマンドは、文字をデバイス間で変換するときに使用する変換テーブルを指定したパラメータを受け入れることができます。詳細は、"Caché 入出力デバイス・ガイド" を参照してください。Caché は、必要に応じてそのテーブルを使用して文字を変換します。

同様に、オブジェクト・ベースのファイル API を使用する場合は、ファイルの TranslateTable プロパティを指定します。

(Ensemble のアダプタ・クラスには、他言語文字セットを指定するためのこれに代わるプロパティがあり、入力データとして想定している文字エンコード・システムおよび出力データで目的とする文字エンコードとして使用されます。この場合、インターシステムズでサポートしているセットから選択して標準の文字セット名を指定します。)

文字の手動変換

Caché の $ZCONVERT 関数を使用すると、文字を別の文字セットとの間で手動で変換できます。以下はその例です。

 IF $SYSTEM.Version.IsUnicode() {
   SET greek=$CHAR(945,946,947,913,914,915)
   WRITE $ZCONVERT(greek,"W")
   }
   ELSE {WRITE "This example requires a Unicode installation of Caché"}
FeedbackOpens in a new tab