[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[debian-users:17661] Re: communicator-smotif-ja-45 について



# netscape communicator については、現在の potato では
# それどころじゃないので何とも言えませんが。(^^;

At Thu, 2 Sep 1999 23:51:09 +0900,
white <white@xxxxxxxxxxxxxxxx> wrote:

> これですが、xdmでログインした場合は、
> /root/.bashrc
> /root/.profile
> の中でのロケール関係の変数の記述の影響を受けない全く別のシェルプロセス
> (用語はおかしいかもしれませんが)がスタートしているということのようです
> ね。思考錯誤のすえ、そう理解しました。
> そのために、xdmからログインした場合は、
> それに対応したロケール関係の変数の記述を別に書いてやる必要がある、と。
> これに関してはslinkでは自分で理解して、手動で記述してやらないと、正常
> に日本語化されないということ。
> もちろん、影響を受けるシェルプロセスもあるみたいですが。
> この理解であっていますか?

あっています。

「それに対応したロケール関係の変数の記述」は ~/.xsession 中で
source する(読み込む)というのが一般的なようです。

「影響を受けるシェルプロセス」とは、sh が terminal 中で起動する際に
~/.bashrc などに書かれた LANG=ja などを読むからではないでしょうか。
その terminal から起動したプログラムは locale などが望んでいるものに
なっているのではないでしょうか。

> だから、何が聞きたいのかと、聞かれると、困るのですが、xdm下でのロケー
> ル関係の変数の記述の方法で、コツのようなものがありましたら、教えてくだ
> さい。

> これが、xdmを使わないでログインして、startxで始めると、こういうことを
> 全く、気にしなくても良いはずです。

xdm からログインするのと、startx するのとの一番の違いは、
X session の親が異なるということです。

環境変数は fork した child process に引き継がれます。

# fork についてはpsmisc パッケージを入れて pstree してみると
# 雰囲気が分かると思います。

startx した場合は console 上の sh の環境を引き継ぎますので、
~/.bashrc などに LANG=ja とかが設定されていれば、X session は
(再設定しない限り)全て LANG=ja です。

xdm からログインして X の session が開始された場合は
/etc/X11/Xsession によると、/etc/environment が存在すれば
読んでくれますが、それ以上のことはしてくれません。
そのため、window manager などが locale 関係の環境変数がセット
されないまま起動されている状態になっているのではないでしょうか。

-- 
大野 修一