$ date
と$ LANG=C date
のそれぞれの実行結果を見比べると一目瞭然。しかし、このCってのがよくわからん。英語環境を表すのにはenというのも用意されていて、実際に
$ LANG=en date
とやると、やはり英語で表示してくれる。じゃあ、Cって何なのよ。と思い調べてみた。
それで見つけたのが、次のページのこの記述
http://mailman.linuxchix.org/pipermail/techtalk/2002-November/013691.html
'LANG=C' sets the locale for gnumeric to the C locale. The 'C' locale isそれっぽい和訳
defined as the "default" locale for applications, meaning that their
strings are displayed as written in the initial code (without passing
through a translation lookup).
「'LANG=C'はgnumericのロケールをCに設定してくれる。この'C'ロケールというのは、アプリケーションにとっての"デフォルト"のロケールと定義されている。つまり、(翻訳をせずに)ソースコードに書かれているそのままの文字列を表示してくれるという訳だ」
注釈1)引用元ページでは、たまたまgnumericで実行した場合を例にあげているだけであって、上でやってるようにdateコマンドとか、もちろんその他のコマンドでもLANGの役割は同じ。
注釈2)Unix系OSでのアプリケーションの多言語対応は、素のままの表示メッセージの翻訳を各ロケールごとに作成し、アプリケーションの実行中に逐一対応するメッセージを翻訳ファイルから探してきて表示する。LANG=Cではそれをしない、ということ。
つまり、"英語で表示"というわけではなく、"翻訳しない"というだけの意味だそうだ。
もし、元々スワヒリ語のメッセージ表示を行うように作られたソフトがあったなら、LANG=Cを付けて実行した場合の表示はもちろん英語でなくスワヒリ語表示になるだろう。
結局、何故'C'という文字が当てられているのかはわかりませんでした。。。
<追記 20090430>
C言語のCみたいです。(コメントありがとうございました)
http://www.gnu.org/software/libc/manual/html_node/Standard-Locales.html
This is the standard C locale. The attributes and behavior it provides are specified in the ISO C standard.
2 件のコメント:
C言語のCじゃね?
と思ってて、探したけど、以下しか見つからず。
http://q.hatena.ne.jp/1230614531
匿名さん
その通りみたいですね。
参考ページからリンク辿ったら、こんなページに行き着きました。
http://www.gnu.org/software/libc/manual/html_node/Standard-Locales.html
ちょっと記事に追記しときます〜
コメントを投稿