gettext 1.93.0 → 2.0.0
Sign up to get free protection for your applications and to get access to all the features.
- data/ChangeLog +16 -1941
- data/ChangeLog-1 +2016 -0
- data/{NEWS → NEWS-1} +2 -0
- data/README.rdoc +251 -0
- data/Rakefile +46 -57
- data/bin/rgettext +1 -1
- data/bin/rmsgfmt +2 -2
- data/bin/rmsgmerge +3 -3
- data/data/locale/bg/LC_MESSAGES/rgettext.mo +0 -0
- data/data/locale/bs/LC_MESSAGES/rgettext.mo +0 -0
- data/data/locale/ca/LC_MESSAGES/rgettext.mo +0 -0
- data/data/locale/cs/LC_MESSAGES/rgettext.mo +0 -0
- data/data/locale/de/LC_MESSAGES/rgettext.mo +0 -0
- data/data/locale/el/LC_MESSAGES/rgettext.mo +0 -0
- data/data/locale/eo/LC_MESSAGES/rgettext.mo +0 -0
- data/data/locale/es/LC_MESSAGES/rgettext.mo +0 -0
- data/data/locale/et/LC_MESSAGES/rgettext.mo +0 -0
- data/data/locale/fr/LC_MESSAGES/rgettext.mo +0 -0
- data/data/locale/hr/LC_MESSAGES/rgettext.mo +0 -0
- data/data/locale/hu/LC_MESSAGES/rgettext.mo +0 -0
- data/data/locale/it/LC_MESSAGES/rgettext.mo +0 -0
- data/data/locale/ja/LC_MESSAGES/rgettext.mo +0 -0
- data/data/locale/ko/LC_MESSAGES/rgettext.mo +0 -0
- data/data/locale/lv/LC_MESSAGES/rgettext.mo +0 -0
- data/data/locale/nb/LC_MESSAGES/rgettext.mo +0 -0
- data/data/locale/nl/LC_MESSAGES/rgettext.mo +0 -0
- data/data/locale/pt_BR/LC_MESSAGES/rgettext.mo +0 -0
- data/data/locale/ru/LC_MESSAGES/rgettext.mo +0 -0
- data/data/locale/sr/LC_MESSAGES/rgettext.mo +0 -0
- data/data/locale/sv/LC_MESSAGES/rgettext.mo +0 -0
- data/data/locale/ua/LC_MESSAGES/rgettext.mo +0 -0
- data/data/locale/vi/LC_MESSAGES/rgettext.mo +0 -0
- data/data/locale/zh/LC_MESSAGES/rgettext.mo +0 -0
- data/data/locale/zh_TW/LC_MESSAGES/rgettext.mo +0 -0
- data/gettext.gemspec +40 -0
- data/lib/gettext.rb +101 -431
- data/lib/gettext/cgi.rb +4 -4
- data/lib/gettext/class_info.rb +54 -0
- data/lib/gettext/{iconv.rb → core_ext/iconv.rb} +1 -0
- data/lib/gettext/{string.rb → core_ext/string.rb} +12 -8
- data/lib/gettext/locale_path.rb +107 -0
- data/lib/gettext/mofile.rb +314 -0
- data/lib/gettext/parser/erb.rb +2 -1
- data/lib/gettext/parser/glade.rb +2 -1
- data/lib/gettext/parser/ruby.rb +66 -63
- data/lib/gettext/poparser.rb +3 -3
- data/lib/gettext/textdomain.rb +97 -171
- data/lib/gettext/textdomain_manager.rb +224 -0
- data/lib/gettext/tools.rb +195 -0
- data/lib/gettext/{rgettext.rb → tools/rgettext.rb} +74 -77
- data/lib/gettext/{rmsgfmt.rb → tools/rmsgfmt.rb} +12 -26
- data/lib/gettext/{rmsgmerge.rb → tools/rmsgmerge.rb} +3 -6
- data/lib/gettext/utils.rb +18 -135
- data/lib/gettext/version.rb +2 -2
- data/po/bg/rgettext.po +84 -88
- data/po/bs/rgettext.po +86 -90
- data/po/ca/rgettext.po +85 -88
- data/po/cs/rgettext.po +86 -90
- data/po/de/{rails.po → #rails.po#} +17 -16
- data/po/de/rgettext.po +84 -88
- data/po/el/rgettext.po +85 -89
- data/po/eo/rgettext.po +85 -89
- data/po/es/rgettext.po +84 -88
- data/po/et/rgettext.po +84 -88
- data/po/fr/rgettext.po +84 -88
- data/po/hr/rgettext.po +86 -90
- data/po/hu/rgettext.po +84 -88
- data/po/it/rgettext.po +82 -86
- data/po/ja/rails.po.old +150 -0
- data/po/ja/rgettext.po +84 -88
- data/po/ko/rgettext.po +86 -90
- data/po/lv/rgettext.po +84 -88
- data/po/nb/rgettext.po +84 -88
- data/po/nl/rgettext.po +86 -90
- data/po/pt_BR/rgettext.po +84 -88
- data/po/rgettext.pot +54 -70
- data/po/ru/rgettext.po +84 -88
- data/po/sr/rgettext.po +84 -88
- data/po/sv/rgettext.po +57 -73
- data/po/ua/rgettext.po +85 -89
- data/po/vi/rgettext.po +84 -88
- data/po/zh/rgettext.po +83 -87
- data/po/zh_TW/rgettext.po +83 -87
- data/samples/README +4 -8
- data/samples/cgi/Rakefile +2 -2
- data/samples/cgi/cookie.cgi +1 -0
- data/samples/cgi/helloerb1.cgi +8 -4
- data/samples/cgi/helloerb2.cgi +6 -4
- data/samples/cgi/hellolib.rb +1 -2
- data/samples/cgi/index.cgi +1 -0
- data/samples/cgi/locale/bg/LC_MESSAGES/hellolib.mo +0 -0
- data/samples/cgi/locale/bs/LC_MESSAGES/hellolib.mo +0 -0
- data/samples/cgi/locale/ca/LC_MESSAGES/hellolib.mo +0 -0
- data/samples/cgi/locale/cs/LC_MESSAGES/hellolib.mo +0 -0
- data/samples/cgi/locale/de/LC_MESSAGES/hellolib.mo +0 -0
- data/samples/cgi/locale/el/LC_MESSAGES/hellolib.mo +0 -0
- data/samples/cgi/locale/eo/LC_MESSAGES/hellolib.mo +0 -0
- data/samples/cgi/locale/es/LC_MESSAGES/hellolib.mo +0 -0
- data/samples/cgi/locale/fr/LC_MESSAGES/hellolib.mo +0 -0
- data/samples/cgi/locale/hr/LC_MESSAGES/hellolib.mo +0 -0
- data/samples/cgi/locale/hu/LC_MESSAGES/hellolib.mo +0 -0
- data/samples/cgi/locale/it/LC_MESSAGES/hellolib.mo +0 -0
- data/samples/cgi/locale/ja/LC_MESSAGES/helloerb1.mo +0 -0
- data/samples/cgi/locale/ja/LC_MESSAGES/helloerb2.mo +0 -0
- data/samples/cgi/locale/ja/LC_MESSAGES/hellolib.mo +0 -0
- data/samples/cgi/locale/ja/LC_MESSAGES/main.mo +0 -0
- data/samples/cgi/locale/ko/LC_MESSAGES/helloerb1.mo +0 -0
- data/samples/cgi/locale/ko/LC_MESSAGES/hellolib.mo +0 -0
- data/samples/cgi/locale/lv/LC_MESSAGES/hellolib.mo +0 -0
- data/samples/cgi/locale/nb/LC_MESSAGES/hellolib.mo +0 -0
- data/samples/cgi/locale/nl/LC_MESSAGES/hellolib.mo +0 -0
- data/samples/cgi/locale/pt_BR/LC_MESSAGES/hellolib.mo +0 -0
- data/samples/cgi/locale/ru/LC_MESSAGES/hellolib.mo +0 -0
- data/samples/cgi/locale/sr/LC_MESSAGES/hellolib.mo +0 -0
- data/samples/cgi/locale/ua/LC_MESSAGES/hellolib.mo +0 -0
- data/samples/cgi/locale/vi/LC_MESSAGES/hellolib.mo +0 -0
- data/samples/cgi/locale/zh/LC_MESSAGES/hellolib.mo +0 -0
- data/samples/cgi/locale/zh_TW/LC_MESSAGES/hellolib.mo +0 -0
- data/samples/cgi/po/ja/helloerb1.po +2 -2
- data/samples/cgi/po/ja/helloerb2.po +2 -2
- data/samples/cgi/po/ja/hellolib.po +2 -2
- data/samples/cgi/po/ja/main.po +2 -2
- data/samples/hello.rb +4 -3
- data/samples/hello2.rb +2 -1
- data/samples/{helloglade2.glade → hello_glade2.glade} +0 -0
- data/samples/{helloglade2.rb → hello_glade2.rb} +5 -4
- data/samples/{hellogtk2.rb → hello_gtk2.rb} +3 -3
- data/samples/hello_noop.rb +2 -1
- data/samples/hello_plural.rb +2 -1
- data/samples/{hellotk.rb → hello_tk.rb} +3 -2
- data/samples/locale/bg/LC_MESSAGES/hello.mo +0 -0
- data/samples/locale/bg/LC_MESSAGES/hello2.mo +0 -0
- data/samples/locale/bg/LC_MESSAGES/{helloglade2.mo → hello_glade2.mo} +0 -0
- data/samples/locale/bg/LC_MESSAGES/{hellogtk.mo → hello_gtk.mo} +0 -0
- data/samples/locale/bg/LC_MESSAGES/hello_plural.mo +0 -0
- data/samples/locale/bg/LC_MESSAGES/{hellotk.mo → hello_tk.mo} +0 -0
- data/samples/locale/bs/LC_MESSAGES/hello.mo +0 -0
- data/samples/locale/bs/LC_MESSAGES/hello2.mo +0 -0
- data/samples/locale/bs/LC_MESSAGES/{helloglade2.mo → hello_glade2.mo} +0 -0
- data/samples/locale/bs/LC_MESSAGES/{hellogtk.mo → hello_gtk.mo} +0 -0
- data/samples/locale/bs/LC_MESSAGES/hello_plural.mo +0 -0
- data/samples/locale/bs/LC_MESSAGES/{hellotk.mo → hello_tk.mo} +0 -0
- data/samples/locale/ca/LC_MESSAGES/hello.mo +0 -0
- data/samples/locale/ca/LC_MESSAGES/hello2.mo +0 -0
- data/samples/locale/ca/LC_MESSAGES/{helloglade2.mo → hello_glade2.mo} +0 -0
- data/samples/locale/ca/LC_MESSAGES/{hellogtk.mo → hello_gtk.mo} +0 -0
- data/samples/locale/ca/LC_MESSAGES/hello_plural.mo +0 -0
- data/samples/locale/ca/LC_MESSAGES/{hellotk.mo → hello_tk.mo} +0 -0
- data/samples/locale/cs/LC_MESSAGES/hello.mo +0 -0
- data/samples/locale/cs/LC_MESSAGES/hello2.mo +0 -0
- data/samples/locale/cs/LC_MESSAGES/{helloglade2.mo → hello_glade2.mo} +0 -0
- data/samples/locale/cs/LC_MESSAGES/{hellogtk.mo → hello_gtk.mo} +0 -0
- data/samples/locale/cs/LC_MESSAGES/hello_plural.mo +0 -0
- data/samples/locale/cs/LC_MESSAGES/{hellotk.mo → hello_tk.mo} +0 -0
- data/samples/locale/de/LC_MESSAGES/hello.mo +0 -0
- data/samples/locale/de/LC_MESSAGES/hello2.mo +0 -0
- data/samples/locale/de/LC_MESSAGES/{helloglade2.mo → hello_glade2.mo} +0 -0
- data/samples/locale/de/LC_MESSAGES/{hellogtk.mo → hello_gtk.mo} +0 -0
- data/samples/locale/de/LC_MESSAGES/hello_plural.mo +0 -0
- data/samples/locale/de/LC_MESSAGES/{hellotk.mo → hello_tk.mo} +0 -0
- data/samples/locale/el/LC_MESSAGES/hello.mo +0 -0
- data/samples/locale/el/LC_MESSAGES/hello2.mo +0 -0
- data/samples/locale/el/LC_MESSAGES/{helloglade2.mo → hello_glade2.mo} +0 -0
- data/samples/locale/el/LC_MESSAGES/{hellogtk.mo → hello_gtk.mo} +0 -0
- data/samples/locale/el/LC_MESSAGES/hello_plural.mo +0 -0
- data/samples/locale/el/LC_MESSAGES/{hellotk.mo → hello_tk.mo} +0 -0
- data/samples/locale/eo/LC_MESSAGES/hello.mo +0 -0
- data/samples/locale/eo/LC_MESSAGES/hello2.mo +0 -0
- data/samples/locale/eo/LC_MESSAGES/{helloglade2.mo → hello_glade2.mo} +0 -0
- data/samples/locale/eo/LC_MESSAGES/{hellogtk.mo → hello_gtk.mo} +0 -0
- data/samples/locale/eo/LC_MESSAGES/hello_plural.mo +0 -0
- data/samples/locale/eo/LC_MESSAGES/{hellotk.mo → hello_tk.mo} +0 -0
- data/samples/locale/es/LC_MESSAGES/hello.mo +0 -0
- data/samples/locale/es/LC_MESSAGES/hello2.mo +0 -0
- data/samples/locale/es/LC_MESSAGES/{helloglade2.mo → hello_glade2.mo} +0 -0
- data/samples/locale/es/LC_MESSAGES/{hellogtk.mo → hello_gtk.mo} +0 -0
- data/samples/locale/es/LC_MESSAGES/hello_plural.mo +0 -0
- data/samples/locale/es/LC_MESSAGES/{hellotk.mo → hello_tk.mo} +0 -0
- data/samples/locale/fr/LC_MESSAGES/hello.mo +0 -0
- data/samples/locale/fr/LC_MESSAGES/hello2.mo +0 -0
- data/samples/locale/fr/LC_MESSAGES/{helloglade2.mo → hello_glade2.mo} +0 -0
- data/samples/locale/fr/LC_MESSAGES/{hellogtk.mo → hello_gtk.mo} +0 -0
- data/samples/locale/fr/LC_MESSAGES/hello_plural.mo +0 -0
- data/samples/locale/fr/LC_MESSAGES/{hellotk.mo → hello_tk.mo} +0 -0
- data/samples/locale/hr/LC_MESSAGES/hello.mo +0 -0
- data/samples/locale/hr/LC_MESSAGES/hello2.mo +0 -0
- data/samples/locale/hr/LC_MESSAGES/{helloglade2.mo → hello_glade2.mo} +0 -0
- data/samples/locale/hr/LC_MESSAGES/{hellogtk.mo → hello_gtk.mo} +0 -0
- data/samples/locale/hr/LC_MESSAGES/hello_plural.mo +0 -0
- data/samples/locale/hr/LC_MESSAGES/{hellotk.mo → hello_tk.mo} +0 -0
- data/samples/locale/hu/LC_MESSAGES/hello.mo +0 -0
- data/samples/locale/hu/LC_MESSAGES/hello2.mo +0 -0
- data/samples/locale/hu/LC_MESSAGES/{helloglade2.mo → hello_glade2.mo} +0 -0
- data/samples/locale/hu/LC_MESSAGES/{hellogtk.mo → hello_gtk.mo} +0 -0
- data/samples/locale/hu/LC_MESSAGES/hello_plural.mo +0 -0
- data/samples/locale/hu/LC_MESSAGES/{hellotk.mo → hello_tk.mo} +0 -0
- data/samples/locale/it/LC_MESSAGES/hello.mo +0 -0
- data/samples/locale/it/LC_MESSAGES/hello2.mo +0 -0
- data/samples/locale/it/LC_MESSAGES/{helloglade2.mo → hello_glade2.mo} +0 -0
- data/samples/locale/it/LC_MESSAGES/{hellotk.mo → hello_gtk.mo} +0 -0
- data/samples/locale/it/LC_MESSAGES/hello_plural.mo +0 -0
- data/samples/locale/it/LC_MESSAGES/{hellogtk.mo → hello_tk.mo} +0 -0
- data/samples/locale/ja/LC_MESSAGES/hello.mo +0 -0
- data/samples/locale/ja/LC_MESSAGES/hello2.mo +0 -0
- data/samples/locale/ja/LC_MESSAGES/{helloglade2.mo → hello_glade2.mo} +0 -0
- data/samples/locale/ja/LC_MESSAGES/{hellogtk.mo → hello_gtk.mo} +0 -0
- data/samples/locale/ja/LC_MESSAGES/hello_plural.mo +0 -0
- data/samples/locale/ja/LC_MESSAGES/{hellotk.mo → hello_tk.mo} +0 -0
- data/samples/locale/ko/LC_MESSAGES/hello.mo +0 -0
- data/samples/locale/ko/LC_MESSAGES/hello2.mo +0 -0
- data/samples/locale/ko/LC_MESSAGES/{helloglade2.mo → hello_glade2.mo} +0 -0
- data/samples/locale/ko/LC_MESSAGES/{hellogtk.mo → hello_gtk.mo} +0 -0
- data/samples/locale/ko/LC_MESSAGES/hello_plural.mo +0 -0
- data/samples/locale/ko/LC_MESSAGES/{hellotk.mo → hello_tk.mo} +0 -0
- data/samples/locale/lv/LC_MESSAGES/hello.mo +0 -0
- data/samples/locale/lv/LC_MESSAGES/hello2.mo +0 -0
- data/samples/locale/lv/LC_MESSAGES/{helloglade2.mo → hello_glade2.mo} +0 -0
- data/samples/locale/lv/LC_MESSAGES/{hellogtk.mo → hello_gtk.mo} +0 -0
- data/samples/locale/lv/LC_MESSAGES/hello_plural.mo +0 -0
- data/samples/locale/lv/LC_MESSAGES/{hellotk.mo → hello_tk.mo} +0 -0
- data/samples/locale/nb/LC_MESSAGES/hello.mo +0 -0
- data/samples/locale/nb/LC_MESSAGES/hello2.mo +0 -0
- data/samples/locale/nb/LC_MESSAGES/{helloglade2.mo → hello_glade2.mo} +0 -0
- data/samples/locale/nb/LC_MESSAGES/{hellogtk.mo → hello_gtk.mo} +0 -0
- data/samples/locale/nb/LC_MESSAGES/hello_plural.mo +0 -0
- data/samples/locale/nb/LC_MESSAGES/{hellotk.mo → hello_tk.mo} +0 -0
- data/samples/locale/nl/LC_MESSAGES/hello.mo +0 -0
- data/samples/locale/nl/LC_MESSAGES/hello2.mo +0 -0
- data/samples/locale/nl/LC_MESSAGES/{helloglade2.mo → hello_glade2.mo} +0 -0
- data/samples/locale/nl/LC_MESSAGES/{hellotk.mo → hello_gtk.mo} +0 -0
- data/samples/locale/nl/LC_MESSAGES/hello_plural.mo +0 -0
- data/samples/locale/nl/LC_MESSAGES/{hellogtk.mo → hello_tk.mo} +0 -0
- data/samples/locale/pt_BR/LC_MESSAGES/hello.mo +0 -0
- data/samples/locale/pt_BR/LC_MESSAGES/hello2.mo +0 -0
- data/samples/locale/pt_BR/LC_MESSAGES/{helloglade2.mo → hello_glade2.mo} +0 -0
- data/samples/locale/pt_BR/LC_MESSAGES/{hellogtk.mo → hello_gtk.mo} +0 -0
- data/samples/locale/pt_BR/LC_MESSAGES/hello_plural.mo +0 -0
- data/samples/locale/pt_BR/LC_MESSAGES/{hellotk.mo → hello_tk.mo} +0 -0
- data/samples/locale/ru/LC_MESSAGES/hello.mo +0 -0
- data/samples/locale/ru/LC_MESSAGES/hello2.mo +0 -0
- data/samples/locale/ru/LC_MESSAGES/{helloglade2.mo → hello_glade2.mo} +0 -0
- data/samples/locale/ru/LC_MESSAGES/{hellogtk.mo → hello_gtk.mo} +0 -0
- data/samples/locale/ru/LC_MESSAGES/hello_plural.mo +0 -0
- data/samples/locale/ru/LC_MESSAGES/{hellotk.mo → hello_tk.mo} +0 -0
- data/samples/locale/sr/LC_MESSAGES/hello.mo +0 -0
- data/samples/locale/sr/LC_MESSAGES/hello2.mo +0 -0
- data/samples/locale/sr/LC_MESSAGES/{helloglade2.mo → hello_glade2.mo} +0 -0
- data/samples/locale/sr/LC_MESSAGES/{hellogtk.mo → hello_gtk.mo} +0 -0
- data/samples/locale/sr/LC_MESSAGES/hello_plural.mo +0 -0
- data/samples/locale/sr/LC_MESSAGES/{hellotk.mo → hello_tk.mo} +0 -0
- data/samples/locale/sv/LC_MESSAGES/hello.mo +0 -0
- data/samples/locale/sv/LC_MESSAGES/hello2.mo +0 -0
- data/samples/locale/sv/LC_MESSAGES/{helloglade2.mo → hello_glade2.mo} +0 -0
- data/samples/locale/sv/LC_MESSAGES/{hellogtk.mo → hello_gtk.mo} +0 -0
- data/samples/locale/sv/LC_MESSAGES/hello_plural.mo +0 -0
- data/samples/locale/sv/LC_MESSAGES/{hellotk.mo → hello_tk.mo} +0 -0
- data/samples/locale/ua/LC_MESSAGES/hello.mo +0 -0
- data/samples/locale/ua/LC_MESSAGES/hello2.mo +0 -0
- data/samples/locale/ua/LC_MESSAGES/{helloglade2.mo → hello_glade2.mo} +0 -0
- data/samples/locale/ua/LC_MESSAGES/{hellogtk.mo → hello_gtk.mo} +0 -0
- data/samples/locale/ua/LC_MESSAGES/hello_plural.mo +0 -0
- data/samples/locale/ua/LC_MESSAGES/{hellotk.mo → hello_tk.mo} +0 -0
- data/samples/locale/vi/LC_MESSAGES/hello.mo +0 -0
- data/samples/locale/vi/LC_MESSAGES/hello2.mo +0 -0
- data/samples/locale/vi/LC_MESSAGES/{helloglade2.mo → hello_glade2.mo} +0 -0
- data/samples/locale/vi/LC_MESSAGES/{hellogtk.mo → hello_gtk.mo} +0 -0
- data/samples/locale/vi/LC_MESSAGES/hello_plural.mo +0 -0
- data/samples/locale/vi/LC_MESSAGES/{hellotk.mo → hello_tk.mo} +0 -0
- data/samples/locale/zh/LC_MESSAGES/hello.mo +0 -0
- data/samples/locale/zh/LC_MESSAGES/hello2.mo +0 -0
- data/samples/locale/zh/LC_MESSAGES/{helloglade2.mo → hello_glade2.mo} +0 -0
- data/samples/locale/zh/LC_MESSAGES/{hellogtk.mo → hello_gtk.mo} +0 -0
- data/samples/locale/zh/LC_MESSAGES/hello_plural.mo +0 -0
- data/samples/locale/zh/LC_MESSAGES/{hellotk.mo → hello_tk.mo} +0 -0
- data/samples/locale/zh_TW/LC_MESSAGES/hello.mo +0 -0
- data/samples/locale/zh_TW/LC_MESSAGES/hello2.mo +0 -0
- data/samples/locale/zh_TW/LC_MESSAGES/{helloglade2.mo → hello_glade2.mo} +0 -0
- data/samples/locale/zh_TW/LC_MESSAGES/{hellogtk.mo → hello_gtk.mo} +0 -0
- data/samples/locale/zh_TW/LC_MESSAGES/hello_plural.mo +0 -0
- data/samples/locale/zh_TW/LC_MESSAGES/{hellotk.mo → hello_tk.mo} +0 -0
- data/samples/makemo.rb +3 -2
- data/samples/po/bg/{helloglade2.po → hello_glade2.po} +4 -4
- data/samples/po/bg/{hellogtk.po → hello_gtk.po} +1 -1
- data/samples/po/bg/{hellotk.po → hello_tk.po} +2 -2
- data/samples/po/bs/{helloglade2.po → hello_glade2.po} +6 -6
- data/samples/po/bs/{hellogtk.po → hello_gtk.po} +3 -3
- data/samples/po/bs/{hellotk.po → hello_tk.po} +4 -4
- data/samples/po/ca/{helloglade2.po → hello_glade2.po} +4 -4
- data/samples/po/ca/{hellogtk.po → hello_gtk.po} +1 -1
- data/samples/po/ca/{hellotk.po → hello_tk.po} +2 -2
- data/samples/po/cs/hello.po +1 -1
- data/samples/po/cs/hello2.po +1 -1
- data/samples/po/cs/{helloglade2.po → hello_glade2.po} +3 -3
- data/samples/po/cs/{hellogtk.po → hello_gtk.po} +2 -2
- data/samples/po/cs/hello_noop.po +1 -1
- data/samples/po/cs/{hellotk.po → hello_tk.po} +2 -2
- data/samples/po/de/hello.po +1 -1
- data/samples/po/de/hello2.po +1 -1
- data/samples/po/de/{helloglade2.po → hello_glade2.po} +3 -3
- data/samples/po/de/{hellogtk.po → hello_gtk.po} +2 -2
- data/samples/po/de/hello_noop.po +1 -1
- data/samples/po/de/{hellotk.po → hello_tk.po} +2 -2
- data/samples/po/el/hello.po +1 -1
- data/samples/po/el/{helloglade2.po → hello_glade2.po} +4 -4
- data/samples/po/el/{hellogtk.po → hello_gtk.po} +1 -1
- data/samples/po/el/{hellotk.po → hello_tk.po} +2 -2
- data/samples/po/eo/{helloglade2.po → hello_glade2.po} +4 -4
- data/samples/po/eo/{hellogtk.po → hello_gtk.po} +1 -1
- data/samples/po/eo/{hellotk.po → hello_tk.po} +2 -2
- data/samples/po/es/{helloglade2.po → hello_glade2.po} +4 -4
- data/samples/po/es/{hellogtk.po → hello_gtk.po} +2 -2
- data/samples/po/es/{hellotk.po → hello_tk.po} +2 -2
- data/samples/po/fr/{helloglade2.po → hello_glade2.po} +4 -4
- data/samples/po/fr/{hellogtk.po → hello_gtk.po} +2 -2
- data/samples/po/fr/{hellotk.po → hello_tk.po} +2 -2
- data/samples/po/{helloglade2.pot → hello_glade2.pot} +4 -4
- data/samples/po/{hellogtk.pot → hello_gtk.pot} +1 -1
- data/samples/po/{hellotk.pot → hello_tk.pot} +2 -2
- data/samples/po/hr/{helloglade2.po → hello_glade2.po} +6 -6
- data/samples/po/hr/{hellogtk.po → hello_gtk.po} +3 -3
- data/samples/po/hr/{hellotk.po → hello_tk.po} +4 -4
- data/samples/po/hu/{helloglade2.po → hello_glade2.po} +4 -4
- data/samples/po/hu/{hellogtk.po → hello_gtk.po} +1 -1
- data/samples/po/hu/{hellotk.po → hello_tk.po} +2 -2
- data/samples/po/it/hello.po +1 -1
- data/samples/po/it/hello2.po +1 -1
- data/samples/po/it/{helloglade2.po → hello_glade2.po} +4 -4
- data/samples/po/it/{hellogtk.po → hello_gtk.po} +2 -2
- data/samples/po/it/hello_noop.po +1 -1
- data/samples/po/it/{hellotk.po → hello_tk.po} +2 -2
- data/samples/po/ja/{helloglade2.po → hello_glade2.po} +4 -4
- data/samples/po/ja/{hellogtk.po → hello_gtk.po} +2 -2
- data/samples/po/ja/{hellotk.po → hello_tk.po} +2 -2
- data/samples/po/ko/hello.po +1 -1
- data/samples/po/ko/hello2.po +1 -1
- data/samples/po/ko/{helloglade2.po → hello_glade2.po} +3 -3
- data/samples/po/ko/{hellogtk.po → hello_gtk.po} +2 -2
- data/samples/po/ko/hello_noop.po +1 -1
- data/samples/po/ko/{hellotk.po → hello_tk.po} +1 -1
- data/samples/po/lv/{helloglade2.po → hello_glade2.po} +4 -4
- data/samples/po/lv/{hellogtk.po → hello_gtk.po} +1 -1
- data/samples/po/lv/{hellotk.po → hello_tk.po} +2 -2
- data/samples/po/nb/{helloglade2.po → hello_glade2.po} +5 -6
- data/samples/po/nb/{hellogtk.po → hello_gtk.po} +1 -1
- data/samples/po/nb/{hellotk.po → hello_tk.po} +2 -2
- data/samples/po/nl/hello.po +1 -1
- data/samples/po/nl/hello2.po +1 -1
- data/samples/po/nl/{helloglade2.po → hello_glade2.po} +5 -5
- data/samples/po/nl/{hellogtk.po → hello_gtk.po} +2 -2
- data/samples/po/nl/hello_noop.po +1 -1
- data/samples/po/nl/hello_plural.po +1 -1
- data/samples/po/nl/{hellotk.po → hello_tk.po} +2 -2
- data/samples/po/pt_BR/{helloglade2.po → hello_glade2.po} +4 -4
- data/samples/po/pt_BR/{hellogtk.po → hello_gtk.po} +1 -1
- data/samples/po/pt_BR/{hellotk.po → hello_tk.po} +0 -0
- data/samples/po/ru/{helloglade2.po → hello_glade2.po} +5 -5
- data/samples/po/ru/{hellogtk.po → hello_gtk.po} +3 -3
- data/samples/po/ru/{hellotk.po → hello_tk.po} +3 -3
- data/samples/po/sr/{helloglade2.po → hello_glade2.po} +4 -4
- data/samples/po/sr/{hellogtk.po → hello_gtk.po} +1 -1
- data/samples/po/sr/{hellotk.po → hello_tk.po} +2 -2
- data/samples/po/sv/{helloglade2.po → hello_glade2.po} +4 -4
- data/samples/po/sv/{hellogtk.po → hello_gtk.po} +1 -1
- data/samples/po/sv/{hellotk.po → hello_tk.po} +2 -2
- data/samples/po/test.rb +11 -0
- data/samples/po/ua/{helloglade2.po → hello_glade2.po} +4 -4
- data/samples/po/ua/{hellogtk.po → hello_gtk.po} +1 -1
- data/samples/po/ua/{hellotk.po → hello_tk.po} +2 -2
- data/samples/po/vi/{helloglade2.po → hello_glade2.po} +4 -4
- data/samples/po/vi/{hellogtk.po → hello_gtk.po} +1 -1
- data/samples/po/vi/{hellotk.po → hello_tk.po} +2 -2
- data/samples/po/zh/{helloglade2.po → hello_glade2.po} +4 -4
- data/samples/po/zh/{hellogtk.po → hello_gtk.po} +2 -2
- data/samples/po/zh/{hellotk.po → hello_tk.po} +2 -2
- data/samples/po/zh_TW/{helloglade2.po → hello_glade2.po} +4 -4
- data/samples/po/zh_TW/{hellogtk.po → hello_gtk.po} +1 -1
- data/samples/po/zh_TW/{hellotk.po → hello_tk.po} +2 -2
- data/src/poparser.ry +1 -1
- data/test/README +1 -18
- data/test/Rakefile +14 -41
- data/test/locale/cr/LC_MESSAGES/plural.mo +0 -0
- data/test/locale/da/LC_MESSAGES/plural.mo +0 -0
- data/test/locale/da/LC_MESSAGES/plural_error.mo +0 -0
- data/test/locale/fr/LC_MESSAGES/plural_error.mo +0 -0
- data/test/locale/fr/LC_MESSAGES/test1.mo +0 -0
- data/test/locale/fr/LC_MESSAGES/test2.mo +0 -0
- data/test/locale/fr/LC_MESSAGES/test6.mo +0 -0
- data/test/locale/ir/LC_MESSAGES/plural.mo +0 -0
- data/test/locale/ja/LC_MESSAGES/npgettext.mo +0 -0
- data/test/locale/ja/LC_MESSAGES/{test_nsgettext.mo → nsgettext.mo} +0 -0
- data/test/locale/ja/LC_MESSAGES/{test_pgettext.mo → pgettext.mo} +0 -0
- data/test/locale/ja/LC_MESSAGES/plural_error.mo +0 -0
- data/test/locale/ja/LC_MESSAGES/{test_rubyparser.mo → rubyparser.mo} +0 -0
- data/test/locale/ja/LC_MESSAGES/{test_sgettext.mo → sgettext.mo} +0 -0
- data/test/locale/ja/LC_MESSAGES/test2.mo +0 -0
- data/test/locale/la/LC_MESSAGES/plural.mo +0 -0
- data/test/locale/la/LC_MESSAGES/plural_error.mo +0 -0
- data/test/locale/li/LC_MESSAGES/plural.mo +0 -0
- data/test/locale/po/LC_MESSAGES/plural.mo +0 -0
- data/test/locale/sl/LC_MESSAGES/plural.mo +0 -0
- data/test/po/fr/test1.po +3 -3
- data/test/po/fr/test6.po +1 -1
- data/test/po/ja/{test_npgettext.po → npgettext.po} +2 -2
- data/test/po/ja/{test_nsgettext.po → nsgettext.po} +8 -8
- data/test/po/ja/{test_pgettext.po → pgettext.po} +2 -2
- data/test/po/ja/{test_rubyparser.po → rubyparser.po} +0 -0
- data/test/po/ja/{test_sgettext.po → sgettext.po} +8 -8
- data/test/po/ja/test1.po +2 -2
- data/test/test_class_info.rb +80 -0
- data/test/test_gettext.rb +118 -257
- data/test/test_locale_path.rb +37 -0
- data/test/test_parser.rb +6 -105
- data/test/test_string.rb +1 -2
- data/test/test_textdomain_bind.rb +37 -0
- data/test/test_textdomain_multi.rb +69 -0
- data/test/test_textdomain_toplevel.rb +42 -0
- data/test/test_thread.rb +39 -0
- data/test/testlib/N_.rb +1 -1
- data/test/testlib/erb.rhtml +1 -1
- data/test/testlib/erb.rxml +1 -1
- data/test/testlib/gettext.rb +1 -1
- data/test/testlib/helper.rb +11 -0
- data/test/testlib/multi_textdomain.rb +119 -0
- data/test/testlib/ngettext.rb +1 -1
- data/test/testlib/npgettext.rb +1 -3
- data/test/testlib/nsgettext.rb +1 -3
- data/test/testlib/pgettext.rb +1 -3
- data/test/testlib/sgettext.rb +1 -3
- data/test/testlib/{testlib1.rb → simple.rb} +3 -4
- data/{samples/rails/public/favicon.ico → test/tools/files/app.pot} +0 -0
- data/test/{rails/public/favicon.ico → tools/files/de/app.po} +0 -0
- data/test/tools/files/en/app.po +0 -0
- data/test/tools/files/en/test.po +21 -0
- data/test/tools/files/simple_1.po +2 -0
- data/test/tools/files/simple_2.po +2 -0
- data/test/tools/files/simple_translation.rb +1 -0
- data/test/tools/files/version.po +7 -0
- data/test/tools/test.pot +21 -0
- data/test/tools/test_tools.rb +61 -0
- metadata +224 -853
- data/README +0 -177
- data/data/locale/bg/LC_MESSAGES/rails.mo +0 -0
- data/data/locale/bs/LC_MESSAGES/rails.mo +0 -0
- data/data/locale/ca/LC_MESSAGES/rails.mo +0 -0
- data/data/locale/cs/LC_MESSAGES/rails.mo +0 -0
- data/data/locale/de/LC_MESSAGES/rails.mo +0 -0
- data/data/locale/el/LC_MESSAGES/rails.mo +0 -0
- data/data/locale/eo/LC_MESSAGES/rails.mo +0 -0
- data/data/locale/es/LC_MESSAGES/rails.mo +0 -0
- data/data/locale/et/LC_MESSAGES/rails.mo +0 -0
- data/data/locale/fr/LC_MESSAGES/rails.mo +0 -0
- data/data/locale/hr/LC_MESSAGES/rails.mo +0 -0
- data/data/locale/hu/LC_MESSAGES/rails.mo +0 -0
- data/data/locale/it/LC_MESSAGES/rails.mo +0 -0
- data/data/locale/ja/LC_MESSAGES/rails.mo +0 -0
- data/data/locale/ko/LC_MESSAGES/rails.mo +0 -0
- data/data/locale/lv/LC_MESSAGES/rails.mo +0 -0
- data/data/locale/nb/LC_MESSAGES/rails.mo +0 -0
- data/data/locale/nl/LC_MESSAGES/rails.mo +0 -0
- data/data/locale/pt_BR/LC_MESSAGES/rails.mo +0 -0
- data/data/locale/ru/LC_MESSAGES/rails.mo +0 -0
- data/data/locale/sr/LC_MESSAGES/rails.mo +0 -0
- data/data/locale/ua/LC_MESSAGES/rails.mo +0 -0
- data/data/locale/vi/LC_MESSAGES/rails.mo +0 -0
- data/data/locale/zh/LC_MESSAGES/rails.mo +0 -0
- data/data/locale/zh_TW/LC_MESSAGES/rails.mo +0 -0
- data/doc/classes/ActionView/Helpers/FormBuilder.html +0 -154
- data/doc/classes/ActionView/TemplateFinder.html +0 -152
- data/doc/classes/ActiveRecord/Base.html +0 -360
- data/doc/classes/ActiveRecord/ConnectionAdapters/Column.html +0 -182
- data/doc/classes/ActiveRecord/Migration.html +0 -118
- data/doc/classes/GetText.html +0 -2003
- data/doc/classes/GetText/ActiveRecordParser.html +0 -236
- data/doc/classes/GetText/Container.html +0 -119
- data/doc/classes/GetText/ErbContainer.html +0 -223
- data/doc/classes/GetText/ErbParser.html +0 -156
- data/doc/classes/GetText/GladeParser.html +0 -133
- data/doc/classes/GetText/NoboundTextDomainError.html +0 -119
- data/doc/classes/GetText/PoParser.html +0 -169
- data/doc/classes/GetText/Rails.html +0 -293
- data/doc/classes/GetText/RubyParser.html +0 -133
- data/doc/classes/GetText/TextDomain.html +0 -572
- data/doc/classes/GetText/TextDomainManager.html +0 -443
- data/doc/classes/Iconv.html +0 -257
- data/doc/classes/Iconv/Failure.html +0 -105
- data/doc/classes/Iconv/IllegalSequence.html +0 -118
- data/doc/classes/Iconv/InvalidCharacter.html +0 -118
- data/doc/classes/Iconv/InvalidEncoding.html +0 -118
- data/doc/classes/Locale.html +0 -840
- data/doc/classes/Locale/Object.html +0 -803
- data/doc/classes/Locale/SystemBase.html +0 -271
- data/doc/classes/Locale/SystemCGI.html +0 -312
- data/doc/classes/Locale/SystemJRuby.html +0 -112
- data/doc/classes/Locale/SystemPosix.html +0 -163
- data/doc/classes/Locale/SystemWin32.html +0 -167
- data/doc/classes/Locale/SystemWin32Table.html +0 -123
- data/doc/classes/MOFile.html +0 -695
- data/doc/classes/MOFile/HeaderRev1.html +0 -150
- data/doc/classes/MOFile/InvalidFormat.html +0 -111
- data/doc/classes/Module.html +0 -158
- data/doc/classes/String.html +0 -225
- data/doc/created.rid +0 -1
- data/doc/files/ChangeLog.html +0 -2623
- data/doc/files/README.html +0 -531
- data/doc/files/lib/gettext/active_record_rb.html +0 -110
- data/doc/files/lib/gettext/cgi_rb.html +0 -110
- data/doc/files/lib/gettext/container_rb.html +0 -108
- data/doc/files/lib/gettext/erb_rb.html +0 -109
- data/doc/files/lib/gettext/iconv_rb.html +0 -109
- data/doc/files/lib/gettext/mo_rb.html +0 -109
- data/doc/files/lib/gettext/parser/active_record_rb.html +0 -119
- data/doc/files/lib/gettext/parser/erb_rb.html +0 -109
- data/doc/files/lib/gettext/parser/glade_rb.html +0 -109
- data/doc/files/lib/gettext/parser/ruby_rb.html +0 -110
- data/doc/files/lib/gettext/poparser_rb.html +0 -108
- data/doc/files/lib/gettext/rails_compat_rb.html +0 -108
- data/doc/files/lib/gettext/rails_rb.html +0 -112
- data/doc/files/lib/gettext/rgettext_rb.html +0 -110
- data/doc/files/lib/gettext/rmsgfmt_rb.html +0 -113
- data/doc/files/lib/gettext/rmsgmerge_rb.html +0 -112
- data/doc/files/lib/gettext/string_rb.html +0 -101
- data/doc/files/lib/gettext/textdomain_rb.html +0 -109
- data/doc/files/lib/gettext/textdomainmanager_rb.html +0 -109
- data/doc/files/lib/gettext/utils_rb.html +0 -111
- data/doc/files/lib/gettext/version_rb.html +0 -101
- data/doc/files/lib/gettext_rb.html +0 -113
- data/doc/files/lib/locale/base_rb.html +0 -101
- data/doc/files/lib/locale/cgi_rb.html +0 -108
- data/doc/files/lib/locale/jruby_rb.html +0 -110
- data/doc/files/lib/locale/object_rb.html +0 -101
- data/doc/files/lib/locale/posix_rb.html +0 -108
- data/doc/files/lib/locale/win32_rb.html +0 -110
- data/doc/files/lib/locale/win32_table_rb.html +0 -101
- data/doc/files/lib/locale_rb.html +0 -111
- data/doc/fr_class_index.html +0 -61
- data/doc/fr_file_index.html +0 -58
- data/doc/fr_method_index.html +0 -163
- data/doc/index.html +0 -24
- data/doc/rdoc-style.css +0 -208
- data/lib/gettext/active_record.rb +0 -357
- data/lib/gettext/container.rb +0 -19
- data/lib/gettext/erb.rb +0 -56
- data/lib/gettext/mo.rb +0 -320
- data/lib/gettext/parser/active_record.rb +0 -184
- data/lib/gettext/rails.rb +0 -547
- data/lib/gettext/rails_compat.rb +0 -16
- data/lib/gettext/textdomainmanager.rb +0 -103
- data/lib/locale.rb +0 -183
- data/lib/locale/base.rb +0 -60
- data/lib/locale/cgi.rb +0 -103
- data/lib/locale/jruby.rb +0 -36
- data/lib/locale/object.rb +0 -237
- data/lib/locale/posix.rb +0 -36
- data/lib/locale/win32.rb +0 -49
- data/lib/locale/win32_table.rb +0 -235
- data/po/bg/rails.po +0 -169
- data/po/bs/rails.po +0 -185
- data/po/ca/rails.po +0 -170
- data/po/cs/rails.po +0 -189
- data/po/el/rails.po +0 -169
- data/po/eo/rails.po +0 -170
- data/po/es/rails.po +0 -170
- data/po/et/rails.po +0 -170
- data/po/fr/rails.po +0 -174
- data/po/hr/rails.po +0 -186
- data/po/hu/rails.po +0 -170
- data/po/it/rails.po +0 -176
- data/po/ja/rails.po +0 -170
- data/po/ko/rails.po +0 -174
- data/po/lv/rails.po +0 -175
- data/po/nb/rails.po +0 -171
- data/po/nl/rails.po +0 -178
- data/po/pt_BR/rails.po +0 -171
- data/po/rails.pot +0 -170
- data/po/ru/rails.po +0 -178
- data/po/sr/rails.po +0 -178
- data/po/ua/rails.po +0 -184
- data/po/vi/rails.po +0 -170
- data/po/zh/rails.po +0 -166
- data/po/zh_TW/rails.po +0 -166
- data/post-setup.rb +0 -17
- data/pre-setup.rb +0 -20
- data/samples/hello_textdomain.rb +0 -21
- data/samples/hellogtk.rb +0 -27
- data/samples/rails/README +0 -73
- data/samples/rails/Rakefile +0 -10
- data/samples/rails/app/controllers/application.rb +0 -40
- data/samples/rails/app/controllers/articles_controller.rb +0 -96
- data/samples/rails/app/helpers/application_helper.rb +0 -3
- data/samples/rails/app/helpers/articles_helper.rb +0 -60
- data/samples/rails/app/models/article.rb +0 -16
- data/samples/rails/app/views/articles/edit.html.erb +0 -21
- data/samples/rails/app/views/articles/index.html.erb +0 -17
- data/samples/rails/app/views/articles/new.html.erb +0 -19
- data/samples/rails/app/views/articles/show.html.erb +0 -6
- data/samples/rails/app/views/layouts/articles.html.erb +0 -26
- data/samples/rails/config/boot.rb +0 -109
- data/samples/rails/config/database.yml +0 -47
- data/samples/rails/config/environment.rb +0 -60
- data/samples/rails/config/environments/development.rb +0 -18
- data/samples/rails/config/environments/production.rb +0 -18
- data/samples/rails/config/environments/test.rb +0 -22
- data/samples/rails/config/initializers/inflections.rb +0 -10
- data/samples/rails/config/initializers/mime_types.rb +0 -5
- data/samples/rails/config/routes.rb +0 -38
- data/samples/rails/db/migrate/001_create_articles.rb +0 -14
- data/samples/rails/db/schema.rb +0 -20
- data/samples/rails/lib/tasks/gettext.rake +0 -16
- data/samples/rails/locale/bg/LC_MESSAGES/blog.mo +0 -0
- data/samples/rails/locale/bs/LC_MESSAGES/blog.mo +0 -0
- data/samples/rails/locale/ca/LC_MESSAGES/blog.mo +0 -0
- data/samples/rails/locale/cs/LC_MESSAGES/blog.mo +0 -0
- data/samples/rails/locale/de/LC_MESSAGES/blog.mo +0 -0
- data/samples/rails/locale/el/LC_MESSAGES/blog.mo +0 -0
- data/samples/rails/locale/en/LC_MESSAGES/blog.mo +0 -0
- data/samples/rails/locale/eo/LC_MESSAGES/blog.mo +0 -0
- data/samples/rails/locale/es/LC_MESSAGES/blog.mo +0 -0
- data/samples/rails/locale/fr/LC_MESSAGES/blog.mo +0 -0
- data/samples/rails/locale/hr/LC_MESSAGES/blog.mo +0 -0
- data/samples/rails/locale/hu/LC_MESSAGES/blog.mo +0 -0
- data/samples/rails/locale/it/LC_MESSAGES/blog.mo +0 -0
- data/samples/rails/locale/ja/LC_MESSAGES/blog.mo +0 -0
- data/samples/rails/locale/ko/LC_MESSAGES/blog.mo +0 -0
- data/samples/rails/locale/lv/LC_MESSAGES/blog.mo +0 -0
- data/samples/rails/locale/nb/LC_MESSAGES/blog.mo +0 -0
- data/samples/rails/locale/nl/LC_MESSAGES/blog.mo +0 -0
- data/samples/rails/locale/pt_BR/LC_MESSAGES/blog.mo +0 -0
- data/samples/rails/locale/ru/LC_MESSAGES/blog.mo +0 -0
- data/samples/rails/locale/sr/LC_MESSAGES/blog.mo +0 -0
- data/samples/rails/locale/ua/LC_MESSAGES/blog.mo +0 -0
- data/samples/rails/locale/vi/LC_MESSAGES/blog.mo +0 -0
- data/samples/rails/locale/zh/LC_MESSAGES/blog.mo +0 -0
- data/samples/rails/locale/zh_TW/LC_MESSAGES/blog.mo +0 -0
- data/samples/rails/po/bg/blog.po +0 -101
- data/samples/rails/po/blog.pot +0 -102
- data/samples/rails/po/bs/blog.po +0 -103
- data/samples/rails/po/ca/blog.po +0 -101
- data/samples/rails/po/cs/blog.po +0 -104
- data/samples/rails/po/de/blog.po +0 -104
- data/samples/rails/po/el/blog.po +0 -102
- data/samples/rails/po/en/blog.po +0 -103
- data/samples/rails/po/eo/blog.po +0 -102
- data/samples/rails/po/es/blog.po +0 -101
- data/samples/rails/po/fr/blog.po +0 -102
- data/samples/rails/po/hr/blog.po +0 -102
- data/samples/rails/po/hu/blog.po +0 -101
- data/samples/rails/po/it/blog.po +0 -102
- data/samples/rails/po/ja/blog.po +0 -101
- data/samples/rails/po/ko/blog.po +0 -102
- data/samples/rails/po/lv/blog.po +0 -103
- data/samples/rails/po/nb/blog.po +0 -102
- data/samples/rails/po/nl/blog.po +0 -102
- data/samples/rails/po/pt_BR/blog.po +0 -102
- data/samples/rails/po/ru/blog.po +0 -102
- data/samples/rails/po/sr/blog.po +0 -103
- data/samples/rails/po/ua/blog.po +0 -105
- data/samples/rails/po/vi/blog.po +0 -102
- data/samples/rails/po/zh/blog.po +0 -101
- data/samples/rails/po/zh_TW/blog.po +0 -103
- data/samples/rails/public/404.html +0 -30
- data/samples/rails/public/422.html +0 -30
- data/samples/rails/public/500.html +0 -30
- data/samples/rails/public/dispatch.cgi +0 -10
- data/samples/rails/public/dispatch.fcgi +0 -24
- data/samples/rails/public/dispatch.rb +0 -10
- data/samples/rails/public/images/rails.png +0 -0
- data/samples/rails/public/index.html +0 -277
- data/samples/rails/public/javascripts/application.js +0 -2
- data/samples/rails/public/javascripts/controls.js +0 -963
- data/samples/rails/public/javascripts/dragdrop.js +0 -972
- data/samples/rails/public/javascripts/effects.js +0 -1120
- data/samples/rails/public/javascripts/prototype.js +0 -4225
- data/samples/rails/public/robots.txt +0 -1
- data/samples/rails/public/stylesheets/blog.css +0 -136
- data/samples/rails/public/stylesheets/scaffold.css +0 -74
- data/samples/rails/script/about +0 -3
- data/samples/rails/script/breakpointer +0 -3
- data/samples/rails/script/console +0 -3
- data/samples/rails/script/destroy +0 -3
- data/samples/rails/script/generate +0 -3
- data/samples/rails/script/performance/benchmarker +0 -3
- data/samples/rails/script/performance/profiler +0 -3
- data/samples/rails/script/plugin +0 -3
- data/samples/rails/script/process/reaper +0 -3
- data/samples/rails/script/process/spawner +0 -3
- data/samples/rails/script/process/spinner +0 -3
- data/samples/rails/script/runner +0 -3
- data/samples/rails/script/server +0 -3
- data/samples/rails/test/fixtures/articles.yml +0 -5
- data/samples/rails/test/functional/articles_controller_test.rb +0 -51
- data/samples/rails/test/test_helper.rb +0 -38
- data/samples/rails/test/unit/article_test.rb +0 -7
- data/samples/rails/vendor/plugins/gettext/README +0 -17
- data/samples/rails/vendor/plugins/gettext/Rakefile +0 -17
- data/samples/rails/vendor/plugins/gettext/init.rb +0 -21
- data/samples/rails/vendor/plugins/gettext/lib/gettext_plugin.rb +0 -33
- data/samples/rails/vendor/plugins/gettext/locale/bg/LC_MESSAGES/gettext_plugin.mo +0 -0
- data/samples/rails/vendor/plugins/gettext/locale/bs/LC_MESSAGES/gettext_plugin.mo +0 -0
- data/samples/rails/vendor/plugins/gettext/locale/ca/LC_MESSAGES/gettext_plugin.mo +0 -0
- data/samples/rails/vendor/plugins/gettext/locale/cs/LC_MESSAGES/gettext_plugin.mo +0 -0
- data/samples/rails/vendor/plugins/gettext/locale/de/LC_MESSAGES/gettext_plugin.mo +0 -0
- data/samples/rails/vendor/plugins/gettext/locale/el/LC_MESSAGES/gettext_plugin.mo +0 -0
- data/samples/rails/vendor/plugins/gettext/locale/eo/LC_MESSAGES/gettext_plugin.mo +0 -0
- data/samples/rails/vendor/plugins/gettext/locale/es/LC_MESSAGES/gettext_plugin.mo +0 -0
- data/samples/rails/vendor/plugins/gettext/locale/fr/LC_MESSAGES/gettext_plugin.mo +0 -0
- data/samples/rails/vendor/plugins/gettext/locale/hr/LC_MESSAGES/gettext_plugin.mo +0 -0
- data/samples/rails/vendor/plugins/gettext/locale/hu/LC_MESSAGES/gettext_plugin.mo +0 -0
- data/samples/rails/vendor/plugins/gettext/locale/it/LC_MESSAGES/gettext_plugin.mo +0 -0
- data/samples/rails/vendor/plugins/gettext/locale/ja/LC_MESSAGES/gettext_plugin.mo +0 -0
- data/samples/rails/vendor/plugins/gettext/locale/ko/LC_MESSAGES/gettext_plugin.mo +0 -0
- data/samples/rails/vendor/plugins/gettext/locale/lv/LC_MESSAGES/gettext_plugin.mo +0 -0
- data/samples/rails/vendor/plugins/gettext/locale/nb/LC_MESSAGES/gettext_plugin.mo +0 -0
- data/samples/rails/vendor/plugins/gettext/locale/nl/LC_MESSAGES/gettext_plugin.mo +0 -0
- data/samples/rails/vendor/plugins/gettext/locale/pt_BR/LC_MESSAGES/gettext_plugin.mo +0 -0
- data/samples/rails/vendor/plugins/gettext/locale/ru/LC_MESSAGES/gettext_plugin.mo +0 -0
- data/samples/rails/vendor/plugins/gettext/locale/sr/LC_MESSAGES/gettext_plugin.mo +0 -0
- data/samples/rails/vendor/plugins/gettext/locale/ua/LC_MESSAGES/gettext_plugin.mo +0 -0
- data/samples/rails/vendor/plugins/gettext/locale/vi/LC_MESSAGES/gettext_plugin.mo +0 -0
- data/samples/rails/vendor/plugins/gettext/locale/zh/LC_MESSAGES/gettext_plugin.mo +0 -0
- data/samples/rails/vendor/plugins/gettext/locale/zh_TW/LC_MESSAGES/gettext_plugin.mo +0 -0
- data/samples/rails/vendor/plugins/gettext/po/bg/gettext_plugin.po +0 -27
- data/samples/rails/vendor/plugins/gettext/po/bs/gettext_plugin.po +0 -27
- data/samples/rails/vendor/plugins/gettext/po/ca/gettext_plugin.po +0 -27
- data/samples/rails/vendor/plugins/gettext/po/cs/gettext_plugin.po +0 -29
- data/samples/rails/vendor/plugins/gettext/po/de/gettext_plugin.po +0 -29
- data/samples/rails/vendor/plugins/gettext/po/el/gettext_plugin.po +0 -27
- data/samples/rails/vendor/plugins/gettext/po/eo/gettext_plugin.po +0 -28
- data/samples/rails/vendor/plugins/gettext/po/es/gettext_plugin.po +0 -28
- data/samples/rails/vendor/plugins/gettext/po/fr/gettext_plugin.po +0 -27
- data/samples/rails/vendor/plugins/gettext/po/gettext_plugin.pot +0 -28
- data/samples/rails/vendor/plugins/gettext/po/hr/gettext_plugin.po +0 -27
- data/samples/rails/vendor/plugins/gettext/po/hu/gettext_plugin.po +0 -27
- data/samples/rails/vendor/plugins/gettext/po/it/gettext_plugin.po +0 -27
- data/samples/rails/vendor/plugins/gettext/po/ja/gettext_plugin.po +0 -28
- data/samples/rails/vendor/plugins/gettext/po/ko/gettext_plugin.po +0 -27
- data/samples/rails/vendor/plugins/gettext/po/lv/gettext_plugin.po +0 -28
- data/samples/rails/vendor/plugins/gettext/po/nb/gettext_plugin.po +0 -29
- data/samples/rails/vendor/plugins/gettext/po/nl/gettext_plugin.po +0 -28
- data/samples/rails/vendor/plugins/gettext/po/pt_BR/gettext_plugin.po +0 -27
- data/samples/rails/vendor/plugins/gettext/po/ru/gettext_plugin.po +0 -25
- data/samples/rails/vendor/plugins/gettext/po/sr/gettext_plugin.po +0 -28
- data/samples/rails/vendor/plugins/gettext/po/ua/gettext_plugin.po +0 -30
- data/samples/rails/vendor/plugins/gettext/po/vi/gettext_plugin.po +0 -27
- data/samples/rails/vendor/plugins/gettext/po/zh/gettext_plugin.po +0 -27
- data/samples/rails/vendor/plugins/gettext/po/zh_TW/gettext_plugin.po +0 -29
- data/setup.rb +0 -1585
- data/test/benchmark.rb +0 -28
- data/test/db/mysql.drop.sql +0 -5
- data/test/db/mysql.sql +0 -57
- data/test/fixtures/book.rb +0 -3
- data/test/fixtures/developer.rb +0 -5
- data/test/fixtures/developers.yml +0 -21
- data/test/fixtures/inept_wizard.rb +0 -3
- data/test/fixtures/people.yml +0 -6
- data/test/fixtures/reply.rb +0 -40
- data/test/fixtures/topic.rb +0 -68
- data/test/fixtures/topics.yml +0 -22
- data/test/fixtures/user.rb +0 -3
- data/test/fixtures/wizard.rb +0 -5
- data/test/locale/ja/LC_MESSAGES/active_record.mo +0 -0
- data/test/locale/ja/LC_MESSAGES/test_npgettext.mo +0 -0
- data/test/po/active_record.pot +0 -393
- data/test/po/ja/active_record.po +0 -392
- data/test/rails/README +0 -5
- data/test/rails/Rakefile +0 -36
- data/test/rails/app/controllers/application.rb +0 -8
- data/test/rails/app/controllers/articles_controller.rb +0 -61
- data/test/rails/app/controllers/mailer_controller.rb +0 -19
- data/test/rails/app/controllers/users_controller.rb +0 -11
- data/test/rails/app/helpers/application_helper.rb +0 -3
- data/test/rails/app/helpers/articles_helper.rb +0 -2
- data/test/rails/app/helpers/mailer_helper.rb +0 -2
- data/test/rails/app/models/article.rb +0 -5
- data/test/rails/app/models/mailer.rb +0 -38
- data/test/rails/app/models/user.rb +0 -4
- data/test/rails/app/views/articles/_form.html.erb +0 -13
- data/test/rails/app/views/articles/_form_fr.html.erb +0 -1
- data/test/rails/app/views/articles/active_form_error.html.erb +0 -1
- data/test/rails/app/views/articles/change_title_error_messages_for.html.erb +0 -21
- data/test/rails/app/views/articles/edit.html.erb +0 -9
- data/test/rails/app/views/articles/list.html.erb +0 -27
- data/test/rails/app/views/articles/list_fr.html.erb +0 -1
- data/test/rails/app/views/articles/multi_error_messages_for.html.erb +0 -19
- data/test/rails/app/views/articles/new.html.erb +0 -8
- data/test/rails/app/views/articles/show.html.erb +0 -29
- data/test/rails/app/views/layouts/application.html.erb +0 -14
- data/test/rails/app/views/layouts/mailer.html.erb +0 -20
- data/test/rails/app/views/layouts/users.html.erb +0 -13
- data/test/rails/app/views/mailer/coverpage.rhtml +0 -6
- data/test/rails/app/views/mailer/coverpage_fr.rhtml +0 -6
- data/test/rails/app/views/mailer/singlepart.rhtml +0 -3
- data/test/rails/app/views/mailer/singlepart_fr.rhtml +0 -3
- data/test/rails/app/views/users/custom_error_message.html.erb +0 -13
- data/test/rails/app/views/users/custom_error_message_fr.html.erb +0 -13
- data/test/rails/config/boot.rb +0 -109
- data/test/rails/config/database.yml +0 -36
- data/test/rails/config/environment.rb +0 -70
- data/test/rails/config/environments/development.rb +0 -18
- data/test/rails/config/environments/production.rb +0 -18
- data/test/rails/config/environments/test.rb +0 -19
- data/test/rails/config/routes.rb +0 -23
- data/test/rails/db/schema.rb +0 -34
- data/test/rails/po/ja/rails_test.po +0 -149
- data/test/rails/po/rails_test.pot +0 -149
- data/test/rails/public/404.html +0 -30
- data/test/rails/public/500.html +0 -30
- data/test/rails/public/dispatch.cgi +0 -10
- data/test/rails/public/dispatch.fcgi +0 -24
- data/test/rails/public/dispatch.rb +0 -10
- data/test/rails/public/images/rails.png +0 -0
- data/test/rails/public/index.html +0 -277
- data/test/rails/public/javascripts/application.js +0 -2
- data/test/rails/public/javascripts/controls.js +0 -963
- data/test/rails/public/javascripts/dragdrop.js +0 -972
- data/test/rails/public/javascripts/effects.js +0 -1120
- data/test/rails/public/javascripts/prototype.js +0 -4225
- data/test/rails/public/robots.txt +0 -1
- data/test/rails/public/stylesheets/scaffold.css +0 -74
- data/test/rails/script/about +0 -3
- data/test/rails/script/breakpointer +0 -3
- data/test/rails/script/console +0 -3
- data/test/rails/script/destroy +0 -3
- data/test/rails/script/generate +0 -3
- data/test/rails/script/performance/benchmarker +0 -3
- data/test/rails/script/performance/profiler +0 -3
- data/test/rails/script/plugin +0 -3
- data/test/rails/script/process/inspector +0 -3
- data/test/rails/script/process/reaper +0 -3
- data/test/rails/script/process/spawner +0 -3
- data/test/rails/script/runner +0 -3
- data/test/rails/script/server +0 -3
- data/test/rails/test/fixtures/articles.yml +0 -11
- data/test/rails/test/fixtures/users.yml +0 -5
- data/test/rails/test/functional/articles_controller_test.rb +0 -119
- data/test/rails/test/functional/mailer_controller_test.rb +0 -95
- data/test/rails/test/functional/users_controller_test.rb +0 -65
- data/test/rails/test/integration/general_stories_test.rb +0 -58
- data/test/rails/test/result/en/create_error.html +0 -95
- data/test/rails/test/result/en/custom_error_message.html +0 -83
- data/test/rails/test/result/en/custom_error_message_with_plural.html +0 -83
- data/test/rails/test/result/en/list.html +0 -62
- data/test/rails/test/result/en/multi_error_messages_for.html +0 -153
- data/test/rails/test/result/en/multipart.html +0 -67
- data/test/rails/test/result/en/new.html +0 -95
- data/test/rails/test/result/en/show.html +0 -51
- data/test/rails/test/result/en/singlepart.html +0 -10
- data/test/rails/test/result/fr/custom_error_message.html +0 -83
- data/test/rails/test/result/fr/custom_error_message_with_plural.html +0 -83
- data/test/rails/test/result/fr/list.html +0 -15
- data/test/rails/test/result/fr/multipart.html +0 -67
- data/test/rails/test/result/fr/new.html +0 -23
- data/test/rails/test/result/fr/singlepart.html +0 -10
- data/test/rails/test/result/ja/create_error.html +0 -95
- data/test/rails/test/result/ja/custom_error_message.html +0 -83
- data/test/rails/test/result/ja/custom_error_message_with_plural.html +0 -83
- data/test/rails/test/result/ja/list.html +0 -62
- data/test/rails/test/result/ja/multi_error_messages_for.html +0 -153
- data/test/rails/test/result/ja/multipart.html +0 -67
- data/test/rails/test/result/ja/new.html +0 -95
- data/test/rails/test/result/ja/show.html +0 -51
- data/test/rails/test/result/ja/singlepart.html +0 -10
- data/test/rails/test/test_helper.rb +0 -28
- data/test/rails/test/unit/article_test.rb +0 -18
- data/test/test.bat +0 -2
- data/test/test.sh +0 -13
- data/test/test_active_record.rb +0 -2606
- data/test/test_cgi.rb +0 -91
- data/test/test_erb.rhtml +0 -15
- data/test/test_erb.rxml +0 -16
- data/test/test_gettext_toplevel.rb +0 -44
- data/test/test_gladeparser.glade +0 -183
- data/test/test_java.sh +0 -12
- data/test/test_locale.rb +0 -250
- data/test/test_multi_textdomain.rb +0 -49
- data/test/test_rails.rb +0 -45
- data/test/test_rails_caching.rb +0 -232
- data/test/testlib/testlib2.rb +0 -11
- data/test/testlib/testlib3.rb +0 -12
- data/test/testlib/testlib4.rb +0 -11
- data/test/testlib/testlib5.rb +0 -70
- data/test/testlib/testlib6.rb +0 -19
data/bin/rgettext
CHANGED
data/bin/rmsgfmt
CHANGED
@@ -11,11 +11,11 @@
|
|
11
11
|
=end
|
12
12
|
|
13
13
|
begin
|
14
|
-
require 'gettext/rmsgfmt'
|
14
|
+
require 'gettext/tools/rmsgfmt'
|
15
15
|
rescue LoadError
|
16
16
|
begin
|
17
17
|
require 'rubygems'
|
18
|
-
|
18
|
+
require 'gettext/tools/rmsgfmt'
|
19
19
|
rescue LoadError
|
20
20
|
raise 'Ruby-GetText-Package are not installed.'
|
21
21
|
end
|
data/bin/rmsgmerge
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
=begin
|
3
3
|
rmsgmerge - ruby version of msgmerge
|
4
4
|
|
5
|
-
Copyright (C) 2005 Masao Mutoh
|
5
|
+
Copyright (C) 2005-2009 Masao Mutoh
|
6
6
|
|
7
7
|
You may redistribute it and/or modify it under the same
|
8
8
|
license terms as Ruby.
|
@@ -11,11 +11,11 @@
|
|
11
11
|
=end
|
12
12
|
|
13
13
|
begin
|
14
|
-
require 'gettext/rmsgmerge'
|
14
|
+
require 'gettext/tools/rmsgmerge'
|
15
15
|
rescue LoadError
|
16
16
|
begin
|
17
17
|
require 'rubygems'
|
18
|
-
|
18
|
+
require 'gettext/tools/rmsgmerge'
|
19
19
|
rescue LoadError
|
20
20
|
raise 'Ruby-GetText-Package are not installed.'
|
21
21
|
end
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
data/gettext.gemspec
ADDED
@@ -0,0 +1,40 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
|
3
|
+
Gem::Specification.new do |s|
|
4
|
+
s.name = %q{gettext}
|
5
|
+
s.version = "2.0.0"
|
6
|
+
|
7
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
|
8
|
+
s.authors = ["Masao Mutoh"]
|
9
|
+
s.date = %q{2009-02-06}
|
10
|
+
s.description = %q{Ruby-GetText-Package is a GNU GetText-like program for Ruby. The catalog file(po-file) is same format with GNU GetText. So you can use GNU GetText tools for maintaining.}
|
11
|
+
s.email = %q{mutomasa at gmail.com}
|
12
|
+
s.executables = ["rgettext", "rmsgmerge", "rmsgfmt"]
|
13
|
+
s.extra_rdoc_files = ["lib/gettext.rb", "lib/gettext/tools.rb", "lib/gettext/core_ext/string.rb", "lib/gettext/version.rb", "README.rdoc"]
|
14
|
+
s.files = ["Manifest", "po/hr/rgettext.po", "po/cs/rgettext.po",
|
15
|
+
"po/el/rgettext.po", "po/bs/rgettext.po", "po/et/rgettext.po", "po/vi/rgettext.po", "po/pt_BR/rgettext.po", "po/nb/rgettext.po", "po/ko/rgettext.po", "po/lv/rgettext.po", "po/ru/rgettext.po", "po/zh_TW/rgettext.po", "po/rgettext.pot", "po/ca/rgettext.po", "po/de/rgettext.po", "po/de/#rails.po#", "po/es/rgettext.po", "po/eo/rgettext.po", "po/nl/rgettext.po", "po/sr/rgettext.po", "po/hu/rgettext.po", "po/zh/rgettext.po", "po/ja/rgettext.po", "po/ja/rails.po.old", "po/bg/rgettext.po", "po/ua/rgettext.po", "po/fr/rgettext.po", "po/sv/rgettext.po", "po/it/rgettext.po", "lib/gettext.rb", "lib/gettext/cgi.rb", "lib/gettext/utils.rb", "lib/gettext/class_info.rb", "lib/gettext/tools.rb", "lib/gettext/core_ext/iconv.rb", "lib/gettext/core_ext/string.rb", "lib/gettext/poparser.rb", "lib/gettext/version.rb", "lib/gettext/mofile.rb", "lib/gettext/parser/glade.rb", "lib/gettext/parser/erb.rb", "lib/gettext/parser/ruby.rb", "lib/gettext/textdomain.rb", "lib/gettext/textdomain_manager.rb", "lib/gettext/tools/rgettext.rb", "lib/gettext/tools/rmsgmerge.rb", "lib/gettext/tools/rmsgfmt.rb", "test/test_textdomain.rb", "test/po/po/plural.po", "test/po/cr/plural.po", "test/po/sl/plural.po", "test/po/li/plural.po", "test/po/ir/plural.po", "test/po/ja/sgettext.po", "test/po/ja/test2.po", "test/po/ja/pgettext.po", "test/po/ja/test1.po", "test/po/ja/nsgettext.po", "test/po/ja/plural_error.po", "test/po/ja/plural.po", "test/po/ja/test6.po", "test/po/ja/rubyparser.po", "test/po/ja/npgettext.po", "test/po/fr/test2.po", "test/po/fr/test1.po", "test/po/fr/plural_error.po", "test/po/fr/plural.po", "test/po/fr/test6.po", "test/po/la/plural_error.po", "test/po/la/plural.po", "test/po/da/plural_error.po", "test/po/da/plural.po", "test/test_textdomain_toplevel.rb", "test/test_gettext.rb", "test/test_parser.rb", "test/README", "test/test_string.rb", "test/Rakefile", "test/test_class_info.rb", "test/test_textdomain_multi.rb", "test/testlib/simple.rb", "test/testlib/gettext.rb", "test/testlib/gladeparser.glade", "test/testlib/npgettext.rb", "test/testlib/multi_textdomain.rb", "test/testlib/erb.rhtml", "test/testlib/nsgettext.rb", "test/testlib/erb.rxml", "test/testlib/pgettext.rb", "test/testlib/helper.rb", "test/testlib/N_.rb", "test/testlib/ngettext.rb", "test/testlib/sgettext.rb", "bin/rgettext", "bin/rmsgmerge", "bin/rmsgfmt", "Rakefile", "README.rdoc", "ChangeLog", "src/poparser.ry", "samples/cgi/po/hr/main.po", "samples/cgi/po/hr/hellolib.po", "samples/cgi/po/hr/helloerb1.po", "samples/cgi/po/hr/helloerb2.po", "samples/cgi/po/cs/main.po", "samples/cgi/po/cs/hellolib.po", "samples/cgi/po/cs/helloerb1.po", "samples/cgi/po/cs/helloerb2.po", "samples/cgi/po/hellolib.pot", "samples/cgi/po/el/main.po", "samples/cgi/po/el/hellolib.po", "samples/cgi/po/el/helloerb1.po", "samples/cgi/po/el/helloerb2.po", "samples/cgi/po/bs/main.po", "samples/cgi/po/bs/hellolib.po", "samples/cgi/po/bs/helloerb1.po", "samples/cgi/po/bs/helloerb2.po", "samples/cgi/po/vi/main.po", "samples/cgi/po/vi/hellolib.po", "samples/cgi/po/vi/helloerb1.po", "samples/cgi/po/vi/helloerb2.po", "samples/cgi/po/pt_BR/main.po", "samples/cgi/po/pt_BR/hellolib.po", "samples/cgi/po/pt_BR/helloerb1.po", "samples/cgi/po/pt_BR/helloerb2.po", "samples/cgi/po/nb/main.po", "samples/cgi/po/nb/hellolib.po", "samples/cgi/po/nb/helloerb1.po", "samples/cgi/po/nb/helloerb2.po", "samples/cgi/po/ko/main.po", "samples/cgi/po/ko/hellolib.po", "samples/cgi/po/ko/helloerb1.po", "samples/cgi/po/ko/helloerb2.po", "samples/cgi/po/lv/main.po", "samples/cgi/po/lv/hellolib.po", "samples/cgi/po/lv/helloerb1.po", "samples/cgi/po/lv/helloerb2.po", "samples/cgi/po/ru/main.po", "samples/cgi/po/ru/hellolib.po", "samples/cgi/po/ru/helloerb1.po", "samples/cgi/po/ru/helloerb2.po", "samples/cgi/po/zh_TW/main.po", "samples/cgi/po/zh_TW/hellolib.po", "samples/cgi/po/zh_TW/helloerb1.po", "samples/cgi/po/zh_TW/helloerb2.po", "samples/cgi/po/ca/main.po", "samples/cgi/po/ca/hellolib.po", "samples/cgi/po/ca/helloerb1.po", "samples/cgi/po/ca/helloerb2.po", "samples/cgi/po/de/main.po", "samples/cgi/po/de/hellolib.po", "samples/cgi/po/de/helloerb1.po", "samples/cgi/po/de/helloerb2.po", "samples/cgi/po/es/main.po", "samples/cgi/po/es/hellolib.po", "samples/cgi/po/es/helloerb1.po", "samples/cgi/po/es/helloerb2.po", "samples/cgi/po/eo/main.po", "samples/cgi/po/eo/hellolib.po", "samples/cgi/po/eo/helloerb1.po", "samples/cgi/po/eo/helloerb2.po", "samples/cgi/po/nl/main.po", "samples/cgi/po/nl/hellolib.po", "samples/cgi/po/nl/helloerb1.po", "samples/cgi/po/nl/helloerb2.po", "samples/cgi/po/sr/main.po", "samples/cgi/po/sr/hellolib.po", "samples/cgi/po/sr/helloerb1.po", "samples/cgi/po/sr/helloerb2.po", "samples/cgi/po/hu/main.po", "samples/cgi/po/hu/hellolib.po", "samples/cgi/po/hu/helloerb1.po", "samples/cgi/po/hu/helloerb2.po", "samples/cgi/po/helloerb1.pot", "samples/cgi/po/helloerb2.pot", "samples/cgi/po/zh/main.po", "samples/cgi/po/zh/hellolib.po", "samples/cgi/po/zh/helloerb1.po", "samples/cgi/po/zh/helloerb2.po", "samples/cgi/po/ja/main.po", "samples/cgi/po/ja/hellolib.po", "samples/cgi/po/ja/helloerb1.po", "samples/cgi/po/ja/helloerb2.po", "samples/cgi/po/bg/main.po", "samples/cgi/po/bg/hellolib.po", "samples/cgi/po/bg/helloerb1.po", "samples/cgi/po/bg/helloerb2.po", "samples/cgi/po/main.pot", "samples/cgi/po/ua/main.po", "samples/cgi/po/ua/hellolib.po", "samples/cgi/po/ua/helloerb1.po", "samples/cgi/po/ua/helloerb2.po", "samples/cgi/po/fr/main.po", "samples/cgi/po/fr/hellolib.po", "samples/cgi/po/fr/helloerb1.po", "samples/cgi/po/fr/helloerb2.po", "samples/cgi/po/it/main.po", "samples/cgi/po/it/hellolib.po", "samples/cgi/po/it/helloerb1.po", "samples/cgi/po/it/helloerb2.po", "samples/cgi/hellolib.rb", "samples/cgi/helloerb1.cgi", "samples/cgi/cookie.cgi", "samples/cgi/README", "samples/cgi/other.rhtml", "samples/cgi/Rakefile", "samples/cgi/gettext.css", "samples/cgi/helloerb2.cgi", "samples/cgi/http.rb", "samples/cgi/helloerb.rhtml", "samples/cgi/index.cgi", "samples/po/hello_plural.pot", "samples/po/hr/hello_glade2.po", "samples/po/hr/hello_plural.po", "samples/po/hr/hello_noop.po", "samples/po/hr/hello.po", "samples/po/hr/hello2.po", "samples/po/hr/hello_tk.po", "samples/po/hr/hello_gtk.po", "samples/po/cs/hello_glade2.po", "samples/po/cs/hello_plural.po", "samples/po/cs/hello_noop.po", "samples/po/cs/hello.po", "samples/po/cs/hello2.po", "samples/po/cs/hello_tk.po", "samples/po/cs/hello_gtk.po", "samples/po/el/hello_glade2.po", "samples/po/el/hello_plural.po", "samples/po/el/hello_noop.po", "samples/po/el/hello.po", "samples/po/el/hello2.po", "samples/po/el/hello_tk.po", "samples/po/el/hello_gtk.po", "samples/po/bs/hello_glade2.po", "samples/po/bs/hello_plural.po", "samples/po/bs/hello_noop.po", "samples/po/bs/hello.po", "samples/po/bs/hello2.po", "samples/po/bs/hello_tk.po", "samples/po/bs/hello_gtk.po", "samples/po/vi/hello_glade2.po", "samples/po/vi/hello_plural.po", "samples/po/vi/hello_noop.po", "samples/po/vi/hello.po", "samples/po/vi/hello2.po", "samples/po/vi/hello_tk.po", "samples/po/vi/hello_gtk.po", "samples/po/pt_BR/hello_glade2.po", "samples/po/pt_BR/hello_plural.po", "samples/po/pt_BR/hello_noop.po", "samples/po/pt_BR/hello.po", "samples/po/pt_BR/hello2.po", "samples/po/pt_BR/hello_tk.po", "samples/po/pt_BR/hello_gtk.po", "samples/po/nb/hello_glade2.po", "samples/po/nb/hello_plural.po", "samples/po/nb/hello_noop.po", "samples/po/nb/hello.po", "samples/po/nb/hello2.po", "samples/po/nb/hello_tk.po", "samples/po/nb/hello_gtk.po", "samples/po/hello_noop.pot", "samples/po/ko/hello_glade2.po", "samples/po/ko/hello_plural.po", "samples/po/ko/hello_noop.po", "samples/po/ko/hello.po", "samples/po/ko/hello2.po", "samples/po/ko/hello_tk.po", "samples/po/ko/hello_gtk.po", "samples/po/lv/hello_glade2.po", "samples/po/lv/hello_plural.po", "samples/po/lv/hello_noop.po", "samples/po/lv/hello.po", "samples/po/lv/hello2.po", "samples/po/lv/hello_tk.po", "samples/po/lv/hello_gtk.po", "samples/po/ru/hello_glade2.po", "samples/po/ru/hello_plural.po", "samples/po/ru/hello_noop.po", "samples/po/ru/hello.po", "samples/po/ru/hello2.po", "samples/po/ru/hello_tk.po", "samples/po/ru/hello_gtk.po", "samples/po/zh_TW/hello_glade2.po", "samples/po/zh_TW/hello_plural.po", "samples/po/zh_TW/hello_noop.po", "samples/po/zh_TW/hello.po", "samples/po/zh_TW/hello2.po", "samples/po/zh_TW/hello_tk.po", "samples/po/zh_TW/hello_gtk.po", "samples/po/ca/hello_glade2.po", "samples/po/ca/hello_plural.po", "samples/po/ca/hello_noop.po", "samples/po/ca/hello.po", "samples/po/ca/hello2.po", "samples/po/ca/hello_tk.po", "samples/po/ca/hello_gtk.po", "samples/po/hello2.pot", "samples/po/de/hello_glade2.po", "samples/po/de/hello_plural.po", "samples/po/de/hello_noop.po", "samples/po/de/hello.po", "samples/po/de/hello2.po", "samples/po/de/hello_tk.po", "samples/po/de/hello_gtk.po", "samples/po/es/hello_glade2.po", "samples/po/es/hello_plural.po", "samples/po/es/hello_noop.po", "samples/po/es/hello.po", "samples/po/es/hello2.po", "samples/po/es/hello_tk.po", "samples/po/es/hello_gtk.po", "samples/po/hello_gtk.pot", "samples/po/eo/hello_glade2.po", "samples/po/eo/hello_plural.po", "samples/po/eo/hello_noop.po", "samples/po/eo/hello.po", "samples/po/eo/hello2.po", "samples/po/eo/hello_tk.po", "samples/po/eo/hello_gtk.po", "samples/po/nl/hello_glade2.po", "samples/po/nl/hello_plural.po", "samples/po/nl/hello_noop.po", "samples/po/nl/hello.po", "samples/po/nl/hello2.po", "samples/po/nl/hello_tk.po", "samples/po/nl/hello_gtk.po", "samples/po/sr/hello_glade2.po", "samples/po/sr/hello_plural.po", "samples/po/sr/hello_noop.po", "samples/po/sr/hello.po", "samples/po/sr/hello2.po", "samples/po/sr/hello_tk.po", "samples/po/sr/hello_gtk.po", "samples/po/hello.pot", "samples/po/hu/hello_glade2.po", "samples/po/hu/hello_plural.po", "samples/po/hu/hello_noop.po", "samples/po/hu/hello.po", "samples/po/hu/hello2.po", "samples/po/hu/hello_tk.po", "samples/po/hu/hello_gtk.po", "samples/po/zh/hello_glade2.po", "samples/po/zh/hello_plural.po", "samples/po/zh/hello_noop.po", "samples/po/zh/hello.po", "samples/po/zh/hello2.po", "samples/po/zh/hello_tk.po", "samples/po/zh/hello_gtk.po", "samples/po/test.rb", "samples/po/ja/hello_glade2.po", "samples/po/ja/hello_plural.po", "samples/po/ja/hello_noop.po", "samples/po/ja/hello.po", "samples/po/ja/hello2.po", "samples/po/ja/hello_tk.po", "samples/po/ja/hello_gtk.po", "samples/po/bg/hello_glade2.po", "samples/po/bg/hello_plural.po", "samples/po/bg/hello_noop.po", "samples/po/bg/hello.po", "samples/po/bg/hello2.po", "samples/po/bg/hello_tk.po", "samples/po/bg/hello_gtk.po", "samples/po/ua/hello_glade2.po", "samples/po/ua/hello_plural.po", "samples/po/ua/hello_noop.po", "samples/po/ua/hello.po", "samples/po/ua/hello2.po", "samples/po/ua/hello_tk.po", "samples/po/ua/hello_gtk.po", "samples/po/fr/hello_glade2.po", "samples/po/fr/hello_plural.po", "samples/po/fr/hello_noop.po", "samples/po/fr/hello.po", "samples/po/fr/hello2.po", "samples/po/fr/hello_tk.po", "samples/po/fr/hello_gtk.po", "samples/po/hello_tk.pot", "samples/po/sv/hello_glade2.po", "samples/po/sv/hello_plural.po", "samples/po/sv/hello_noop.po", "samples/po/sv/hello.po", "samples/po/sv/hello2.po", "samples/po/sv/hello_tk.po", "samples/po/sv/hello_gtk.po", "samples/po/hello_glade2.pot", "samples/po/it/hello_glade2.po", "samples/po/it/hello_plural.po", "samples/po/it/hello_noop.po", "samples/po/it/hello.po", "samples/po/it/hello2.po", "samples/po/it/hello_tk.po", "samples/po/it/hello_gtk.po", "samples/hello_noop.rb", "samples/hello_plural.rb", "samples/makemo.rb", "samples/hello_glade2.glade", "samples/hello.rb", "samples/hello_gtk2.rb", "samples/README", "samples/hello_glade2.rb", "samples/hello2.rb", "samples/hello_tk.rb", "gettext.gemspec"]
|
16
|
+
s.has_rdoc = true
|
17
|
+
s.homepage = %q{http://gettext.rubyforge.org/}
|
18
|
+
s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "GetText", "--main", "README.rdoc"]
|
19
|
+
s.require_paths = ["lib"]
|
20
|
+
s.rubyforge_project = %q{gettext}
|
21
|
+
s.rubygems_version = %q{1.3.1}
|
22
|
+
s.summary = %q{Ruby-GetText-Package is a libary and tools to localize messages.}
|
23
|
+
s.test_files = ["test/test_textdomain.rb", "test/test_textdomain_toplevel.rb", "test/test_gettext.rb", "test/test_parser.rb", "test/test_string.rb", "test/test_class_info.rb", "test/test_textdomain_multi.rb"]
|
24
|
+
|
25
|
+
if s.respond_to? :specification_version then
|
26
|
+
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
27
|
+
s.specification_version = 2
|
28
|
+
|
29
|
+
if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
|
30
|
+
s.add_runtime_dependency(%q<locale>, [">= 0"])
|
31
|
+
s.add_development_dependency(%q<echoe>, [">= 0"])
|
32
|
+
else
|
33
|
+
s.add_dependency(%q<locale>, [">= 0"])
|
34
|
+
s.add_dependency(%q<echoe>, [">= 0"])
|
35
|
+
end
|
36
|
+
else
|
37
|
+
s.add_dependency(%q<locale>, [">= 0"])
|
38
|
+
s.add_dependency(%q<echoe>, [">= 0"])
|
39
|
+
end
|
40
|
+
end
|
data/lib/gettext.rb
CHANGED
@@ -1,10 +1,10 @@
|
|
1
1
|
=begin
|
2
2
|
gettext.rb - GetText module
|
3
3
|
|
4
|
-
Copyright (C) 2001-
|
4
|
+
Copyright (C) 2001-2009 Masao Mutoh
|
5
5
|
Copyright (C) 2001-2003 Masahiro Sakai
|
6
6
|
|
7
|
-
Masao Mutoh <
|
7
|
+
Masao Mutoh <mutomasa at gmail.com>
|
8
8
|
Masahiro Sakai <s01397ms@sfc.keio.ac.jp>
|
9
9
|
|
10
10
|
You may redistribute it and/or modify it under the same
|
@@ -13,233 +13,90 @@
|
|
13
13
|
$Id: gettext.rb,v 1.46 2008/09/13 18:23:55 mutoh Exp $
|
14
14
|
=end
|
15
15
|
|
16
|
-
|
17
|
-
require 'gettext/version'
|
18
|
-
require 'gettext/mo'
|
16
|
+
begin gem 'locale', '>=0.9'; rescue LoadError;end
|
19
17
|
require 'locale'
|
20
|
-
|
21
|
-
|
18
|
+
raise "Insall locale as gem or uninstall old gettext" unless Locale.respond_to? :candidates
|
19
|
+
|
20
|
+
require 'gettext/version'
|
21
|
+
require 'gettext/textdomain_manager'
|
22
22
|
|
23
23
|
module GetText
|
24
24
|
# If the textdomain isn't bound when calling GetText.textdomain, this error is raised.
|
25
25
|
class NoboundTextDomainError < RuntimeError
|
26
|
+
def initialize(domainname)
|
27
|
+
@domainname = domainname
|
28
|
+
end
|
29
|
+
def message
|
30
|
+
"#{domainname} is not bound."
|
31
|
+
end
|
26
32
|
end
|
27
33
|
|
34
|
+
extend self
|
35
|
+
|
28
36
|
def self.included(mod) #:nodoc:
|
29
37
|
mod.extend self
|
30
38
|
end
|
31
39
|
|
32
|
-
# Max cached object_ids includes dead objects.
|
33
|
-
CACHE_BOUND_TARGET_MAX_SIZE = 50000 #:nodoc:
|
34
|
-
|
35
|
-
@@__cached = ! $DEBUG
|
36
|
-
|
37
|
-
# Set the value whether cache messages or not.
|
38
|
-
# true to cache messages, otherwise false.
|
39
|
-
#
|
40
|
-
# Default is true. If $DEBUG is false, messages are not checked even if
|
41
|
-
# this value is true.
|
42
|
-
def cached=(val)
|
43
|
-
@@__cached = val
|
44
|
-
GetText::TextDomain.check_mo = ! val
|
45
|
-
end
|
46
|
-
|
47
|
-
# Return the cached value.
|
48
|
-
def cached?
|
49
|
-
@@__cached
|
50
|
-
end
|
51
|
-
|
52
|
-
# Clear the cached messages.
|
53
|
-
def clear_cache
|
54
|
-
@@__cache_msgids = {}
|
55
|
-
@@__cache_nmsgids = {}
|
56
|
-
@@__cache_target_classes = {}
|
57
|
-
@@__cache_bound_target = {}
|
58
|
-
@@__cache_bound_targets = {}
|
59
|
-
end
|
60
|
-
|
61
|
-
@@__textdomainmanagers = {}
|
62
|
-
|
63
|
-
# call-seq:
|
64
40
|
# bindtextdomain(domainname, options = {})
|
65
41
|
#
|
66
|
-
# Bind a textdomain(%{path}/%{locale}/LC_MESSAGES/%{domainname}.mo) to
|
67
|
-
#
|
68
|
-
#
|
69
|
-
#
|
70
|
-
#
|
42
|
+
# Bind a textdomain(%{path}/%{locale}/LC_MESSAGES/%{domainname}.mo) to
|
43
|
+
# your program.
|
44
|
+
# Normally, the texdomain scope becomes the class/module(and parent
|
45
|
+
# classes/included modules).
|
46
|
+
#
|
71
47
|
# * domainname: the textdomain name.
|
72
48
|
# * options: options as an Hash.
|
73
49
|
# * :path - the path to the mo-files. When the value is nil, it will search default paths such as
|
74
50
|
# /usr/share/locale, /usr/local/share/locale)
|
75
|
-
# * :
|
76
|
-
#
|
77
|
-
#
|
78
|
-
# * :charset - output charset. This affect the current textdomain only. Generally, you should use GetText.set_output_charset instead.
|
79
|
-
# The value is searched order by:
|
80
|
-
# the value of Locale.set_output_charset > ENV["OUTPUT_CHARSET"] > this value > System default charset.
|
51
|
+
# * :supported_language_tags - an Array of the supported language tags for this textdomain.
|
52
|
+
# * :output_charset - The output charset. Same with GetText.set_output_charset. Usually, L10n
|
53
|
+
# library doesn't use this option. Application may use this once.
|
81
54
|
# * Returns: the GetText::TextDomainManager.
|
82
|
-
# Note: Don't use locale_, charset argument(not in options).
|
83
|
-
# They are remained for backward compatibility.
|
84
55
|
#
|
85
|
-
def bindtextdomain(domainname, options = {}
|
86
|
-
|
87
|
-
if options.kind_of? String
|
88
|
-
# For backward compatibility
|
89
|
-
opt = {:path => options, :locale => locale_, :charset => charset}
|
90
|
-
elsif options
|
91
|
-
opt = options
|
92
|
-
end
|
93
|
-
opt[:locale] = opt[:locale] ? Locale::Object.new(opt[:locale]) : Locale.get
|
94
|
-
opt[:charset] = TextDomainManager.output_charset if TextDomainManager.output_charset
|
95
|
-
opt[:locale].charset = opt[:charset] if opt[:charset]
|
96
|
-
Locale.set_current(opt[:locale])
|
97
|
-
target_key = bound_target
|
98
|
-
manager = @@__textdomainmanagers[target_key]
|
99
|
-
if manager
|
100
|
-
manager.set_locale(opt[:locale])
|
101
|
-
else
|
102
|
-
manager = TextDomainManager.new(target_key, opt[:locale])
|
103
|
-
@@__textdomainmanagers[target_key] = manager
|
104
|
-
end
|
105
|
-
manager.add_textdomain(domainname, opt)
|
106
|
-
manager
|
56
|
+
def bindtextdomain(domainname, options = {})
|
57
|
+
bindtextdomain_to(self, domainname, options)
|
107
58
|
end
|
108
59
|
|
109
60
|
# Includes GetText module and bind a textdomain to a class.
|
110
61
|
# * klass: the target ruby class.
|
111
62
|
# * domainname: the textdomain name.
|
112
63
|
# * options: options as an Hash. See GetText.bindtextdomain.
|
113
|
-
def bindtextdomain_to(klass, domainname,
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
64
|
+
def bindtextdomain_to(klass, domainname, *args)
|
65
|
+
if args[0].kind_of? Hash
|
66
|
+
options = args[0]
|
67
|
+
else
|
68
|
+
# for backward compatibility.
|
69
|
+
options = {}
|
70
|
+
options[:path] = args[0] if args[0]
|
71
|
+
options[:output_charset] = args[2] if args[2]
|
72
|
+
end
|
73
|
+
unless (klass.kind_of? GetText or klass.include? GetText)
|
74
|
+
klass.__send__(:include, GetText)
|
75
|
+
end
|
76
|
+
TextDomainManager.bind_to(klass, domainname, options)
|
120
77
|
end
|
121
78
|
|
122
79
|
# Binds a existed textdomain to your program.
|
123
80
|
# This is the same function with GetText.bindtextdomain but simpler(and faster) than bindtextdomain.
|
124
|
-
#
|
81
|
+
# Note that you need to call GetText.bindtextdomain first. If the domainname hasn't bound yet,
|
125
82
|
# raises GetText::NoboundTextDomainError.
|
126
83
|
# * domainname: a textdomain name.
|
127
84
|
# * Returns: the GetText::TextDomainManager.
|
128
|
-
def textdomain(domainname)
|
129
|
-
|
130
|
-
raise NoboundTextDomainError, "#{domainname} is not bound." unless domain
|
131
|
-
target_key = bound_target
|
132
|
-
manager = @@__textdomainmanagers[target_key]
|
133
|
-
unless manager
|
134
|
-
manager = TextDomainManager.new(target_key, Locale.get)
|
135
|
-
@@__textdomainmanagers[target_key] = manager
|
136
|
-
end
|
137
|
-
manager.set_locale(Locale.get)
|
138
|
-
manager.add_textdomain(domainname)
|
139
|
-
manager
|
85
|
+
def textdomain(domainname) #:nodoc:
|
86
|
+
textdomain_to(self, domainname)
|
140
87
|
end
|
141
88
|
|
142
89
|
# Includes GetText module and bind an exsited textdomain to a class.
|
143
90
|
# See textdomain for more detail.
|
144
91
|
# * klass: the target ruby class.
|
145
92
|
# * domainname: the textdomain name.
|
146
|
-
def textdomain_to(klass, domainname)
|
147
|
-
ret = nil
|
148
|
-
klass.module_eval {
|
149
|
-
include GetText
|
150
|
-
ret = textdomain(domainname)
|
151
|
-
}
|
152
|
-
ret
|
153
|
-
end
|
154
93
|
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
def each_textdomain(klass = self, ignore_targets = []) #:nodoc:
|
160
|
-
bound_targets(klass).each do |target|
|
161
|
-
unless ignore_targets.include? target
|
162
|
-
manager = @@__textdomainmanagers[target]
|
163
|
-
if manager
|
164
|
-
manager.each{ |textdomain|
|
165
|
-
yield textdomain
|
166
|
-
}
|
167
|
-
end
|
168
|
-
end
|
169
|
-
end
|
170
|
-
self
|
94
|
+
def textdomain_to(klass, domainname) #:nodoc:
|
95
|
+
domain = TextDomainManager.textdomain_pool(domainname)
|
96
|
+
raise NoboundTextDomainError.new(domainname) unless domain
|
97
|
+
bindtextdomain_to(klass, domainname)
|
171
98
|
end
|
172
99
|
|
173
|
-
@@__cache_target_classes = {}
|
174
|
-
|
175
|
-
def find_targets(klass) #:nodoc:
|
176
|
-
unless (klass.kind_of? Class or klass.kind_of? Module)
|
177
|
-
klass = klass.class
|
178
|
-
end
|
179
|
-
id = klass.object_id
|
180
|
-
if cached?
|
181
|
-
return @@__cache_target_classes[id] if @@__cache_target_classes[id]
|
182
|
-
end
|
183
|
-
|
184
|
-
ret = []
|
185
|
-
ary = klass.name.split(/::/)
|
186
|
-
while(v = ary.shift)
|
187
|
-
if ret.size == 0
|
188
|
-
if v.kind_of? Class
|
189
|
-
target = v
|
190
|
-
else
|
191
|
-
target = eval(v)
|
192
|
-
return [Object] unless (target = eval(v)) # For anonymous module
|
193
|
-
end
|
194
|
-
else
|
195
|
-
target = ret[0].const_get(v)
|
196
|
-
end
|
197
|
-
ret.unshift(target) if target
|
198
|
-
end
|
199
|
-
@@__cache_target_classes[id] = ret.size > 0 ? ret : [klass]
|
200
|
-
end
|
201
|
-
|
202
|
-
@@__cache_bound_target = {}
|
203
|
-
|
204
|
-
def bound_target(klass = self) # :nodoc:
|
205
|
-
ret = (klass.kind_of? Module) ? klass : klass.class
|
206
|
-
id = ret.object_id
|
207
|
-
if cached?
|
208
|
-
tgt = @@__cache_bound_target[id]
|
209
|
-
return tgt if tgt
|
210
|
-
end
|
211
|
-
|
212
|
-
if ret.name =~ /^\#<|^$/ or ret == GetText
|
213
|
-
#GC for dead object_ids.
|
214
|
-
ret = Object
|
215
|
-
if @@__cache_bound_target.size > CACHE_BOUND_TARGET_MAX_SIZE
|
216
|
-
@@__cache_bound_target.clear
|
217
|
-
end
|
218
|
-
end
|
219
|
-
@@__cache_bound_target[id] = ret
|
220
|
-
ret
|
221
|
-
end
|
222
|
-
|
223
|
-
@@__cache_bound_targets = {}
|
224
|
-
|
225
|
-
def bound_targets(klass) # :nodoc:
|
226
|
-
id = klass.object_id
|
227
|
-
if cached?
|
228
|
-
if @@__cache_bound_targets[id]
|
229
|
-
return @@__cache_bound_targets[id]
|
230
|
-
end
|
231
|
-
end
|
232
|
-
ret = []
|
233
|
-
klass = bound_target(klass)
|
234
|
-
ary = klass.name.split(/::/)
|
235
|
-
while(v = ary.shift)
|
236
|
-
ret.unshift(((ret.size == 0) ? eval(v) : ret[0].const_get(v)))
|
237
|
-
end
|
238
|
-
@@__cache_bound_targets[id] = ((ret + klass.ancestors + [Object]) & @@__textdomainmanagers.keys).uniq
|
239
|
-
end
|
240
|
-
|
241
|
-
@@__cache_msgids = {}
|
242
|
-
|
243
100
|
# call-seq:
|
244
101
|
# gettext(msgid)
|
245
102
|
# _(msgid)
|
@@ -261,7 +118,7 @@ module GetText
|
|
261
118
|
# * msgid: the message id.
|
262
119
|
# * Returns: localized text by msgid. If there are not binded mo-file, it will return msgid.
|
263
120
|
def gettext(msgid)
|
264
|
-
|
121
|
+
TextDomainManager.get(self).translate_singluar_message(self, msgid)
|
265
122
|
end
|
266
123
|
|
267
124
|
# call-seq:
|
@@ -272,36 +129,13 @@ module GetText
|
|
272
129
|
# it returns a last part of msgid separeted "div".
|
273
130
|
#
|
274
131
|
# * msgid: the message id.
|
275
|
-
# *
|
132
|
+
# * separator: separator or nil for no seperation.
|
276
133
|
# * Returns: the localized text by msgid. If there are no localized text,
|
277
|
-
# it returns a last part of msgid separeted "
|
134
|
+
# it returns a last part of the msgid separeted by "seperator".
|
135
|
+
# <tt>Movie|Location -> Location</tt>
|
278
136
|
# See: http://www.gnu.org/software/gettext/manual/html_mono/gettext.html#SEC151
|
279
|
-
def sgettext(msgid,
|
280
|
-
|
281
|
-
if cached?
|
282
|
-
if @@__cache_msgids[cached_key]
|
283
|
-
return @@__cache_msgids[cached_key]
|
284
|
-
end
|
285
|
-
end
|
286
|
-
msg = nil
|
287
|
-
|
288
|
-
# Use "for"(not "each") to support JRuby 1.1.0.
|
289
|
-
for target in bound_targets(self)
|
290
|
-
manager = @@__textdomainmanagers[target]
|
291
|
-
for textdomain in manager.textdomains
|
292
|
-
msg = textdomain[1].gettext(msgid)
|
293
|
-
break if msg
|
294
|
-
end
|
295
|
-
break if msg
|
296
|
-
end
|
297
|
-
|
298
|
-
msg ||= msgid
|
299
|
-
if div and msg == msgid
|
300
|
-
if index = msg.rindex(div)
|
301
|
-
msg = msg[(index + 1)..-1]
|
302
|
-
end
|
303
|
-
end
|
304
|
-
@@__cache_msgids[cached_key] = msg
|
137
|
+
def sgettext(msgid, seperator = "|")
|
138
|
+
TextDomainManager.get(self).translate_singluar_message(self, msgid, seperator)
|
305
139
|
end
|
306
140
|
|
307
141
|
# call-seq:
|
@@ -318,11 +152,9 @@ module GetText
|
|
318
152
|
# it returns msgid.
|
319
153
|
# See: http://www.gnu.org/software/autoconf/manual/gettext/Contexts.html
|
320
154
|
def pgettext(msgctxt, msgid)
|
321
|
-
|
155
|
+
TextDomainManager.get(self).translate_singluar_message(self, "#{msgctxt}\004#{msgid}", "\004")
|
322
156
|
end
|
323
157
|
|
324
|
-
@@__cache_nmsgids = {}
|
325
|
-
|
326
158
|
# call-seq:
|
327
159
|
# ngettext(msgid, msgid_plural, n)
|
328
160
|
# ngettext(msgids, n) # msgids = [msgid, msgid_plural]
|
@@ -337,8 +169,27 @@ module GetText
|
|
337
169
|
# * n: a number used to determine the plural form.
|
338
170
|
# * Returns: the localized text which key is msgid_plural if n is plural(follow plural-rule) or msgid.
|
339
171
|
# "plural-rule" is defined in po-file.
|
340
|
-
def ngettext(
|
341
|
-
|
172
|
+
def ngettext(msgid, msgid_plural, n = nil)
|
173
|
+
TextDomainManager.get(self).translate_plural_message(self, msgid, msgid_plural, n)
|
174
|
+
end
|
175
|
+
|
176
|
+
# call-seq:
|
177
|
+
# nsgettext(msgid, msgid_plural, n, div = "|")
|
178
|
+
# nsgettext(msgids, n, div = "|") # msgids = [msgid, msgid_plural]
|
179
|
+
# ns_(msgid, msgid_plural, n, div = "|")
|
180
|
+
# ns_(msgids, n, div = "|") # msgids = [msgid, msgid_plural]
|
181
|
+
#
|
182
|
+
# The nsgettext is similar to the ngettext.
|
183
|
+
# But if there are no localized text,
|
184
|
+
# it returns a last part of msgid separeted "div".
|
185
|
+
#
|
186
|
+
# * msgid: the singular form with "div". (e.g. "Special|An apple")
|
187
|
+
# * msgid_plural: the plural form. (e.g. "%{num} Apples")
|
188
|
+
# * n: a number used to determine the plural form.
|
189
|
+
# * Returns: the localized text which key is msgid_plural if n is plural(follow plural-rule) or msgid.
|
190
|
+
# "plural-rule" is defined in po-file.
|
191
|
+
def nsgettext(msgid, msgid_plural, n="|", seperator = "|")
|
192
|
+
TextDomainManager.get(self).translate_plural_message(self, msgid, msgid_plural, n, seperator)
|
342
193
|
end
|
343
194
|
|
344
195
|
# call-seq:
|
@@ -355,29 +206,32 @@ module GetText
|
|
355
206
|
# * n: a number used to determine the plural form.
|
356
207
|
# * Returns: the localized text which key is msgid_plural if n is plural(follow plural-rule) or msgid.
|
357
208
|
# "plural-rule" is defined in po-file.
|
358
|
-
def npgettext(msgctxt,
|
359
|
-
|
360
|
-
msgid =
|
209
|
+
def npgettext(msgctxt, msgids, arg2 = nil, arg3 = nil)
|
210
|
+
if msgids.kind_of?(Array)
|
211
|
+
msgid = msgids[0]
|
361
212
|
msgid_ctxt = "#{msgctxt}\004#{msgid}"
|
362
|
-
msgid_plural =
|
213
|
+
msgid_plural = msgids[1]
|
363
214
|
opt1 = arg2
|
364
215
|
opt2 = arg3
|
365
216
|
else
|
366
|
-
msgid =
|
217
|
+
msgid = msgids
|
367
218
|
msgid_ctxt = "#{msgctxt}\004#{msgid}"
|
368
219
|
msgid_plural = arg2
|
369
220
|
opt1 = arg3
|
370
221
|
opt2 = nil
|
371
222
|
end
|
372
|
-
ret = nsgettext(msgid_ctxt, msgid_plural, opt1, opt2)
|
373
223
|
|
374
|
-
|
375
|
-
|
224
|
+
msgstr = TextDomainManager.get(self).translate_plural_message(self, msgid_ctxt, msgid_plural, opt1, opt2)
|
225
|
+
if msgstr == msgid_ctxt
|
226
|
+
msgid
|
227
|
+
else
|
228
|
+
msgstr
|
376
229
|
end
|
377
|
-
ret
|
378
230
|
end
|
379
|
-
|
380
|
-
#
|
231
|
+
|
232
|
+
# makes dynamic translation messages readable for the gettext parser.
|
233
|
+
# <tt>_(fruit)</tt> cannot be understood by the gettext parser. To help the parser find all your translations,
|
234
|
+
# you can add <tt>fruit = N_("Apple")</tt> which does not translate, but tells the parser: "Apple" needs translation.
|
381
235
|
# * msgid: the message id.
|
382
236
|
# * Returns: msgid.
|
383
237
|
def N_(msgid)
|
@@ -392,230 +246,46 @@ module GetText
|
|
392
246
|
[msgid, msgid_plural]
|
393
247
|
end
|
394
248
|
|
395
|
-
|
396
|
-
# call-seq:
|
397
|
-
# nsgettext(msgid, msgid_plural, n, div = "|")
|
398
|
-
# nsgettext(msgids, n, div = "|") # msgids = [msgid, msgid_plural]
|
399
|
-
# n_(msgid, msgid_plural, n, div = "|")
|
400
|
-
# n_(msgids, n, div = "|") # msgids = [msgid, msgid_plural]
|
401
|
-
#
|
402
|
-
# The nsgettext is similar to the ngettext.
|
403
|
-
# But if there are no localized text,
|
404
|
-
# it returns a last part of msgid separeted "div".
|
405
|
-
#
|
406
|
-
# * msgid: the singular form with "div". (e.g. "Special|An apple")
|
407
|
-
# * msgid_plural: the plural form. (e.g. "%{num} Apples")
|
408
|
-
# * n: a number used to determine the plural form.
|
409
|
-
# * Returns: the localized text which key is msgid_plural if n is plural(follow plural-rule) or msgid.
|
410
|
-
# "plural-rule" is defined in po-file.
|
411
|
-
def nsgettext(arg1, arg2, arg3 = "|", arg4 = "|")
|
412
|
-
if arg1.kind_of?(Array)
|
413
|
-
msgid = arg1[0]
|
414
|
-
msgid_plural = arg1[1]
|
415
|
-
n = arg2
|
416
|
-
if arg3 and arg3.kind_of? Numeric
|
417
|
-
raise ArgumentError, _("3rd parmeter is wrong: value = %{number}") % {:number => arg3}
|
418
|
-
end
|
419
|
-
div = arg3
|
420
|
-
else
|
421
|
-
msgid = arg1
|
422
|
-
msgid_plural = arg2
|
423
|
-
n = arg3
|
424
|
-
div = arg4
|
425
|
-
end
|
426
|
-
|
427
|
-
cached_key = [bound_target, Locale.current, msgid + "\000" + msgid_plural]
|
428
|
-
msgs = nil
|
429
|
-
if @@__cached
|
430
|
-
if @@__cache_nmsgids.has_key?(cached_key)
|
431
|
-
msgs = @@__cache_nmsgids[cached_key] # [msgstr, cond_as_string]
|
432
|
-
end
|
433
|
-
end
|
434
|
-
unless msgs
|
435
|
-
# Use "for"(not "each") to support JRuby 1.1.0.
|
436
|
-
for target in bound_targets(self)
|
437
|
-
manager = @@__textdomainmanagers[target]
|
438
|
-
for textdomain in manager.textdomains
|
439
|
-
msgs = textdomain[1].ngettext_data(msgid, msgid_plural)
|
440
|
-
break if msgs
|
441
|
-
end
|
442
|
-
break if msgs
|
443
|
-
end
|
444
|
-
msgs = [[msgid, msgid_plural], "n != 1"] unless msgs
|
445
|
-
@@__cache_nmsgids[cached_key] = msgs
|
446
|
-
end
|
447
|
-
msgstrs = msgs[0]
|
448
|
-
if div and msgstrs[0] == msgid
|
449
|
-
if index = msgstrs[0].rindex(div)
|
450
|
-
msgstrs[0] = msgstrs[0][(index + 1)..-1]
|
451
|
-
end
|
452
|
-
end
|
453
|
-
plural = eval(msgs[1])
|
454
|
-
if plural.kind_of?(Numeric)
|
455
|
-
ret = msgstrs[plural]
|
456
|
-
else
|
457
|
-
ret = plural ? msgstrs[1] : msgstrs[0]
|
458
|
-
end
|
459
|
-
ret
|
460
|
-
end
|
461
|
-
|
462
|
-
# Sets the current locale to the current class/module
|
463
|
-
#
|
464
|
-
# Notice that you shouldn't use this for your own Libraries.
|
465
|
-
# * locale: a locale string or Locale::Object.
|
466
|
-
# * this_target_only: true if you want to change the current class/module only.
|
467
|
-
# Otherwise, this changes the locale of the current class/module and its ancestors.
|
468
|
-
# Default is false.
|
469
|
-
# * Returns: self
|
470
|
-
def set_locale(locale, this_target_only = false)
|
471
|
-
ret = nil
|
472
|
-
if locale
|
473
|
-
if locale.kind_of? Locale::Object
|
474
|
-
ret = locale
|
475
|
-
else
|
476
|
-
ret = Locale::Object.new(locale.to_s)
|
477
|
-
end
|
478
|
-
ret.charset = TextDomainManager.output_charset if TextDomainManager.output_charset
|
479
|
-
Locale.set(ret)
|
480
|
-
else
|
481
|
-
Locale.set(nil)
|
482
|
-
ret = Locale.get
|
483
|
-
end
|
484
|
-
if this_target_only
|
485
|
-
manager = @@__textdomainmanagers[bound_target]
|
486
|
-
if manager
|
487
|
-
manager.set_locale(ret, ! cached?)
|
488
|
-
end
|
489
|
-
else
|
490
|
-
each_textdomain {|textdomain|
|
491
|
-
textdomain.set_locale(ret, ! cached?)
|
492
|
-
}
|
493
|
-
end
|
494
|
-
self
|
495
|
-
end
|
496
|
-
|
497
|
-
# Sets current locale to the all textdomains.
|
498
|
-
#
|
499
|
-
# Note that you shouldn't use this for your own Libraries.
|
500
|
-
# * locale: a locale string or Locale::Object, otherwise nil to use default locale.
|
501
|
-
# * Returns: self
|
502
|
-
def set_locale_all(locale)
|
503
|
-
ret = nil
|
504
|
-
if locale
|
505
|
-
if locale.kind_of? Locale::Object
|
506
|
-
ret = locale
|
507
|
-
else
|
508
|
-
ret = Locale::Object.new(locale.to_s)
|
509
|
-
end
|
510
|
-
else
|
511
|
-
ret = Locale.default
|
512
|
-
end
|
513
|
-
ret.charset = TextDomainManager.output_charset if TextDomainManager.output_charset
|
514
|
-
Locale.set_current(ret)
|
515
|
-
TextDomainManager.each_all {|textdomain|
|
516
|
-
textdomain.set_locale(ret, ! cached?)
|
517
|
-
}
|
518
|
-
self
|
519
|
-
end
|
520
|
-
|
521
|
-
# Sets the default/current locale. This method haves the strongest infulence.
|
522
|
-
# All of the Textdomains are set the new locale.
|
523
|
-
#
|
524
|
-
# Note that you shouldn't use this for your own Libraries.
|
525
|
-
# * locale: a locale string or Locale::Object
|
526
|
-
# * Returns: a locale string
|
527
|
-
def locale=(locale)
|
528
|
-
Locale.default = locale
|
529
|
-
set_locale_all(locale)
|
530
|
-
Locale.default
|
531
|
-
end
|
532
|
-
|
533
249
|
# Sets charset(String) such as "euc-jp", "sjis", "CP932", "utf-8", ...
|
534
250
|
# You shouldn't use this in your own Libraries.
|
535
251
|
# * charset: an output_charset
|
536
|
-
# * Returns:
|
252
|
+
# * Returns: self
|
537
253
|
def set_output_charset(charset)
|
538
254
|
TextDomainManager.output_charset = charset
|
539
255
|
self
|
540
256
|
end
|
541
257
|
|
542
|
-
# Same as GetText.set_output_charset
|
543
|
-
# * charset: an output_charset
|
544
|
-
# * Returns: charset
|
545
|
-
def output_charset=(charset)
|
546
|
-
TextDomainManager.output_charset = charset
|
547
|
-
end
|
548
|
-
|
549
258
|
# Gets the current output_charset which is set using GetText.set_output_charset.
|
550
259
|
# * Returns: output_charset.
|
551
260
|
def output_charset
|
552
|
-
TextDomainManager.output_charset
|
261
|
+
TextDomainManager.output_charset
|
553
262
|
end
|
554
263
|
|
555
|
-
|
556
|
-
|
557
|
-
|
558
|
-
Locale.current
|
559
|
-
end
|
560
|
-
|
561
|
-
# Add default locale path.
|
562
|
-
# * path: a new locale path. (e.g.) "/usr/share/locale/%{locale}/LC_MESSAGES/%{name}.mo"
|
563
|
-
# ('locale' => "ja_JP", 'name' => "textdomain")
|
564
|
-
# * Returns: the new DEFAULT_LOCALE_PATHS
|
565
|
-
def add_default_locale_path(path)
|
566
|
-
TextDomain.add_default_locale_path(path)
|
264
|
+
def set_locale(lang)
|
265
|
+
Locale.clear
|
266
|
+
Locale.current = lang
|
567
267
|
end
|
568
268
|
|
569
|
-
|
570
|
-
|
571
|
-
# * :with_messages - show informations with messages of the current mo file. Default is false.
|
572
|
-
# * :out - An output target. Default is STDOUT.
|
573
|
-
# * :with_paths - show the load paths for mo-files.
|
574
|
-
def current_textdomain_info(options = {})
|
575
|
-
opts = {:with_messages => false, :with_paths => false, :out => STDOUT}.merge(options)
|
576
|
-
ret = nil
|
577
|
-
each_textdomain {|textdomain|
|
578
|
-
opts[:out].puts "TextDomain name: \"#{textdomain.name}\""
|
579
|
-
opts[:out].puts "TextDomain current locale: \"#{textdomain.current_locale}\""
|
580
|
-
opts[:out].puts "TextDomain current mo filename: \"#{textdomain.current_mo.filename}\""
|
581
|
-
if opts[:with_paths]
|
582
|
-
opts[:out].puts "TextDomain locale file paths:"
|
583
|
-
textdomain.locale_paths.each do |v|
|
584
|
-
opts[:out].puts " #{v}"
|
585
|
-
end
|
586
|
-
end
|
587
|
-
if opts[:with_messages]
|
588
|
-
opts[:out].puts "The messages in the mo file:"
|
589
|
-
textdomain.current_mo.each{|k, v|
|
590
|
-
opts[:out].puts " \"#{k}\": \"#{v}\""
|
591
|
-
}
|
592
|
-
end
|
593
|
-
}
|
594
|
-
end
|
595
|
-
|
596
|
-
# for testing.
|
597
|
-
def remove_all_textdomains
|
598
|
-
clear_cache
|
599
|
-
@@__textdomainmanagers = {}
|
269
|
+
def locale
|
270
|
+
Locale.current[0]
|
600
271
|
end
|
601
272
|
|
602
|
-
alias :
|
273
|
+
alias :locale= :set_locale #:nodoc:
|
603
274
|
alias :_ :gettext #:nodoc:
|
604
275
|
alias :n_ :ngettext #:nodoc:
|
605
276
|
alias :s_ :sgettext #:nodoc:
|
606
277
|
alias :ns_ :nsgettext #:nodoc:
|
607
278
|
alias :np_ :npgettext #:nodoc:
|
608
279
|
|
609
|
-
|
280
|
+
alias :output_charset= :set_output_charset #:nodoc:
|
281
|
+
|
282
|
+
unless defined? XX
|
610
283
|
# This is the workaround to conflict p_ methods with the xx("double x") library.
|
611
284
|
# http://rubyforge.org/projects/codeforpeople/
|
612
285
|
alias :p_ :pgettext #:nodoc:
|
613
|
-
module_function :p_
|
614
286
|
end
|
615
287
|
|
616
|
-
|
617
|
-
|
618
|
-
:
|
619
|
-
:setlocale, :set_locale, :locale=, :set_locale_all, :locale,
|
620
|
-
:set_output_charset, :output_charset=, :output_charset, :current_textdomain_info, :remove_all_textdomains
|
288
|
+
# for backward compatibility
|
289
|
+
alias :set_locale_all :set_locale #:nodoc:
|
290
|
+
alias :setlocale :set_locale #:nodoc:
|
621
291
|
end
|