nl_langinfo

関数の概要

nl_langinfoはPHPでロケール(言語や地域設定)に基づく文字列情報を取得するための関数です。例えば、現在のロケールに応じた曜日の名前や通貨記号など、環境依存のテキスト情報を取得したい場合に使用されます。これは国際化対応や多言語サイトの開発に役立ちます。

パラメータの説明

  • itemint型の定数。取得したいロケール情報を指定します。nl_langinfo関数は引数に定数を受け取り、その定数に対応するロケール情報の文字列を返します。たとえば、ABDAY_1は曜日の「日曜日」など。

戻り値

指定されたロケール情報に対応する文字列が返されます。ロケール情報が存在しない場合は空文字列が返ることがあります。

使用例

基本的な使い方 – 曜日の取得

setlocale(LC_TIME, 'ja_JP.UTF-8');
echo nl_langinfo(ABDAY_1);  // 「日曜日」など

この例では、日本語のロケールに設定した上で、日曜日のロケール文字列を取得しています。環境によっては日本語表記で「日曜日」と表示されます。

月名を取得する例

setlocale(LC_TIME, 'en_US.UTF-8');
echo nl_langinfo(ABMON_3);  // "Mar"(3月の略称)

英語圏のロケールに設定して3月の月名略称を取得しています。ロケールにより表示が変わることがわかります。

通貨記号を取得する例

setlocale(LC_MONETARY, 'fr_FR.UTF-8');
echo nl_langinfo(CRNCYSTR);  // "€"(ユーロ記号)

フランスのロケールに設定し、通貨記号を取得しています。多言語ECサイトなどで役立つ例です。

関連する関数

  • setlocale — ロケールの設定に使います。nl_langinfoを使う前に設定しておく必要があります。
  • localeconv — 数値や通貨のフォーマット情報を配列で取得できます。

まとめ

nl_langinfoはPHPでロケール依存の文字列情報を簡単に取得できる便利な関数です。ロケールを適切に設定した上で使うことで、曜日や月名、通貨記号など、表示する文字列を対象の言語や地域に合わせられます。多言語対応や国際化の際には覚えておくと役に立ちます。