LANG環境変数を上書きしても言語が変更されないのはなぜですか?


11

現在の環境として別の言語でアプリケーションを実行しようとしています。簡単に始めるために、の言語を変更したいと思いましたls

これは私がいたるところで読んだものです(関連する質問については以下を参照):LANGサポートされているロケールの1つに設定します。例:

LANG=nl_NL.UTF-8 ls /nonexistent

オランダ語(NL)の出力を表示します。

しかし、私はまだ英語の出力を取得します:

$ LANG=nl_NL.UTF-8 ls -al /nonexistent
ls: cannot access /nonexistent: No such file or directory

私の現在の環境:

$ locale
LANG=en_GB.UTF-8
LANGUAGE=en_GB:en
LC_CTYPE="en_GB.UTF-8"
LC_NUMERIC="en_GB.UTF-8"
LC_TIME="en_GB.UTF-8"
LC_COLLATE="en_GB.UTF-8"
LC_MONETARY="en_GB.UTF-8"
LC_MESSAGES="en_GB.UTF-8"
LC_PAPER="en_GB.UTF-8"
LC_NAME="en_GB.UTF-8"
LC_ADDRESS="en_GB.UTF-8"
LC_TELEPHONE="en_GB.UTF-8"
LC_MEASUREMENT="en_GB.UTF-8"
LC_IDENTIFICATION="en_GB.UTF-8"
LC_ALL=

確かに、私はチェックしました:

  • ロケールがサポートされています:

    $ grep nl_NL /usr/share/i18n/SUPPORTED 
    nl_NL.UTF-8 UTF-8
    nl_NL ISO-8859-1
    nl_NL@euro ISO-8859-15
    
  • ロケールが生成されます:

    sudo locale-gen nl_NL.UTF-8
    

    また、sudo dpkg-reconfigure locales生成されたことも示しています。

  • オランダ語の言語パックをインストールした(既にインストールされている):

    sudo apt-get install language-pack-nl
    

他に何を試しましたか?

  • 使い方exportの両方を設定するLANGと、LANGUAGE代わりのコマンドを付加。
  • 設定もLC_ALL

皮肉なことに、一部(一部のみ!)のGUIアプリケーションは実際にはオランダ語ですが、まったく構成していません。

ここに画像の説明を入力してください

それが問題である限り、私はKubuntu 12.04(.2)を使用しています。

同様の質問(役に立たない):

私のシステムの何が問題になっていますか?これをさらにデバッグする場所は?

回答:


12

LANGよりも優先されるLANGUAGEが設定され、変更されていないためです。

$ LANGUAGE=nl ls /nonexistent
ls: kan geen toegang krijgen tot /nonexistent: Bestand of map bestaat niet

詳細については、GNU gettextのドキュメントをご覧ください。

GNU gettextは、メッセージ処理の目的でLC_ALLおよびLANGよりもLANGUAGEを優先しますが、LANG(またはLC_ALL)を1次言語に設定する必要があります。これは、システムライブラリの他の部分で必要です。


私はこれをすでに試したことを誓います。それでも、私のシェルの履歴を見ると、これはロケールを生成する前に試しただけだと思います。「LANGUAGEがLANGよりも優先される」理由の出典を教えてください。ヘッドアップをありがとう。
gertvdijk 2013年

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.