grosser-gettext 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/ChangeLog +2014 -0
- data/README.rdoc +172 -0
- data/Rakefile +192 -0
- data/bin/rgettext +24 -0
- data/bin/rmsgfmt +24 -0
- data/bin/rmsgmerge +24 -0
- data/gettext.gemspec +39 -0
- data/lib/gettext.rb +263 -0
- data/lib/gettext/cgi.rb +40 -0
- data/lib/gettext/class_info.rb +55 -0
- data/lib/gettext/core_ext/iconv.rb +109 -0
- data/lib/gettext/core_ext/string.rb +63 -0
- data/lib/gettext/mofile.rb +320 -0
- data/lib/gettext/parser/erb.rb +50 -0
- data/lib/gettext/parser/glade.rb +99 -0
- data/lib/gettext/parser/ruby.rb +170 -0
- data/lib/gettext/poparser.rb +332 -0
- data/lib/gettext/textdomain.rb +225 -0
- data/lib/gettext/textdomain_manager.rb +218 -0
- data/lib/gettext/tools.rb +177 -0
- data/lib/gettext/tools/rgettext.rb +275 -0
- data/lib/gettext/tools/rmsgfmt.rb +84 -0
- data/lib/gettext/tools/rmsgmerge.rb +505 -0
- data/lib/gettext/utils.rb +39 -0
- data/lib/gettext/version.rb +12 -0
- data/po/bg/rgettext.po +150 -0
- data/po/bs/rgettext.po +151 -0
- data/po/ca/rgettext.po +149 -0
- data/po/cs/rgettext.po +152 -0
- data/po/de/#rails.po# +175 -0
- data/po/de/rgettext.po +157 -0
- data/po/el/rgettext.po +148 -0
- data/po/eo/rgettext.po +149 -0
- data/po/es/rgettext.po +150 -0
- data/po/et/rgettext.po +147 -0
- data/po/fr/rgettext.po +153 -0
- data/po/hr/rgettext.po +151 -0
- data/po/hu/rgettext.po +149 -0
- data/po/it/rgettext.po +150 -0
- data/po/ja/rails.po.old +150 -0
- data/po/ja/rgettext.po +149 -0
- data/po/ko/rgettext.po +149 -0
- data/po/lv/rgettext.po +150 -0
- data/po/nb/rgettext.po +151 -0
- data/po/nl/rgettext.po +150 -0
- data/po/pt_BR/rgettext.po +152 -0
- data/po/rgettext.pot +141 -0
- data/po/ru/rgettext.po +151 -0
- data/po/sr/rgettext.po +150 -0
- data/po/sv/rgettext.po +143 -0
- data/po/ua/rgettext.po +155 -0
- data/po/vi/rgettext.po +148 -0
- data/po/zh/rgettext.po +149 -0
- data/po/zh_TW/rgettext.po +148 -0
- data/samples/README +16 -0
- data/samples/cgi/README +43 -0
- data/samples/cgi/Rakefile +27 -0
- data/samples/cgi/cookie.cgi +64 -0
- data/samples/cgi/gettext.css +116 -0
- data/samples/cgi/helloerb.rhtml +28 -0
- data/samples/cgi/helloerb1.cgi +58 -0
- data/samples/cgi/helloerb2.cgi +51 -0
- data/samples/cgi/hellolib.rb +20 -0
- data/samples/cgi/http.rb +51 -0
- data/samples/cgi/index.cgi +111 -0
- data/samples/cgi/other.rhtml +20 -0
- data/samples/cgi/po/bg/helloerb1.po +59 -0
- data/samples/cgi/po/bg/helloerb2.po +51 -0
- data/samples/cgi/po/bg/hellolib.po +23 -0
- data/samples/cgi/po/bg/main.po +83 -0
- data/samples/cgi/po/bs/helloerb1.po +59 -0
- data/samples/cgi/po/bs/helloerb2.po +51 -0
- data/samples/cgi/po/bs/hellolib.po +23 -0
- data/samples/cgi/po/bs/main.po +83 -0
- data/samples/cgi/po/ca/helloerb1.po +59 -0
- data/samples/cgi/po/ca/helloerb2.po +51 -0
- data/samples/cgi/po/ca/hellolib.po +23 -0
- data/samples/cgi/po/ca/main.po +83 -0
- data/samples/cgi/po/cs/helloerb1.po +61 -0
- data/samples/cgi/po/cs/helloerb2.po +52 -0
- data/samples/cgi/po/cs/hellolib.po +25 -0
- data/samples/cgi/po/cs/main.po +85 -0
- data/samples/cgi/po/de/helloerb1.po +61 -0
- data/samples/cgi/po/de/helloerb2.po +52 -0
- data/samples/cgi/po/de/hellolib.po +24 -0
- data/samples/cgi/po/de/main.po +86 -0
- data/samples/cgi/po/el/helloerb1.po +60 -0
- data/samples/cgi/po/el/helloerb2.po +51 -0
- data/samples/cgi/po/el/hellolib.po +23 -0
- data/samples/cgi/po/el/main.po +84 -0
- data/samples/cgi/po/eo/helloerb1.po +60 -0
- data/samples/cgi/po/eo/helloerb2.po +52 -0
- data/samples/cgi/po/eo/hellolib.po +24 -0
- data/samples/cgi/po/eo/main.po +84 -0
- data/samples/cgi/po/es/helloerb1.po +59 -0
- data/samples/cgi/po/es/helloerb2.po +50 -0
- data/samples/cgi/po/es/hellolib.po +22 -0
- data/samples/cgi/po/es/main.po +83 -0
- data/samples/cgi/po/fr/helloerb1.po +59 -0
- data/samples/cgi/po/fr/helloerb2.po +51 -0
- data/samples/cgi/po/fr/hellolib.po +22 -0
- data/samples/cgi/po/fr/main.po +85 -0
- data/samples/cgi/po/helloerb1.pot +60 -0
- data/samples/cgi/po/helloerb2.pot +52 -0
- data/samples/cgi/po/hellolib.pot +24 -0
- data/samples/cgi/po/hr/helloerb1.po +59 -0
- data/samples/cgi/po/hr/helloerb2.po +51 -0
- data/samples/cgi/po/hr/hellolib.po +23 -0
- data/samples/cgi/po/hr/main.po +83 -0
- data/samples/cgi/po/hu/helloerb1.po +59 -0
- data/samples/cgi/po/hu/helloerb2.po +51 -0
- data/samples/cgi/po/hu/hellolib.po +23 -0
- data/samples/cgi/po/hu/main.po +82 -0
- data/samples/cgi/po/it/helloerb1.po +60 -0
- data/samples/cgi/po/it/helloerb2.po +52 -0
- data/samples/cgi/po/it/hellolib.po +24 -0
- data/samples/cgi/po/it/main.po +84 -0
- data/samples/cgi/po/ja/helloerb1.po +60 -0
- data/samples/cgi/po/ja/helloerb2.po +52 -0
- data/samples/cgi/po/ja/hellolib.po +24 -0
- data/samples/cgi/po/ja/main.po +85 -0
- data/samples/cgi/po/ko/helloerb1.po +59 -0
- data/samples/cgi/po/ko/helloerb2.po +51 -0
- data/samples/cgi/po/ko/hellolib.po +23 -0
- data/samples/cgi/po/ko/main.po +84 -0
- data/samples/cgi/po/lv/helloerb1.po +65 -0
- data/samples/cgi/po/lv/helloerb2.po +52 -0
- data/samples/cgi/po/lv/hellolib.po +24 -0
- data/samples/cgi/po/lv/main.po +77 -0
- data/samples/cgi/po/main.pot +80 -0
- data/samples/cgi/po/nb/helloerb1.po +60 -0
- data/samples/cgi/po/nb/helloerb2.po +52 -0
- data/samples/cgi/po/nb/hellolib.po +24 -0
- data/samples/cgi/po/nb/main.po +84 -0
- data/samples/cgi/po/nl/helloerb1.po +61 -0
- data/samples/cgi/po/nl/helloerb2.po +52 -0
- data/samples/cgi/po/nl/hellolib.po +24 -0
- data/samples/cgi/po/nl/main.po +86 -0
- data/samples/cgi/po/pt_BR/helloerb1.po +59 -0
- data/samples/cgi/po/pt_BR/helloerb2.po +51 -0
- data/samples/cgi/po/pt_BR/hellolib.po +23 -0
- data/samples/cgi/po/pt_BR/main.po +84 -0
- data/samples/cgi/po/ru/helloerb1.po +58 -0
- data/samples/cgi/po/ru/helloerb2.po +50 -0
- data/samples/cgi/po/ru/hellolib.po +22 -0
- data/samples/cgi/po/ru/main.po +82 -0
- data/samples/cgi/po/sr/helloerb1.po +60 -0
- data/samples/cgi/po/sr/helloerb2.po +52 -0
- data/samples/cgi/po/sr/hellolib.po +24 -0
- data/samples/cgi/po/sr/main.po +80 -0
- data/samples/cgi/po/ua/helloerb1.po +62 -0
- data/samples/cgi/po/ua/helloerb2.po +54 -0
- data/samples/cgi/po/ua/hellolib.po +26 -0
- data/samples/cgi/po/ua/main.po +84 -0
- data/samples/cgi/po/vi/helloerb1.po +65 -0
- data/samples/cgi/po/vi/helloerb2.po +52 -0
- data/samples/cgi/po/vi/hellolib.po +24 -0
- data/samples/cgi/po/vi/main.po +77 -0
- data/samples/cgi/po/zh/helloerb1.po +60 -0
- data/samples/cgi/po/zh/helloerb2.po +52 -0
- data/samples/cgi/po/zh/hellolib.po +24 -0
- data/samples/cgi/po/zh/main.po +80 -0
- data/samples/cgi/po/zh_TW/helloerb1.po +67 -0
- data/samples/cgi/po/zh_TW/helloerb2.po +54 -0
- data/samples/cgi/po/zh_TW/hellolib.po +26 -0
- data/samples/cgi/po/zh_TW/main.po +79 -0
- data/samples/hello.rb +36 -0
- data/samples/hello2.rb +23 -0
- data/samples/hello_glade2.glade +70 -0
- data/samples/hello_glade2.rb +25 -0
- data/samples/hello_gtk2.rb +27 -0
- data/samples/hello_noop.rb +31 -0
- data/samples/hello_plural.rb +26 -0
- data/samples/hello_tk.rb +19 -0
- data/samples/makemo.rb +4 -0
- data/samples/po/bg/hello.po +24 -0
- data/samples/po/bg/hello2.po +31 -0
- data/samples/po/bg/hello_glade2.po +31 -0
- data/samples/po/bg/hello_gtk.po +23 -0
- data/samples/po/bg/hello_noop.po +27 -0
- data/samples/po/bg/hello_plural.po +25 -0
- data/samples/po/bg/hello_tk.po +23 -0
- data/samples/po/bs/hello.po +23 -0
- data/samples/po/bs/hello2.po +31 -0
- data/samples/po/bs/hello_glade2.po +31 -0
- data/samples/po/bs/hello_gtk.po +23 -0
- data/samples/po/bs/hello_noop.po +27 -0
- data/samples/po/bs/hello_plural.po +26 -0
- data/samples/po/bs/hello_tk.po +23 -0
- data/samples/po/ca/hello.po +23 -0
- data/samples/po/ca/hello2.po +31 -0
- data/samples/po/ca/hello_glade2.po +31 -0
- data/samples/po/ca/hello_gtk.po +23 -0
- data/samples/po/ca/hello_noop.po +27 -0
- data/samples/po/ca/hello_plural.po +25 -0
- data/samples/po/ca/hello_tk.po +23 -0
- data/samples/po/cs/hello.po +23 -0
- data/samples/po/cs/hello2.po +31 -0
- data/samples/po/cs/hello_glade2.po +37 -0
- data/samples/po/cs/hello_gtk.po +23 -0
- data/samples/po/cs/hello_noop.po +27 -0
- data/samples/po/cs/hello_plural.po +26 -0
- data/samples/po/cs/hello_tk.po +23 -0
- data/samples/po/de/hello.po +20 -0
- data/samples/po/de/hello2.po +28 -0
- data/samples/po/de/hello_glade2.po +27 -0
- data/samples/po/de/hello_gtk.po +20 -0
- data/samples/po/de/hello_noop.po +24 -0
- data/samples/po/de/hello_plural.po +25 -0
- data/samples/po/de/hello_tk.po +20 -0
- data/samples/po/el/hello.po +23 -0
- data/samples/po/el/hello2.po +31 -0
- data/samples/po/el/hello_glade2.po +31 -0
- data/samples/po/el/hello_gtk.po +22 -0
- data/samples/po/el/hello_noop.po +27 -0
- data/samples/po/el/hello_plural.po +25 -0
- data/samples/po/el/hello_tk.po +23 -0
- data/samples/po/eo/hello.po +23 -0
- data/samples/po/eo/hello2.po +31 -0
- data/samples/po/eo/hello_glade2.po +32 -0
- data/samples/po/eo/hello_gtk.po +23 -0
- data/samples/po/eo/hello_noop.po +27 -0
- data/samples/po/eo/hello_plural.po +26 -0
- data/samples/po/eo/hello_tk.po +24 -0
- data/samples/po/es/hello.po +21 -0
- data/samples/po/es/hello2.po +28 -0
- data/samples/po/es/hello_glade2.po +28 -0
- data/samples/po/es/hello_gtk.po +20 -0
- data/samples/po/es/hello_noop.po +24 -0
- data/samples/po/es/hello_plural.po +23 -0
- data/samples/po/es/hello_tk.po +20 -0
- data/samples/po/fr/hello.po +18 -0
- data/samples/po/fr/hello2.po +26 -0
- data/samples/po/fr/hello_glade2.po +27 -0
- data/samples/po/fr/hello_gtk.po +18 -0
- data/samples/po/fr/hello_noop.po +22 -0
- data/samples/po/fr/hello_plural.po +21 -0
- data/samples/po/fr/hello_tk.po +18 -0
- data/samples/po/hello.pot +23 -0
- data/samples/po/hello2.pot +31 -0
- data/samples/po/hello_glade2.pot +32 -0
- data/samples/po/hello_gtk.pot +23 -0
- data/samples/po/hello_noop.pot +27 -0
- data/samples/po/hello_plural.pot +26 -0
- data/samples/po/hello_tk.pot +24 -0
- data/samples/po/hr/hello.po +23 -0
- data/samples/po/hr/hello2.po +31 -0
- data/samples/po/hr/hello_glade2.po +31 -0
- data/samples/po/hr/hello_gtk.po +23 -0
- data/samples/po/hr/hello_noop.po +27 -0
- data/samples/po/hr/hello_plural.po +26 -0
- data/samples/po/hr/hello_tk.po +23 -0
- data/samples/po/hu/hello.po +22 -0
- data/samples/po/hu/hello2.po +30 -0
- data/samples/po/hu/hello_glade2.po +31 -0
- data/samples/po/hu/hello_gtk.po +22 -0
- data/samples/po/hu/hello_noop.po +26 -0
- data/samples/po/hu/hello_plural.po +25 -0
- data/samples/po/hu/hello_tk.po +23 -0
- data/samples/po/it/hello.po +20 -0
- data/samples/po/it/hello2.po +28 -0
- data/samples/po/it/hello_glade2.po +28 -0
- data/samples/po/it/hello_gtk.po +21 -0
- data/samples/po/it/hello_noop.po +24 -0
- data/samples/po/it/hello_plural.po +23 -0
- data/samples/po/it/hello_tk.po +21 -0
- data/samples/po/ja/hello.po +20 -0
- data/samples/po/ja/hello2.po +28 -0
- data/samples/po/ja/hello_glade2.po +26 -0
- data/samples/po/ja/hello_gtk.po +19 -0
- data/samples/po/ja/hello_noop.po +23 -0
- data/samples/po/ja/hello_plural.po +21 -0
- data/samples/po/ja/hello_tk.po +19 -0
- data/samples/po/ko/hello.po +18 -0
- data/samples/po/ko/hello2.po +26 -0
- data/samples/po/ko/hello_glade2.po +29 -0
- data/samples/po/ko/hello_gtk.po +18 -0
- data/samples/po/ko/hello_noop.po +22 -0
- data/samples/po/ko/hello_plural.po +25 -0
- data/samples/po/ko/hello_tk.po +19 -0
- data/samples/po/lv/hello.po +24 -0
- data/samples/po/lv/hello2.po +32 -0
- data/samples/po/lv/hello_glade2.po +38 -0
- data/samples/po/lv/hello_gtk.po +24 -0
- data/samples/po/lv/hello_noop.po +28 -0
- data/samples/po/lv/hello_plural.po +26 -0
- data/samples/po/lv/hello_tk.po +24 -0
- data/samples/po/nb/hello.po +23 -0
- data/samples/po/nb/hello2.po +31 -0
- data/samples/po/nb/hello_glade2.po +31 -0
- data/samples/po/nb/hello_gtk.po +23 -0
- data/samples/po/nb/hello_noop.po +27 -0
- data/samples/po/nb/hello_plural.po +26 -0
- data/samples/po/nb/hello_tk.po +24 -0
- data/samples/po/nl/hello.po +24 -0
- data/samples/po/nl/hello2.po +32 -0
- data/samples/po/nl/hello_glade2.po +31 -0
- data/samples/po/nl/hello_gtk.po +24 -0
- data/samples/po/nl/hello_noop.po +28 -0
- data/samples/po/nl/hello_plural.po +25 -0
- data/samples/po/nl/hello_tk.po +24 -0
- data/samples/po/pt_BR/hello.po +21 -0
- data/samples/po/pt_BR/hello2.po +29 -0
- data/samples/po/pt_BR/hello_glade2.po +29 -0
- data/samples/po/pt_BR/hello_gtk.po +21 -0
- data/samples/po/pt_BR/hello_noop.po +25 -0
- data/samples/po/pt_BR/hello_plural.po +23 -0
- data/samples/po/pt_BR/hello_tk.po +21 -0
- data/samples/po/ru/hello.po +22 -0
- data/samples/po/ru/hello2.po +30 -0
- data/samples/po/ru/hello_glade2.po +30 -0
- data/samples/po/ru/hello_gtk.po +22 -0
- data/samples/po/ru/hello_noop.po +26 -0
- data/samples/po/ru/hello_plural.po +28 -0
- data/samples/po/ru/hello_tk.po +22 -0
- data/samples/po/sr/hello.po +22 -0
- data/samples/po/sr/hello2.po +30 -0
- data/samples/po/sr/hello_glade2.po +32 -0
- data/samples/po/sr/hello_gtk.po +22 -0
- data/samples/po/sr/hello_noop.po +26 -0
- data/samples/po/sr/hello_plural.po +26 -0
- data/samples/po/sr/hello_tk.po +24 -0
- data/samples/po/sv/hello.po +20 -0
- data/samples/po/sv/hello2.po +28 -0
- data/samples/po/sv/hello_glade2.po +28 -0
- data/samples/po/sv/hello_gtk.po +20 -0
- data/samples/po/sv/hello_noop.po +24 -0
- data/samples/po/sv/hello_plural.po +23 -0
- data/samples/po/sv/hello_tk.po +20 -0
- data/samples/po/test.rb +11 -0
- data/samples/po/ua/hello.po +22 -0
- data/samples/po/ua/hello2.po +30 -0
- data/samples/po/ua/hello_glade2.po +34 -0
- data/samples/po/ua/hello_gtk.po +22 -0
- data/samples/po/ua/hello_noop.po +26 -0
- data/samples/po/ua/hello_plural.po +29 -0
- data/samples/po/ua/hello_tk.po +26 -0
- data/samples/po/vi/hello.po +23 -0
- data/samples/po/vi/hello2.po +31 -0
- data/samples/po/vi/hello_glade2.po +38 -0
- data/samples/po/vi/hello_gtk.po +23 -0
- data/samples/po/vi/hello_noop.po +27 -0
- data/samples/po/vi/hello_plural.po +26 -0
- data/samples/po/vi/hello_tk.po +24 -0
- data/samples/po/zh/hello.po +23 -0
- data/samples/po/zh/hello2.po +31 -0
- data/samples/po/zh/hello_glade2.po +31 -0
- data/samples/po/zh/hello_gtk.po +23 -0
- data/samples/po/zh/hello_noop.po +27 -0
- data/samples/po/zh/hello_plural.po +25 -0
- data/samples/po/zh/hello_tk.po +23 -0
- data/samples/po/zh_TW/hello.po +26 -0
- data/samples/po/zh_TW/hello2.po +34 -0
- data/samples/po/zh_TW/hello_glade2.po +40 -0
- data/samples/po/zh_TW/hello_gtk.po +25 -0
- data/samples/po/zh_TW/hello_noop.po +30 -0
- data/samples/po/zh_TW/hello_plural.po +28 -0
- data/samples/po/zh_TW/hello_tk.po +26 -0
- data/src/poparser.ry +198 -0
- data/test/README +1 -0
- data/test/Rakefile +19 -0
- data/test/po/cr/plural.po +23 -0
- data/test/po/da/plural.po +22 -0
- data/test/po/da/plural_error.po +21 -0
- data/test/po/fr/plural.po +28 -0
- data/test/po/fr/plural_error.po +20 -0
- data/test/po/fr/test1.po +23 -0
- data/test/po/fr/test2.po +19 -0
- data/test/po/fr/test6.po +23 -0
- data/test/po/ir/plural.po +23 -0
- data/test/po/ja/npgettext.po +46 -0
- data/test/po/ja/nsgettext.po +65 -0
- data/test/po/ja/pgettext.po +41 -0
- data/test/po/ja/plural.po +28 -0
- data/test/po/ja/plural_error.po +20 -0
- data/test/po/ja/rubyparser.po +43 -0
- data/test/po/ja/sgettext.po +47 -0
- data/test/po/ja/test1.po +23 -0
- data/test/po/ja/test2.po +19 -0
- data/test/po/ja/test6.po +23 -0
- data/test/po/la/plural.po +23 -0
- data/test/po/la/plural_error.po +21 -0
- data/test/po/li/plural.po +23 -0
- data/test/po/po/plural.po +23 -0
- data/test/po/sl/plural.po +24 -0
- data/test/test_class_info.rb +80 -0
- data/test/test_gettext.rb +274 -0
- data/test/test_parser.rb +113 -0
- data/test/test_string.rb +14 -0
- data/test/test_textdomain.rb +25 -0
- data/test/test_textdomain_multi.rb +69 -0
- data/test/test_textdomain_toplevel.rb +42 -0
- data/test/testlib/N_.rb +66 -0
- data/test/testlib/erb.rhtml +15 -0
- data/test/testlib/erb.rxml +16 -0
- data/test/testlib/gettext.rb +96 -0
- data/test/testlib/gladeparser.glade +183 -0
- data/test/testlib/helper.rb +11 -0
- data/test/testlib/multi_textdomain.rb +119 -0
- data/test/testlib/ngettext.rb +74 -0
- data/test/testlib/npgettext.rb +31 -0
- data/test/testlib/nsgettext.rb +42 -0
- data/test/testlib/pgettext.rb +31 -0
- data/test/testlib/sgettext.rb +46 -0
- data/test/testlib/simple.rb +14 -0
- metadata +509 -0
data/README.rdoc
ADDED
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
= Ruby-Gettext-Package
|
|
2
|
+
|
|
3
|
+
Ruby-GetText-Package is a Localization(L10n) library and tool
|
|
4
|
+
which is modeled after the GNU gettext package.
|
|
5
|
+
|
|
6
|
+
This library translates original messages to localized
|
|
7
|
+
messages using client-side locale information(environment
|
|
8
|
+
variable or CGI variable).
|
|
9
|
+
|
|
10
|
+
The tools for developers support creating, useing, and modifying
|
|
11
|
+
localized message files(message catalogs).
|
|
12
|
+
|
|
13
|
+
((*Rails*))
|
|
14
|
+
Rails support has been removed.
|
|
15
|
+
Rails / ActiveRecord specific code now lives in gettext_rails and gettext_activerecord.
|
|
16
|
+
|
|
17
|
+
== Website
|
|
18
|
+
* homepage[http://www.yotabanana.com/hiki/ruby-gettext.html]
|
|
19
|
+
* on rubyforge[http://gettext/rubyforge.org/]
|
|
20
|
+
* on github[http://github.com/gettext/]
|
|
21
|
+
|
|
22
|
+
== Features
|
|
23
|
+
* Simple APIs(similar to GNU gettext)
|
|
24
|
+
|
|
25
|
+
* rgettext creates po-files from
|
|
26
|
+
* ruby scripts
|
|
27
|
+
* glade-2 XML file(.glade)
|
|
28
|
+
* ERB file(.rhtml, .erb)
|
|
29
|
+
* Anything (with your own parsers)
|
|
30
|
+
* The po-files are compatible to GNU gettext.
|
|
31
|
+
|
|
32
|
+
* rmsgfmt creates a mo-file from a po-file.
|
|
33
|
+
The mo-file is compatible to GNU gettext(msgfmt).
|
|
34
|
+
|
|
35
|
+
* textdomain's scope is adapt to ruby class/module mechanism.
|
|
36
|
+
* A class/module can have plural textdomains.
|
|
37
|
+
* a message is looked up in its class/module and ancestors.
|
|
38
|
+
|
|
39
|
+
* CGI support (gettext/cgi)
|
|
40
|
+
* Locale is retrieved from client informations
|
|
41
|
+
(HTTP_ACCEPT_LANGUAGE, HTTP_ACCEPT_CHARSET, QUERY_STRING(lang), Cookies(lang)).
|
|
42
|
+
|
|
43
|
+
* String%() is extended to use named argument such as <tt>%{foo}" %{:foo => 1}</tt>.
|
|
44
|
+
Notes that Ruby-1.9.x supports this format by itself.
|
|
45
|
+
|
|
46
|
+
== Requirements
|
|
47
|
+
* {Ruby 1.8.3 or later}[http://www.ruby-lang.org]
|
|
48
|
+
* {Rubygems}[http://www.rubygems.org/]
|
|
49
|
+
* locale gem
|
|
50
|
+
* (for development only)
|
|
51
|
+
* {GNU gettext 0.10.35 or later}[http://www.gnu.org/software/gettext/gettext.html]
|
|
52
|
+
* {Racc-1.4.3 or later}[http://www.ruby-lang.org/raa/list.rhtml?name=racc]
|
|
53
|
+
* (for compiling src/rmsgfmt.ry only)
|
|
54
|
+
|
|
55
|
+
== Install
|
|
56
|
+
* gem
|
|
57
|
+
#from github (edge/unstable)
|
|
58
|
+
sudo gem install mutoh-gettext -s http://gems.github.com/
|
|
59
|
+
|
|
60
|
+
#from rubyforge (stable)
|
|
61
|
+
sudo gem install gettext
|
|
62
|
+
|
|
63
|
+
* download tar-ball
|
|
64
|
+
# De-Compress archive and enter its top directory.
|
|
65
|
+
sudo ruby setup.rb
|
|
66
|
+
|
|
67
|
+
You can also install files in your favorite directory by
|
|
68
|
+
supplying setup.rb some options. Try <tt>ruby setup.rb --help</tt>.
|
|
69
|
+
|
|
70
|
+
== Usage
|
|
71
|
+
Have a look at the examples folder.
|
|
72
|
+
|
|
73
|
+
== License
|
|
74
|
+
This program is licenced under the same licence as Ruby.
|
|
75
|
+
(See the file 'COPYING'.)
|
|
76
|
+
|
|
77
|
+
* mo.rb
|
|
78
|
+
* Copyright (C) 2001-2009 Masao Mutoh <mutoh at highwhay.ne.jp>
|
|
79
|
+
* Copyright (C) 2001,2002 Masahiro Sakai <s01397ms at sfc.keio.ac.jp>
|
|
80
|
+
|
|
81
|
+
* gettext.rb
|
|
82
|
+
* Copyright (C) 2001-2009 Masao Mutoh <mutoh at highwhay.ne.jp>
|
|
83
|
+
* Copyright (C) 2001,2002 Masahiro Sakai <s01397ms at sfc.keio.ac.jp>
|
|
84
|
+
|
|
85
|
+
* rgettext
|
|
86
|
+
* Copyright (C) 2001-2009 Masao Mutoh <mutoh at highwhay.ne.jp>
|
|
87
|
+
* Copyright (C) 2001,2002 Yasushi Shoji <yashi at atmark-techno.com>
|
|
88
|
+
|
|
89
|
+
* setup.rb
|
|
90
|
+
* Copyright (C) 2000-2005 Minero Aoki <aamine at loveruby.net>
|
|
91
|
+
* This file is released under LGPL. See the top of the install.rb.
|
|
92
|
+
|
|
93
|
+
* Others
|
|
94
|
+
* Copyright (C) 2001-2009 Masao Mutoh <mutoh at highwhay.ne.jp>
|
|
95
|
+
|
|
96
|
+
|
|
97
|
+
== Translators
|
|
98
|
+
* Bosnian(bs) - Sanjin Sehic <saserr at gmail.com>
|
|
99
|
+
* Bulgarian(bg) - Sava Chankov <sava.chankov at gmail.com>
|
|
100
|
+
* Catalan(ca) - Ramon Salvadó <rsalvado at gnuine.com>
|
|
101
|
+
* Chinese(Simplified)(zh_CN)
|
|
102
|
+
* Yang Bob <bob.yang.dev at gmail.com> (current)
|
|
103
|
+
* Yingfeng <blogyingfeng at gmail.com>
|
|
104
|
+
* Chinese(Traditional)(zh_TW)
|
|
105
|
+
* Yang Bob <bob.yang.dev at gmail.com> (current)
|
|
106
|
+
* LIN CHUNG-YI <xmarsh at gmail.com>
|
|
107
|
+
* Croatian(hr) - Sanjin Sehic <saserr at gmail.com>
|
|
108
|
+
* Czech(cs) - Karel Miarka <kajism at yahoo.com>
|
|
109
|
+
* Dutch(nl) - Menno Jonkers <ruby-gettext at jonkers.com>
|
|
110
|
+
* Esperanto(eo) - Malte Milatz <malte at gmx-topmail.de>
|
|
111
|
+
* Estonian(et) - Erkki Eilonen <erkki at itech.ee>
|
|
112
|
+
* French(fr)
|
|
113
|
+
* Vincent Isambart <vincent.isambart at gmail.com> (current)
|
|
114
|
+
* David Sulc <davidsulc at gmail.com>
|
|
115
|
+
* Laurent Sansonetti <laurent.sansonetti at gmail.com>
|
|
116
|
+
* German(de)
|
|
117
|
+
* Patrick Lenz <patrick at limited-overload.de> (current)
|
|
118
|
+
* Detlef Reichl <detlef.reichl at gmx.org>
|
|
119
|
+
* Sven Herzberg <herzi at abi02.de>
|
|
120
|
+
* Sascha Ebach <se at digitale-wertschoepfung.de>
|
|
121
|
+
* Greek(el) - Vassilis Rizopoulos <damphyr at gmx.net>
|
|
122
|
+
* Hungarian(hu) - Tamás Tompa <tompata at gmail.com>
|
|
123
|
+
* Italian(it)
|
|
124
|
+
* Marco Lazzeri <marco.lazzeri at gmail.com>
|
|
125
|
+
* Gabriele Renzi <surrender_it at yahoo.it>
|
|
126
|
+
* Japanese(ja) - Masao Mutoh <mutoh at highway.ne.jp>
|
|
127
|
+
* Korean(ko) - Gyoung-Yoon Noh <nohmad at gmail.com>
|
|
128
|
+
* Latvian(lv) - Aivars Akots <aivars.akots at gmail.com>
|
|
129
|
+
* Norwegian(nb) - Runar Ingebrigtsen <runar at mopo.no>
|
|
130
|
+
* Portuguese(Brazil)(pt_BR)
|
|
131
|
+
* Antonio S. de A. Terceiro <terceiro at softwarelivre.org> (current)
|
|
132
|
+
* Joao Pedrosa <joaopedrosa at gmail.com>
|
|
133
|
+
* Russian(ru) - Yuri Kozlov <kozlov.y at gmail.com>
|
|
134
|
+
* Serbian(sr) - Slobodan Paunović" <slobodan.paunovic at gmail.com>
|
|
135
|
+
* Spanish(es)
|
|
136
|
+
* David Espada <davinci at escomposlinux.org> (current)
|
|
137
|
+
* David Moreno Garza <damog at damog.net>
|
|
138
|
+
* Swedish(sv) - Nikolai Weibull <mailing-lists.ruby-talk at rawuncut.elitemail.org>
|
|
139
|
+
* Ukrainian(ua) - Alex Rootoff <rootoff at pisem.net>
|
|
140
|
+
* Vietnamese(vi) - Ngoc Dao Thanh <ngocdaothanh at gmail.com>
|
|
141
|
+
|
|
142
|
+
== Status of translations
|
|
143
|
+
* Bosnian(bs) - 1.90.0 (old)
|
|
144
|
+
* Bulgarian(bg) - 2.0.0pre1 (new)
|
|
145
|
+
* Catalan(ca) - 2.0.0pre1
|
|
146
|
+
* Croatian(hr) - 1.90.0 (old)
|
|
147
|
+
* Chinese(zh_CN) - 2.0.0pre1
|
|
148
|
+
* Chinese(zh_TW) - 2.0.0pre1
|
|
149
|
+
* Czech(cs) - 1.9.0 (old)
|
|
150
|
+
* Dutch(nl) - 1.90.0 (old)
|
|
151
|
+
* English(default) - 1.90.0 (old)
|
|
152
|
+
* Esperanto(eo) - 2.0.0pre1
|
|
153
|
+
* Estonian(et) - 2.0.0pre1
|
|
154
|
+
* French(fr) - 2.0.0pre1
|
|
155
|
+
* German(de) - 2.0.0pre1
|
|
156
|
+
* Greek(el) - 2.0.0pre1
|
|
157
|
+
* Hungarian(hu) - 2.0.0pre1
|
|
158
|
+
* Italian(it) - 1.6.0 (old)
|
|
159
|
+
* Japanese(ja) - 2.0.0pre1
|
|
160
|
+
* Korean(ko) - 1.9.0 (old)
|
|
161
|
+
* Latvian(lv) - 2.0.0pre1 (new)
|
|
162
|
+
* Norwegian(nb) - 2.0.0pre1
|
|
163
|
+
* Portuguese(Brazil)(pt_BR) - 2.0.0pre1
|
|
164
|
+
* Russian(ru) - 2.0.0pre1
|
|
165
|
+
* Serbian(sr) - 1.91.0 (old)
|
|
166
|
+
* Spanish(es) - 2.0.0pre1
|
|
167
|
+
* Swedish(sv) - 0.8.0 (too much old)
|
|
168
|
+
* Ukrainian(ua) - 2.0.0pre1
|
|
169
|
+
* Vietnamese(vi) - 2.0.0pre1
|
|
170
|
+
|
|
171
|
+
== Maintainer
|
|
172
|
+
Masao Mutoh <mutoh at highway.ne.jp>
|
data/Rakefile
ADDED
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
#
|
|
2
|
+
# Rakefile for Ruby-GetText-Package
|
|
3
|
+
#
|
|
4
|
+
# This file maintains Ruby-GetText-Package.
|
|
5
|
+
#
|
|
6
|
+
# Use setup.rb or gem for installation.
|
|
7
|
+
# You don't need to use this file directly.
|
|
8
|
+
#
|
|
9
|
+
# Copyright(c) 2005-2009 Masao Mutoh
|
|
10
|
+
# This program is licenced under the same licence as Ruby.
|
|
11
|
+
#
|
|
12
|
+
|
|
13
|
+
$LOAD_PATH << File.expand_path("lib", File.dirname(__FILE__))
|
|
14
|
+
|
|
15
|
+
require 'rake/packagetask'
|
|
16
|
+
require 'rake/gempackagetask'
|
|
17
|
+
require 'rake/rdoctask'
|
|
18
|
+
require 'rake/testtask'
|
|
19
|
+
require 'gettext/version'
|
|
20
|
+
|
|
21
|
+
PKG_VERSION = GetText::VERSION
|
|
22
|
+
|
|
23
|
+
task :default => :test
|
|
24
|
+
|
|
25
|
+
############################################################
|
|
26
|
+
# GetText tasks for developing
|
|
27
|
+
############################################################
|
|
28
|
+
desc "Create lib/gettext/poparser.rb"
|
|
29
|
+
task :poparser do
|
|
30
|
+
poparser_path = "lib/gettext/poparser.rb"
|
|
31
|
+
racc = File.join(Config::CONFIG['bindir'], "racc")
|
|
32
|
+
if ! FileTest.exist?(racc)
|
|
33
|
+
puts "racc was not found: #{racc}"
|
|
34
|
+
exit 1
|
|
35
|
+
else FileTest.exist?(racc)
|
|
36
|
+
ruby "#{racc} -g src/poparser.ry -o src/poparser.tmp.rb"
|
|
37
|
+
$stderr.puts %Q[ruby #{racc} -g src/poparser.ry -o src/poparser.tmp.rb]
|
|
38
|
+
|
|
39
|
+
file = open(poparser_path, "w")
|
|
40
|
+
|
|
41
|
+
file.print "=begin\n"
|
|
42
|
+
file.print <<-EOS
|
|
43
|
+
poparser.rb - Generate a .mo
|
|
44
|
+
|
|
45
|
+
Copyright (C) 2003-2009 Masao Mutoh <mutoh at highway.ne.jp>
|
|
46
|
+
|
|
47
|
+
You may redistribute it and/or modify it under the same
|
|
48
|
+
license terms as Ruby.
|
|
49
|
+
EOS
|
|
50
|
+
file.print "=end\n\n"
|
|
51
|
+
|
|
52
|
+
tmpfile = open("src/poparser.tmp.rb")
|
|
53
|
+
file.print tmpfile.read
|
|
54
|
+
file.close
|
|
55
|
+
tmpfile.close
|
|
56
|
+
File.delete("src/poparser.tmp.rb")
|
|
57
|
+
$stderr.puts "Create #{poparser_path}."
|
|
58
|
+
end
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
desc "Create *.mo from *.po"
|
|
63
|
+
task :makemo do
|
|
64
|
+
require 'gettext/tools'
|
|
65
|
+
GetText.create_mofiles
|
|
66
|
+
|
|
67
|
+
$stderr.puts "Create samples mo files."
|
|
68
|
+
GetText.create_mofiles(:po_root => "samples/po", :mo_root => "samples/locale")
|
|
69
|
+
|
|
70
|
+
$stderr.puts "Create samples/cgi mo files."
|
|
71
|
+
GetText.create_mofiles(:po_root => "samples/cgi/po", :mo_root => "samples/cgi/locale")
|
|
72
|
+
|
|
73
|
+
$stderr.puts "Create test mo files."
|
|
74
|
+
GetText.create_mofiles(:po_root => "test/po", :mo_root => "test/locale")
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
desc "Update pot/po files to match new version."
|
|
78
|
+
task :updatepo do
|
|
79
|
+
begin
|
|
80
|
+
require 'gettext'
|
|
81
|
+
require 'gettext/poparser'
|
|
82
|
+
require 'gettext/tools'
|
|
83
|
+
rescue LoadError
|
|
84
|
+
puts "gettext/poparser was not found."
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
rails = ["lib/gettext/rails.rb", "lib/gettext/active_record.rb"]
|
|
88
|
+
#lib/gettext/*.rb -> rgettext.po
|
|
89
|
+
GetText.update_pofiles("rgettext",
|
|
90
|
+
Dir.glob("lib/**/*.rb") + ["src/poparser.ry"] - rails,
|
|
91
|
+
"ruby-gettext #{GetText::VERSION}")
|
|
92
|
+
#lib/gettext/rails.rb -> rails.po
|
|
93
|
+
GetText.update_pofiles("rails", rails,
|
|
94
|
+
"ruby-gettext #{GetText::VERSION}")
|
|
95
|
+
end
|
|
96
|
+
|
|
97
|
+
desc "Gather the newest po files. (for me)"
|
|
98
|
+
task :gatherpo => [:updatepo] do
|
|
99
|
+
mkdir_p "pofiles/original" unless FileTest.exist? "pofiles/original"
|
|
100
|
+
Dir.glob("**/*.pot").each do |f|
|
|
101
|
+
unless /^(pofiles|test)/ =~ f
|
|
102
|
+
copy f, "pofiles/original/"
|
|
103
|
+
end
|
|
104
|
+
end
|
|
105
|
+
Dir.glob("**/*.po").each do |f|
|
|
106
|
+
unless /^(pofiles|test)/ =~ f
|
|
107
|
+
lang = /po\/([^\/]*)\/(.*.po)/.match(f).to_a[1]
|
|
108
|
+
mkdir_p "pofiles/#{lang}" unless FileTest.exist? "pofiles/#{lang}"
|
|
109
|
+
copy f, "pofiles/#{lang}/"
|
|
110
|
+
Dir.glob("pofiles/original/*.pot").each do |f|
|
|
111
|
+
newpo = "pofiles/#{lang}/#{File.basename(f, ".pot")}.po"
|
|
112
|
+
copy f, newpo unless FileTest.exist? newpo
|
|
113
|
+
end
|
|
114
|
+
end
|
|
115
|
+
end
|
|
116
|
+
end
|
|
117
|
+
|
|
118
|
+
def mv_pofiles(src_dir, target_dir, lang)
|
|
119
|
+
target = File.join(target_dir, lang)
|
|
120
|
+
unless File.exist?(target)
|
|
121
|
+
mkdir_p target
|
|
122
|
+
sh "cvs add #{target}"
|
|
123
|
+
end
|
|
124
|
+
cvs_add_targets = ""
|
|
125
|
+
Dir.glob(File.join(target_dir, "ja/*.po")).sort.each do |f|
|
|
126
|
+
srcfile = File.join(src_dir, File.basename(f))
|
|
127
|
+
if File.exist?(srcfile)
|
|
128
|
+
unless File.exist?(File.join(target, File.basename(f)))
|
|
129
|
+
cvs_add_targets << File.join(target, File.basename(f)) + " "
|
|
130
|
+
end
|
|
131
|
+
mv srcfile, target, :verbose => true
|
|
132
|
+
else
|
|
133
|
+
puts "mv #{srcfile} #{target}/ -- skipped"
|
|
134
|
+
end
|
|
135
|
+
end
|
|
136
|
+
sh "cvs add #{cvs_add_targets}" if cvs_add_targets.size > 0
|
|
137
|
+
end
|
|
138
|
+
|
|
139
|
+
desc "Deploy localized pofiles to current source tree. (for me)"
|
|
140
|
+
task :deploypo do
|
|
141
|
+
srcdir = ENV["SRCDIR"] ||= File.join(ENV["HOME"], "pofiles")
|
|
142
|
+
lang = ENV["LOCALE"]
|
|
143
|
+
unless lang
|
|
144
|
+
puts "USAGE: rake deploypo [SRCDIR=#{ENV["HOME"]}/pofiles] LOCALE=ja"
|
|
145
|
+
exit
|
|
146
|
+
end
|
|
147
|
+
puts "SRCDIR = #{srcdir}, LOCALE = #{lang}"
|
|
148
|
+
|
|
149
|
+
mv_pofiles(srcdir, "po", lang)
|
|
150
|
+
mv_pofiles(srcdir, "samples/cgi/po", lang)
|
|
151
|
+
mv_pofiles(srcdir, "samples/po", lang)
|
|
152
|
+
mv_pofiles(srcdir, "samples/rails/po", lang)
|
|
153
|
+
mv_pofiles(srcdir, "samples/rails/vendor/plugins/gettext/po", lang)
|
|
154
|
+
end
|
|
155
|
+
|
|
156
|
+
############################################################
|
|
157
|
+
# Package tasks
|
|
158
|
+
############################################################
|
|
159
|
+
#Gemspec
|
|
160
|
+
#rake manifest
|
|
161
|
+
#rake build_gemspec # only for github
|
|
162
|
+
#rake release
|
|
163
|
+
#rake publish_docs
|
|
164
|
+
# http://blog.evanweaver.com/files/doc/fauna/echoe/files/README.html
|
|
165
|
+
require 'echoe'
|
|
166
|
+
Echoe.new('gettext' , GetText::VERSION) do |gem|
|
|
167
|
+
gem.summary = "Ruby-GetText-Package is a libary and tools to localize messages."
|
|
168
|
+
gem.description = <<-EOF
|
|
169
|
+
Ruby-GetText-Package is a GNU GetText-like program for Ruby.
|
|
170
|
+
The catalog file(po-file) is same format with GNU GetText.
|
|
171
|
+
So you can use GNU GetText tools for maintaining.
|
|
172
|
+
EOF
|
|
173
|
+
gem.url = "http://gettext.rubyforge.org/"
|
|
174
|
+
gem.author = "Masao Mutoh"
|
|
175
|
+
gem.email = "mutoh@highway.ne.jp"
|
|
176
|
+
gem.ignore_pattern = ['nbproject/**/*', 'data/**/*', "pkg", 'samples/locale/**/*', 'samples/cgi/locale/**/*', 'test/locale/**/*']
|
|
177
|
+
gem.dependencies = %w[locale]
|
|
178
|
+
end
|
|
179
|
+
|
|
180
|
+
############################################################
|
|
181
|
+
# Misc tasks
|
|
182
|
+
############################################################
|
|
183
|
+
Rake::Task[:test].instance_eval("@actions.clear;prerequisites.clear")#remove echoes test task...
|
|
184
|
+
desc 'Run all tests'
|
|
185
|
+
task :test do
|
|
186
|
+
Dir.chdir("test") do
|
|
187
|
+
sh "rake"
|
|
188
|
+
end
|
|
189
|
+
end
|
|
190
|
+
|
|
191
|
+
desc "Setup Ruby-GetText-Package. (for setup.rb)"
|
|
192
|
+
task :setup => [:makemo]
|
data/bin/rgettext
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
#! /usr/bin/ruby
|
|
2
|
+
=begin
|
|
3
|
+
rgettext - ruby version of xgettext
|
|
4
|
+
|
|
5
|
+
Copyright (C) 2005 Masao Mutoh
|
|
6
|
+
|
|
7
|
+
You may redistribute it and/or modify it under the same
|
|
8
|
+
license terms as Ruby.
|
|
9
|
+
|
|
10
|
+
$Id: rgettext,v 1.15 2008/07/24 17:17:48 mutoh Exp $
|
|
11
|
+
=end
|
|
12
|
+
|
|
13
|
+
begin
|
|
14
|
+
require 'gettext/rgettext'
|
|
15
|
+
rescue LoadError
|
|
16
|
+
begin
|
|
17
|
+
require 'rubygems'
|
|
18
|
+
require 'gettext/tools/rgettext'
|
|
19
|
+
rescue LoadError
|
|
20
|
+
raise 'Ruby-GetText-Package are not installed.'
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
GetText.rgettext
|
data/bin/rmsgfmt
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
#! /usr/bin/ruby
|
|
2
|
+
=begin
|
|
3
|
+
rgettext - ruby version of xgettext
|
|
4
|
+
|
|
5
|
+
Copyright (C) 2005 Masao Mutoh
|
|
6
|
+
|
|
7
|
+
You may redistribute it and/or modify it under the same
|
|
8
|
+
license terms as Ruby.
|
|
9
|
+
|
|
10
|
+
$Id: rmsgfmt,v 1.14 2008/07/24 17:17:48 mutoh Exp $
|
|
11
|
+
=end
|
|
12
|
+
|
|
13
|
+
begin
|
|
14
|
+
require 'gettext/tools/rmsgfmt'
|
|
15
|
+
rescue LoadError
|
|
16
|
+
begin
|
|
17
|
+
require 'rubygems'
|
|
18
|
+
require 'gettext/tools/rmsgfmt'
|
|
19
|
+
rescue LoadError
|
|
20
|
+
raise 'Ruby-GetText-Package are not installed.'
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
GetText.rmsgfmt
|
data/bin/rmsgmerge
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
#! /usr/bin/ruby
|
|
2
|
+
=begin
|
|
3
|
+
rmsgmerge - ruby version of msgmerge
|
|
4
|
+
|
|
5
|
+
Copyright (C) 2005-2009 Masao Mutoh
|
|
6
|
+
|
|
7
|
+
You may redistribute it and/or modify it under the same
|
|
8
|
+
license terms as Ruby.
|
|
9
|
+
|
|
10
|
+
$Id: rmsgmerge,v 1.13 2008/07/24 17:17:48 mutoh Exp $
|
|
11
|
+
=end
|
|
12
|
+
|
|
13
|
+
begin
|
|
14
|
+
require 'gettext/tools/rmsgmerge'
|
|
15
|
+
rescue LoadError
|
|
16
|
+
begin
|
|
17
|
+
require 'rubygems'
|
|
18
|
+
require 'gettext/tools/rmsgmerge'
|
|
19
|
+
rescue LoadError
|
|
20
|
+
raise 'Ruby-GetText-Package are not installed.'
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
GetText.rmsgmerge
|
data/gettext.gemspec
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
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{mutoh@highway.ne.jp}
|
|
12
|
+
s.executables = ["rgettext", "rmsgmerge", "rmsgfmt"]
|
|
13
|
+
s.extra_rdoc_files = ["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", "bin/rgettext", "bin/rmsgmerge", "bin/rmsgfmt", "README.rdoc"]
|
|
14
|
+
s.files = ["Manifest", "po/hr/rgettext.po", "po/cs/rgettext.po", "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"]
|
|
15
|
+
s.has_rdoc = true
|
|
16
|
+
s.homepage = %q{http://gettext.rubyforge.org/}
|
|
17
|
+
s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Gettext", "--main", "README.rdoc"]
|
|
18
|
+
s.require_paths = ["lib"]
|
|
19
|
+
s.rubyforge_project = %q{gettext}
|
|
20
|
+
s.rubygems_version = %q{1.3.1}
|
|
21
|
+
s.summary = %q{Ruby-GetText-Package is a libary and tools to localize messages.}
|
|
22
|
+
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"]
|
|
23
|
+
|
|
24
|
+
if s.respond_to? :specification_version then
|
|
25
|
+
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
|
26
|
+
s.specification_version = 2
|
|
27
|
+
|
|
28
|
+
if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
|
|
29
|
+
s.add_runtime_dependency(%q<locale>, [">= 0"])
|
|
30
|
+
s.add_development_dependency(%q<echoe>, [">= 0"])
|
|
31
|
+
else
|
|
32
|
+
s.add_dependency(%q<locale>, [">= 0"])
|
|
33
|
+
s.add_dependency(%q<echoe>, [">= 0"])
|
|
34
|
+
end
|
|
35
|
+
else
|
|
36
|
+
s.add_dependency(%q<locale>, [">= 0"])
|
|
37
|
+
s.add_dependency(%q<echoe>, [">= 0"])
|
|
38
|
+
end
|
|
39
|
+
end
|