Your SlideShare is downloading. ×
N Lize
N Lize
N Lize
N Lize
N Lize
N Lize
N Lize
N Lize
N Lize
N Lize
N Lize
N Lize
N Lize
N Lize
N Lize
N Lize
N Lize
N Lize
N Lize
N Lize
N Lize
N Lize
N Lize
N Lize
N Lize
N Lize
N Lize
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

N Lize

610

Published on

Sapporo RubyKaigi 2008

Sapporo RubyKaigi 2008

Published in: Technology, Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
610
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
1
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. NLize
  • 2. Rubyの エラーメッセージを 多国語対応させる 拡張ライブラリ
  • 3. LL Future
  • 4. 質問
  • 5. 忘れたけど
  • 6. エラーメッセージ を読む人は 英語でも読む
  • 7. 読まない人は 日本語でも 読まない
  • 8. 日本語化 してみたら どうなるか?
  • 9. 多分
  • 10. それはそれとして
  • 11. http://github.com/arton/nlize/tree
  • 12. tool/extmsg.rb ソースコードからメッセージを抽出
  • 13. po/rubymsg.pot 抽出済みメッセージ
  • 14. po/ja/rubymsg.po 翻訳済みメッセージ
  • 15. lib/nlize.rb ローダ
  • 16. ext/cnlize.so メッセージ置き換えエンジン というか、これを作ってみたかった
  • 17. #if defined(_WIN32) VirtualProtect(org, 8, PAGE_EXECUTE_READWRITE, &old); #else ret = mprotect((void*)((int)org & PAGE_MASK), 8, PROT_READ | PROT_WRITE | PROT_EXEC); if (ret) { /* ignore nlize */ return; } #endif
  • 18. コーディングモディフィケーション /* i386 only */ *org = '¥xff'; *(org + 1) = '¥x25'; memcpy(org + 2, &palt, 4);
  • 19. 誤算 irbでテストしていたので、 パーシング中のエラーを 置き換えられないことに 気づいていなかった。
  • 20. i386に依存 テスト済み OS X for Intel Win32 LinuxはAmd64なので テストできなかった
  • 21. インストール方法
  • 22. $ gem sources -a http://gems.github.com $ sudo gem install arton-nlize
  • 23. Win32Binary http://arton.no-ip.info/data/nlize/ C:¥temp¥nlize>gem install nlize Successfully installed gettext-1.93.0 Successfully installed nlize-0.0.2-x86-mswin32-60 2 gems installed Installing ri documentation for gettext-1.93.0... Installing RDoc documentation for gettext-1.93.0..
  • 24. しかし Gemはお勧めしない
  • 25. ruby -rubygems -e quot;require'nlize';howdy folks!quot; -e:1: folks!はmain:Objectの未定義メソッドです (NoMethodError) require ‘nlize’ #=> bad
  • 26. setup.rbがお勧め (gettextは別途入手)
  • 27. ruby -rnlize -e “howdy folks!quot; -e:1: folks!はmain:Objectの未定義メソッドです (NoMethodError) -rnlize #=> good !

×