From: Yukihiro Matsumoto Date: 2005-09-08T08:26:49+09:00 Subject: [ruby-dev:26982] Re: about Ruby-GetText まつもと ゆきひろです In message "Re: [ruby-dev:26981] Re: about Ruby-GetText" on Thu, 8 Sep 2005 01:22:42 +0900, Masao Mutoh writes: |Ruby-GetText-PackageではLC_CTYPEだけ呼んでます。 |私の理解では、ctype.hに載ってる関数が影響を受けるだけなので、 |数値関係は大丈夫なんじゃないかと....。影響受けるのは |isalnum, isalpha, isascii, isblank, iscntrl, isdigit, isgraph, islower, |isprint, ispunct, isspace, isupper, isxdigit あたりでしょうか。 この辺も使ってますからねえ。どういう影響があるか事前に見積も るのは難しいですね。 |まぁ、でも、「まだ残ってるかも」ということは、残っていることが |わかったら、Ruby側で対処して頂けると言うことでしょうか。 |それなら、呼ぶこと自体は問題なさそうですね。 対処するつもりはありますが、呼んだときに発生する問題がすぐに 解決できるとは限らないことには留意してください。 |---- |それと、ちょっと脱線しちゃうのですが質問があります。 |今後、RubyのLocale関係って何かイメージされたものがありますか? |実装するとしたら、どんな実装が良いのでしょう。 | |1. setlocaleに依存 | |2. setlocaleに非依存 |2-1. 環境変数LANG/LC_ALL等が設定されていたら、現在のStringやDateの | 各メソッド等が返す文字列自体をローカライズして返してしまう。 |2-2. StringやDateの既存メソッドを上書きしてしまうといつどんなロケール |   で変な動きをするか、元のプログラマは想定できない場合が多い。 |   ロケール関係はせいぜい表示時に変換できればいいだろうから、 |   例えば、Locale.date(Date)みたいにロケール関係を集めたモジュール |   を作る。 |2-3. 2-2.と同様だけど、例えば、Date#to_localeみたいなメソッドも追加 |   する。 | |ホントに質問したい内容は、1.か、2.か、というところです。 |あとの2-1,2,3は単なる興味です(個人的には2-2,3かなとは思ってますが)。 Cのlocaleモデルは同時にひとつしか扱えない(ですよね?)ので、 あまりうれしくないと思ってます。スレッドセーフにできないし。 だからできれば「setlocale非依存」にできるといいなあと思って います。それ以上のことはまだ考えていません。 まつもと ゆきひろ /:|)