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
@@ -1,184 +0,0 @@
|
|
1
|
-
#!/usr/bin/ruby
|
2
|
-
=begin
|
3
|
-
parser/active_record.rb - parser for ActiveRecord
|
4
|
-
|
5
|
-
Copyright (C) 2005, 2006 Masao Mutoh
|
6
|
-
|
7
|
-
You may redistribute it and/or modify it under the same
|
8
|
-
license terms as Ruby.
|
9
|
-
|
10
|
-
$Id: active_record.rb,v 1.7 2008/07/14 15:35:07 mutoh Exp $
|
11
|
-
=end
|
12
|
-
|
13
|
-
require 'gettext'
|
14
|
-
require 'gettext/parser/ruby'
|
15
|
-
|
16
|
-
include GetText
|
17
|
-
|
18
|
-
module GetText
|
19
|
-
module ActiveRecordParser
|
20
|
-
extend GetText
|
21
|
-
include GetText
|
22
|
-
GetText.bindtextdomain("rgettext")
|
23
|
-
|
24
|
-
@config = {
|
25
|
-
:db_yml => "config/database.yml",
|
26
|
-
:db_mode => "development",
|
27
|
-
:activerecord_classes => ["ActiveRecord::Base"],
|
28
|
-
:untranslate_columns => ["id"],
|
29
|
-
:use_classname => true,
|
30
|
-
}
|
31
|
-
|
32
|
-
@ar_re = nil
|
33
|
-
|
34
|
-
module_function
|
35
|
-
def require_rails(file) # :nodoc:
|
36
|
-
begin
|
37
|
-
require file
|
38
|
-
rescue MissingSourceFile
|
39
|
-
$stderr.puts _("'%{file}' is not found.") % {:file => file}
|
40
|
-
end
|
41
|
-
end
|
42
|
-
|
43
|
-
# Sets some preferences to parse ActiveRecord files.
|
44
|
-
#
|
45
|
-
# * config: a Hash of the config. It can takes some values below:
|
46
|
-
# * :use_classname - If true, the msgids of ActiveRecord become "ClassName|FieldName" (e.g. "Article|Title"). Otherwise the ClassName is not used (e.g. "Title"). Default is true.
|
47
|
-
# * :db_yml - the path of database.yml. Default is "config/database.yml".
|
48
|
-
# * :db_mode - the mode of the database. Default is "development"
|
49
|
-
# * :activerecord_classes - an Array of the superclass of the models. The classes should be String value. Default is ["ActiveRecord::Base"]
|
50
|
-
# * :untranslate_columns - an Array of the column names which is ignored as the msgid.
|
51
|
-
# * :adapter - the options for ActiveRecord::Base.establish_connection. If this value is set, :db_yml option is ignored.
|
52
|
-
# * :host - ditto
|
53
|
-
# * :username - ditto
|
54
|
-
# * :password - ditto
|
55
|
-
# * :database - ditto
|
56
|
-
# * :socket - ditto
|
57
|
-
# * :encoding - ditto
|
58
|
-
#
|
59
|
-
# "ClassName|FieldName" uses GetText.sgettext. So you don't need to translate the left-side of "|".
|
60
|
-
# See <Documents for Translators for more details(http://www.yotabanana.com/hiki/ruby-gettext-translate.html)>.
|
61
|
-
def init(config)
|
62
|
-
if config
|
63
|
-
config.each{|k, v|
|
64
|
-
@config[k] = v
|
65
|
-
}
|
66
|
-
end
|
67
|
-
@ar_re = /class.*(#{@config[:activerecord_classes].join("|")})/
|
68
|
-
end
|
69
|
-
|
70
|
-
def untranslate_column?(klass, columnname)
|
71
|
-
klass.untranslate?(columnname) || @config[:untranslate_columns].include?(columnname)
|
72
|
-
end
|
73
|
-
|
74
|
-
def parse(file, targets = []) # :nodoc:
|
75
|
-
GetText.locale = "en"
|
76
|
-
old_constants = Object.constants
|
77
|
-
begin
|
78
|
-
eval(open(file).read, TOPLEVEL_BINDING)
|
79
|
-
rescue
|
80
|
-
$stderr.puts _("Ignored '%{file}'. Solve dependencies first.") % {:file => file}
|
81
|
-
$stderr.puts $!
|
82
|
-
end
|
83
|
-
loaded_constants = Object.constants - old_constants
|
84
|
-
loaded_constants.each do |classname|
|
85
|
-
klass = eval(classname, TOPLEVEL_BINDING)
|
86
|
-
if klass.is_a?(Class) && klass < ActiveRecord::Base
|
87
|
-
unless (klass.untranslate_all? || klass.abstract_class?)
|
88
|
-
add_target(targets, file, ::Inflector.singularize(klass.table_name.gsub(/_/, " ")))
|
89
|
-
unless klass.class_name == classname
|
90
|
-
add_target(targets, file, ::Inflector.singularize(classname.gsub(/_/, " ").downcase))
|
91
|
-
end
|
92
|
-
begin
|
93
|
-
klass.columns.each do |column|
|
94
|
-
unless untranslate_column?(klass, column.name)
|
95
|
-
if @config[:use_classname]
|
96
|
-
msgid = classname + "|" + klass.human_attribute_name(column.name)
|
97
|
-
else
|
98
|
-
msgid = klass.human_attribute_name(column.name)
|
99
|
-
end
|
100
|
-
add_target(targets, file, msgid)
|
101
|
-
end
|
102
|
-
end
|
103
|
-
rescue
|
104
|
-
$stderr.puts _("No database is available.")
|
105
|
-
$stderr.puts $!
|
106
|
-
end
|
107
|
-
end
|
108
|
-
end
|
109
|
-
end
|
110
|
-
if RubyParser.target?(file)
|
111
|
-
targets = RubyParser.parse(file, targets)
|
112
|
-
end
|
113
|
-
targets.uniq!
|
114
|
-
targets
|
115
|
-
end
|
116
|
-
|
117
|
-
def add_target(targets, file, msgid) # :nodoc:
|
118
|
-
file_lineno = "#{file}:-"
|
119
|
-
key_existed = targets.assoc(msgid)
|
120
|
-
if key_existed
|
121
|
-
unless targets[targets.index(key_existed)].include?(file_lineno)
|
122
|
-
targets[targets.index(key_existed)] = key_existed << file_lineno
|
123
|
-
end
|
124
|
-
else
|
125
|
-
targets << [msgid, "#{file}:-"]
|
126
|
-
end
|
127
|
-
targets
|
128
|
-
end
|
129
|
-
|
130
|
-
@@db_loaded = nil
|
131
|
-
def target?(file) # :nodoc:
|
132
|
-
init(nil) unless @ar_re
|
133
|
-
data = IO.readlines(file)
|
134
|
-
data.each do |v|
|
135
|
-
if @ar_re =~ v
|
136
|
-
unless @@db_loaded
|
137
|
-
begin
|
138
|
-
require 'rubygems'
|
139
|
-
rescue LoadError
|
140
|
-
$stderr.puts _("rubygems are not found.") if $DEBUG
|
141
|
-
end
|
142
|
-
begin
|
143
|
-
ENV["RAILS_ENV"] = @config[:db_mode]
|
144
|
-
require 'config/boot.rb'
|
145
|
-
require 'config/environment.rb'
|
146
|
-
# require 'app/controllers/application.rb'
|
147
|
-
rescue LoadError
|
148
|
-
require_rails 'rubygems'
|
149
|
-
if Kernel.respond_to? :gem
|
150
|
-
gem 'activerecord'
|
151
|
-
else
|
152
|
-
require_gem 'activerecord'
|
153
|
-
end
|
154
|
-
require_rails 'active_record'
|
155
|
-
require_rails 'gettext/active_record'
|
156
|
-
end
|
157
|
-
if @config[:adapter]
|
158
|
-
ActiveRecord::Base.establish_connection(@config)
|
159
|
-
else
|
160
|
-
begin
|
161
|
-
yml = YAML.load(ERB.new(IO.read(@config[:db_yml])).result)
|
162
|
-
rescue
|
163
|
-
return false
|
164
|
-
end
|
165
|
-
end
|
166
|
-
end
|
167
|
-
@@db_loaded = true
|
168
|
-
return true
|
169
|
-
end
|
170
|
-
end
|
171
|
-
false
|
172
|
-
end
|
173
|
-
end
|
174
|
-
end
|
175
|
-
|
176
|
-
if __FILE__ == $0
|
177
|
-
# ex) ruby model1.rb model2.rb
|
178
|
-
ARGV.each do |file|
|
179
|
-
if GetText::ActiveRecordParser.target?(file)
|
180
|
-
p file
|
181
|
-
p GetText::ActiveRecordParser.parse(file)
|
182
|
-
end
|
183
|
-
end
|
184
|
-
end
|
data/lib/gettext/rails.rb
DELETED
@@ -1,547 +0,0 @@
|
|
1
|
-
=begin
|
2
|
-
gettext/rails.rb - GetText for "Ruby on Rails"
|
3
|
-
|
4
|
-
Copyright (C) 2005-2008 Masao Mutoh
|
5
|
-
|
6
|
-
You may redistribute it and/or modify it under the same
|
7
|
-
license terms as Ruby.
|
8
|
-
|
9
|
-
$Id: rails.rb,v 1.81 2008/09/13 18:23:56 mutoh Exp $
|
10
|
-
=end
|
11
|
-
|
12
|
-
require 'gettext/cgi'
|
13
|
-
require 'action_controller'
|
14
|
-
require 'gettext/rails_compat'
|
15
|
-
|
16
|
-
module GetText
|
17
|
-
# GetText::Rails supports Ruby on Rails.
|
18
|
-
# You add only 2 lines in your controller, all of the controller/view/models are
|
19
|
-
# targeted the textdomain.
|
20
|
-
#
|
21
|
-
# See <Ruby-GetText-Package HOWTO for Ruby on Rails (http://www.yotabanana.com/hiki/ruby-gettext-howto-rails.html>.
|
22
|
-
module Rails
|
23
|
-
include GetText
|
24
|
-
|
25
|
-
Rails = ::Rails #:nodoc:
|
26
|
-
|
27
|
-
alias :_bindtextdomain :bindtextdomain #:nodoc:
|
28
|
-
|
29
|
-
def self.included(mod) #:nodoc:
|
30
|
-
mod.extend self
|
31
|
-
end
|
32
|
-
|
33
|
-
module_function
|
34
|
-
# call-seq:
|
35
|
-
# bindtextdomain(domainname, options = {})
|
36
|
-
#
|
37
|
-
# Bind a textdomain(#{path}/#{locale}/LC_MESSAGES/#{domainname}.mo) to your program.
|
38
|
-
# Notes the textdomain scope becomes all of the controllers/views/models in your app.
|
39
|
-
# This is different from normal GetText.bindtextomain.
|
40
|
-
#
|
41
|
-
# Usually, you don't call this directly in your rails application.
|
42
|
-
# Call init_gettext in ActionController::Base instead.
|
43
|
-
#
|
44
|
-
# On the other hand, you need to call this in helpers/plugins.
|
45
|
-
#
|
46
|
-
# * domainname: the textdomain name.
|
47
|
-
# * options: options as a Hash.
|
48
|
-
# * :locale - the locale value such as "ja-JP". When the value is nil,
|
49
|
-
# locale is searched the order by this value > "lang" value of QUERY_STRING >
|
50
|
-
# params["lang"] > "lang" value of Cookie > HTTP_ACCEPT_LANGUAGE value
|
51
|
-
# > Default locale(en).
|
52
|
-
# * :path - the path to the mo-files. Default is "RAIL_ROOT/locale".
|
53
|
-
# * :charset - the charset. Generally UTF-8 is recommanded.
|
54
|
-
# And the charset is set order by "the argument of bindtextdomain"
|
55
|
-
# > HTTP_ACCEPT_CHARSET > Default charset(UTF-8).
|
56
|
-
#
|
57
|
-
#
|
58
|
-
def bindtextdomain(domainname, options = {})
|
59
|
-
options[:path] ||= File.join(RAILS_ROOT, "locale")
|
60
|
-
_bindtextdomain(domainname, options)
|
61
|
-
end
|
62
|
-
|
63
|
-
@@available_locales = nil
|
64
|
-
# Returns locales which supported by the application.
|
65
|
-
# This function returns an reversed array of the locale strings under RAILS_ROOT/locale/*.
|
66
|
-
# It is used for restriction such as caching files.
|
67
|
-
def available_locales
|
68
|
-
unless (GetText.cached? and @@available_locales)
|
69
|
-
@@available_locales = (Dir.glob(File.join(RAILS_ROOT, "locale/[a-z]*")).map{|path| File.basename(path)} << "en").uniq.sort.reverse
|
70
|
-
end
|
71
|
-
@@available_locales
|
72
|
-
end
|
73
|
-
|
74
|
-
# Returns a normalized locale which is in available_locales.
|
75
|
-
# * locale: a Locale::Object or nil.
|
76
|
-
def normalized_locale(locale = nil)
|
77
|
-
locale ||= GetText.locale
|
78
|
-
(available_locales &
|
79
|
-
[locale.to_general, locale.to_s, locale.language, Locale.default.language, "en"].uniq)[0]
|
80
|
-
end
|
81
|
-
|
82
|
-
end
|
83
|
-
end
|
84
|
-
|
85
|
-
module ActionController #:nodoc:
|
86
|
-
class Base
|
87
|
-
helper GetText::Rails
|
88
|
-
include GetText::Rails
|
89
|
-
|
90
|
-
@@gettext_domainnames = []
|
91
|
-
@@gettext_content_type = nil
|
92
|
-
|
93
|
-
prepend_before_filter :init_gettext
|
94
|
-
after_filter :init_content_type
|
95
|
-
|
96
|
-
def init_gettext_main(cgi) #:nodoc:
|
97
|
-
cgi.params["lang"] = [params["lang"]] if params["lang"]
|
98
|
-
set_cgi(cgi)
|
99
|
-
set_locale_all(nil)
|
100
|
-
end
|
101
|
-
|
102
|
-
def init_content_type #:nodoc:
|
103
|
-
if headers["Content-Type"] and /javascript/ =~ headers["Content-Type"]
|
104
|
-
headers["Content-Type"] = "text/javascript; charset=#{GetText.output_charset}"
|
105
|
-
elsif ! headers["Content-Type"]
|
106
|
-
headers["Content-Type"] = "#{@@gettext_content_type}; charset=#{GetText.output_charset}"
|
107
|
-
end
|
108
|
-
end
|
109
|
-
|
110
|
-
def call_methods_around_init_gettext(ary) #:nodoc:
|
111
|
-
ary.each do |block|
|
112
|
-
if block.kind_of? Symbol
|
113
|
-
send(block)
|
114
|
-
else
|
115
|
-
block.call(self)
|
116
|
-
end
|
117
|
-
end
|
118
|
-
end
|
119
|
-
|
120
|
-
def init_gettext # :nodoc:
|
121
|
-
cgi = nil
|
122
|
-
if defined? request.cgi
|
123
|
-
cgi = request.cgi
|
124
|
-
end
|
125
|
-
call_methods_around_init_gettext(@@before_init_gettext)
|
126
|
-
init_gettext_main(cgi) if @@gettext_domainnames.size > 0
|
127
|
-
call_methods_around_init_gettext(@@after_init_gettext)
|
128
|
-
|
129
|
-
if ::RAILS_ENV == "development"
|
130
|
-
@@before_init_gettext = []
|
131
|
-
@@after_init_gettext = []
|
132
|
-
end
|
133
|
-
end
|
134
|
-
|
135
|
-
# Append a block which is called before initializing gettext on the each WWW request.
|
136
|
-
#
|
137
|
-
# (e.g.)
|
138
|
-
# class ApplicationController < ActionController::Base
|
139
|
-
# before_init_gettext{|controller|
|
140
|
-
# cookies = controller.cookies
|
141
|
-
# if (cookies["lang"].nil? or cookies["lang"].empty?)
|
142
|
-
# GetText.locale = "zh_CN"
|
143
|
-
# else
|
144
|
-
# GetText.locale = cookies["lang"]
|
145
|
-
# end
|
146
|
-
# }
|
147
|
-
# init_gettext "myapp"
|
148
|
-
# # ...
|
149
|
-
# end
|
150
|
-
@@before_init_gettext = []
|
151
|
-
def self.before_init_gettext(*methods, &block)
|
152
|
-
@@before_init_gettext += methods
|
153
|
-
@@before_init_gettext << block if block_given?
|
154
|
-
end
|
155
|
-
|
156
|
-
# Append a block which is called after initializing gettext on the each WWW request.
|
157
|
-
#
|
158
|
-
# The GetText.locale is set the locale which bound to the textdomains
|
159
|
-
# when gettext is initialized.
|
160
|
-
#
|
161
|
-
# (e.g.)
|
162
|
-
# class ApplicationController < ActionController::Base
|
163
|
-
# after_init_gettext {|controller|
|
164
|
-
# L10nClass.new(GetText.locale)
|
165
|
-
# }
|
166
|
-
# init_gettext "foo"
|
167
|
-
# # ...
|
168
|
-
# end
|
169
|
-
@@after_init_gettext = []
|
170
|
-
def self.after_init_gettext(*methods, &block)
|
171
|
-
@@after_init_gettext += methods
|
172
|
-
@@after_init_gettext << block if block_given?
|
173
|
-
end
|
174
|
-
|
175
|
-
# Bind a 'textdomain' to all of the controllers/views/models. Call this instead of GetText.bindtextdomain.
|
176
|
-
# * textdomain: the textdomain
|
177
|
-
# * options: options as a Hash.
|
178
|
-
# * :charset - the output charset. Default is "UTF-8"
|
179
|
-
# * :content_type - the content type. Default is "text/html"
|
180
|
-
# * :locale_path - the path to locale directory. Default is {RAILS_ROOT}/locale or {plugin root directory}/locale.
|
181
|
-
#
|
182
|
-
# locale is searched the order by params["lang"] > "lang" value of QUERY_STRING >
|
183
|
-
# "lang" value of Cookie > HTTP_ACCEPT_LANGUAGE value > Default locale(en).
|
184
|
-
# And the charset is set order by "the argument of bindtextdomain" > HTTP_ACCEPT_CHARSET > Default charset(UTF-8).
|
185
|
-
#
|
186
|
-
# Note: Don't use content_type argument(not in options).
|
187
|
-
# They are remained for backward compatibility.
|
188
|
-
#
|
189
|
-
# If you want to separate the textdomain each controllers, you need to call this function in the each controllers.
|
190
|
-
#
|
191
|
-
# app/controller/blog_controller.rb:
|
192
|
-
# require 'gettext/rails'
|
193
|
-
#
|
194
|
-
# class BlogController < ApplicationController
|
195
|
-
# init_gettext "blog"
|
196
|
-
# :
|
197
|
-
# :
|
198
|
-
# end
|
199
|
-
def self.init_gettext(domainname, options = {}, content_type = "text/html")
|
200
|
-
opt = {:charset => "UTF-8", :content_type => content_type}
|
201
|
-
if options.kind_of? String
|
202
|
-
# For backward compatibility
|
203
|
-
opt.merge!(:charset => options, :content_type => content_type)
|
204
|
-
else
|
205
|
-
opt.merge!(options)
|
206
|
-
end
|
207
|
-
GetText.output_charset = opt[:charset]
|
208
|
-
@@gettext_content_type = opt[:content_type]
|
209
|
-
locale_path = opt[:locale_path]
|
210
|
-
unless locale_path
|
211
|
-
cal = caller[0]
|
212
|
-
if cal =~ /app.controllers/
|
213
|
-
locale_path = File.join(cal.split(/app.controllers/)[0] + "locale")
|
214
|
-
else
|
215
|
-
locale_path = File.join(RAILS_ROOT, "locale")
|
216
|
-
end
|
217
|
-
end
|
218
|
-
|
219
|
-
unless @@gettext_domainnames.find{|i| i[0] == domainname}
|
220
|
-
@@gettext_domainnames << [domainname, locale_path]
|
221
|
-
end
|
222
|
-
|
223
|
-
bindtextdomain(domainname, {:path => locale_path})
|
224
|
-
if defined? ActiveRecord::Base
|
225
|
-
textdomain_to(ActiveRecord::Base, domainname)
|
226
|
-
textdomain_to(ActiveRecord::Validations, domainname)
|
227
|
-
end
|
228
|
-
textdomain_to(ActionView::Base, domainname) if defined? ActionView::Base
|
229
|
-
textdomain_to(ApplicationHelper, domainname) if defined? ApplicationHelper
|
230
|
-
textdomain_to(ActionMailer::Base, domainname) if defined? ActionMailer::Base
|
231
|
-
textdomain_to(ActionView::Helpers, domainname) if defined? ActionView::Helpers
|
232
|
-
end
|
233
|
-
|
234
|
-
# Gets the textdomain name and path of this controller which is set
|
235
|
-
# with init_gettext. *(Since 1.8)*
|
236
|
-
#
|
237
|
-
# * Returns: [[textdomainname1, path1], [textdomainname2, path2], ...]
|
238
|
-
def self.textdomains
|
239
|
-
@@gettext_domainnames
|
240
|
-
end
|
241
|
-
end
|
242
|
-
|
243
|
-
class TestRequest < AbstractRequest #:nodoc:
|
244
|
-
class GetTextMockCGI < CGI #:nodoc:
|
245
|
-
attr_accessor :stdinput, :stdoutput, :env_table
|
246
|
-
|
247
|
-
def initialize(env, input=nil)
|
248
|
-
self.env_table = env
|
249
|
-
self.stdinput = StringIO.new(input || "")
|
250
|
-
self.stdoutput = StringIO.new
|
251
|
-
|
252
|
-
super()
|
253
|
-
end
|
254
|
-
end
|
255
|
-
|
256
|
-
@cgi = nil
|
257
|
-
def cgi
|
258
|
-
unless @cgi
|
259
|
-
@cgi = GetTextMockCGI.new("REQUEST_METHOD" => "GET",
|
260
|
-
"QUERY_STRING" => "",
|
261
|
-
"REQUEST_URI" => "/",
|
262
|
-
"HTTP_HOST" => "www.example.com",
|
263
|
-
"SERVER_PORT" => "80",
|
264
|
-
"HTTPS" => "off")
|
265
|
-
end
|
266
|
-
@cgi
|
267
|
-
end
|
268
|
-
end
|
269
|
-
|
270
|
-
end
|
271
|
-
|
272
|
-
module ActionView #:nodoc:
|
273
|
-
class Base #:nodoc:
|
274
|
-
# This provides to find localized template files such as foo_ja.html.erb, foo_ja_JP.html.erb
|
275
|
-
# instead of foo.html.erb. If the file isn't found, foo.html.erb is used.
|
276
|
-
def render_file_with_gettext(template_path, use_full_path = true, local_assigns = {})
|
277
|
-
locale = GetText.locale
|
278
|
-
begin
|
279
|
-
[locale.to_general, locale.to_s, locale.language, Locale.default.language].uniq.each do |v|
|
280
|
-
localized_path = "#{template_path}_#{v}"
|
281
|
-
if (respond_to? :file_exists?) ? file_exists?(localized_path) : (finder.file_exists? localized_path)
|
282
|
-
return render_file_without_gettext(localized_path, use_full_path, local_assigns)
|
283
|
-
end
|
284
|
-
end
|
285
|
-
rescue Exception
|
286
|
-
logger.debug($!)
|
287
|
-
logger.debug($!.backtrace)
|
288
|
-
end
|
289
|
-
render_file_without_gettext(template_path, use_full_path, local_assigns)
|
290
|
-
end
|
291
|
-
alias_method_chain :render_file, :gettext
|
292
|
-
end
|
293
|
-
|
294
|
-
if defined? TemplateFinder
|
295
|
-
class TemplateFinder
|
296
|
-
def pick_template_with_gettext(template_path, extension)
|
297
|
-
locale = GetText.locale
|
298
|
-
[locale.to_general, locale.to_s, locale.language, Locale.default.language].uniq.each do |v|
|
299
|
-
file_name = "#{template_path}_#{v}.#{extension}"
|
300
|
-
base_path = find_base_path_for(file_name)
|
301
|
-
return "#{base_path}/#{file_name}" unless base_path.blank?
|
302
|
-
end
|
303
|
-
pick_template_without_gettext(template_path, extension)
|
304
|
-
end
|
305
|
-
alias_method_chain :pick_template, :gettext
|
306
|
-
end
|
307
|
-
end
|
308
|
-
|
309
|
-
module Helpers #:nodoc:
|
310
|
-
class FormBuilder
|
311
|
-
include GetText
|
312
|
-
|
313
|
-
def label_with_gettext(method, text = nil, options = {})
|
314
|
-
text ||= s_("#{@object.class}|#{method.to_s.humanize}")
|
315
|
-
@template.label(@object_name, method, text, options.merge(:object => @object))
|
316
|
-
end
|
317
|
-
alias_method_chain :label, :gettext
|
318
|
-
end
|
319
|
-
|
320
|
-
module ActiveRecordHelper #:nodoc: all
|
321
|
-
module L10n
|
322
|
-
# Separate namespace for textdomain
|
323
|
-
include GetText
|
324
|
-
|
325
|
-
bindtextdomain("rails")
|
326
|
-
|
327
|
-
@error_message_title = Nn_("%{num} error prohibited this %{record} from being saved",
|
328
|
-
"%{num} errors prohibited this %{record} from being saved")
|
329
|
-
@error_message_explanation = Nn_("There was a problem with the following field:",
|
330
|
-
"There were problems with the following fields:")
|
331
|
-
|
332
|
-
module_function
|
333
|
-
# call-seq:
|
334
|
-
# set_error_message_title(msgs)
|
335
|
-
#
|
336
|
-
# Sets a your own title of error message dialog.
|
337
|
-
# * msgs: [single_msg, plural_msg]. Usually you need to call this with Nn_().
|
338
|
-
# * Returns: [single_msg, plural_msg]
|
339
|
-
def set_error_message_title(msg, plural_msg = nil)
|
340
|
-
if msg.kind_of? Array
|
341
|
-
single_msg = msg[0]
|
342
|
-
plural_msg = msg[1]
|
343
|
-
else
|
344
|
-
single_msg = msg
|
345
|
-
end
|
346
|
-
@error_message_title = [single_msg, plural_msg]
|
347
|
-
end
|
348
|
-
|
349
|
-
# call-seq:
|
350
|
-
# set_error_message_explanation(msg)
|
351
|
-
#
|
352
|
-
# Sets a your own explanation of the error message dialog.
|
353
|
-
# * msg: [single_msg, plural_msg]. Usually you need to call this with Nn_().
|
354
|
-
# * Returns: [single_msg, plural_msg]
|
355
|
-
def set_error_message_explanation(msg, plural_msg = nil)
|
356
|
-
if msg.kind_of? Array
|
357
|
-
single_msg = msg[0]
|
358
|
-
plural_msg = msg[1]
|
359
|
-
else
|
360
|
-
single_msg = msg
|
361
|
-
end
|
362
|
-
@error_message_explanation = [single_msg, plural_msg]
|
363
|
-
end
|
364
|
-
|
365
|
-
#
|
366
|
-
def error_messages_for(instance, objects, object_names, count, options)
|
367
|
-
record = ActiveRecord::Base.human_attribute_table_name_for_error(options[:object_name] || object_names[0].to_s)
|
368
|
-
|
369
|
-
html = {}
|
370
|
-
[:id, :class].each do |key|
|
371
|
-
if options.include?(key)
|
372
|
-
value = options[key]
|
373
|
-
html[key] = value unless value.blank?
|
374
|
-
else
|
375
|
-
html[key] = 'errorExplanation'
|
376
|
-
end
|
377
|
-
end
|
378
|
-
|
379
|
-
if options[:message_title]
|
380
|
-
header_message = instance.error_message(options[:message_title], count) % {:num => count, :record => record}
|
381
|
-
else
|
382
|
-
header_message = n_(@error_message_title, count) % {:num => count, :record => record}
|
383
|
-
end
|
384
|
-
if options[:message_explanation]
|
385
|
-
message_explanation = instance.error_message(options[:message_explanation], count) % {:num => count}
|
386
|
-
else
|
387
|
-
message_explanation = n_(@error_message_explanation, count) % {:num => count}
|
388
|
-
end
|
389
|
-
|
390
|
-
error_messages = objects.map {|object| object.errors.full_messages.map {|msg| instance.content_tag(:li, msg) } }
|
391
|
-
|
392
|
-
instance.content_tag(:div,
|
393
|
-
instance.content_tag(options[:header_tag] || :h2, header_message) <<
|
394
|
-
instance.content_tag(:p, message_explanation) <<
|
395
|
-
instance.content_tag(:ul, error_messages),
|
396
|
-
html
|
397
|
-
)
|
398
|
-
end
|
399
|
-
end
|
400
|
-
|
401
|
-
def error_message(msg, count) #:nodoc:
|
402
|
-
ngettext(msg, count)
|
403
|
-
end
|
404
|
-
|
405
|
-
alias error_messages_for_without_localize error_messages_for #:nodoc:
|
406
|
-
|
407
|
-
# error_messages_for overrides original method with localization.
|
408
|
-
# And also it extends to be able to replace the title/explanation of the header of the error dialog. (Since 1.90)
|
409
|
-
# If you want to override these messages in the whole application,
|
410
|
-
# use ActionView::Helpers::ActiveRecordHelper::L10n.set_error_message_(title|explanation) instead.
|
411
|
-
# * :message_title - the title of message. Use Nn_() to path the strings for singular/plural.
|
412
|
-
# e.g. Nn_("%{num} error prohibited this %{record} from being saved",
|
413
|
-
# "%{num} errors prohibited this %{record} from being saved")
|
414
|
-
# * :message_explanation - the explanation of message
|
415
|
-
# e.g. Nn_("There was a problem with the following field:",
|
416
|
-
# "There were %{num} problems with the following fields:")
|
417
|
-
def error_messages_for(*params)
|
418
|
-
options = params.last.is_a?(Hash) ? params.pop.symbolize_keys : {}
|
419
|
-
objects = params.collect {|object_name| instance_variable_get("@#{object_name}") }.compact
|
420
|
-
object_names = params.dup
|
421
|
-
count = objects.inject(0) {|sum, object| sum + object.errors.count }
|
422
|
-
if count.zero?
|
423
|
-
''
|
424
|
-
else
|
425
|
-
L10n.error_messages_for(self, objects, object_names, count, options)
|
426
|
-
end
|
427
|
-
end
|
428
|
-
end
|
429
|
-
|
430
|
-
module DateHelper #:nodoc: all
|
431
|
-
include GetText
|
432
|
-
alias distance_of_time_in_words_without_locale distance_of_time_in_words #:nodoc:
|
433
|
-
|
434
|
-
# This is FAKE constant. The messages are found by rgettext as the msgid.
|
435
|
-
MESSAGESS = [N_('less than 5 seconds'), N_('less than 10 seconds'), N_('less than 20 seconds'),
|
436
|
-
N_('half a minute'), N_('less than a minute'), N_('about 1 month'),
|
437
|
-
N_('about 1 year')]
|
438
|
-
NMINUTES = [/^(\d+) minutes?$/, Nn_('1 minute', '%{num} minutes')]
|
439
|
-
NHOURS = [/^about (\d+) hours?$/, Nn_('about 1 hour', 'about %{num} hours')]
|
440
|
-
NDAYS = [/^(\d+) days?$/, Nn_('1 day', '%{num} days')]
|
441
|
-
NMONTHS = [/^(\d+) months?$/, Nn_('1 month', '%{num} months')]
|
442
|
-
NYEARS = [/^over (\d+) years?$/, Nn_('over 1 year', 'over %{num} years')]
|
443
|
-
|
444
|
-
def distance_of_time_in_words(from_time, to_time = 0, include_seconds = false)
|
445
|
-
textdomain("rails")
|
446
|
-
|
447
|
-
msg = distance_of_time_in_words_without_locale(from_time, to_time, include_seconds)
|
448
|
-
match = false
|
449
|
-
[NMINUTES, NHOURS, NDAYS, NMONTHS, NYEARS].each do |regexp, nn|
|
450
|
-
if regexp =~ msg
|
451
|
-
match = true
|
452
|
-
msg = n_(nn, $1.to_i) % {:num => $1}
|
453
|
-
break
|
454
|
-
end
|
455
|
-
end
|
456
|
-
match ? msg : _(msg)
|
457
|
-
end
|
458
|
-
end
|
459
|
-
end
|
460
|
-
end
|
461
|
-
|
462
|
-
if defined? ActionMailer
|
463
|
-
module ActionMailer #:nodoc:
|
464
|
-
class Base #:nodoc:
|
465
|
-
helper GetText::Rails
|
466
|
-
include GetText::Rails
|
467
|
-
extend GetText::Rails
|
468
|
-
|
469
|
-
alias :create_without_gettext! :create! #:nodoc:
|
470
|
-
|
471
|
-
def base64(text, charset="iso-2022-jp", convert=true)
|
472
|
-
if convert
|
473
|
-
if charset == "iso-2022-jp"
|
474
|
-
text = NKF.nkf('-j -m0', text)
|
475
|
-
end
|
476
|
-
end
|
477
|
-
text = TMail::Base64.folding_encode(text)
|
478
|
-
"=?#{charset}?B?#{text}?="
|
479
|
-
end
|
480
|
-
|
481
|
-
def create!(*arg) #:nodoc:
|
482
|
-
create_without_gettext!(*arg)
|
483
|
-
if Locale.get.language == "ja"
|
484
|
-
require 'nkf'
|
485
|
-
@mail.subject = base64(@mail.subject)
|
486
|
-
part = @mail.parts.empty? ? @mail : @mail.parts.first
|
487
|
-
if part.content_type == 'text/plain'
|
488
|
-
part.charset = 'iso-2022-jp'
|
489
|
-
part.body = NKF.nkf('-j', part.body)
|
490
|
-
end
|
491
|
-
end
|
492
|
-
@mail
|
493
|
-
end
|
494
|
-
end
|
495
|
-
end
|
496
|
-
end
|
497
|
-
|
498
|
-
module ActionController #:nodoc: all
|
499
|
-
module Caching
|
500
|
-
module Fragments
|
501
|
-
def fragment_cache_key_with_gettext(name)
|
502
|
-
ret = fragment_cache_key_without_gettext(name)
|
503
|
-
if ret.is_a? String
|
504
|
-
ret.gsub(/:/, ".") << "_#{normalized_locale}"
|
505
|
-
else
|
506
|
-
ret
|
507
|
-
end
|
508
|
-
end
|
509
|
-
alias_method_chain :fragment_cache_key, :gettext
|
510
|
-
|
511
|
-
def expire_fragment_with_gettext(name, options = nil)
|
512
|
-
return unless perform_caching
|
513
|
-
|
514
|
-
fc_store = (respond_to? :cache_store) ? cache_store : fragment_cache_store
|
515
|
-
key = name.is_a?(Regexp) ? name : fragment_cache_key_without_gettext(name)
|
516
|
-
if key.is_a?(Regexp)
|
517
|
-
self.class.benchmark "Expired fragments matching: #{key.source}" do
|
518
|
-
fc_store.delete_matched(key, options)
|
519
|
-
end
|
520
|
-
else
|
521
|
-
key = key.gsub(/:/, ".")
|
522
|
-
self.class.benchmark "Expired fragment: #{key}, lang = #{available_locales.inspect}" do
|
523
|
-
available_locales.each do |lang|
|
524
|
-
fc_store.delete("#{key}_#{lang}", options)
|
525
|
-
end
|
526
|
-
end
|
527
|
-
end
|
528
|
-
end
|
529
|
-
alias_method_chain :expire_fragment, :gettext
|
530
|
-
end
|
531
|
-
end
|
532
|
-
end
|
533
|
-
|
534
|
-
begin
|
535
|
-
Rails::Info.property("GetText version") do
|
536
|
-
GetText::VERSION
|
537
|
-
end
|
538
|
-
rescue Exception
|
539
|
-
$stderr.puts "GetText: #{GetText::VERSION} Rails::Info is not found." if $DEBUG
|
540
|
-
end
|
541
|
-
|
542
|
-
|
543
|
-
if ::RAILS_ENV == "development"
|
544
|
-
GetText.cached = false
|
545
|
-
end
|
546
|
-
|
547
|
-
require 'gettext/active_record'
|