• ベストアンサー

LANG=enで一時的に英語表示にできません

RedHat9を使用しています。 一時的に英語で出力させたいのですができません。 $ LANG=en /etc/rc.d/init.d/vncserver status Xvncは起動していません。 となってしまいます。 どうコマンドすればいいのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • anights
  • ベストアンサー率72% (35/48)
回答No.2

LANGは、enでもCでも別にどっちでもいけると思いますが # LANG=C NOLOCALE=1 /etc/rc.d/init.d/vncserver status ではどうですか? 処理を理解されたいのなら/etc/rc.d/init.d/functionsを読んでみて下さい。 参考ですがserviceコマンドを使用した場合はenv -iを使った呼び出しになるのでこの手は使えません。

noname#65517
質問者

お礼

遅くなってしまい有り難うございました。 LANG=C NOLOCALE=1 /etc/rc.d/init.d/vncserver status で上手くいきました。

すると、全ての回答が全文表示されます。

その他の回答 (2)

  • notnot
  • ベストアンサー率47% (4903/10364)
回答No.3

FedoraCore4ですが、 LC_MESSAGES=C /etc/rc.d/init.d/vncserver status で英文メッセージが出ます。 LC_ALL=C が効かないのが不思議。 この場合は、/etc/rc.d/init.d/vncserver から呼ばれる /etc/init.d/functions から呼ばれる /etc/sysconfig/i18n で LANGは再設定されてしまいます。 あと、/etc/init.d/functions ではメッセージは echo $"Usage:..." のように書かれているので、man bash の >> ダブルクォートされた文字列の前にドル記号($)があると、文字列は現在のロケールに従って変換されます。現在のロケールが C または POSIX ならば、ドル記号は無視されます。文字列が変換されたり置換された場合に、その結果はダブルクォートされているのと同じ状態になります。 << の記述に該当して、さらにこのとき、LC_MESSAGESが未定義で、LANGが上記のように日本語に再設定されているので、文字列が辞書に従って日本語化されるようです。 一般的には、LC_ALL が最優先で、LC_TIME等その他のLC_ (man locale参照)がその次、LC_* が何も定義されていなければ LANG の設定が有効になります。 上述のbashの文字列翻訳処理では、LC_ALLは参照されないようですね。

noname#65517
質問者

お礼

遅くなってしまい有り難うございました。 LANG=C NOLOCALE=1 /etc/rc.d/init.d/vncserver status で上手くいきました。

すると、全ての回答が全文表示されます。
  • apbank
  • ベストアンサー率36% (24/65)
回答No.1

export LANG=C と打ってみてください。

noname#65517
質問者

お礼

遅くなってしまいました。ご回答有り難うございました。 LANG=C NOLOCALE=1 /etc/rc.d/init.d/vncserver status で上手くいきました。

noname#65517
質問者

補足

ご回答有り難うございます。 早速試してみましたが $export LANG=C /etc/rc.d/init.d/vncserver status -bash: export: `/etc/rc.d/init.d/vncserver': not a valid identifier $ export LANG=C $ /etc/rc.d/init.d/vncserver status Xvncは起動していません。 となってしまいます。

すると、全ての回答が全文表示されます。

関連するQ&A