experteer-gettext 2.0.4
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/COPYING +55 -0
- data/ChangeLog +57 -0
- data/ChangeLog-1 +2016 -0
- data/NEWS-1 +414 -0
- data/README.rdoc +251 -0
- data/Rakefile +260 -0
- data/VERSION +2 -0
- data/bin/rgettext +24 -0
- data/bin/rmsgfmt +24 -0
- data/bin/rmsgmerge +24 -0
- data/gettext.gemspec +494 -0
- data/lib/gettext/cgi.rb +39 -0
- data/lib/gettext/class_info.rb +67 -0
- data/lib/gettext/core_ext/iconv.rb +112 -0
- data/lib/gettext/core_ext/string.rb +84 -0
- data/lib/gettext/locale_path.rb +123 -0
- data/lib/gettext/mofile.rb +330 -0
- data/lib/gettext/parser/erb.rb +54 -0
- data/lib/gettext/parser/glade.rb +100 -0
- data/lib/gettext/parser/ruby.rb +193 -0
- data/lib/gettext/poparser.rb +355 -0
- data/lib/gettext/textdomain.rb +179 -0
- data/lib/gettext/textdomain_group.rb +24 -0
- data/lib/gettext/textdomain_manager.rb +212 -0
- data/lib/gettext/tools/rgettext.rb +236 -0
- data/lib/gettext/tools/rmsgfmt.rb +84 -0
- data/lib/gettext/tools/rmsgmerge.rb +498 -0
- data/lib/gettext/tools.rb +195 -0
- data/lib/gettext/translation_target.rb +93 -0
- data/lib/gettext/utils.rb +37 -0
- data/lib/gettext/version.rb +12 -0
- data/lib/gettext.rb +312 -0
- data/po/bg/rgettext.po +130 -0
- data/po/bs/rgettext.po +131 -0
- data/po/ca/rgettext.po +129 -0
- data/po/cs/rgettext.po +132 -0
- data/po/de/rgettext.po +137 -0
- data/po/el/rgettext.po +128 -0
- data/po/eo/rgettext.po +129 -0
- data/po/es/rgettext.po +130 -0
- data/po/et/rgettext.po +127 -0
- data/po/fr/rgettext.po +133 -0
- data/po/hr/rgettext.po +131 -0
- data/po/hu/rgettext.po +129 -0
- data/po/it/rgettext.po +130 -0
- data/po/ja/rgettext.po +129 -0
- data/po/ko/rgettext.po +129 -0
- data/po/lv/rgettext.po +130 -0
- data/po/nb/rgettext.po +131 -0
- data/po/nl/rgettext.po +130 -0
- data/po/pt_BR/rgettext.po +132 -0
- data/po/rgettext.pot +121 -0
- data/po/ru/rgettext.po +131 -0
- data/po/sr/rgettext.po +130 -0
- data/po/sv/rgettext.po +123 -0
- data/po/ua/rgettext.po +134 -0
- data/po/vi/rgettext.po +128 -0
- data/po/zh/rgettext.po +129 -0
- data/po/zh_TW/rgettext.po +128 -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/test/README +1 -0
- data/test/Rakefile +17 -0
- data/test/po/cr/plural.po +23 -0
- data/test/po/da/plural.po +22 -0
- data/test/po/da/plural_error.po +22 -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/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/test3.po +19 -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/li/plural_error.po +27 -0
- data/test/po/po/plural.po +23 -0
- data/test/po/sl/plural.po +24 -0
- data/test/test_class_info.rb +83 -0
- data/test/test_gettext.rb +311 -0
- data/test/test_locale_path.rb +50 -0
- data/test/test_parser.rb +157 -0
- data/test/test_po_generation.rb +20 -0
- data/test/test_string.rb +65 -0
- data/test/test_textdomain_bind.rb +37 -0
- data/test/test_textdomain_multi.rb +80 -0
- data/test/test_textdomain_toplevel.rb +42 -0
- data/test/test_thread.rb +41 -0
- data/test/test_translation_target.rb +29 -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 +113 -0
- data/test/testlib/gladeparser.glade +183 -0
- data/test/testlib/helper.rb +11 -0
- data/test/testlib/multi_textdomain.rb +131 -0
- data/test/testlib/ngettext.rb +79 -0
- data/test/testlib/npgettext.rb +31 -0
- data/test/testlib/nsgettext.rb +42 -0
- data/test/testlib/pgettext.rb +36 -0
- data/test/testlib/sgettext.rb +46 -0
- data/test/testlib/simple.rb +14 -0
- data/test/tools/files/app.pot +0 -0
- data/test/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 +510 -0
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
require 'gettext'
|
|
2
|
+
include GetText
|
|
3
|
+
|
|
4
|
+
class TestRubyParser
|
|
5
|
+
bindtextdomain("rubyparser", :path => "locale")
|
|
6
|
+
|
|
7
|
+
def test_1
|
|
8
|
+
_("aaa")
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
def test_2
|
|
12
|
+
_("aaa\n")
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def test_3
|
|
16
|
+
_("bbb\nccc")
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def test_4
|
|
20
|
+
_("bbb
|
|
21
|
+
ccc
|
|
22
|
+
ddd
|
|
23
|
+
")
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
def test_5
|
|
27
|
+
_("eee")
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
def test_6
|
|
31
|
+
_("eee") + "foo" + _("fff")
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
def test_7
|
|
35
|
+
_("ggg"\
|
|
36
|
+
"hhh"\
|
|
37
|
+
"iii")
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
def test_8
|
|
41
|
+
_('a"b"c"')
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
def test_9
|
|
45
|
+
_("d\"e\"f\"")
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
def test_10
|
|
49
|
+
_("jjj") +
|
|
50
|
+
_("kkk")
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
def test_11
|
|
54
|
+
_("lll" + "mmm")
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
def test_12
|
|
58
|
+
puts _(msg), "ppp" #Ignored
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
def test_13
|
|
62
|
+
_("nnn\n" +
|
|
63
|
+
"ooo")
|
|
64
|
+
end
|
|
65
|
+
def test_14
|
|
66
|
+
_("\#")
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
def test_15
|
|
70
|
+
_('#')
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
def test_16
|
|
74
|
+
_('\taaa')
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
def test_17
|
|
78
|
+
ret = _(<<EOF
|
|
79
|
+
Here document1
|
|
80
|
+
Here document2
|
|
81
|
+
EOF
|
|
82
|
+
)
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
def test_18
|
|
86
|
+
"<div>#{_('in_quote')}</div>"
|
|
87
|
+
end
|
|
88
|
+
|
|
89
|
+
def about
|
|
90
|
+
puts (
|
|
91
|
+
# TRANSLATORS: This is a proper name. See the gettext
|
|
92
|
+
# manual, section Names. Note this is actually a non-ASCII
|
|
93
|
+
# name: The first name is (with Unicode escapes)
|
|
94
|
+
# "Fran\u00e7ois" or (with HTML entities) "François".
|
|
95
|
+
# Pronunciation is like "fraa-swa pee-nar".
|
|
96
|
+
# This is an example from GNU gettext documentation.
|
|
97
|
+
_("Francois Pinard"))
|
|
98
|
+
|
|
99
|
+
puts (
|
|
100
|
+
# This comment should not be extracted because it does
|
|
101
|
+
# not start with 'TRANSLATORS:'
|
|
102
|
+
_('self explaining'))
|
|
103
|
+
end
|
|
104
|
+
|
|
105
|
+
end
|
|
106
|
+
|
|
107
|
+
module ActionController
|
|
108
|
+
class Base
|
|
109
|
+
end
|
|
110
|
+
end
|
|
111
|
+
class ApplicationController < ActionController::Base
|
|
112
|
+
"#{Time.now.strftime('%m/%d')}"
|
|
113
|
+
end
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*-->
|
|
2
|
+
<!DOCTYPE glade-interface SYSTEM "http://glade.gnome.org/glade-2.0.dtd">
|
|
3
|
+
|
|
4
|
+
<glade-interface>
|
|
5
|
+
|
|
6
|
+
<widget class="GtkWindow" id="window1">
|
|
7
|
+
<property name="visible">True</property>
|
|
8
|
+
<property name="title" translatable="yes">window1</property>
|
|
9
|
+
<property name="type">GTK_WINDOW_TOPLEVEL</property>
|
|
10
|
+
<property name="window_position">GTK_WIN_POS_NONE</property>
|
|
11
|
+
<property name="modal">False</property>
|
|
12
|
+
<property name="resizable">True</property>
|
|
13
|
+
<property name="destroy_with_parent">False</property>
|
|
14
|
+
<property name="decorated">True</property>
|
|
15
|
+
<property name="skip_taskbar_hint">False</property>
|
|
16
|
+
<property name="skip_pager_hint">False</property>
|
|
17
|
+
<property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
|
|
18
|
+
<property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
|
|
19
|
+
|
|
20
|
+
<child>
|
|
21
|
+
<widget class="GtkVBox" id="vbox1">
|
|
22
|
+
<property name="visible">True</property>
|
|
23
|
+
<property name="homogeneous">False</property>
|
|
24
|
+
<property name="spacing">0</property>
|
|
25
|
+
|
|
26
|
+
<child>
|
|
27
|
+
<widget class="GtkLabel" id="label4">
|
|
28
|
+
<property name="visible">True</property>
|
|
29
|
+
<property name="label" translatable="yes">normal text</property>
|
|
30
|
+
<property name="use_underline">False</property>
|
|
31
|
+
<property name="use_markup">False</property>
|
|
32
|
+
<property name="justify">GTK_JUSTIFY_LEFT</property>
|
|
33
|
+
<property name="wrap">False</property>
|
|
34
|
+
<property name="selectable">False</property>
|
|
35
|
+
<property name="xalign">0.5</property>
|
|
36
|
+
<property name="yalign">0.5</property>
|
|
37
|
+
<property name="xpad">0</property>
|
|
38
|
+
<property name="ypad">0</property>
|
|
39
|
+
</widget>
|
|
40
|
+
<packing>
|
|
41
|
+
<property name="padding">0</property>
|
|
42
|
+
<property name="expand">False</property>
|
|
43
|
+
<property name="fill">False</property>
|
|
44
|
+
</packing>
|
|
45
|
+
</child>
|
|
46
|
+
|
|
47
|
+
<child>
|
|
48
|
+
<widget class="GtkLabel" id="label5">
|
|
49
|
+
<property name="visible">True</property>
|
|
50
|
+
<property name="label" translatable="yes">1st line
|
|
51
|
+
2nd line
|
|
52
|
+
3rd line</property>
|
|
53
|
+
<property name="use_underline">False</property>
|
|
54
|
+
<property name="use_markup">False</property>
|
|
55
|
+
<property name="justify">GTK_JUSTIFY_LEFT</property>
|
|
56
|
+
<property name="wrap">False</property>
|
|
57
|
+
<property name="selectable">False</property>
|
|
58
|
+
<property name="xalign">0.5</property>
|
|
59
|
+
<property name="yalign">0.5</property>
|
|
60
|
+
<property name="xpad">0</property>
|
|
61
|
+
<property name="ypad">0</property>
|
|
62
|
+
</widget>
|
|
63
|
+
<packing>
|
|
64
|
+
<property name="padding">0</property>
|
|
65
|
+
<property name="expand">False</property>
|
|
66
|
+
<property name="fill">False</property>
|
|
67
|
+
</packing>
|
|
68
|
+
</child>
|
|
69
|
+
|
|
70
|
+
<child>
|
|
71
|
+
<widget class="GtkLabel" id="label6">
|
|
72
|
+
<property name="visible">True</property>
|
|
73
|
+
<property name="label" translatable="yes"><span color="red" weight="bold" size="large">markup </span></property>
|
|
74
|
+
<property name="use_underline">False</property>
|
|
75
|
+
<property name="use_markup">True</property>
|
|
76
|
+
<property name="justify">GTK_JUSTIFY_LEFT</property>
|
|
77
|
+
<property name="wrap">False</property>
|
|
78
|
+
<property name="selectable">False</property>
|
|
79
|
+
<property name="xalign">0.5</property>
|
|
80
|
+
<property name="yalign">0.5</property>
|
|
81
|
+
<property name="xpad">0</property>
|
|
82
|
+
<property name="ypad">0</property>
|
|
83
|
+
</widget>
|
|
84
|
+
<packing>
|
|
85
|
+
<property name="padding">0</property>
|
|
86
|
+
<property name="expand">False</property>
|
|
87
|
+
<property name="fill">False</property>
|
|
88
|
+
</packing>
|
|
89
|
+
</child>
|
|
90
|
+
|
|
91
|
+
<child>
|
|
92
|
+
<widget class="GtkLabel" id="label7">
|
|
93
|
+
<property name="visible">True</property>
|
|
94
|
+
<property name="label" translatable="yes"><span color="red">1st line markup </span>
|
|
95
|
+
<span color="blue">2nd line markup</span></property>
|
|
96
|
+
<property name="use_underline">False</property>
|
|
97
|
+
<property name="use_markup">True</property>
|
|
98
|
+
<property name="justify">GTK_JUSTIFY_LEFT</property>
|
|
99
|
+
<property name="wrap">False</property>
|
|
100
|
+
<property name="selectable">False</property>
|
|
101
|
+
<property name="xalign">0.5</property>
|
|
102
|
+
<property name="yalign">0.5</property>
|
|
103
|
+
<property name="xpad">0</property>
|
|
104
|
+
<property name="ypad">0</property>
|
|
105
|
+
</widget>
|
|
106
|
+
<packing>
|
|
107
|
+
<property name="padding">0</property>
|
|
108
|
+
<property name="expand">False</property>
|
|
109
|
+
<property name="fill">False</property>
|
|
110
|
+
</packing>
|
|
111
|
+
</child>
|
|
112
|
+
|
|
113
|
+
<child>
|
|
114
|
+
<widget class="GtkLabel" id="label8">
|
|
115
|
+
<property name="visible">True</property>
|
|
116
|
+
<property name="label" translatable="yes"><span>&quot;markup&quot; with &lt;escaped strings&gt;</span></property>
|
|
117
|
+
<property name="use_underline">False</property>
|
|
118
|
+
<property name="use_markup">True</property>
|
|
119
|
+
<property name="justify">GTK_JUSTIFY_LEFT</property>
|
|
120
|
+
<property name="wrap">False</property>
|
|
121
|
+
<property name="selectable">False</property>
|
|
122
|
+
<property name="xalign">0.5</property>
|
|
123
|
+
<property name="yalign">0.5</property>
|
|
124
|
+
<property name="xpad">0</property>
|
|
125
|
+
<property name="ypad">0</property>
|
|
126
|
+
</widget>
|
|
127
|
+
<packing>
|
|
128
|
+
<property name="padding">0</property>
|
|
129
|
+
<property name="expand">False</property>
|
|
130
|
+
<property name="fill">False</property>
|
|
131
|
+
</packing>
|
|
132
|
+
</child>
|
|
133
|
+
|
|
134
|
+
<child>
|
|
135
|
+
<widget class="GtkLabel" id="label9">
|
|
136
|
+
<property name="visible">True</property>
|
|
137
|
+
<property name="label" translatable="yes">duplicated</property>
|
|
138
|
+
<property name="use_underline">False</property>
|
|
139
|
+
<property name="use_markup">False</property>
|
|
140
|
+
<property name="justify">GTK_JUSTIFY_LEFT</property>
|
|
141
|
+
<property name="wrap">False</property>
|
|
142
|
+
<property name="selectable">False</property>
|
|
143
|
+
<property name="xalign">0.5</property>
|
|
144
|
+
<property name="yalign">0.5</property>
|
|
145
|
+
<property name="xpad">0</property>
|
|
146
|
+
<property name="ypad">0</property>
|
|
147
|
+
</widget>
|
|
148
|
+
<packing>
|
|
149
|
+
<property name="padding">0</property>
|
|
150
|
+
<property name="expand">False</property>
|
|
151
|
+
<property name="fill">False</property>
|
|
152
|
+
</packing>
|
|
153
|
+
</child>
|
|
154
|
+
|
|
155
|
+
<child>
|
|
156
|
+
<widget class="GtkLabel" id="label10">
|
|
157
|
+
<property name="visible">True</property>
|
|
158
|
+
<property name="label" translatable="yes">duplicated</property>
|
|
159
|
+
<property name="use_underline">False</property>
|
|
160
|
+
<property name="use_markup">False</property>
|
|
161
|
+
<property name="justify">GTK_JUSTIFY_LEFT</property>
|
|
162
|
+
<property name="wrap">False</property>
|
|
163
|
+
<property name="selectable">False</property>
|
|
164
|
+
<property name="xalign">0.5</property>
|
|
165
|
+
<property name="yalign">0.5</property>
|
|
166
|
+
<property name="xpad">0</property>
|
|
167
|
+
<property name="ypad">0</property>
|
|
168
|
+
</widget>
|
|
169
|
+
<packing>
|
|
170
|
+
<property name="padding">0</property>
|
|
171
|
+
<property name="expand">False</property>
|
|
172
|
+
<property name="fill">False</property>
|
|
173
|
+
</packing>
|
|
174
|
+
</child>
|
|
175
|
+
|
|
176
|
+
<child>
|
|
177
|
+
<placeholder/>
|
|
178
|
+
</child>
|
|
179
|
+
</widget>
|
|
180
|
+
</child>
|
|
181
|
+
</widget>
|
|
182
|
+
|
|
183
|
+
</glade-interface>
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
class C11
|
|
2
|
+
include GetText
|
|
3
|
+
def initialize
|
|
4
|
+
bindtextdomain("test1", :path => "locale")
|
|
5
|
+
bindtextdomain("test2", :path => "locale")
|
|
6
|
+
end
|
|
7
|
+
def test
|
|
8
|
+
_("language")
|
|
9
|
+
end
|
|
10
|
+
def test2
|
|
11
|
+
_("LANGUAGE")
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
class C12
|
|
16
|
+
include GetText
|
|
17
|
+
bindtextdomain("test1", :path => "locale")
|
|
18
|
+
bindtextdomain("test2", :path => "locale")
|
|
19
|
+
|
|
20
|
+
def test
|
|
21
|
+
_("language")
|
|
22
|
+
end
|
|
23
|
+
def test2
|
|
24
|
+
_("LANGUAGE")
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
class C21 < C11
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
class C22 < C12
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
module M1
|
|
35
|
+
include GetText
|
|
36
|
+
bindtextdomain("test1", :path => "locale")
|
|
37
|
+
|
|
38
|
+
module_function
|
|
39
|
+
def test
|
|
40
|
+
_("language")
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
module M1M1
|
|
44
|
+
include GetText
|
|
45
|
+
module_function
|
|
46
|
+
def test
|
|
47
|
+
_("language")
|
|
48
|
+
end
|
|
49
|
+
# Doesn't translate
|
|
50
|
+
def test2
|
|
51
|
+
_("LANGUAGE")
|
|
52
|
+
end
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
class M1C1
|
|
56
|
+
include GetText
|
|
57
|
+
bindtextdomain("test2", :path => "locale")
|
|
58
|
+
def test
|
|
59
|
+
_("language")
|
|
60
|
+
end
|
|
61
|
+
def test2
|
|
62
|
+
_("LANGUAGE")
|
|
63
|
+
end
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
class M1C2
|
|
67
|
+
include GetText
|
|
68
|
+
def initialize
|
|
69
|
+
bindtextdomain("test2", :path => "locale")
|
|
70
|
+
end
|
|
71
|
+
def test
|
|
72
|
+
_("language")
|
|
73
|
+
end
|
|
74
|
+
def test2
|
|
75
|
+
_("LANGUAGE")
|
|
76
|
+
end
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
class C2
|
|
82
|
+
include GetText
|
|
83
|
+
def initialize
|
|
84
|
+
bindtextdomain("test1", :path => "locale")
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
def test
|
|
88
|
+
_("language")
|
|
89
|
+
end
|
|
90
|
+
|
|
91
|
+
def test_eval
|
|
92
|
+
eval("_(\"language\")")
|
|
93
|
+
end
|
|
94
|
+
end
|
|
95
|
+
|
|
96
|
+
class C3
|
|
97
|
+
include GetText
|
|
98
|
+
bindtextdomain("test1", :path => "locale")
|
|
99
|
+
|
|
100
|
+
def test
|
|
101
|
+
_("language")
|
|
102
|
+
end
|
|
103
|
+
|
|
104
|
+
def self.test
|
|
105
|
+
_("language")
|
|
106
|
+
end
|
|
107
|
+
end
|
|
108
|
+
|
|
109
|
+
class C4 < C3
|
|
110
|
+
bindtextdomain("test2", :path => "locale")
|
|
111
|
+
|
|
112
|
+
def test2
|
|
113
|
+
_("LANGUAGE")
|
|
114
|
+
end
|
|
115
|
+
|
|
116
|
+
def test3
|
|
117
|
+
_("no data")
|
|
118
|
+
end
|
|
119
|
+
end
|
|
120
|
+
|
|
121
|
+
class C51
|
|
122
|
+
include GetText
|
|
123
|
+
bindtextdomain("test3", :path => "locale")
|
|
124
|
+
def test
|
|
125
|
+
_("language")
|
|
126
|
+
end
|
|
127
|
+
end
|
|
128
|
+
|
|
129
|
+
class C52 < C12
|
|
130
|
+
bindtextdomain("test3", :path => "locale")
|
|
131
|
+
end
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
require 'gettext'
|
|
2
|
+
include GetText
|
|
3
|
+
|
|
4
|
+
class TestRubyParser_n
|
|
5
|
+
bindtextdomain("rubyparser", :path => "locale")
|
|
6
|
+
|
|
7
|
+
def test_1
|
|
8
|
+
n_("aaa","aaa2",1)
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
def test_2
|
|
12
|
+
n_("bbb\n", "ccc2\nccc2", 1)
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def test_3_1
|
|
16
|
+
n_("ddd\nddd",
|
|
17
|
+
"ddd2\nddd2",
|
|
18
|
+
1)
|
|
19
|
+
end
|
|
20
|
+
def test_3_2
|
|
21
|
+
n_("eee\neee\n" ,
|
|
22
|
+
"eee2\neee2\n" ,
|
|
23
|
+
1)
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
def test_4
|
|
27
|
+
n_("ddd
|
|
28
|
+
eee
|
|
29
|
+
", "ddd
|
|
30
|
+
eee2", 1)
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
def test_5_1
|
|
34
|
+
n_("fff", "fff2", 1)
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
def test_5_2
|
|
38
|
+
n_("fff", "fff2", 1) + "foo" + n_("ggg", "ggg2", 1)
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
def test_6
|
|
42
|
+
n_("ggg"\
|
|
43
|
+
"hhh"\
|
|
44
|
+
"iii",
|
|
45
|
+
"jjj"\
|
|
46
|
+
"kkk"\
|
|
47
|
+
"lll", 1)
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
def test_7
|
|
51
|
+
n_('a"b"c"', 'a"b"c"2', 1)
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
def test_8
|
|
55
|
+
n_("d\"e\"f\"", "d\"e\"f\"2", 1)
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
def test_9
|
|
59
|
+
n_("mmm" + "mmm","mmm2" + "mmm2",1) +
|
|
60
|
+
n_("nnn" ,"nnn2" ,1)
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
def test_10
|
|
64
|
+
_("ooo")
|
|
65
|
+
n_("ooo", "ppp", 1)
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
def test_11
|
|
69
|
+
n_("qqq", "rrr", 1)
|
|
70
|
+
n_("qqq", "sss", 1) # This is merged to "qqq" with plural form "rrr".
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
def extracted_comments
|
|
74
|
+
# TRANSLATORS:please provide translations for all
|
|
75
|
+
# the plural forms!
|
|
76
|
+
n_('comment', 'comments', 2)
|
|
77
|
+
end
|
|
78
|
+
end
|
|
79
|
+
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
require 'gettext'
|
|
2
|
+
|
|
3
|
+
class TestNPGetText
|
|
4
|
+
include GetText
|
|
5
|
+
bindtextdomain("npgettext", :path => "locale")
|
|
6
|
+
|
|
7
|
+
def test_1
|
|
8
|
+
[np_("Magazine", "a book", "%{num} books", 1),
|
|
9
|
+
np_("Magazine", "a book", "%{num} books", 2)]
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def test_2
|
|
13
|
+
[npgettext("Magazine", "a book", "%{num} books", 1),
|
|
14
|
+
npgettext("Magazine", "a book", "%{num} books", 2)]
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def test_3
|
|
18
|
+
[np_("Hardcover", "a book", "%{num} books", 1),
|
|
19
|
+
np_("Hardcover", "a book", "%{num} books", 2)]
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
def test_4
|
|
23
|
+
[np_("Magaine", "I have a magazine", "I have %{num} magazines", 1),
|
|
24
|
+
np_("Magaine", "I have a magazine", "I have %{num} magazines", 2)]
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def test_5
|
|
28
|
+
[np_("Hardcover", "a picture", "%{num} pictures", 1),
|
|
29
|
+
np_("Hardcover", "a picture", "%{num} pictures", 2)] #not found.
|
|
30
|
+
end
|
|
31
|
+
end
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
require 'gettext'
|
|
2
|
+
|
|
3
|
+
class TestNSGetText
|
|
4
|
+
include GetText
|
|
5
|
+
bindtextdomain("nsgettext", :path => "locale")
|
|
6
|
+
|
|
7
|
+
def test_1
|
|
8
|
+
[ns_("AAA|BBB", "CCC", 1), ns_("AAA|BBB", "CCC", 2)]
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
def test_2
|
|
12
|
+
[nsgettext("AAA|BBB", "CCC", 1), nsgettext("AAA|BBB", "CCC", 2)]
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def test_3
|
|
16
|
+
[ns_("AAA", "BBB", 1), ns_("AAA", "BBB", 2)] #not found
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def test_4
|
|
20
|
+
[ns_("AAA|CCC", "DDD", 1), ns_("AAA|CCC", "DDD", 2)] #not found
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def test_5
|
|
24
|
+
[ns_("AAA|BBB|CCC", "DDD", 1), ns_("AAA|BBB|CCC", "DDD", 2)] #not found
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def test_6
|
|
28
|
+
[ns_("AAA$BBB", "CCC", 1, "$"), ns_("AAA$BBB", "CCC", 2, "$")] #not found
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
def test_7
|
|
32
|
+
[ns_("AAA$B|BB", "CCC", 1, "$"), ns_("AAA$B|BB", "CCC", 2, "$")] #not found
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
def test_8
|
|
36
|
+
[ns_("AAA$B|CC", "DDD", 1, "$"), ns_("AAA$B|CC", "DDD", 2, "$")]
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
def test_9
|
|
40
|
+
[ns_("AAA|CCC|BBB", "DDD", 1), ns_("AAA|CCC|BBB", "DDD", 2)] #not found
|
|
41
|
+
end
|
|
42
|
+
end
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
require 'gettext'
|
|
2
|
+
|
|
3
|
+
class TestPGetText
|
|
4
|
+
include GetText
|
|
5
|
+
bindtextdomain("pgettext", :path => "locale")
|
|
6
|
+
|
|
7
|
+
def test_1
|
|
8
|
+
p_("AAA", "BBB")
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
def test_2
|
|
12
|
+
pgettext("AAA", "BBB")
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def test_3
|
|
16
|
+
pgettext("AAA|BBB", "CCC")
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def test_4
|
|
20
|
+
p_("AAA", "CCC") #not found
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def test_5
|
|
24
|
+
p_("CCC", "BBB")
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def test_6 # not pgettext.
|
|
28
|
+
_("BBB")
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
def with_context
|
|
32
|
+
# TRANSLATORS:please translate 'name' in the context of 'program'.
|
|
33
|
+
# Hint: the translation should NOT contain the translation of 'program'.
|
|
34
|
+
p_('program', 'name')
|
|
35
|
+
end
|
|
36
|
+
end
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
require 'gettext'
|
|
2
|
+
|
|
3
|
+
class TestSGetText
|
|
4
|
+
include GetText
|
|
5
|
+
bindtextdomain("sgettext", :path => "locale")
|
|
6
|
+
|
|
7
|
+
def test_1
|
|
8
|
+
s_("AAA|BBB")
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
def test_2
|
|
12
|
+
sgettext("AAA|BBB")
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def test_3
|
|
16
|
+
s_("AAA") #not found
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def test_4
|
|
20
|
+
s_("AAA|CCC") #not found
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def test_5
|
|
24
|
+
s_("AAA|BBB|CCC") #not found
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def test_6
|
|
28
|
+
s_("AAA$BBB", "$") #not found
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
def test_7
|
|
32
|
+
s_("AAA$B|BB", "$") #not found
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
def test_8
|
|
36
|
+
s_("AAA$B|CC", "$")
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
def test_9
|
|
40
|
+
s_("AAA|CCC|BBB") #not found
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
def setlocale(locale)
|
|
44
|
+
__setlocale(locale)
|
|
45
|
+
end
|
|
46
|
+
end
|
|
File without changes
|
|
File without changes
|
|
File without changes
|