[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 メーリングリストの案内