[pgsql-jp: 37830] Re: 透過的に翻訳メッセージを返す方法

Hiroki Kataoka kataoka @ interwiz.jp
2006年 12月 22日 (金) 03:03:19 JST


片岡です。

 亀レスですが。。。

EBIHARA, Yuichiro wrote:
> これはOracleのセッション言語を返す関数 sys_context('USERENV', 'LANG')
> を使った常套手段にヒントを得ているのですが、PostgreSQLにおいて
> current_setting('lc_messages')の上記のような使用は妥当だと思いますか?

 何となく直感的に不安を感じてしまいます。lc_messagesを変更するとそれに
あわせてPostgreSQLサーバからのメッセージが変わることがありますが、その辺
が副作用(というか求めていない動作)にならなければいいのですが。

> また、それしかないとして、lc_messagesの設定はやはりSETコマンドか、
> 環境変数PGOPTIONSでしょうか?
> libpqアプリケーションであれば環境変数LANGやLC_MESSAGESが自動的に
> 反映されるとよいのですが。

 lc_messagesはあくまでもサーバ側のOSの動作(メッセージの言語)を変更す
るパラメータですから、クライアント側とサーバ側とでOSがサポートしているロ
ケールに相違がある場合、環境変数からの自動設定ではうまく機能しない可能性
があります。

 というかPostgreSQLのこの辺り、根本的に実装に問題があるように感じてま
す。クライアントサーバシステムなので両者のOSには互換性がないかもしれない
のに、OSのロケールに依存した実装なんて問題が多すぎます。

# すいません、横道にそれました。

-- 
Hiroki Kataoka <kataoka @ interwiz.jp>



pgsql-jp メーリングリストの案内