国際化/ローカライゼーションの言語プロパティ

Wrapper バージョン 3.5.0 から、 コードベースが国際化され、それ故に、ローカライズが可能になりました。 他の言語で自分のアプリケーションを動作させるには、(ご利用の OS がその言語をサポートしている場合)、 このページを読んでください。

注意

コンフィギュレーションがリロードされても、そのプロパティの値の変更は Wrapper に反映されません。 変更を反映させるには Wrapper を再起動する必要があります。

wrapper.lang プロパティ

対応バージョン :3.5.0
対応エディション :プロフェッショナル版スタンダード版コミュニティー版 (未対応)
対応プラットフォーム :WindowsMac OSXLinuxIBM AIXFreeBSDHP-UXSolarisIBM z/Linux

このプロパティは、Wrapper の出力の言語を指定します。

Windows 上では、値はインストールされている言語でなければなりません。 マイクロソフト社のウェブサイトでサポートされている言語の一覧(英語)を参照してください。 短い記法(言語タグ)が推奨され、Unix システムとの相互互換性のために「-」の代わりに 「_」を使用して記述することができます。

注意

Unix との互換性のため、「en_GB」(あるいは en-GB」のエイリアスとして、「en_UK」値が追加されました。

UNIX システム上では、この値は、インストールされたロケール(地域)の有効な部分 「language[_territory]」でなければなりません。

UNIX システム上で、インストール済みで有効なロケール(地域)にするには、「locale -a」を実行してください。

設定例:
locale -a
C
de_AT.utf8
de_BE.utf8
de_CH.utf8
de_DE.utf8
de_DE@euro
de_DE.iso885915@euro
de_LI.utf8
de_LU.utf8
en_AG
en_AU.utf8
en_BW.utf8
en_CA.utf8
en_DK.utf8
en_GB.utf8
en_HK.utf8
en_IE.utf8
en_IN
en_NG
en_NZ.utf8
en_PH.utf8
en_SG.utf8
en_US.utf8
en_ZA.utf8
en_ZW.utf8
ja_JP.eucjp
ja_JP.shiftjis
ja_JP.utf8
POSIX

注意

もし、希望の言語のロケールが一覧に入っていない場合、Wrapper のローカライゼーション機能を利用する前にインストールをする必要があります。 Linux では、「locale-gen」コマンドで設定できます。

このプロパティに「language[_territory]」(言語や地域)の略語を設定さえすればいいのです。 [wrapper.lang.windows.encoding]、或いは[wrapper.lang.unix.encoding]プロパティにエンコードが設定されます。

設定例:(言語を日本語に設定する)
wrapper.lang=ja_JP

Wrapper バージョン 3.5.28 より、[wrapper.lang]プロパティは次の値で設定できます。

  • [DESKTOP] : ユーザーインターフェイス(UI)用。
  • [SYSTEM] : システム言語(一般に呼ばれる[非 Unicode プログラム用の言語])用。

Windows でのデフォルト値は DESKTOP です。Wrapper バージョン 3.5.28 以前は、言語は, 言語はリージョンフォーマット設定の言語識別子で解決していました。

UNIX システムでは、[DESKTOP]も[SYSTEM]も、両方デフォルト値とされ、現在のセッションの言語に解決されます。

警告

DESKTOP」と「SYSTEM」は、[wrapper.lang.windows.encoding]が 、 「ANSI」(デフォルト)、「OEM」 または 「UTF-8」 に設定されている場合にのみ使用できます。 詳しくは、[wrapper.lang.windows.encoding] の詳細をご覧ください。

バージョン 3.5.31 より、システム内にインストールされている言語に完全一致が見つからなかった場合、Wrapper は別の大文字や小文字を使って検索するようになりました。(例えば、[ja_JP]の代わりに[JA_JP]で検索等) これは、プラットフォームによって大文字や小文字が同じ言語で使われているため、 ポータビリティーを改善するためにしています。 一つのサーバーのみで動作している場合は、「locale」コマンドによって返された 値をその通りに設定するようにお勧めします。

言語の後に修飾子(例えば、@euro)を指定することもできます。 もし、wrapper.lang.encoding も指している場合、修飾子は、ロケールを設定する時に自動的にエンコーディングの後に追加されます。 Wrapper は、完全一致が見つからない場合は、修飾子を無視してロケール間でも検索しますので、 通常は修飾子を追加する必要はありません。

wrapper.lang.encoding プロパティ

対応バージョン :3.5.0(3.5.35 で非推奨)
対応エディション :プロフェッショナル版スタンダード版コミュニティー版 (未対応)
対応プラットフォーム :Windows (未対応)Mac OSXLinuxIBM AIXFreeBSDHP-UXSolarisIBM z/Linux

警告

このプロパティの使用は、[Wrapper バージョン 3.5.35]で非推奨になり、その代わりに[wrapper.lang.windows.encoding]や[wrapper.lang.unix.encoding]プロパティが追加され、Windows と Unix の値を同じコンフィギュレーションファイルで使用できるようになりました。

このプロパティには、JVM 出力の読み出しやログ出力に書き込みに使用される Wrapper プロセスのエンコーディングを設定します。 選択されたエンコーディングを利用をするためには、OS にインストールされていなければなりません。 Wrapper がエンコーディングを設定できない場合、Wrapper が起動された環境のエンコーディングへ戻します。

wrapper.lang.<platform>.encoding プロパティ

対応バージョン :3.5.35
対応エディション :プロフェッショナル版スタンダード版コミュニティー版 (未対応)
対応プラットフォーム :WindowsMac OSXLinuxIBM AIXFreeBSDHP-UXSolarisIBM z/Linux

このプロパティのセットはバージョン 3.5.35 に導入され、(JVM 出力の読み出しやログ出力を書き込みに使われている)Wrapper プロセスのエンコーディングをクロスプラットフォームに利用できるように設定します。

Unix システムはエンコーディングに同じ構文を使用することが多いが、Windows では名前の代わりに コードページが使用されます。 Wrapper を両プラットフォームで作動する場合、[wrapper.lang.unix.encoding] や [wrapper.lang.windows.encoding]、 各プラットフォームのエンコーディングを設定するために、 両方をコンフィギュレーションファイルに含むことが出来ます。

Unix システムはエンコーディングに同じ構文を使用する事が多いです。 場合によって句読記号や大小文字が異なります(例えば、[UTF-8]や[utf8])が、Wrapper は、完全一致が見つからない場合、自動的にそれを解決します。 しかし、OS によってプラットフォーム専用の名前を使用しますので、 そのエンコーディングを専用のプロパティで設定すると便利です。 これは、次に記載されている各プラットフォームを使用すると可能です。 もし、Unix 用のプロパティが指定されていない場合、デフォルト値は wrapper.lang.unix.encoding の値に設定されます。

<platform>(プラットフォーム)のサポートされている値は:

設定例: エンコーディングを eucJP に設定 (Windows で[20932]、AIX で[IBM-eucJP])
wrapper.lang=ja_JP
wrapper.lang.windows.encoding=20932
wrapper.lang.unix.encoding=eucJP
wrapper.lang.aix.encoding=IBM-eucJP

注意

Wrapper バージョン 3.5.35 より、wrapper.jvm.encoding プロパティは、JVM のデフォルトエンコーディングを Wrapper が利用するエンコーディングと異なるエンコーディングを設定することが出来ます。三つのコンフィギュレーションが可能です。

- もし wrapper.lang.*.encoding は設定されていない場合、Wrapper は JVM の出力を読み込むために、環境エンコーディングを利用する、また、存在している場合、JVM の引数に使用されているエンコーディングを利用します。

- もし wrapper.lang.*.encoding は、環境と異なる値に設定されている場合、Wrapper は JVM の出力を読み込む時にそれを使用し、JVM のデフォルトエンコーディングも同じ値に設定します。

- もし、wrapper.lang.*.encoding も wrapper.jvm.encoding も両方指定されている場合、Wrapper は、最初のプロパティの値を使用し、JVM 出力を読込も、JVM のデフォルトエンコーディングを wrapper.jvm.encoding の値に設定します。 これは、システムプロパティを受信できる、最近の JVM を、スタンダード出力をデフォルトエンコーディングと異なる値に設定しなければなりません。 (wrapper.jvm.encoding の詳細をご覧ください)。

wrapper.lang.windows.encoding プロパティ

対応バージョン :3.5.35
対応エディション :プロフェッショナル版スタンダード版コミュニティー版 (未対応)
対応プラットフォーム :WindowsMac OSX (未対応)Linux (未対応)IBM AIX (未対応)FreeBSD (未対応)HP-UX (未対応)Solaris (未対応)IBM z/Linux (未対応)

このプロパティは、3.5.35 バージョンで導入され、Windows でのエンコーディングをサポートします。 デフォルト値は [ANSI]で、 デフォルト OS の ANSI コードページを指しています。 これは、JVM がデフォルトで使用している値と同じです。 このプロパティを別の値に設定すると、二つの結果があります。

- 一つは、Wrapper が、file.encoding システムプロパティ を JVM 引数に追加することで JVM へエンコーディングを送信します。 これにより、JVM も Wrapper も同じエンコーディングで読み出し、書き込み証します。

- 次は、Wrapper プロセスのロケールは更新され、すべての Wrapper 出力は同じエンコーディングを使用してログファイルに書き込むことができます。

このプロパティの値は、Windows コードページ識別子(Code Page Identifiers)(英語文)のいずれかに設定できます。 ただし、コードページを使用してコンソールに書き込むことができない場合やコードページが 設定された言語と互換性がないことが判明している場合、Wrapper によって一部の値が制限されることにご注意ください。(このセクションの下にある警告をご覧ください。)

バージョン 3.5.35 では、互換性は Wrapper に付属している言語のみを確認しています(英語、ドイツ語、日本語)。

- 英語 は、ANSI 文字が含まれているため、すべてのコードページと互換性があります。

- ドイツ語 は次のコードページと互換性があります:437、850、1141、1250、1252、20106、20273、28591、28592、65000、65001(UTF-8)

- 日本語は次のコードページをサポートしています:932、10001、20290、20932、21027、50220、50221、50222、50930、50931、50939、51932、65000、65001(UTF-8)

警告

Unix システムとは違い、Windows は、ロケールを設定するときにコードページと言語の互換性を確認しません。これは、Wrapper が判明することなく、間違ったコードページに関連付けられた言語(上記以外の言語)が出力を文字化けさせる可能性があります。 デフォルトでは、Wrapper のローカライゼーションはユーザーインターフェイスの言語を使用し解決されますので、マシンによって変わります。 異なるプラットフォーム上で正しくエンコーディングを保証するには、[wrapper.lang]が「DESKTOP」や「SYSTEM」に設定されている場合、[wrapper.lang.windows.encoding]を「ANSI」(またはデフォルトのままにする)、「OEM」若しくは「UTF-8」に設定する必要があります。

設定例:(エンコーディングを eucJP に設定)
wrapper.lang=ja_JP
wrapper.lang.windows.encoding=20932

UTF-8」、「ANSI」や「OEM」に設定することもできます。最後の二つはOS ANSI コードページOS OEM コードページを示しています。

設定例:(エンコーディングを UTF-8 に設定)
wrapper.lang=de_DE
wrapper.lang.windows.encoding=UTF-8

UTF-8 などのエンコーディングは、2 バイト以上でコード化された文字が含まれていますのでご注意ください。 Wrapper プロセスのロケールは、DBCS コードページで設定できませんが、Wrapper は内部で Unicode で作動し、出力を書き込むときに正しいエンコーディングに変換します。

警告

Wrapper は、コンソールへ出力するときに二つの異なるモードを利用出来ます。 その形式は[wrapper.console.direct]プロパティで制限できます。

「TRUE」(デフォルト値)に設定すると、コンソールは Unicode で動作し、「wrapper.lang.windows.encoding」の値からのどの変換でもサポートされます。 し、コンソールのフォントがその言語の文字をサポートしていることを確認してください。 フォントはコンソールの「プロパティ」ウィンドウより変更できます。

[wrapper.console.direct]を「FALSE」に設定すると、Wrapper は stdout と stderr を使用します。 これは、ストリームの反対側でデコードして正しく表示できるように、すべての出力をコンソールコードページに書き込む必要があります。 このモードでは、コンソールのコードページにサポートされていない[wrapper.lang.windows.encoding]の値は拒否されます。

注意

Wrapper の出力のエンコーディングの設定の他、[wrapper.lang.windows.encoding]は JVM の出力を込み取る時にも使われます。 デフォルト値(ANSI)に設定されると、システムプロパティの[file.encoding]、[sun.stdout.encoding]と[sun.stderr.encoding]は Wrapper が JVM 出力を読み取るための異なるエンコーディングを指定できます。 正し、[wrapper.lang.windows.encoding]は'ANSI' 以外のエンコーディングを指定すると、Wrapper はシステムプロパティを使用するため、そのプロパティは[wrapper.java.additional.*]に使用できません。 その場合、Wrapper はコンフィギュレーションを無効と判断し、停止します。その時、ユーザーは Wrapper のプロパティ、あるいはシステムプロパティのどちらかを選択する必要があります。

wrapper.lang.unix.encoding プロパティ

対応バージョン :3.5.35
対応エディション :プロフェッショナル版スタンダード版コミュニティー版 (未対応)
対応プラットフォーム :Windows (未対応)Mac OSXLinuxIBM AIXFreeBSDHP-UXSolarisIBM z/Linux

このプロパティは非推奨になった[wrapper.lang.encoding]プロパティの代わりに、3.5.35 で導入されました。 [wrapper.lang.encoding]と同様、デフォルト値は Wrapper を起動したセッションのロケールのエンコーディングです。

エンコーディングを使用する前に、Wrapper は常に設定言語とエンコーディングのコンビネーションはシステムでロケールとしてインストールされていることと、設定されたエンコーディングとの変換はサポートされていることを確認します。 設定が正しい場合は、Wrapper プロセスのロケール(言語とエンコーディング)が更新されます。そうでない場合、Wrapper は設定された言語と、Wrapper を起動したセッションのエンコーディングを組み合わせようとして、失敗した場合はロケールを更新しません。

設定例:(エンコーディングを eucJP に設定)
wrapper.lang=ja_JP
wrapper.lang.unix.encoding=eucJP

システムにインストールされているすべてのロケールを表示するように「locale -a」を使用すると、記述名にエンコーディングが指定されていないものがあります。実際、このようなロケールには、次のコマンドを使用して表示できるデフォルトのエンコーディングがあります。

設定例:(デフォルトエンコーディングを表示)
LANG=de_DE@euro locale charmap
ISO-8859-15

Wrapper が、デフォルトエンコーディングのロケールを使用するには、[wrapper.lang.encoding]をデフォルトエンコーディングの値に設定する必要があります。

設定例:(デフォルトエンコーディングでロケールを定義)
wrapper.lang=de_DE@euro
wrapper.lang.unix.encoding=ISO-8859-15

注意

いくつかのプラットフォームでは、「locale charmap」を実行する前にロケールを変更する必要があります。

Mac OSX では、「locale charmap」はロケールのデフォルトエンコーディングを照会するときに空の文字列を返します。 その場合、エンコーディングは UTF-8 と仮定されます。

注意

ロケールを設定する際、いくつかのプラットフォーム(Linux、AIX)は、 エンコーディング表記法の正規表現のダッシュ、句読点、大文字小文字の区別を無視します。 例えば、UTF-8 は utf8 と同等です。 他のプラットフォームでは、エンコードが厳密に一致することを必要とします。 (Solaris、FreeBSD、HP-UX) それと、いくつかのプラットフォームはダッシュと句読点を一致する必要がありますが、 大文字小文字は一致する必要ありません。(Mac OSX、ZOS)

警告

ログ出力を正しく表示させるために、設定されたエンコーディングは端末のエンコーディングと 一致しなければなりません。 通常、端末エンコーディングはロケール変数ではなく、端末エミュレータのオプションで指定される ため、Wrapper が端末エンコーディングを検出することはできません。 例えば、Gnome 端末のエンコーディングはメニュより変更が出来ます:「端末」→「文字コードの設定」

Windows と異なり、ロケールはシステムにインストールされたロケールにしか設定できないため、 言語とエンコーディングの互換性は自動的に確認されます。 インストールされたロケールは、その言語と地域に適したエンコーディングであるセットです。

Windows とのもう一つの違いは、JVM は自動的に Wrapper プロセスのエンコーディングロケールを使用するため、Wrapper は通常、(file.encoding で)JVM へエンコーディングを渡す必要がありません。 しかし、バージョン 3.5.35 より、JVM 出力のエンコーディングとデフォルトエンコーディングは [wrapper.jvm.encoding] を使用して異なる値に設定でき、その場合は Wrapper が JVM を起動する際に使用する引数に両エンコーディングを追加する必要があります。 その理由により、[wrapper.java.additional.*] プロパティには [wrapper.jvm.encoding] を [file.encoding]、[sun.stdout.encoding] や [sun.stderr.encoding] と一緒に使用することが出来ません。(詳細については wrapper.jvm.encoding をご覧ください。)

wrapper.lang.folder プロパティ

対応バージョン :3.5.0
対応エディション :プロフェッショナル版スタンダード版コミュニティー版 (未対応)
対応プラットフォーム :WindowsMac OSXLinuxIBM AIXFreeBSDHP-UXSolarisIBM z/Linux

このプロパティには、言語ファイルの配置場所を設定します。 デフォルト値は「../lang」です。

設定例:(言語ファイルの配置場所の変更)
wrapper.lang.folder=lang

相対パスが、コマンドが起動された場所からの相対した配置や、コンフィギュレーションファイルの配置場所ではなく、Wrapper バイナリの配置場所に相対していることにご注意ください。

wrapper.lang.domain プロパティ

対応バージョン :3.5.0
対応エディション :プロフェッショナル版スタンダード版コミュニティー版 (未対応)
対応プラットフォーム :WindowsMac OSXLinuxIBM AIXFreeBSDHP-UXSolarisIBM z/Linux

このプロパティには、バイナリの領域やライブラリ mo ファイルを設定します。 もし「wrapper_XX.mo」や「wrapperjni_XX.mo」の名前を変更したい場合には、このプロパティを適宜に設定する必要があります。

設定例:(ドメインを変更する)
wrapper.lang.domain=myapp

言語リソースをロード(読み込み)するとき、 Wrapper が「myapp_XX.mo」や「myappjni_XX.mo」ファイルを探すことになります。