関数の概要
nl_langinfoはPHPでロケール(言語や地域設定)に基づく文字列情報を取得するための関数です。例えば、現在のロケールに応じた曜日の名前や通貨記号など、環境依存のテキスト情報を取得したい場合に使用されます。これは国際化対応や多言語サイトの開発に役立ちます。
パラメータの説明
item:int型の定数。取得したいロケール情報を指定します。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でロケール依存の文字列情報を簡単に取得できる便利な関数です。ロケールを適切に設定した上で使うことで、曜日や月名、通貨記号など、表示する文字列を対象の言語や地域に合わせられます。多言語対応や国際化の際には覚えておくと役に立ちます。
