過去問ドリル

LinuCレベル1 システム管理 問30

システム管理/ローカライゼーションと国際化

LANG=ja_JP.UTF-8 の環境で、メッセージは日本語のまま、dateなどが表示する日付・時刻の書式だけを en_US.UTF-8 の形式にしたい(LC_ALLは設定されていない)。設定する環境変数として適切なものはどれか。

当サイトのオリジナル問題(LinuCレベル1の出題範囲「システム管理」に対応。実際の試験問題ではありません)

正解:C

解説

ロケールは LC_* の複数のカテゴリに分かれており、カテゴリごとに個別の値を設定できます。LC_TIME は日付と時刻の書式を決めるカテゴリで、LC_TIME=en_US.UTF-8 とすれば、LANGが日本語のままでも日付・時刻の表示だけが英語圏の形式になります。個別に設定しなかったカテゴリはLANGの値に従います。ただしLC_ALLが設定されているとすべてのカテゴリがその値で上書きされるため、個別の設定は効きません。現在の各カテゴリの値は locale コマンドで確認できます。

選択肢ごとの解説

  • A誤り。LC_MESSAGES はプログラムが出力するメッセージの言語を決めるカテゴリで、日付の書式は変わりません。
  • B誤り。LC_CTYPE は文字の種類の判定や文字コードの扱い(マルチバイト文字の解釈など)を決めるカテゴリです。
  • C正しい。LC_TIME は日付と時刻の表示書式を決めるカテゴリです。
  • D誤り。LC_NUMERIC は小数点や桁区切りなど、数値の書式を決めるカテゴリです。
LinuCレベル1の問題を演習モードで解く