Oracle Solaris でのアプリケーションの国際化とローカライズ

印刷ビューの終了

更新: 2014 年 7 月
 
 

ロケールの関数

システムのロケールに関連する関数は次のとおりです。

setlocale()

プログラムのロケールを設定します

localelist()

インストールされているロケールを問い合わせます

localelistfree()

localelist() 呼び出しに関連付けられたメモリーを解放します

localelist() 関数は、システムにインストールされているロケールを問い合わせるために使用します。Oracle Solaris システムに追加のロケールをインストールする方法の詳細は、International Language Environments Guide for Oracle Solaris 11.2を参照してください。

詳細は、setlocale(3C)、 localelist(3C)、 localelistfree(3C)、 locale_alias(5)、 langinfo.h(3HEAD)、 nl_types.h(3HEAD)、および environ(5) のマニュアルページを参照してください。

使用例 2-1  プログラムのロケールの設定

次のコード抜粋部分は、ロケールを en_US.UTF-8 に設定する方法を示しています。

#include <locale.h>
      :
(void) setlocale(LC_ALL, "en_US.UTF-8");

注 -  ユーザー環境のロケール情報を使用する場合は、空の文字列 ("") を setlocale() 関数に対する引数として使用します。詳細は、setlocale(3C) および environ(5) のマニュアルページを参照してください。
使用例 2-2  プログラムのロケールの問い合わせ

次のコード抜粋部分は、現在のロケールを問い合わせる方法を示しています。

   
#include <locale.h>
      :
char *locale;
      :
locale = setlocale(LC_ALL, NULL);

この例では、locale 変数はプログラムの現在のロケールに設定されます。

使用例 2-3  ユーザー環境からのロケール設定の使用

次のコード抜粋部分は、ユーザー環境のロケール設定を使用するように env_locale 変数を設定する方法を示しています。

   
#include <locale.h>
      :
char *env_locale;
env_locale = setlocale(LC_ALL, "");

たとえば、ユーザー環境のロケールが es_ES.UTF-8 の場合、env_locale 変数は es_ES.UTF-8 に設定されます。


注 -  異なるロケールのカテゴリには異なる値が設定される (複合ロケール設定とも呼ばれる) 環境の場合、LC_ALL カテゴリを使用して setlocale 関数を呼び出すと、スラッシュ "/" で区切られた全カテゴリの値を含む文字列が返されます。例:
"/es_ES.UTF-8/es_ES.UTF-8/es_ES.UTF-8/es_ES.UTF-8/es_ES.UTF-8/de_DE.UTF-8"

この文字列には、LC_CTYPELC_NUMERICLC_TIMELC_COLLATELC_MONETARYLC_MESSAGES というカテゴリが含まれています。この LC_MESSAGES は環境内で de_DE.UTF-8 に設定されています。