Oracle® Solaris 11.2 国際化対応言語環境の利用ガイド

印刷ビューの終了

更新: 2014 年 7 月
 
 

システムロケールを基にした新しいロケールの作成

既存のロケールをカスタマイズして、そこから新しいロケールを作成するには、少なくとも 3 つのロケール定義ソースファイルを準備する必要があります。

  • localedef ソースファイル – ロケールに必要な定義が含まれます。

  • charmap ソースファイル – コードポイント値と判読可能なシンボリック名との間のマッピングが含まれています。シンボリック名は、localedef ソースファイルで使用されます。charmap ソースファイルには、ロケールのコードセット名、ロケールのコードポイントで表すことができる最大バイト数などの、その他の定義も含まれます。

  • extension ソースファイル – strcoll(3C) および fgetwc(3C) などの標準インタフェースの内部ロケール方式へのマッピングと、ロケールの適切な処理のために必要なその他の情報が含まれます。

システム提供のロケールには、それぞれのロケール定義データファイルがあり、source/locale/localedef パッケージから入手できます。これらは、既存のシステムロケールにわずかな変更だけが必要なときに、便利な場合があります。

カスタムロケールを作成する方法

  1. 次のコマンドを入力して、必要なパッケージをインストールします。
    $ sudo pkg install system/header source/locale/localedef
  2. 必ず PATH に Oracle Solaris Studio C コンパイラを指定します。
    $ export PATH=<oracle-studio-path>/bin:$PATH
  3. 次のコマンドを使用して、ワークスペースを準備します。
    $ mkdir mynewlocale
    $ cd mynewlocale 
    $ mkdir amd64 
    $ cp /usr/lib/locale/common/methods_unicode.so.3 . 
    $ cp /usr/lib/locale/common/amd64/methods_unicode.so.3 amd64/ 
    $ cp /usr/lib/localedef/src/charmaps/UTF-8.charmap \
    /usr/lib/localedef/src/extensions/UTF-8.x \
    /usr/lib/localedef/src/locales/fr_FR.UTF-8.src .
  4. 必要に応じて、localedefcharmap、または extension ソースファイルに変更を加えます。
  5. 64 ビットのロケールオブジェクトを構築します。
    $ localedef -m lp64 -f UTF-8.charmap -x UTF-8.x -i fr_FR.UTF-8.src \
    -L "-R\\\$ORIGIN/../../common/amd64 -Bdirect -M /usr/lib/ld/map.pagealign \
    -M /usr/lib/ld/map.noexdata" fr_FR.UTF-8@custom
    $ mv fr_FR.UTF-8@custom.so.3 amd64/
  6. 32 ビットのロケールオブジェクトを構築します。
    $ localedef -m ilp32 -f UTF-8.charmap -x UTF-8.x -i fr_FR.UTF-8.src \
    -L "-R\\\$ORIGIN/../common" fr_FR.UTF-8@custom
  7. カスタムロケールをインストールします。
    $ sudo mkdir -p /usr/lib/locale/fr_FR.UTF-8\@custom/amd64 
    $ sudo cp fr_FR.UTF-8\@custom.so.3 /usr/lib/locale/fr_FR.UTF-8\@custom/ 
    $ sudo cp amd64/fr_FR.UTF-8\@custom.so.3 /usr/lib/locale/fr_FR.UTF-8\@custom/amd64/
  8. このロケールを使用して起動するには、次のコマンドを入力します。
    $ export LANG=fr_FR.UTF-8@custom