[#45467] 文字列から配列への変換について — "西塔伸一郎" <omohideporoporo@...>
いつもお世話になっております。
7 messages
2008/09/04
[#45484] volatileの付け方 — 谷垣 宏一 <co01@...>
co01と申します。
14 messages
2008/09/11
[#45486] Re: volatileの付け方
— Nobuyoshi Nakada <nobu@...>
2008/09/11
なかだです。
[#45501] マルチパートフォームデータのescapeHTML — 宮崎 詠二 <eiji@...21.com>
最近rubyのcgiをはじめたばかりのeijiと申します。
7 messages
2008/09/16
[ruby-list:45472] ANN: Rubyエラーメッセージの多国語化拡張ライブラリ
From:
arton <artonx@...>
Date:
2008-09-04 14:40:21 UTC
List:
ruby-list #45472
artonです。
実験的な拡張ライブラリですが、NLizeというものを作ってみました。
Ruby-1.8.7-p72(メッセージを変えなければ1.8.7系は共通で利用できるとは思
います)のNameErrorのメッセージなどをRuby-GetTextを利用して多国語対応さ
せるものです。
例1 irb)
c:\home\arton\test>irb -rubygems
irb(main):001:0> require 'nlize'
=> true
irb(main):002:0> x
NameError: 'x'はmain:Objectの未定義のローカル変数かメソッドです
from (irb):2
from c:/PROGRA~2/ruby-1.8/lib/ruby/gems/1.8/specifications/gettext-1.92.
0.gemspec:11
irb(main):003:0> Integer(3,2,1)
ArgumentError: 引数の数が不正です(3は1であるべきです)
from (irb):3:in `Integer'
from (irb):3
from c:/PROGRA~2/ruby-1.8/lib/ruby/gems/1.8/specifications/gettext-1.92.
0.gemspec:11
現在のところ、抽出したメッセージの半分くらいは日本語に翻訳してあります。
ただし、すべてのメッセージを網羅しているわけではありません。syntax errorはほと
んど対応できていません(抽出できていない)。
また、i386以外には未対応です。
特徴:
拡張ライブラリとして実装してあるので、既存のRubyバイナリには影響しませ
ん。
インストール方法:
http://github.com/arton/nlize/tree/master
からレポジトリを取ってきて、ruby setup.rb でインストールするのがベスト
です。理由は後述
または、http://arton.no-ip.info/data/nlize にMSWin32-60用gem(so付き)
と、普通のgemをコピーしてありますので、ダウンロードしたディレクトリ上で、
gem install nlize -l してください。
なお、依存関係がspecに記述してあるので、Ruby-GetTextをインストールしてい
ない場合は、ローカルへコピー後、-l抜きで実行するとRuby-GetTextのインストー
ルも行えます。
使い方
require 'nlize'
するだけです。翻訳があるメッセージは自動的に翻訳されます。
setup.rbでインストールした場合は、ruby -rnlize のみで有効となります。
ただし、gemを使ってインストールした場合は、
irb -rubygems -rnlize では有効にできますが、
ruby -rubygems -rnlize では、まだRubyGemsのrequireフックが利かないので
nlizeのLoadErrorとなります。(これはそういうものでしたっけ?)
制限事項
現在(誰かが手伝ってくれない限り、将来的にも。ただしx64は除く)i386以外
には対応していません。無理にsetupしてもエラーチェックが甘いのでsegvしま
す。
cコンパイラがvsnprintf_lを利用できない環境では、vsnprintfをvsprintfで置
き換えるため、長い文字列によってバッファオーバーフローを引き起こします。
テストした環境
MSWin32-60 (この環境では、上記のvsprintfへの置き換えが行われます)
OS X 10.5 (この環境では、vsnprintf_lで代用するためnlizeによる危険の導入
はないはずです)
お願い
githubにリポジトリを置いてあるので、翻訳の修正や追加、CPUサポートや
extconf.rbによるコード分岐パッチなどは自由に作ってください。基本的には
pullします。
--
arton <artonx@yahoo.co.jp>
--------------------------------------
Enjoy MLB with MAJOR.JP! Ichiro, Matsuzaka, Matsui, and more!
http://pr.mail.yahoo.co.jp/mlb/