[gettext-u-ja] GetText 標準添付に向けて
speakillof
speakillof at yahoo.co.jp
Fri Sep 9 06:00:19 EDT 2005
speakillof と言います。
RailsのMLでむとうさんが一人で苦戦されていましたが、
Rubyに Ruby-GetText が標準添付されそうだということで、
少し安心しています。
標準添付にあたって Ruby っぽい仕様かどうかの検討が
必要ということですので、ここで議論できればと思っています。
過去のむとうさんの日記とすずきさんの日記
http://www.yotabanana.com/lab/20050331.html
http://www.spice-of-life.net//diary/?date=20050622
http://www.spice-of-life.net//diary/?date=20050629
http://www.spice-of-life.net//diary/?date=20050630
の議論を踏まえると、
* textdomain(メッセージの格納場所)とその呼び出し元を関連付ける方法が問
題
** 現在はファイル名を使って関連付ける
** でも、ファイル名が付かない eval の中で _() などが呼ばれると困る
この eval 問題に対処するために現状の Ruby-GetText では
* GetText::Container を使う
** GetText::Container は textdomain とその呼び出し元をクラスで関連付け
る
となっています。個人的には関連付けの方法が
GetText::Container の include によって変化するのは
直感に反するという印象があります。
そこで下記の点についてお聞きしたいです。
* 現状、GetText @@__textdomain に textdomain を複数保持しているが、
それらをマージして大きな textdomain にしては駄目なのか?
これなら関連付けの方法を考えなくて良い。
** メッセージの衝突という可能性はありうるが、
衝突しても同じメッセージなので、大きな問題にはならない?
(この方法が駄目だろうということは分かっているのですが、念のため)
* 呼び出し元の self によって関連付けるのはどうか?
** ファイル名よりは Ruby っぽい(気がする)
** Ruby-1.8.x では呼び出し元の self を取得するメソッドがない(これが最大
のネック)
** 過去の ruby-list, dev で binding(n) を導入するという議論があり、
これが実現されれば self での関連付けは可能。
http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-dev/15999
self で関連付けする方法については
Ruby-1.8.x におけるリファレンス実装を添付したので、
試していただければと思います。
実行するには
ruby msg.rb
とします。gettext2.rb がライブラリです。
メッセージの呼び出しは
_('hogehoge')
となっているところを
_('hogehoge'){self}
にします。(これがRuby-1.8.xにおける制限)
実行時のコストなど、いろいろ問題がありますが、
それについてはソースを読んでいただければと思います。
ご検討のほどよろしくお願いします。
__________________________________
Take an action against poverty
http://pr.mail.yahoo.co.jp/whiteband/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: get.tgz
Type: application/x-compressed
Size: 1131 bytes
Desc: get.tgz
Url : http://rubyforge.org/pipermail/gettext-users-ja/attachments/20050909/15782046/get.bin
More information about the gettext-users-ja
mailing list