aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.gitignore2
-rw-r--r--.gitmodules6
-rw-r--r--INSTALL.txt24
-rw-r--r--app/controllers/admin_public_body_controller.rb115
-rw-r--r--app/controllers/application_controller.rb29
-rw-r--r--app/controllers/general_controller.rb23
-rw-r--r--app/controllers/public_body_controller.rb111
-rw-r--r--app/controllers/request_controller.rb156
-rw-r--r--app/helpers/link_to_helper.rb6
-rw-r--r--app/models/public_body.rb21
-rw-r--r--app/views/admin_public_body/_locale_selector.rhtml10
-rw-r--r--app/views/comment/_comment_form.rhtml3
-rw-r--r--app/views/general/_before_body_end.rhtml16
-rw-r--r--app/views/general/_credits.rhtml5
-rw-r--r--app/views/general/_locale_switcher.rhtml12
-rw-r--r--app/views/general/_orglink.rhtml2
-rw-r--r--app/views/general/custom_css.rhtml1
-rw-r--r--app/views/general/frontpage.rhtml25
-rw-r--r--app/views/general/search.rhtml72
-rw-r--r--app/views/help/about.es.rhtml10
-rw-r--r--app/views/layouts/admin.rhtml17
-rw-r--r--app/views/layouts/default.rhtml97
-rw-r--r--app/views/public_body/show.rhtml56
-rw-r--r--app/views/request/_followup.rhtml1
-rw-r--r--app/views/request/list.rhtml10
-rw-r--r--app/views/request/new.rhtml4
-rw-r--r--config/.gitignore1
-rw-r--r--config/environment.rb24
-rw-r--r--config/environments/development.rb2
-rw-r--r--config/general-example6
-rw-r--r--config/i18n-routes.yml6
-rw-r--r--config/initializers/fast_gettext.rb5
l---------config/locales1
-rw-r--r--config/routes.rb93
-rw-r--r--db/migrate/096_create_translation_tables.rb28
-rw-r--r--db/migrate/097_add_comment_locale.rb10
-rw-r--r--lib/google_translate.rb18
-rw-r--r--lib/i18n_fixes.rb159
-rw-r--r--lib/tasks/gettext.rake5
-rw-r--r--locale/app.pot728
-rw-r--r--locale/en/app.po729
-rw-r--r--locale/es/app.po874
-rw-r--r--public/images/navimg/alaveteli-logo-header.pngbin0 -> 1639 bytes
-rw-r--r--public/images/navimg/alaveteli-logo.pngbin0 -> 2278 bytes
-rw-r--r--public/stylesheets/ie6-custom.css6
-rw-r--r--public/stylesheets/main.css25
-rw-r--r--script/generate_pot.sh8
-rw-r--r--spec/controllers/admin_public_body_controller_spec.rb56
-rw-r--r--spec/controllers/comment_controller_spec.rb2
-rw-r--r--spec/controllers/public_body_controller_spec.rb42
-rw-r--r--spec/controllers/request_controller_spec.rb28
-rw-r--r--spec/controllers/track_controller_spec.rb10
-rw-r--r--spec/controllers/user_controller_spec.rb8
-rw-r--r--spec/fixtures/public_body_translations.yml43
-rw-r--r--spec/models/has_tag_string_tag_spec.rb2
-rw-r--r--spec/models/incoming_message_spec.rb4
-rw-r--r--spec/models/info_request_spec.rb6
-rw-r--r--spec/models/outgoing_mailer_spec.rb4
-rw-r--r--spec/models/public_body_spec.rb4
-rw-r--r--spec/models/request_mailer_spec.rb2
-rw-r--r--spec/models/xapian_spec.rb7
-rw-r--r--spec/spec_helper.rb10
-rw-r--r--todo.txt8
-rw-r--r--vendor/gems/fast_gettext-0.5.10/lib/fast_gettext/storage.rb2
-rw-r--r--vendor/gems/gettext-2.1.0/.specification819
-rw-r--r--vendor/gems/gettext-2.1.0/COPYING56
-rw-r--r--vendor/gems/gettext-2.1.0/ChangeLog78
-rw-r--r--vendor/gems/gettext-2.1.0/ChangeLog-12016
-rw-r--r--vendor/gems/gettext-2.1.0/NEWS-1414
-rw-r--r--vendor/gems/gettext-2.1.0/README.rdoc245
-rw-r--r--vendor/gems/gettext-2.1.0/Rakefile234
-rw-r--r--vendor/gems/gettext-2.1.0/benchmark/1.93.0.txt8
-rw-r--r--vendor/gems/gettext-2.1.0/benchmark/2.0.0.txt8
-rw-r--r--vendor/gems/gettext-2.1.0/benchmark/2.0.4.txt11
-rw-r--r--vendor/gems/gettext-2.1.0/benchmark/2.1.0.txt11
-rw-r--r--vendor/gems/gettext-2.1.0/benchmark/benchmark.rb68
-rw-r--r--vendor/gems/gettext-2.1.0/benchmark/test.rb28
-rwxr-xr-xvendor/gems/gettext-2.1.0/bin/rgettext23
-rwxr-xr-xvendor/gems/gettext-2.1.0/bin/rmsgfmt22
-rwxr-xr-xvendor/gems/gettext-2.1.0/bin/rmsgmerge22
-rw-r--r--vendor/gems/gettext-2.1.0/data/locale/bg/LC_MESSAGES/rgettext.mobin0 -> 3716 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/data/locale/bs/LC_MESSAGES/rgettext.mobin0 -> 2670 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/data/locale/ca/LC_MESSAGES/rgettext.mobin0 -> 3077 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/data/locale/cs/LC_MESSAGES/rgettext.mobin0 -> 2763 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/data/locale/de/LC_MESSAGES/rgettext.mobin0 -> 3267 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/data/locale/el/LC_MESSAGES/rgettext.mobin0 -> 3753 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/data/locale/eo/LC_MESSAGES/rgettext.mobin0 -> 2846 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/data/locale/es/LC_MESSAGES/rgettext.mobin0 -> 3051 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/data/locale/et/LC_MESSAGES/rgettext.mobin0 -> 2854 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/data/locale/fr/LC_MESSAGES/rgettext.mobin0 -> 3210 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/data/locale/hr/LC_MESSAGES/rgettext.mobin0 -> 2671 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/data/locale/hu/LC_MESSAGES/rgettext.mobin0 -> 3131 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/data/locale/it/LC_MESSAGES/rgettext.mobin0 -> 2237 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/data/locale/ja/LC_MESSAGES/rgettext.mobin0 -> 3745 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/data/locale/ko/LC_MESSAGES/rgettext.mobin0 -> 2839 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/data/locale/lv/LC_MESSAGES/rgettext.mobin0 -> 3090 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/data/locale/nb/LC_MESSAGES/rgettext.mobin0 -> 3082 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/data/locale/nl/LC_MESSAGES/rgettext.mobin0 -> 2610 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/data/locale/pt_BR/LC_MESSAGES/rgettext.mobin0 -> 3163 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/data/locale/ru/LC_MESSAGES/rgettext.mobin0 -> 3955 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/data/locale/sr/LC_MESSAGES/rgettext.mobin0 -> 3715 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/data/locale/sv/LC_MESSAGES/rgettext.mobin0 -> 956 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/data/locale/ua/LC_MESSAGES/rgettext.mobin0 -> 3963 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/data/locale/vi/LC_MESSAGES/rgettext.mobin0 -> 3280 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/data/locale/zh/LC_MESSAGES/rgettext.mobin0 -> 2938 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/data/locale/zh_TW/LC_MESSAGES/rgettext.mobin0 -> 2890 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/gettext.gemspec40
-rw-r--r--vendor/gems/gettext-2.1.0/lib/gettext.rb310
-rw-r--r--vendor/gems/gettext-2.1.0/lib/gettext/cgi.rb37
-rw-r--r--vendor/gems/gettext-2.1.0/lib/gettext/core_ext/iconv.rb110
-rw-r--r--vendor/gems/gettext-2.1.0/lib/gettext/core_ext/string.rb84
-rw-r--r--vendor/gems/gettext-2.1.0/lib/gettext/parser/erb.rb3
-rw-r--r--vendor/gems/gettext-2.1.0/lib/gettext/parser/glade.rb3
-rw-r--r--vendor/gems/gettext-2.1.0/lib/gettext/parser/ruby.rb172
-rw-r--r--vendor/gems/gettext-2.1.0/lib/gettext/runtime/class_info.rb67
-rw-r--r--vendor/gems/gettext-2.1.0/lib/gettext/runtime/locale_path.rb122
-rw-r--r--vendor/gems/gettext-2.1.0/lib/gettext/runtime/mofile.rb330
-rw-r--r--vendor/gems/gettext-2.1.0/lib/gettext/runtime/textdomain.rb177
-rw-r--r--vendor/gems/gettext-2.1.0/lib/gettext/runtime/textdomain_group.rb24
-rw-r--r--vendor/gems/gettext-2.1.0/lib/gettext/runtime/textdomain_manager.rb211
-rw-r--r--vendor/gems/gettext-2.1.0/lib/gettext/tools.rb195
-rw-r--r--vendor/gems/gettext-2.1.0/lib/gettext/tools/parser/erb.rb52
-rw-r--r--vendor/gems/gettext-2.1.0/lib/gettext/tools/parser/glade.rb98
-rw-r--r--vendor/gems/gettext-2.1.0/lib/gettext/tools/parser/ruby.rb226
-rw-r--r--vendor/gems/gettext-2.1.0/lib/gettext/tools/pomessage.rb197
-rw-r--r--vendor/gems/gettext-2.1.0/lib/gettext/tools/poparser.rb356
-rw-r--r--vendor/gems/gettext-2.1.0/lib/gettext/tools/rgettext.rb226
-rw-r--r--vendor/gems/gettext-2.1.0/lib/gettext/tools/rmsgfmt.rb84
-rw-r--r--vendor/gems/gettext-2.1.0/lib/gettext/tools/rmsgmerge.rb498
-rw-r--r--vendor/gems/gettext-2.1.0/lib/gettext/utils.rb37
-rw-r--r--vendor/gems/gettext-2.1.0/lib/gettext/version.rb12
-rw-r--r--vendor/gems/gettext-2.1.0/po/bg/rgettext.po134
-rw-r--r--vendor/gems/gettext-2.1.0/po/bs/rgettext.po135
-rw-r--r--vendor/gems/gettext-2.1.0/po/ca/rgettext.po133
-rw-r--r--vendor/gems/gettext-2.1.0/po/cs/rgettext.po136
-rw-r--r--vendor/gems/gettext-2.1.0/po/de/rgettext.po141
-rw-r--r--vendor/gems/gettext-2.1.0/po/el/rgettext.po132
-rw-r--r--vendor/gems/gettext-2.1.0/po/eo/rgettext.po133
-rw-r--r--vendor/gems/gettext-2.1.0/po/es/rgettext.po134
-rw-r--r--vendor/gems/gettext-2.1.0/po/et/rgettext.po131
-rw-r--r--vendor/gems/gettext-2.1.0/po/fr/rgettext.po137
-rw-r--r--vendor/gems/gettext-2.1.0/po/hr/rgettext.po135
-rw-r--r--vendor/gems/gettext-2.1.0/po/hu/rgettext.po133
-rw-r--r--vendor/gems/gettext-2.1.0/po/it/rgettext.po134
-rw-r--r--vendor/gems/gettext-2.1.0/po/ja/rgettext.po134
-rw-r--r--vendor/gems/gettext-2.1.0/po/ko/rgettext.po133
-rw-r--r--vendor/gems/gettext-2.1.0/po/lv/rgettext.po134
-rw-r--r--vendor/gems/gettext-2.1.0/po/nb/rgettext.po135
-rw-r--r--vendor/gems/gettext-2.1.0/po/nl/rgettext.po134
-rw-r--r--vendor/gems/gettext-2.1.0/po/pt_BR/rgettext.po136
-rw-r--r--vendor/gems/gettext-2.1.0/po/rgettext.pot125
-rw-r--r--vendor/gems/gettext-2.1.0/po/ru/rgettext.po135
-rw-r--r--vendor/gems/gettext-2.1.0/po/sr/rgettext.po134
-rw-r--r--vendor/gems/gettext-2.1.0/po/sv/rgettext.po127
-rw-r--r--vendor/gems/gettext-2.1.0/po/ua/rgettext.po138
-rw-r--r--vendor/gems/gettext-2.1.0/po/vi/rgettext.po132
-rw-r--r--vendor/gems/gettext-2.1.0/po/zh/rgettext.po133
-rw-r--r--vendor/gems/gettext-2.1.0/po/zh_TW/rgettext.po132
-rw-r--r--vendor/gems/gettext-2.1.0/replace.rb8
-rw-r--r--vendor/gems/gettext-2.1.0/samples/README16
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/README43
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/Rakefile27
-rwxr-xr-xvendor/gems/gettext-2.1.0/samples/cgi/cookie.cgi64
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/gettext.css116
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/helloerb.rhtml28
-rwxr-xr-xvendor/gems/gettext-2.1.0/samples/cgi/helloerb1.cgi58
-rwxr-xr-xvendor/gems/gettext-2.1.0/samples/cgi/helloerb2.cgi51
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/hellolib.rb18
-rwxr-xr-xvendor/gems/gettext-2.1.0/samples/cgi/http.rb49
-rwxr-xr-xvendor/gems/gettext-2.1.0/samples/cgi/index.cgi111
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/locale/bg/LC_MESSAGES/helloerb1.mobin0 -> 1400 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/locale/bg/LC_MESSAGES/helloerb2.mobin0 -> 1244 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/locale/bg/LC_MESSAGES/hellolib.mobin0 -> 510 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/locale/bg/LC_MESSAGES/main.mobin0 -> 2440 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/locale/bs/LC_MESSAGES/helloerb1.mobin0 -> 1246 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/locale/bs/LC_MESSAGES/helloerb2.mobin0 -> 1086 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/locale/bs/LC_MESSAGES/hellolib.mobin0 -> 567 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/locale/bs/LC_MESSAGES/main.mobin0 -> 2017 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/locale/ca/LC_MESSAGES/helloerb1.mobin0 -> 1032 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/locale/ca/LC_MESSAGES/helloerb2.mobin0 -> 865 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/locale/ca/LC_MESSAGES/hellolib.mobin0 -> 473 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/locale/ca/LC_MESSAGES/main.mobin0 -> 1981 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/locale/cs/LC_MESSAGES/helloerb1.mobin0 -> 1253 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/locale/cs/LC_MESSAGES/helloerb2.mobin0 -> 1039 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/locale/cs/LC_MESSAGES/hellolib.mobin0 -> 553 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/locale/cs/LC_MESSAGES/main.mobin0 -> 2020 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/locale/de/LC_MESSAGES/helloerb1.mobin0 -> 1038 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/locale/de/LC_MESSAGES/helloerb2.mobin0 -> 865 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/locale/de/LC_MESSAGES/hellolib.mobin0 -> 467 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/locale/de/LC_MESSAGES/main.mobin0 -> 1964 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/locale/el/LC_MESSAGES/helloerb1.mobin0 -> 1319 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/locale/el/LC_MESSAGES/helloerb2.mobin0 -> 1120 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/locale/el/LC_MESSAGES/hellolib.mobin0 -> 480 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/locale/el/LC_MESSAGES/main.mobin0 -> 2264 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/locale/eo/LC_MESSAGES/helloerb1.mobin0 -> 1134 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/locale/eo/LC_MESSAGES/helloerb2.mobin0 -> 943 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/locale/eo/LC_MESSAGES/hellolib.mobin0 -> 469 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/locale/eo/LC_MESSAGES/main.mobin0 -> 1936 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/locale/es/LC_MESSAGES/helloerb1.mobin0 -> 1135 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/locale/es/LC_MESSAGES/helloerb2.mobin0 -> 916 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/locale/es/LC_MESSAGES/hellolib.mobin0 -> 382 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/locale/es/LC_MESSAGES/main.mobin0 -> 1894 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/locale/fr/LC_MESSAGES/helloerb1.mobin0 -> 1170 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/locale/fr/LC_MESSAGES/helloerb2.mobin0 -> 1011 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/locale/fr/LC_MESSAGES/hellolib.mobin0 -> 450 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/locale/fr/LC_MESSAGES/main.mobin0 -> 2095 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/locale/hr/LC_MESSAGES/helloerb1.mobin0 -> 1247 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/locale/hr/LC_MESSAGES/helloerb2.mobin0 -> 1087 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/locale/hr/LC_MESSAGES/hellolib.mobin0 -> 568 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/locale/hr/LC_MESSAGES/main.mobin0 -> 2018 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/locale/hu/LC_MESSAGES/helloerb1.mobin0 -> 1170 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/locale/hu/LC_MESSAGES/helloerb2.mobin0 -> 1008 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/locale/hu/LC_MESSAGES/hellolib.mobin0 -> 470 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/locale/hu/LC_MESSAGES/main.mobin0 -> 2011 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/locale/it/LC_MESSAGES/helloerb1.mobin0 -> 1082 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/locale/it/LC_MESSAGES/helloerb2.mobin0 -> 925 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/locale/it/LC_MESSAGES/hellolib.mobin0 -> 515 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/locale/it/LC_MESSAGES/main.mobin0 -> 2030 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/locale/ja/LC_MESSAGES/helloerb1.mobin0 -> 1305 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/locale/ja/LC_MESSAGES/helloerb2.mobin0 -> 1096 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/locale/ja/LC_MESSAGES/hellolib.mobin0 -> 502 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/locale/ja/LC_MESSAGES/main.mobin0 -> 2206 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/locale/ko/LC_MESSAGES/helloerb1.mobin0 -> 1172 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/locale/ko/LC_MESSAGES/helloerb2.mobin0 -> 976 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/locale/ko/LC_MESSAGES/hellolib.mobin0 -> 477 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/locale/ko/LC_MESSAGES/main.mobin0 -> 2039 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/locale/lv/LC_MESSAGES/helloerb1.mobin0 -> 1191 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/locale/lv/LC_MESSAGES/helloerb2.mobin0 -> 1024 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/locale/lv/LC_MESSAGES/hellolib.mobin0 -> 500 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/locale/lv/LC_MESSAGES/main.mobin0 -> 1982 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/locale/nb/LC_MESSAGES/helloerb1.mobin0 -> 1233 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/locale/nb/LC_MESSAGES/helloerb2.mobin0 -> 1042 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/locale/nb/LC_MESSAGES/hellolib.mobin0 -> 536 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/locale/nb/LC_MESSAGES/main.mobin0 -> 1996 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/locale/nl/LC_MESSAGES/helloerb1.mobin0 -> 1203 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/locale/nl/LC_MESSAGES/helloerb2.mobin0 -> 1005 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/locale/nl/LC_MESSAGES/hellolib.mobin0 -> 491 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/locale/nl/LC_MESSAGES/main.mobin0 -> 1961 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/locale/pt_BR/LC_MESSAGES/helloerb1.mobin0 -> 1192 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/locale/pt_BR/LC_MESSAGES/helloerb2.mobin0 -> 1006 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/locale/pt_BR/LC_MESSAGES/hellolib.mobin0 -> 474 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/locale/pt_BR/LC_MESSAGES/main.mobin0 -> 1966 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/locale/ru/LC_MESSAGES/helloerb1.mobin0 -> 1361 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/locale/ru/LC_MESSAGES/helloerb2.mobin0 -> 1169 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/locale/ru/LC_MESSAGES/hellolib.mobin0 -> 485 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/locale/ru/LC_MESSAGES/main.mobin0 -> 2282 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/locale/sr/LC_MESSAGES/helloerb1.mobin0 -> 1369 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/locale/sr/LC_MESSAGES/helloerb2.mobin0 -> 1153 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/locale/sr/LC_MESSAGES/hellolib.mobin0 -> 560 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/locale/sr/LC_MESSAGES/main.mobin0 -> 2372 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/locale/ua/LC_MESSAGES/helloerb1.mobin0 -> 1454 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/locale/ua/LC_MESSAGES/helloerb2.mobin0 -> 1275 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/locale/ua/LC_MESSAGES/hellolib.mobin0 -> 641 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/locale/ua/LC_MESSAGES/main.mobin0 -> 2461 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/locale/vi/LC_MESSAGES/helloerb1.mobin0 -> 1224 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/locale/vi/LC_MESSAGES/helloerb2.mobin0 -> 1016 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/locale/vi/LC_MESSAGES/hellolib.mobin0 -> 481 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/locale/vi/LC_MESSAGES/main.mobin0 -> 2106 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/locale/zh/LC_MESSAGES/helloerb1.mobin0 -> 1162 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/locale/zh/LC_MESSAGES/helloerb2.mobin0 -> 989 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/locale/zh/LC_MESSAGES/hellolib.mobin0 -> 493 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/locale/zh/LC_MESSAGES/main.mobin0 -> 1908 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/locale/zh_TW/LC_MESSAGES/helloerb1.mobin0 -> 1188 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/locale/zh_TW/LC_MESSAGES/helloerb2.mobin0 -> 1004 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/locale/zh_TW/LC_MESSAGES/hellolib.mobin0 -> 524 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/locale/zh_TW/LC_MESSAGES/main.mobin0 -> 1857 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/other.rhtml20
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/po/bg/helloerb1.po59
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/po/bg/helloerb2.po51
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/po/bg/hellolib.po23
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/po/bg/main.po83
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/po/bs/helloerb1.po59
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/po/bs/helloerb2.po51
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/po/bs/hellolib.po23
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/po/bs/main.po83
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/po/ca/helloerb1.po59
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/po/ca/helloerb2.po51
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/po/ca/hellolib.po23
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/po/ca/main.po83
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/po/cs/helloerb1.po61
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/po/cs/helloerb2.po52
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/po/cs/hellolib.po25
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/po/cs/main.po85
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/po/de/helloerb1.po61
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/po/de/helloerb2.po52
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/po/de/hellolib.po24
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/po/de/main.po86
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/po/el/helloerb1.po60
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/po/el/helloerb2.po51
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/po/el/hellolib.po23
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/po/el/main.po84
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/po/eo/helloerb1.po60
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/po/eo/helloerb2.po52
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/po/eo/hellolib.po24
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/po/eo/main.po84
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/po/es/helloerb1.po59
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/po/es/helloerb2.po50
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/po/es/hellolib.po22
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/po/es/main.po83
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/po/fr/helloerb1.po59
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/po/fr/helloerb2.po51
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/po/fr/hellolib.po22
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/po/fr/main.po85
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/po/helloerb1.pot60
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/po/helloerb2.pot52
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/po/hellolib.pot24
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/po/hr/helloerb1.po59
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/po/hr/helloerb2.po51
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/po/hr/hellolib.po23
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/po/hr/main.po83
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/po/hu/helloerb1.po59
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/po/hu/helloerb2.po51
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/po/hu/hellolib.po23
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/po/hu/main.po82
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/po/it/helloerb1.po60
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/po/it/helloerb2.po52
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/po/it/hellolib.po24
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/po/it/main.po84
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/po/ja/helloerb1.po60
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/po/ja/helloerb2.po52
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/po/ja/hellolib.po24
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/po/ja/main.po85
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/po/ko/helloerb1.po59
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/po/ko/helloerb2.po51
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/po/ko/hellolib.po23
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/po/ko/main.po84
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/po/lv/helloerb1.po65
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/po/lv/helloerb2.po52
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/po/lv/hellolib.po24
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/po/lv/main.po77
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/po/main.pot80
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/po/nb/helloerb1.po60
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/po/nb/helloerb2.po52
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/po/nb/hellolib.po24
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/po/nb/main.po84
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/po/nl/helloerb1.po61
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/po/nl/helloerb2.po52
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/po/nl/hellolib.po24
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/po/nl/main.po86
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/po/pt_BR/helloerb1.po59
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/po/pt_BR/helloerb2.po51
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/po/pt_BR/hellolib.po23
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/po/pt_BR/main.po84
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/po/ru/helloerb1.po58
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/po/ru/helloerb2.po50
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/po/ru/hellolib.po22
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/po/ru/main.po82
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/po/sr/helloerb1.po60
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/po/sr/helloerb2.po52
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/po/sr/hellolib.po24
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/po/sr/main.po80
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/po/ua/helloerb1.po62
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/po/ua/helloerb2.po54
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/po/ua/hellolib.po26
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/po/ua/main.po84
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/po/vi/helloerb1.po65
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/po/vi/helloerb2.po52
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/po/vi/hellolib.po24
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/po/vi/main.po77
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/po/zh/helloerb1.po60
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/po/zh/helloerb2.po52
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/po/zh/hellolib.po24
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/po/zh/main.po80
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/po/zh_TW/helloerb1.po67
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/po/zh_TW/helloerb2.po54
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/po/zh_TW/hellolib.po26
-rw-r--r--vendor/gems/gettext-2.1.0/samples/cgi/po/zh_TW/main.po79
-rw-r--r--vendor/gems/gettext-2.1.0/samples/hello.rb36
-rw-r--r--vendor/gems/gettext-2.1.0/samples/hello2.rb23
-rw-r--r--vendor/gems/gettext-2.1.0/samples/hello_glade2.glade70
-rw-r--r--vendor/gems/gettext-2.1.0/samples/hello_glade2.rb25
-rw-r--r--vendor/gems/gettext-2.1.0/samples/hello_gtk2.rb27
-rw-r--r--vendor/gems/gettext-2.1.0/samples/hello_noop.rb31
-rw-r--r--vendor/gems/gettext-2.1.0/samples/hello_plural.rb26
-rw-r--r--vendor/gems/gettext-2.1.0/samples/hello_tk.rb19
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/bg/LC_MESSAGES/hello.mobin0 -> 488 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/bg/LC_MESSAGES/hello2.mobin0 -> 596 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/bg/LC_MESSAGES/hello_glade2.mobin0 -> 649 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/bg/LC_MESSAGES/hello_gtk.mobin0 -> 496 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/bg/LC_MESSAGES/hello_noop.mobin0 -> 546 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/bg/LC_MESSAGES/hello_plural.mobin0 -> 561 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/bg/LC_MESSAGES/hello_tk.mobin0 -> 491 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/bs/LC_MESSAGES/hello.mobin0 -> 536 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/bs/LC_MESSAGES/hello2.mobin0 -> 635 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/bs/LC_MESSAGES/hello_glade2.mobin0 -> 670 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/bs/LC_MESSAGES/hello_gtk.mobin0 -> 548 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/bs/LC_MESSAGES/hello_noop.mobin0 -> 592 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/bs/LC_MESSAGES/hello_plural.mobin0 -> 625 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/bs/LC_MESSAGES/hello_tk.mobin0 -> 542 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/ca/LC_MESSAGES/hello.mobin0 -> 435 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/ca/LC_MESSAGES/hello2.mobin0 -> 531 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/ca/LC_MESSAGES/hello_glade2.mobin0 -> 578 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/ca/LC_MESSAGES/hello_gtk.mobin0 -> 443 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/ca/LC_MESSAGES/hello_noop.mobin0 -> 481 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/ca/LC_MESSAGES/hello_plural.mobin0 -> 498 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/ca/LC_MESSAGES/hello_tk.mobin0 -> 438 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/cs/LC_MESSAGES/hello.mobin0 -> 525 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/cs/LC_MESSAGES/hello2.mobin0 -> 622 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/cs/LC_MESSAGES/hello_glade2.mobin0 -> 666 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/cs/LC_MESSAGES/hello_gtk.mobin0 -> 533 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/cs/LC_MESSAGES/hello_noop.mobin0 -> 573 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/cs/LC_MESSAGES/hello_plural.mobin0 -> 592 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/cs/LC_MESSAGES/hello_tk.mobin0 -> 528 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/de/LC_MESSAGES/hello.mobin0 -> 428 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/de/LC_MESSAGES/hello2.mobin0 -> 526 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/de/LC_MESSAGES/hello_glade2.mobin0 -> 604 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/de/LC_MESSAGES/hello_gtk.mobin0 -> 436 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/de/LC_MESSAGES/hello_noop.mobin0 -> 464 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/de/LC_MESSAGES/hello_plural.mobin0 -> 530 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/de/LC_MESSAGES/hello_tk.mobin0 -> 474 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/el/LC_MESSAGES/hello.mobin0 -> 435 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/el/LC_MESSAGES/hello2.mobin0 -> 537 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/el/LC_MESSAGES/hello_glade2.mobin0 -> 617 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/el/LC_MESSAGES/hello_gtk.mobin0 -> 449 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/el/LC_MESSAGES/hello_noop.mobin0 -> 499 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/el/LC_MESSAGES/hello_plural.mobin0 -> 507 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/el/LC_MESSAGES/hello_tk.mobin0 -> 444 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/eo/LC_MESSAGES/hello.mobin0 -> 388 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/eo/LC_MESSAGES/hello2.mobin0 -> 495 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/eo/LC_MESSAGES/hello_glade2.mobin0 -> 562 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/eo/LC_MESSAGES/hello_gtk.mobin0 -> 398 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/eo/LC_MESSAGES/hello_noop.mobin0 -> 440 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/eo/LC_MESSAGES/hello_plural.mobin0 -> 490 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/eo/LC_MESSAGES/hello_tk.mobin0 -> 436 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/es/LC_MESSAGES/hello.mobin0 -> 400 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/es/LC_MESSAGES/hello2.mobin0 -> 497 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/es/LC_MESSAGES/hello_glade2.mobin0 -> 535 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/es/LC_MESSAGES/hello_gtk.mobin0 -> 401 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/es/LC_MESSAGES/hello_noop.mobin0 -> 439 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/es/LC_MESSAGES/hello_plural.mobin0 -> 506 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/es/LC_MESSAGES/hello_tk.mobin0 -> 396 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/fr/LC_MESSAGES/hello.mobin0 -> 381 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/fr/LC_MESSAGES/hello2.mobin0 -> 485 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/fr/LC_MESSAGES/hello_glade2.mobin0 -> 570 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/fr/LC_MESSAGES/hello_gtk.mobin0 -> 381 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/fr/LC_MESSAGES/hello_noop.mobin0 -> 423 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/fr/LC_MESSAGES/hello_plural.mobin0 -> 482 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/fr/LC_MESSAGES/hello_tk.mobin0 -> 383 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/hr/LC_MESSAGES/hello.mobin0 -> 537 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/hr/LC_MESSAGES/hello2.mobin0 -> 636 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/hr/LC_MESSAGES/hello_glade2.mobin0 -> 671 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/hr/LC_MESSAGES/hello_gtk.mobin0 -> 549 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/hr/LC_MESSAGES/hello_noop.mobin0 -> 593 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/hr/LC_MESSAGES/hello_plural.mobin0 -> 626 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/hr/LC_MESSAGES/hello_tk.mobin0 -> 543 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/hu/LC_MESSAGES/hello.mobin0 -> 392 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/hu/LC_MESSAGES/hello2.mobin0 -> 484 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/hu/LC_MESSAGES/hello_glade2.mobin0 -> 567 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/hu/LC_MESSAGES/hello_gtk.mobin0 -> 400 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/hu/LC_MESSAGES/hello_noop.mobin0 -> 442 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/hu/LC_MESSAGES/hello_plural.mobin0 -> 497 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/hu/LC_MESSAGES/hello_tk.mobin0 -> 438 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/it/LC_MESSAGES/hello.mobin0 -> 438 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/it/LC_MESSAGES/hello2.mobin0 -> 534 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/it/LC_MESSAGES/hello_glade2.mobin0 -> 578 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/it/LC_MESSAGES/hello_gtk.mobin0 -> 444 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/it/LC_MESSAGES/hello_noop.mobin0 -> 487 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/it/LC_MESSAGES/hello_plural.mobin0 -> 544 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/it/LC_MESSAGES/hello_tk.mobin0 -> 442 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/ja/LC_MESSAGES/hello.mobin0 -> 382 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/ja/LC_MESSAGES/hello2.mobin0 -> 468 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/ja/LC_MESSAGES/hello_glade2.mobin0 -> 542 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/ja/LC_MESSAGES/hello_gtk.mobin0 -> 381 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/ja/LC_MESSAGES/hello_noop.mobin0 -> 432 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/ja/LC_MESSAGES/hello_plural.mobin0 -> 484 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/ja/LC_MESSAGES/hello_tk.mobin0 -> 380 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/ko/LC_MESSAGES/hello.mobin0 -> 389 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/ko/LC_MESSAGES/hello2.mobin0 -> 488 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/ko/LC_MESSAGES/hello_glade2.mobin0 -> 580 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/ko/LC_MESSAGES/hello_gtk.mobin0 -> 397 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/ko/LC_MESSAGES/hello_noop.mobin0 -> 440 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/ko/LC_MESSAGES/hello_plural.mobin0 -> 531 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/ko/LC_MESSAGES/hello_tk.mobin0 -> 443 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/lv/LC_MESSAGES/hello.mobin0 -> 477 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/lv/LC_MESSAGES/hello2.mobin0 -> 575 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/lv/LC_MESSAGES/hello_glade2.mobin0 -> 611 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/lv/LC_MESSAGES/hello_gtk.mobin0 -> 485 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/lv/LC_MESSAGES/hello_noop.mobin0 -> 533 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/lv/LC_MESSAGES/hello_plural.mobin0 -> 509 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/lv/LC_MESSAGES/hello_tk.mobin0 -> 480 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/nb/LC_MESSAGES/hello.mobin0 -> 453 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/nb/LC_MESSAGES/hello2.mobin0 -> 548 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/nb/LC_MESSAGES/hello_glade2.mobin0 -> 638 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/nb/LC_MESSAGES/hello_gtk.mobin0 -> 460 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/nb/LC_MESSAGES/hello_noop.mobin0 -> 506 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/nb/LC_MESSAGES/hello_plural.mobin0 -> 557 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/nb/LC_MESSAGES/hello_tk.mobin0 -> 506 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/nl/LC_MESSAGES/hello.mobin0 -> 469 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/nl/LC_MESSAGES/hello2.mobin0 -> 565 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/nl/LC_MESSAGES/hello_glade2.mobin0 -> 608 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/nl/LC_MESSAGES/hello_gtk.mobin0 -> 477 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/nl/LC_MESSAGES/hello_noop.mobin0 -> 518 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/nl/LC_MESSAGES/hello_plural.mobin0 -> 533 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/nl/LC_MESSAGES/hello_tk.mobin0 -> 475 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/pt_BR/LC_MESSAGES/hello.mobin0 -> 441 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/pt_BR/LC_MESSAGES/hello2.mobin0 -> 536 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/pt_BR/LC_MESSAGES/hello_glade2.mobin0 -> 585 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/pt_BR/LC_MESSAGES/hello_gtk.mobin0 -> 451 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/pt_BR/LC_MESSAGES/hello_noop.mobin0 -> 489 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/pt_BR/LC_MESSAGES/hello_plural.mobin0 -> 509 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/pt_BR/LC_MESSAGES/hello_tk.mobin0 -> 451 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/ru/LC_MESSAGES/hello.mobin0 -> 468 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/ru/LC_MESSAGES/hello2.mobin0 -> 587 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/ru/LC_MESSAGES/hello_glade2.mobin0 -> 644 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/ru/LC_MESSAGES/hello_gtk.mobin0 -> 475 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/ru/LC_MESSAGES/hello_noop.mobin0 -> 533 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/ru/LC_MESSAGES/hello_plural.mobin0 -> 575 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/ru/LC_MESSAGES/hello_tk.mobin0 -> 470 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/sr/LC_MESSAGES/hello.mobin0 -> 417 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/sr/LC_MESSAGES/hello2.mobin0 -> 520 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/sr/LC_MESSAGES/hello_glade2.mobin0 -> 705 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/sr/LC_MESSAGES/hello_gtk.mobin0 -> 425 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/sr/LC_MESSAGES/hello_noop.mobin0 -> 477 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/sr/LC_MESSAGES/hello_plural.mobin0 -> 602 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/sr/LC_MESSAGES/hello_tk.mobin0 -> 535 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/sv/LC_MESSAGES/hello.mobin0 -> 371 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/sv/LC_MESSAGES/hello2.mobin0 -> 468 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/sv/LC_MESSAGES/hello_glade2.mobin0 -> 509 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/sv/LC_MESSAGES/hello_gtk.mobin0 -> 378 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/sv/LC_MESSAGES/hello_noop.mobin0 -> 421 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/sv/LC_MESSAGES/hello_plural.mobin0 -> 488 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/sv/LC_MESSAGES/hello_tk.mobin0 -> 373 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/ua/LC_MESSAGES/hello.mobin0 -> 402 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/ua/LC_MESSAGES/hello2.mobin0 -> 494 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/ua/LC_MESSAGES/hello_glade2.mobin0 -> 788 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/ua/LC_MESSAGES/hello_gtk.mobin0 -> 409 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/ua/LC_MESSAGES/hello_noop.mobin0 -> 461 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/ua/LC_MESSAGES/hello_plural.mobin0 -> 685 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/ua/LC_MESSAGES/hello_tk.mobin0 -> 611 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/vi/LC_MESSAGES/hello.mobin0 -> 415 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/vi/LC_MESSAGES/hello2.mobin0 -> 512 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/vi/LC_MESSAGES/hello_glade2.mobin0 -> 605 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/vi/LC_MESSAGES/hello_gtk.mobin0 -> 418 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/vi/LC_MESSAGES/hello_noop.mobin0 -> 479 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/vi/LC_MESSAGES/hello_plural.mobin0 -> 515 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/vi/LC_MESSAGES/hello_tk.mobin0 -> 456 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/zh/LC_MESSAGES/hello.mobin0 -> 437 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/zh/LC_MESSAGES/hello2.mobin0 -> 535 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/zh/LC_MESSAGES/hello_glade2.mobin0 -> 565 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/zh/LC_MESSAGES/hello_gtk.mobin0 -> 443 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/zh/LC_MESSAGES/hello_noop.mobin0 -> 480 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/zh/LC_MESSAGES/hello_plural.mobin0 -> 490 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/zh/LC_MESSAGES/hello_tk.mobin0 -> 442 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/zh_TW/LC_MESSAGES/hello.mobin0 -> 497 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/zh_TW/LC_MESSAGES/hello2.mobin0 -> 597 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/zh_TW/LC_MESSAGES/hello_glade2.mobin0 -> 626 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/zh_TW/LC_MESSAGES/hello_gtk.mobin0 -> 470 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/zh_TW/LC_MESSAGES/hello_noop.mobin0 -> 548 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/zh_TW/LC_MESSAGES/hello_plural.mobin0 -> 574 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/samples/locale/zh_TW/LC_MESSAGES/hello_tk.mobin0 -> 501 bytes
-rwxr-xr-xvendor/gems/gettext-2.1.0/samples/makemo.rb4
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/bg/hello.po24
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/bg/hello2.po31
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/bg/hello_glade2.po31
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/bg/hello_gtk.po23
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/bg/hello_noop.po27
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/bg/hello_plural.po25
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/bg/hello_tk.po23
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/bs/hello.po23
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/bs/hello2.po31
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/bs/hello_glade2.po31
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/bs/hello_gtk.po23
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/bs/hello_noop.po27
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/bs/hello_plural.po26
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/bs/hello_tk.po23
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/ca/hello.po23
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/ca/hello2.po31
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/ca/hello_glade2.po31
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/ca/hello_gtk.po23
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/ca/hello_noop.po27
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/ca/hello_plural.po25
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/ca/hello_tk.po23
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/cs/hello.po23
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/cs/hello2.po31
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/cs/hello_glade2.po37
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/cs/hello_gtk.po23
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/cs/hello_noop.po27
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/cs/hello_plural.po26
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/cs/hello_tk.po23
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/de/hello.po20
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/de/hello2.po28
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/de/hello_glade2.po27
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/de/hello_gtk.po20
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/de/hello_noop.po24
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/de/hello_plural.po25
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/de/hello_tk.po20
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/el/hello.po23
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/el/hello2.po31
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/el/hello_glade2.po31
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/el/hello_gtk.po22
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/el/hello_noop.po27
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/el/hello_plural.po25
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/el/hello_tk.po23
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/eo/hello.po23
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/eo/hello2.po31
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/eo/hello_glade2.po32
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/eo/hello_gtk.po23
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/eo/hello_noop.po27
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/eo/hello_plural.po26
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/eo/hello_tk.po24
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/es/hello.po21
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/es/hello2.po28
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/es/hello_glade2.po28
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/es/hello_gtk.po20
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/es/hello_noop.po24
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/es/hello_plural.po23
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/es/hello_tk.po20
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/fr/hello.po18
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/fr/hello2.po26
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/fr/hello_glade2.po27
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/fr/hello_gtk.po18
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/fr/hello_noop.po22
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/fr/hello_plural.po21
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/fr/hello_tk.po18
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/hello.pot23
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/hello2.pot31
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/hello_glade2.pot32
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/hello_gtk.pot23
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/hello_noop.pot27
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/hello_plural.pot26
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/hello_tk.pot24
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/hr/hello.po23
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/hr/hello2.po31
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/hr/hello_glade2.po31
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/hr/hello_gtk.po23
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/hr/hello_noop.po27
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/hr/hello_plural.po26
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/hr/hello_tk.po23
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/hu/hello.po22
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/hu/hello2.po30
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/hu/hello_glade2.po31
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/hu/hello_gtk.po22
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/hu/hello_noop.po26
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/hu/hello_plural.po25
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/hu/hello_tk.po23
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/it/hello.po20
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/it/hello2.po28
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/it/hello_glade2.po28
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/it/hello_gtk.po21
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/it/hello_noop.po24
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/it/hello_plural.po23
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/it/hello_tk.po21
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/ja/hello.po20
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/ja/hello2.po28
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/ja/hello_glade2.po26
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/ja/hello_gtk.po19
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/ja/hello_noop.po23
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/ja/hello_plural.po21
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/ja/hello_tk.po19
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/ko/hello.po18
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/ko/hello2.po26
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/ko/hello_glade2.po29
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/ko/hello_gtk.po18
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/ko/hello_noop.po22
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/ko/hello_plural.po25
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/ko/hello_tk.po19
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/lv/hello.po24
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/lv/hello2.po32
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/lv/hello_glade2.po38
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/lv/hello_gtk.po24
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/lv/hello_noop.po28
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/lv/hello_plural.po26
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/lv/hello_tk.po24
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/nb/hello.po23
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/nb/hello2.po31
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/nb/hello_glade2.po31
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/nb/hello_gtk.po23
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/nb/hello_noop.po27
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/nb/hello_plural.po26
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/nb/hello_tk.po24
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/nl/hello.po24
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/nl/hello2.po32
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/nl/hello_glade2.po31
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/nl/hello_gtk.po24
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/nl/hello_noop.po28
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/nl/hello_plural.po25
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/nl/hello_tk.po24
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/pt_BR/hello.po21
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/pt_BR/hello2.po29
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/pt_BR/hello_glade2.po29
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/pt_BR/hello_gtk.po21
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/pt_BR/hello_noop.po25
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/pt_BR/hello_plural.po23
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/pt_BR/hello_tk.po21
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/ru/hello.po22
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/ru/hello2.po30
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/ru/hello_glade2.po30
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/ru/hello_gtk.po22
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/ru/hello_noop.po26
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/ru/hello_plural.po28
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/ru/hello_tk.po22
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/sr/hello.po22
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/sr/hello2.po30
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/sr/hello_glade2.po32
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/sr/hello_gtk.po22
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/sr/hello_noop.po26
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/sr/hello_plural.po26
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/sr/hello_tk.po24
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/sv/hello.po20
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/sv/hello2.po28
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/sv/hello_glade2.po28
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/sv/hello_gtk.po20
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/sv/hello_noop.po24
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/sv/hello_plural.po23
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/sv/hello_tk.po20
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/test.rb11
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/ua/hello.po22
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/ua/hello2.po30
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/ua/hello_glade2.po34
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/ua/hello_gtk.po22
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/ua/hello_noop.po26
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/ua/hello_plural.po29
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/ua/hello_tk.po26
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/vi/hello.po23
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/vi/hello2.po31
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/vi/hello_glade2.po38
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/vi/hello_gtk.po23
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/vi/hello_noop.po27
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/vi/hello_plural.po26
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/vi/hello_tk.po24
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/zh/hello.po23
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/zh/hello2.po31
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/zh/hello_glade2.po31
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/zh/hello_gtk.po23
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/zh/hello_noop.po27
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/zh/hello_plural.po25
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/zh/hello_tk.po23
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/zh_TW/hello.po26
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/zh_TW/hello2.po34
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/zh_TW/hello_glade2.po40
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/zh_TW/hello_gtk.po25
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/zh_TW/hello_noop.po30
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/zh_TW/hello_plural.po28
-rw-r--r--vendor/gems/gettext-2.1.0/samples/po/zh_TW/hello_tk.po26
-rw-r--r--vendor/gems/gettext-2.1.0/src/poparser.ry217
-rw-r--r--vendor/gems/gettext-2.1.0/test.rb33
-rw-r--r--vendor/gems/gettext-2.1.0/test/README1
-rw-r--r--vendor/gems/gettext-2.1.0/test/Rakefile17
-rw-r--r--vendor/gems/gettext-2.1.0/test/locale/cr/LC_MESSAGES/plural.mobin0 -> 528 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/test/locale/da/LC_MESSAGES/plural.mobin0 -> 437 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/test/locale/da/LC_MESSAGES/plural_error.mobin0 -> 453 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/test/locale/fr/LC_MESSAGES/plural.mobin0 -> 492 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/test/locale/fr/LC_MESSAGES/plural_error.mobin0 -> 392 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/test/locale/fr/LC_MESSAGES/test1.mobin0 -> 436 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/test/locale/fr/LC_MESSAGES/test2.mobin0 -> 383 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/test/locale/ir/LC_MESSAGES/plural.mobin0 -> 460 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/test/locale/ja/LC_MESSAGES/npgettext.mobin0 -> 745 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/test/locale/ja/LC_MESSAGES/nsgettext.mobin0 -> 480 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/test/locale/ja/LC_MESSAGES/pgettext.mobin0 -> 542 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/test/locale/ja/LC_MESSAGES/plural.mobin0 -> 472 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/test/locale/ja/LC_MESSAGES/plural_error.mobin0 -> 385 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/test/locale/ja/LC_MESSAGES/rubyparser.mobin0 -> 635 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/test/locale/ja/LC_MESSAGES/sgettext.mobin0 -> 468 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/test/locale/ja/LC_MESSAGES/test1.mobin0 -> 431 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/test/locale/ja/LC_MESSAGES/test2.mobin0 -> 385 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/test/locale/ja/LC_MESSAGES/test3.mobin0 -> 385 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/test/locale/la/LC_MESSAGES/plural.mobin0 -> 478 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/test/locale/la/LC_MESSAGES/plural_error.mobin0 -> 434 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/test/locale/li/LC_MESSAGES/plural.mobin0 -> 506 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/test/locale/li/LC_MESSAGES/plural_error.mobin0 -> 483 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/test/locale/po/LC_MESSAGES/plural.mobin0 -> 500 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/test/locale/sl/LC_MESSAGES/plural.mobin0 -> 502 bytes
-rw-r--r--vendor/gems/gettext-2.1.0/test/po/cr/plural.po23
-rw-r--r--vendor/gems/gettext-2.1.0/test/po/da/plural.po22
-rw-r--r--vendor/gems/gettext-2.1.0/test/po/da/plural_error.po22
-rw-r--r--vendor/gems/gettext-2.1.0/test/po/fr/plural.po28
-rw-r--r--vendor/gems/gettext-2.1.0/test/po/fr/plural_error.po20
-rw-r--r--vendor/gems/gettext-2.1.0/test/po/fr/test1.po23
-rw-r--r--vendor/gems/gettext-2.1.0/test/po/fr/test2.po19
-rw-r--r--vendor/gems/gettext-2.1.0/test/po/ir/plural.po23
-rw-r--r--vendor/gems/gettext-2.1.0/test/po/ja/npgettext.po46
-rw-r--r--vendor/gems/gettext-2.1.0/test/po/ja/nsgettext.po65
-rw-r--r--vendor/gems/gettext-2.1.0/test/po/ja/pgettext.po41
-rw-r--r--vendor/gems/gettext-2.1.0/test/po/ja/plural.po28
-rw-r--r--vendor/gems/gettext-2.1.0/test/po/ja/plural_error.po20
-rw-r--r--vendor/gems/gettext-2.1.0/test/po/ja/rubyparser.po43
-rw-r--r--vendor/gems/gettext-2.1.0/test/po/ja/sgettext.po47
-rw-r--r--vendor/gems/gettext-2.1.0/test/po/ja/test1.po23
-rw-r--r--vendor/gems/gettext-2.1.0/test/po/ja/test2.po19
-rw-r--r--vendor/gems/gettext-2.1.0/test/po/ja/test3.po19
-rw-r--r--vendor/gems/gettext-2.1.0/test/po/la/plural.po23
-rw-r--r--vendor/gems/gettext-2.1.0/test/po/la/plural_error.po21
-rw-r--r--vendor/gems/gettext-2.1.0/test/po/li/plural.po23
-rw-r--r--vendor/gems/gettext-2.1.0/test/po/li/plural_error.po27
-rw-r--r--vendor/gems/gettext-2.1.0/test/po/po/plural.po23
-rw-r--r--vendor/gems/gettext-2.1.0/test/po/sl/plural.po24
-rw-r--r--vendor/gems/gettext-2.1.0/test/test_class_info.rb83
-rw-r--r--vendor/gems/gettext-2.1.0/test/test_gettext.rb311
-rw-r--r--vendor/gems/gettext-2.1.0/test/test_locale_path.rb50
-rw-r--r--vendor/gems/gettext-2.1.0/test/test_parser.rb158
-rw-r--r--vendor/gems/gettext-2.1.0/test/test_po_generation.rb20
-rw-r--r--vendor/gems/gettext-2.1.0/test/test_pomessage.rb99
-rw-r--r--vendor/gems/gettext-2.1.0/test/test_string.rb65
-rw-r--r--vendor/gems/gettext-2.1.0/test/test_textdomain_bind.rb37
-rw-r--r--vendor/gems/gettext-2.1.0/test/test_textdomain_multi.rb80
-rw-r--r--vendor/gems/gettext-2.1.0/test/test_textdomain_toplevel.rb42
-rw-r--r--vendor/gems/gettext-2.1.0/test/test_thread.rb41
-rw-r--r--vendor/gems/gettext-2.1.0/test/testlib/N_.rb66
-rw-r--r--vendor/gems/gettext-2.1.0/test/testlib/erb.rhtml15
-rw-r--r--vendor/gems/gettext-2.1.0/test/testlib/erb.rxml16
-rw-r--r--vendor/gems/gettext-2.1.0/test/testlib/gettext.rb113
-rw-r--r--vendor/gems/gettext-2.1.0/test/testlib/gladeparser.glade183
-rw-r--r--vendor/gems/gettext-2.1.0/test/testlib/helper.rb11
-rw-r--r--vendor/gems/gettext-2.1.0/test/testlib/multi_textdomain.rb131
-rw-r--r--vendor/gems/gettext-2.1.0/test/testlib/ngettext.rb79
-rw-r--r--vendor/gems/gettext-2.1.0/test/testlib/npgettext.rb31
-rw-r--r--vendor/gems/gettext-2.1.0/test/testlib/nsgettext.rb42
-rw-r--r--vendor/gems/gettext-2.1.0/test/testlib/pgettext.rb36
-rw-r--r--vendor/gems/gettext-2.1.0/test/testlib/sgettext.rb46
-rw-r--r--vendor/gems/gettext-2.1.0/test/testlib/simple.rb14
-rw-r--r--vendor/gems/gettext-2.1.0/test/tools/files/app.pot0
-rw-r--r--vendor/gems/gettext-2.1.0/test/tools/files/de/app.po0
-rw-r--r--vendor/gems/gettext-2.1.0/test/tools/files/en/app.po0
-rw-r--r--vendor/gems/gettext-2.1.0/test/tools/files/en/test.po21
-rw-r--r--vendor/gems/gettext-2.1.0/test/tools/files/simple_1.po2
-rw-r--r--vendor/gems/gettext-2.1.0/test/tools/files/simple_2.po2
-rw-r--r--vendor/gems/gettext-2.1.0/test/tools/files/simple_translation.rb1
-rw-r--r--vendor/gems/gettext-2.1.0/test/tools/files/version.po7
-rw-r--r--vendor/gems/gettext-2.1.0/test/tools/test.pot21
-rw-r--r--vendor/gems/gettext-2.1.0/test/tools/test_tools.rb61
-rw-r--r--vendor/gems/locale-2.0.5/.specification98
-rw-r--r--vendor/gems/locale-2.0.5/COPYING56
-rw-r--r--vendor/gems/locale-2.0.5/ChangeLog157
-rw-r--r--vendor/gems/locale-2.0.5/README.rdoc111
-rw-r--r--vendor/gems/locale-2.0.5/Rakefile82
-rw-r--r--vendor/gems/locale-2.0.5/lib/locale.rb329
-rw-r--r--vendor/gems/locale-2.0.5/lib/locale/data/languages.tab.gzbin0 -> 62732 bytes
-rw-r--r--vendor/gems/locale-2.0.5/lib/locale/data/regions.tab.gzbin0 -> 2125 bytes
-rw-r--r--vendor/gems/locale-2.0.5/lib/locale/driver/cgi.rb136
-rw-r--r--vendor/gems/locale-2.0.5/lib/locale/driver/env.rb64
-rw-r--r--vendor/gems/locale-2.0.5/lib/locale/driver/jruby.rb52
-rw-r--r--vendor/gems/locale-2.0.5/lib/locale/driver/posix.rb49
-rw-r--r--vendor/gems/locale-2.0.5/lib/locale/driver/win32.rb81
-rw-r--r--vendor/gems/locale-2.0.5/lib/locale/driver/win32_table.rb298
-rw-r--r--vendor/gems/locale-2.0.5/lib/locale/info.rb12
-rw-r--r--vendor/gems/locale-2.0.5/lib/locale/info/language.rb135
-rw-r--r--vendor/gems/locale-2.0.5/lib/locale/info/region.rb75
-rw-r--r--vendor/gems/locale-2.0.5/lib/locale/tag.rb39
-rw-r--r--vendor/gems/locale-2.0.5/lib/locale/tag/cldr.rb99
-rw-r--r--vendor/gems/locale-2.0.5/lib/locale/tag/common.rb129
-rw-r--r--vendor/gems/locale-2.0.5/lib/locale/tag/irregular.rb40
-rw-r--r--vendor/gems/locale-2.0.5/lib/locale/tag/posix.rb97
-rw-r--r--vendor/gems/locale-2.0.5/lib/locale/tag/rfc.rb112
-rw-r--r--vendor/gems/locale-2.0.5/lib/locale/tag/simple.rb162
-rw-r--r--vendor/gems/locale-2.0.5/lib/locale/taglist.rb109
-rw-r--r--vendor/gems/locale-2.0.5/lib/locale/util/memoizable.rb108
-rw-r--r--vendor/gems/locale-2.0.5/lib/locale/version.rb12
-rw-r--r--vendor/gems/locale-2.0.5/samples/cgi/README20
-rwxr-xr-xvendor/gems/locale-2.0.5/samples/cgi/cookie.cgi62
-rwxr-xr-xvendor/gems/locale-2.0.5/samples/cgi/http.rb52
-rwxr-xr-xvendor/gems/locale-2.0.5/samples/cgi/index.cgi90
-rw-r--r--vendor/gems/locale-2.0.5/samples/cgi/locale.css115
-rw-r--r--vendor/gems/locale-2.0.5/samples/rack/README10
-rw-r--r--vendor/gems/locale-2.0.5/samples/rack/hello_rack.rb17
-rw-r--r--vendor/gems/locale-2.0.5/samples/rack/hello_rack.ru5
-rw-r--r--vendor/gems/locale-2.0.5/samples/sample_1.rb25
-rw-r--r--vendor/gems/locale-2.0.5/samples/sample_info.rb6
-rw-r--r--vendor/gems/locale-2.0.5/setup.rb1585
-rw-r--r--vendor/gems/locale-2.0.5/test/test_detect_cgi.rb216
-rw-r--r--vendor/gems/locale-2.0.5/test/test_detect_general.rb164
-rw-r--r--vendor/gems/locale-2.0.5/test/test_driver_jruby.rb43
-rw-r--r--vendor/gems/locale-2.0.5/test/test_driver_win32.rb65
-rw-r--r--vendor/gems/locale-2.0.5/test/test_info.rb28
-rw-r--r--vendor/gems/locale-2.0.5/test/test_memoizable.rb133
-rw-r--r--vendor/gems/locale-2.0.5/test/test_tag.rb1233
-rw-r--r--vendor/gems/locale-2.0.5/test/test_taglist.rb34
-rw-r--r--vendor/gems/locale-2.0.5/test/test_thread.rb37
-rw-r--r--vendor/plugins/acts_as_xapian/lib/acts_as_xapian.rb29
-rw-r--r--vendor/plugins/gettext_i18n_rails/lib/gettext_i18n_rails/i18n_hacks.rb4
-rw-r--r--vendor/plugins/gettext_i18n_rails/lib/gettext_i18n_rails/tasks.rb2
-rw-r--r--vendor/plugins/globalize2/LICENSE21
-rw-r--r--vendor/plugins/globalize2/README.textile86
-rw-r--r--vendor/plugins/globalize2/Rakefile39
-rw-r--r--vendor/plugins/globalize2/VERSION1
-rw-r--r--vendor/plugins/globalize2/generators/db_backend.rb0
-rw-r--r--vendor/plugins/globalize2/generators/templates/db_backend_migration.rb25
-rw-r--r--vendor/plugins/globalize2/globalize2.gemspec81
-rw-r--r--vendor/plugins/globalize2/init.rb1
-rw-r--r--vendor/plugins/globalize2/lib/globalize.rb15
-rw-r--r--vendor/plugins/globalize2/lib/globalize/active_record.rb232
-rw-r--r--vendor/plugins/globalize2/lib/globalize/active_record/adapter.rb80
-rw-r--r--vendor/plugins/globalize2/lib/globalize/active_record/attributes.rb25
-rw-r--r--vendor/plugins/globalize2/lib/globalize/active_record/migration.rb44
-rw-r--r--vendor/plugins/globalize2/lib/i18n/missing_translations_log_handler.rb41
-rw-r--r--vendor/plugins/globalize2/lib/i18n/missing_translations_raise_handler.rb25
-rw-r--r--vendor/plugins/globalize2/test/active_record/fallbacks_test.rb102
-rw-r--r--vendor/plugins/globalize2/test/active_record/migration_test.rb118
-rw-r--r--vendor/plugins/globalize2/test/active_record/sti_translated_test.rb49
-rw-r--r--vendor/plugins/globalize2/test/active_record/translates_test.rb96
-rw-r--r--vendor/plugins/globalize2/test/active_record/translation_class_test.rb30
-rw-r--r--vendor/plugins/globalize2/test/active_record/validation_tests.rb75
-rw-r--r--vendor/plugins/globalize2/test/active_record_test.rb467
-rw-r--r--vendor/plugins/globalize2/test/all.rb2
-rw-r--r--vendor/plugins/globalize2/test/data/models.rb56
-rw-r--r--vendor/plugins/globalize2/test/data/no_globalize_schema.rb11
-rw-r--r--vendor/plugins/globalize2/test/data/schema.rb55
-rw-r--r--vendor/plugins/globalize2/test/i18n/missing_translations_test.rb36
-rw-r--r--vendor/plugins/globalize2/test/test_helper.rb76
-rw-r--r--vendor/plugins/translate_routes/.gitignore4
-rwxr-xr-xvendor/plugins/translate_routes/ChangeLog22
-rwxr-xr-xvendor/plugins/translate_routes/MIT-LICENSE20
-rwxr-xr-xvendor/plugins/translate_routes/README.markdown99
-rwxr-xr-xvendor/plugins/translate_routes/Rakefile22
-rwxr-xr-xvendor/plugins/translate_routes/config/routes_en-US.yml0
-rwxr-xr-xvendor/plugins/translate_routes/config/routes_es-ES.yml1
-rwxr-xr-xvendor/plugins/translate_routes/init.rb1
-rwxr-xr-xvendor/plugins/translate_routes/install.rb1
-rwxr-xr-xvendor/plugins/translate_routes/lib/translate_routes.rb219
-rw-r--r--vendor/plugins/translate_routes/lib/translate_routes_i18n_available_locales.rb23
-rw-r--r--vendor/plugins/translate_routes/lib/translate_routes_test_helper.rb33
-rwxr-xr-xvendor/plugins/translate_routes/tasks/translate_routes_tasks.rake38
-rw-r--r--vendor/plugins/translate_routes/test/locales/routes.yml5
-rwxr-xr-xvendor/plugins/translate_routes/test/translate_routes_test.rb323
-rwxr-xr-xvendor/plugins/translate_routes/uninstall.rb1
m---------vendor/rails-locales0
915 files changed, 37809 insertions, 468 deletions
diff --git a/.gitignore b/.gitignore
index 75bb8101f..911f019c6 100644
--- a/.gitignore
+++ b/.gitignore
@@ -9,3 +9,5 @@
._*
/db/test_structure.sql
moo.txt
+*#*#
+TAGS \ No newline at end of file
diff --git a/.gitmodules b/.gitmodules
index f98b4a514..78f90064f 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -4,3 +4,9 @@
[submodule "vendor/rails"]
path = vendor/rails
url = https://github.com/rails/rails.git
+[submodule "vendor/rails-locales"]
+ path = vendor/rails-locales
+ url = https://github.com/svenfuchs/rails-i18n.git
+[submodule "vendor/plugins/alavetelitheme"]
+ path = vendor/plugins/alavetelitheme
+ url = https://github.com/sebbacon/alavetelitheme.git \ No newline at end of file
diff --git a/INSTALL.txt b/INSTALL.txt
index e897266fb..5782b2b6f 100644
--- a/INSTALL.txt
+++ b/INSTALL.txt
@@ -14,10 +14,10 @@ Commands are intended to be run via the terminal or over ssh.
1. Package Installation
-----------------------
-(i.e. Install git (sudo apt-get install git-core),
- to get whatdotheyknow code from alaveteli: git clone https://github.com/sebbacon/alaveteli.git)
+i.e. Install git (sudo apt-get install git-core),
+to get the alaveteli code from github: git clone https://github.com/sebbacon/alaveteli.git
-Firstly, in a terminal, navigate to the whatdotheyknow folder where this
+Firstly, in a terminal, navigate to the alaveteli folder where this
install guide lives.
Install the packages that are listed in config/packages using apt-get e.g.:
@@ -40,7 +40,7 @@ code. Run:
git submodule update --init
-to fetch the contents of the submodule s.
+to fetch the contents of the submodules.
2. Configure Database
---------------------
@@ -54,7 +54,7 @@ If you don't have it installed:
Now we need to set up the database config file to contain the name,
username and password of your postgres database.
-* copy database.yml-example to database.yml in whatdotheyknow/config
+* copy database.yml-example to database.yml in alaveteli/config
* edit it to point to your local postgresql database in the development
and test sections and create the databases:
@@ -83,14 +83,14 @@ constraints whilst running the tests they also need to be a superuser.
3. Deployment
-------------
-In the 'whatdotheyknow' directory, run:
+In the 'alaveteli' directory, run:
> ./script/rails-post-deploy
(This will need execute privs so chmod 755 if necessary)
This sets up directory structures, creates logs, etc.
-Next, if you have a whatdotheyknow/config/rails_env.rb file, delete it, so that
+Next, if you have a alaveteli/config/rails_env.rb file, delete it, so that
tests run against our test database, rather than the development one.
(Otherwise, any data you create in development will be blown away every
time you run the tests.)
@@ -120,12 +120,12 @@ wrong.
run the following to get the server running (may need to chmod 755 again)
> ./script/server --environment=development
-or if you want the server to be available on the network and not just
-on localhost tell it your IP address by running
+By default the server listens on all interfaces. You can restrict it to the
+localhost interface by adding --binding=127.0.0.1
-> ./script/server --environment=development --binding=10.0.0.11
+You’ll probably need to install various things to make this work. The server
+script will tell you about any missing dependencies.
-Obviously, change 10.0.0.11 to your own IP address.
5. Success
----------
@@ -196,7 +196,7 @@ each email received; patches welcome!
9. Cron jobs
------------
-config/cron.ugly contains the cronjobs we run on WhatDoTheyKnow. It's
+config/crontab.ugly contains the cronjobs we run on WhatDoTheyKnow. It's
in a strange templating format we use in mySociety, but you should be
able to work out the syntax and variables fairly easily :)
diff --git a/app/controllers/admin_public_body_controller.rb b/app/controllers/admin_public_body_controller.rb
index 1b79642d2..4b212c24b 100644
--- a/app/controllers/admin_public_body_controller.rb
+++ b/app/controllers/admin_public_body_controller.rb
@@ -9,7 +9,6 @@
class AdminPublicBodyController < AdminController
def index
list
- render :action => 'list'
end
def _lookup_query_internal
@@ -29,24 +28,31 @@ class AdminPublicBodyController < AdminController
end
def list
- self._lookup_query_internal
+ @locale = self.locale_from_params()
+ PublicBody.with_locale(@locale) do
+ self._lookup_query_internal
+ render :action => 'list'
+ end
end
def mass_tag_add
- self._lookup_query_internal
-
- if params[:new_tag] and params[:new_tag] != ""
- if params[:table_name] == 'exact'
- bodies = @public_bodies_by_tag
- elsif params[:table_name] == 'substring'
- bodies = @public_bodies
- else
- raise "Unknown table_name " + params[:table_name]
- end
- for body in bodies
- body.add_tag_if_not_already_present(params[:new_tag])
- end
- flash[:notice] = "Added tag to table of bodies."
+ @locale = self.locale_from_params()
+ PublicBody.with_locale(@locale) do
+ self._lookup_query_internal
+
+ if params[:new_tag] and params[:new_tag] != ""
+ if params[:table_name] == 'exact'
+ bodies = @public_bodies_by_tag
+ elsif params[:table_name] == 'substring'
+ bodies = @public_bodies
+ else
+ raise "Unknown table_name " + params[:table_name]
+ end
+ for body in bodies
+ body.add_tag_if_not_already_present(params[:new_tag])
+ end
+ flash[:notice] = "Added tag to table of bodies."
+ end
end
redirect_to admin_url('body/list') + "?query=" + @query + (@page.nil? ? "" : "&page=" + @page) # XXX construct this URL properly
@@ -69,53 +75,74 @@ class AdminPublicBodyController < AdminController
end
def show
- @public_body = PublicBody.find(params[:id])
+ @locale = self.locale_from_params()
+ PublicBody.with_locale(@locale) do
+ @public_body = PublicBody.find(params[:id])
+ render
+ end
end
def new
- @public_body = PublicBody.new
+ @locale = self.locale_from_params()
+ PublicBody.with_locale(@locale) do
+ @public_body = PublicBody.new
+ render
+ end
end
def create
- params[:public_body][:last_edit_editor] = admin_http_auth_user()
- @public_body = PublicBody.new(params[:public_body])
- if @public_body.save
- flash[:notice] = 'PublicBody was successfully created.'
- redirect_to admin_url('body/show/' + @public_body.id.to_s)
- else
- render :action => 'new'
+ @locale = self.locale_from_params()
+ PublicBody.with_locale(@locale) do
+ params[:public_body][:last_edit_editor] = admin_http_auth_user()
+ @public_body = PublicBody.new(params[:public_body])
+ if @public_body.save
+ flash[:notice] = 'PublicBody was successfully created.'
+ redirect_to admin_url('body/show/' + @public_body.id.to_s)
+ else
+ render :action => 'new'
+ end
end
end
def edit
- @public_body = PublicBody.find(params[:id])
- @public_body.last_edit_comment = ""
+ @locale = self.locale_from_params()
+ PublicBody.with_locale(@locale) do
+ @public_body = PublicBody.find(params[:id])
+ @public_body.last_edit_comment = ""
+ render
+ end
end
def update
- params[:public_body][:last_edit_editor] = admin_http_auth_user()
- @public_body = PublicBody.find(params[:id])
- if @public_body.update_attributes(params[:public_body])
- flash[:notice] = 'PublicBody was successfully updated.'
- redirect_to admin_url('body/show/' + @public_body.id.to_s)
- else
- render :action => 'edit'
+ @locale = self.locale_from_params()
+ PublicBody.with_locale(@locale) do
+ params[:public_body][:last_edit_editor] = admin_http_auth_user()
+ @public_body = PublicBody.find(params[:id])
+ if @public_body.update_attributes(params[:public_body])
+ flash[:notice] = 'PublicBody was successfully updated.'
+ redirect_to admin_url('body/show/' + @public_body.id.to_s)
+ else
+ render :action => 'edit'
+ end
end
end
def destroy
- public_body = PublicBody.find(params[:id])
+ @locale = self.locale_from_params()
+ PublicBody.with_locale(@locale) do
+ public_body = PublicBody.find(params[:id])
+
+ if public_body.info_requests.size > 0
+ flash[:notice] = "There are requests associated with the authority, so can't destroy it"
+ redirect_to admin_url('body/show/' + public_body.id.to_s)
+ return
+ end
- if public_body.info_requests.size > 0
- flash[:notice] = "There are requests associated with the authority, so can't destroy it"
- redirect_to admin_url('body/show/' + public_body.id.to_s)
- return
+ public_body.tag_string = ""
+ public_body.destroy
+ flash[:notice] = "PublicBody was successfully destroyed."
+ redirect_to admin_url('body/list')
end
-
- public_body.tag_string = ""
- public_body.destroy
- flash[:notice] = "PublicBody was successfully destroyed."
- redirect_to admin_url('body/list')
end
def import_csv
diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb
index 9382e077f..91754e2ba 100644
--- a/app/controllers/application_controller.rb
+++ b/app/controllers/application_controller.rb
@@ -12,11 +12,28 @@
class ApplicationController < ActionController::Base
# Standard headers, footers and navigation for whole site
layout "default"
- # set locale
+ include FastGettext::Translation # make functions like _, n_, N_ etc available)
before_filter :set_gettext_locale
+
+ # scrub sensitive parameters from the logs
+ filter_parameter_logging :password
+
+
+ def set_gettext_locale
+ requested_locale = params[:locale] || session[:locale] || cookies[:locale] || request.env['HTTP_ACCEPT_LANGUAGE']
+ session[:locale] = FastGettext.set_locale(requested_locale)
+ end
+
# scrub sensitive parameters from the logs
filter_parameter_logging :password
+ helper_method :site_name, :locale_from_params
+ def site_name
+ # XXX should come from database:
+ site_name = "WhatDoTheyKnow"
+ return site_name
+ end
+
# Help work out which request causes RAM spike.
# http://www.codeweblog.com/rails-to-monitor-the-process-of-memory-leaks-skills/
# This shows the memory use increase of the Ruby process due to the request.
@@ -131,6 +148,16 @@ class ApplicationController < ActionController::Base
f.write(content)
end
end
+
+ # get the local locale
+ def locale_from_params(*args)
+ if params[:show_locale]
+ params[:show_locale]
+ else
+ I18n.locale.to_s
+ end
+ end
+
private
# Check the user is logged in
diff --git a/app/controllers/general_controller.rb b/app/controllers/general_controller.rb
index 21e715424..cf28208a0 100644
--- a/app/controllers/general_controller.rb
+++ b/app/controllers/general_controller.rb
@@ -22,22 +22,7 @@ class GeneralController < ApplicationController
def frontpage
behavior_cache do
# This is too slow
- #@popular_bodies = PublicBody.find(:all, :select => "*, (select count(*) from info_requests where info_requests.public_body_id = public_bodies.id) as c", :order => "c desc", :limit => 32)
-
- # Just hardcode some popular authorities for now
- # ('tgq', 'atbra' is for debugging on Francis's development environment)
- @popular_bodies = PublicBody.find(:all, :conditions => ["url_name in (
- 'bbc',
- 'dwp',
- 'dh',
- 'snh',
- 'royal_mail_group',
- 'mod',
- 'kent_county_council',
- 'wirral_borough_council'
- /* , 'tgq', 'atbra' */
- )"]).sort_by { |pb| pb.url_name }.reverse # just an order that looks better
-
+ @popular_bodies = PublicBody.find(:all, :select => "*, (select count(*) from info_requests where info_requests.public_body_id = public_bodies.id) as c", :order => "c desc", :limit => 32)
# Get some successful requests #
begin
query = 'variety:response (status:successful OR status:partially_successful)'
@@ -168,5 +153,11 @@ class GeneralController < ApplicationController
render :text => "awake\n"
end
+ def custom_css
+ @locale = self.locale_from_params()
+ render(:layout => false, :content_type => 'text/css')
+ end
+
+
end
diff --git a/app/controllers/public_body_controller.rb b/app/controllers/public_body_controller.rb
index 17eba911f..4e5bf8ad7 100644
--- a/app/controllers/public_body_controller.rb
+++ b/app/controllers/public_body_controller.rb
@@ -16,87 +16,92 @@ class PublicBodyController < ApplicationController
return
end
- @public_body = PublicBody.find_by_url_name_with_historic(params[:url_name])
- raise "None found" if @public_body.nil? # XXX proper 404
+ @locale = self.locale_from_params()
+ PublicBody.with_locale(@locale) do
+ @public_body = PublicBody.find_by_url_name_with_historic(params[:url_name])
+ raise "None found" if @public_body.nil? # XXX proper 404
- # If found by historic name, redirect to new name
- redirect_to show_public_body_url(:url_name => @public_body.url_name) if
- @public_body.url_name != params[:url_name]
-
- set_last_body(@public_body)
+ # If found by historic name, or alternate locale name, redirect to new name
+ if @public_body.url_name != params[:url_name]
+ redirect_to show_public_body_url(:url_name => @public_body.url_name)
+ return
+ end
+
+ set_last_body(@public_body)
- top_url = main_url("/")
- @searched_to_send_request = false
- referrer = request.env['HTTP_REFERER']
- if !referrer.nil? && referrer.match(%r{^#{top_url}search/.*/bodies$})
- @searched_to_send_request = true
- end
+ top_url = main_url("/")
+ @searched_to_send_request = false
+ referrer = request.env['HTTP_REFERER']
+ if !referrer.nil? && referrer.match(%r{^#{top_url}search/.*/bodies$})
+ @searched_to_send_request = true
+ end
- # Use search query for this so can collapse and paginate easily
- # XXX really should just use SQL query here rather than Xapian.
- begin
- @xapian_requests = perform_search([InfoRequestEvent], 'requested_from:' + @public_body.url_name, 'newest', 'request_collapse')
- if (@page > 1)
- @page_desc = " (page " + @page.to_s + ")"
- else
- @page_desc = ""
+ # Use search query for this so can collapse and paginate easily
+ # XXX really should just use SQL query here rather than Xapian.
+ begin
+ @xapian_requests = perform_search([InfoRequestEvent], 'requested_from:' + @public_body.url_name, 'newest', 'request_collapse')
+ if (@page > 1)
+ @page_desc = " (page " + @page.to_s + ")"
+ else
+ @page_desc = ""
+ end
+ rescue
+ @xapian_requests = nil
end
- rescue
- @xapian_requests = nil
- end
- @track_thing = TrackThing.create_track_for_public_body(@public_body)
- @feed_autodetect = [ { :url => do_track_url(@track_thing, 'feed'), :title => @track_thing.params[:title_in_rss], :has_json => true } ]
+ @track_thing = TrackThing.create_track_for_public_body(@public_body)
+ @feed_autodetect = [ { :url => do_track_url(@track_thing, 'feed'), :title => @track_thing.params[:title_in_rss], :has_json => true } ]
- respond_to do |format|
- format.html { @has_json = true }
- format.json { render :json => @public_body.json_for_api }
+ respond_to do |format|
+ format.html { @has_json = true; render :template => "public_body/show"}
+ format.json { render :json => @public_body.json_for_api }
+ end
+
end
end
def view_email
@public_bodies = PublicBody.find(:all, :conditions => [ "url_name = ?", params[:url_name] ])
@public_body = @public_bodies[0]
-
- if params[:submitted_view_email]
- if verify_recaptcha
- flash.discard(:error)
- render :template => "public_body/view_email"
- return
+ PublicBody.with_locale(self.locale_from_params()) do
+ if params[:submitted_view_email]
+ if verify_recaptcha
+ flash.discard(:error)
+ render :template => "public_body/view_email"
+ return
+ end
+ flash.now[:error] = "There was an error with the words you entered, please try again."
end
- flash.now[:error] = "There was an error with the words you entered, please try again."
+ render :template => "public_body/view_email_captcha"
end
- render :template => "public_body/view_email_captcha"
end
def list
# XXX move some of these tag SQL queries into has_tag_string.rb
@tag = params[:tag]
+ @locale = self.locale_from_params()
+ locale_condition = 'public_body_translations.locale = ?'
if @tag.nil?
@tag = "all"
- conditions = []
+ conditions = [locale_condition, @locale]
elsif @tag == 'other'
category_list = PublicBodyCategories::CATEGORIES.map{|c| "'"+c+"'"}.join(",")
- conditions = ['(select count(*) from has_tag_string_tags where has_tag_string_tags.model_id = public_bodies.id
+ conditions = [locale_condition + ' AND (select count(*) from has_tag_string_tags where has_tag_string_tags.model_id = public_bodies.id
and has_tag_string_tags.model = \'PublicBody\'
- and has_tag_string_tags.name in (' + category_list + ')) = 0']
+ and has_tag_string_tags.name in (' + category_list + ')) = 0', @locale]
elsif @tag.size == 1
@tag.upcase!
- conditions = ['first_letter = ?', @tag]
+ conditions = [locale_condition + ' AND public_body_translations.first_letter = ?', @locale, @tag]
elsif @tag.include?(":")
name, value = HasTagString::HasTagStringTag.split_tag_into_name_value(@tag)
- conditions = ['(select count(*) from has_tag_string_tags where has_tag_string_tags.model_id = public_bodies.id
+ conditions = [locale_condition + ' AND (select count(*) from has_tag_string_tags where has_tag_string_tags.model_id = public_bodies.id
and has_tag_string_tags.model = \'PublicBody\'
- and has_tag_string_tags.name = ? and has_tag_string_tags.value = ?) > 0', name, value]
+ and has_tag_string_tags.name = ? and has_tag_string_tags.value = ?) > 0', @locale, name, value]
else
- conditions = ['(select count(*) from has_tag_string_tags where has_tag_string_tags.model_id = public_bodies.id
+ conditions = [locale_condition + ' AND (select count(*) from has_tag_string_tags where has_tag_string_tags.model_id = public_bodies.id
and has_tag_string_tags.model = \'PublicBody\'
- and has_tag_string_tags.name = ?) > 0', @tag]
+ and has_tag_string_tags.name = ?) > 0', @locale, @tag]
end
- @public_bodies = PublicBody.paginate(
- :order => "public_bodies.name", :page => params[:page], :per_page => 1000, # fit all councils on one page
- :conditions => conditions
- )
if @tag.size == 1
@description = "beginning with '" + @tag + "'"
else
@@ -105,6 +110,14 @@ class PublicBodyController < ApplicationController
@description = @tag
end
end
+ PublicBody.with_locale(@locale) do
+ @public_bodies = PublicBody.paginate(
+ :order => "public_body_translations.name", :page => params[:page], :per_page => 1000, # fit all councils on one page
+ :conditions => conditions,
+ :joins => :translations
+ )
+ render :template => "public_body/list"
+ end
end
# Used so URLs like /local/islington work, for use e.g. writing to a local paper.
diff --git a/app/controllers/request_controller.rb b/app/controllers/request_controller.rb
index 36fbc2b11..024f87dd5 100644
--- a/app/controllers/request_controller.rb
+++ b/app/controllers/request_controller.rb
@@ -11,68 +11,72 @@ class RequestController < ApplicationController
protect_from_forgery :only => [ :new, :show_response, :describe_state, :upload_response ] # See ActionController::RequestForgeryProtection for details
def show
- # Look up by old style numeric identifiers
- if params[:url_title].match(/^[0-9]+$/)
- @info_request = InfoRequest.find(params[:url_title].to_i)
- redirect_to request_url(@info_request)
- return
- end
+ @locale = self.locale_from_params()
+ PublicBody.with_locale(@locale) do
- # Look up by new style text names
- @info_request = InfoRequest.find_by_url_title(params[:url_title])
- if @info_request.nil?
- raise "Request not found"
- end
- set_last_request(@info_request)
+ # Look up by old style numeric identifiers
+ if params[:url_title].match(/^[0-9]+$/)
+ @info_request = InfoRequest.find(params[:url_title].to_i)
+ redirect_to request_url(@info_request)
+ return
+ end
- # Test for whole request being hidden
- if !@info_request.user_can_view?(authenticated_user)
- render :template => 'request/hidden', :status => 410 # gone
- return
- end
-
- # Other parameters
- @info_request_events = @info_request.info_request_events
- @status = @info_request.calculate_status
- @collapse_quotes = params[:unfold] ? false : true
- @update_status = params[:update_status] ? true : false
- @is_owning_user = @info_request.is_owning_user?(authenticated_user)
- @old_unclassified = @info_request.is_old_unclassified? && !authenticated_user.nil?
-
- if @update_status
- return if !@is_owning_user && !authenticated_as_user?(@info_request.user,
- :web => "To update the status of this FOI request",
- :email => "Then you can update the status of your request to " + @info_request.public_body.name + ".",
- :email_subject => "Update the status of your request to " + @info_request.public_body.name
- )
- end
-
- @last_info_request_event_id = @info_request.last_event_id_needing_description
- @new_responses_count = @info_request.events_needing_description.select {|i| i.event_type == 'response'}.size
-
- # Sidebar stuff
- # ... requests that have similar imporant terms
- behavior_cache :tag => ['similar', @info_request.id] do
- begin
- limit = 10
- @xapian_similar = ::ActsAsXapian::Similar.new([InfoRequestEvent], @info_request.info_request_events,
- :limit => limit, :collapse_by_prefix => 'request_collapse')
- @xapian_similar_more = (@xapian_similar.matches_estimated > limit)
- rescue
- @xapian_similar = nil
+ # Look up by new style text names
+ @info_request = InfoRequest.find_by_url_title(params[:url_title])
+ if @info_request.nil?
+ raise "Request not found"
end
- end
-
- # Track corresponding to this page
- @track_thing = TrackThing.create_track_for_request(@info_request)
- @feed_autodetect = [ { :url => do_track_url(@track_thing, 'feed'), :title => @track_thing.params[:title_in_rss], :has_json => true } ]
+ set_last_request(@info_request)
- # For send followup link at bottom
- @last_response = @info_request.get_last_response
+ # Test for whole request being hidden
+ if !@info_request.user_can_view?(authenticated_user)
+ render :template => 'request/hidden', :status => 410 # gone
+ return
+ end
+
+ # Other parameters
+ @info_request_events = @info_request.info_request_events
+ @status = @info_request.calculate_status
+ @collapse_quotes = params[:unfold] ? false : true
+ @update_status = params[:update_status] ? true : false
+ @is_owning_user = @info_request.is_owning_user?(authenticated_user)
+ @old_unclassified = @info_request.is_old_unclassified? && !authenticated_user.nil?
+
+ if @update_status
+ return if !@is_owning_user && !authenticated_as_user?(@info_request.user,
+ :web => "To update the status of this FOI request",
+ :email => "Then you can update the status of your request to " + @info_request.public_body.name + ".",
+ :email_subject => "Update the status of your request to " + @info_request.public_body.name
+ )
+ end
+
+ @last_info_request_event_id = @info_request.last_event_id_needing_description
+ @new_responses_count = @info_request.events_needing_description.select {|i| i.event_type == 'response'}.size
+1
+ # Sidebar stuff
+ # ... requests that have similar imporant terms
+ behavior_cache :tag => ['similar', @info_request.id] do
+ begin
+ limit = 10
+ @xapian_similar = ::ActsAsXapian::Similar.new([InfoRequestEvent], @info_request.info_request_events,
+ :limit => limit, :collapse_by_prefix => 'request_collapse')
+ @xapian_similar_more = (@xapian_similar.matches_estimated > limit)
+ rescue
+ @xapian_similar = nil
+ end
+ end
+
+ # Track corresponding to this page
+ @track_thing = TrackThing.create_track_for_request(@info_request)
+ @feed_autodetect = [ { :url => do_track_url(@track_thing, 'feed'), :title => @track_thing.params[:title_in_rss], :has_json => true } ]
- respond_to do |format|
- format.html { @has_json = true }
- format.json { render :json => @info_request.json_for_api(true) }
+ # For send followup link at bottom
+ @last_response = @info_request.get_last_response
+
+ respond_to do |format|
+ format.html { @has_json = true; render :template => 'request/show'}
+ format.json { render :json => @info_request.json_for_api(true) }
+ end
end
end
@@ -666,28 +670,30 @@ class RequestController < ApplicationController
# FOI officers can upload a response
def upload_response
- @info_request = InfoRequest.find_by_url_title(params[:url_title])
-
- @reason_params = {
- :web => "To upload a response, you must be logged in using an email address from " + CGI.escapeHTML(@info_request.public_body.name),
- :email => "Then you can upload an FOI response. ",
- :email_subject => "Confirm your account on WhatDoTheyKnow.com"
- }
- if !authenticated?(@reason_params)
- return
- end
+ @locale = self.locale_from_params()
+ PublicBody.with_locale(@locale) do
+ @info_request = InfoRequest.find_by_url_title(params[:url_title])
+
+ @reason_params = {
+ :web => "To upload a response, you must be logged in using an email address from " + CGI.escapeHTML(@info_request.public_body.name),
+ :email => "Then you can upload an FOI response. ",
+ :email_subject => "Confirm your account on WhatDoTheyKnow.com"
+ }
+ if !authenticated?(@reason_params)
+ return
+ end
- if !@info_request.public_body.is_foi_officer?(@user)
- domain_required = @info_request.public_body.foi_officer_domain_required
- if domain_required.nil?
- render :template => 'user/wrong_user_unknown_email'
+ if !@info_request.public_body.is_foi_officer?(@user)
+ domain_required = @info_request.public_body.foi_officer_domain_required
+ if domain_required.nil?
+ render :template => 'user/wrong_user_unknown_email'
+ return
+ end
+ @reason_params[:user_name] = "an email @" + domain_required
+ render :template => 'user/wrong_user'
return
end
- @reason_params[:user_name] = "an email @" + domain_required
- render :template => 'user/wrong_user'
- return
end
-
if params[:submitted_upload_response]
file_name = nil
file_content = nil
diff --git a/app/helpers/link_to_helper.rb b/app/helpers/link_to_helper.rb
index 93151ecfe..85913b12e 100644
--- a/app/helpers/link_to_helper.rb
+++ b/app/helpers/link_to_helper.rb
@@ -197,6 +197,12 @@ module LinkToHelper
return date.strftime("%Y").strip
end
+ #I18n locale switcher
+
+ def locale_switcher(locale, params)
+ params['locale'] = locale
+ return url_for(params)
+ end
end
diff --git a/app/models/public_body.rb b/app/models/public_body.rb
index 446ac2334..1a366db75 100644
--- a/app/models/public_body.rb
+++ b/app/models/public_body.rb
@@ -33,8 +33,8 @@ require 'set'
class PublicBody < ActiveRecord::Base
strip_attributes!
- validates_presence_of :name, :message => N_("Name can't be blank")
- validates_presence_of :url_name, :message => N_("URL name can't be blank")
+ validates_presence_of :name, :message => N_("can't be blank")
+ validates_presence_of :url_name, :message => N_("can't be blank")
validates_uniqueness_of :short_name, :message => N_("Short name is already taken"), :if => Proc.new { |pb| pb.short_name != "" }
validates_uniqueness_of :name, :message => N_("Name is already taken")
@@ -44,6 +44,9 @@ class PublicBody < ActiveRecord::Base
has_tag_string
+ translates :name, :short_name, :request_email, :url_name, :notes
+ translates :first_letter, :publication_scheme
+
# like find_by_url_name but also search historic url_name if none found
def self.find_by_url_name_with_historic(name)
found = PublicBody.find_all_by_url_name(name)
@@ -67,7 +70,8 @@ class PublicBody < ActiveRecord::Base
# Set the first letter, which is used for faster queries
before_save(:set_first_letter)
def set_first_letter
- self.first_letter = self.name[0,1].upcase
+ # we use a regex to ensure it works with utf-8/multi-byte
+ self.first_letter = self.name.scan(/./mu)[0].upcase
end
def validate
@@ -166,16 +170,21 @@ class PublicBody < ActiveRecord::Base
# When name or short name is changed, also change the url name
def short_name=(short_name)
- write_attribute(:short_name, short_name)
+
+ globalize.write(self.class.locale || I18n.locale, :short_name, short_name)
+ self[:short_name] = short_name
self.update_url_name
end
+
def name=(name)
- write_attribute(:name, name)
+ globalize.write(self.class.locale || I18n.locale, :name, name)
+ self[:name] = name
self.update_url_name
end
+
def update_url_name
url_name = MySociety::Format.simplify_url_part(self.short_or_long_name, 'body')
- write_attribute(:url_name, url_name)
+ self.url_name = url_name
end
# Return the short name if present, or else long name
def short_or_long_name
diff --git a/app/views/admin_public_body/_locale_selector.rhtml b/app/views/admin_public_body/_locale_selector.rhtml
new file mode 100644
index 000000000..5ef79f2df
--- /dev/null
+++ b/app/views/admin_public_body/_locale_selector.rhtml
@@ -0,0 +1,10 @@
+<div id="locale_switcher">
+<%= _('Edit language version:') %>
+<% for possible_locale in @locales %>
+ <% if possible_locale == @locale %>
+ <%= possible_locale %>
+ <% else %>
+ <a href="?show_locale=<%=possible_locale%>"><%= possible_locale %></a>
+ <% end %>
+<% end %>
+</div>
diff --git a/app/views/comment/_comment_form.rhtml b/app/views/comment/_comment_form.rhtml
index aae0c4638..509cc05bb 100644
--- a/app/views/comment/_comment_form.rhtml
+++ b/app/views/comment/_comment_form.rhtml
@@ -1,12 +1,11 @@
<% form_for(:comment, @comment, :url => { :controller => "comment", :action => "new", :type => "request" }, :html => { :id => 'comment_form' } ) do |f| %>
<p>
<%= f.text_area :body, :rows => 10, :cols => 55 %>
- <br><script type="text/javascript">document.write('<input name="doSpell" type="button" value="Check spelling" onClick="openSpellChecker(document.getElementById(\'comment_form\').body);"/> (optional)')</script>
</p>
<% if !TrackThing.find_by_existing_track(@user, track_thing) && (!@user || @info_request.user != @user) %>
<p>
- <%= check_box_tag 'subscribe_to_request', "1", params[:subscribe_to_request] ? true : false %> <label for="subscribe_to_request">Email me future updates to this request</label>
+ <%= check_box_tag 'subscribe_to_request', "1", params[:subscribe_to_request] ? true : false %> <label for="subscribe_to_request"><%= _('Email me future updates to this request') %></label>
</p>
<% end %>
diff --git a/app/views/general/_before_body_end.rhtml b/app/views/general/_before_body_end.rhtml
new file mode 100644
index 000000000..8d7ebeeb5
--- /dev/null
+++ b/app/views/general/_before_body_end.rhtml
@@ -0,0 +1,16 @@
+<% if MySociety::Config.get("DOMAIN", '127.0.0.1:3000') == 'www.whatdotheyknow.com' %>
+<!-- Piwik -->
+<script type="text/javascript">
+var pkBaseURL = (("https:" == document.location.protocol) ? "https://piwik.mysociety.org/" : "http://piwik.mysociety.org/");
+document.write(unescape("%3Cscript src='" + pkBaseURL + "piwik.js' type='text/javascript'%3E%3C/script%3E"));
+</script><script type="text/javascript">
+try {
+var piwikTracker = Piwik.getTracker(pkBaseURL + "piwik.php", 4);
+piwikTracker.trackPageView();
+piwikTracker.enableLinkTracking();
+} catch( err ) {}
+</script><noscript><p><img src="http://piwik.mysociety.org/piwik.php?idsite=4" style="border:0" alt=""/></p></noscript>
+<!-- End Piwik Tag -->
+<% end %>
+
+
diff --git a/app/views/general/_credits.rhtml b/app/views/general/_credits.rhtml
new file mode 100644
index 000000000..a2f7a9cb2
--- /dev/null
+++ b/app/views/general/_credits.rhtml
@@ -0,0 +1,5 @@
+|
+ Built by <a href="http://www.mysociety.org/">mySociety</a> ...
+ <a href="/help/credits#helpus">and you</a>
+ |
+ Dedicated to <a href="http://mk.ucant.org/archives/000129.html">Chris Lightfoot</a>
diff --git a/app/views/general/_locale_switcher.rhtml b/app/views/general/_locale_switcher.rhtml
new file mode 100644
index 000000000..4f01a4d13
--- /dev/null
+++ b/app/views/general/_locale_switcher.rhtml
@@ -0,0 +1,12 @@
+ <% if FastGettext.default_available_locales.length > 1 %>
+ <div id="user_locale_switcher">
+ Language:
+ <% for possible_locale in FastGettext.default_available_locales %>
+ <% if possible_locale == I18n.locale.to_s %>
+ <%= possible_locale %>
+ <% else %>
+ <a href="<%= locale_switcher(possible_locale, params) %>"><%= possible_locale %></a>
+ <% end %>
+ <% end %>
+ </div>
+ <% end %>
diff --git a/app/views/general/_orglink.rhtml b/app/views/general/_orglink.rhtml
new file mode 100644
index 000000000..551b18646
--- /dev/null
+++ b/app/views/general/_orglink.rhtml
@@ -0,0 +1,2 @@
+<%-# Put the link to your organisation here, or leave blank -%>
+<a href="http://www.mysociety.org">a site by mysociety.org</a>
diff --git a/app/views/general/custom_css.rhtml b/app/views/general/custom_css.rhtml
new file mode 100644
index 000000000..0def82ed0
--- /dev/null
+++ b/app/views/general/custom_css.rhtml
@@ -0,0 +1 @@
+// this should be overridden in a local "theme" plugin
diff --git a/app/views/general/frontpage.rhtml b/app/views/general/frontpage.rhtml
index 51bf55e34..276ac70a7 100644
--- a/app/views/general/frontpage.rhtml
+++ b/app/views/general/frontpage.rhtml
@@ -1,25 +1,28 @@
<% view_cache :ttl => 5.minutes do %>
<div id="frontpage_search">
- <h1>Make or explore Freedom of Information requests</h1>
+ <h1><%= _('Make or explore Freedom of Information requests') %></h1>
<% form_tag({:action => "search_redirect"}, {:id => "search_form"}) do %>
<p>
- First, type in the <strong>name of the UK public authority</strong> you'd
+ <%= _('First, type in the <strong>name of the UK public authority</strong> you\'d
<br>like information from. <strong>By law, they have to respond</strong>
- (<a href="/help/about">why?</a>).
+ (<a href="%s">why?</a>).') % help_about_url %>
<br>
<br>
<%= text_field_tag 'query', params[:query], { :size => 30 } %>
<%= hidden_field_tag 'bodies', 1 %>
- <%= submit_tag "Search" %>
+ <%= submit_tag _('Search') %>
<br>
- e.g. <%=link_to 'Liverpool', search_url('liverpool', 'bodies')%>, <%=link_to 'MRSA', search_url('mrsa', 'bodies')%>, <%=link_to 'Treasury', search_url('treasury', 'bodies')%>
+ <%= _('e.g.') %>
+ <% @popular_bodies.each_with_index do |body, i| %>
+ <%=link_to body.name, search_url(body.name, 'bodies')%><% if i < 2 %>, <% else %>. <% break %><% end %>
+ <% end %>
<br>
<br>
- OR, <strong>search</strong> for information others have requested using WhatDoTheyKnow.com
+ <%= _('OR, <strong>search</strong> for information others have requested using {{site_name}}', :site_name => site_name) %>
</p>
<% end %>
</div>
@@ -27,15 +30,15 @@
<div id="frontpage_examples">
<% if @popular_bodies.size > 0 %>
<div id="examples_0">
- <ul>
+ <ul>
<% for popular_body in @popular_bodies %>
<li><%=public_body_link(popular_body)%>
- <%=h popular_body.info_requests.count%> requests
+ <%= n_('%d request', '%d requests', popular_body.info_requests.count) % popular_body.info_requests.count %>
</li>
<% end%>
</ul>
<p><strong>
- <%= link_to "More authorities...", list_public_bodies_default %>
+ <%= link_to _('More authorities...'), list_public_bodies_default %>
</strong></p>
</div>
<% end %>
@@ -45,11 +48,11 @@
<ul>
<% for event in @successful_request_events %>
<li><%=link_to h(excerpt(event.info_request.title, "", 30)), request_url(event.info_request)%>
- <%=h time_ago_in_words(event.described_at).gsub("about ", "") %> ago
+ <%= _('{{length_of_time}} ago', :length_of_time => time_ago_in_words(event.described_at)) %>
</li>
<% end %>
</ul>
- <p><strong><a href="/list/successful">More successful requests...</a></strong></p>
+ <p><strong><%=link_to _('More successful requests...'), request_list_successful_url %></strong></p>
</div>
<% end %>
</div>
diff --git a/app/views/general/search.rhtml b/app/views/general/search.rhtml
index 29ce73d5c..876d54270 100644
--- a/app/views/general/search.rhtml
+++ b/app/views/general/search.rhtml
@@ -1,21 +1,20 @@
<% @show_tips = @xapian_requests.nil? || (@total_hits == 0) %>
<% if @query.nil? %>
- <% @title = "Search Freedom of Information requests, public authorities and users" %>
+ <% @title = _("Search Freedom of Information requests, public authorities and users") %>
<h1><%=@title%></h1>
<% elsif @total_hits == 0 %>
- <% @title = "Nothing found for '" + h(@query) + "'" %>
+ <%= _("Nothing found for '{{search_terms}}'", :search_terms => h(@query)) %>
<% else %>
- <% @title = "Results page " + @page.to_s %>
+ <% @title = _("Results page {{page_number}}", :page_number => @page.to_s) %>
<% end%>
<% @include_request_link_in_authority_listing = true %>
<% if @bodies && (@page == 1 || @xapian_bodies.results.size > 0) %>
<div id="stepwise_instructions">
- <p><strong>Next, select the public authority you'd like to make the request from.</strong></p>
- <p>Can't find it? <%= link_to "Browse all", list_public_bodies_default %> or
- <a href="/help/requesting#missing_body">ask us to add it</a>.</p>
+ <p><strong><%=_("Next, select the public authority you'd like to make the request from.") %></strong></p>
+ <p><% _('Can\'t find it? <a href="%s">Browse all</a> or <a href="%s">ask us to add it</a>.') % [list_public_bodies_default, "#{help_requesting_path}#missing_body"] %></p>
<p>
</div>
<% end %>
@@ -27,30 +26,31 @@
<% if @bodies %>
<%= hidden_field_tag 'bodies', 1 %>
<% end %>
- <%= submit_tag "Search" %>
+ <%= submit_tag _("Search") %>
<% if not @show_tips %>
- &nbsp;&nbsp;<a href="/search">Advanced search tips</a>
+ &nbsp;&nbsp;<%= link_to _('Advanced search tips'), search_redirect_path %>
<% end %>
</p>
<% end %>
<% if !@query.nil? %>
<p>
- <%=link_to_unless @sortby == 'relevant', "Show most relevant results first", search_url(@query, 'relevant') %>
+ <%=link_to_unless @sortby == 'relevant', _("Show most relevant results first"), search_url(@query, 'relevant') %>
|
- <%=link_to_unless @sortby == 'newest', "Newest results first", search_url(@query, 'newest') %>
+ <%=link_to_unless @sortby == 'newest', _("Newest results first"), search_url(@query, 'newest') %>
<% if @sortby == 'described' %>
- | Recently described results first
+ | <%= _('Recently described results first') %>
<% end %>
</p>
<% end %>
<% if @bodies && !@query.nil? && @xapian_bodies.results.size == 0 && @page == 1 %>
- <h1>No public authorities found</h1>
+ <h1><%= _('No public authorities found') %></h1>
<% if @spelling_correction %>
- <p id="did_you_mean">Did you mean: <%= search_link(@spelling_correction, @postfix) %></p>
+ <p id="did_you_mean"><%= _('Did you mean: {{correction}}',
+ :correction => search_link(@spelling_correction, @postfix)) %></p>
<% end %>
- <p><%=link_to "Browse all", list_public_bodies_default %> or <a href="/help/requesting#missing_body">ask us to add one</a>.</p>
+ <p><%= _('<a href="%s">Browse all</a> or <a href="%s">ask us to add one</a>.') % [list_public_bodies_default, help_requesting_path + '#missing_body'] %></p>
<% end %>
<% if @total_hits == 0 %>
@@ -59,7 +59,7 @@
<% if not @query.nil? %>
<% if @spelling_correction %>
- <p id="did_you_mean">Did you mean: <%= search_link(@spelling_correction, @postfix) %></p>
+ <p id="did_you_mean"><%= _('Did you mean: {{correction}}', :correction => search_link(@spelling_correction, @postfix)) %></p>
<% end %>
<% if (!@bodies || @xapian_requests.results.size == 0) && @track_thing && (@xapian_bodies.results.size > 0 || @xapian_users.results.size > 0 || @total_hits == 0)%>
@@ -67,7 +67,7 @@
<% end %>
<% if @xapian_bodies.results.size > 0 %>
- <h1><%= "Public authorities " + ((@page-1)*@bodies_per_page+1).to_s + "-" + [@page*@bodies_per_page, @xapian_bodies.matches_estimated].min.to_s + " of " + @xapian_bodies.matches_estimated.to_s + " for '" + h(@query) + "'" %></h1>
+ <h1><%= _('Public authorities {{start_count}} to {{end_count}} of {{total_count}} for {{user_search_query}}', :start_count => ((@page-1)*@bodies_per_page+1).to_s, :end_count => [@page*@bodies_per_page, @xapian_bodies.matches_estimated].min.to_s, :total_count => @xapian_bodies.matches_estimated.to_s, :user_search_query => h(@query)) %></h1>
<% for result in @xapian_bodies.results %>
<%= render :partial => 'public_body/body_listing_single', :locals => { :public_body => result[:model] } %>
@@ -77,7 +77,7 @@
<% end %>
<% if @xapian_users.results.size > 0 %>
- <h1><%= "People " + ((@page-1)*@users_per_page+1).to_s + "-" + [@page*@users_per_page, @xapian_users.matches_estimated].min.to_s + " of " + @xapian_users.matches_estimated.to_s + " for '" + h(@query) + "'" %></h1>
+ <h1><%= _("People {{start_count}} to {{end_count}} of {{total_count}} for {{user_search_query}}", :start_count => ((@page-1)*@users_per_page+1).to_s, :end_count => [@page*@users_per_page, @xapian_users.matches_estimated].min.to_s, :total_count => @xapian_users.matches_estimated.to_s, :user_search_query => h(@query)) %></h1>
<% for result in @xapian_users.results %>
<%= render :partial => 'user/user_listing_single', :locals => { :display_user => result[:model] } %>
@@ -87,7 +87,7 @@
<% end %>
<% if @xapian_requests.results.size > 0 %>
- <h1><%= "FOI requests " + ((@page-1)*@requests_per_page+1).to_s + "-" + [@page*@requests_per_page, @xapian_requests.matches_estimated].min.to_s + " of " + @xapian_requests.matches_estimated.to_s + " for '" + h(@query) + "'" %></h1>
+ <h1><%= _("FOI requests {{start_count}} to {{end_count}} of {{total_count}} for {{user_search_query}}", :start_count => ((@page-1)*@requests_per_page+1).to_s, :end_count => [@page*@requests_per_page, @xapian_requests.matches_estimated].min.to_s, :total_count => @xapian_requests.matches_estimated.to_s, :user_search_query => h(@query)) %></h1>
<% if @track_thing %>
<%= render :partial => 'track/tracking_links', :locals => { :track_thing => @track_thing, :own_request => false, :location => 'main' } %>
@@ -106,27 +106,27 @@
<% end %>
<% if @show_tips %>
- <h2>Advanced search tips</h2>
+ <h2><%= _("Advanced search tips")%></h2>
<ul>
- <li>Enter words that you want to find separated by spaces, e.g. <strong><%=search_link('climbing lane')%></strong></li>
- <li>Use OR (in capital letters) where you don't mind which word, e.g. <strong><%=search_link('commons OR lords')%></strong>
- <li>Use quotes when you want to find an exact phrase, e.g. <strong><%=search_link('"Liverpool City Council"')%></strong>
- <li><strong>status:</strong> to select based on the status or historical status of the request, see the <a href="#statuses">table of statuses</a> below.
- <li><strong>variety:</strong> to select type of thing to search for, see the <a href="#varieties">table of varieties</a> below.
- <li><strong><%=search_link('requested_from:home_office')%></strong> to search requests from the <%= link_to "Home Office", show_public_body_url(:url_name => 'home_office') %>, typing the name as in the URL.
- <li><strong><%=search_link('requested_by:julian_todd')%></strong> to search requests made by <%= link_to "Julian Todd", show_user_url(:url_name => 'julian_todd') %>, typing the name as in the URL.
- <li><strong><%=search_link('commented_by:tony_bowden')%></strong> to search annotations made by <%= link_to "Tony Bowden", show_user_url(:url_name => 'tony_bowden') %>, typing the name as in the URL.
- <li><strong>request:</strong> to restrict to a specific request, typing the title as in the URL.
- <li><strong><%=search_link('filetype:pdf')%></strong> to find all responses with PDF attachments. Or try these: <%= IncomingMessage.get_all_file_extentions%>.
- <li>Type <strong><%=search_link('01/01/2008..14/01/2008')%></strong> to only show things that happened in the first two weeks of January.
- <li><strong><%=search_link('tag:charity')%></strong> to find all public bodies or requests with a given tag. You can include multiple tags,
- and tag values, e.g. <%=search_link('tag:openlylocal AND tag:financial_transaction:335633')%>. Note that by default any of the tags
- can be present, you have to put AND explicitly if you only want results them all present.
- <li>Read about <a href="http://www.xapian.org/docs/queryparser.html">advanced search operators</a>, such as proximity and wildcards.
+ <li><%= _("Enter words that you want to find separated by spaces, e.g. <strong>climbing lane</strong>") %></li>
+ <li><%= _('Use OR (in capital letters) where you don\'t mind which word, e.g. <strong><code>commons OR lords</code></strong>') %>
+ <li><%= _('Use quotes when you want to find an exact phrase, e.g. <strong><code>"Liverpool City Council"</code></strong>') %></li>
+ <li><%= _('<strong><code>status:</code></strong> to select based on the status or historical status of the request, see the <a href="%s">table of statuses</a> below.') % "#statuses" %></li>
+ <li><%= _('<strong><code>variety:</code></strong> to select type of thing to search for, see the <a href="%s">table of varieties</a> below.') % "#varieties" %></li>
+ <li><%= _('<strong><code>requested_from:home_office</code></strong> to search requests from the Home Office, typing the name as in the URL.')%></li>
+ <li><%= _('<strong><code>requested_by:julian_todd</code></strong> to search requests made by Julian Todd, typing the name as in the URL.') %></li>
+ <li><%= _('<strong><code>commented_by:tony_bowden</code></strong> to search annotations made by Tony Bowden, typing the name as in the URL.')%></li>
+ <li><%= _('<strong><code>request:</code></strong> to restrict to a specific request, typing the title as in the URL.')%>
+ <li><%= _('<strong><code>filetype:pdf</code></strong> to find all responses with PDF attachments. Or try these: <code>{{list_of_file_extensions}}</code>', :list_of_file_extensions => IncomingMessage.get_all_file_extentions)%></li>
+ <li><%= _('Type <strong><code>01/01/2008..14/01/2008</code></strong> to only show things that happened in the first two weeks of January.')%></li>
+ <li><%= _('<strong><code>tag:charity</code></strong> to find all public bodies or requests with a given tag. You can include multiple tags,
+ and tag values, e.g. <code>tag:openlylocal AND tag:financial_transaction:335633</code>. Note that by default any of the tags
+ can be present, you have to put <code>AND</code> explicitly if you only want results them all present.')%></li>
+ <li><%= _('Read about <a href="%s">advanced search operators</a>, such as proximity and wildcards.') % "http://www.xapian.org/docs/queryparser.html" %></li>
</ul>
- <h2 id="statuses">Table of statuses</h2>
-
+ <h2 id="statuses"><%= _('Table of statuses') %></h2>
+ <h3>XXX this should be automatically generated</h3>
<table class="status_table">
<tr><td><strong><%=search_link('status:waiting_response')%></strong></td><td> Waiting for the public authority to reply </td></tr>
<tr><td><strong><%=search_link('status:not_held')%></strong></td><td> The public authority does not have the information requested </td></tr>
diff --git a/app/views/help/about.es.rhtml b/app/views/help/about.es.rhtml
new file mode 100644
index 000000000..721a582aa
--- /dev/null
+++ b/app/views/help/about.es.rhtml
@@ -0,0 +1,10 @@
+<% @title = "Sobre" %>
+
+<%= render :partial => 'sidebar' %>
+
+<h1>¡Bonjiorno amis!</h1>
+
+<p>Esta sito tu aidare a faire los requesti a la governmenti Seblano</p>
+
+<div id="hash_link_padding"></div>
+
diff --git a/app/views/layouts/admin.rhtml b/app/views/layouts/admin.rhtml
index 426a01cf5..a209715e1 100644
--- a/app/views/layouts/admin.rhtml
+++ b/app/views/layouts/admin.rhtml
@@ -9,17 +9,18 @@
<p>
<strong><%= link_to 'WhatDoTheyKnow', main_url('/') %> admin:</strong>
- <%= link_to 'Summary', admin_url('') %>
- | <%= link_to 'Timeline', admin_url('timeline') %>
- | <%= link_to 'Stats', admin_url('stats') %>
- | <%= link_to 'Debug', admin_url('debug') %>
+ <%= link_to 'Summary', admin_general_index_path %>
+ | <%= link_to 'Timeline', admin_timeline_path %>
+ | <%= link_to 'Stats', admin_stats_path %>
+ | <%= link_to 'Debug', admin_debug_path %>
| <%= link_to 'Wiki', "https://secure.mysociety.org/intranet/ProductionSites/WhatDoTheyKnow/WebHome" %>
<strong>View:</strong>
- <%= link_to 'Authorities', admin_url('body/list') %>
- | <%= link_to 'Requests', admin_url('request/list') %>
- | <%= link_to 'Users', admin_url('user/list') %>
- | <%= link_to 'Tracks', admin_url('track/list') %>
+ <%= link_to 'Authorities', admin_body_list_path %>
+ | <%= link_to 'Requests', admin_request_list_path %>
+ | <%= link_to 'Users', admin_user_list_path %>
+ | <%= link_to 'Tracks', admin_track_list_path %>
</p>
+ <%= render :partial => 'general/locale_switcher' %>
<% if flash[:error] %>
<p id="error"><%= flash[:error] %></p>
diff --git a/app/views/layouts/default.rhtml b/app/views/layouts/default.rhtml
index 606203f06..de02a87b2 100644
--- a/app/views/layouts/default.rhtml
+++ b/app/views/layouts/default.rhtml
@@ -1,8 +1,6 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
-<html lang="en-gb">
+<html lang="<%= I18n.locale %>">
<head>
- <script type="text/javascript" src="/jslib/spell/spellChecker.js"></script>
-
<% if @profile_photo_javascript %>
<script type="text/javascript" src="/javascripts/jquery.js"></script>
<script type="text/javascript" src="/javascripts/jquery.Jcrop.js"></script>
@@ -12,9 +10,9 @@
<title>
<% if @title %>
- <%=@title%> - WhatDoTheyKnow
+ <%=@title%> - <%= site_name %>
<% else %>
- WhatDoTheyKnow - make and browse Freedom of Information (FOI) requests
+ <%= site_name %> - <%= _('Make and browse Freedom of Information (FOI) requests') %>
<% end %>
</title>
@@ -23,7 +21,11 @@
<%= stylesheet_link_tag 'main', :title => "Main", :rel => "stylesheet" %>
<!--[if LT IE 7]>
<style type="text/css">@import url("/stylesheets/ie6.css");</style>
- <![endif]-->
+ <![endif]-->
+ <!--[if LT IE 7]>
+ <style type="text/css">@import url("/stylesheets/ie6-custom.css");</style>
+ <![endif]-->
+ <%= stylesheet_link_tag 'custom', :title => "Main", :rel => "stylesheet" %>
<% if @feed_autodetect %>
<% for feed in @feed_autodetect %>
@@ -68,33 +70,7 @@
=begin
<div id="everypage" class="jshide">
<p style="float:right"><a href="#top" onclick="$.cookie('seen_foi2', 1, { expires: 7, path: '/' }); $('#everypage').hide('slow'); return false;">Close</a></p>
- <h2>Blimey. It looks like the Internets won &ndash; <small>a message from WhatDoTheyKnow</small></h2>
- <p>Sorry to interrupt, but we thought you&rsquo;d like to know that <strong>you won</strong>!
- <p>On the 16th of May 2008 the High Court ruled that MPs&rsquo; expenses must be published under the Freedom of Information Act.
-
- <p>Tomorrow, MPs <strong>were</strong> going to vote on changing the law to keep their expenses secret after all,
- just before publication was due and after spending nearly a million of your pounds and seven months
- compiling the data.
-
- <p>However, after a <strong>tremendous response</strong> from you, with over 7,000 members
- on our Facebook group, 4,000 messages sent to MPs, help from
-
- <a href="http://twitter.com/stephenfry/statuses/1136046150">Stephen Fry</a>, and a helpful
- <a href="http://www.publications.parliament.uk/pa/ld200809/ldselect/ldmerit/16/1603.htm">4th Report of the House of Lords
- Merits of Statutory Instruments Committee</a>,
- it appears that the vote has been cancelled &ndash;
- <a href="http://www.guardian.co.uk/politics/2009/jan/21/mps-expenses">Guardian</a>,
- <a href="http://www.timesonline.co.uk/tol/news/politics/article5559704.ece">Times</a>,
- <a href="http://news.bbc.co.uk/1/hi/uk_politics/7842402.stm">BBC</a>.
-
- <p>As President Obama said in his inauguration speech: <em>&ldquo;And
- those of us who manage the public&rsquo;s dollars will be held to account &ndash; to
- spend wisely, reform bad habits, and do our business in the light of day &ndash;
-
- because only then can we restore the vital trust between a people and their
- government.&rdquo;</em></p>
-
- <p>Read <a href="http://www.mysociety.org/2009/01/21/blimey-it-looks-like-the-internets-won/">our victory blog post</a>. :-)
+ [ message goes here ]
<p style="text-align: right"><a href="#top" onclick="$.cookie('seen_foi2', 1, { expires: 7, path: '/' }); $('#everypage').hide('slow'); return false;">Close</a></p>
</div>
=end
@@ -104,41 +80,45 @@
</div>
<div id="header">
<h1>
- <a href="/">WhatDoTheyKnow?</a>
+ <%= link_to site_name, frontpage_url %>
</h1>
<div id="tagline">
- Make and explore Freedom of Information requests
+ <%= _('Make and explore Freedom of Information requests') %>
</div>
+ <%= render :partial => 'general/locale_switcher' %>
+
</div>
- <div id="mysoclogo">
- <a href="http://www.mysociety.org">a site by mysociety.org</a>
+ <div id="orglogo">
+ <%= render :partial => 'general/orglink' %>
</div>
+
<div id="navigation_search">
<% form_tag({:controller => "general", :action => "search_redirect"}, {:id => "navigation_search_form"}) do %>
<p>
<%= text_field_tag 'query', params[:query], { :size => 40, :id => "navigation_search_query" } %>
- <%= submit_tag "Search" %>
+ <%= submit_tag _("Search") %>
</p>
<% end %>
</div>
<div id="topnav">
<ul id="navigation">
- <li><%= link_to "Make request", frontpage_url %></li>
- <li><%= link_to "View requests", request_list_url(:view => 'successful') %></li>
- <li><%= link_to "View authorities", list_public_bodies_default %></li>
+ <li><%= link_to _("Make request"), frontpage_url %></li>
+ <li><%= link_to _("View requests"), request_list_successful_url %></li>
+ <li><%= link_to _("View authorities"), list_public_bodies_default %></li>
<% if @user %>
- <li><%=link_to "My requests", user_url(@user) %></li>
+ <li><%=link_to _("My requests"), user_url(@user) %></li>
<% end %>
- <li><%= link_to "Read blog", blog_url %></li>
- <li><%= link_to "Help", about_url %></li>
+ <li><%= link_to _("Read blog"), blog_url %></li>
+ <li><%= link_to _("Help"), help_about_url %></li>
</ul>
<% if not (controller.action_name == 'signin' or controller.action_name == 'signup') %>
<div id="logged_in_bar">
<% if @user %>
- Hello, <%=h(@user.name)%>!
- (<%= link_to "Sign out", signout_url(:r => request.request_uri) %>)
+ <%= _('Hello, {{username}}!', :username => h(@user.name))%>
+ (<%= link_to _("Sign out"), signout_url(:r => request.request_uri) %>)
<% else %>
- Hello! (<%= link_to "Sign in or sign up", signin_url(:r => request.request_uri) %>)
+ <%= _('Hello!') %>
+ (<%= link_to _("Sign in or sign up"), signin_url(:r => request.request_uri) %>)
<% end %>
</div>
<% end %>
@@ -161,28 +141,11 @@
</div>
<div id="footer">
- <a href="/help/contact">Contact WhatDoTheyKnow</a>
- |
- Built by <a href="http://www.mysociety.org/">mySociety</a> ...
- <a href="/help/credits#helpus">and you</a>
- |
- Dedicated to <a href="http://mk.ucant.org/archives/000129.html">Chris Lightfoot</a>
+ <%= link_to _("Contact {{site_name}}", :site_name => site_name), help_contact_url %>
+ <%= render :partial => 'general/credits' %>
</div>
-<% if MySociety::Config.get("DOMAIN", '127.0.0.1:3000') == 'www.whatdotheyknow.com' %>
-<!-- Piwik -->
-<script type="text/javascript">
-var pkBaseURL = (("https:" == document.location.protocol) ? "https://piwik.mysociety.org/" : "http://piwik.mysociety.org/");
-document.write(unescape("%3Cscript src='" + pkBaseURL + "piwik.js' type='text/javascript'%3E%3C/script%3E"));
-</script><script type="text/javascript">
-try {
-var piwikTracker = Piwik.getTracker(pkBaseURL + "piwik.php", 4);
-piwikTracker.trackPageView();
-piwikTracker.enableLinkTracking();
-} catch( err ) {}
-</script><noscript><p><img src="http://piwik.mysociety.org/piwik.php?idsite=4" style="border:0" alt=""/></p></noscript>
-<!-- End Piwik Tag -->
-<% end %>
+ <%= render :partial => 'general/before_body_end' %>
</body>
</html>
diff --git a/app/views/public_body/show.rhtml b/app/views/public_body/show.rhtml
index c1deea762..8b56d68c0 100644
--- a/app/views/public_body/show.rhtml
+++ b/app/views/public_body/show.rhtml
@@ -1,33 +1,34 @@
<% @title = h(@public_body.name) + " - view and make Freedom of Information requests" %>
<div id="request_sidebar">
- <h2>Track this authority</h2>
+ <h2><%= _('Track this authority')%></h2>
<%= render :partial => 'track/tracking_links', :locals => { :track_thing => @track_thing, :own_request => false, :location => 'sidebar' } %>
- <h2>More about this authority</h2>
+ <h2><%= _('More about this authority')%></h2>
<% if !@public_body.calculated_home_page.nil? %>
- <%= link_to "Home page of authority", @public_body.calculated_home_page %><br>
+ <%= link_to _('Home page of authority'), @public_body.calculated_home_page %><br>
<% end %>
<% if !@public_body.publication_scheme.empty? %>
- <%= link_to "Publication scheme", @public_body.publication_scheme %><br>
+ <%= link_to _('Publication scheme'), @public_body.publication_scheme %><br>
<% end %>
<% if @public_body.has_tag?("charity") %>
<% for tag_value in @public_body.get_tag_values("charity") %>
+ XXX UK-specific
<% if tag_value.match(/^SC/) %>
- <%= link_to "Charity registration", "http://www.oscr.org.uk/CharityIndexDetails.aspx?id=" + tag_value %><br>
+ <%= link_to _('Charity registration'), "http://www.oscr.org.uk/CharityIndexDetails.aspx?id=" + tag_value %><br>
<% else %>
- <%= link_to "Charity registration", "http://www.charity-commission.gov.uk/SHOWCHARITY/RegisterOfCharities/CharityFramework.aspx?RegisteredCharityNumber=" + tag_value %><br>
+ <%= link_to _('Charity registration'), "http://www.charity-commission.gov.uk/SHOWCHARITY/RegisterOfCharities/CharityFramework.aspx?RegisteredCharityNumber=" + tag_value %><br>
<% end %>
<% end %>
<% end %>
- <%= link_to "View FOI email address", view_public_body_email_url(@public_body.url_name) %><br>
+ <%= link_to _('View FOI email address'), view_public_body_email_url(@public_body.url_name) %><br>
</div>
<h1><%=h(@public_body.name)%></h1>
<p class="subtitle">
-<%=@public_body.type_of_authority(true)%> in the UK<% if not @public_body.short_name.empty? %>, also called <%= h(@public_body.short_name) %><% end %>
+<%=@public_body.type_of_authority(true)%><% if not @public_body.short_name.empty? %>, <%= _('also called {{public_body_short_name}}', :public_body_short_name => h(@public_body.short_name))%><% end %>
<% if !@user.nil? && @user.admin_page_links? %>
-(<%= link_to "admin", public_body_admin_url(@public_body) %>)
+(<%= link_to _("admin"), public_body_admin_url(@public_body) %>)
<% end %>
</p>
@@ -36,51 +37,48 @@
<% end %>
<% if @public_body.eir_only? %>
- <p>You can only request information about the environment from this authority.</p>
+ <p><%= _('You can only request information about the environment from this authority.')%></p>
<% end %>
<div id="stepwise_make_request">
<strong>
<% if @public_body.is_requestable? || @public_body.not_requestable_reason == 'bad_contact' %>
- <% make = 'Make' %>
- <% if @searched_to_send_request %>
- Next,
- <% make = 'make' %>
- <% end %>
<% if @public_body.eir_only? %>
- <%= link_to make + " a new Environmental Information request", new_request_to_body_url(:url_name => @public_body.url_name)%>
+ <%= link_to "Make a new Environmental Information request", new_request_to_body_url(:url_name => @public_body.url_name)%> to <%= h(@public_body.name) %>
+
<% else %>
- <%= link_to make + " a new Freedom of Information request", new_request_to_body_url(:url_name => @public_body.url_name)%>
+ <%= _('<a href="%s">Make a new Freedom of Information request</a> to {{public_body_name}}',
+ :public_body_name => h(@public_body.name)) % new_request_to_body_url(:url_name => @public_body.url_name)%>
<% end %>
- to <%= h(@public_body.name) %>
<% elsif @public_body.has_notes? %>
<%= @public_body.notes_as_html %>
<% elsif @public_body.not_requestable_reason == 'not_apply' %>
- Freedom of Information law does not apply to this authority, so you cannot make
- a request to it.
+ <%= _('Freedom of Information law does not apply to this authority, so you cannot make
+ a request to it.')%>
<% elsif @public_body.not_requestable_reason == 'defunct' %>
- This authority no longer exists, so you cannot make a request to it.
+ <%= _('This authority no longer exists, so you cannot make a request to it.')%>
<% else %>
- For an unknown reason, it is not possible to make a request to this authority.
+ <%= _('For an unknown reason, it is not possible to make a request to this authority.')%>
<% end %>
</strong>
</div>
<% if !@xapian_requests.nil? %>
- <% if @xapian_requests.results.empty? %>
+ <% if @xapian_requests.results.empty? %>
<% if @public_body.eir_only? %>
<h2>Environmental Information Regulations requests made using this site</h2>
+ <h4>XXX this section needs localising re EIR as these are specific to UK law</h4>
<p>Nobody has made any Environmental Information Regulations requests to <%=h(@public_body.name)%> using this site yet.</p>
<% else %>
- <h2>Freedom of Information requests made using this site</h2>
- <p>Nobody has made any Freedom of Information requests to <%=h(@public_body.name)%> using this site yet.</p>
+ <h2> <%= _('Freedom of Information requests made using this site')%></h2>
+ <p> <%= _('Nobody has made any Freedom of Information requests to {{public_body_name}} using this site yet.', :public_body_name => h(@public_body.name))%></p>
<% end %>
<% else %>
<h2>
<% if @public_body.eir_only? %>
<%=pluralize(@public_body.info_requests.size, "Environmental Information Regulations request") %> made using this site
<% else %>
- <%=pluralize(@public_body.info_requests.size, "Freedom of Information request") %> made using this site
+ <%= n_('%d Freedom of Information request', '%d Freedom of Information requests', @public_body.info_requests.size) % @public_body.info_requests.size %> made using this site
<% end %>
<%= @page_desc %>
</h2>
@@ -91,15 +89,15 @@
<%= will_paginate WillPaginate::Collection.new(@page, @per_page, @public_body.info_requests.size) %>
- <p>Only requests made using WhatDoTheyKnow.com are shown.</p>
+ <p> <%= _('Only requests made using {{site_name}} are shown.', :site_name => site_name) %></p>
<% end %>
<% else %>
<% if @public_body.eir_only? %>
<h2>Environmental Information Regulations requests made</h2>
<% else %>
- <h2>Freedom of Information requests made</h2>
+ <h2> <%= _('Freedom of Information requests made')%></h2>
<% end %>
- <p>The search index is currently offline, so we can't show the Freedom of Information requests that have been made to this authority.</p>
+ <p> <%= _('The search index is currently offline, so we can\'t show the Freedom of Information requests that have been made to this authority.')%></p>
<% end %>
diff --git a/app/views/request/_followup.rhtml b/app/views/request/_followup.rhtml
index f3dcbd785..de9d5530d 100644
--- a/app/views/request/_followup.rhtml
+++ b/app/views/request/_followup.rhtml
@@ -55,7 +55,6 @@
<% form_for(:outgoing_message, @outgoing_message, :html => { :id => 'followup_form' }, :url => incoming_message.nil? ? show_response_no_followup_url(:id => @info_request.id) : show_response_url(:id => @info_request.id, :incoming_message_id => incoming_message.id)) do |o| %>
<p>
<%= o.text_area :body, :rows => 15, :cols => 55 %>
- <br><script type="text/javascript">document.write('<input name="doSpell" type="button" value="Check spelling" onClick="openSpellChecker(document.getElementById(\'followup_form\').body);"/> (optional)')</script>
</p>
<% if @internal_review %>
diff --git a/app/views/request/list.rhtml b/app/views/request/list.rhtml
index 222bd938d..90e5f4605 100644
--- a/app/views/request/list.rhtml
+++ b/app/views/request/list.rhtml
@@ -1,12 +1,12 @@
<div id="list_sidebar">
<h1>Show only...</h1>
<ul>
-<% for view, description in [
- ['successful', "Successful responses"],
- ['recent', "Recently sent requests"]
+<% for view, description, target in [
+ ['successful', "Successful responses", request_list_successful_url(:view => 'successful')],
+ ['recent', "Recently sent requests", request_list_recent_url(:view => 'recent')]
] %>
-<li>
- <%= link_to_unless (@view == view), description, request_list_url(:view => view) %>
+<li>
+ <%= link_to_unless (@view == view), description, target %>
</li>
<% end %>
</ul>
diff --git a/app/views/request/new.rhtml b/app/views/request/new.rhtml
index b2fa9176e..e9e89aa5d 100644
--- a/app/views/request/new.rhtml
+++ b/app/views/request/new.rhtml
@@ -115,10 +115,6 @@
<%= o.text_area :body, :rows => 20, :cols => 60 %>
</p>
<% end %>
-
- <div class="form_button">
- <script type="text/javascript">document.write('<input name="doSpell" type="button" value="Check spelling" onClick="openSpellChecker(document.getElementById(\'write_form\').body);"/> (optional)')</script>
- </div>
<% if !@user %>
<p class="form_note">
diff --git a/config/.gitignore b/config/.gitignore
index 541e7c4a5..b2ceae33c 100644
--- a/config/.gitignore
+++ b/config/.gitignore
@@ -1,3 +1,4 @@
+/config.tmp
/general
/general.deployed
/database.yml
diff --git a/config/environment.rb b/config/environment.rb
index ec7f61ec1..80f0f144a 100644
--- a/config/environment.rb
+++ b/config/environment.rb
@@ -6,7 +6,7 @@
# ENV['RAILS_ENV'] ||= 'production'
# Specifies gem version of Rails to use when vendor/rails is not present
-RAILS_GEM_VERSION = '2.3.11' unless defined? RAILS_GEM_VERSION
+RAILS_GEM_VERSION = '2.3.2' unless defined? RAILS_GEM_VERSION
# Bootstrap the Rails environment, frameworks, and default configuration
require File.join(File.dirname(__FILE__), 'boot')
@@ -19,6 +19,7 @@ $:.push(File.join(File.dirname(__FILE__), '../commonlib/rblib'))
# ruby-ole and ruby-msg. We use a custom ruby-msg to avoid a name conflict
$:.unshift(File.join(File.dirname(__FILE__), '../vendor/ruby-ole/lib'))
$:.unshift(File.join(File.dirname(__FILE__), '../vendor/ruby-msg/lib'))
+$:.unshift(File.join(File.dirname(__FILE__), '../vendor/plugins/globalize2/lib'))
require 'memcache'
@@ -50,19 +51,21 @@ Rails::Initializer.run do |config|
# config.log_level = :debug
#
# Specify gems that this application depends on and have them installed with rake gems:install
+ config.gem "locale", :version => '>=2.0.5'
+ config.gem "gettext", :version => '>=1.9.3'
config.gem "fast_gettext", :version => '>=0.4.8'
config.gem "rack", :version => '1.1.0'
config.gem "recaptcha", :lib => "recaptcha/rails"
config.gem 'rspec', :lib => false, :version => '1.3.1'
config.gem 'rspec-rails', :lib => false, :version => '1.3.3'
config.gem 'will_paginate', :version => '~> 2.3.11', :source => 'http://gemcutter.org'
-
+ #GettextI18nRails.translations_are_html_safe = true
# Your secret key for verifying cookie session data integrity.
# If you change this key, all old sessions will become invalid!
# Make sure the secret is at least 30 characters and all random,
# no regular words or you'll be exposed to dictionary attacks.
config.action_controller.session = {
- :key => '_wdtk_cookie_session',
+ :session_key => '_wdtk_cookie_session',
:secret => MySociety::Config.get("COOKIE_STORE_SESSION_SECRET", 'this default is insecure as code is open source, please override for live sites in config/general; this will do for local development')
}
config.action_controller.session_store = :cookie_store
@@ -105,13 +108,23 @@ ActionMailer::Base.default_url_options[:host] = MySociety::Config.get("DOMAIN",
if (MySociety::Config.get("DOMAIN", "") != "")
ActionController::Base.asset_host = Proc.new { |source, request|
if request.fullpath.match(/^\/admin\//)
- MySociety::Config.get("ADMIN_PUBLIC_URL", "/")
+ MySociety::Config.get("ADMIN_PUBLIC_URL", "")
else
MySociety::Config.get("DOMAIN", 'localhost:3000')
end
}
end
+# fallback locale and available locales
+I18n.default_locale = :en
+if ENV["RAILS_ENV"] == "test"
+ # The tests assume that the "en" and "es" locales are available
+ FastGettext.default_available_locales = ["en", "es"]
+else
+ available_locales = MySociety::Config.get('AVAILABLE_LOCALES', 'en')
+ FastGettext.default_available_locales = available_locales.split()
+end
+
# Load monkey patches and other things from lib/
require 'tmail_extensions.rb'
require 'activesupport_cache_extensions.rb'
@@ -123,5 +136,4 @@ require 'activerecord_errors_extensions.rb'
require 'willpaginate_hack.rb'
require 'sendmail_return_path.rb'
require 'tnef.rb'
-
-
+require 'i18n_fixes.rb'
diff --git a/config/environments/development.rb b/config/environments/development.rb
index d15af3336..d5f2f5772 100644
--- a/config/environments/development.rb
+++ b/config/environments/development.rb
@@ -21,3 +21,5 @@ config.action_mailer.delivery_method = :sendmail # so is queued, rather than giv
# unintentionally kept references to objects, especially strings.
# require 'memory_profiler'
# MemoryProfiler.start :string_debug => true, :delay => 10
+
+config.gem "gettext", :version => '>=1.9.3', :lib => false
diff --git a/config/general-example b/config/general-example
index 4a1f88ccc..df27596ea 100644
--- a/config/general-example
+++ b/config/general-example
@@ -39,8 +39,8 @@ define('OPTION_BLACKHOLE_PREFIX', 'do-not-reply-to-this-address'); // used as en
define('OPTION_CONTACT_EMAIL', 'admin@localhost');
define('OPTION_ADMIN_BASE_URL', '/admin/');
// Where /stylesheets sits under for admin pages. See asset_host in
-// config/environment.rb. Can be full domain or relative path.
-define('OPTION_ADMIN_PUBLIC_URL', '/');
+// config/environment.rb. Can be full domain or relative path (not an absolute path beginning with /).
+define('OPTION_ADMIN_PUBLIC_URL', '');
// Secret key for signing cookie_store sessions
define('OPTION_COOKIE_STORE_SESSION_SECRET', 'your secret key here, make it long and random');
@@ -54,4 +54,6 @@ define('OPTION_READ_ONLY', '');
define('OPTION_RECAPTCHA_PUBLIC_KEY', 'x');
define('OPTION_RECAPTCHA_PRIVATE_KEY', 'x');
+// Locales we wish to support in this app
+define('OPTION_AVAILABLE_LOCALES', 'en es')
?>
diff --git a/config/i18n-routes.yml b/config/i18n-routes.yml
new file mode 100644
index 000000000..1f9b3028c
--- /dev/null
+++ b/config/i18n-routes.yml
@@ -0,0 +1,6 @@
+en:
+ # default from routes.rb
+es:
+ search: busquedas
+ help: ayuda
+ about: sobre
diff --git a/config/initializers/fast_gettext.rb b/config/initializers/fast_gettext.rb
index 9ce0955e9..026c4111c 100644
--- a/config/initializers/fast_gettext.rb
+++ b/config/initializers/fast_gettext.rb
@@ -1,3 +1,2 @@
-FastGettext.add_text_domain 'app', :path => File.join(RAILS_ROOT, 'locale'), :type => :po
-FastGettext.default_available_locales = ['en'] #all you want to allow
-FastGettext.default_text_domain = 'app' \ No newline at end of file
+FastGettext.add_text_domain 'app', :path => 'locale', :type => :po
+FastGettext.default_text_domain = 'app'
diff --git a/config/locales b/config/locales
new file mode 120000
index 000000000..748fbfcbe
--- /dev/null
+++ b/config/locales
@@ -0,0 +1 @@
+/home/seb/Code/alaveteli/vendor/rails-locales/rails/locale \ No newline at end of file
diff --git a/config/routes.rb b/config/routes.rb
index 928bacf67..4ef43a901 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -17,7 +17,7 @@ ActionController::Routing::Routes.draw do |map|
map.with_options :controller => 'general' do |general|
general.frontpage '/', :action => 'frontpage'
general.blog '/blog', :action => 'blog'
-
+ general.custom_css '/stylesheets/custom.css', :action => 'custom_css'
general.search_redirect '/search', :action => 'search_redirect'
# XXX combined is the search query, and then if sorted a "/newest" at the end.
# Couldn't find a way to do this in routes which also picked up multiple other slashes
@@ -31,7 +31,9 @@ ActionController::Routing::Routes.draw do |map|
end
map.with_options :controller => 'request' do |request|
- request.request_list '/list/:view', :action => 'list', :view => nil
+ request.request_list_recent '/list/recent', :action => 'list', :view => 'recent'
+ request.request_list_successful '/list/successful', :action => 'list', :view => 'successful'
+ request.request_list '/list', :action => 'list'
request.new_request '/new', :action => 'new'
request.new_request_to_body '/new/:url_name', :action => 'new'
@@ -107,6 +109,9 @@ ActionController::Routing::Routes.draw do |map|
map.with_options :controller => 'help' do |help|
help.help_unhappy '/help/unhappy/:url_title', :action => 'unhappy'
+ help.help_about '/help/about', :action => 'about'
+ help.help_contact '/help/contact', :action => 'contact'
+ help.help_requesting '/help/requesting', :action => 'requesting'
help.help_general '/help/:action', :action => :action
end
@@ -120,22 +125,80 @@ ActionController::Routing::Routes.draw do |map|
game.stop '/categorise/stop', :action => 'stop'
end
- # NB: We don't use routes to *construct* admin URLs, as they need to be relative
- # paths to work on the live site proxied over HTTPS to secure.mysociety.org
- map.connect '/admin/', :controller => 'admin_general', :action => 'index'
- map.connect '/admin/timeline', :controller => 'admin_general', :action => 'timeline'
- map.connect '/admin/debug', :controller => 'admin_general', :action => 'debug'
- map.connect '/admin/stats', :controller => 'admin_general', :action => 'stats'
- map.connect '/admin/missing_scheme', :controller => 'admin_public_body', :action => 'missing_scheme'
- map.connect '/admin/unclassified', :controller => 'admin_request', :action => 'list_old_unclassified'
- map.connect '/admin/body/:action/:id', :controller => 'admin_public_body'
- map.connect '/admin/request/:action/:id', :controller => 'admin_request'
- map.connect '/admin/user/:action/:id', :controller => 'admin_user'
- map.connect '/admin/track/:action/:id', :controller => 'admin_track'
- map.connect '/admin/censor/:action/:id', :controller => 'admin_censor_rule'
+ map.with_options :controller => 'admin_public_body' do |body|
+ body.admin_body_missing '/admin/missing_scheme', :action => 'missing_scheme'
+ body.admin_body_index '/admin/body', :action => 'index'
+ body.admin_body_list '/admin/body/list', :action => 'list'
+ body.admin_body_show '/admin/body/show/:id', :action => 'show'
+ body.admin_body_new '/admin/body/new/:id', :action => 'new'
+ body.admin_body_edit '/admin/body/edit/:id', :action => 'edit'
+ body.admin_body_update '/admin/body/update/:id', :action => 'update'
+ body.admin_body_create '/admin/body/create/:id', :action => 'create'
+ body.admin_body_destroy '/admin/body/destroy/:id', :action => 'destroy'
+ body.admin_body_import_csv '/admin/body/import_csv', :action => 'import_csv'
+ end
+
+ map.with_options :controller => 'admin_general' do |admin|
+ admin.admin_general_index '/admin', :action => 'index'
+ admin.admin_timeline '/admin/timeline', :action => 'timeline'
+ admin.admin_debug '/admin/debug', :action => 'debug'
+ admin.admin_stats '/admin/stats', :action => 'stats'
+ end
+
+ map.with_options :controller => 'admin_request' do |admin|
+ admin.admin_request_list_old_unclassified '/admin/unclassified', :action => 'list_old_unclassified'
+ admin.admin_request_index '/admin/request', :action => 'index'
+ admin.admin_request_list '/admin/request/list', :action => 'list'
+ admin.admin_request_show '/admin/request/show/:id', :action => 'show'
+ admin.admin_request_resend '/admin/request/resend', :action => 'resend'
+ admin.admin_request_edit '/admin/request/edit/:id', :action => 'edit'
+ admin.admin_request_update '/admin/request/update/:id', :action => 'update'
+ admin.admin_request_destroy '/admin/request/destroy/:id', :action => 'fully_destroy'
+ admin.admin_request_edit_outgoing '/admin/request/edit_outgoing/:id', :action => 'edit_outgoing'
+ admin.admin_request_destroy_outgoing '/admin/request/destroy_outgoing/:id', :action => 'destroy_outgoing'
+ admin.admin_request_update_outgoing '/admin/request/update_outgoing/:id', :action => 'update_outgoing'
+ admin.admin_request_edit_comment '/admin/request/edit_comment/:id', :action => 'edit_comment'
+ admin.admin_request_update_comment '/admin/request/update_comment/:id', :action => 'update_comment'
+ admin.admin_request_destroy_incomine '/admin/request/destroy_incoming/:id', :action => 'destroy_incoming'
+ admin.admin_request_redeliver_incoming '/admin/request/redeliver_incoming', :action => 'redeliver_incoming'
+ admin.admin_request_move_request '/admin/request/move_request', :action => 'move_request'
+ admin.admin_request_generate_upload_url '/admin/request/generate_upload_url/:id', :action => 'generate_upload_url'
+ admin.admin_request_show_raw_email '/admin/request/show_raw_email/:id', :action => 'show_raw_email'
+ admin.admin_request_download_raw_email '/admin/request/download_raw_email/:id', :action => 'download_raw_email'
+ admin.admin_request_clarification '/admin/request/clarification', :action => 'mark_event_as_clarification'
+ end
+
+ map.with_options :controller => 'admin_user' do |user|
+ user.admin_user_index '/admin/user', :action => 'index'
+ user.admin_user_list '/admin/user/list', :action => 'list'
+ user.admin_user_list_banned '/admin/user/banned', :action => 'list_banned'
+ user.admin_user_show '/admin/user/show/:id', :action => 'show'
+ user.admin_user_edit '/admin/user/edit/:id', :action => 'edit'
+ user.admin_user_update '/admin/user/update/:id', :action => 'update'
+ user.admin_user_destroy_track '/admin/user/destroy_track', :action => 'destroy_track'
+ user.admin_user_login_as '/admin/user/login_as/:id', :action => 'login_as'
+ user.admin_clear_profile_photo '/admin/user/clear_profile_photo/:id', :action => 'clear_profile_photo'
+ end
+
+ map.with_options :controller => 'admin_track' do |track|
+ track.admin_track_list '/admin/track/list', :action => 'list'
+ end
+
+ map.with_options :controller => 'admin_censor_rule' do |rule|
+ rule.admin_rule_new '/admin/censor/new', :action => 'new'
+ rule.admin_rule_create '/admin/censor/create', :action => 'create'
+ rule.admin_rule_edit '/admin/censor/edit/:id', :action => 'edit'
+ rule.admin_rule_update '/admin/censor/update', :action => 'update'
+ rule.admin_rule_destroy '/admin/censor/destroy', :action => 'destroy'
+ end
# Allow downloading Web Service WSDL as a file with an extension
# instead of a file named 'wsdl'
# map.connect ':controller/service.wsdl', :action => 'wsdl'
end
+# XXX should do something like the following to load routes from separate files
+# Dir.glob("config/routes_*yml").each do |f|
+# ActionController::Routing::Translator.translate_from_file(f)
+# end
+ActionController::Routing::Translator.translate_from_file('config', 'i18n-routes.yml')
diff --git a/db/migrate/096_create_translation_tables.rb b/db/migrate/096_create_translation_tables.rb
new file mode 100644
index 000000000..4b47c11f7
--- /dev/null
+++ b/db/migrate/096_create_translation_tables.rb
@@ -0,0 +1,28 @@
+class CreateTranslationTables < ActiveRecord::Migration
+ def self.up
+ fields = {:name => :text,
+ :short_name => :text,
+ :request_email => :text,
+ :url_name => :text,
+ :notes => :text,
+ :first_letter => :string,
+ :publication_scheme => :text}
+ PublicBody.create_translation_table!(fields)
+
+ # copy current values across to default locale
+ PublicBody.all.each do |publicbody|
+ publicbody.translated_attributes.each do |a, default|
+ value = publicbody.read_attribute(a)
+ unless value.nil?
+ publicbody.send(:"#{a}=", value)
+ end
+ end
+ publicbody.save!
+ end
+ end
+
+
+ def self.down
+ PublicBody.drop_translation_table!
+ end
+end
diff --git a/db/migrate/097_add_comment_locale.rb b/db/migrate/097_add_comment_locale.rb
new file mode 100644
index 000000000..92ac7c4a5
--- /dev/null
+++ b/db/migrate/097_add_comment_locale.rb
@@ -0,0 +1,10 @@
+class AddCommentLocale < ActiveRecord::Migration
+ def self.up
+ add_column :comments, :locale, :text, :null => false, :default => ""
+ end
+
+ def self.down
+ remove_column :comments, :locale
+ end
+end
+
diff --git a/lib/google_translate.rb b/lib/google_translate.rb
new file mode 100644
index 000000000..369e1de3b
--- /dev/null
+++ b/lib/google_translate.rb
@@ -0,0 +1,18 @@
+require 'rubygems'
+require 'net/http'
+require 'open-uri'
+require 'cgi'
+require 'json'
+
+def detect_language(request, translate_string)
+ google_api_key = ''
+ user_ip = URI.encode(request.env['REMOTE_ADDR'])
+ translate_string = URI.encode(translate_string)
+ url = "http://ajax.googleapis.com/ajax/services/language/detect?v=1.0&q=#{translate_string}&userip=#{user_ip}"
+ if google_api_key != ''
+ url += "&key=#{google_api_key}"
+ end
+ response = Net::HTTP.get_response(URI.parse(url))
+ result = JSON.parse(response.body)
+ result['responseData']['language']
+end
diff --git a/lib/i18n_fixes.rb b/lib/i18n_fixes.rb
new file mode 100644
index 000000000..fad258a72
--- /dev/null
+++ b/lib/i18n_fixes.rb
@@ -0,0 +1,159 @@
+# Some of the monkeypatches in this file should possibly be submitted
+# as patches, but most are here because they should go away when we
+# upgrade to Rails 3.x
+
+# override behaviour in fast_gettext/translation.rb
+# so that we can interpolate our translation strings nicely
+
+def _(key, options = {})
+ translation = FastGettext._(key) || key
+ gettext_interpolate(translation, options)
+end
+
+INTERPOLATION_RESERVED_KEYS = %w(scope default)
+MATCH = /(\\\\)?\{\{([^\}]+)\}\}/
+
+def gettext_interpolate(string, values)
+ return string unless string.is_a?(String)
+ if values.is_a?(Hash)
+ string.gsub(MATCH) do
+ escaped, pattern, key = $1, $2, $2.to_sym
+
+ if escaped
+ pattern
+ elsif INTERPOLATION_RESERVED_KEYS.include?(pattern)
+ raise ReservedInterpolationKey.new(pattern, string)
+ elsif !values.include?(key)
+ raise MissingInterpolationArgument.new(pattern, string)
+ else
+ values[key].to_s
+ end
+ end
+ else
+ reserved_keys = if defined?(I18n::RESERVED_KEYS) # rails 3+
+ I18n::RESERVED_KEYS
+ else
+ I18n::Backend::Base::RESERVED_KEYS
+ end
+
+ string % values.except(*reserved_keys)
+ end
+end
+
+
+module I18n
+ # used by Globalize plugin.
+ # XXX much of this stuff should (might?) be in newer versions of Rails
+ @@fallbacks = nil
+ class << self
+ # Returns the current fallbacks implementation. Defaults to +I18n::Locale::Fallbacks+.
+ def fallbacks
+ @@fallbacks ||= I18n::Locale::Fallbacks.new
+ end
+ end
+
+ module Locale
+ module Tag
+ class Simple
+ class << self
+ def tag(tag)
+ new(tag)
+ end
+ end
+
+ attr_reader :tag
+
+ def initialize(*tag)
+ @tag = tag.join('-').to_sym
+ end
+
+ def subtags
+ @subtags = tag.to_s.split('-').map { |subtag| subtag.to_s }
+ end
+
+ def to_sym
+ tag
+ end
+
+ def to_s
+ tag.to_s
+ end
+
+ def to_a
+ subtags
+ end
+
+ def parent
+ @parent ||= begin
+ segs = to_a.compact
+ segs.length > 1 ? self.class.tag(*segs[0..(segs.length-2)].join('-')) : nil
+ end
+ end
+
+ def self_and_parents
+ @self_and_parents ||= [self] + parents
+ end
+
+ def parents
+ @parents ||= ([parent] + (parent ? parent.parents : [])).compact
+ end
+
+
+ end
+ end
+ class Fallbacks < Hash
+ def initialize(*mappings)
+ @map = {}
+ map(mappings.pop) if mappings.last.is_a?(Hash)
+ self.defaults = mappings.empty? ? [I18n.default_locale.to_sym] : mappings
+ end
+
+ def defaults=(defaults)
+ @defaults = defaults.map { |default| compute(default, false) }.flatten
+ end
+ attr_reader :defaults
+
+ def [](locale)
+ raise InvalidLocale.new(locale) if locale.nil?
+ locale = locale.to_sym
+ super || store(locale, compute(locale))
+ end
+
+ def map(mappings)
+ mappings.each do |from, to|
+ from, to = from.to_sym, Array(to)
+ to.each do |_to|
+ @map[from] ||= []
+ @map[from] << _to.to_sym
+ end
+ end
+ end
+
+ protected
+
+ def compute(tags, include_defaults = true)
+ result = Array(tags).collect do |tag|
+ tags = I18n::Locale::Tag::Simple.tag(tag).self_and_parents.map! { |t| t.to_sym }
+ tags.each { |_tag| tags += compute(@map[_tag]) if @map[_tag] }
+ tags
+ end.flatten
+ result.push(*defaults) if include_defaults
+ result.uniq.compact
+ end
+ end
+ autoload :Fallbacks, 'i18n/locale/fallbacks'
+ end
+end
+
+
+# this monkeypatch corrects inconsistency with gettext_i18n_rails
+# where the latter deals with strings but rails i18n deals with
+# symbols for locales
+module GettextI18nRails
+ class Backend
+ def available_locales
+ FastGettext.available_locales.map{|l| l.to_sym} || []
+ end
+ end
+end
+
diff --git a/lib/tasks/gettext.rake b/lib/tasks/gettext.rake
new file mode 100644
index 000000000..017e7c837
--- /dev/null
+++ b/lib/tasks/gettext.rake
@@ -0,0 +1,5 @@
+namespace :gettext do
+ def files_to_translate
+ Dir.glob("{app,lib,config,locale}/**/*.{rb,erb,haml,rhtml}")
+ end
+end \ No newline at end of file
diff --git a/locale/app.pot b/locale/app.pot
index 86952a61d..f6a65d4a4 100644
--- a/locale/app.pot
+++ b/locale/app.pot
@@ -7,30 +7,418 @@
msgid ""
msgstr ""
"Project-Id-Version: version 0.0.1\n"
-"POT-Creation-Date: 2011-02-24 11:48-0000\n"
-"PO-Revision-Date: 2011-02-24 07:11-0000\n"
+"POT-Creation-Date: 2011-03-31 08:59+0100\n"
+"PO-Revision-Date: 2011-06-14 09:06+0100\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
-"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"Language: \n"
"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
+#: app/views/public_body/show.rhtml:81
+msgid "%d Freedom of Information request"
+msgid_plural "%d Freedom of Information requests"
+msgstr[0] ""
+msgstr[1] ""
+
+#: app/views/general/frontpage.rhtml:36
+msgid "%d request"
+msgid_plural "%d requests"
+msgstr[0] ""
+msgstr[1] ""
+
+#: app/views/general/search.rhtml:53
+msgid "<a href=\"%s\">Browse all</a> or <a href=\"%s\">ask us to add one</a>."
+msgstr ""
+
+#: app/views/public_body/show.rhtml:50
+msgid ""
+"<a href=\"%s\">Make a new Freedom of Information request</a> to "
+"{{public_body_name}}"
+msgstr ""
+
+#: app/views/general/search.rhtml:118
+msgid ""
+"<strong><code>commented_by:tony_bowden</code></strong> to search annotations "
+"made by Tony Bowden, typing the name as in the URL."
+msgstr ""
+
+#: app/views/general/search.rhtml:120
+msgid ""
+"<strong><code>filetype:pdf</code></strong> to find all responses with PDF "
+"attachments. Or try these: <code>{{list_of_file_extensions}}</code>"
+msgstr ""
+
+#: app/views/general/search.rhtml:119
+msgid ""
+"<strong><code>request:</code></strong> to restrict to a specific request, "
+"typing the title as in the URL."
+msgstr ""
+
+#: app/views/general/search.rhtml:117
+msgid ""
+"<strong><code>requested_by:julian_todd</code></strong> to search requests "
+"made by Julian Todd, typing the name as in the URL."
+msgstr ""
+
+#: app/views/general/search.rhtml:116
+msgid ""
+"<strong><code>requested_from:home_office</code></strong> to search requests "
+"from the Home Office, typing the name as in the URL."
+msgstr ""
+
+#: app/views/general/search.rhtml:114
+msgid ""
+"<strong><code>status:</code></strong> to select based on the status or "
+"historical status of the request, see the <a href=\"%s\">table of statuses</"
+"a> below."
+msgstr ""
+
+#: app/views/general/search.rhtml:122
+msgid ""
+"<strong><code>tag:charity</code></strong> to find all public bodies or "
+"requests with a given tag. You can include multiple tags, \n"
+" and tag values, e.g. <code>tag:openlylocal AND tag:"
+"financial_transaction:335633</code>. Note that by default any of the tags\n"
+" can be present, you have to put <code>AND</code> explicitly if you only "
+"want results them all present."
+msgstr ""
+
+#: app/views/general/search.rhtml:115
+msgid ""
+"<strong><code>variety:</code></strong> to select type of thing to search "
+"for, see the <a href=\"%s\">table of varieties</a> below."
+msgstr ""
+
+#: app/models/user.rb:54
+msgid "Admin level is not included in list"
+msgstr ""
+
+#: app/views/general/search.rhtml:31 app/views/general/search.rhtml:109
+msgid "Advanced search tips"
+msgstr ""
+
+#: app/views/general/search.rhtml:17
+msgid ""
+"Can't find it? <a href=\"%s\">Browse all</a> or <a href=\"%s\">ask us to add "
+"it</a>."
+msgstr ""
+
+#: locale/model_attributes.rb:46
+msgid "CensorRule|Last edit comment"
+msgstr ""
+
+#: locale/model_attributes.rb:45
+msgid "CensorRule|Last edit editor"
+msgstr ""
+
+#: locale/model_attributes.rb:44
+msgid "CensorRule|Replacement"
+msgstr ""
+
+#: locale/model_attributes.rb:43
+msgid "CensorRule|Text"
+msgstr ""
+
+#: app/views/public_body/show.rhtml:17 app/views/public_body/show.rhtml:19
+msgid "Charity registration"
+msgstr ""
+
+#: locale/model_attributes.rb:22
+msgid "Comment|Body"
+msgstr ""
+
+#: locale/model_attributes.rb:21
+msgid "Comment|Comment type"
+msgstr ""
+
+#: locale/model_attributes.rb:24
+msgid "Comment|Locale"
+msgstr ""
+
+#: locale/model_attributes.rb:23
+msgid "Comment|Visible"
+msgstr ""
+
+#: app/views/layouts/default.rhtml:147
+msgid "Contact {{site_name}}"
+msgstr ""
+
#: app/models/profile_photo.rb:96
msgid ""
"Couldn't understand the image file that you uploaded. PNG, JPEG, GIF and "
"many other common image file formats are supported."
msgstr ""
+#: app/views/general/search.rhtml:50 app/views/general/search.rhtml:62
+msgid "Did you mean: {{correction}}"
+msgstr ""
+
+#: app/views/admin_public_body/_locale_selector.rhtml:2
+msgid "Edit language version:"
+msgstr ""
+
+#: app/views/comment/_comment_form.rhtml:9
+msgid "Email me future updates to this request"
+msgstr ""
+
+#: app/views/general/search.rhtml:111
+msgid ""
+"Enter words that you want to find separated by spaces, e.g. <strong>climbing "
+"lane</strong>"
+msgstr ""
+
+#: locale/model_attributes.rb:61
+msgid "EximLogDone|Filename"
+msgstr ""
+
+#: locale/model_attributes.rb:62
+msgid "EximLogDone|Last stat"
+msgstr ""
+
+#: locale/model_attributes.rb:19
+msgid "EximLog|Line"
+msgstr ""
+
+#: locale/model_attributes.rb:18
+msgid "EximLog|Order"
+msgstr ""
+
+#: app/views/general/search.rhtml:90
+msgid ""
+"FOI requests {{start_count}} to {{end_count}} of {{total_count}} for "
+"{{user_search_query}}"
+msgstr ""
+
#: app/models/profile_photo.rb:101
msgid "Failed to convert image to a PNG"
msgstr ""
#: app/models/profile_photo.rb:105
msgid ""
-"Failed to convert image to the correct size: at %{cols}x%{rows}, need "
-"%{width}x%{height}"
+"Failed to convert image to the correct size: at %{cols}x%{rows}, need %"
+"{width}x%{height}"
+msgstr ""
+
+#: app/views/general/frontpage.rhtml:8
+msgid ""
+"First, type in the <strong>name of the UK public authority</strong> you'd \n"
+" <br>like information from. <strong>By law, they have to respond</"
+"strong>\n"
+" (<a href=\"%s\">why?</a>)."
+msgstr ""
+
+#: app/views/public_body/show.rhtml:61
+msgid ""
+"For an unknown reason, it is not possible to make a request to this "
+"authority."
+msgstr ""
+
+#: app/views/public_body/show.rhtml:56
+msgid ""
+"Freedom of Information law does not apply to this authority, so you cannot "
+"make\n"
+" a request to it."
+msgstr ""
+
+#: app/views/public_body/show.rhtml:99
+msgid "Freedom of Information requests made"
+msgstr ""
+
+#: app/views/public_body/show.rhtml:73
+msgid "Freedom of Information requests made using this site"
+msgstr ""
+
+#: app/views/layouts/default.rhtml:123
+msgid "Hello!"
+msgstr ""
+
+#: app/views/layouts/default.rhtml:120
+msgid "Hello, {{username}}!"
+msgstr ""
+
+#: app/views/layouts/default.rhtml:115
+msgid "Help"
+msgstr ""
+
+#: locale/model_attributes.rb:58
+msgid "Holiday|Day"
+msgstr ""
+
+#: locale/model_attributes.rb:59
+msgid "Holiday|Description"
+msgstr ""
+
+#: app/views/public_body/show.rhtml:8
+msgid "Home page of authority"
+msgstr ""
+
+#: locale/model_attributes.rb:64
+msgid "IncomingMessage|Cached attachment text clipped"
+msgstr ""
+
+#: locale/model_attributes.rb:65
+msgid "IncomingMessage|Cached main body text folded"
+msgstr ""
+
+#: locale/model_attributes.rb:66
+msgid "IncomingMessage|Cached main body text unfolded"
+msgstr ""
+
+#: locale/model_attributes.rb:39
+msgid "InfoRequestEvent|Calculated state"
+msgstr ""
+
+#: locale/model_attributes.rb:38
+msgid "InfoRequestEvent|Described state"
+msgstr ""
+
+#: locale/model_attributes.rb:36
+msgid "InfoRequestEvent|Event type"
+msgstr ""
+
+#: locale/model_attributes.rb:40
+msgid "InfoRequestEvent|Last described at"
+msgstr ""
+
+#: locale/model_attributes.rb:37
+msgid "InfoRequestEvent|Params yaml"
+msgstr ""
+
+#: locale/model_attributes.rb:41
+msgid "InfoRequestEvent|Prominence"
+msgstr ""
+
+#: locale/model_attributes.rb:87
+msgid "InfoRequest|Allow new responses from"
+msgstr ""
+
+#: locale/model_attributes.rb:83
+msgid "InfoRequest|Awaiting description"
+msgstr ""
+
+#: locale/model_attributes.rb:82
+msgid "InfoRequest|Described state"
+msgstr ""
+
+#: locale/model_attributes.rb:88
+msgid "InfoRequest|Handle rejected responses"
+msgstr ""
+
+#: locale/model_attributes.rb:86
+msgid "InfoRequest|Law used"
+msgstr ""
+
+#: locale/model_attributes.rb:84
+msgid "InfoRequest|Prominence"
+msgstr ""
+
+#: locale/model_attributes.rb:81
+msgid "InfoRequest|Title"
+msgstr ""
+
+#: locale/model_attributes.rb:85
+msgid "InfoRequest|Url title"
+msgstr ""
+
+#: app/views/layouts/default.rhtml:17
+msgid "Make and browse Freedom of Information (FOI) requests"
+msgstr ""
+
+#: app/views/layouts/default.rhtml:89
+msgid "Make and explore Freedom of Information requests"
+msgstr ""
+
+#: app/views/general/frontpage.rhtml:4
+msgid "Make or explore Freedom of Information requests"
+msgstr ""
+
+#: app/views/layouts/default.rhtml:108
+msgid "Make request"
+msgstr ""
+
+#: app/views/public_body/show.rhtml:6
+msgid "More about this authority"
+msgstr ""
+
+#: app/views/general/frontpage.rhtml:41
+msgid "More authorities..."
+msgstr ""
+
+#: app/views/general/frontpage.rhtml:55
+msgid "More successful requests..."
+msgstr ""
+
+#: app/views/layouts/default.rhtml:112
+msgid "My requests"
+msgstr ""
+
+#: app/models/public_body.rb:36
+msgid "Name can't be blank"
+msgstr ""
+
+#: app/models/public_body.rb:40
+msgid "Name is already taken"
+msgstr ""
+
+#: app/views/general/search.rhtml:40
+msgid "Newest results first"
+msgstr ""
+
+#: app/views/general/search.rhtml:16
+msgid "Next, select the public authority you'd like to make the request from."
+msgstr ""
+
+#: app/views/general/search.rhtml:48
+msgid "No public authorities found"
+msgstr ""
+
+#: app/views/public_body/show.rhtml:74
+msgid ""
+"Nobody has made any Freedom of Information requests to {{public_body_name}} "
+"using this site yet."
+msgstr ""
+
+#: app/views/general/search.rhtml:7
+msgid "Nothing found for '{{search_terms}}'"
+msgstr ""
+
+#: app/views/general/frontpage.rhtml:25
+msgid ""
+"OR, <strong>search</strong> for information others have requested using "
+"{{site_name}}"
+msgstr ""
+
+#: app/views/public_body/show.rhtml:92
+msgid "Only requests made using {{site_name}} are shown."
+msgstr ""
+
+#: locale/model_attributes.rb:26
+msgid "OutgoingMessage|Body"
+msgstr ""
+
+#: locale/model_attributes.rb:29
+msgid "OutgoingMessage|Last sent at"
+msgstr ""
+
+#: locale/model_attributes.rb:28
+msgid "OutgoingMessage|Message type"
+msgstr ""
+
+#: locale/model_attributes.rb:27
+msgid "OutgoingMessage|Status"
+msgstr ""
+
+#: locale/model_attributes.rb:30
+msgid "OutgoingMessage|What doing"
+msgstr ""
+
+#: app/views/general/search.rhtml:80
+msgid ""
+"People {{start_count}} to {{end_count}} of {{total_count}} for "
+"{{user_search_query}}"
msgstr ""
#: app/models/profile_photo.rb:91
@@ -149,6 +537,332 @@ msgid ""
"This makes it easier for others to read."
msgstr ""
-msgid "activerecord.errors.full_messages.format"
-msgstr "%{message}"
+#: locale/model_attributes.rb:56
+msgid "PostRedirect|Circumstance"
+msgstr ""
+
+#: locale/model_attributes.rb:54
+msgid "PostRedirect|Email token"
+msgstr ""
+
+#: locale/model_attributes.rb:53
+msgid "PostRedirect|Post params yaml"
+msgstr ""
+
+#: locale/model_attributes.rb:55
+msgid "PostRedirect|Reason params yaml"
+msgstr ""
+
+#: locale/model_attributes.rb:51
+msgid "PostRedirect|Token"
+msgstr ""
+
+#: locale/model_attributes.rb:52
+msgid "PostRedirect|Uri"
+msgstr ""
+
+#: locale/model_attributes.rb:15
+msgid "ProfilePhoto|Data"
+msgstr ""
+
+#: locale/model_attributes.rb:16
+msgid "ProfilePhoto|Draft"
+msgstr ""
+
+#: app/views/general/search.rhtml:70
+msgid ""
+"Public authorities {{start_count}} to {{end_count}} of {{total_count}} for "
+"{{user_search_query}}"
+msgstr ""
+
+#: locale/model_attributes.rb:12
+msgid "PublicBody|First letter"
+msgstr ""
+
+#: locale/model_attributes.rb:10
+msgid "PublicBody|Home page"
+msgstr ""
+
+#: locale/model_attributes.rb:8
+msgid "PublicBody|Last edit comment"
+msgstr ""
+
+#: locale/model_attributes.rb:7
+msgid "PublicBody|Last edit editor"
+msgstr ""
+
+#: locale/model_attributes.rb:3
+msgid "PublicBody|Name"
+msgstr ""
+
+#: locale/model_attributes.rb:11
+msgid "PublicBody|Notes"
+msgstr ""
+
+#: locale/model_attributes.rb:13
+msgid "PublicBody|Publication scheme"
+msgstr ""
+
+#: locale/model_attributes.rb:5
+msgid "PublicBody|Request email"
+msgstr ""
+
+#: locale/model_attributes.rb:4
+msgid "PublicBody|Short name"
+msgstr ""
+
+#: locale/model_attributes.rb:9
+msgid "PublicBody|Url name"
+msgstr ""
+
+#: locale/model_attributes.rb:6
+msgid "PublicBody|Version"
+msgstr ""
+
+#: app/views/public_body/show.rhtml:11
+msgid "Publication scheme"
+msgstr ""
+
+#: locale/model_attributes.rb:49
+msgid "RawEmail|Data binary"
+msgstr ""
+
+#: locale/model_attributes.rb:48
+msgid "RawEmail|Data text"
+msgstr ""
+
+#: app/views/general/search.rhtml:125
+msgid ""
+"Read about <a href=\"%s\">advanced search operators</a>, such as proximity "
+"and wildcards."
+msgstr ""
+
+#: app/views/layouts/default.rhtml:114
+msgid "Read blog"
+msgstr ""
+
+#: app/views/general/search.rhtml:42
+msgid "Recently described results first"
+msgstr ""
+
+#: app/views/general/search.rhtml:9
+msgid "Results page {{page_number}}"
+msgstr ""
+
+#: app/views/layouts/default.rhtml:102 app/views/general/frontpage.rhtml:16
+#: app/views/general/search.rhtml:29
+msgid "Search"
+msgstr ""
+
+#: app/views/general/search.rhtml:4
+msgid "Search Freedom of Information requests, public authorities and users"
+msgstr ""
+
+#: app/models/public_body.rb:39
+msgid "Short name is already taken"
+msgstr ""
+
+#: app/views/general/search.rhtml:38
+msgid "Show most relevant results first"
+msgstr ""
+
+#: app/views/layouts/default.rhtml:124
+msgid "Sign in or sign up"
+msgstr ""
+
+#: app/views/layouts/default.rhtml:121
+msgid "Sign out"
+msgstr ""
+
+#: app/views/general/search.rhtml:128
+msgid "Table of statuses"
+msgstr ""
+
+#: app/views/public_body/show.rhtml:101
+msgid ""
+"The search index is currently offline, so we can't show the Freedom of "
+"Information requests that have been made to this authority."
+msgstr ""
+
+#: app/views/public_body/show.rhtml:59
+msgid "This authority no longer exists, so you cannot make a request to it."
+msgstr ""
+
+#: app/views/public_body/show.rhtml:4
+msgid "Track this authority"
+msgstr ""
+#: locale/model_attributes.rb:33
+msgid "TrackThing|Track medium"
+msgstr ""
+
+#: locale/model_attributes.rb:32
+msgid "TrackThing|Track query"
+msgstr ""
+
+#: locale/model_attributes.rb:34
+msgid "TrackThing|Track type"
+msgstr ""
+
+#: app/views/general/search.rhtml:121
+msgid ""
+"Type <strong><code>01/01/2008..14/01/2008</code></strong> to only show "
+"things that happened in the first two weeks of January."
+msgstr ""
+
+#: app/models/public_body.rb:37
+msgid "URL name can't be blank"
+msgstr ""
+
+#: app/views/general/search.rhtml:112
+msgid ""
+"Use OR (in capital letters) where you don't mind which word, e.g. "
+"<strong><code>commons OR lords</code></strong>"
+msgstr ""
+
+#: app/views/general/search.rhtml:113
+msgid ""
+"Use quotes when you want to find an exact phrase, e.g. <strong><code>"
+"\"Liverpool City Council\"</code></strong>"
+msgstr ""
+
+#: locale/model_attributes.rb:68
+msgid "UserInfoRequestSentAlert|Alert type"
+msgstr ""
+
+#: locale/model_attributes.rb:79
+msgid "User|About me"
+msgstr ""
+
+#: locale/model_attributes.rb:77
+msgid "User|Admin level"
+msgstr ""
+
+#: locale/model_attributes.rb:78
+msgid "User|Ban text"
+msgstr ""
+
+#: locale/model_attributes.rb:70
+msgid "User|Email"
+msgstr ""
+
+#: locale/model_attributes.rb:74
+msgid "User|Email confirmed"
+msgstr ""
+
+#: locale/model_attributes.rb:72
+msgid "User|Hashed password"
+msgstr ""
+
+#: locale/model_attributes.rb:76
+msgid "User|Last daily track email"
+msgstr ""
+
+#: locale/model_attributes.rb:71
+msgid "User|Name"
+msgstr ""
+
+#: locale/model_attributes.rb:73
+msgid "User|Salt"
+msgstr ""
+
+#: locale/model_attributes.rb:75
+msgid "User|Url name"
+msgstr ""
+
+#: app/views/public_body/show.rhtml:23
+msgid "View FOI email address"
+msgstr ""
+
+#: app/views/layouts/default.rhtml:110
+msgid "View authorities"
+msgstr ""
+
+#: app/views/layouts/default.rhtml:109
+msgid "View requests"
+msgstr ""
+
+#: app/views/public_body/show.rhtml:40
+msgid ""
+"You can only request information about the environment from this authority."
+msgstr ""
+
+#: app/views/public_body/show.rhtml:31
+msgid "admin"
+msgstr ""
+
+#: app/views/public_body/show.rhtml:29
+msgid "also called {{public_body_short_name}}"
+msgstr ""
+
+#: locale/model_attributes.rb:42
+msgid "censor rule"
+msgstr ""
+
+#: locale/model_attributes.rb:20
+msgid "comment"
+msgstr ""
+
+#: app/views/general/frontpage.rhtml:18
+msgid "e.g."
+msgstr ""
+
+#: locale/model_attributes.rb:17
+msgid "exim log"
+msgstr ""
+
+#: locale/model_attributes.rb:60
+msgid "exim log done"
+msgstr ""
+
+#: locale/model_attributes.rb:57
+msgid "holiday"
+msgstr ""
+
+#: locale/model_attributes.rb:63
+msgid "incoming message"
+msgstr ""
+
+#: locale/model_attributes.rb:80
+msgid "info request"
+msgstr ""
+
+#: locale/model_attributes.rb:35
+msgid "info request event"
+msgstr ""
+
+#: locale/model_attributes.rb:25
+msgid "outgoing message"
+msgstr ""
+
+#: locale/model_attributes.rb:50
+msgid "post redirect"
+msgstr ""
+
+#: locale/model_attributes.rb:14
+msgid "profile photo"
+msgstr ""
+
+#: locale/model_attributes.rb:2
+msgid "public body"
+msgstr ""
+
+#: locale/model_attributes.rb:47
+msgid "raw email"
+msgstr ""
+
+#: locale/model_attributes.rb:31
+msgid "track thing"
+msgstr ""
+
+#: locale/model_attributes.rb:69
+msgid "user"
+msgstr ""
+
+#: locale/model_attributes.rb:67
+msgid "user info request sent alert"
+msgstr ""
+
+#: app/views/general/frontpage.rhtml:51
+msgid "{{length_of_time}} ago"
+msgstr ""
diff --git a/locale/en/app.po b/locale/en/app.po
index 1b942c9aa..f6a65d4a4 100644
--- a/locale/en/app.po
+++ b/locale/en/app.po
@@ -7,30 +7,418 @@
msgid ""
msgstr ""
"Project-Id-Version: version 0.0.1\n"
-"POT-Creation-Date: 2011-02-24 11:48-0000\n"
-"PO-Revision-Date: 2011-02-24 07:11-0000\n"
+"POT-Creation-Date: 2011-03-31 08:59+0100\n"
+"PO-Revision-Date: 2011-06-14 09:06+0100\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
-"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"Language: \n"
"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
+#: app/views/public_body/show.rhtml:81
+msgid "%d Freedom of Information request"
+msgid_plural "%d Freedom of Information requests"
+msgstr[0] ""
+msgstr[1] ""
+
+#: app/views/general/frontpage.rhtml:36
+msgid "%d request"
+msgid_plural "%d requests"
+msgstr[0] ""
+msgstr[1] ""
+
+#: app/views/general/search.rhtml:53
+msgid "<a href=\"%s\">Browse all</a> or <a href=\"%s\">ask us to add one</a>."
+msgstr ""
+
+#: app/views/public_body/show.rhtml:50
+msgid ""
+"<a href=\"%s\">Make a new Freedom of Information request</a> to "
+"{{public_body_name}}"
+msgstr ""
+
+#: app/views/general/search.rhtml:118
+msgid ""
+"<strong><code>commented_by:tony_bowden</code></strong> to search annotations "
+"made by Tony Bowden, typing the name as in the URL."
+msgstr ""
+
+#: app/views/general/search.rhtml:120
+msgid ""
+"<strong><code>filetype:pdf</code></strong> to find all responses with PDF "
+"attachments. Or try these: <code>{{list_of_file_extensions}}</code>"
+msgstr ""
+
+#: app/views/general/search.rhtml:119
+msgid ""
+"<strong><code>request:</code></strong> to restrict to a specific request, "
+"typing the title as in the URL."
+msgstr ""
+
+#: app/views/general/search.rhtml:117
+msgid ""
+"<strong><code>requested_by:julian_todd</code></strong> to search requests "
+"made by Julian Todd, typing the name as in the URL."
+msgstr ""
+
+#: app/views/general/search.rhtml:116
+msgid ""
+"<strong><code>requested_from:home_office</code></strong> to search requests "
+"from the Home Office, typing the name as in the URL."
+msgstr ""
+
+#: app/views/general/search.rhtml:114
+msgid ""
+"<strong><code>status:</code></strong> to select based on the status or "
+"historical status of the request, see the <a href=\"%s\">table of statuses</"
+"a> below."
+msgstr ""
+
+#: app/views/general/search.rhtml:122
+msgid ""
+"<strong><code>tag:charity</code></strong> to find all public bodies or "
+"requests with a given tag. You can include multiple tags, \n"
+" and tag values, e.g. <code>tag:openlylocal AND tag:"
+"financial_transaction:335633</code>. Note that by default any of the tags\n"
+" can be present, you have to put <code>AND</code> explicitly if you only "
+"want results them all present."
+msgstr ""
+
+#: app/views/general/search.rhtml:115
+msgid ""
+"<strong><code>variety:</code></strong> to select type of thing to search "
+"for, see the <a href=\"%s\">table of varieties</a> below."
+msgstr ""
+
+#: app/models/user.rb:54
+msgid "Admin level is not included in list"
+msgstr ""
+
+#: app/views/general/search.rhtml:31 app/views/general/search.rhtml:109
+msgid "Advanced search tips"
+msgstr ""
+
+#: app/views/general/search.rhtml:17
+msgid ""
+"Can't find it? <a href=\"%s\">Browse all</a> or <a href=\"%s\">ask us to add "
+"it</a>."
+msgstr ""
+
+#: locale/model_attributes.rb:46
+msgid "CensorRule|Last edit comment"
+msgstr ""
+
+#: locale/model_attributes.rb:45
+msgid "CensorRule|Last edit editor"
+msgstr ""
+
+#: locale/model_attributes.rb:44
+msgid "CensorRule|Replacement"
+msgstr ""
+
+#: locale/model_attributes.rb:43
+msgid "CensorRule|Text"
+msgstr ""
+
+#: app/views/public_body/show.rhtml:17 app/views/public_body/show.rhtml:19
+msgid "Charity registration"
+msgstr ""
+
+#: locale/model_attributes.rb:22
+msgid "Comment|Body"
+msgstr ""
+
+#: locale/model_attributes.rb:21
+msgid "Comment|Comment type"
+msgstr ""
+
+#: locale/model_attributes.rb:24
+msgid "Comment|Locale"
+msgstr ""
+
+#: locale/model_attributes.rb:23
+msgid "Comment|Visible"
+msgstr ""
+
+#: app/views/layouts/default.rhtml:147
+msgid "Contact {{site_name}}"
+msgstr ""
+
#: app/models/profile_photo.rb:96
msgid ""
"Couldn't understand the image file that you uploaded. PNG, JPEG, GIF and "
"many other common image file formats are supported."
msgstr ""
+#: app/views/general/search.rhtml:50 app/views/general/search.rhtml:62
+msgid "Did you mean: {{correction}}"
+msgstr ""
+
+#: app/views/admin_public_body/_locale_selector.rhtml:2
+msgid "Edit language version:"
+msgstr ""
+
+#: app/views/comment/_comment_form.rhtml:9
+msgid "Email me future updates to this request"
+msgstr ""
+
+#: app/views/general/search.rhtml:111
+msgid ""
+"Enter words that you want to find separated by spaces, e.g. <strong>climbing "
+"lane</strong>"
+msgstr ""
+
+#: locale/model_attributes.rb:61
+msgid "EximLogDone|Filename"
+msgstr ""
+
+#: locale/model_attributes.rb:62
+msgid "EximLogDone|Last stat"
+msgstr ""
+
+#: locale/model_attributes.rb:19
+msgid "EximLog|Line"
+msgstr ""
+
+#: locale/model_attributes.rb:18
+msgid "EximLog|Order"
+msgstr ""
+
+#: app/views/general/search.rhtml:90
+msgid ""
+"FOI requests {{start_count}} to {{end_count}} of {{total_count}} for "
+"{{user_search_query}}"
+msgstr ""
+
#: app/models/profile_photo.rb:101
msgid "Failed to convert image to a PNG"
msgstr ""
#: app/models/profile_photo.rb:105
msgid ""
-"Failed to convert image to the correct size: at %{cols}x%{rows}, need "
-"%{width}x%{height}"
+"Failed to convert image to the correct size: at %{cols}x%{rows}, need %"
+"{width}x%{height}"
+msgstr ""
+
+#: app/views/general/frontpage.rhtml:8
+msgid ""
+"First, type in the <strong>name of the UK public authority</strong> you'd \n"
+" <br>like information from. <strong>By law, they have to respond</"
+"strong>\n"
+" (<a href=\"%s\">why?</a>)."
+msgstr ""
+
+#: app/views/public_body/show.rhtml:61
+msgid ""
+"For an unknown reason, it is not possible to make a request to this "
+"authority."
+msgstr ""
+
+#: app/views/public_body/show.rhtml:56
+msgid ""
+"Freedom of Information law does not apply to this authority, so you cannot "
+"make\n"
+" a request to it."
+msgstr ""
+
+#: app/views/public_body/show.rhtml:99
+msgid "Freedom of Information requests made"
+msgstr ""
+
+#: app/views/public_body/show.rhtml:73
+msgid "Freedom of Information requests made using this site"
+msgstr ""
+
+#: app/views/layouts/default.rhtml:123
+msgid "Hello!"
+msgstr ""
+
+#: app/views/layouts/default.rhtml:120
+msgid "Hello, {{username}}!"
+msgstr ""
+
+#: app/views/layouts/default.rhtml:115
+msgid "Help"
+msgstr ""
+
+#: locale/model_attributes.rb:58
+msgid "Holiday|Day"
+msgstr ""
+
+#: locale/model_attributes.rb:59
+msgid "Holiday|Description"
+msgstr ""
+
+#: app/views/public_body/show.rhtml:8
+msgid "Home page of authority"
+msgstr ""
+
+#: locale/model_attributes.rb:64
+msgid "IncomingMessage|Cached attachment text clipped"
+msgstr ""
+
+#: locale/model_attributes.rb:65
+msgid "IncomingMessage|Cached main body text folded"
+msgstr ""
+
+#: locale/model_attributes.rb:66
+msgid "IncomingMessage|Cached main body text unfolded"
+msgstr ""
+
+#: locale/model_attributes.rb:39
+msgid "InfoRequestEvent|Calculated state"
+msgstr ""
+
+#: locale/model_attributes.rb:38
+msgid "InfoRequestEvent|Described state"
+msgstr ""
+
+#: locale/model_attributes.rb:36
+msgid "InfoRequestEvent|Event type"
+msgstr ""
+
+#: locale/model_attributes.rb:40
+msgid "InfoRequestEvent|Last described at"
+msgstr ""
+
+#: locale/model_attributes.rb:37
+msgid "InfoRequestEvent|Params yaml"
+msgstr ""
+
+#: locale/model_attributes.rb:41
+msgid "InfoRequestEvent|Prominence"
+msgstr ""
+
+#: locale/model_attributes.rb:87
+msgid "InfoRequest|Allow new responses from"
+msgstr ""
+
+#: locale/model_attributes.rb:83
+msgid "InfoRequest|Awaiting description"
+msgstr ""
+
+#: locale/model_attributes.rb:82
+msgid "InfoRequest|Described state"
+msgstr ""
+
+#: locale/model_attributes.rb:88
+msgid "InfoRequest|Handle rejected responses"
+msgstr ""
+
+#: locale/model_attributes.rb:86
+msgid "InfoRequest|Law used"
+msgstr ""
+
+#: locale/model_attributes.rb:84
+msgid "InfoRequest|Prominence"
+msgstr ""
+
+#: locale/model_attributes.rb:81
+msgid "InfoRequest|Title"
+msgstr ""
+
+#: locale/model_attributes.rb:85
+msgid "InfoRequest|Url title"
+msgstr ""
+
+#: app/views/layouts/default.rhtml:17
+msgid "Make and browse Freedom of Information (FOI) requests"
+msgstr ""
+
+#: app/views/layouts/default.rhtml:89
+msgid "Make and explore Freedom of Information requests"
+msgstr ""
+
+#: app/views/general/frontpage.rhtml:4
+msgid "Make or explore Freedom of Information requests"
+msgstr ""
+
+#: app/views/layouts/default.rhtml:108
+msgid "Make request"
+msgstr ""
+
+#: app/views/public_body/show.rhtml:6
+msgid "More about this authority"
+msgstr ""
+
+#: app/views/general/frontpage.rhtml:41
+msgid "More authorities..."
+msgstr ""
+
+#: app/views/general/frontpage.rhtml:55
+msgid "More successful requests..."
+msgstr ""
+
+#: app/views/layouts/default.rhtml:112
+msgid "My requests"
+msgstr ""
+
+#: app/models/public_body.rb:36
+msgid "Name can't be blank"
+msgstr ""
+
+#: app/models/public_body.rb:40
+msgid "Name is already taken"
+msgstr ""
+
+#: app/views/general/search.rhtml:40
+msgid "Newest results first"
+msgstr ""
+
+#: app/views/general/search.rhtml:16
+msgid "Next, select the public authority you'd like to make the request from."
+msgstr ""
+
+#: app/views/general/search.rhtml:48
+msgid "No public authorities found"
+msgstr ""
+
+#: app/views/public_body/show.rhtml:74
+msgid ""
+"Nobody has made any Freedom of Information requests to {{public_body_name}} "
+"using this site yet."
+msgstr ""
+
+#: app/views/general/search.rhtml:7
+msgid "Nothing found for '{{search_terms}}'"
+msgstr ""
+
+#: app/views/general/frontpage.rhtml:25
+msgid ""
+"OR, <strong>search</strong> for information others have requested using "
+"{{site_name}}"
+msgstr ""
+
+#: app/views/public_body/show.rhtml:92
+msgid "Only requests made using {{site_name}} are shown."
+msgstr ""
+
+#: locale/model_attributes.rb:26
+msgid "OutgoingMessage|Body"
+msgstr ""
+
+#: locale/model_attributes.rb:29
+msgid "OutgoingMessage|Last sent at"
+msgstr ""
+
+#: locale/model_attributes.rb:28
+msgid "OutgoingMessage|Message type"
+msgstr ""
+
+#: locale/model_attributes.rb:27
+msgid "OutgoingMessage|Status"
+msgstr ""
+
+#: locale/model_attributes.rb:30
+msgid "OutgoingMessage|What doing"
+msgstr ""
+
+#: app/views/general/search.rhtml:80
+msgid ""
+"People {{start_count}} to {{end_count}} of {{total_count}} for "
+"{{user_search_query}}"
msgstr ""
#: app/models/profile_photo.rb:91
@@ -149,5 +537,332 @@ msgid ""
"This makes it easier for others to read."
msgstr ""
-msgid "activerecord.errors.full_messages.format"
-msgstr "%{message}"
+#: locale/model_attributes.rb:56
+msgid "PostRedirect|Circumstance"
+msgstr ""
+
+#: locale/model_attributes.rb:54
+msgid "PostRedirect|Email token"
+msgstr ""
+
+#: locale/model_attributes.rb:53
+msgid "PostRedirect|Post params yaml"
+msgstr ""
+
+#: locale/model_attributes.rb:55
+msgid "PostRedirect|Reason params yaml"
+msgstr ""
+
+#: locale/model_attributes.rb:51
+msgid "PostRedirect|Token"
+msgstr ""
+
+#: locale/model_attributes.rb:52
+msgid "PostRedirect|Uri"
+msgstr ""
+
+#: locale/model_attributes.rb:15
+msgid "ProfilePhoto|Data"
+msgstr ""
+
+#: locale/model_attributes.rb:16
+msgid "ProfilePhoto|Draft"
+msgstr ""
+
+#: app/views/general/search.rhtml:70
+msgid ""
+"Public authorities {{start_count}} to {{end_count}} of {{total_count}} for "
+"{{user_search_query}}"
+msgstr ""
+
+#: locale/model_attributes.rb:12
+msgid "PublicBody|First letter"
+msgstr ""
+
+#: locale/model_attributes.rb:10
+msgid "PublicBody|Home page"
+msgstr ""
+
+#: locale/model_attributes.rb:8
+msgid "PublicBody|Last edit comment"
+msgstr ""
+
+#: locale/model_attributes.rb:7
+msgid "PublicBody|Last edit editor"
+msgstr ""
+
+#: locale/model_attributes.rb:3
+msgid "PublicBody|Name"
+msgstr ""
+
+#: locale/model_attributes.rb:11
+msgid "PublicBody|Notes"
+msgstr ""
+
+#: locale/model_attributes.rb:13
+msgid "PublicBody|Publication scheme"
+msgstr ""
+
+#: locale/model_attributes.rb:5
+msgid "PublicBody|Request email"
+msgstr ""
+
+#: locale/model_attributes.rb:4
+msgid "PublicBody|Short name"
+msgstr ""
+
+#: locale/model_attributes.rb:9
+msgid "PublicBody|Url name"
+msgstr ""
+
+#: locale/model_attributes.rb:6
+msgid "PublicBody|Version"
+msgstr ""
+
+#: app/views/public_body/show.rhtml:11
+msgid "Publication scheme"
+msgstr ""
+
+#: locale/model_attributes.rb:49
+msgid "RawEmail|Data binary"
+msgstr ""
+
+#: locale/model_attributes.rb:48
+msgid "RawEmail|Data text"
+msgstr ""
+
+#: app/views/general/search.rhtml:125
+msgid ""
+"Read about <a href=\"%s\">advanced search operators</a>, such as proximity "
+"and wildcards."
+msgstr ""
+
+#: app/views/layouts/default.rhtml:114
+msgid "Read blog"
+msgstr ""
+
+#: app/views/general/search.rhtml:42
+msgid "Recently described results first"
+msgstr ""
+
+#: app/views/general/search.rhtml:9
+msgid "Results page {{page_number}}"
+msgstr ""
+
+#: app/views/layouts/default.rhtml:102 app/views/general/frontpage.rhtml:16
+#: app/views/general/search.rhtml:29
+msgid "Search"
+msgstr ""
+
+#: app/views/general/search.rhtml:4
+msgid "Search Freedom of Information requests, public authorities and users"
+msgstr ""
+
+#: app/models/public_body.rb:39
+msgid "Short name is already taken"
+msgstr ""
+
+#: app/views/general/search.rhtml:38
+msgid "Show most relevant results first"
+msgstr ""
+
+#: app/views/layouts/default.rhtml:124
+msgid "Sign in or sign up"
+msgstr ""
+
+#: app/views/layouts/default.rhtml:121
+msgid "Sign out"
+msgstr ""
+
+#: app/views/general/search.rhtml:128
+msgid "Table of statuses"
+msgstr ""
+
+#: app/views/public_body/show.rhtml:101
+msgid ""
+"The search index is currently offline, so we can't show the Freedom of "
+"Information requests that have been made to this authority."
+msgstr ""
+
+#: app/views/public_body/show.rhtml:59
+msgid "This authority no longer exists, so you cannot make a request to it."
+msgstr ""
+
+#: app/views/public_body/show.rhtml:4
+msgid "Track this authority"
+msgstr ""
+
+#: locale/model_attributes.rb:33
+msgid "TrackThing|Track medium"
+msgstr ""
+
+#: locale/model_attributes.rb:32
+msgid "TrackThing|Track query"
+msgstr ""
+
+#: locale/model_attributes.rb:34
+msgid "TrackThing|Track type"
+msgstr ""
+
+#: app/views/general/search.rhtml:121
+msgid ""
+"Type <strong><code>01/01/2008..14/01/2008</code></strong> to only show "
+"things that happened in the first two weeks of January."
+msgstr ""
+
+#: app/models/public_body.rb:37
+msgid "URL name can't be blank"
+msgstr ""
+
+#: app/views/general/search.rhtml:112
+msgid ""
+"Use OR (in capital letters) where you don't mind which word, e.g. "
+"<strong><code>commons OR lords</code></strong>"
+msgstr ""
+
+#: app/views/general/search.rhtml:113
+msgid ""
+"Use quotes when you want to find an exact phrase, e.g. <strong><code>"
+"\"Liverpool City Council\"</code></strong>"
+msgstr ""
+
+#: locale/model_attributes.rb:68
+msgid "UserInfoRequestSentAlert|Alert type"
+msgstr ""
+
+#: locale/model_attributes.rb:79
+msgid "User|About me"
+msgstr ""
+
+#: locale/model_attributes.rb:77
+msgid "User|Admin level"
+msgstr ""
+
+#: locale/model_attributes.rb:78
+msgid "User|Ban text"
+msgstr ""
+
+#: locale/model_attributes.rb:70
+msgid "User|Email"
+msgstr ""
+
+#: locale/model_attributes.rb:74
+msgid "User|Email confirmed"
+msgstr ""
+
+#: locale/model_attributes.rb:72
+msgid "User|Hashed password"
+msgstr ""
+
+#: locale/model_attributes.rb:76
+msgid "User|Last daily track email"
+msgstr ""
+
+#: locale/model_attributes.rb:71
+msgid "User|Name"
+msgstr ""
+
+#: locale/model_attributes.rb:73
+msgid "User|Salt"
+msgstr ""
+
+#: locale/model_attributes.rb:75
+msgid "User|Url name"
+msgstr ""
+
+#: app/views/public_body/show.rhtml:23
+msgid "View FOI email address"
+msgstr ""
+
+#: app/views/layouts/default.rhtml:110
+msgid "View authorities"
+msgstr ""
+
+#: app/views/layouts/default.rhtml:109
+msgid "View requests"
+msgstr ""
+
+#: app/views/public_body/show.rhtml:40
+msgid ""
+"You can only request information about the environment from this authority."
+msgstr ""
+
+#: app/views/public_body/show.rhtml:31
+msgid "admin"
+msgstr ""
+
+#: app/views/public_body/show.rhtml:29
+msgid "also called {{public_body_short_name}}"
+msgstr ""
+
+#: locale/model_attributes.rb:42
+msgid "censor rule"
+msgstr ""
+
+#: locale/model_attributes.rb:20
+msgid "comment"
+msgstr ""
+
+#: app/views/general/frontpage.rhtml:18
+msgid "e.g."
+msgstr ""
+
+#: locale/model_attributes.rb:17
+msgid "exim log"
+msgstr ""
+
+#: locale/model_attributes.rb:60
+msgid "exim log done"
+msgstr ""
+
+#: locale/model_attributes.rb:57
+msgid "holiday"
+msgstr ""
+
+#: locale/model_attributes.rb:63
+msgid "incoming message"
+msgstr ""
+
+#: locale/model_attributes.rb:80
+msgid "info request"
+msgstr ""
+
+#: locale/model_attributes.rb:35
+msgid "info request event"
+msgstr ""
+
+#: locale/model_attributes.rb:25
+msgid "outgoing message"
+msgstr ""
+
+#: locale/model_attributes.rb:50
+msgid "post redirect"
+msgstr ""
+
+#: locale/model_attributes.rb:14
+msgid "profile photo"
+msgstr ""
+
+#: locale/model_attributes.rb:2
+msgid "public body"
+msgstr ""
+
+#: locale/model_attributes.rb:47
+msgid "raw email"
+msgstr ""
+
+#: locale/model_attributes.rb:31
+msgid "track thing"
+msgstr ""
+
+#: locale/model_attributes.rb:69
+msgid "user"
+msgstr ""
+
+#: locale/model_attributes.rb:67
+msgid "user info request sent alert"
+msgstr ""
+
+#: app/views/general/frontpage.rhtml:51
+msgid "{{length_of_time}} ago"
+msgstr ""
diff --git a/locale/es/app.po b/locale/es/app.po
new file mode 100644
index 000000000..6265d96eb
--- /dev/null
+++ b/locale/es/app.po
@@ -0,0 +1,874 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: version 0.0.1\n"
+"POT-Creation-Date: 2011-03-31 08:59+0100\n"
+"PO-Revision-Date: 2011-06-14 09:18+0100\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: \n"
+"Plural-Forms: nplurals=2; plural=n>1;"
+
+#: app/views/public_body/show.rhtml:81
+msgid "%d Freedom of Information request"
+msgid_plural "%d Freedom of Information requests"
+msgstr[0] "%d Libera de Information requesto"
+msgstr[1] "Libera de Information requesti numbera %d"
+
+#: app/views/general/frontpage.rhtml:36
+msgid "%d request"
+msgid_plural "%d requests"
+msgstr[0] "%d nonna requesti"
+msgstr[1] "%d multissimo requestos"
+
+#: app/views/general/search.rhtml:53
+msgid "<a href=\"%s\">Browse all</a> or <a href=\"%s\">ask us to add one</a>."
+msgstr "<a href=\"%s\">Browso tutto</a> ou <a href=\"%s\">demandus adder une</a>."
+
+#: app/views/public_body/show.rhtml:50
+msgid ""
+"<a href=\"%s\">Make a new Freedom of Information request</a> to "
+"{{public_body_name}}"
+msgstr "<a href=\"%s\">Makando une Libera de Information requesti</a> a {{public_body_name}}"
+
+#: app/views/general/search.rhtml:118
+msgid ""
+"<strong><code>commented_by:tony_bowden</code></strong> to search annotations "
+"made by Tony Bowden, typing the name as in the URL."
+msgstr ""
+"<strong><code>commented_by:tony_bowden</code></strong> a busquar annotationi \n"
+"makando para Tony Bowden, typar la nom con en el URL."
+
+#: app/views/general/search.rhtml:120
+msgid ""
+"<strong><code>filetype:pdf</code></strong> to find all responses with PDF "
+"attachments. Or try these: <code>{{list_of_file_extensions}}</code>"
+msgstr ""
+
+#: app/views/general/search.rhtml:119
+msgid ""
+"<strong><code>request:</code></strong> to restrict to a specific request, "
+"typing the title as in the URL."
+msgstr ""
+
+#: app/views/general/search.rhtml:117
+msgid ""
+"<strong><code>requested_by:julian_todd</code></strong> to search requests "
+"made by Julian Todd, typing the name as in the URL."
+msgstr ""
+
+#: app/views/general/search.rhtml:116
+msgid ""
+"<strong><code>requested_from:home_office</code></strong> to search requests "
+"from the Home Office, typing the name as in the URL."
+msgstr ""
+
+#: app/views/general/search.rhtml:114
+msgid ""
+"<strong><code>status:</code></strong> to select based on the status or "
+"historical status of the request, see the <a href=\"%s\">table of statuses</"
+"a> below."
+msgstr ""
+
+#: app/views/general/search.rhtml:122
+msgid ""
+"<strong><code>tag:charity</code></strong> to find all public bodies or "
+"requests with a given tag. You can include multiple tags, \n"
+" and tag values, e.g. <code>tag:openlylocal AND tag:"
+"financial_transaction:335633</code>. Note that by default any of the tags\n"
+" can be present, you have to put <code>AND</code> explicitly if you only "
+"want results them all present."
+msgstr ""
+
+#: app/views/general/search.rhtml:115
+msgid ""
+"<strong><code>variety:</code></strong> to select type of thing to search "
+"for, see the <a href=\"%s\">table of varieties</a> below."
+msgstr ""
+
+#: app/models/user.rb:54
+msgid "Admin level is not included in list"
+msgstr ""
+
+#: app/views/general/search.rhtml:31 app/views/general/search.rhtml:109
+msgid "Advanced search tips"
+msgstr ""
+
+#: app/views/general/search.rhtml:17
+msgid ""
+"Can't find it? <a href=\"%s\">Browse all</a> or <a href=\"%s\">ask us to add "
+"it</a>."
+msgstr ""
+"No busquara? <a href=\"%s\">Browse tutti</a> ou <a href=\"%s\">demanda a nous a addare \"\n"
+"\"la</a> "
+
+#: locale/model_attributes.rb:46
+msgid "CensorRule|Last edit comment"
+msgstr ""
+
+#: locale/model_attributes.rb:45
+msgid "CensorRule|Last edit editor"
+msgstr ""
+
+#: locale/model_attributes.rb:44
+msgid "CensorRule|Replacement"
+msgstr ""
+
+#: locale/model_attributes.rb:43
+msgid "CensorRule|Text"
+msgstr ""
+
+#: app/views/public_body/show.rhtml:17 app/views/public_body/show.rhtml:19
+msgid "Charity registration"
+msgstr ""
+
+#: locale/model_attributes.rb:22
+msgid "Comment|Body"
+msgstr ""
+
+#: locale/model_attributes.rb:21
+msgid "Comment|Comment type"
+msgstr ""
+
+#: locale/model_attributes.rb:24
+msgid "Comment|Locale"
+msgstr ""
+
+#: locale/model_attributes.rb:23
+msgid "Comment|Visible"
+msgstr ""
+
+#: app/views/layouts/default.rhtml:147
+msgid "Contact {{site_name}}"
+msgstr ""
+
+#: app/models/profile_photo.rb:96
+msgid ""
+"Couldn't understand the image file that you uploaded. PNG, JPEG, GIF and "
+"many other common image file formats are supported."
+msgstr ""
+
+#: app/views/general/search.rhtml:50 app/views/general/search.rhtml:62
+msgid "Did you mean: {{correction}}"
+msgstr ""
+
+#: app/views/admin_public_body/_locale_selector.rhtml:2
+msgid "Edit language version:"
+msgstr ""
+
+#: app/views/comment/_comment_form.rhtml:9
+msgid "Email me future updates to this request"
+msgstr ""
+
+#: app/views/general/search.rhtml:111
+msgid ""
+"Enter words that you want to find separated by spaces, e.g. <strong>climbing "
+"lane</strong>"
+msgstr ""
+
+#: locale/model_attributes.rb:61
+msgid "EximLogDone|Filename"
+msgstr ""
+
+#: locale/model_attributes.rb:62
+msgid "EximLogDone|Last stat"
+msgstr ""
+
+#: locale/model_attributes.rb:19
+msgid "EximLog|Line"
+msgstr ""
+
+#: locale/model_attributes.rb:18
+msgid "EximLog|Order"
+msgstr ""
+
+#: app/views/general/search.rhtml:90
+msgid ""
+"FOI requests {{start_count}} to {{end_count}} of {{total_count}} for "
+"{{user_search_query}}"
+msgstr ""
+
+#: app/models/profile_photo.rb:101
+msgid "Failed to convert image to a PNG"
+msgstr ""
+
+#: app/models/profile_photo.rb:105
+msgid ""
+"Failed to convert image to the correct size: at %{cols}x%{rows}, need %"
+"{width}x%{height}"
+msgstr ""
+
+#: app/views/general/frontpage.rhtml:8
+msgid ""
+"First, type in the <strong>name of the UK public authority</strong> you'd \n"
+" <br>like information from. <strong>By law, they have to respond</"
+"strong>\n"
+" (<a href=\"%s\">why?</a>)."
+msgstr ""
+"Premiero, si poco <strong>nomo de Seblando publicus authoritita</strong> \n"
+"tu <br>amo informatia. <strong>Con legalando, se obligandus respondre</strong> (<a href=\"%s\">pour acqui?</a>)."
+
+#: app/views/public_body/show.rhtml:61
+msgid ""
+"For an unknown reason, it is not possible to make a request to this "
+"authority."
+msgstr ""
+
+#: app/views/public_body/show.rhtml:56
+msgid ""
+"Freedom of Information law does not apply to this authority, so you cannot "
+"make\n"
+" a request to it."
+msgstr ""
+
+#: app/views/public_body/show.rhtml:99
+msgid "Freedom of Information requests made"
+msgstr "Makando Libera de Information requesti"
+
+#: app/views/public_body/show.rhtml:73
+msgid "Freedom of Information requests made using this site"
+msgstr "Makando Libera de Information requesti con la site isto"
+
+#: app/views/layouts/default.rhtml:123
+msgid "Hello!"
+msgstr "Nomjour!"
+
+#: app/views/layouts/default.rhtml:120
+msgid "Hello, {{username}}!"
+msgstr "¡{{username}} hola!"
+
+#: app/views/layouts/default.rhtml:115
+msgid "Help"
+msgstr "Aider"
+
+#: locale/model_attributes.rb:58
+msgid "Holiday|Day"
+msgstr ""
+
+#: locale/model_attributes.rb:59
+msgid "Holiday|Description"
+msgstr ""
+
+#: app/views/public_body/show.rhtml:8
+msgid "Home page of authority"
+msgstr "La pago home del authoritias"
+
+#: locale/model_attributes.rb:64
+msgid "IncomingMessage|Cached attachment text clipped"
+msgstr ""
+
+#: locale/model_attributes.rb:65
+msgid "IncomingMessage|Cached main body text folded"
+msgstr ""
+
+#: locale/model_attributes.rb:66
+msgid "IncomingMessage|Cached main body text unfolded"
+msgstr ""
+
+#: locale/model_attributes.rb:39
+msgid "InfoRequestEvent|Calculated state"
+msgstr ""
+
+#: locale/model_attributes.rb:38
+msgid "InfoRequestEvent|Described state"
+msgstr ""
+
+#: locale/model_attributes.rb:36
+msgid "InfoRequestEvent|Event type"
+msgstr ""
+
+#: locale/model_attributes.rb:40
+msgid "InfoRequestEvent|Last described at"
+msgstr ""
+
+#: locale/model_attributes.rb:37
+msgid "InfoRequestEvent|Params yaml"
+msgstr ""
+
+#: locale/model_attributes.rb:41
+msgid "InfoRequestEvent|Prominence"
+msgstr ""
+
+#: locale/model_attributes.rb:87
+msgid "InfoRequest|Allow new responses from"
+msgstr ""
+
+#: locale/model_attributes.rb:83
+msgid "InfoRequest|Awaiting description"
+msgstr ""
+
+#: locale/model_attributes.rb:82
+msgid "InfoRequest|Described state"
+msgstr ""
+
+#: locale/model_attributes.rb:88
+msgid "InfoRequest|Handle rejected responses"
+msgstr ""
+
+#: locale/model_attributes.rb:86
+msgid "InfoRequest|Law used"
+msgstr ""
+
+#: locale/model_attributes.rb:84
+msgid "InfoRequest|Prominence"
+msgstr ""
+
+#: locale/model_attributes.rb:81
+msgid "InfoRequest|Title"
+msgstr ""
+
+#: locale/model_attributes.rb:85
+msgid "InfoRequest|Url title"
+msgstr ""
+
+#: app/views/layouts/default.rhtml:17
+msgid "Make and browse Freedom of Information (FOI) requests"
+msgstr "Makando et browser los Libera de Information requesti"
+
+#: app/views/layouts/default.rhtml:89
+msgid "Make and explore Freedom of Information requests"
+msgstr "Makando et explorator los Libera de Information requesti"
+
+#: app/views/general/frontpage.rhtml:4
+msgid "Make or explore Freedom of Information requests"
+msgstr "\"Makando ou explorator los Libera de Information requesti"
+
+#: app/views/layouts/default.rhtml:108
+msgid "Make request"
+msgstr "Creer requesto"
+
+#: app/views/public_body/show.rhtml:6
+msgid "More about this authority"
+msgstr "Mas ou subjet du autoritas"
+
+#: app/views/general/frontpage.rhtml:41
+msgid "More authorities..."
+msgstr "Mas autorititatas..."
+
+#: app/views/general/frontpage.rhtml:55
+msgid "More successful requests..."
+msgstr "Mas requestos de suces"
+
+#: app/views/layouts/default.rhtml:112
+msgid "My requests"
+msgstr "Mes requestos"
+
+#: app/models/public_body.rb:36
+msgid "Name can't be blank"
+msgstr "Nom ne possiblo emptar"
+
+#: app/models/public_body.rb:40
+msgid "Name is already taken"
+msgstr "Nom deja prendar"
+
+#: app/views/general/search.rhtml:40
+msgid "Newest results first"
+msgstr "Los resultas la mas nouvela premer"
+
+#: app/views/general/search.rhtml:16
+msgid "Next, select the public authority you'd like to make the request from."
+msgstr "Maintena, shala el authoritas publicas que tu aimer requestar por"
+
+#: app/views/general/search.rhtml:48
+msgid "No public authorities found"
+msgstr "Nulla authoritas publiqua trouves"
+
+#: app/views/public_body/show.rhtml:74
+msgid ""
+"Nobody has made any Freedom of Information requests to {{public_body_name}} "
+"using this site yet."
+msgstr "Nonna persona crear los requestos Libras Informatias a {{public_body_name}} con esto sita"
+
+#: app/views/general/search.rhtml:7
+msgid "Nothing found for '{{search_terms}}'"
+msgstr "Rien por {{search_terms}}"
+
+#: app/views/general/frontpage.rhtml:25
+msgid ""
+"OR, <strong>search</strong> for information others have requested using "
+"{{site_name}}"
+msgstr "Ou <strong>busqar</strong> per infos los autros requesta com {{site_name}}"
+
+#: app/views/public_body/show.rhtml:92
+msgid "Only requests made using {{site_name}} are shown."
+msgstr "Seul los requestos crear con {{site_name}} heerro"
+
+#: locale/model_attributes.rb:26
+msgid "OutgoingMessage|Body"
+msgstr ""
+
+#: locale/model_attributes.rb:29
+msgid "OutgoingMessage|Last sent at"
+msgstr ""
+
+#: locale/model_attributes.rb:28
+msgid "OutgoingMessage|Message type"
+msgstr ""
+
+#: locale/model_attributes.rb:27
+msgid "OutgoingMessage|Status"
+msgstr ""
+
+#: locale/model_attributes.rb:30
+msgid "OutgoingMessage|What doing"
+msgstr ""
+
+#: app/views/general/search.rhtml:80
+msgid ""
+"People {{start_count}} to {{end_count}} of {{total_count}} for "
+"{{user_search_query}}"
+msgstr "Peuples {{start_count}} a {{end_count}} de {{total_count}} pour {{user_search_query}}"
+
+#: app/models/profile_photo.rb:91
+msgid "Please choose a file containing your photo."
+msgstr ""
+
+#: app/models/outgoing_message.rb:162
+msgid "Please choose what sort of reply you are making."
+msgstr "Por favor, show el typo de respondra tu creeara"
+
+#: app/models/info_request.rb:104
+msgid ""
+"Please describe more what the request is about in the subject. There is no "
+"need to say it is an FOI request, we add that on anyway."
+msgstr ""
+
+#: app/models/user.rb:38
+msgid "Please enter a password"
+msgstr ""
+
+#: app/models/contact_validator.rb:30
+msgid "Please enter a subject"
+msgstr "Por favor, creear una suject"
+
+#: app/models/info_request.rb:35
+msgid "Please enter a summary of your request"
+msgstr ""
+
+#: app/models/user.rb:106
+msgid "Please enter a valid email address"
+msgstr ""
+
+#: app/models/contact_validator.rb:31
+msgid "Please enter the message you want to send"
+msgstr ""
+
+#: app/models/user.rb:49
+msgid "Please enter the same password twice"
+msgstr ""
+
+#: app/models/comment.rb:59
+msgid "Please enter your annotation"
+msgstr ""
+
+#: app/models/contact_validator.rb:29 app/models/user.rb:34
+msgid "Please enter your email address"
+msgstr ""
+
+#: app/models/outgoing_message.rb:147
+msgid "Please enter your follow up message"
+msgstr ""
+
+#: app/models/outgoing_message.rb:150
+msgid "Please enter your letter requesting information"
+msgstr ""
+
+#: app/models/contact_validator.rb:28 app/models/user.rb:36
+msgid "Please enter your name"
+msgstr ""
+
+#: app/models/user.rb:109
+msgid "Please enter your name, not your email address, in the name field."
+msgstr ""
+
+#: app/models/change_email_validator.rb:29
+msgid "Please enter your new email address"
+msgstr ""
+
+#: app/models/change_email_validator.rb:28
+msgid "Please enter your old email address"
+msgstr ""
+
+#: app/models/change_email_validator.rb:30
+msgid "Please enter your password"
+msgstr ""
+
+#: app/models/outgoing_message.rb:145
+msgid "Please give details explaining why you want a review"
+msgstr ""
+
+#: app/models/about_me_validator.rb:24
+msgid "Please keep it shorter than 500 characters"
+msgstr ""
+
+#: app/models/info_request.rb:101
+msgid ""
+"Please keep the summary short, like in the subject of an email. You can use "
+"a phrase, rather than a full sentence."
+msgstr ""
+
+#: app/models/outgoing_message.rb:156
+msgid ""
+"Please sign at the bottom with your name, or alter the \"%{signoff}\" "
+"signature"
+msgstr ""
+
+#: app/models/info_request.rb:36
+msgid "Please write a summary with some text in it"
+msgstr ""
+
+#: app/models/info_request.rb:98
+msgid ""
+"Please write the summary using a mixture of capital and lower case letters. "
+"This makes it easier for others to read."
+msgstr ""
+
+#: app/models/comment.rb:62
+msgid ""
+"Please write your annotation using a mixture of capital and lower case "
+"letters. This makes it easier for others to read."
+msgstr ""
+
+#: app/models/outgoing_message.rb:159
+msgid ""
+"Please write your message using a mixture of capital and lower case letters. "
+"This makes it easier for others to read."
+msgstr ""
+
+#: locale/model_attributes.rb:56
+msgid "PostRedirect|Circumstance"
+msgstr ""
+
+#: locale/model_attributes.rb:54
+msgid "PostRedirect|Email token"
+msgstr ""
+
+#: locale/model_attributes.rb:53
+msgid "PostRedirect|Post params yaml"
+msgstr ""
+
+#: locale/model_attributes.rb:55
+msgid "PostRedirect|Reason params yaml"
+msgstr ""
+
+#: locale/model_attributes.rb:51
+msgid "PostRedirect|Token"
+msgstr ""
+
+#: locale/model_attributes.rb:52
+msgid "PostRedirect|Uri"
+msgstr ""
+
+#: locale/model_attributes.rb:15
+msgid "ProfilePhoto|Data"
+msgstr ""
+
+#: locale/model_attributes.rb:16
+msgid "ProfilePhoto|Draft"
+msgstr ""
+
+#: app/views/general/search.rhtml:70
+msgid ""
+"Public authorities {{start_count}} to {{end_count}} of {{total_count}} for "
+"{{user_search_query}}"
+msgstr ""
+
+#: locale/model_attributes.rb:12
+msgid "PublicBody|First letter"
+msgstr "El premier lettre"
+
+#: locale/model_attributes.rb:10
+msgid "PublicBody|Home page"
+msgstr "La page de home"
+
+#: locale/model_attributes.rb:8
+msgid "PublicBody|Last edit comment"
+msgstr ""
+
+#: locale/model_attributes.rb:7
+msgid "PublicBody|Last edit editor"
+msgstr ""
+
+#: locale/model_attributes.rb:3
+msgid "PublicBody|Name"
+msgstr "La Nom"
+
+#: locale/model_attributes.rb:11
+msgid "PublicBody|Notes"
+msgstr ""
+
+#: locale/model_attributes.rb:13
+msgid "PublicBody|Publication scheme"
+msgstr ""
+
+#: locale/model_attributes.rb:5
+msgid "PublicBody|Request email"
+msgstr ""
+
+#: locale/model_attributes.rb:4
+msgid "PublicBody|Short name"
+msgstr "La nom breva"
+
+#: locale/model_attributes.rb:9
+msgid "PublicBody|Url name"
+msgstr ""
+
+#: locale/model_attributes.rb:6
+msgid "PublicBody|Version"
+msgstr ""
+
+#: app/views/public_body/show.rhtml:11
+msgid "Publication scheme"
+msgstr ""
+
+#: locale/model_attributes.rb:49
+msgid "RawEmail|Data binary"
+msgstr ""
+
+#: locale/model_attributes.rb:48
+msgid "RawEmail|Data text"
+msgstr ""
+
+#: app/views/general/search.rhtml:125
+msgid ""
+"Read about <a href=\"%s\">advanced search operators</a>, such as proximity "
+"and wildcards."
+msgstr ""
+
+#: app/views/layouts/default.rhtml:114
+msgid "Read blog"
+msgstr "Lire bloggo"
+
+#: app/views/general/search.rhtml:42
+msgid "Recently described results first"
+msgstr "Los resultas recentas decriba au premier"
+
+#: app/views/general/search.rhtml:9
+msgid "Results page {{page_number}}"
+msgstr "Page de resultas numero {{page_number}}"
+
+#: app/views/layouts/default.rhtml:102 app/views/general/frontpage.rhtml:16
+#: app/views/general/search.rhtml:29
+msgid "Search"
+msgstr "Busquar"
+
+#: app/views/general/search.rhtml:4
+msgid "Search Freedom of Information requests, public authorities and users"
+msgstr "Busquare Libra Info Requesta, authoritas et personna"
+
+#: app/models/public_body.rb:39
+msgid "Short name is already taken"
+msgstr ""
+
+#: app/views/general/search.rhtml:38
+msgid "Show most relevant results first"
+msgstr ""
+
+#: app/views/layouts/default.rhtml:124
+msgid "Sign in or sign up"
+msgstr "Enregister au signin"
+
+#: app/views/layouts/default.rhtml:121
+msgid "Sign out"
+msgstr "Exito"
+
+#: app/views/general/search.rhtml:128
+msgid "Table of statuses"
+msgstr ""
+
+#: app/views/public_body/show.rhtml:101
+msgid ""
+"The search index is currently offline, so we can't show the Freedom of "
+"Information requests that have been made to this authority."
+msgstr ""
+
+#: app/views/public_body/show.rhtml:59
+msgid "This authority no longer exists, so you cannot make a request to it."
+msgstr ""
+
+#: app/views/public_body/show.rhtml:4
+msgid "Track this authority"
+msgstr "Traqo esto authotito"
+
+#: locale/model_attributes.rb:33
+msgid "TrackThing|Track medium"
+msgstr ""
+
+#: locale/model_attributes.rb:32
+msgid "TrackThing|Track query"
+msgstr ""
+
+#: locale/model_attributes.rb:34
+msgid "TrackThing|Track type"
+msgstr ""
+
+#: app/views/general/search.rhtml:121
+msgid ""
+"Type <strong><code>01/01/2008..14/01/2008</code></strong> to only show "
+"things that happened in the first two weeks of January."
+msgstr ""
+
+#: app/models/public_body.rb:37
+msgid "URL name can't be blank"
+msgstr ""
+
+#: app/views/general/search.rhtml:112
+msgid ""
+"Use OR (in capital letters) where you don't mind which word, e.g. "
+"<strong><code>commons OR lords</code></strong>"
+msgstr ""
+
+#: app/views/general/search.rhtml:113
+msgid ""
+"Use quotes when you want to find an exact phrase, e.g. <strong><code>"
+"\"Liverpool City Council\"</code></strong>"
+msgstr ""
+
+#: locale/model_attributes.rb:68
+msgid "UserInfoRequestSentAlert|Alert type"
+msgstr ""
+
+#: locale/model_attributes.rb:79
+msgid "User|About me"
+msgstr ""
+
+#: locale/model_attributes.rb:77
+msgid "User|Admin level"
+msgstr ""
+
+#: locale/model_attributes.rb:78
+msgid "User|Ban text"
+msgstr ""
+
+#: locale/model_attributes.rb:70
+msgid "User|Email"
+msgstr ""
+
+#: locale/model_attributes.rb:74
+msgid "User|Email confirmed"
+msgstr ""
+
+#: locale/model_attributes.rb:72
+msgid "User|Hashed password"
+msgstr ""
+
+#: locale/model_attributes.rb:76
+msgid "User|Last daily track email"
+msgstr ""
+
+#: locale/model_attributes.rb:71
+msgid "User|Name"
+msgstr ""
+
+#: locale/model_attributes.rb:73
+msgid "User|Salt"
+msgstr ""
+
+#: locale/model_attributes.rb:75
+msgid "User|Url name"
+msgstr ""
+
+#: app/views/public_body/show.rhtml:23
+msgid "View FOI email address"
+msgstr ""
+
+#: app/views/layouts/default.rhtml:110
+msgid "View authorities"
+msgstr ""
+
+#: app/views/layouts/default.rhtml:109
+msgid "View requests"
+msgstr ""
+
+#: app/views/public_body/show.rhtml:40
+msgid ""
+"You can only request information about the environment from this authority."
+msgstr ""
+
+#: app/views/public_body/show.rhtml:31
+msgid "admin"
+msgstr ""
+
+#: app/views/public_body/show.rhtml:29
+msgid "also called {{public_body_short_name}}"
+msgstr "en additionado, nomme {{public_body_short_name}}"
+
+#: locale/model_attributes.rb:42
+msgid "censor rule"
+msgstr ""
+
+#: locale/model_attributes.rb:20
+msgid "comment"
+msgstr ""
+
+#: app/views/general/frontpage.rhtml:18
+msgid "e.g."
+msgstr "par exemplo"
+
+#: locale/model_attributes.rb:17
+msgid "exim log"
+msgstr ""
+
+#: locale/model_attributes.rb:60
+msgid "exim log done"
+msgstr ""
+
+#: locale/model_attributes.rb:57
+msgid "holiday"
+msgstr ""
+
+#: locale/model_attributes.rb:63
+msgid "incoming message"
+msgstr ""
+
+#: locale/model_attributes.rb:80
+msgid "info request"
+msgstr ""
+
+#: locale/model_attributes.rb:35
+msgid "info request event"
+msgstr ""
+
+#: locale/model_attributes.rb:25
+msgid "outgoing message"
+msgstr ""
+
+#: locale/model_attributes.rb:50
+msgid "post redirect"
+msgstr ""
+
+#: locale/model_attributes.rb:14
+msgid "profile photo"
+msgstr ""
+
+#: locale/model_attributes.rb:2
+msgid "public body"
+msgstr ""
+
+#: locale/model_attributes.rb:47
+msgid "raw email"
+msgstr ""
+
+#: locale/model_attributes.rb:31
+msgid "track thing"
+msgstr ""
+
+#: locale/model_attributes.rb:69
+msgid "user"
+msgstr ""
+
+#: locale/model_attributes.rb:67
+msgid "user info request sent alert"
+msgstr ""
+
+#: app/views/general/frontpage.rhtml:51
+msgid "{{length_of_time}} ago"
+msgstr "depuis {{length_of_time}}"
diff --git a/public/images/navimg/alaveteli-logo-header.png b/public/images/navimg/alaveteli-logo-header.png
new file mode 100644
index 000000000..49b529718
--- /dev/null
+++ b/public/images/navimg/alaveteli-logo-header.png
Binary files differ
diff --git a/public/images/navimg/alaveteli-logo.png b/public/images/navimg/alaveteli-logo.png
new file mode 100644
index 000000000..ce9abdd3d
--- /dev/null
+++ b/public/images/navimg/alaveteli-logo.png
Binary files differ
diff --git a/public/stylesheets/ie6-custom.css b/public/stylesheets/ie6-custom.css
new file mode 100644
index 000000000..ae02fe158
--- /dev/null
+++ b/public/stylesheets/ie6-custom.css
@@ -0,0 +1,6 @@
+/* drop your local IE-specific CSS overrides in here */
+
+#banner
+{
+ background-image: url(../images/navimg/alaveteli-100pxd.jpg);
+}
diff --git a/public/stylesheets/main.css b/public/stylesheets/main.css
index 70910a535..c17d95bc0 100644
--- a/public/stylesheets/main.css
+++ b/public/stylesheets/main.css
@@ -36,13 +36,14 @@ body
left: 14px;
height: 55px;
width: 500px;
- z-index: 150;
+ z-index: 200;
text-align: left;
}
#header h1
{
font-size: 0.8em;
line-height: 0em;
+ margin: 0;
}
#header h1 a
@@ -50,10 +51,10 @@ body
color: #f0f0f0;
display: block;
height: 55px;
- background-image: url(../images/navimg/logo-trans.png);
+ background-image: url(../images/navimg/alaveteli-logo.png);
background-repeat: no-repeat;
}
-
+
#header #tagline
{
font-size: 0.8em;
@@ -62,6 +63,16 @@ body
margin: 2px 0 0 0;
color: #626262;
}
+
+ #header #user_locale_switcher
+ {
+ font-size: 0.8em;
+ font-style: italic;
+ text-align: left;
+ margin: 2px 0 0 0;
+ color: #626262;
+ position: absolute;
+ }
/*------------------------------------------------ temp stuff */
#staging, #alpha_notice, #beta
{ }
@@ -102,8 +113,8 @@ body
text-align: center;
}
-/*------------------------------------------------ mysoc logo */
- #mysoclogo
+/*------------------------------------------------ org logo */
+ #orglogo
{
position: absolute;
width: 100%;
@@ -115,7 +126,7 @@ body
height: 40px;
z-index: 100;
}
- #mysoclogo a
+ #orglogo a
{
color: #f0f0f0;
display: block;
@@ -123,7 +134,7 @@ body
clear: none;
height: 55px;
width: 265px;
- background-image: url(../images/navimg/mysoc-logo-header.png);
+ background-image: url(../images/navimg/alaveteli-logo-header.png);
background-repeat: no-repeat;
background-position: 125px 15px;
}
diff --git a/script/generate_pot.sh b/script/generate_pot.sh
new file mode 100644
index 000000000..fc693f6c8
--- /dev/null
+++ b/script/generate_pot.sh
@@ -0,0 +1,8 @@
+#!/bin/bash
+
+cd `dirname $0`
+
+rake gettext:store_model_attributes
+rake gettext:find
+
+#rake translate_routes:update_yaml["en es"]
diff --git a/spec/controllers/admin_public_body_controller_spec.rb b/spec/controllers/admin_public_body_controller_spec.rb
index db2e449f8..a32c27dd9 100644
--- a/spec/controllers/admin_public_body_controller_spec.rb
+++ b/spec/controllers/admin_public_body_controller_spec.rb
@@ -2,7 +2,7 @@ require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
describe AdminPublicBodyController, "when administering public bodies" do
integrate_views
- fixtures :public_bodies
+ fixtures :public_bodies, :public_body_translations
it "shows the index page" do
get :index
@@ -43,3 +43,57 @@ describe AdminPublicBodyController, "when administering public bodies" do
end
+
+describe AdminPublicBodyController, "when administering public bodies with i18n" do
+ integrate_views
+ fixtures :public_bodies, :public_body_translations
+
+ it "shows the index page" do
+ get :index
+ end
+
+ it "searches for 'humpa'" do
+ get :index, {:query => "humpa", :locale => "es"}
+ assigns[:public_bodies].should == [ public_bodies(:humpadink_public_body) ]
+ end
+
+ it "shows a public body" do
+ get :show, {:id => 2, :locale => "es" }
+ end
+
+ it "creates a new public body" do
+ PublicBody.count.should == 2
+ post :create, { :public_body => { :name => "New Quango", :short_name => "", :tag_string => "blah", :request_email => 'newquango@localhost', :last_edit_comment => 'From test code' } }
+ PublicBody.count.should == 3
+ end
+
+ it "edits a public body" do
+ get :edit, {:id => 3, :locale => 'es'}
+ response.body.should include('Baguette')
+ end
+
+ it "saves edits to a public body" do
+ PublicBody.with_locale(:es) do
+ pb = PublicBody.find(id=3)
+ pb.name.should == "El Department for Humpadinking"
+ end
+
+ post :update, { :id => 3, :public_body => { :name => "Renamed", :short_name => "", :tag_string => "some tags", :request_email => 'edited@localhost', :last_edit_comment => 'From test code' }, :locale => "es" }
+ response.flash[:notice].should include('successful')
+ pb = PublicBody.find(public_bodies(:humpadink_public_body).id)
+ PublicBody.with_locale(:es) do
+ pb.name.should == "Renamed"
+ end
+ PublicBody.with_locale(:en) do
+ pb.name.should == "Department for Humpadinking"
+ end
+ end
+
+ it "destroy a public body" do
+ PublicBody.count.should == 2
+ post :destroy, { :id => 3 }
+ PublicBody.count.should == 1
+ end
+
+
+end
diff --git a/spec/controllers/comment_controller_spec.rb b/spec/controllers/comment_controller_spec.rb
index dfa5be73c..2b0f5eee2 100644
--- a/spec/controllers/comment_controller_spec.rb
+++ b/spec/controllers/comment_controller_spec.rb
@@ -2,7 +2,7 @@ require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
describe CommentController, "when commenting on a request" do
integrate_views
- fixtures :info_requests, :outgoing_messages, :public_bodies, :users, :comments
+ fixtures :info_requests, :outgoing_messages, :public_bodies, :public_body_translations, :users, :comments
it "should give an error and render 'new' template when body text is just some whitespace" do
post :new, :url_title => info_requests(:naughty_chicken_request).url_title,
diff --git a/spec/controllers/public_body_controller_spec.rb b/spec/controllers/public_body_controller_spec.rb
index fbab832f6..8b84b89ec 100644
--- a/spec/controllers/public_body_controller_spec.rb
+++ b/spec/controllers/public_body_controller_spec.rb
@@ -4,8 +4,8 @@ require 'json'
describe PublicBodyController, "when showing a body" do
integrate_views
- fixtures :public_bodies, :public_body_versions
-
+ fixtures :public_bodies, :public_body_translations, :public_body_versions
+
it "should be successful" do
get :show, :url_name => "dfh"
response.should be_success
@@ -21,11 +21,28 @@ describe PublicBodyController, "when showing a body" do
assigns[:public_body].should == public_bodies(:humpadink_public_body)
end
+ it "should assign the body using different locale from that used for url_name" do
+ get :show, {:url_name => "dfh", :locale => 'es'}
+ assigns[:public_body].notes.should == "Baguette"
+ end
+
+ it "should assign the body using same locale as that used in url_name" do
+ get :show, {:url_name => "edfh", :locale => 'es'}
+ assigns[:public_body].notes.should == "Baguette"
+ end
+
+ it "should assign the body using same locale as that used in url_name even with wrongly set locale" do
+ PublicBody.with_locale(:en) do
+ get :show, {:url_name => "edfh", :locale => 'es'}
+ response.body.should include('Baguette')
+ end
+ end
+
it "should redirect to newest name if you use historic name of public body in URL" do
get :show, :url_name => "hdink"
response.should redirect_to(:controller => 'public_body', :action => 'show', :url_name => "dfh")
end
-
+
it "should redirect to lower case name if you use mixed case name in URL" do
get :show, :url_name => "dFh"
response.should redirect_to(:controller => 'public_body', :action => 'show', :url_name => "dfh")
@@ -34,8 +51,8 @@ end
describe PublicBodyController, "when listing bodies" do
integrate_views
- fixtures :public_bodies, :public_body_versions
-
+ fixtures :public_bodies, :public_body_translations, :public_body_versions
+
it "should be successful" do
get :list
response.should be_success
@@ -51,6 +68,15 @@ describe PublicBodyController, "when listing bodies" do
assigns[:description].should == "all"
end
+ it "should list bodies in alphabetical order with different locale" do
+ get :list, :locale => "es"
+ response.should render_template('list')
+
+ assigns[:public_bodies].should == [ public_bodies(:geraldine_public_body), public_bodies(:humpadink_public_body) ]
+ assigns[:tag].should == "all"
+ assigns[:description].should == "all"
+ end
+
it "should list a tagged thing on the appropriate list page, and others on the other page, and all still on the all page" do
public_bodies(:humpadink_public_body).tag_string = "foo local_council"
@@ -94,9 +120,9 @@ describe PublicBodyController, "when listing bodies" do
end
describe PublicBodyController, "when showing JSON version for API" do
-
- fixtures :public_bodies
-
+
+ fixtures :public_bodies, :public_body_translations
+
it "should be successful" do
get :show, :url_name => "dfh", :format => "json"
diff --git a/spec/controllers/request_controller_spec.rb b/spec/controllers/request_controller_spec.rb
index cc8513e7f..a543995f6 100644
--- a/spec/controllers/request_controller_spec.rb
+++ b/spec/controllers/request_controller_spec.rb
@@ -1,3 +1,7 @@
+# £2k p/a
+# talk about margins
+#
+
require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
require 'json'
@@ -34,7 +38,7 @@ end
describe RequestController, "when showing one request" do
- fixtures :info_requests, :info_request_events, :public_bodies, :users, :incoming_messages, :raw_emails, :outgoing_messages, :comments # all needed as integrating views
+ fixtures :info_requests, :info_request_events, :public_bodies, :public_body_translations, :public_body_translations, :users, :incoming_messages, :raw_emails, :outgoing_messages, :comments # all needed as integrating views
it "should be successful" do
get :show, :url_title => 'why_do_you_have_such_a_fancy_dog'
@@ -183,7 +187,7 @@ describe RequestController, "when showing one request" do
end
describe RequestController, "when changing prominence of a request" do
- fixtures :info_requests, :info_request_events, :public_bodies, :users, :incoming_messages, :raw_emails, :outgoing_messages # all needed as integrating views
+ fixtures :info_requests, :info_request_events, :public_bodies, :public_body_translations, :users, :incoming_messages, :raw_emails, :outgoing_messages # all needed as integrating views
it "should not show hidden requests" do
ir = info_requests(:fancy_dog_request)
@@ -268,7 +272,7 @@ end
describe RequestController, "when creating a new request" do
integrate_views
- fixtures :info_requests, :outgoing_messages, :public_bodies, :users
+ fixtures :info_requests, :outgoing_messages, :public_bodies, :public_body_translations, :users
before do
@user = users(:bob_smith_user)
@@ -455,7 +459,7 @@ end
describe RequestController, "when viewing an individual response for reply/followup" do
integrate_views
- fixtures :info_requests, :info_request_events, :public_bodies, :users, :incoming_messages, :raw_emails, :outgoing_messages, :comments # all needed as integrating views
+ fixtures :info_requests, :info_request_events, :public_bodies, :public_body_translations, :users, :incoming_messages, :raw_emails, :outgoing_messages, :comments # all needed as integrating views
it "should ask for login if you are logged in as wrong person" do
session[:user_id] = users(:silly_name_user).id
@@ -482,7 +486,7 @@ end
describe RequestController, "when classifying an information request" do
- fixtures :info_requests, :info_request_events, :public_bodies, :users, :incoming_messages, :raw_emails, :outgoing_messages, :comments # all needed as integrating views
+ fixtures :info_requests, :info_request_events, :public_bodies, :public_body_translations, :users, :incoming_messages, :raw_emails, :outgoing_messages, :comments # all needed as integrating views
before do
@dog_request = info_requests(:fancy_dog_request)
@@ -800,7 +804,7 @@ end
describe RequestController, "when sending a followup message" do
integrate_views
- fixtures :info_requests, :info_request_events, :public_bodies, :users, :incoming_messages, :raw_emails, :outgoing_messages # all needed as integrating views
+ fixtures :info_requests, :info_request_events, :public_bodies, :public_body_translations, :users, :incoming_messages, :raw_emails, :outgoing_messages # all needed as integrating views
it "should require login" do
post :show_response, :outgoing_message => { :body => "What a useless response! You suck.", :what_doing => 'normal_sort' }, :id => info_requests(:fancy_dog_request).id, :incoming_message_id => incoming_messages(:useless_incoming_message), :submitted_followup => 1
@@ -880,7 +884,7 @@ end
describe RequestController, "sending overdue request alerts" do
integrate_views
- fixtures :info_requests, :info_request_events, :public_bodies, :users, :incoming_messages, :raw_emails, :outgoing_messages # all needed as integrating views
+ fixtures :info_requests, :info_request_events, :public_bodies, :public_body_translations, :users, :incoming_messages, :raw_emails, :outgoing_messages # all needed as integrating views
it "should send an overdue alert mail to creators of overdue requests" do
chicken_request = info_requests(:naughty_chicken_request)
@@ -964,7 +968,7 @@ end
describe RequestController, "sending unclassified new response reminder alerts" do
integrate_views
- fixtures :info_requests, :info_request_events, :public_bodies, :users, :incoming_messages, :raw_emails, :outgoing_messages, :comments # all needed as integrating views
+ fixtures :info_requests, :info_request_events, :public_bodies, :public_body_translations, :users, :incoming_messages, :raw_emails, :outgoing_messages, :comments # all needed as integrating views
it "should send an alert" do
RequestMailer.alert_new_response_reminders
@@ -991,7 +995,7 @@ end
describe RequestController, "clarification required alerts" do
integrate_views
- fixtures :info_requests, :info_request_events, :public_bodies, :users, :incoming_messages, :raw_emails, :outgoing_messages # all needed as integrating views
+ fixtures :info_requests, :info_request_events, :public_bodies, :public_body_translations, :users, :incoming_messages, :raw_emails, :outgoing_messages # all needed as integrating views
it "should send an alert" do
ir = info_requests(:fancy_dog_request)
@@ -1042,7 +1046,7 @@ end
describe RequestController, "comment alerts" do
integrate_views
- fixtures :info_requests, :info_request_events, :public_bodies, :users, :incoming_messages, :raw_emails, :outgoing_messages, :comments # all needed as integrating views
+ fixtures :info_requests, :info_request_events, :public_bodies, :public_body_translations, :users, :incoming_messages, :raw_emails, :outgoing_messages, :comments # all needed as integrating views
it "should send an alert (once and once only)" do
# delete ficture comment and make new one, so is in last month (as
@@ -1136,7 +1140,7 @@ end
describe RequestController, "authority uploads a response from the web interface" do
- fixtures :info_requests, :info_request_events, :public_bodies, :users
+ fixtures :info_requests, :info_request_events, :public_bodies, :public_body_translations, :users
before(:all) do
# domain after the @ is used for authentication of FOI officers, so to test it
@@ -1223,7 +1227,7 @@ end
describe RequestController, "when showing JSON version for API" do
- fixtures :info_requests, :info_request_events, :public_bodies, :users, :incoming_messages, :raw_emails, :outgoing_messages, :comments
+ fixtures :info_requests, :info_request_events, :public_bodies, :public_body_translations, :users, :incoming_messages, :raw_emails, :outgoing_messages, :comments
it "should return data in JSON form" do
get :show, :url_title => 'why_do_you_have_such_a_fancy_dog', :format => 'json'
diff --git a/spec/controllers/track_controller_spec.rb b/spec/controllers/track_controller_spec.rb
index c31491375..8076d40c2 100644
--- a/spec/controllers/track_controller_spec.rb
+++ b/spec/controllers/track_controller_spec.rb
@@ -35,13 +35,13 @@ end
describe TrackController, "when sending alerts for a track" do
integrate_views
- fixtures :info_requests, :outgoing_messages, :incoming_messages, :raw_emails, :info_request_events, :users, :track_things, :track_things_sent_emails
+ fixtures :info_requests, :outgoing_messages, :incoming_messages, :raw_emails, :info_request_events, :users, :track_things, :track_things_sent_emails, :public_bodies, :public_body_translations
include LinkToHelper # for main_url
-
+
before do
rebuild_xapian_index
end
-
+
it "should send alerts" do
# set the time the comment event happened at to within the last week
ire = info_request_events(:silly_comment_event)
@@ -94,7 +94,7 @@ end
describe TrackController, "when viewing RSS feed for a track" do
integrate_views
- fixtures :info_requests, :outgoing_messages, :incoming_messages, :raw_emails, :info_request_events, :users, :track_things, :comments, :public_bodies
+ fixtures :info_requests, :outgoing_messages, :incoming_messages, :raw_emails, :info_request_events, :users, :track_things, :comments, :public_bodies, :public_body_translations
before do
rebuild_xapian_index
@@ -119,7 +119,7 @@ end
describe TrackController, "when viewing JSON version of a track feed" do
integrate_views
- fixtures :info_requests, :outgoing_messages, :incoming_messages, :raw_emails, :info_request_events, :users, :track_things, :comments, :public_bodies
+ fixtures :info_requests, :outgoing_messages, :incoming_messages, :raw_emails, :info_request_events, :users, :track_things, :comments, :public_bodies, :public_body_translations
before do
rebuild_xapian_index
diff --git a/spec/controllers/user_controller_spec.rb b/spec/controllers/user_controller_spec.rb
index 9168b0cdd..93ea6de48 100644
--- a/spec/controllers/user_controller_spec.rb
+++ b/spec/controllers/user_controller_spec.rb
@@ -7,7 +7,7 @@ require 'json'
describe UserController, "when showing a user" do
integrate_views
- fixtures :users, :outgoing_messages, :incoming_messages, :raw_emails, :info_requests, :info_request_events, :comments, :public_bodies
+ fixtures :users, :outgoing_messages, :incoming_messages, :raw_emails, :info_requests, :info_request_events, :comments, :public_bodies, :public_body_translations
it "should be successful" do
get :show, :url_name => "bob_smith"
@@ -125,7 +125,7 @@ describe UserController, "when signing in" do
# check is right confirmation URL
mail_token.should == post_redirect.email_token
- params_from(:get, mail_path).should == { :controller => 'user', :action => 'confirm', :email_token => mail_token }
+ params_from(:get, mail_path).should == { :controller => 'user', :action => 'confirm', :email_token => mail_token, :locale => "en" }
# check confirmation URL works
session[:user_id].should be_nil
@@ -420,8 +420,8 @@ describe UserController, "when changing email address" do
"signchangeemail"=>{
"old_email"=>"bob@localhost",
"new_email"=>"newbob@localhost"},
- "controller"=>"user"}
-
+ "controller"=>"user",
+ "locale"=>"en"}
post :signchangeemail, post_redirect.post_params
response.should redirect_to(:controller => 'user', :action => 'show', :url_name => 'bob_smith')
diff --git a/spec/fixtures/public_body_translations.yml b/spec/fixtures/public_body_translations.yml
new file mode 100644
index 000000000..b5e947044
--- /dev/null
+++ b/spec/fixtures/public_body_translations.yml
@@ -0,0 +1,43 @@
+geraldine_es_public_body_translation:
+ name: El A Geraldine Quango
+ first_letter: E
+ request_email: geraldine-requests@localhost
+ id: "1"
+ public_body_id: "2"
+ short_name: eTGQ
+ url_name: etgq
+ locale: es
+ notes: ""
+
+geraldine_en_public_body_translation:
+ name: Geraldine Quango
+ first_letter: G
+ request_email: geraldine-requests@localhost
+ id: "2"
+ public_body_id: "2"
+ short_name: TGQ
+ url_name: tgq
+ locale: en
+ notes: ""
+
+humpadink_es_public_body_translation:
+ name: "El Department for Humpadinking"
+ first_letter: E
+ request_email: humpadink-requests@localhost
+ id: "3"
+ public_body_id: "3"
+ short_name: eDfH
+ url_name: edfh
+ locale: es
+ notes: Baguette
+
+humpadink_en_public_body_translation:
+ name: "Department for Humpadinking"
+ first_letter: D
+ request_email: humpadink-requests@localhost
+ id: "4"
+ public_body_id: "3"
+ short_name: DfH
+ url_name: dfh
+ locale: en
+ notes: An albatross told me!!!
diff --git a/spec/models/has_tag_string_tag_spec.rb b/spec/models/has_tag_string_tag_spec.rb
index 9dfcf3daf..ba439acb8 100644
--- a/spec/models/has_tag_string_tag_spec.rb
+++ b/spec/models/has_tag_string_tag_spec.rb
@@ -1,7 +1,7 @@
require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
describe HasTagString::HasTagStringTag, " when fiddling with tag strings " do
- fixtures :public_bodies
+ fixtures :public_bodies, :public_body_translations
it "should be able to make a new tag and save it" do
@tag = HasTagString::HasTagStringTag.new
diff --git a/spec/models/incoming_message_spec.rb b/spec/models/incoming_message_spec.rb
index 1e2b21964..abbe94a47 100644
--- a/spec/models/incoming_message_spec.rb
+++ b/spec/models/incoming_message_spec.rb
@@ -109,7 +109,7 @@ describe IncomingMessage, " checking validity to reply to" do
end
describe IncomingMessage, " when censoring data" do
- fixtures :incoming_messages, :raw_emails, :public_bodies, :info_requests, :users
+ fixtures :incoming_messages, :raw_emails, :public_bodies, :public_body_translations, :info_requests, :users
before do
@test_data = "There was a mouse called Stilton, he wished that he was blue."
@@ -199,7 +199,7 @@ describe IncomingMessage, " when censoring data" do
end
describe IncomingMessage, " when censoring whole users" do
- fixtures :incoming_messages, :raw_emails, :public_bodies, :info_requests, :users
+ fixtures :incoming_messages, :raw_emails, :public_bodies, :public_body_translations, :info_requests, :users
before do
@test_data = "There was a mouse called Stilton, he wished that he was blue."
diff --git a/spec/models/info_request_spec.rb b/spec/models/info_request_spec.rb
index 59868f647..00ae218da 100644
--- a/spec/models/info_request_spec.rb
+++ b/spec/models/info_request_spec.rb
@@ -40,7 +40,7 @@ describe InfoRequest do
describe " when emailing" do
- fixtures :info_requests, :info_request_events, :public_bodies, :users
+ fixtures :info_requests, :info_request_events, :public_bodies, :public_body_translations, :users
before do
@info_request = info_requests(:fancy_dog_request)
@@ -120,7 +120,7 @@ describe InfoRequest do
end
describe "when calculating the status" do
- fixtures :info_requests, :info_request_events, :holidays, :public_bodies
+ fixtures :info_requests, :info_request_events, :holidays, :public_bodies, :public_body_translations
before do
@ir = info_requests(:naughty_chicken_request)
@@ -160,7 +160,7 @@ describe InfoRequest do
end
describe "when calculating the status for a school" do
- fixtures :info_requests, :info_request_events, :holidays, :public_bodies
+ fixtures :info_requests, :info_request_events, :holidays, :public_bodies, :public_body_translations
before do
@ir = info_requests(:naughty_chicken_request)
diff --git a/spec/models/outgoing_mailer_spec.rb b/spec/models/outgoing_mailer_spec.rb
index e86f5635c..3073c5ffd 100644
--- a/spec/models/outgoing_mailer_spec.rb
+++ b/spec/models/outgoing_mailer_spec.rb
@@ -4,7 +4,7 @@ describe OutgoingMailer, " when working out follow up addresses" do
# This is done with fixtures as the code is a bit tangled with the way it
# calls TMail. XXX untangle it and make these tests spread out and using
# mocks. Put parts of the tests in spec/lib/tmail_extensions.rb
- fixtures :info_requests, :incoming_messages, :raw_emails, :public_bodies
+ fixtures :info_requests, :incoming_messages, :raw_emails, :public_bodies, :public_body_translations
it "should parse them right" do
ir = info_requests(:fancy_dog_request)
@@ -24,7 +24,7 @@ describe OutgoingMailer, " when working out follow up addresses" do
# check the basic entry in the fixture is fine
OutgoingMailer.name_and_email_for_followup(ir, im).should == "foiperson@localhost"
- OutgoingMailer.name_for_followup(ir, im).should == "The Geraldine Quango"
+ OutgoingMailer.name_for_followup(ir, im).should == "Geraldine Quango"
OutgoingMailer.email_for_followup(ir, im).should == "foiperson@localhost"
end
diff --git a/spec/models/public_body_spec.rb b/spec/models/public_body_spec.rb
index f00138ab3..acfe005e8 100644
--- a/spec/models/public_body_spec.rb
+++ b/spec/models/public_body_spec.rb
@@ -95,7 +95,7 @@ describe PublicBody, " using machine tags" do
end
describe PublicBody, "when finding_by_tags" do
- fixtures :public_bodies
+ fixtures :public_bodies, :public_body_translations
before do
@geraldine = public_bodies(:geraldine_public_body)
@@ -161,7 +161,7 @@ describe PublicBody, " when saving" do
end
describe PublicBody, "when searching" do
- fixtures :public_bodies, :public_body_versions
+ fixtures :public_bodies, :public_body_translations, :public_body_versions
it "should find by existing url name" do
body = PublicBody.find_by_url_name_with_historic('dfh')
diff --git a/spec/models/request_mailer_spec.rb b/spec/models/request_mailer_spec.rb
index b9e845c1d..a8311e8f8 100644
--- a/spec/models/request_mailer_spec.rb
+++ b/spec/models/request_mailer_spec.rb
@@ -1,7 +1,7 @@
require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
describe RequestMailer, " when receiving incoming mail" do
- fixtures :info_requests, :incoming_messages, :raw_emails, :users, :public_bodies
+ fixtures :info_requests, :incoming_messages, :raw_emails, :users, :public_bodies, :public_body_translations
it "should append it to the appropriate request" do
ir = info_requests(:fancy_dog_request)
diff --git a/spec/models/xapian_spec.rb b/spec/models/xapian_spec.rb
index 36836d95b..79ffc4839 100644
--- a/spec/models/xapian_spec.rb
+++ b/spec/models/xapian_spec.rb
@@ -34,7 +34,7 @@ describe User, " when indexing users with Xapian" do
end
describe PublicBody, " when indexing public bodies with Xapian" do
- fixtures :public_bodies, :incoming_messages, :outgoing_messages, :raw_emails, :comments
+ fixtures :public_bodies, :public_body_translations, :incoming_messages, :outgoing_messages, :raw_emails, :comments
it "should search index the main name field" do
rebuild_xapian_index
@@ -69,7 +69,7 @@ describe PublicBody, " when indexing public bodies with Xapian" do
end
describe PublicBody, " when indexing requests by body they are to" do
- fixtures :public_bodies, :info_request_events, :info_requests, :raw_emails, :comments
+ fixtures :public_bodies, :public_body_translations, :info_request_events, :info_requests, :raw_emails, :comments
it "should find requests to the body" do
rebuild_xapian_index
@@ -290,7 +290,7 @@ describe InfoRequest, " when indexing requests by tag" do
end
describe PublicBody, " when indexing authorities by tag" do
- fixtures :public_bodies, :incoming_messages, :outgoing_messages, :raw_emails, :comments
+ fixtures :public_bodies, :public_body_translations, :incoming_messages, :outgoing_messages, :raw_emails, :comments
it "should find request by tag, even when changes" do
rebuild_xapian_index
@@ -302,7 +302,6 @@ describe PublicBody, " when indexing authorities by tag" do
xapian_object = InfoRequest.full_search([PublicBody], "tag:mice", 'created_at', true, nil, 100, 1)
xapian_object.results.size.should == 1
xapian_object.results[0][:model] == public_bodies(:geraldine_public_body)
-
xapian_object = InfoRequest.full_search([PublicBody], "tag:mice:3", 'created_at', true, nil, 100, 1)
xapian_object.results.size.should == 1
xapian_object.results[0][:model] == public_bodies(:geraldine_public_body)
diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb
index 6439a0f19..87a89f755 100644
--- a/spec/spec_helper.rb
+++ b/spec/spec_helper.rb
@@ -1,7 +1,6 @@
# This file is copied to ~/spec when you run 'ruby script/generate rspec'
# from the project root directory.
ENV["RAILS_ENV"] ||= 'test'
-RAILS_ENV = "test"
require File.expand_path(File.join(File.dirname(__FILE__),'..','config','environment'))
require 'spec/autorun'
require 'spec/rails'
@@ -17,8 +16,6 @@ Spec::Runner.configure do |config|
# If you're not using ActiveRecord you should remove these
# lines, delete config/database.yml and disable :active_record
# in your config/boot.rb
- config.use_transactional_fixtures = true
- config.use_instantiated_fixtures = false
config.fixture_path = RAILS_ROOT + '/spec/fixtures/'
# == Fixtures
@@ -118,6 +115,11 @@ if $tempfilecount.nil?
def process(action, parameters = nil, session = nil, flash = nil, http_method = 'GET')
# Call original process function
+ if parameters.nil?
+ parameters = {:locale => "en"}
+ elsif not parameters.has_key?(:locale)
+ parameters[:locale] = "en"
+ end
self.original_process(action, parameters, session, flash, http_method)
# XXX Is there a better way to check this than calling a private method?
@@ -133,4 +135,4 @@ if $tempfilecount.nil?
else
puts "WARNING: HTML validation script " + $html_validation_script + " not found"
end
-end \ No newline at end of file
+end
diff --git a/todo.txt b/todo.txt
index 24b0e6bd7..e78429960 100644
--- a/todo.txt
+++ b/todo.txt
@@ -6,6 +6,14 @@ Next (things that will reduce admin time mainly)
- "Can I help out" a bit invisible
Destroy request - does it remove the tags?
+Richard says he wants the internationalisation to be so it could be one site
+with combined search. Why obey the notion of a country? I'm not sure, but
+it might be prudent to write it so it can run multiple jurisdictions in
+one deploy, if only for administrative reasoins.
+ - path maybe: lib/juris/uk, lib/juris/eu etc.
+ - consider Single Table Inheritance (harder to back out of though)
+ - http://code.alexreisner.com/articles/single-table-inheritance-in-rails.html
+ - use mixins with explicit include otherwise
Add links to these tags where possible:
ch:* - Bodies that appear on the Register of Companies. '*' is replaced by the company number, which is eight characters long and consists of optional upper-case letters followed by digits.
diff --git a/vendor/gems/fast_gettext-0.5.10/lib/fast_gettext/storage.rb b/vendor/gems/fast_gettext-0.5.10/lib/fast_gettext/storage.rb
index 7c65fd57a..3ad4ed5b8 100644
--- a/vendor/gems/fast_gettext-0.5.10/lib/fast_gettext/storage.rb
+++ b/vendor/gems/fast_gettext-0.5.10/lib/fast_gettext/storage.rb
@@ -189,4 +189,4 @@ module FastGettext
self.current_cache = caches[text_domain][locale]
end
end
-end \ No newline at end of file
+end
diff --git a/vendor/gems/gettext-2.1.0/.specification b/vendor/gems/gettext-2.1.0/.specification
new file mode 100644
index 000000000..43cf26fff
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/.specification
@@ -0,0 +1,819 @@
+--- !ruby/object:Gem::Specification
+name: gettext
+version: !ruby/object:Gem::Version
+ version: 2.1.0
+platform: ruby
+authors:
+- Masao Mutoh
+autorequire:
+bindir: bin
+cert_chain: []
+
+date: 2009-11-13 00:00:00 +00:00
+default_executable:
+dependencies:
+- !ruby/object:Gem::Dependency
+ name: locale
+ type: :runtime
+ version_requirement:
+ version_requirements: !ruby/object:Gem::Requirement
+ requirements:
+ - - ">="
+ - !ruby/object:Gem::Version
+ version: 2.0.5
+ version:
+description: 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.
+email: mutomasa at gmail.com
+executables:
+- rmsgmerge
+- rmsgfmt
+- rgettext
+extensions: []
+
+extra_rdoc_files: []
+
+files:
+- lib/gettext.rb
+- lib/gettext/core_ext/string.rb
+- lib/gettext/core_ext/iconv.rb
+- lib/gettext/tools/pomessage.rb
+- lib/gettext/tools/rmsgmerge.rb
+- lib/gettext/tools/parser/erb.rb
+- lib/gettext/tools/parser/ruby.rb
+- lib/gettext/tools/parser/glade.rb
+- lib/gettext/tools/rgettext.rb
+- lib/gettext/tools/rmsgfmt.rb
+- lib/gettext/tools/poparser.rb
+- lib/gettext/parser/erb.rb
+- lib/gettext/parser/ruby.rb
+- lib/gettext/parser/glade.rb
+- lib/gettext/utils.rb
+- lib/gettext/tools.rb
+- lib/gettext/version.rb
+- lib/gettext/runtime/locale_path.rb
+- lib/gettext/runtime/mofile.rb
+- lib/gettext/runtime/textdomain_manager.rb
+- lib/gettext/runtime/textdomain_group.rb
+- lib/gettext/runtime/textdomain.rb
+- lib/gettext/runtime/class_info.rb
+- lib/gettext/cgi.rb
+- benchmark/2.0.4.txt
+- benchmark/1.93.0.txt
+- benchmark/test.rb
+- benchmark/2.1.0.txt
+- benchmark/2.0.0.txt
+- benchmark/benchmark.rb
+- gettext.gemspec
+- test/test_po_generation.rb
+- test/test_string.rb
+- test/test_textdomain_bind.rb
+- test/test_textdomain_multi.rb
+- test/test_pomessage.rb
+- test/testlib/gettext.rb
+- test/testlib/pgettext.rb
+- test/testlib/sgettext.rb
+- test/testlib/helper.rb
+- test/testlib/multi_textdomain.rb
+- test/testlib/nsgettext.rb
+- test/testlib/simple.rb
+- test/testlib/ngettext.rb
+- test/testlib/erb.rhtml
+- test/testlib/N_.rb
+- test/testlib/gladeparser.glade
+- test/testlib/erb.rxml
+- test/testlib/npgettext.rb
+- test/test_locale_path.rb
+- test/tools/files/en/test.po
+- test/tools/files/en/app.po
+- test/tools/files/simple_1.po
+- test/tools/files/version.po
+- test/tools/files/simple_translation.rb
+- test/tools/files/simple_2.po
+- test/tools/files/app.pot
+- test/tools/files/de/app.po
+- test/tools/test_tools.rb
+- test/tools/test.pot
+- test/Rakefile
+- test/test_gettext.rb
+- test/test_parser.rb
+- test/locale/ja/LC_MESSAGES/test3.mo
+- test/locale/ja/LC_MESSAGES/rubyparser.mo
+- test/locale/ja/LC_MESSAGES/test1.mo
+- test/locale/ja/LC_MESSAGES/plural_error.mo
+- test/locale/ja/LC_MESSAGES/pgettext.mo
+- test/locale/ja/LC_MESSAGES/test2.mo
+- test/locale/ja/LC_MESSAGES/sgettext.mo
+- test/locale/ja/LC_MESSAGES/nsgettext.mo
+- test/locale/ja/LC_MESSAGES/plural.mo
+- test/locale/ja/LC_MESSAGES/npgettext.mo
+- test/locale/ir/LC_MESSAGES/plural.mo
+- test/locale/sl/LC_MESSAGES/plural.mo
+- test/locale/li/LC_MESSAGES/plural_error.mo
+- test/locale/li/LC_MESSAGES/plural.mo
+- test/locale/la/LC_MESSAGES/plural_error.mo
+- test/locale/la/LC_MESSAGES/plural.mo
+- test/locale/da/LC_MESSAGES/plural_error.mo
+- test/locale/da/LC_MESSAGES/plural.mo
+- test/locale/cr/LC_MESSAGES/plural.mo
+- test/locale/po/LC_MESSAGES/plural.mo
+- test/locale/fr/LC_MESSAGES/test1.mo
+- test/locale/fr/LC_MESSAGES/plural_error.mo
+- test/locale/fr/LC_MESSAGES/test2.mo
+- test/locale/fr/LC_MESSAGES/plural.mo
+- test/test_thread.rb
+- test/README
+- test/po/ja/pgettext.po
+- test/po/ja/plural_error.po
+- test/po/ja/nsgettext.po
+- test/po/ja/test1.po
+- test/po/ja/test3.po
+- test/po/ja/npgettext.po
+- test/po/ja/test2.po
+- test/po/ja/rubyparser.po
+- test/po/ja/sgettext.po
+- test/po/ja/plural.po
+- test/po/ir/plural.po
+- test/po/sl/plural.po
+- test/po/li/plural_error.po
+- test/po/li/plural.po
+- test/po/la/plural_error.po
+- test/po/la/plural.po
+- test/po/da/plural_error.po
+- test/po/da/plural.po
+- test/po/cr/plural.po
+- test/po/po/plural.po
+- test/po/fr/plural_error.po
+- test/po/fr/test1.po
+- test/po/fr/test2.po
+- test/po/fr/plural.po
+- test/test_class_info.rb
+- test/test_textdomain_toplevel.rb
+- Rakefile
+- test.rb
+- README.rdoc
+- ChangeLog
+- src/poparser.ry
+- bin/rmsgmerge
+- bin/rmsgfmt
+- bin/rgettext
+- replace.rb
+- data/locale/ru/LC_MESSAGES/rgettext.mo
+- data/locale/el/LC_MESSAGES/rgettext.mo
+- data/locale/ko/LC_MESSAGES/rgettext.mo
+- data/locale/ja/LC_MESSAGES/rgettext.mo
+- data/locale/sr/LC_MESSAGES/rgettext.mo
+- data/locale/sv/LC_MESSAGES/rgettext.mo
+- data/locale/eo/LC_MESSAGES/rgettext.mo
+- data/locale/bs/LC_MESSAGES/rgettext.mo
+- data/locale/zh/LC_MESSAGES/rgettext.mo
+- data/locale/vi/LC_MESSAGES/rgettext.mo
+- data/locale/et/LC_MESSAGES/rgettext.mo
+- data/locale/it/LC_MESSAGES/rgettext.mo
+- data/locale/zh_TW/LC_MESSAGES/rgettext.mo
+- data/locale/nb/LC_MESSAGES/rgettext.mo
+- data/locale/ua/LC_MESSAGES/rgettext.mo
+- data/locale/es/LC_MESSAGES/rgettext.mo
+- data/locale/pt_BR/LC_MESSAGES/rgettext.mo
+- data/locale/hr/LC_MESSAGES/rgettext.mo
+- data/locale/cs/LC_MESSAGES/rgettext.mo
+- data/locale/ca/LC_MESSAGES/rgettext.mo
+- data/locale/hu/LC_MESSAGES/rgettext.mo
+- data/locale/bg/LC_MESSAGES/rgettext.mo
+- data/locale/lv/LC_MESSAGES/rgettext.mo
+- data/locale/de/LC_MESSAGES/rgettext.mo
+- data/locale/nl/LC_MESSAGES/rgettext.mo
+- data/locale/fr/LC_MESSAGES/rgettext.mo
+- NEWS-1
+- COPYING
+- po/ru/rgettext.po
+- po/el/rgettext.po
+- po/ko/rgettext.po
+- po/ja/rgettext.po
+- po/sr/rgettext.po
+- po/sv/rgettext.po
+- po/eo/rgettext.po
+- po/bs/rgettext.po
+- po/rgettext.pot
+- po/zh/rgettext.po
+- po/vi/rgettext.po
+- po/et/rgettext.po
+- po/it/rgettext.po
+- po/zh_TW/rgettext.po
+- po/nb/rgettext.po
+- po/ua/rgettext.po
+- po/es/rgettext.po
+- po/pt_BR/rgettext.po
+- po/hr/rgettext.po
+- po/cs/rgettext.po
+- po/ca/rgettext.po
+- po/hu/rgettext.po
+- po/bg/rgettext.po
+- po/lv/rgettext.po
+- po/de/rgettext.po
+- po/nl/rgettext.po
+- po/fr/rgettext.po
+- ChangeLog-1
+- samples/makemo.rb
+- samples/hello_gtk2.rb
+- samples/hello_glade2.rb
+- samples/hello_tk.rb
+- samples/cgi/http.rb
+- samples/cgi/hellolib.rb
+- samples/cgi/Rakefile
+- samples/cgi/index.cgi
+- samples/cgi/other.rhtml
+- samples/cgi/locale/ru/LC_MESSAGES/hellolib.mo
+- samples/cgi/locale/ru/LC_MESSAGES/helloerb1.mo
+- samples/cgi/locale/ru/LC_MESSAGES/helloerb2.mo
+- samples/cgi/locale/ru/LC_MESSAGES/main.mo
+- samples/cgi/locale/el/LC_MESSAGES/hellolib.mo
+- samples/cgi/locale/el/LC_MESSAGES/helloerb1.mo
+- samples/cgi/locale/el/LC_MESSAGES/helloerb2.mo
+- samples/cgi/locale/el/LC_MESSAGES/main.mo
+- samples/cgi/locale/ko/LC_MESSAGES/hellolib.mo
+- samples/cgi/locale/ko/LC_MESSAGES/helloerb1.mo
+- samples/cgi/locale/ko/LC_MESSAGES/helloerb2.mo
+- samples/cgi/locale/ko/LC_MESSAGES/main.mo
+- samples/cgi/locale/ja/LC_MESSAGES/hellolib.mo
+- samples/cgi/locale/ja/LC_MESSAGES/helloerb1.mo
+- samples/cgi/locale/ja/LC_MESSAGES/helloerb2.mo
+- samples/cgi/locale/ja/LC_MESSAGES/main.mo
+- samples/cgi/locale/sr/LC_MESSAGES/hellolib.mo
+- samples/cgi/locale/sr/LC_MESSAGES/helloerb1.mo
+- samples/cgi/locale/sr/LC_MESSAGES/helloerb2.mo
+- samples/cgi/locale/sr/LC_MESSAGES/main.mo
+- samples/cgi/locale/eo/LC_MESSAGES/hellolib.mo
+- samples/cgi/locale/eo/LC_MESSAGES/helloerb1.mo
+- samples/cgi/locale/eo/LC_MESSAGES/helloerb2.mo
+- samples/cgi/locale/eo/LC_MESSAGES/main.mo
+- samples/cgi/locale/bs/LC_MESSAGES/hellolib.mo
+- samples/cgi/locale/bs/LC_MESSAGES/helloerb1.mo
+- samples/cgi/locale/bs/LC_MESSAGES/helloerb2.mo
+- samples/cgi/locale/bs/LC_MESSAGES/main.mo
+- samples/cgi/locale/zh/LC_MESSAGES/hellolib.mo
+- samples/cgi/locale/zh/LC_MESSAGES/helloerb1.mo
+- samples/cgi/locale/zh/LC_MESSAGES/helloerb2.mo
+- samples/cgi/locale/zh/LC_MESSAGES/main.mo
+- samples/cgi/locale/vi/LC_MESSAGES/hellolib.mo
+- samples/cgi/locale/vi/LC_MESSAGES/helloerb1.mo
+- samples/cgi/locale/vi/LC_MESSAGES/helloerb2.mo
+- samples/cgi/locale/vi/LC_MESSAGES/main.mo
+- samples/cgi/locale/it/LC_MESSAGES/hellolib.mo
+- samples/cgi/locale/it/LC_MESSAGES/helloerb1.mo
+- samples/cgi/locale/it/LC_MESSAGES/helloerb2.mo
+- samples/cgi/locale/it/LC_MESSAGES/main.mo
+- samples/cgi/locale/zh_TW/LC_MESSAGES/hellolib.mo
+- samples/cgi/locale/zh_TW/LC_MESSAGES/helloerb1.mo
+- samples/cgi/locale/zh_TW/LC_MESSAGES/helloerb2.mo
+- samples/cgi/locale/zh_TW/LC_MESSAGES/main.mo
+- samples/cgi/locale/nb/LC_MESSAGES/hellolib.mo
+- samples/cgi/locale/nb/LC_MESSAGES/helloerb1.mo
+- samples/cgi/locale/nb/LC_MESSAGES/helloerb2.mo
+- samples/cgi/locale/nb/LC_MESSAGES/main.mo
+- samples/cgi/locale/ua/LC_MESSAGES/hellolib.mo
+- samples/cgi/locale/ua/LC_MESSAGES/helloerb1.mo
+- samples/cgi/locale/ua/LC_MESSAGES/helloerb2.mo
+- samples/cgi/locale/ua/LC_MESSAGES/main.mo
+- samples/cgi/locale/es/LC_MESSAGES/hellolib.mo
+- samples/cgi/locale/es/LC_MESSAGES/helloerb1.mo
+- samples/cgi/locale/es/LC_MESSAGES/helloerb2.mo
+- samples/cgi/locale/es/LC_MESSAGES/main.mo
+- samples/cgi/locale/pt_BR/LC_MESSAGES/hellolib.mo
+- samples/cgi/locale/pt_BR/LC_MESSAGES/helloerb1.mo
+- samples/cgi/locale/pt_BR/LC_MESSAGES/helloerb2.mo
+- samples/cgi/locale/pt_BR/LC_MESSAGES/main.mo
+- samples/cgi/locale/hr/LC_MESSAGES/hellolib.mo
+- samples/cgi/locale/hr/LC_MESSAGES/helloerb1.mo
+- samples/cgi/locale/hr/LC_MESSAGES/helloerb2.mo
+- samples/cgi/locale/hr/LC_MESSAGES/main.mo
+- samples/cgi/locale/cs/LC_MESSAGES/hellolib.mo
+- samples/cgi/locale/cs/LC_MESSAGES/helloerb1.mo
+- samples/cgi/locale/cs/LC_MESSAGES/helloerb2.mo
+- samples/cgi/locale/cs/LC_MESSAGES/main.mo
+- samples/cgi/locale/ca/LC_MESSAGES/hellolib.mo
+- samples/cgi/locale/ca/LC_MESSAGES/helloerb1.mo
+- samples/cgi/locale/ca/LC_MESSAGES/helloerb2.mo
+- samples/cgi/locale/ca/LC_MESSAGES/main.mo
+- samples/cgi/locale/hu/LC_MESSAGES/hellolib.mo
+- samples/cgi/locale/hu/LC_MESSAGES/helloerb1.mo
+- samples/cgi/locale/hu/LC_MESSAGES/helloerb2.mo
+- samples/cgi/locale/hu/LC_MESSAGES/main.mo
+- samples/cgi/locale/bg/LC_MESSAGES/hellolib.mo
+- samples/cgi/locale/bg/LC_MESSAGES/helloerb1.mo
+- samples/cgi/locale/bg/LC_MESSAGES/helloerb2.mo
+- samples/cgi/locale/bg/LC_MESSAGES/main.mo
+- samples/cgi/locale/lv/LC_MESSAGES/hellolib.mo
+- samples/cgi/locale/lv/LC_MESSAGES/helloerb1.mo
+- samples/cgi/locale/lv/LC_MESSAGES/helloerb2.mo
+- samples/cgi/locale/lv/LC_MESSAGES/main.mo
+- samples/cgi/locale/de/LC_MESSAGES/hellolib.mo
+- samples/cgi/locale/de/LC_MESSAGES/helloerb1.mo
+- samples/cgi/locale/de/LC_MESSAGES/helloerb2.mo
+- samples/cgi/locale/de/LC_MESSAGES/main.mo
+- samples/cgi/locale/nl/LC_MESSAGES/hellolib.mo
+- samples/cgi/locale/nl/LC_MESSAGES/helloerb1.mo
+- samples/cgi/locale/nl/LC_MESSAGES/helloerb2.mo
+- samples/cgi/locale/nl/LC_MESSAGES/main.mo
+- samples/cgi/locale/fr/LC_MESSAGES/hellolib.mo
+- samples/cgi/locale/fr/LC_MESSAGES/helloerb1.mo
+- samples/cgi/locale/fr/LC_MESSAGES/helloerb2.mo
+- samples/cgi/locale/fr/LC_MESSAGES/main.mo
+- samples/cgi/helloerb1.cgi
+- samples/cgi/helloerb.rhtml
+- samples/cgi/helloerb2.cgi
+- samples/cgi/gettext.css
+- samples/cgi/README
+- samples/cgi/po/ru/helloerb2.po
+- samples/cgi/po/ru/main.po
+- samples/cgi/po/ru/helloerb1.po
+- samples/cgi/po/ru/hellolib.po
+- samples/cgi/po/el/helloerb2.po
+- samples/cgi/po/el/main.po
+- samples/cgi/po/el/helloerb1.po
+- samples/cgi/po/el/hellolib.po
+- samples/cgi/po/ko/helloerb2.po
+- samples/cgi/po/ko/main.po
+- samples/cgi/po/ko/helloerb1.po
+- samples/cgi/po/ko/hellolib.po
+- samples/cgi/po/ja/helloerb2.po
+- samples/cgi/po/ja/main.po
+- samples/cgi/po/ja/helloerb1.po
+- samples/cgi/po/ja/hellolib.po
+- samples/cgi/po/hellolib.pot
+- samples/cgi/po/sr/helloerb2.po
+- samples/cgi/po/sr/main.po
+- samples/cgi/po/sr/helloerb1.po
+- samples/cgi/po/sr/hellolib.po
+- samples/cgi/po/eo/helloerb2.po
+- samples/cgi/po/eo/main.po
+- samples/cgi/po/eo/helloerb1.po
+- samples/cgi/po/eo/hellolib.po
+- samples/cgi/po/bs/helloerb2.po
+- samples/cgi/po/bs/main.po
+- samples/cgi/po/bs/helloerb1.po
+- samples/cgi/po/bs/hellolib.po
+- samples/cgi/po/helloerb1.pot
+- samples/cgi/po/zh/helloerb2.po
+- samples/cgi/po/zh/main.po
+- samples/cgi/po/zh/helloerb1.po
+- samples/cgi/po/zh/hellolib.po
+- samples/cgi/po/helloerb2.pot
+- samples/cgi/po/main.pot
+- samples/cgi/po/vi/helloerb2.po
+- samples/cgi/po/vi/main.po
+- samples/cgi/po/vi/helloerb1.po
+- samples/cgi/po/vi/hellolib.po
+- samples/cgi/po/it/helloerb2.po
+- samples/cgi/po/it/main.po
+- samples/cgi/po/it/helloerb1.po
+- samples/cgi/po/it/hellolib.po
+- samples/cgi/po/zh_TW/helloerb2.po
+- samples/cgi/po/zh_TW/main.po
+- samples/cgi/po/zh_TW/helloerb1.po
+- samples/cgi/po/zh_TW/hellolib.po
+- samples/cgi/po/nb/helloerb2.po
+- samples/cgi/po/nb/main.po
+- samples/cgi/po/nb/helloerb1.po
+- samples/cgi/po/nb/hellolib.po
+- samples/cgi/po/ua/helloerb2.po
+- samples/cgi/po/ua/main.po
+- samples/cgi/po/ua/helloerb1.po
+- samples/cgi/po/ua/hellolib.po
+- samples/cgi/po/es/helloerb2.po
+- samples/cgi/po/es/main.po
+- samples/cgi/po/es/helloerb1.po
+- samples/cgi/po/es/hellolib.po
+- samples/cgi/po/pt_BR/helloerb2.po
+- samples/cgi/po/pt_BR/main.po
+- samples/cgi/po/pt_BR/helloerb1.po
+- samples/cgi/po/pt_BR/hellolib.po
+- samples/cgi/po/hr/helloerb2.po
+- samples/cgi/po/hr/main.po
+- samples/cgi/po/hr/helloerb1.po
+- samples/cgi/po/hr/hellolib.po
+- samples/cgi/po/cs/helloerb2.po
+- samples/cgi/po/cs/main.po
+- samples/cgi/po/cs/helloerb1.po
+- samples/cgi/po/cs/hellolib.po
+- samples/cgi/po/ca/helloerb2.po
+- samples/cgi/po/ca/main.po
+- samples/cgi/po/ca/helloerb1.po
+- samples/cgi/po/ca/hellolib.po
+- samples/cgi/po/hu/helloerb2.po
+- samples/cgi/po/hu/main.po
+- samples/cgi/po/hu/helloerb1.po
+- samples/cgi/po/hu/hellolib.po
+- samples/cgi/po/bg/helloerb2.po
+- samples/cgi/po/bg/#main.po#
+- samples/cgi/po/bg/main.po
+- samples/cgi/po/bg/helloerb1.po
+- samples/cgi/po/bg/hellolib.po
+- samples/cgi/po/lv/helloerb2.po
+- samples/cgi/po/lv/main.po
+- samples/cgi/po/lv/helloerb1.po
+- samples/cgi/po/lv/hellolib.po
+- samples/cgi/po/de/helloerb2.po
+- samples/cgi/po/de/main.po
+- samples/cgi/po/de/helloerb1.po
+- samples/cgi/po/de/hellolib.po
+- samples/cgi/po/nl/helloerb2.po
+- samples/cgi/po/nl/main.po
+- samples/cgi/po/nl/helloerb1.po
+- samples/cgi/po/nl/hellolib.po
+- samples/cgi/po/fr/helloerb2.po
+- samples/cgi/po/fr/main.po
+- samples/cgi/po/fr/helloerb1.po
+- samples/cgi/po/fr/hellolib.po
+- samples/cgi/cookie.cgi
+- samples/hello2.rb
+- samples/hello_plural.rb
+- samples/hello_noop.rb
+- samples/locale/ru/LC_MESSAGES/hello_gtk.mo
+- samples/locale/ru/LC_MESSAGES/hello_glade2.mo
+- samples/locale/ru/LC_MESSAGES/hello2.mo
+- samples/locale/ru/LC_MESSAGES/hello_plural.mo
+- samples/locale/ru/LC_MESSAGES/hello_tk.mo
+- samples/locale/ru/LC_MESSAGES/hello_noop.mo
+- samples/locale/ru/LC_MESSAGES/hello.mo
+- samples/locale/el/LC_MESSAGES/hello_gtk.mo
+- samples/locale/el/LC_MESSAGES/hello_glade2.mo
+- samples/locale/el/LC_MESSAGES/hello2.mo
+- samples/locale/el/LC_MESSAGES/hello_plural.mo
+- samples/locale/el/LC_MESSAGES/hello_tk.mo
+- samples/locale/el/LC_MESSAGES/hello_noop.mo
+- samples/locale/el/LC_MESSAGES/hello.mo
+- samples/locale/ko/LC_MESSAGES/hello_gtk.mo
+- samples/locale/ko/LC_MESSAGES/hello_glade2.mo
+- samples/locale/ko/LC_MESSAGES/hello2.mo
+- samples/locale/ko/LC_MESSAGES/hello_plural.mo
+- samples/locale/ko/LC_MESSAGES/hello_tk.mo
+- samples/locale/ko/LC_MESSAGES/hello_noop.mo
+- samples/locale/ko/LC_MESSAGES/hello.mo
+- samples/locale/ja/LC_MESSAGES/hello_gtk.mo
+- samples/locale/ja/LC_MESSAGES/hello_glade2.mo
+- samples/locale/ja/LC_MESSAGES/hello2.mo
+- samples/locale/ja/LC_MESSAGES/hello_plural.mo
+- samples/locale/ja/LC_MESSAGES/hello_tk.mo
+- samples/locale/ja/LC_MESSAGES/hello_noop.mo
+- samples/locale/ja/LC_MESSAGES/hello.mo
+- samples/locale/sr/LC_MESSAGES/hello_gtk.mo
+- samples/locale/sr/LC_MESSAGES/hello_glade2.mo
+- samples/locale/sr/LC_MESSAGES/hello2.mo
+- samples/locale/sr/LC_MESSAGES/hello_plural.mo
+- samples/locale/sr/LC_MESSAGES/hello_tk.mo
+- samples/locale/sr/LC_MESSAGES/hello_noop.mo
+- samples/locale/sr/LC_MESSAGES/hello.mo
+- samples/locale/sv/LC_MESSAGES/hello_gtk.mo
+- samples/locale/sv/LC_MESSAGES/hello_glade2.mo
+- samples/locale/sv/LC_MESSAGES/hello2.mo
+- samples/locale/sv/LC_MESSAGES/hello_plural.mo
+- samples/locale/sv/LC_MESSAGES/hello_tk.mo
+- samples/locale/sv/LC_MESSAGES/hello_noop.mo
+- samples/locale/sv/LC_MESSAGES/hello.mo
+- samples/locale/eo/LC_MESSAGES/hello_gtk.mo
+- samples/locale/eo/LC_MESSAGES/hello_glade2.mo
+- samples/locale/eo/LC_MESSAGES/hello2.mo
+- samples/locale/eo/LC_MESSAGES/hello_plural.mo
+- samples/locale/eo/LC_MESSAGES/hello_tk.mo
+- samples/locale/eo/LC_MESSAGES/hello_noop.mo
+- samples/locale/eo/LC_MESSAGES/hello.mo
+- samples/locale/bs/LC_MESSAGES/hello_gtk.mo
+- samples/locale/bs/LC_MESSAGES/hello_glade2.mo
+- samples/locale/bs/LC_MESSAGES/hello2.mo
+- samples/locale/bs/LC_MESSAGES/hello_plural.mo
+- samples/locale/bs/LC_MESSAGES/hello_tk.mo
+- samples/locale/bs/LC_MESSAGES/hello_noop.mo
+- samples/locale/bs/LC_MESSAGES/hello.mo
+- samples/locale/zh/LC_MESSAGES/hello_gtk.mo
+- samples/locale/zh/LC_MESSAGES/hello_glade2.mo
+- samples/locale/zh/LC_MESSAGES/hello2.mo
+- samples/locale/zh/LC_MESSAGES/hello_plural.mo
+- samples/locale/zh/LC_MESSAGES/hello_tk.mo
+- samples/locale/zh/LC_MESSAGES/hello_noop.mo
+- samples/locale/zh/LC_MESSAGES/hello.mo
+- samples/locale/vi/LC_MESSAGES/hello_gtk.mo
+- samples/locale/vi/LC_MESSAGES/hello_glade2.mo
+- samples/locale/vi/LC_MESSAGES/hello2.mo
+- samples/locale/vi/LC_MESSAGES/hello_plural.mo
+- samples/locale/vi/LC_MESSAGES/hello_tk.mo
+- samples/locale/vi/LC_MESSAGES/hello_noop.mo
+- samples/locale/vi/LC_MESSAGES/hello.mo
+- samples/locale/it/LC_MESSAGES/hello_gtk.mo
+- samples/locale/it/LC_MESSAGES/hello_glade2.mo
+- samples/locale/it/LC_MESSAGES/hello2.mo
+- samples/locale/it/LC_MESSAGES/hello_plural.mo
+- samples/locale/it/LC_MESSAGES/hello_tk.mo
+- samples/locale/it/LC_MESSAGES/hello_noop.mo
+- samples/locale/it/LC_MESSAGES/hello.mo
+- samples/locale/zh_TW/LC_MESSAGES/hello_gtk.mo
+- samples/locale/zh_TW/LC_MESSAGES/hello_glade2.mo
+- samples/locale/zh_TW/LC_MESSAGES/hello2.mo
+- samples/locale/zh_TW/LC_MESSAGES/hello_plural.mo
+- samples/locale/zh_TW/LC_MESSAGES/hello_tk.mo
+- samples/locale/zh_TW/LC_MESSAGES/hello_noop.mo
+- samples/locale/zh_TW/LC_MESSAGES/hello.mo
+- samples/locale/nb/LC_MESSAGES/hello_gtk.mo
+- samples/locale/nb/LC_MESSAGES/hello_glade2.mo
+- samples/locale/nb/LC_MESSAGES/hello2.mo
+- samples/locale/nb/LC_MESSAGES/hello_plural.mo
+- samples/locale/nb/LC_MESSAGES/hello_tk.mo
+- samples/locale/nb/LC_MESSAGES/hello_noop.mo
+- samples/locale/nb/LC_MESSAGES/hello.mo
+- samples/locale/ua/LC_MESSAGES/hello_gtk.mo
+- samples/locale/ua/LC_MESSAGES/hello_glade2.mo
+- samples/locale/ua/LC_MESSAGES/hello2.mo
+- samples/locale/ua/LC_MESSAGES/hello_plural.mo
+- samples/locale/ua/LC_MESSAGES/hello_tk.mo
+- samples/locale/ua/LC_MESSAGES/hello_noop.mo
+- samples/locale/ua/LC_MESSAGES/hello.mo
+- samples/locale/es/LC_MESSAGES/hello_gtk.mo
+- samples/locale/es/LC_MESSAGES/hello_glade2.mo
+- samples/locale/es/LC_MESSAGES/hello2.mo
+- samples/locale/es/LC_MESSAGES/hello_plural.mo
+- samples/locale/es/LC_MESSAGES/hello_tk.mo
+- samples/locale/es/LC_MESSAGES/hello_noop.mo
+- samples/locale/es/LC_MESSAGES/hello.mo
+- samples/locale/pt_BR/LC_MESSAGES/hello_gtk.mo
+- samples/locale/pt_BR/LC_MESSAGES/hello_glade2.mo
+- samples/locale/pt_BR/LC_MESSAGES/hello2.mo
+- samples/locale/pt_BR/LC_MESSAGES/hello_plural.mo
+- samples/locale/pt_BR/LC_MESSAGES/hello_tk.mo
+- samples/locale/pt_BR/LC_MESSAGES/hello_noop.mo
+- samples/locale/pt_BR/LC_MESSAGES/hello.mo
+- samples/locale/hr/LC_MESSAGES/hello_gtk.mo
+- samples/locale/hr/LC_MESSAGES/hello_glade2.mo
+- samples/locale/hr/LC_MESSAGES/hello2.mo
+- samples/locale/hr/LC_MESSAGES/hello_plural.mo
+- samples/locale/hr/LC_MESSAGES/hello_tk.mo
+- samples/locale/hr/LC_MESSAGES/hello_noop.mo
+- samples/locale/hr/LC_MESSAGES/hello.mo
+- samples/locale/cs/LC_MESSAGES/hello_gtk.mo
+- samples/locale/cs/LC_MESSAGES/hello_glade2.mo
+- samples/locale/cs/LC_MESSAGES/hello2.mo
+- samples/locale/cs/LC_MESSAGES/hello_plural.mo
+- samples/locale/cs/LC_MESSAGES/hello_tk.mo
+- samples/locale/cs/LC_MESSAGES/hello_noop.mo
+- samples/locale/cs/LC_MESSAGES/hello.mo
+- samples/locale/ca/LC_MESSAGES/hello_gtk.mo
+- samples/locale/ca/LC_MESSAGES/hello_glade2.mo
+- samples/locale/ca/LC_MESSAGES/hello2.mo
+- samples/locale/ca/LC_MESSAGES/hello_plural.mo
+- samples/locale/ca/LC_MESSAGES/hello_tk.mo
+- samples/locale/ca/LC_MESSAGES/hello_noop.mo
+- samples/locale/ca/LC_MESSAGES/hello.mo
+- samples/locale/hu/LC_MESSAGES/hello_gtk.mo
+- samples/locale/hu/LC_MESSAGES/hello_glade2.mo
+- samples/locale/hu/LC_MESSAGES/hello2.mo
+- samples/locale/hu/LC_MESSAGES/hello_plural.mo
+- samples/locale/hu/LC_MESSAGES/hello_tk.mo
+- samples/locale/hu/LC_MESSAGES/hello_noop.mo
+- samples/locale/hu/LC_MESSAGES/hello.mo
+- samples/locale/bg/LC_MESSAGES/hello_gtk.mo
+- samples/locale/bg/LC_MESSAGES/hello_glade2.mo
+- samples/locale/bg/LC_MESSAGES/hello2.mo
+- samples/locale/bg/LC_MESSAGES/hello_plural.mo
+- samples/locale/bg/LC_MESSAGES/hello_tk.mo
+- samples/locale/bg/LC_MESSAGES/hello_noop.mo
+- samples/locale/bg/LC_MESSAGES/hello.mo
+- samples/locale/lv/LC_MESSAGES/hello_gtk.mo
+- samples/locale/lv/LC_MESSAGES/hello_glade2.mo
+- samples/locale/lv/LC_MESSAGES/hello2.mo
+- samples/locale/lv/LC_MESSAGES/hello_plural.mo
+- samples/locale/lv/LC_MESSAGES/hello_tk.mo
+- samples/locale/lv/LC_MESSAGES/hello_noop.mo
+- samples/locale/lv/LC_MESSAGES/hello.mo
+- samples/locale/de/LC_MESSAGES/hello_gtk.mo
+- samples/locale/de/LC_MESSAGES/hello_glade2.mo
+- samples/locale/de/LC_MESSAGES/hello2.mo
+- samples/locale/de/LC_MESSAGES/hello_plural.mo
+- samples/locale/de/LC_MESSAGES/hello_tk.mo
+- samples/locale/de/LC_MESSAGES/hello_noop.mo
+- samples/locale/de/LC_MESSAGES/hello.mo
+- samples/locale/nl/LC_MESSAGES/hello_gtk.mo
+- samples/locale/nl/LC_MESSAGES/hello_glade2.mo
+- samples/locale/nl/LC_MESSAGES/hello2.mo
+- samples/locale/nl/LC_MESSAGES/hello_plural.mo
+- samples/locale/nl/LC_MESSAGES/hello_tk.mo
+- samples/locale/nl/LC_MESSAGES/hello_noop.mo
+- samples/locale/nl/LC_MESSAGES/hello.mo
+- samples/locale/fr/LC_MESSAGES/hello_gtk.mo
+- samples/locale/fr/LC_MESSAGES/hello_glade2.mo
+- samples/locale/fr/LC_MESSAGES/hello2.mo
+- samples/locale/fr/LC_MESSAGES/hello_plural.mo
+- samples/locale/fr/LC_MESSAGES/hello_tk.mo
+- samples/locale/fr/LC_MESSAGES/hello_noop.mo
+- samples/locale/fr/LC_MESSAGES/hello.mo
+- samples/hello_glade2.glade
+- samples/README
+- samples/po/ru/hello_glade2.po
+- samples/po/ru/hello_noop.po
+- samples/po/ru/hello_plural.po
+- samples/po/ru/hello_gtk.po
+- samples/po/ru/hello2.po
+- samples/po/ru/hello.po
+- samples/po/ru/hello_tk.po
+- samples/po/el/hello_glade2.po
+- samples/po/el/hello_noop.po
+- samples/po/el/hello_plural.po
+- samples/po/el/hello_gtk.po
+- samples/po/el/hello2.po
+- samples/po/el/hello.po
+- samples/po/el/hello_tk.po
+- samples/po/ko/hello_glade2.po
+- samples/po/ko/hello_noop.po
+- samples/po/ko/hello_plural.po
+- samples/po/ko/hello_gtk.po
+- samples/po/ko/hello2.po
+- samples/po/ko/hello.po
+- samples/po/ko/hello_tk.po
+- samples/po/ja/hello_glade2.po
+- samples/po/ja/hello_noop.po
+- samples/po/ja/hello_plural.po
+- samples/po/ja/hello_gtk.po
+- samples/po/ja/hello2.po
+- samples/po/ja/hello.po
+- samples/po/ja/hello_tk.po
+- samples/po/hello_tk.pot
+- samples/po/sr/hello_glade2.po
+- samples/po/sr/hello_noop.po
+- samples/po/sr/hello_plural.po
+- samples/po/sr/hello_gtk.po
+- samples/po/sr/hello2.po
+- samples/po/sr/hello.po
+- samples/po/sr/hello_tk.po
+- samples/po/sv/hello_glade2.po
+- samples/po/sv/hello_noop.po
+- samples/po/sv/hello_plural.po
+- samples/po/sv/hello_gtk.po
+- samples/po/sv/hello2.po
+- samples/po/sv/hello.po
+- samples/po/sv/hello_tk.po
+- samples/po/eo/hello_glade2.po
+- samples/po/eo/hello_noop.po
+- samples/po/eo/hello_plural.po
+- samples/po/eo/hello_gtk.po
+- samples/po/eo/hello2.po
+- samples/po/eo/hello.po
+- samples/po/eo/hello_tk.po
+- samples/po/bs/hello_glade2.po
+- samples/po/bs/hello_noop.po
+- samples/po/bs/hello_plural.po
+- samples/po/bs/hello_gtk.po
+- samples/po/bs/hello2.po
+- samples/po/bs/hello.po
+- samples/po/bs/hello_tk.po
+- samples/po/hello_glade2.pot
+- samples/po/zh/hello_glade2.po
+- samples/po/zh/hello_noop.po
+- samples/po/zh/hello_plural.po
+- samples/po/zh/hello_gtk.po
+- samples/po/zh/hello2.po
+- samples/po/zh/hello.po
+- samples/po/zh/hello_tk.po
+- samples/po/vi/hello_glade2.po
+- samples/po/vi/hello_noop.po
+- samples/po/vi/hello_plural.po
+- samples/po/vi/hello_gtk.po
+- samples/po/vi/hello2.po
+- samples/po/vi/hello.po
+- samples/po/vi/hello_tk.po
+- samples/po/test.rb
+- samples/po/hello_noop.pot
+- samples/po/it/hello_glade2.po
+- samples/po/it/hello_noop.po
+- samples/po/it/hello_plural.po
+- samples/po/it/hello_gtk.po
+- samples/po/it/hello2.po
+- samples/po/it/hello.po
+- samples/po/it/hello_tk.po
+- samples/po/zh_TW/hello_glade2.po
+- samples/po/zh_TW/hello_noop.po
+- samples/po/zh_TW/hello_plural.po
+- samples/po/zh_TW/hello_gtk.po
+- samples/po/zh_TW/hello2.po
+- samples/po/zh_TW/hello.po
+- samples/po/zh_TW/hello_tk.po
+- samples/po/nb/hello_glade2.po
+- samples/po/nb/hello_noop.po
+- samples/po/nb/hello_plural.po
+- samples/po/nb/hello_gtk.po
+- samples/po/nb/hello2.po
+- samples/po/nb/hello.po
+- samples/po/nb/hello_tk.po
+- samples/po/ua/hello_glade2.po
+- samples/po/ua/hello_noop.po
+- samples/po/ua/hello_plural.po
+- samples/po/ua/hello_gtk.po
+- samples/po/ua/hello2.po
+- samples/po/ua/hello.po
+- samples/po/ua/hello_tk.po
+- samples/po/es/hello_glade2.po
+- samples/po/es/hello_noop.po
+- samples/po/es/hello_plural.po
+- samples/po/es/hello_gtk.po
+- samples/po/es/hello2.po
+- samples/po/es/hello.po
+- samples/po/es/hello_tk.po
+- samples/po/pt_BR/hello_glade2.po
+- samples/po/pt_BR/hello_noop.po
+- samples/po/pt_BR/hello_plural.po
+- samples/po/pt_BR/hello_gtk.po
+- samples/po/pt_BR/hello2.po
+- samples/po/pt_BR/hello.po
+- samples/po/pt_BR/hello_tk.po
+- samples/po/hello.pot
+- samples/po/hr/hello_glade2.po
+- samples/po/hr/hello_noop.po
+- samples/po/hr/hello_plural.po
+- samples/po/hr/hello_gtk.po
+- samples/po/hr/hello2.po
+- samples/po/hr/hello.po
+- samples/po/hr/hello_tk.po
+- samples/po/cs/hello_glade2.po
+- samples/po/cs/hello_noop.po
+- samples/po/cs/hello_plural.po
+- samples/po/cs/hello_gtk.po
+- samples/po/cs/hello2.po
+- samples/po/cs/hello.po
+- samples/po/cs/hello_tk.po
+- samples/po/hello_gtk.pot
+- samples/po/ca/hello_glade2.po
+- samples/po/ca/hello_noop.po
+- samples/po/ca/hello_plural.po
+- samples/po/ca/hello_gtk.po
+- samples/po/ca/hello2.po
+- samples/po/ca/hello.po
+- samples/po/ca/hello_tk.po
+- samples/po/hello_plural.pot
+- samples/po/hu/hello_glade2.po
+- samples/po/hu/hello_noop.po
+- samples/po/hu/hello_plural.po
+- samples/po/hu/hello_gtk.po
+- samples/po/hu/hello2.po
+- samples/po/hu/hello.po
+- samples/po/hu/hello_tk.po
+- samples/po/bg/hello_glade2.po
+- samples/po/bg/hello_noop.po
+- samples/po/bg/hello_plural.po
+- samples/po/bg/hello_gtk.po
+- samples/po/bg/hello2.po
+- samples/po/bg/hello.po
+- samples/po/bg/hello_tk.po
+- samples/po/lv/hello_glade2.po
+- samples/po/lv/hello_noop.po
+- samples/po/lv/hello_plural.po
+- samples/po/lv/hello_gtk.po
+- samples/po/lv/hello2.po
+- samples/po/lv/hello.po
+- samples/po/lv/hello_tk.po
+- samples/po/de/hello_glade2.po
+- samples/po/de/hello_noop.po
+- samples/po/de/hello_plural.po
+- samples/po/de/hello_gtk.po
+- samples/po/de/hello2.po
+- samples/po/de/hello.po
+- samples/po/de/hello_tk.po
+- samples/po/nl/hello_glade2.po
+- samples/po/nl/hello_noop.po
+- samples/po/nl/hello_plural.po
+- samples/po/nl/hello_gtk.po
+- samples/po/nl/hello2.po
+- samples/po/nl/hello.po
+- samples/po/nl/hello_tk.po
+- samples/po/hello2.pot
+- samples/po/fr/hello_glade2.po
+- samples/po/fr/hello_noop.po
+- samples/po/fr/hello_plural.po
+- samples/po/fr/hello_gtk.po
+- samples/po/fr/hello2.po
+- samples/po/fr/hello.po
+- samples/po/fr/hello_tk.po
+- samples/hello.rb
+has_rdoc: true
+homepage: http://gettext.rubyforge.org/
+post_install_message:
+rdoc_options: []
+
+require_paths:
+- lib
+required_ruby_version: !ruby/object:Gem::Requirement
+ requirements:
+ - - ">="
+ - !ruby/object:Gem::Version
+ version: "0"
+ version:
+required_rubygems_version: !ruby/object:Gem::Requirement
+ requirements:
+ - - ">="
+ - !ruby/object:Gem::Version
+ version: "0"
+ version:
+requirements: []
+
+rubyforge_project: gettext
+rubygems_version: 1.2.0
+signing_key:
+specification_version: 3
+summary: Ruby-GetText-Package is a libary and tools to localize messages.
+test_files: []
+
diff --git a/vendor/gems/gettext-2.1.0/COPYING b/vendor/gems/gettext-2.1.0/COPYING
new file mode 100644
index 000000000..9043404a8
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/COPYING
@@ -0,0 +1,56 @@
+Ruby is copyrighted free software by Yukihiro Matsumoto <matz@netlab.jp>.
+You can redistribute it and/or modify it under either the terms of the GPL
+version 2 (see the file GPL), or the conditions below:
+
+ 1. You may make and give away verbatim copies of the source form of the
+ software without restriction, provided that you duplicate all of the
+ original copyright notices and associated disclaimers.
+
+ 2. You may modify your copy of the software in any way, provided that
+ you do at least ONE of the following:
+
+ a) place your modifications in the Public Domain or otherwise
+ make them Freely Available, such as by posting said
+ modifications to Usenet or an equivalent medium, or by allowing
+ the author to include your modifications in the software.
+
+ b) use the modified software only within your corporation or
+ organization.
+
+ c) give non-standard binaries non-standard names, with
+ instructions on where to get the original software distribution.
+
+ d) make other distribution arrangements with the author.
+
+ 3. You may distribute the software in object code or binary form,
+ provided that you do at least ONE of the following:
+
+ a) distribute the binaries and library files of the software,
+ together with instructions (in the manual page or equivalent)
+ on where to get the original distribution.
+
+ b) accompany the distribution with the machine-readable source of
+ the software.
+
+ c) give non-standard binaries non-standard names, with
+ instructions on where to get the original software distribution.
+
+ d) make other distribution arrangements with the author.
+
+ 4. You may modify and include the part of the software into any other
+ software (possibly commercial). But some files in the distribution
+ are not written by the author, so that they are not under these terms.
+
+ For the list of those files and their copying conditions, see the
+ file LEGAL.
+
+ 5. The scripts and library files supplied as input to or produced as
+ output from the software do not automatically fall under the
+ copyright of the software, but belong to whomever generated them,
+ and may be sold commercially, and may be aggregated with this
+ software.
+
+ 6. THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR
+ IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ PURPOSE.
diff --git a/vendor/gems/gettext-2.1.0/ChangeLog b/vendor/gems/gettext-2.1.0/ChangeLog
new file mode 100644
index 000000000..90971463f
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/ChangeLog
@@ -0,0 +1,78 @@
+= Ruby-GetText-Package-2.1.0 (2009-11-11)
+ * Implemented parsing of translator comments (GNU gettext feature)
+ [by Vladimir Dobriakov]
+ * Refactor the directory structure.
+ * Move files for runtime to lib/gettext/runtime/*.
+ * Move files for development(rgettext/rmsgfmt) to
+ lib/gettext/tools/*.
+ * Refactor parsers for po. po-message object is defined as GetText::PoMessage
+ class. [by Vladimir Dobriakov, Masao Mutoh]
+ * Speed up when lots of objects are created to share the textdomain in each
+ objects. [Reported by Gaël Séchaud.]
+ * Fix "%{foo.bar}" %{"foo.bar".to_sym => "a"} doesn't work.
+ [Bug#26663, Reported by Danilo Castilho]
+ * lib/gettext.rb: Fixed to work unless gem. [Reported by Vladimir Dobriakov]
+ * Fixed a wrong String literal in a CGI sample.
+ [Bug #26531, by Eugene Mikhailov]
+ * Update license information(explicit to use ruby's or LGPL).
+ [Pointed out by Masateru Yoshikawa]
+ * Code cleanup.
+ * Update minor version.
+
+= Ruby-GetText-Package-2.0.4 (2009-05-23)
+ * Fix String#% return nil when the string have no place holders. [by okkez]
+ * Update pofiles and remove old messages.
+ * suppress some warnings on Ruby 1.9.x. [by Nobuhiro IMAI]
+ * Fix not to run tests on Win32.
+
+= Ruby-GetText-Package-2.0.3 (2009-05-09)
+ * Fixed the dependencies. [Reported by Hans de Graaff]
+
+= Ruby-GetText-Package-2.0.2 (2009-05-04)
+ * Support ruby-1.9.1 style format string such as %<foo>d.
+ * Apply new Locale.set_app_language_tags and Locale.candidates.
+ [Suggested by Vladimir Dobriakov]
+ * Enhance to support ruby-1.9.x [by OZAWA Sakuro]
+ * poparser work with proper encoding.
+ * string.rb: #bytesize alias to #size in older ruby version such as 1.8.5.
+ * Fixed bugs
+ * n_() to work when Plural-Forms line in po-file is not correct.
+ [Reported by Sava Chankov (Bug#25570)]
+ * GetText::Locale.default_rules_path : $LOAD_PATH is not well parsed.
+ [by hallelujah]
+ * locale_path.rb: Fixed warning message.
+
+Thanks to:
+ hallelujah, Sava Chankov, OZAWA Sakuro, Vladimir Dobriakov
+
+= Ruby-GetText-Package-2.0.1 (2009-04-17)
+ * Fixed bugs
+ * doesn't work with ruby-1.8.5. [Reported by Dan Coutu]
+ * GetText.locale= can't keep the locale. [Reported by Adam Ilan]
+ * Break backward compatibility of bindtextdomain
+ [Reported by Mamoru Tasaka(#24947), Mathieu Blondel]
+ * Other trivial fixes/improvement.
+ * 1.8 times faster than 2.0.0.
+ * GetText::LocalePath is separated from GetText::TextDomainManager.
+ Improve to find the locale path.
+ * Enhance to support ruby-1.9.x [by OZAWA Sakuro]
+
+Thanks to:
+ OZAWA Sakuro, Tietew, Adam Ilan, Mamoru Tasaka, Mathieu Blondel.
+
+= Ruby-GetText-Package-2.0.0 (2009-03-21)
+ * Separate this library to locale and rails-support to locale,
+ locale_rails, gettext_activerecord, gettext_rails.
+ * Depends on locale(ruby-locale).
+ * Removes to support rails.
+ * A lot of referctoring, improvements.
+ * Thread safe.
+ * New APIs for gettext/tools instead of gettext/utils.
+ * Move to github.com.
+
+Special Thanks to:
+ Michael Grosser: A lot of improvement.
+
+Thanks to:
+ Tietew, Kazuhiro NISHIYAMA, Fabio M.A.
+ Tuptus, Morus Walter, Vladimir Dobriakov, Ramsey.
diff --git a/vendor/gems/gettext-2.1.0/ChangeLog-1 b/vendor/gems/gettext-2.1.0/ChangeLog-1
new file mode 100644
index 000000000..c31d9b313
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/ChangeLog-1
@@ -0,0 +1,2016 @@
+(OBSOLETE: Move to ChangeLog since 2.0.0)
+
+2009-02-05 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * bin/*: Apply all changes.
+
+2009-02-04 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext/parser/ruby.rb: Removed "\000" of plural messages.
+
+2009-01-22 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext/rails_compat.rb, container.rb: Removed.
+ * lib/gettext/erb.rb: Removed.
+ * samples/cgi/*.cgi: Updated.
+ * test/test_parser.rb: Removed the part of active_record.
+
+2009-01-17 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * README, *: Remove files for rails. They will move to gettext_rails.
+
+2008-12-31 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext/*.rb: Reimplemented.
+ * lib/gettext/tools.rb: Added for replacing lib/gettext/utils.rb
+ * lib/gettext/utils.rb: Deprecated. Use tools.rb instead.
+ * lib/gettext/tools/rgettext.rb, rmsgfmt.rb: Move from
+ lib/gettext/rgettext.rb, rmsgfmt.rb.
+
+2008-12-30 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext.rb: Reimplemented.
+ * lib/gettext/textdomain_manager.rb: Reimplemented.
+ * lib/gettext/class_info.rb: Move from lib/gettext.rb.
+ * lib/gettext/core_ext/string.rb, iconv.rb:
+ Move from lib/gettext/string.rb, iconv.rb.
+
+2008-12-12 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext/textdomain.rb: Reimplemented.
+
+2008-12-07 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext/mofile.rb: Rename mo.rb to mofile.rb.
+
+2008-12-06 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/locale.rb, lib/locale/*: Removed(Move to locale.rubyforge.org).
+
+2008-12-02 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * po/de/rails.po, po/ru/rails.po: Improve translations.
+ By Vladimir Dobriakov
+
+2008-12-01 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext/parser/ruby.rb: exit 1 if it occurs parsing error.
+ Reported by Morus Walter.
+
+2008-11-13 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext/rails.rb: Fixed error_messages_for with Array argument.
+ By Tuptus.
+
+2008-11-02 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext/rails.rb: Fixed GetText::Rails::normalized_locale returns
+ wrong value. Bug#22651. Reported by Fabio M.A.
+ * test/test_rails.rb: Add the test for normalized_locale.
+
+2008-10-11 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext/rails.rb: Fixed (before|after)_init_gettext to work under
+ production mode. Reported by Kazuhiro NISHIYAMA.
+
+2008-09-14 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext/rails.rb: Fixed expire_fragment with rails < 2.1.(Bug#21712).
+ * lib/gettext.rb: Remove p_ method when xx("double x") library is loaded
+ because of conflicting the method name.(Bug#21532) Reported by
+ Rémy-Christophe Schermesser, Donald Piret.
+ * lib/gettext/utils.rb: Remove UTF-8 BOM from po-file before executeing
+ msgmerge which doesn't accept BOM. Suggested by César Duque Calle.
+ * po/eo/rgettext.po: Fixed a typo.
+
+2008-09-13 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext/utils.rb: Use msgmerge --help instead of --version to
+ check msgmerge is existed. Suggested by César Duque Calle.
+ * **/po/bg/*.po: Added by Sava Chankov.
+
+2008-08-24 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext/rails.rb: render_file_with_gettext catch Exception and use
+ render_file_without_gettext if render_file_with_gettext is failed.
+ Suggested by Vladimir Dobriakov.
+
+ * lib/locale/posix.rb: Call "locale charmap" to get the system locale charset.
+ Reported by Tatsuki Sugiura.
+
+2008-08-20 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/locale/object.rb: Locale::Object.parse accept nil or "" as locale_name.
+ It replaces to "en". By Vladimir Dobriakov.
+ * test/test_locale.rb: Add the test above.
+
+2008-08-16 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * po/ja/rails.po: Fixed a wrong translation.
+
+2008-08-10 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * po/et/rails.po: Updated by Erkki Eilonen.
+ * po/et/rgettext.po: Added by Erkki Eilonen.
+
+2008-08-07 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * README: Updated.
+ * po/fr/*.po: Updated by Vincent Isambart.
+ * test/test_gettext.rb, test/testlib/npgettext.rb, test/po/ja/test_npgettext.po:
+ Add test for np_(npgettext).
+
+2008-08-03 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext/rgettext.rb, lib/gettext/parser/ruby.rb:
+ Add npgettext support.
+
+2008-07-31 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext/rails.rb: Works on rails-2.0.2 again.
+
+2008-07-27 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * src/poparser.ry: msgctxt/pgettext support.
+ * test/test_gettext.rb: Add pgettext test.
+
+2008-07-26 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext/utils.rb: Improve create_mofiles to show the file which has errors.
+ * lib/gettext/parser/ruby.rb,
+ lib/gettext/rgettext.rb: msgctxt/pgettext support.
+ * test/testlib/pgettext.rb, test/po/ja/test_pgettext.po: Added for msgctxt/pgettext.
+ * **/po/lv/*.po: Added lv locales by Aivars Akots.
+
+2008-07-25 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext/rails.rb: Fixed render_partial localization.
+ (Localize ActionView::TemplateFinder#pick_template) [Bug #20248]
+ * test/rails/config/boot.rb, environment.rb: Follow rails-2.1.0.
+ * test/rails/app/views/articles/_form_fr.html.erb: Added for
+ render_partial.
+ * test/rails/test/result/fr/new.html: Ditto.
+ * samples/rails/*: Update to rails-2.1.0.
+
+2008-07-20 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * test/test_active_record.rb: Add tests for activerecord-2.1.0.
+
+2008-07-17 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext/active_record.rb: validates_(format|inclusion)_of accepts %{val} as the value
+ (ex)
+ User.validates_inclusion_of :name, :in => %w(a, b), :message => N_("%{fn} can't be %{val}")
+ * test/test_active_record.rb: Added test for rails-2.1.0.
+ * lib/gettext/active_record.rb: Works localization with ActiveRecord::Errors#[]
+ * po/el/rails.po, rgettext.po: Updated by damphyr.
+ * po/ca/rails.po, rgettext.po: Updated by Ramon Salvadó.
+ * **/po/**/ua/*.po: Updated by Alex Rootoff.
+
+2008-07-15 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * po/hu/rails.po, rgettext.po: Updated by Tamás Tompa.
+ * po/zh/rails.po, rgettext.po: Updated by Yang Bob.
+ * po/zh_TW/rails.po, rgettext.po: Updated by Yang Bob.
+ * test/fixtures/wizard.rb, inept_wizard.rb: Added.
+
+2008-07-14 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * README: Updated.
+ * lib/gettext/parser/active_record.rb: Support ActiveRecord::Base.abstract_class.
+ * po/pt_BR/rails.po, rgettext.po: Updated by Antonio S. de A. Terceiro.
+ * po/es/rails.po: Updated by David Espada.
+ * **/po/**/nb/*.po: Updated by Runar Ingebrigtsen.
+
+2008-07-13 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * po/ru/rails.po, rgettext.po: Updated by Yuri Kozlov.
+ * po/de/rails.po, rgettext.po: Updated by Patrick Lenz.
+ * po/eo/rails.po, rgettext.po: Updated by Malte Milatz.
+ * po/vi/rails.po, rgettext.po: Updated by Ngoc DAO Thanh.
+ * po/es/rgettext.po: Updated by David Espada.
+ * po/ja/rgettext.po: Updated.
+
+2008-07-11 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * test/test_active_record.rb, test/fixtures/people.yml, warehouse-thing.rb:
+ Add rails-2.1.0 tests.
+ (ValidationsTest::test_validate_uniqueness_with_non_standard_table_names):
+
+ * po/ja/rails.po: Apply rails-2.1.0 messages.
+
+2008-07-09 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext/rails.rb: Fixed ActionController::Caching::Fragments.expire_fragment
+ to work with rails-2.1.0 by Loiseleur Michel.
+ * lib/gettext/active_record.rb: Added validation options for activerecord-2.1.0.
+ (:greater_than, :greater_than_or_equal_to, :equal_to, :less_than, :less_than_or_equal_to,
+ :odd, :even)
+ * test/*: Apply rails-2.1.0.
+
+2008-06-30 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext/rails.rb: Works with rails-2.1.0.
+ Reported by Andreas Neuhaus(Bug #17990)
+
+
+2008-06-28 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * bin/*: Fixed shebang line. (Bug: #20150)
+
+2008-06-25 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext.rb: Fixed cache algorithm of bound_targets again.
+
+2008-06-18 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext/mo.rb: Support revision 1 of mo-file format.
+ * lib/gettext/mo.rb, test/test_gettext.rb:
+ Freeze msgstrs by Tatsuki Sugiura (Bug: #19193)
+ * **/po/sr/*.po: Replace sr locales to Cyrillic script
+ from Latin script by Slobodan Paunović.
+
+2008-05-24 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * README: update to support Rails-1.2.x to Rails-2.0.x(Rails-1.2.x aren't
+ not supported now). Reported by Hans de Graaff.
+
+2008-05-11 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext/rails.rb: Localize ActionView::Helpers::FormBuilder#label.
+ The idea from craccho (http://d.hatena.ne.jp/craccho/20071211/1197398747).
+ * lib/gettext/version.rb: Increment minor version.
+ * README, **/po/sr/*.po: Added sr locales by Slobodan Paunović.
+ * NEWS: Updated.
+
+2008-05-07 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext/utils.rb: Check msgmerge command is existed. And show error
+ messages more helpful.
+
+2008-05-06 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * test/test_locale.rb: Removed the condition for OpenBSD
+ by Bernd Ahlers.
+ * lib/gettext.rb: Fixed that bindtextdomain doesn't work on toplevel.
+ Reported by Tatsuki Sugiura (Bug: #19056).
+ * test/test_gettext.rb: Follow the change.
+ * test/test_gettext_toplevel.rb: Added.
+
+2008-05-05 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext.rb: Add GetText.remove_all_textdomains for testing.
+ inspired a test code by Tatsuki Sugiura (Bug #19056)
+ * lib/gettext/active_record.rb, test/test_active_record.rb:
+ Fixed validates_length_of by Karl Palmskog (Bug: #19761)
+
+2008-04-15 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * test/test_gettext.rb, lib/gettext.rb, lib/gettext/textdomain.rb,
+ lib/gettext/rails.rb: Fixed distance_of_time_in_words. Reported by Dao Ngoc (Bug: #17808)
+ * po/*/rails.po: Updated.
+
+2008-04-13 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext.rb, lib/gettext/textdomain.rb: Fixed memory leaks.
+ Reported by Simone Carletti(#18392)
+
+2008-03-21 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/locale/win32.rb, win32_table.rb, jruby.rb: Rename SystemWin32Table to
+ SystemWin32 again. Reported by Locomotyphus (Bug: #18938)
+
+2008-02-02 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * po/ja/rails.po: Revised. Reported by Paul Clegg.
+
+2008-01-30 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/locale/win32.rb, win32_table.rb: Rename SystemWin32Table to SystemWin32.
+ * samples/cgi/http.rb, index.cgi: Works on Windows.
+
+2008-01-28 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext.rb: Fixed GetText.output_charset to return current
+ locale's charset not nil.
+ Fixed to work with JRuby.(Bug: http://jira.codehaus.org/browse/JRUBY-1281)
+
+2008-01-27 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext/string.rb: String#% doesn't raise an ArgumentError in Debug mode.
+ Because String#% method shouldn't raise ArgumentError in Debug mode.
+ * lib/gettext/rgettext.rb: rgettext fixed to work with similer messages in n_().
+ Reported by Toine Diepstraten.
+ * samples/cgi/*: Works again. Set CGI object explicit.
+ * lib/gettext/textdomainmanager.rb: GetText::TextDomainManager.output_charset returns
+ system locale when nil is set.
+
+2008-01-24 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/locale/object.rb: Speedup (cache messages and object hash value)
+
+2008-01-21 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext.rb: Fixed to reload messages in debug mode
+ (development mode in rails). Reported by Reynard,
+ Ernesto Jiménez Caballero
+
+2008-01-19 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * **/po/hu/*.po: Added hu locales by Tamás Tompa.
+ * Rakefile: Add deploypo task(for me).
+
+2008-01-18 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/locale/win32.rb: Removed duplicated function.
+
+2008-01-16 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * samples/rails/*: Rewrite to work on Rails-2.0.
+ * lib/gettext/string.rb: Raises ArgumentError when the format are wrong.
+ Bug #16959 by Stephan.
+
+2007-12-25 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext/rails.rb: Fixed an error when expire_fragment_with_gettext
+ is called with the name as a Regexp object.Bug #12803 by Hans de Graaff.
+
+2007-12-24 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * **/po/ua/*.po: Added ua locales by Alex Rootoff.
+
+2007-12-16 Masao Mutoh <mutoh@highway.ne.jp>
+ * NEWS: Updated.
+ * README: Updated.
+
+2007-12-15 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * test/rails/*: Updated to work with Rails-2.0.
+ Add the test for custom error messages/titles.
+ * lib/gettext/rails.rb: Fixed
+ ActionView::Helpers::ActiveRecordHelper::L10n::error_messages_for
+ that plural messages didn't translated.
+ ActionView::Helpers::ActiveRecordHelper.error_messages_for can accept
+ :message_title, :message_explanation as the error dialog messages.
+ You can set the error dialog messages in the each pages.
+ Add GetText::Rails.normalized_locale.
+
+2007-12-08 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext/rails.rb: Add GetText::Rails::available_locales.
+ It returns the locales in RAILS_ROOT/locale directory.
+ fragment_cache_key_with_gettext and expire_fragment_with_gettext uses
+ GetText::Rails::available_locales to select the current locale string.
+ The cache files are created for available locales only.
+
+2007-11-10 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext.rb: Fix to work :charset option.
+ [Bug #15513] Reoported by boud indymedia.
+ * lib/gettext/mo.rb: Works with JRuby.
+
+2007-11-09 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/locale/cgi.rb: Removed Locale::SystemCGI.default=, set_default.
+ * lib/locale/win32_table.rb: Rename SystemWin32 to SystemWin32Table.
+ * lib/locale/win32.rb, win32_table.rb: Move get_charset to win32_table.rb.
+ * lib/locale/jruby.rb: Require win32_table.rb on Win32.
+ * lib/locale/base.rb: Added as the common module of other LocaleSystem classes.
+ * lib/locale/posix.rb, win32.rb, jruby.rb, cgi.rb: Require locale/base.rb.
+ And Remove the common methods.
+
+2007-11-08 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext/iconv.rb: Support JRuby.
+ * lib/locale/jruby.rb: Added. Support JRuby.
+ * test/*.rb: Rename files.
+ * lib/locale/object.rb: Add fallback attribute(a fallback locale).
+ * ext/*: Removed.
+ * Rakefile: Remove tasks for ext.
+ * lib/locale/win32.rb: Removed Locale::SystemWin32.set_default_locale,
+ default_locale=, default_locale.
+ Use Win32API instead of locale_system.so.
+ * lib/locale/posix.rb: Removed Locale::SystemPosix.get_charset, .set_default_locale
+ default_locale=, default_locale and all LC types.
+ Now Posix localed doesn't depend on locale_system.so.
+ # UTF-8 is set as the default charset.
+ * lib/gettext/locale.rb: Move to lib/locale.rb. Now locale class starts to
+ prepare to be separated from gettext.
+ * lib/gettext/locale_*.rb: Move to lib/locale/*.rb. Removed deprecated methods.
+ * Start preparing to release 2.0.
+ - System locales become "read only"(Locale module keeps the current
+ locale).
+ - Don't depend locale_system.so.
+
+2007-08-01 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext/utils.rb: Raise exception when msgmerge aren't found.
+ And show error message more helpful. Reported by Vít Ondruch (Bug#12737)
+ * lib/gettext/parser/erb.rb: Add ".erb" as the extname.
+ Reported by Andreas Neuhaus (Bug#12721)
+ * test/gettext_benchmark.rb: Added.
+
+2007-07-29 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext.rb: Replace .keys.include? to .has_key? to reduce
+ CPU usage and speed up. Reported by olivier ruffin.
+
+2007-07-22 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext/locale_cgi.rb: Fixed to break rails(r7116).
+ Reported by OZAWA Sakuro.
+
+2007-07-16 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext.rb: Fixed to support anonymous classes/modules, again.
+
+2007-07-11 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext.rb: Support anonymous classes/modules.
+ Pointed out by Yaohan Chen.
+ * test/gettext_test.rb: Add test for anonmous classes/modules.
+
+2007-07-08 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * README, Rakefile: Add RDoc support.
+
+2007-07-06 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext/rails.rb: Add to support Action/Fragment caching.
+ * test/gettext_test_rails_caching.rb, test.sh: Added the test for caching.
+ * NEWS: Updated.
+
+2007-07-05 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * src/poparser.ry, lib/gettext/poparser.rb:
+ Fixed a bug of previous change.
+
+2007-07-04 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * NEWS: Updated.
+ * lib/gettext/version.rb: Increment minor version.
+ * lib/gettext/active_record.rb: Work with script/generate
+ scaffold_resource. Reported by Bart ten Brinke(Bug#8308)
+ * lib/gettext/utils.rb: On the Win32 default environment,
+ use "msgmerge" program provided by Ruby-GNOME2 Win32 Installer.
+ * lib/gettext/locale_win32.rb: Fix to find a charset from a locale.
+
+2007-07-03 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext/rails.rb:error_messages_for accept plural models.
+ Reported by Florian Hufsky.
+ Fixed set_error_message_title|explanation.
+ * test/rails/app/model/users.rb, test/rails/test/*: Add tests for
+ error_messages_for with plural models.
+ * lib/gettext/parser/active_record.rb:
+ remove to require 'application.rb' to avoid the effect
+ of application.rb when parse models. Pointed out by Michel Loiseleur.
+ * po/ca/rails.po: Updated by Ramon Salvadテウ.
+ * src/poparser.ry, lib/gettext/poparser.rb: Don't append
+ msgids/msgstrs if the msgstrs don't set.
+ * lib/gettext.rb, lib/gettext/parser/ruby.rb:
+ Added GetText.nsgettext, ns_. This method has n_ + s_ function.
+ (e.g.) ns_("File|A file", "%{num} files", i).
+ * test/test_nsgettext.rb, test/po/ja/test_nsgettext.po: Added for
+ the test ns_(), nsgettext.
+ * lib/gettext/rgettext.rb: Normalize msgids.
+ _("Foo") and n_("Foo", "Foos", i) become same msgid "Foo\000Foos".
+ This is the same behavior with xgettext.
+ Reported by Sava Chankov.
+ * lib/gettext/textdomain.rb: Follow above changes.
+ _("Foo") matches the single msgid of n_("Foo", "Foos", i).
+
+2007-06-29 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext.rb: Add GetText.cached=, .cached?, clear_cache.
+ messages are cached in default. If the value is false
+ or $DEBUG = true then messages are not cached.
+ _ and n_ become 1.2-1.9 times faster than older versions.
+ * lib/gettext/textdomain.rb, rails.rb: follow the changes
+ below.
+
+2007-06-28 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * README: Updated.
+ * po/vi/rails.po: Updated by Ngoc Dao.
+ * po/(zh|zh_TW)/rails.po: Updated by Yang Bob.
+
+2007-06-27 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * po/nl/rails.po: Updated by Menno Jonker
+ * po/(bs|hr)/rails.po: Updated by Sanjin Sehic.
+ * po/pt_BR/rails.po: Updated by Joao Pedrosa.
+ * po/eo/rails.po: Updated by Malte Milatz.
+ * po/de/rails.po: Updated by Patrick Lenz.
+ * po/fr/rgettext.po, rails.po: Updated by David Sulc.
+ * po/et/rails.po: Updated by Erkki Eilonen .
+ *
+2007-06-26 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * test/rails/*: Added tests for ActionMailer.
+
+2007-04-17 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * test/rails/* : Added tests for rails.
+
+2007-04-16 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext/rails.rb: TestRequest#cgi returns GetTextMockGGI, not CGI.
+
+2007-04-08 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext/active_record.rb: Work ActiveRecord::Base::Validation
+ with non ActiveRecord::Base object again. Reported by Maksim Bartenev.
+ * test/gettext_test_activerecord.rb: Add a test for the above change.
+
+2007-04-07 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * **/po/nb/*.po: Added nb locales by Runar Ingebrigtsen.
+
+2007-03-24 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * **/po/(bs|hr)/*.po: Added bs/hr locales by Sanjin Sehic.
+
+2007-03-23 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * **/po/vi/*.po: Added vi locale by Ngoc Dao.
+
+2007-02-11 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext/rails_compat.rb: Added for Rails-1.1.6.
+ (Works with both Rails-1.1.6 and 1.2.2)
+
+2007-02-09 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * po/nl/rails.po: Fixed wrong translations.
+ Reported by Bart ten Brinke [Bug #8449]
+
+2007-01-30 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * po/nl/rails.po: Fixed wrong translations.
+ Reported by Dirkjan Bussink
+
+2007-01-25 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext/active_record.rb: Fixed #columns again.
+ [Feature Requests #7428]
+
+2007-01-22 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * NEWS: Updated.
+ * lib/gettext/active_record.rb: Use alias_method_chain not to
+ override original methods directly(again). [Feature Requests #7428]
+ * test/gettext_test_parser.rb: Add tests for activerecord parser.
+ * lib/gettext/rails.rb: Require action_controller instead of activesupport
+ for Rails-1.2.1.
+ * po/el/*.po: Updated by Vassilis Rizopoulos.
+ * po/ja/rails.po: Fixed typos by NANKI Haruo.
+
+2007-01-16 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext/parser/active_record.rb: Don't duplicate "file:-".
+
+2007-01-14 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext/active_record.rb: Use alias_method_chain not to
+ override original methods directly. [Feature Requests #7428]
+ * test/gettext_test_active_record.rb: Update to work Rails-1.2RC2.
+
+2006-12-26 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * po/zh/*.po, po/zh_TW/*.po: Updated by Yang Bob.
+
+2006-12-22 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * samples/rails/po/eo/blog.po: Fixed some typos by Malte Milatz.
+
+2006-12-22 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * **/po/ca/*.po: Added ca(Catalan) locale by Ramon Salvad蝮ヲ.
+
+2006-12-17 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * po/cs/*.po: Updated by Karel Miarka.
+ * **/po/eo/*.po: Added eo(Esperanto) locale by Malte Milatz.
+
+2006-12-15 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * po/ko/*.po: Updated by Gyoung-Yoon Noh.
+
+2006-12-10 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * po/de/*.po: Updated by Patrick Lenz.
+ * po/nl/*.po: Updated by Menno Jonkers.
+ * po/es/*.po: Updated by David Espada.
+
+2006-12-09 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * po/pt_BR/*.po: Updated by Joao Pedrosa.
+ * po/ru/*.po: Updated by Yuri Kozlov.
+ * po/ja/*.po: Updated.
+
+2006-12-08 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext/rgettext.rb: Improve option messages.
+
+2006-12-07 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext/erb.rb: Removed the dependency to GetText::Container which was
+ deprecated.
+
+2006-12-05 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext/poparser.rb: Added.
+
+2006-12-03 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext.rb: Changed GetText.locale= to set not only current locale
+ to all Textdomains but also default locale.
+ * lib/gettext/locale.rb: Locale.set_default accept locale as String.
+ * test/gettext_test_active_record.rb: Update to test activerecord-1.14.4.6657.
+
+2006-12-02 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext/rails.rb: Unit test works on 1.2RC1. Reported by KAKUTANI Shintaro.
+ * lib/gettext.rb: Updates default locale when using GetText.set_locale_all
+ * po/**/rails.po[t]: Updated.
+
+2006-11-27 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext/rails.rb: Fix the deprecated accessing to instance variables
+ directly for rails 1.2RC1.
+
+2006-11-06 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext/utils.rb: Skip to create new po-files.
+ It avoids the po-files become empty when GNU msgmerge was failed.
+ By Fabian Kreutz.
+
+2006-10-21 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * po/fr/rails.po: Improved by David Sulc.
+
+2006-10-15 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext/parser/active_record.rb: Work updatepo task with rails_edge.
+
+2006-10-08 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext/parser/active_record.rb: Fixed an error using hbtm.
+ Reported by Mihnea Capraru.
+
+2006-10-04 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * README, lib/gettext/rgettext.rb: Changed the author e-mail address.
+
+2006-09-24 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext/active_record.rb: Re-fix to work rails_edge again.
+ Reported by Isak Hansen.
+ * po/pt_BR/rails.po: Updated by Antonio S. de A. Terceiro.
+
+2006-09-21 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext/rails.rb: Fixed a bug init_gettext can't accept
+ any options correctly and locale_path was set wrong value.
+ Reported by pedro palazon.
+
+2006-09-12 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext/textdomain.rb: Fixed a bug of add_default_locale_path.
+ * lib/gettext/parser/ruby.rb: Improve to output error messages.
+
+2006-09-11 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext/active_record.rb: Works rails_edge again.
+ Reported by Donald Piret. (http://dev.rubyonrails.org/ticket/5810)
+
+2006-09-07 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext/locale_cgi.rb, locale_object.rb: Speed up.
+ * lib/gettext.rb: Fixed to extract correct textdomains in each_textdomain.
+
+2006-09-05 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * README, NEWS: Updated.
+
+2006-09-04 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext/rgettext.rb: Raise error when parsing was failed.
+ * lib/gettext.rb: GetText.locale= is the alias of GetText.set_locale_all instead
+ of GetText.set_locale.
+ * test/gettext_test_active_record.rb: Added tests.
+ * test/fixtures/*.rb: updated.
+ * test/po/active_record.pot, test/po/ja/active_record.po: updated.
+
+2006-09-01 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * test/gettext_test_active_record.rb: Added tests.
+
+2006-08-31 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext/active_record.rb: Fix the custom messages of validates_length_of
+ with :too_long, :too_short, :wrong_length.
+
+2006-08-30 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * test/Rakefile, test/db/*sql: Added.
+
+2006-08-29 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * test/gettext_test_active_record.rb, test/fixtures/*, test/po/active_record.pot,
+ test/po/ja/active_record.po: Added tests for ActiveRecord with GetText.
+ * lib/gettext/active_record.rb: Messages updated.
+ * po/*/rails.po[t]: ditto.
+
+2006-08-22 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * samples/rails/db/schema.rb: Added.
+ * samples/rails/db/*.sql: Removed. Use rake db:schema:load instead.
+ * samples/rails/README: Follow above changes.
+ * samples/rails/po/*: Updated.
+ * lib/gettext/active_record.rb: Fixed the problem of untranslate(_all).
+ Reported by Tsutomu Kuroda.
+
+2006-08-21 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * README: Updated.
+ * **/po/zh_TW/*.po: Added zh_TW locale by LIN CHUNG-YI.
+
+2006-08-18 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext/version.rb: Increment minor version.
+ * po/et/rails.po: Added Estonian by Erkki Eilonen.
+ * README: ditto.
+ * lib/gettext/rails.rb: Add ActionController::Base.(before|after)_init_gettext.
+
+2006-08-15 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * po/de/rails.po, rgettext.po: Updated by Partick Lenz.
+
+2006-08-13 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext/locale.rb: Add Locale.system_module.
+ * lib/gettext/rails.rb: Remove ActionController::Base.textdomainname
+ * lib/gettext.rb, lib/gettext/rails.rb, locale_cgi.rb,
+ locale_object.rb, string.rb:
+ Speed up. Improve CPU usages.
+
+2006-08-10 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext/parser/active_record.rb: Improved to find ActiveRecord class
+ by steve dp.
+
+2006-08-09 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext/rails.rb: Code clean up.
+ * lib/gettext.rb: Code clean up.
+ * lib/gettext/active_record.rb: Removed to call bindtextdomain in Validations.
+ It's called in bindtextdomain of init_gettext.
+ * lib/gettext/parser/active_record.rb: Rename from activerecord.rb.
+
+2006-08-08 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext/active_record.rb: Fixed on, error_messages_for.
+ by Andreas Neuhaus.
+
+2006-08-04 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext/rails.rb: Move bindtextdomain_to to lib/gettext.rb.
+ New overrideable callback methods (before|after)_init_gettext(cgi).
+ These methods is called on the each WWW request.
+ * lib/gettext.rb: Add bindtextdomain_to, textdomain_to.
+ * samples/rails/app/controllers/application.rb: Add a sample of
+ (before|after)_init_gettext(cgi).
+
+2006-07-29 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext/rgettext.rb: Added -r, -d options.
+ -r is to set an option parser. -d is for debugging mode.
+ (e.g.) $ rgettext -r fooparser test.foo
+ The idea is from Kobayashi Noritada.
+ Fix a trivial bug by Kobayashi Noritada.
+
+2006-07-25 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext/active_record.rb: Separate from rails.rb.
+
+2006-07-23 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext/rails.rb: init_gettext manages plural textdomains.
+ bindtextdomain binds a domainname to ActionMailer::Base and ActionView::Base.
+
+2006-07-22 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext/rails.rb: init_gettext finds the locale path with caller
+ not RAILS_ROOT now for supporting plugins which has app/controller directory
+ such as Rails Engines.
+ And init_gettext accepts :locale_path option to be able to set the locale
+ path manually.
+ * po/pt_BR/rails.po, rgettext.po: Updated by Joao Pedrosa.
+
+2006-07-17 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext/rails.rb: bind the textdomain same with ApplictionController
+ to the class which includes ActiveRecord::Validations.
+
+2006-07-16 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext/rails.rb: Code cleanup.
+ ActiveRecord::Base.set_error_message_(title|explanation) have been deprecated.
+ Use ActionView::Helpers::ActiveRecordHelper::L10n.set_error_message_(title|explanation)
+ instead. Suggested by Kouhei Sutou
+ * po/zh/rails.po, rgettext.po: Updated by Yingfeng.
+ * NEWS: Updated.
+
+2006-07-15 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext/rails.rb: Localize ActiveRecord::Errors#on.
+ Now error_message_on is localized.
+ Reported by kdmsnr.
+
+2006-07-14 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext/parser/activerecord.rb: Add "untranslate" feature.
+ * lib/gettext/rails.rb: ditto. Add ActiveRecord::Base.untranslate
+ .untranslate_all, .unstranslate?
+ The idea is from Gyoung-Yoon Noh.
+
+2006-07-13 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * po/nl/rails.po, rgettext.po: Updated by Menno Jonkers.
+ * lib/gettext/rails.rb: Support ActiveRecord::Migration.
+ Suggested by OZAWA Sakuro.
+
+2006-07-12 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * po/ko/rails.po, rgettext.po: Updated by Gyoung-Yoon Noh.
+
+2006-07-11 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * po/ru/rails.po, rgettext.po: Updated by Yuri Kozlov.
+ * po/fr/rails.po, rgettext.po: Updated by Laurent Sansonetti.
+ * po/cs/rails.po, rgettext.po: Updated by Karel Miarka.
+
+2006-07-09 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * po/es/rails.po, rgettext.po: Updated by David Espada.
+ * lib/gettext/rails.rb: Increment minor version.
+ * README: Updated.
+
+2006-06-14 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext/rails.rb: Fix a problem N_() isn't found in
+ ActiveRecord. Reported by arton.
+
+2006-06-12 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext/parser/glade.rb: Show error message correctly.
+ * Rakefile: Added src/poparse.ry as the target for updatepo.
+ * po/rgettext.pot, po/*/rgettext.po: Updated.
+
+2006-06-11 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext/parser/ruby.rb: Fixed to extract duplicated messages when "\n"
+ was used in msgid.
+ * lib/gettext/rails.rb, po/rails.pot, po/*/rails.po: Localize
+ ActionView::Helpers::DateHelper.distance_of_time_in_words.
+ * lib/gettext.rb: Added GetText.current_textdomain_info for debuging.
+ * lib/gettext/textdomain.rb: Break if the first mo-file found.
+ * lib/gettext/mo.rb: Added to accessor(r) to filename.
+
+2006-06-09 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * samples/*.rb, samples/po/*: Code cleanup 2.
+
+2006-06-08 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext/version.rb: Increment minor version.
+ * lib/gettext/locale_posix.rb: Code cleanup.
+ * test/testlib5.rb: Added.
+
+2006-06-07 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext.rb: GetText.set_locale accept 2nd parameter.
+ * test/testlib6.rb, test/po/{ja|fr}/test6.po: Added previous test.
+ * samples/*.rb, samples/po/*: Code cleanup.
+
+2006-06-05 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * samples/hello.rb: Code cleanup.
+ * lib/gettext/rgettext.rb: Show ruby version with -v option.
+ * lib/gettext/rmsgfmt.rb: ditto.
+ * lib/gettext/rmsgmerge.rb: ditto.
+
+2006-06-04 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext.rb: Fixed a bug when options is set nil.
+ * lib/gettext/locale_posix.rb: Fixed the search order of environment
+ variables. Reported by markus koller.
+ * ext/gettext/locale_system.c: Returns nil if locale is not set.
+ * Rakefile: Added makemo task for samples/rails/vendor/plugins/gettext/po.
+ * test/gettext_test_multi_textdomain.rb: Added.
+
+2006-05-31 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * samples/rails/vendor/plugins/gettext/lib/gettext_plugin.rb: Rewrite
+ to support new bindtextdomain.
+ * samples/rails/vendor/plugins/gettext/{po|locale}/*: Move gettext_plugin.{po|mo}
+ from samples/rails/{po|locale}/*. Now Rails plugins can release their po/mo-files
+ under their own directory(/vendor/plugins/plugindir/{po|locale}).
+ * samples/rails/vendor/plugins/gettext/Rakefile, README: Added.
+ * samples/rails/lib/tasks/gettext.rake. Move gettext_plugin target to
+ /vendor/plugins/gettext/Rakefile.
+ * samples/rails/README: Updated.
+
+2006-05-30 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext.rb: The scope of a textdomain becomes a class/module base
+ instead of a file base.
+ Accept plural textdomains in a class/module.
+ Changed bindtextdomain arguments with backward compatibility.
+ * lib/gettext/textdomainmanager.rb: Added for manage plural textdomains.
+ * lib/gettext/textdomain.rb: Fix wrong DEFAULT_LOCALE_PATHS if ruby is
+ installed non-standard path.
+ * lib/gettext/rails.rb: Changed arguments of bindtextdomain, init_gettext
+ with backward compatibility.
+
+2006-05-29 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext/rails.rb:
+ Remove GetText::Rails.use_localized_templates.
+
+2006-05-24 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext/locale_win32.rb: Fix to work with environment
+ variables.
+
+2006-05-22 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext.rb, lib/gettext/textdomain.rb: Keep a textdomain
+ per a class instead of per a file.
+
+2006-05-21 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext/rails.rb: Problem when ActionMailer isn't defined.
+ Reported by Gudao Luo.
+
+2006-05-20 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext/mo.rb: Improved to compare the file time stamps.
+ by Nobu Nakada.
+
+2006-05-18 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext/mo.rb: Fix MOFile#update! works on MS Windows.
+ * po/it/rails.po, samples/rails/po/it/*.po: Added by Marco Lazzeri.
+
+2006-05-16 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * Rakefile: Remove dependency - makemo => poparser.
+ Reported by Marco Lazzeri.
+
+2006-05-14 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * README: Updated.
+ * **/po/zh/*.po: Added zh_CN locale by Yingfeng.
+ * pre-setup.rb: Remove to call "rails setup" now needless.
+ Reported by Hiroyuki Iwatsuki.
+
+2006-05-11 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * Rakefile: Make samples/rails/log if it's not exisited in
+ makemo task.
+ * lib/gettext/parser/activerecord.rb: Fixed to work
+ Gem-less environment.
+ Reported by Nobuhiro IMAI.
+
+2006-05-10 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext/rails.rb: Fixed custom messages was not
+ translated of validation_length_of.
+ Reported by babie, charlie.
+ * po/ja/rails.po: Separate plural/single messages.
+
+2006-05-07 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext/version.rb: Increment revision number.
+ * NEWS: Updated.
+
+2006-05-06 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext/rails.rb: error_messages_for works same as
+ actionpack-1.12.1 when nil or symbol are given as @object_name.
+ By arton.
+ * test/gettext_test_rails.rb: Works again.
+
+2006-05-05 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext/parser/activerecord.rb: Fixed again.
+
+2006-05-04 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext/parser/activerecord.rb: Fixed "duplicate message definition"
+ error in rake updatepo task using ActiveRecord::Base.set_table_name.
+ Reported by Karel Miarka.
+
+2006-05-02 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext/rails.rb: Fixed an abort when Rails::Info isn't
+ required like as Typo. Reported by Masayoshi Takahashi.
+
+2006-04-30 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext/textdomain.rb: Added GetText::TextDomain#check_mo=,
+ #check_mo?. When the value is true, check the MOFile and if it's
+ updated, reload MOFile again. This is usefule for development
+ time.
+ * lib/gettext/rails.rb: When development mode, check mo files
+ and reload it if it's updated.
+ * lib/gettext/mo.rb: Added MOFile#update!.
+ * lib/gettext/string.rb: String#% doesn't raise ArgumentError
+ when execute ruby with -d option.
+
+2006-04-21 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * samples/po/ru/*.po, samples/cgi/po/ru/*.po,
+ samples/rails/po/ru/*.po, po/rgettext.po,
+ rails.po: Added Russian locale by Yuri Kozlov.
+ * README: Revised.
+
+2006-04-15 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * NEWS: Updated.
+ * lib/gettext/version.rb: Increment minor version.
+ * test/gettext_test_rails.rb: Works with Rails-1.1.2.
+ * test/gettext_test_locale.rb: Works on OpenBSD 3.8.
+ * ext/gettext/locale_system.c: Set nil instead of "UTF-8"
+ when nl_langinfo is not found.
+ * samples/rails/README: Updated.
+
+2006-04-05 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * ext/gettext/locale_system.c: Fix compilation problem
+ when /usr/include/langinfo.h doesn't have CODESET such as OpenBSD.
+ You may need to set OUTPUT_CHARSET to ENV variable in such
+ environment.
+ Reported by Johan Allard.
+
+2006-03-25 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext/rails.rb: Revised docs.
+
+2006-03-24 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext/rails.rb: Support ActionWebService.
+ Reported by Nick Snels.
+
+2006-03-19 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext/rails.rb: Improve multipart-mail in ja locale by Nobuhiro IMAI.
+
+2006-03-16 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext/rails.rb: ActiveMailer works with multipart-mail in ja locale.
+ Reported by Nobuhiro IMAI.
+ * lib/gettext/textdomain.rb: GetText::TextDomain.gettext returns "" when
+ arg is "" or nil.
+ * lib/gettext.rb, locale.rb: Fix the problem to switch the locale again.
+ * test/gettext_test.rb: Add the test for above problem.
+ * test/gettext_test_rails.rb: Added, too.
+ * test/test.sh: ditto.
+
+2006-03-12 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext.rb: GetText.locale= reset Locale's default locale.
+ Reported by Donald Piret.
+
+2006-03-11 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext/rails.rb: ActiveRecord::Column.human_name translates
+ the column name using s_("Model|fieldname").
+ Pointed out by Kazuhiro NISHIYAMA.
+ * samples/rails/lib/tasks/gettext.rake: Move from Rakefile.
+ Pointed out by Kazuhiro NISHIYAMA.
+ * samples/rails/Rakefile: Move gettext tasks to lib/tasks/gettext.rake.
+ * samples/rails/*: Updates files to which generated with rails 1.0.
+ * NEWS: Updated.
+
+2006-03-10 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext/rails.rb: Localized ActiveRecord::Base.validates_* works correctly
+ under production mode.
+ Reported by Nickolay Kolev.
+ ActionView::Base#render_file supports localized template such as
+ foo_ja.rhml, foo_ja_JP.rhtml. Revert Action::Controller::Base#render.
+ * NEWS: follow this change.
+
+2006-03-09 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext/rails.rb: ActiveRecord::Base.error_message_(title|explanation)
+ works production mode.
+
+2006-03-08 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * NEWS: Updated.
+ * lib/gettext/rails.rb: Fix a problem of ActionMailer in "ja".
+ * lib/gettext/version.rb: Incremented version number.
+
+2006-03-04 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext/rails.rb: @params["lang"] is treated as cgi["lang"].
+ Reported by Erkki Eilonen.
+
+2006-03-03 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext/locale_cgi.rb: Remove debug code.
+ * lib/gettext/locale_object.rb:
+ - Fix a memory leak. Reported by Jonas Schwertfeger.
+ - Locale::Object.parser improved.
+ - Rename Locale::Object#sort_order to #variant.
+ - "POSIX" and "C" locale strings are converted to "en".
+ - Add Locale::Object#to_general.
+ * test/gettext_test_locale.rb: Add tests follow the changes.
+ * lib/gettext/rails.rb:
+ - ActionMailer sends a mail
+ - in ISO-2022-JP if the language is japanese. The idea from
+ Iso2022Mailer by drawnboy.
+ - ActionController::Base.render_text is overrided to find
+ localized templates such as foo_ja.rhml, foo_ja_JP.rhtml.
+ You can reject this to set false to
+ GetText::Rails.use_localized_templates.
+ The idea is from Yugui.
+
+2006-03-02 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * samples/rails/app/models/article.rb: Add a sample of
+ ActiveRecord::Base.set_error_message_(title|explanation).
+ * lib/gettext/rails.rb: Fix a non-translated problem on production mode.
+ ActionMailer supported by Albert Ramstedt.
+ ActiveRecord::Base.set_error_message_(title|explanation) accepts Nn_()
+ value(Array).
+
+2006-02-25 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext/locale.rb: Fix to return system value when @@default is unset.
+ * lib/gettext/rails.rb: Fix a problem with Locale.default=.
+
+2006-02-24 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext.rb: Fix a typo.
+
+2006-02-23 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * Rakefile: Fix a problem to make package on Win32.
+ * lib/gettext/textdomain.rb: Rename @mo to @current_mo
+ and add a attr_reader for @current_mo.
+ * README, NEWS: updated.
+ * lib/gettext/rails.rb: Fix to translate error message
+ title/explanation.
+ * lib/gettext/parser/activerecord.rb: Fix an abort when
+ config/database.xml is not defined.
+
+2006-02-22 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext/rmsgfmt.rb, string.rb, iconv.rb, utils.rb, rgettext.rb,
+ lib/gettext/parser/*.rb: Apply RDoc.
+ * lib/gettext/version.rb: Increment minor version.
+
+2006-02-21 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * test/test.bat: Added for Win32.
+ * test/gettext_test_locale.rb: Added Win32 tests.
+ * lib/gettext/locale_win32.rb: Fix problems.
+ * lib/gettext/locale_object.rb: Added Locale::Object#to_win
+
+2006-02-20 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * src/poparser.ry: Added ignore_fuzzy as the 3rd parameter
+ of GetText::PoParser#parse to parse fuzzy comments.
+ Pointed out by speakillof.
+ * lib/gettext/rmsgmerge.rb: Follow the PoParser change below.
+ * test/gettext_test_locale.rb: Apply Locale.clear.
+ * lib/gettext/locale.rb: Added Locale.clear.
+
+2006-02-18 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext/locale_cgi.rb: Separate from cgi.rb.
+ * lib/gettext/locale_posix.rb: Rename from locale_default.rb.
+
+2006-02-16 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext/textdomain.rb: Add comments.
+ * lib/gettext.rb: Apply Locale::Object. Code cleanup. Add RDoc.
+ * test/gettext_test.rb: Apply gettext.rb changes
+ * test/test.sh: Remove OUTPUT_CHARSET setting.
+
+2006-02-15 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext/locale_win32.rb, locale_default.rb, locale.rb: A first argument
+ of Locale::System.get_charset becomes Locale::Object.
+ * lib/gettext/textdomain.rb: Apply Locale::Object, Code cleanup.
+ * lib/gettext.rb: Add GetText.add_default_locale_path.
+ * lib/gettext/locale_object.rb: Add Locale::Object#==.
+ * lib/gettext/textdomain.rb: Add GetText::TextDomain.add_default_locale_path.
+ Pointed out at Bug#3510.
+
+2006-02-14 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * Rakefile: Fix compilation problems on mswin32.
+ * ext/gettext/locale_system.c: locale_id returns language ID not LCID.
+
+2006-02-13 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext/locale_table_win32.rb: Replace the table and add charset info.
+ * lib/gettext/locale_win32.rb: ditto.
+
+2006-02-10 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext/locale_object.rb: Add script, sort_order properties.
+
+2006-02-09 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * test/gettext_test_locale.rb: Added modifier test.
+ * lib/gettext/locale_object.rb: Added to parse modifier.
+ * lib/gettext/locale.rb: Fixed bug of Locale#set_current.
+ * test/gettext_test_cgi.rb: Added tests.
+ * lib/gettext/cgi.rb: Apply RDoc.
+ * lib/gettext/locale_default.rb, locale.rb: Modify RDoc.
+ * lib/gettext/locale_win32.rb: Imprement pseudo Locale::System.get_charset().
+
+2006-02-07 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * test/gettext_test_locale.rb: Added for new Locale.
+ * lib/gettext/locale.rb: Refactored. Follow to support Locale::Object.
+ Add Locale.set_default, .default=, .system, .default, .current,
+ .set_current, .current=, .current_charset. Reimplemented .get/.set.
+ Locale.set(loctype, localestr) is deprecated. Use Locale.set(localestr) instead.
+ Locale.setlocale(loctype, localestr) is deprecated. Use Locale.set(localestr) instead.
+ Locale.get(loctype) is deprecated. Use Locale.get instead.
+
+2006-02-05 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * test/test_rubyparser_n_.rb: Rename from test/test_rubyparser_n.rb.
+ This has a problem on Windows with test/test_rubyparser_N.rb.
+
+2006-02-04 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * pre-setup.rb: Remove previous installed files first.
+ * ext/gettext/gettext: Removed.
+ * ext/gettext/locale_system.c: Added as Accessor to system(win32/posix).
+ (Move from ext/gettext/gettext/_locale.c)
+ * ext/gettext/extconf.rb: ditto.
+ * lib/gettext/locale_default.rb: Follow above changes. Apply RDoc.
+ * lib/gettext/locale_win32.rb: Follow above changes. Apply RDoc.
+ * lib/gettext/locale.rb: Code cleanup. Apply RDoc.
+ * lib/gettext/locale_object.rb: Added Locale::Object. Apply RDoc.
+ * setup.rb: Update to 3.4.1.
+
+2006-01-25 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext/rmsgmerge.rb: Fixed bugs.
+ Follow the comment messages to GNU GetText. By speakillof.
+
+2006-01-20 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext/rails.rb: Added ActiveRecord::Base#error_message_(title|explanation).
+ Reimplement ActionView::Helpers::ActiveRecordHelper::L10n.error_messages_for to
+ separate error_message_(title|explanation) to be able to be overrided by user.
+ The idea is from Trung Tran.
+ * samples/rails/app/models/article.rb: Add a sample of
+ ActiveRecord::Base#error_message_(title|explanation).
+
+2006-01-19 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext.rb: n_() accepts first arguments as an Array([msgid, msgid_plural]).
+ * test/gettext_test.rb: Add tests for n_(ary, n), Nn_().
+ * lib/gettext/parser/ruby.rb: Added Nn_() is same purpose with N_, but for n_.
+ * lib/gettext.rb: Added Nn_(msgid, msgid_plural).
+
+2006-01-14 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * samples/rails/po/*/blog.po: Updated.
+ * NEWS: Updated.
+
+2006-01-10 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext/parser/activerecord.rb: Fixed to fail loading YAML file.
+ By Karel Miarka.
+
+2006-01-08 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * *po/el/*.po: Convert to UTF-8. By damphyr.
+
+2006-01-07 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * test/gettext_test_parser.rb: Add test_rgettext_parse.
+ * test/test_erb.rxml: Added.
+ * lib/gettext/rails.rb: Added ActionController::TestRequest for testing.
+ Reported by Nick Snels.
+ * samples/rails/README: Added test information.
+ * samples/rails/test/functional/blog_controller_test.rb: Implemented.
+ * **/*po[t]: Revised headers.
+ * samples/po/el/*.po, samples/cgi/po/el/*.po,
+ samples/rails/po/el/*.po, po/el/rgettext.po,
+ rails.po: Added Greek locale by damphyr.
+ * README: Updated.
+ * lib/gettext/version.rb: Increment micro version.
+
+2006-01-02 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext/parser/activerecord.rb: Fixed to read configuration
+ correctly. Reported by Donald Piret.
+ Prevent to output duplicate msgid. Reported by Nick Snels.
+
+2005-12-31 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext/rails.rb: Check @@gettext_domainname is set first
+ to avoid set the wrong value to the Content-Type when init_gettext
+ is not called. Pointed out by Kazuhiro NISHIYAMA.
+
+2005-12-29 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext/locale_win32.rb: Fixed a syntax error.
+ * po/{it,sv}/rgettext.po: Updated.
+ * samples/rails/po/ja/blog.po: Fixed a fuzzy message.
+ * po/de/rgettext.po: Fixed a compilingproblem.
+ * README, NEWS: Updated.
+ * lib/gettext/rails.rb: Fix a problem when
+ http://localhost:3000/rails_info/properties is called.
+ Pointed out by Kazuhiro NISHIYAMA.
+ * po/de/rails.po: Added by Sasa Ebach.
+ * po/de/rgettext.po, samples/rails/po/de/*.po:
+ Updated by Sasa Ebach.
+
+2005-12-28 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * NEWS: Updated.
+ * README: Updated.
+ * po/es/rails.po: Added by David Espada.
+ * po/es/rgettext.po, samples/rails/po/es/*.po:
+ Updated by David Espada.
+
+2005-12-27 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * test/gettext_test_string.rb: Add a test.
+
+2005-12-26 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * samples/rails/app/controllers/blog_controller.rb: Updated.
+
+2005-12-25 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * NEWS: Updated.
+ * README: Updated.
+ * lib/gettext/parser/activerecord.rb: Don't show the messages
+ when ActiveRecord and its subclasses are not found.
+ * po/ja/rgettext.po: Updated.
+
+2005-12-24 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * samples/po/nl/*.po, samples/cgi/po/nl/*.po,
+ samples/rails/po/nl/*.po, po/nl/rgettext.po,
+ rails.po: Added Dutch locale by Menno Jonkers.
+
+2005-12-23 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * README: Updated.
+ * README.ja: Removed.
+ * po/ko/rails.po: Added by Gyoung-Yoon Noh.
+ * po/ko/rgettext.po, samples/po/ko/*.po, samples/cgi/po/ko/*.po,
+ samples/rails/po/ko/*.po: Updated by Gyoung-Yoon Noh.
+ * lib/gettext/textdomain.rb: Fixed a bug when mo-files are not found.
+ * samples/rails/po/en/blog.po: Added for English.
+ You can change the table names, field names of ActiveRecord even you use English.
+ * lib/gettext/textdomain.rb: Code cleanup.
+ * samples/rails/vendor/plugins/gettext/lib/gettext_plugin.rb: begin a new line
+ each 6 language.
+ * samples/rails/vendor/plugins/gettext/po/*: Update version info.
+
+2005-12-21 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * samples/rails/README: Updated.
+ * lib/gettext/utils.rb: Added. GetText.update_pofiles.
+ * Rakefile, samples/rails/Rakefile: Use GetText.update_pofiles.
+
+2005-12-20 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext/utils.rb: Added. Implement GetText.updatepo.
+ * Rakefile:
+
+2005-12-19 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * samples/po/cs/*.po, samples/cgi/po/cs/*.po,
+ samples/rails/po/cs/*.po, po/cs/rgettext.po,
+ rails.po: Added Czech locale by Karel Miarka.
+
+2005-12-18 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * po/fr/rgettext.po, samples/cgi/po/fr/main.po:
+ Updated by Laurent Sansonetti.
+ * po/fr/rails.po: Added by Laurent Sansonetti.
+ * po/pt_BR/rails.po, samples/cgi/po/pt_BR/*.po,
+ samples/rails/po/pt_BR/*.po:
+ Added by Joao Pedrosa.
+ * po/pt_BR/rgettext.po, samples/po/pt_BR/*.po:
+ Updated by Joao Pedrosa.
+
+2005-12-17 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * po/rails.pot, po/ja/rails.po: Added.
+ * test/gettext_test_string.rb: Added.
+
+2005-12-12 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * samples/rails/Rakefile: Added "updatepo" task.
+ * lib/gettext/parser/activerecord.rb: Added a parser for
+ ActiveRecord.
+
+2005-12-10 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext/rails.rb: Added GetText information to
+ Rails::Info.
+
+2005-12-08 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * test/gettext_test_cgi.rb: Added tests for Locale.normalize.
+ * lib/gettext/cgi.rb: Fix a problem of Locale.normalize.
+
+2005-12-07 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext/cgi.rb: Separate Locale.normalize.
+
+2005-12-06 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * test/gettext_test.rb, test/po/{da,fr}/plural_error.po:
+ Fix test_plural_format_invalid.
+
+2005-12-05 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * test/gettext_test.rb, test/po/*/plural.po: Fix test case.
+
+2005-12-04 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * samples/rails/vendor/plugins/gettext/lib/gettext_plugin.rb: Revised comments.
+
+2005-12-01 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext/rails.rb: Improved to support L10n for ActiveRecord::Errors.
+ Improve ActionController::Base.init_gettext(_main).
+ * samples/rails/app/controller/application.rb: Improved comments.
+ * samples/rails/app/views/blog/_form.rhtml: Add information to validate.
+
+2005-11-27 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext/string.rb: Added. New syntax ":{foo} is bar." % {:foo => "foo"}
+ is supported.
+ * lib/gettext/rmsgmerge.rb: Added.
+ * lib/gettext.rb, lib/gettext/textdomain.rb: Fix a bug of GetText.ngettext.
+
+2005-11-25 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * samples/rails/app/*: Rewrite for RoR 0.14.x.
+ * lib/gettext/rails.rb: Added ActionController::Base.init_gettext.
+ * samples/rails/app/controllers/application.rb: ditto.
+
+2005-11-23 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * samples/rails/app/controllers/application.rb: Use
+ GetText.output_charset to set the Content-Type.
+ * lib/gettext/rails.rb: Call bindtextdomain in models(ActiveRecord)
+ when bindtextdomain is called in before_filter of ActionController.
+ Inspired from Simon Santoro.
+ * samples/rails/app/models/article.rb: Added to validate description
+ with localized message.
+
+2005-10-22 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * po/*: Merge rmsgfmt to rgettext.
+ * po/**/rmsgfmt.po[t]: Removed(merge to rgettext.po[t]).
+ * lib/gettext/rmsgmerge.rb: Added by speakillof.
+ * bin/rmsgmerge: Added.
+ * src/poparser.ry: Renamed rmsgfmt.ry to poparser.ry.
+ * lib/gettext/rmsgfmt.rb: Added. Separate code from rmsgfmt.ry.
+ * Rakefile: Check racc is existed or not.
+ * lib/gettext/mo.rb: Follow poparser.ry changes.
+
+2005-09-16 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext/rgettext.rb: Fixed a header of time strings.
+ Reported by Karel Miarka.
+
+2005-09-12 speakillof <speakillof@yahoo.co.jp>
+
+ * lib/gettext/parser/ruby.rb: Added "here document" support.
+
+2005-09-05 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext.rb: Added GetText.locale. Both of GetText.locale= and
+ GetText.locale behaves "global". If you set this once, follow bindtextdomain(s)
+ use this value.
+ * lib/gettext/cgi.rb: Added Locale.set.
+ * lib/gettext/locale_win32.rb: ENV value is prior to native locale.
+ Added Locale.set.
+ * test/gettext_test.rb: Follow above changes.
+
+2005-09-04 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * Rakefile: move test task to testunit task.
+ * samples/cgi/*.cgi: Support rubygems.
+ * lib/gettext/rails.rb: The default of "charset" parameter becomes nil
+ instead of "UTF-8". You need to call GetText.output_charset=() first.
+ * samples/rails/app/controllers/application.rb:
+ Call GetText.output_charset = "UTF-8" first.
+
+2005-09-03 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * src/rmsgfmt.ry: Fixed VERSION info.
+ * Rakefile: Update to make package correctly. Call create_mofiles
+ for test/po/
+ Add test task.
+ Create win32 package correctly on Win32.
+ * test/makemo.rb: Removed. Use rake makemo instead.
+ * NEWS: Added.
+ * 1.0.0 released.
+
+2005-08-31 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * samples/cgi/Rakefile: Added.
+ * samples/cgi/README: Modified.
+ * samples/README: Modified.
+ * samples/po/ko/*.po: Added Korean by Gyoung-Yoon Noh.
+ * src/rmsgfmt.ry, po/**/rmsgfmt.po: Fix a typo.
+ * samples/makemo.rb: Re-add for creating mo-files.
+ * po/es/*.po: Updated by David Espada.
+ * po/samples/rails/es/*.po: Added by David Espada.
+ * po/de/*.po: Updated by Sven Herzberg.
+ * po/samples/rails/de/*.po: Added by Sven Herzberg.
+ * po/fr/*.po: Updated by Laurent Sansonetti.
+ * po/samples/rails/fr/*.po: Added by Laurent Sansonetti.
+ * README, README.ja: Updated.
+ * samples/rails/*.[rb|rhtml]: Modified header informations.
+ * lib/gettext/version.rb: Modified header information.
+ * samples/rails/README: Revised.
+ * samples/rails/db/postgresql.sql: Added.
+
+2005-08-30 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * po/ko/*.po, samples/cgi/po/ko/*.po, samples/rails/po/ko/*.po:
+ Added Korean by Gyoung-Yoon Noh.
+ * lib/gettext/textdomain.rb: Improve to print error message when
+ No mo files were found.
+
+2005-08-28 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * samples/rails/*: Added a sample for Ruby on Rails.
+
+2005-08-27 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext/textdomain.rb: Added search mo-path:
+ #{gems_path}/#{app}/locale/#{lang}/
+ * lib/gettext/cgi.rb: Fix an alias bug(set_cgi is an
+ alias of cgi=, not cgi).
+
+2005-08-23 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * samples/cgi/helloerb1.cgi, helloerb2.cgi:
+ Set @domainname obviously.
+ * pre-clean.rb: Removed.
+ * samples/makemo.rb, samples/cgi/makemo.rb:
+ Removed. Use "rake makemo" instead.
+ * post-setup.rb: Added "lib" to library path.
+ * lib/gettext/locale.rb: Added pseudo Locale module when
+ no _locale.so is found.(installation time by rake only)
+
+2005-08-21 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * src/rmsgfmt.ry: Added GetText.create_mofiles.
+ * test/gettext_test.rb, testlib4.rb: Added tests for
+ GetText.textdomain.
+ * samples/hello_textdomain.rb: Added a sample for
+ GetText.textdomain.
+ * lib/gettext/locale_default.rb: Call setlocale first.
+ * lib/gettext.rb: Added GetText.textdomain.
+ Added NoboundTextDomainError.
+ * lib/gettext/textdomain.rb: Added TextDomain#charset.
+ * lib/gettext/container.rb: Rename @domainname to
+ @gettext_container_domainname.
+ Pointed out by speakillof.
+ * pre-setup.rb: call rake setup.
+
+2005-08-20 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext/locale.rb: require '_locale' if 'gettext/_locale'
+ failed to load(for rubygems).
+
+2005-08-18 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext/textdomain.rb: Add Gem paths as search paths.
+
+2005-08-15 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * bin/rmsgfmt: Move methods to src/rmsgfmt.ry.
+ * src/rmsgfmt.ry: Improved. Added GetText.rmsgfmt.
+
+2005-08-14 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * Rakefile: Added.
+ * lib/gettext/version.rb: Added.
+ * lib/pre-setup.rb: Removed.
+ * lib/gettext/rgettext.rb: Added. Added GetText.rgettext.
+
+2005-08-13 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * README, REAMDE.ja: Updated informations.
+ * The project moves to rubyforge.
+
+2005-05-01 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext/locale_win32.rb: Added pseudo constants of setlocale.
+ * samples/cgi/ruby.bat: Added for Win32.
+ * samples/cgi/README: Modified.
+ * samples/cgi/http.rb: Support Win32.
+ * 0.9.0 released.
+
+2005-04-30 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext/cgi.rb: Added Locale.set_cgi() as alias of .cgi=.
+
+2005-04-25 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * samples/cgi/po/de/: Translated by Detlef Reichl.
+ * samples/cgi/po/es/: Translated by David Moreno Garza.
+ * samples/cgi/po/it/: Translated by Gabriele Renzi.
+ * samples/po/it/: Translated by Gabriele Renzi.
+
+2005-04-24 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * po/de/*.po : Translated by Detlef Reichl.
+ * po/it/*.po : Translated by Gabriele Renzi.
+
+2005-04-23 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * src/rmsgfmt.ry: Fix a bug not to unesacpe '"'.
+ Support new transltations.
+ * samples/cgi/*: Updated.
+ * samples/cgi/po/fr/*: Translated by Laurent Sansonetti.
+
+2005-04-22 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext/cgi.rb: Locale.get checks the cookie value.
+ The search priority is:
+ query_string(lang) > cookie(lang) > HTTP_ACCEPT_LANGUAGE > "en".
+
+2005-04-21 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext/cgi.rb: Added Locale.cgi=, .cgi,
+ GetText.cgi=, .cgi, .set_cgi.
+
+2005-04-20 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext.rb: Defined domain name as @domainname.
+ Added GetText.set_output_charset as alias of .output_charset=.
+ * lib/gettext/container.rb: Added.
+ * lib/gettext/erb.rb: Make ErbContainer a module not a class
+ and includes GetText::Container.
+ * samples/erb/*: Follow this changes.
+ * samples/cgi/, erb/: Move erb/ to cgi/.
+
+2005-04-19 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * samples/erb/*: Added sample for CGI/ERB.
+
+2005-04-18 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext/erb.rb: Added for ERB support.
+ * lib/gettext/cgi.rb: Added for CGI support.
+ * lib/gettext.rb: Add GetText.output_charset=.
+
+2005-04-11 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext.rb: Add GetText.set_locale, set_charset.
+
+2005-04-10 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * src/rmsgfmt.ry: Remove comment_old which isn't used anymore.
+
+2005-04-09 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext/gettext.rb, locale.rb, locale_default.rb:
+ Fix bugs that Locale.get, Locale.codeset return wrong values.
+ * test/gettext_text.rb: Add test for Locale module.
+
+2005-04-02 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * test/gettext_test_parser.rb, test_erb.rhtml:
+ Added tests for erb parser.
+ * lib/gettext/textdomain.rb: print debug message to
+ $stderr, not $stdout.
+ * lib/gettext/parser/erb.rb: Added.
+ rgettext support ERB. Inspired by Sascha Ebach.
+ * lib/gettext/parser/*.rb, bin/rgettext: Code clean up.
+
+2005-03-31 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext.rb, lib/gettext/textdomain.rb:
+ reimplement sgettext.
+ * lib/gettext.rb: Improve GetText.bindtextdomain
+ * test/makemo.rb, samples/makemo.rb: Improve to run rmsgfmt.
+ * pre-setup.rb: Improve to run racc.
+
+2005-03-28 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * ext/gettext/gettext/_locale.c: Locale.codeset calls
+ setlocale(LC_CTYPE, "") not LC_ALL.
+ * lib/gettext.rb: Update VERSION info.
+ * lib/gettext/locale.rb: Remove to read LC_CTYPE.
+ Now, this uses the environment variables LC_ALL,
+ LC_MESSAGES and LANG (in that order) same as GNU GetText.
+ Point outed by Dafydd Harries.
+ * samples/helloglade2.rb: Run correctly on the samples directory.
+ * 0.8.1 released.
+
+2005-03-20 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * src/rmsgfmt.ry: Fix a problem with \r, \t, \n.
+ Reported by Guillaume Cottenceau.
+
+2004-11-27 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * src/rmsgfmt.ry: Fix an error when #~ lines are existed.
+ Pointed out by Patrick GUNDLACH.
+ * lib/gettext/parser/ruby.rb: Fix rgettext ignore "\#" by Kazuhiro NISHIYAMA.
+ * test/test_rubyparser.rb, gettext_test_parser.rb: Added test for "\#".
+
+2004-11-07 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * po/pt_BR/*.po, samples/po/pt_BR/*.po: Added. Translated by Joao Pedrosa.
+
+2004-11-06 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * README, README.ja: Revised.
+ * po/sv/*.po, samples/po/sv/*.po: Added. Translated by Nikolai Weibull.
+ * po/es/*.po, samples/po/es/*.po: Added. Translated by David Espada.
+ * 0.8.0 released.
+
+2004-11-05 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * po/fr/*.po, samples/po/fr/*.po: Added. Translated by Laurent Sansonetti.
+ * test/test_rubyparser_N.rb: Added.
+ * test/test_rubyparser.rb: Added a test.
+ * lib/gettext.rb: Increment minor version.
+
+2004-11-04 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * test/gettext_test_parser.rb: Added test for n_().
+ * lib/gettext/parser/ruby.rb: Improved to parse n_().
+ * test/test_rubyparser_n.rb: Added.
+
+2004-11-03 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext/parser/ruby.rb: Support _("a" + "b") pattern as "ab".
+
+2004-10-23 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * setup.rb: Update to setup.rb-3.3.1.
+ * README, README.ja: Modified.
+ * 0.7.0 released.
+
+2004-10-22 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext/iconv.rb: Added.
+ * lib/gettext/mo.rb: Requires 'gettext/iconv' instead of 'iconv'.
+
+2004-10-21 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext.rb: every methods don't raise error when
+ GetText.bindtextdomain isn't called first.
+
+2004-10-12 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * bin/rgettext: Modified header like as GNU GetText.
+ Escape double quote correctly.
+ * test/gettext_test_parser.rb: Added tests for GetText::GladeParser.
+ * test/test_gladeparser.rb: Added.
+
+2004-10-11 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext/textdomain.rb: Added GETTEXT_PATH environment variable
+ for searching path. This is for testing/debugging.
+ Improved GetText::TextDomain#set_locale.
+ Reported by Dafydd Harries from Debian Bug Tracking System #275010.
+ * lib/gettext.rb, lib/gettext/textdomain.rb: Separate
+ GetText::Domain to lib/gettext/textdomain.rb.
+ * lib/gettext.rb: Increment GetText::VERSION.
+
+2004-08-12 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext.rb: Add GetText.sgettext(msgid), .s_(msgid) .
+ * bin/rgettext: Support GetText.sgettext, .s_.
+ * test/gettext_test.rb, test_sgettext.rb, test/po/ja/test_sgettext.po:
+ Added for GetText.sgettext, .s_ tests.
+
+2004-07-21 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * README, README.ja: Modified some old descriptions.
+ * lib/gettext.rb: Incremented revision.
+ * 0.6.1 released.
+
+2004-07-11 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext/parser/glade.rb: Fixed a bug for empty-string value.
+ * post-setup.rb: Fixed a install problem reported by wwp.
+
+2004-07-04 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * post-setup.rb, pre-clean.rb, pre-setup.rb: Improved
+ by Nobu Nakada.
+ * setup.rb: Replaced install.rb. Pointed out by Nobu Nakada.
+ * README, README.ja: Follow above changes.
+
+2004-07-03 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * test/gettext_test.rb: Added some complex cases.
+ * test/gettext_runner.rb: Added.
+ * test/po/ja/test_rubyparser.po: Added.
+ * lib/gettext.rb: Added GetText::VERSION.
+ * docs/*: Removed. See website instead.
+ * 0.6.0 released.
+
+2004-06-27 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * bin/rgettext: Support Glade-2 XML file.
+ * po/ja/rgettext.po: Ditto.
+ * lib/gettext/parser/ruby.rb, glade.rb: Added.
+ * test/gettext_test_parser.rb, test_rubyparser.rb: Added.
+ * lib/gettext/parser/ruby.rb: Improved to parse complex strings.
+
+2004-06-23 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext/mo.rb: Fix a bug to save data to a file.
+
+2004-06-15 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * src/rmsgfmt.ry: Force override if the file exist. This is the same
+ behavior as GNU msgfmt.
+ * lib/gettext/mo.rb: Fixed a bug that "Plural-Forms"
+ part isn't defined in po-file but has plural part.
+ Reported by Dafydd Harries.
+ * test/po/[fr|ja|de]/plural_error.po: Added for a test of plural forms.
+ * test/gettext_test.rb: ditto.
+
+2004-03-26 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext.rb: Fixed to return empty strings
+ when translated strings are empty.
+ * 0.5.5 released.
+
+2004-02-14 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext/locale.rb: Changes PLATFORM to RUBY_PLATFORM for ruby-1.9.
+ * 0.5.4 released.
+
+2003-12-02 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext.rb: Improve the initial speed.
+ * 0.5.3 released.
+
+2003-11-27 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * bin/rgettext: Fix bugs when \M or \C are given.
+
+2003-11-12 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * ext/gettext/gettext/_locale.c: Fix bugs for Win32.
+ Pointed out by Nobu Nakada.
+ * docs/config.rb: Removed.
+ * docs/rd/*/ruby-gettext.rd: Modified.
+ * 0.5.2 released.
+
+2003-07-05 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * ext/gettext/gettext/_locale.c: Define Locale.setlocale() and LC_* constants.
+ * lib/gettext.rb, lib/gettext/*.rb: Code cleanup.
+ * post-setup.rb: Fix mo files had not been compiled.
+ * 0.5.1 released.
+
+2003-07-04 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * samples/hello2.rb: Fix warning for ruby-1.8.x.
+ * ext/gettext/gettext/_locale.c: Call setlocale(LC_NUMERIC, "C")
+ for some locales which doesn't use "." as decimal-point.
+ * pre-setup.rb: Removed.
+ * post-setup.rb: Fix some bugs.
+
+2003-01-07 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * samples/hellogtk2.rb: Support Ruby/GTK2.
+ * gettext/mo.rb: Fix for bad mo files which don't include header part.
+ * bin/rgettext: Remove ",fuzzy" for header part. Set default charset to UTF-8.
+ * src/rmsgfmt.ry, po/rmsgfmt.pot, po/ja/rmsgfmt.po: Add files.
+ * 0.5.0 released.
+
+2002-10-21 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * Support ngettext(alias name is n_).
+ * Change directory structure.
+ * Remove *.mo from tar-ball(they are created automatically in installing).
+ * bin/rgettext, po/rgettext.pot, po/ja/rgettext.po: Revise help message.
+ * bin/rgettext: Fix POT-Creation-Date was localized.
+ * samples/hello_plural.rb: Add a sample.
+ * test/*: Add test for ngettext.
+ * 0.4.0 released.
+
+2002-10-18 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext/mo.rb: Fix bad return value when msgstr is not existed.
+ Pointed out by Shinobu TAKANASHI <sino@e-turi.net>
+ * test/*: Change RubyUnit to Test::Unit.
+ * 0.3.2 released.
+
+2002-07-06 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/locale.rb: Support MinGW.
+ * lib/mo.rb: Support platforms which do not support Iconv.
+ * 0.3.1 released.
+
+2002-07-02 WATANABE Hirofumi <eban@os.rim.or.jp>
+
+ * ext/gettext/gettext/extconf.rb:Support MinGW.
+
+2002-07-01 Nobuyoshi Nakada <nobu.nakada@nifty.ne.jp>
+
+ * ext/gettext/gettext/_locale.c: Code cleanup.
+ * po/ja.po: Fix typo.
+ * pre-install.rb: Code cleanup.
+
+2002-06-30 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * Support to convert output strings with charset(codeset).
+ - Add 4th parameter to GetText.bindtextdomain for charset
+ - Add GetText.charset=().
+ - Support Environment variable OUTPUT_CHARSET.
+ * samples/po/makemo.rb: support Ruby-1.6.x.
+ Reported by KUMAGAI Hidetake <ggb03124@nifty.ne.jp>
+ * 0.3.0 released.
+
+2002-02-22 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * docs/rd/[ja|en]/ruby-gettext.rd: Some modified.
+ * lib/gettext.rb: show more informations in debug mode(-d)
+ * bin/rgettext: BugFix for bad implementation of GetText.N_(msg).
+ by Masahiro Sakai<zvm01052@nifty.ne.jp>
+ * po/ja.po: change charset from iso-2022-jp to euc-jp.
+ by Masahiro Sakai<zvm01052@nifty.ne.jp>
+ * 0.2.1 released.
+
+2002-02-21 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext.rb: Implement GetText.N_(msg)
+ * bin/rgettext: Apply to GetText.N_(msg)
+ * samples/hello_noop.rb: Add a sample for GetText.N_(msg).
+ * test/gettext_test.rb: Add test_noop.
+ * docs/rd/[ja|en]/ruby-gettext.rd: Add an explanation of GetText.N_(msg).
+ * 0.2.0 released.
+
+2002-02-13 Masao Mutoh <mutoh@highway.ne.jp>
+ * ruby-gettext-package:
+ Move pre-clean.rb to pre-install.rb.
+ Reported by Yoshifumi Hiramatsu<hiramatu@boreas.dti.ne.jp>
+ * lib/gettext.rb: Improve search-path(@locale_dirs).
+ * bin/rgettext, samples/*.rb:
+ Improve first line(Add #! line or change #!/usr/bin/env ruby to
+ #!/usr/local/bin/ruby).
+ * samples/hellotk.rb: add new sample for Ruby/Tk
+ * 0.1.2 released.
+
+2002-02-03 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext.rb: BugFix to occur an error
+ when all of locale is not set.
+ * README, README.ja: Modified about Bad explanation
+ in Install section. Reported by
+ Yoshifumi Hiramatsu<hiramatu@boreas.dti.ne.jp>
+ * docs/rd/*/ruby-gettext.rd: Some improvements.
+ * docs/yard2html.rb: Some improvements.
+ * 0.1.1 released.
+
+2002-01-06 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/gettext.rb: Bugfix for bad scope.
+ * bin/rgettext: Sort by file, lineno.
+ * test/: Add one test.
+ * docs/rd/*/ruby-gettext.rd: Modified about rgettext.
+ * 0.1.0 released.
+
+2002-01-01 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * docs/: Add english document and some improvements.
+ * test/: Add one test.
+ * samples/: Add hello2.rb.
+ * 0.0.2 released.
+
+2001-12-24 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * test release
+
diff --git a/vendor/gems/gettext-2.1.0/NEWS-1 b/vendor/gems/gettext-2.1.0/NEWS-1
new file mode 100644
index 000000000..a087200e3
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/NEWS-1
@@ -0,0 +1,414 @@
+(OBSOLETE: Move to ChangeLog since 2.0.0)
+
+= Ruby-GetText-Package-1.93.0 (2008-09-14)
+ * Bulgarian added.
+ * Estonian updated.
+ * French updated.
+ * Japanese updated.
+ * np_, npgettext support.
+ * Fixed bugs.
+ - detect the correct charset on POSIX OS.
+ - updatepo task works again on Windows OS(with broken GNU msgmerge).
+ - Remove BOM from po-files before GNU msgmerge is executed.
+ (GNU msgmerge doesn't support BOM)
+ - Work with xx(double x) library and the library which uses xx library
+ such as rcov.
+ - Fixed expire_fragment with rails < 2.1.
+
+ (NOTE) Rails-2.2 has not been supported yet.
+
+Thanks to:
+ Translators:
+ Vincent Isambart, Erkki Eilonen, Sava Chankov.
+
+ Bug reports, suggestions and patches:
+ Vladimir Dobriakov, Tatsuki Sugiura, César Duque Calle,
+ Rémy-Christophe Schermesser, Donald Piret.
+
+= Ruby-GetText-Package-1.92.0 (2008-08-02)
+ * Fixed a memory leak(again)
+ * Fixed bugs.
+ * Improve to support mo-files.
+ * Support revision 1 of mo-file format.
+ * Freeze msgstrs.
+ * msgctxt - pgettext(msgctxt, msgid) support
+ (eg)
+ p_("File", "Open") #=> "Open" is shown in English.
+ * Update translations
+ * Catalan, Chinese(Simplified), Chinese(Traditional), (English), Esperanto, German,
+ Greek, Hungarian, Latvian, Japanese, Norwegian, Portuguese(pt_BR), Russian, Serbian,
+ Spanish, Ukrainian, Vietnamese,
+ * Rails Support
+ * Support rubyonrails-2.1.0 (2.0.0 or later).
+ * Add new validations for activerecord-2.1.0.
+ (:greater_than, :greater_than_or_equal_to, :equal_to,
+ :less_than, :less_than_or_equal_to,:odd, :even)
+ * validates_(format|inclusion)_of accepts %{val} as the value
+ (eg)
+ validates_inclusion_of :name, :in => %w(a, b), :message => N_("%{fn} can't be %{val}")
+ * Work Fragment caching on rails-2.1.0.
+ * Support ActiveRecord::Base.abstract_class.
+ * Work ActiveRecord::Errors#[]
+ * Work render_partial.
+
+Thanks to:
+ Translators:
+ Slobodan Paunović, Yuri Kozlov, Patrick Lenz, Malte Milatz, Ngoc DAO Thanh, David Espada,
+ Antonio S. de A. Terceiro, David Espada, Runar Ingebrigtsen, Tamás Tompa, Yang Bob, damphyr,
+ Ramon Salvadó, Alex Rootoff, Aivars Akots
+
+ Bug reports, suggestions and patches:
+ Hans de Graaff, Tatsuki Sugiura, Andreas Neuhaus, Loiseleur Michel
+
+= Ruby-GetText-Package-1.91.0 (2008-05-11)
+ * Works again on Win32 + JRuby-1.1.1
+ * Fixed memory leaks.
+ * Fixed bugs.
+ * Speed up.
+ * Support Serbian(sr)
+ * Rails Support
+ * rubyonrails-1.2.x isn't supported(2.0.0 or later are supported).
+ * Localize ActionView::Helpers::FormBuilder#label.
+ e.g.)
+ <% form_for(@article) do |f| %>
+ <p><%= f.label :lastupdate %></p>
+ <% end %>
+ => msgid "Article|Lastupdate" is used as the label string.
+
+Thanks to:
+ Translators:
+ Slobodan Paunović
+ Bug reports, suggestions and patches:
+ Paul Clegg, Locomotyphus, Simone Carletti, Dao Ngoc, Karl Palmskog,
+ Tatsuki Sugiura, Bernd Ahlers, craccho.
+
+= Ruby-GetText-Package-1.90.0 (2008-01-30)
+ Start to prepare v2.0.
+
+ * Support Ukrainian(ua), Hungarian(hu)
+ * JRuby supported.
+ * Become a pure ruby library (Remove .so extention).
+ * Don't need C compiler to install.
+ * Unified to one gem package for all environments (Don't need Win32 package).
+ * Directory structures are refactored.
+ * locale modules separate from lib/gettext/ to lib/locale/.
+ * Locale modules are refactored. System locales become read only.
+ * Ruby on Rails 2.0 supported.
+ * RDoc supported.
+ * Fix bugs.
+ * Enhance to support Ruby on Rails.
+ * error_messages_for can accept custom error dialog messages.
+ * Add GetText::Rails.available_locales, .normalized_locale
+ and fragment_cache_key/expire_fragment reimplement to use these methods
+ to restrict cached locale files.
+
+Thanks to:
+ Translators:
+ Alex Rootoff, Tamás Tompa
+ Bug reports, suggestions and patches:
+ Yaohan Chen, OZAWA Sakuro, olivier ruffin, Vít Ondruch,
+ Andreas Neuhaus, boud indymedia, Hans de Graaff, Stephan, Reynard,
+ Ernesto Jiménez Caballero, Paul Clegg
+
+= Ruby-GetText-Package-1.10.0 (2007-07-06)
+
+ * Support Vietnamese(vi), Bosnian(bs), Croatian(hr), Norwegian(nb)
+ * Cache messages. Both _() and n_() become 1.3-1.8 times faster
+ than older version.
+ * Add GetText.ns_()
+ * Fix bugs.
+ * Enhance to support Ruby on Rails.
+ * Work with script/generate scaffold_resource.
+ * error_messages_for accepts plural models.
+ * Support Action/Fragment caching.
+
+Thanks to:
+ Translators:
+ Dirkjan Bussink, Bart ten Brinke, Ngoc Dao, Sanjin Sehic,
+ Runar Ingebrigtsen, Menno Jonker, Joao Pedrosa, Malte Milatz,
+ Patrick Lenz, David Sulc, Erkki Eilonen, Yang Bob, Ramon Salvadó
+ Bug reports, suggestions and patches:
+ Maksim Bartenev, Bart ten Brinke, Florian Hufsky,
+ Michel Loiseleur, Sava Chankov
+
+= Ruby-GetText-Package-1.9.0 (2007-01-22)
+
+ * Support Catalan(ca), Esperanto(eo)
+ * Update translations: zh_CN, zh_TW, cs, nl, en, de, el, es, ja, ko, pt_BR, ru.
+ * Support Ruby on Rails-1.2.1.
+ * Code cleanupand improved. Fixed bugs.
+
+Thanks to:
+ Translators:
+ Antonio S. de A. Terceiro, David Espada, David Sulc, Gyoung-Yoon Noh,
+ Joao Pedrosa, Malte Milatz, Menno Jonkers, Patrick Lenz, Yang Bob,
+ Yuri Kozlov, Vassilis Rizopoulos
+
+ Bug reports, suggestions and patches:
+ Fabian Kreutz, KAKUTANI Shintaro, Mihnea Capraru, NANKI Haruo, pedro palazon
+
+= Ruby-GetText-Package-1.8.0 (2006-09-11)
+
+ * Support Chinese(Taiwan: zh_TW), Estonian(et: rails.po only)
+ * Add GetText.bindtextdomain_to(klass, domainname), .textdomain_to(klass, domainname)
+ * rgettext supports -r, -d options.
+ -r is to set an option parser. -d is for debugging mode.
+ (e.g.) $ rgettext -r fooparser test.foo
+ * Update translations: pt_BR, de, zh_TW,
+ * Code cleanup, fixed bugs.
+ * Enhance to support Ruby on Rails.
+ * init_gettext finds mo-files in /vendor/plugins/{plugin_name}/locale which has
+ app/controller directories such as Rails Engines.
+ And init_gettext accepts :locale_path option to be able to set the locale
+ path manually.
+ * init_gettext manages plural textdomains.
+ * Add before_init_gettext, after_init_gettext methods like as before/after_filter.
+ * Speed up(the sample blog is 1.5 times faster).
+ * gettext/active_record.rb from gettext/rails.rb.
+ * ActiveRecord::Validations is set the app's textdomain in init_gettext.
+ It means the class which includes ActiveRecord::Validtaions are localized with
+ the app's textdomain.
+ e.g.) You can use gettext methods in the subclass of ActiveForm[1]
+ http://www.realityforge.org/svn/code/active-form/trunk/
+ * Works rails edge again (http://dev.rubyonrails.org/ticket/5810)
+
+ Thanks to:
+ Translators: Joao Pedrosa(pt_BR), Partick Lenz(de), Erkki Eilonen(et),
+ LIN CHUNG-YI(zh_TW)
+ Bug reports and suggestions:
+ Kobayashi Noritada, Andreas Neuhaus, steve dp, Tsutomu Kuroda, Donald Piret
+
+= Ruby-GetText-Package-1.7.0 (2006-07-17)
+
+ * GetText.current_textdomain_info for debuging
+ * Fixed bugs, code cleanup.
+ * Update translations
+ * Chinese(zh), Czech(cs), Dutch(nl), English(default), French(fr)
+ Spanish(es), Japanese(ja), Korean(ko), Russian(ru)
+ * Improve to support Ruby on Rails
+ * Localize ActionView::Helpers::DateHelper.distance_of_time_in_words.
+ * Localize #error_message_on.
+ * Add ActiveRecord::Base.untranslate, .untranslate_all to prevend to
+ translate columns.
+
+ Thanks to:
+ Translators:
+ David Espada, Karel Miarka, Laurent Sansonetti, Yuri Kozlov,
+ Gyoung-Yoon Noh, Menno Jonkers, Yingfeng
+ Bug reports and suggestions:
+ arton, OZAWA Sakuro, kdmsnr, Kouhei Sutou
+
+= Ruby-GetText-Package-1.6.0 (2006-06-09)
+
+ * Support Chinese(zh_CN), Italian(it).
+ * Improve the way to manage textdomains.
+ * A class/module can have plural textdomains.
+ * A textdomain belong to a class/module.
+ * A class/module can have plural textdomains.
+ * A message is looked up in its class/module and ancestors.
+
+ You don't need to call bindtextdomain in each files.
+ # A textdomain belong to a file in previous version.
+ # And a message is looked up in the file which called
+ # GetText functions only.
+ * Fix bugs
+ * Samples are cleaned up.
+
+= Ruby-GetText-Package-1.5.0 (2006-05-07)
+
+ * Support Russian.
+ * Fix bugs.
+ * Refresh mo option was added.
+ Check mo files and reload it if it's updated.
+ ruby -d or GetText::TextDomain.check_mo=(true).
+ Or development mode in Ruby on Rails.
+
+= Ruby-GetText-Package-1.4.0 (2006-04-15)
+
+ * Support OpenBSD.
+ * Fix bugs
+ * Enhance supports of Ruby on Rails.
+ * Improved ActionMailer localization support.
+ * Support ActionWebService
+ * test/gettext_test_rails.rb works with Rails-1.1.2.
+
+= Ruby-GetText-Package-1.3.0 (2006-03-11)
+
+ * Improve Local::Object
+ * POSIX, C convert to "en".
+ * Enhance supports of Ruby on Rails.
+ * ActionMailer localization support.
+ * Use GetText function(_() N_() etc) in template.
+ * ISO-2022-JP charset is used when language is "ja"(Japanese).
+ * Localization templates support.
+ * ActionController::Base.render_text is overrided to find
+ localized templates such as foo_ja.rhml, foo_ja_JP.rhtml.
+ * @params["lang"] is treated as cgi["lang"]
+ * Use N_() as localized messages of validates_* instead of _().
+ * Translates ActiveRecord::Column.human_name values automatically.
+ * Fix memory leak, other bugs.
+
+= Ruby-GetText-Package-1.2.0 (2006-02-23)
+
+ * Re-implement Locale module and Implements Locale::Object,
+ Locale::System, etc.
+ * Fix bugs.
+ * Apply RDoc (not complete)
+ * Improve to support Ruby on Rails.
+ * Add GetText.Nn_.
+ * Add rmsgmerge (Experimental)
+
+= Ruby-GetText-Package-1.1.1 (2006-01-14)
+
+ * Bugfixes.
+ * Added Greek locale by damphyr.
+ * Support tests for Ruby on Rails.
+
+= Ruby-GetText-Package-1.1.0 (2005-12-29)
+
+ * Added some functions which managed po/mo files easily.
+ * GetText.update_pofiles creates/updates pot/po files.
+ The idea is from Sascha Ebach.
+
+ * String% is extended to accept named argument.
+ "%{file} is selected." % {:file => "foo.rb"}
+ Proposed by Sascha Ebach and Kazuhiro NISHIYAMA.
+
+ * Enhanced Ruby on Rails support.
+ * ActiveRecord support. Inspired from Simon Santoro(rgtrans).
+ * the error messages are localized.
+ Also, you can add your own messages with _("").
+ * You can use gettext methods in the models unless
+ preparing anything.
+
+ * rgettext extracts the table names/field names
+ of the subclass of ActiveRecord::Base as the msgid.
+
+ Even for the English developers who don't need
+ to localize their application, this function is
+ useful because the developer can rename
+ the table/field names using "en" locale.
+
+ * More simple to set up ApplicationController.
+ Now, you need to call just init_gettext only.
+
+ class ApplicationController < ActionController::Base
+ init_gettext "myapp" #Easy!
+ end
+
+ This "myapp" domain affects all of the controllers/views/models.
+
+ * Sample "blog" application with rails.
+ Improved the sample application on RoR. See: samples/rails/*.
+
+ * New/Updated translations:
+ Czech - Karel Miarka (NEW)
+ Dutch - Menno Jonkers (NEW)
+ French - Laurent Sansonetti
+ German - Sasa Ebach
+ Japanese - Masao Mutoh
+ Korean - Gyoung-Yoon Noh
+ Portuguese(Brazil) - Joao Pedrosa
+ Spanish - David Espada
+
+ * bugfixes.
+
+= Ruby-GetText-Package-1.0.0 (2005-09-03)
+
+ * Ruby on Rails is supported.
+ Includes sample in samples/rails/
+ * gem is supported. ($ gem install gettext)
+ * rake is supported.
+ * Not required racc anymore on installing time.
+ * New/Updated translations:
+ French - Laurent Sansonetti
+ German - Sven Herzberg
+ Japanese - Masao Mutoh
+ Korean - Gyoung-Yoon Noh (NEW)
+ Spanish - David Espada
+ * bugfixes.
+
+ * Moved to http://rubyforge.org/projects/gettext/
+ * Mailinglists started.
+
+
+= Ruby-GetText-Package-0.9.0 (2005-05-01)
+
+ * CGI support: gettext/cgi
+ * ERB support: gettext/erb, rgettext.
+ * Added samples for CGI/ERB to samples/cgi/.
+ * bugfixes.
+
+
+= Ruby-GetText-Package-0.8.1 (2005-03-30)
+
+ * bugfixes.
+ * New Translations: pt_BR by Joao Pedrosa.
+
+
+= Ruby-GetText-Package-0.8.0 (2004-11-06)
+
+ * rgettext: Improved to parse ruby script.
+ * New Translations:
+ French - Laurent Sansonetti
+ Spanish - David Espada
+ Swedish - Nikolai Weibull
+ * Fixed bugs.
+
+
+= Ruby-GetText-Package-0.7.0 (2004-10-25)
+
+ * Support GetText.sgettext.
+ See: http://www.gnu.org/software/gettext/manual/html_mono/gettext.html#SEC151
+ * Added gettext/iconv.rb.
+ If your ruby distribution doesn't have iconv.so but Ruby-GNOME2(Ruby/GTK2),
+ gettext/iconv.rb provides pseudo Iconv.iconv using Ruby/GLib module.
+ * GETTEXT_PATH as new environment variables. Define GETTEXT_PATH as locale
+ diretories. You can debug/test your application unless installing catalog
+ files.
+ * Update setup.rb(by Minero Aoki).
+ * Fix misc bugs
+
+
+= Ruby-GetText-Package-0.6.1 (2004-07-23)
+
+ * rgettext: Fixed a bug of glade XML mode.
+ * Fixed an installation problem.
+ * Changed the installer from install.rb to setup.rb.
+
+
+= Ruby-GetText-Package-0.6.0 (2004-07-05)
+
+ * rgettext: Support glade-2 XML file format.
+ * rgettext: Improved to parse ruby sources.
+ * rmsgfmt: Fix a bug that it generated wrong mo format.
+ * Fix bugs
+
+= Ruby-GetText-Package-0.5.5 (2004-03-26)
+
+ * Fix a bug.
+
+= Ruby-GetText-Package-0.5.4 (2004-02-14)
+
+ * Improved to support ruby-1.9.x.
+
+= Ruby-GetText-Package-0.5.3 (2004-02-14)
+
+ * Improve the initial speed.
+
+= Ruby-GetText-Package-0.5.2 (2003-11-12)
+
+ * Fix bugs for Win32.
+
+= Ruby-GetText-Package-0.5.1 (2003-07-05)
+
+ * Fix bugs. Code cleanup.
+
+= Ruby-GetText-Package-0.5.0 (2003-01-08)
+
+ * rmsgfmt: Added.
+ rmsgfmt is a ruby implementation of msgfmt in GNU gettext.
+ It creates a mo-file from a po-file.
+ * Fix bugs.
+
+
diff --git a/vendor/gems/gettext-2.1.0/README.rdoc b/vendor/gems/gettext-2.1.0/README.rdoc
new file mode 100644
index 000000000..b02d1f1bf
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/README.rdoc
@@ -0,0 +1,245 @@
+= gettext - Ruby-GetText-Package
+
+Ruby-GetText-Package is a Localization(L10n) library and tool
+which is modeled after the GNU gettext package.
+
+This library translates original messages to localized
+messages using client-side locale information(environment
+variable or CGI variable).
+
+The tools for developers support creating, useing, and modifying
+localized message files(message catalogs).
+
+((*Rails*))
+Rails support has been removed.
+Rails / ActiveRecord specific code now lives in locale_rails[http://github.com/mutoh/locale_rails/tree/master], gettext_rails[http://github.com/mutoh/gettext_rails/tree/master] and gettext_activerecord[http://github.com/mutoh/gettext_activerecord/tree/master].
+
+== Website
+* homepage[http://www.yotabanana.com/hiki/ruby-gettext.html]
+* on rubyforge[http://gettext/rubyforge.org/]
+* on github[http://github.com/gettext/]
+
+== Features
+* Translate singular/plural messages with simple APIs(similar to GNU gettext)
+
+* Thread safety. Message resources are shared from all threads, but
+ returns translated messages of the current thread's locale.
+
+* Tools to find message IDs
+ * Extract message IDs to po-files using rgettext from
+ * ruby scripts
+ * glade-2 XML file(.glade)
+ * ERB file(.rhtml, .erb)
+ * Anything (with your own parsers)
+ * The po-files are compatible to GNU gettext.
+
+ * rmsgfmt creates a mo-file from a po-file.
+ The mo-file is compatible to GNU gettext(msgfmt).
+
+ * Using rgettext/rmsgfmt as Rake tasks
+
+* textdomain's scope is adapt to ruby class/module mechanism.
+ * A class/module can have plural textdomains.
+ * a message is looked up in its class/module and ancestors.
+
+* CGI support (gettext/cgi)
+ * Locale is retrieved from client informations using Ruby-Locale.
+ (HTTP_ACCEPT_LANGUAGE, HTTP_ACCEPT_CHARSET, QUERY_STRING(lang), Cookies(lang)).
+
+* String%() is extended to use named argument such as <tt>%{foo}" %{:foo => 1}</tt>.
+ Notes that Ruby-1.9.x supports this format by itself.
+
+== Requirements
+* {Ruby 1.8.3 or later}[http://www.ruby-lang.org]
+* {Rubygems}[http://www.rubygems.org/]
+* {locale gem}[http://rubyforge.org/projects/locale/]
+ * $ gem install locale
+* (for development only)
+ * {GNU gettext 0.10.35 or later}[http://www.gnu.org/software/gettext/gettext.html]
+ * {Racc-1.4.3 or later}[http://www.ruby-lang.org/raa/list.rhtml?name=racc]
+ * (for compiling src/rmsgfmt.ry only)
+
+== Install
+* Uninstall old gettext if exists. (You need to do this when updating 1.93.0 -> 2.0.1)
+ (sudo/su on POSIX system)
+ gem uninstall gettext
+
+* gem
+ #from rubyforge
+ (sudo/su on POSIX system)
+ gem install gettext
+
+* download tar-ball
+ # De-Compress archive and enter its top directory.
+ (sudo/su on POSIX system)
+ ruby setup.rb
+
+You can also install files in your favorite directory by
+supplying setup.rb some options. Try <tt>ruby setup.rb --help</tt>.
+
+== Usage
+===Translation
+- _: Basic translation method
+ Translates the message.
+ _("Hello")
+
+The gettext methods comes in 3 combinable flavors
+- n: Pluralized
+ Returns singular or plural form, depending on how many you have.
+ n_("Apple", "%{num} Apples", 3)
+ n_(["Apple", "%{num} Apples"], 3)
+
+- p: context aware
+ A context is a prefix to your translation, usefull when one word has different meanings, depending on its context.
+ p_("Printer","Open") <=> p_("File","Open")
+ is the same as s_("Printer|Open") <=> s_("File|Open")
+
+- s: without context
+ If a translation could not be found, return the msgid without context.
+ s_("Printer|Open") => "Öffnen" #translation found
+ s_("Printer|Open") => "Open" #translation not found
+
+- combinations
+ np_("Fruit", "Apple", "%{num} Apples", 3)
+ ns_("Fruit|Apple","%{num} Apples", 3)
+
+ np_(["Fruit","Apple","%{num} Apples"], 3)
+ ns_(["Fruit|Apple","%{num} Apples"], 3)
+
+- N_, Nn_: Makes dynamic translation messages readable for the gettext parser.
+ <tt>_(fruit)</tt> cannot be understood by the gettext parser. To help the parser find all your translations,
+ you can add <tt>fruit = N_("Apple")</tt> which does not translate, but tells the parser: "Apple" needs translation.
+
+ fruit = N_("Apple") # same as fruit = "Apple"
+ _(fruit) # does a normal translation
+
+ fruits = Nn_("Apple", "%{num} Apples")
+ n_(fruits, 3)
+
+=== Bind textdomains to the classes.
+A textdomain has a translation file in each language.
+A module/class can have multi textdomains. This means the
+libraries/applications can have their own textdomains.
+
+ class Foo
+ include GetText
+ bindtextdomain "your_app_domain_name"
+ end
+
+ class Book
+ include GetText
+ bindtextdomain "general"
+ bindtextdomain "book"
+ end
+
+=== Locale
+If you need to set the locale by yourself, then use:
+ GetText.locale = "en_US" # translate into english from now on
+ GetText.locale # => en_US
+Or
+ include GetText
+ set_locale "en_US"
+
+For more details and options, have a look at the samples folder or
+consult the tutorial[http://www.yotabanana.com/hiki/ruby-gettext-howto.html].
+
+== License
+This program is licenced under the same licence as Ruby(See COPYING) or
+LGPL(Lesser General Public License: http://www.gnu.org/licenses/lgpl-3.0.txt).
+
+* mofile.rb
+ * Copyright (C) 2001-2009 Masao Mutoh <mutoh at highwhay.ne.jp>
+ * Copyright (C) 2001,2002 Masahiro Sakai <s01397ms at sfc.keio.ac.jp>
+
+* gettext.rb
+ * Copyright (C) 2001-2009 Masao Mutoh <mutoh at highwhay.ne.jp>
+ * Copyright (C) 2001,2002 Masahiro Sakai <s01397ms at sfc.keio.ac.jp>
+
+* rgettext
+ * Copyright (C) 2001-2009 Masao Mutoh <mutoh at highwhay.ne.jp>
+ * Copyright (C) 2001,2002 Yasushi Shoji <yashi at atmark-techno.com>
+
+* setup.rb
+ * Copyright (C) 2000-2005 Minero Aoki <aamine at loveruby.net>
+ * This file is released under LGPL. See the top of the install.rb.
+
+* Others
+ * Copyright (C) 2001-2009 Masao Mutoh <mutoh at highwhay.ne.jp>
+
+
+== Translators
+* Bosnian(bs) - Sanjin Sehic <saserr at gmail.com>
+* Bulgarian(bg) - Sava Chankov <sava.chankov at gmail.com>
+* Catalan(ca) - Ramon Salvadó <rsalvado at gnuine.com>
+* Chinese(Simplified)(zh_CN)
+ * Yang Bob <bob.yang.dev at gmail.com> (current)
+ * Yingfeng <blogyingfeng at gmail.com>
+* Chinese(Traditional)(zh_TW)
+ * Yang Bob <bob.yang.dev at gmail.com> (current)
+ * LIN CHUNG-YI <xmarsh at gmail.com>
+* Croatian(hr) - Sanjin Sehic <saserr at gmail.com>
+* Czech(cs) - Karel Miarka <kajism at yahoo.com>
+* Dutch(nl) - Menno Jonkers <ruby-gettext at jonkers.com>
+* Esperanto(eo) - Malte Milatz <malte at gmx-topmail.de>
+* Estonian(et) - Erkki Eilonen <erkki at itech.ee>
+* French(fr)
+ * Vincent Isambart <vincent.isambart at gmail.com> (current)
+ * David Sulc <davidsulc at gmail.com>
+ * Laurent Sansonetti <laurent.sansonetti at gmail.com>
+* German(de)
+ * Patrick Lenz <patrick at limited-overload.de> (current)
+ * Detlef Reichl <detlef.reichl at gmx.org>
+ * Sven Herzberg <herzi at abi02.de>
+ * Sascha Ebach <se at digitale-wertschoepfung.de>
+* Greek(el) - Vassilis Rizopoulos <damphyr at gmx.net>
+* Hungarian(hu) - Tamás Tompa <tompata at gmail.com>
+* Italian(it)
+ * Marco Lazzeri <marco.lazzeri at gmail.com>
+ * Gabriele Renzi <surrender_it at yahoo.it>
+* Japanese(ja) - Masao Mutoh <mutomasa at gmail.com>
+* Korean(ko) - Gyoung-Yoon Noh <nohmad at gmail.com>
+* Latvian(lv) - Aivars Akots <aivars.akots at gmail.com>
+* Norwegian(nb) - Runar Ingebrigtsen <runar at mopo.no>
+* Portuguese(Brazil)(pt_BR)
+ * Antonio S. de A. Terceiro <terceiro at softwarelivre.org> (current)
+ * Joao Pedrosa <joaopedrosa at gmail.com>
+* Russian(ru) - Yuri Kozlov <kozlov.y at gmail.com>
+* Serbian(sr) - Slobodan Paunović" <slobodan.paunovic at gmail.com>
+* Spanish(es)
+ * David Espada <davinci at escomposlinux.org> (current)
+ * David Moreno Garza <damog at damog.net>
+* Swedish(sv) - Nikolai Weibull <mailing-lists.ruby-talk at rawuncut.elitemail.org>
+* Ukrainian(ua) - Alex Rootoff <rootoff at pisem.net>
+* Vietnamese(vi) - Ngoc Dao Thanh <ngocdaothanh at gmail.com>
+
+== Status of translations
+* Bosnian(bs) - 1.90.0 (old)
+* Bulgarian(bg) - 2.0.1
+* Catalan(ca) - 2.0.1
+* Croatian(hr) - 1.90.0 (old)
+* Chinese(zh_CN) - 2.0.1
+* Chinese(zh_TW) - 2.0.1
+* Czech(cs) - 1.9.0 (old)
+* Dutch(nl) - 1.90.0 (old)
+* English(default) - 2.1.0
+* Esperanto(eo) - 2.0.1
+* Estonian(et) - 2.0.1
+* French(fr) - 2.0.1
+* German(de) - 2.0.1
+* Greek(el) - 2.0.1
+* Hungarian(hu) - 2.0.1
+* Italian(it) - 1.6.0 (old)
+* Japanese(ja) - 2.1.0
+* Korean(ko) - 1.9.0 (old)
+* Latvian(lv) - 2.0.1
+* Norwegian(nb) - 2.0.1
+* Portuguese(Brazil)(pt_BR) - 2.0.1
+* Russian(ru) - 2.0.1
+* Serbian(sr) - 2.0.1
+* Spanish(es) - 2.0.1
+* Swedish(sv) - 0.8.0 (too much old)
+* Ukrainian(ua) - 2.0.1
+* Vietnamese(vi) - 2.0.1
+
+== Maintainer
+Masao Mutoh <mutomasa at gmail.com>
diff --git a/vendor/gems/gettext-2.1.0/Rakefile b/vendor/gems/gettext-2.1.0/Rakefile
new file mode 100644
index 000000000..1a412d3e7
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/Rakefile
@@ -0,0 +1,234 @@
+#
+# Rakefile for Ruby-GetText-Package
+#
+# This file maintains Ruby-GetText-Package.
+#
+# Use setup.rb or gem for installation.
+# You don't need to use this file directly.
+#
+# Copyright(c) 2005-2009 Masao Mutoh
+# This program is licenced under the same licence as Ruby.
+#
+
+$:.unshift "./lib"
+
+require 'rubygems'
+require 'rake'
+require 'rake/packagetask'
+require 'rake/gempackagetask'
+require 'rake/rdoctask'
+require 'rake/testtask'
+require 'gettext/version'
+
+PKG_VERSION = GetText::VERSION
+
+############################################################
+# GetText tasks for developing
+############################################################
+desc "Create lib/gettext/tools/poparser.rb"
+task :poparser do
+ poparser_path = "lib/gettext/tools/poparser.rb"
+ racc = File.join(Config::CONFIG['bindir'], "racc")
+ if ! FileTest.exist?(racc)
+ puts "racc was not found: #{racc}"
+ exit 1
+ else FileTest.exist?(racc)
+ ruby "#{racc} -g src/poparser.ry -o src/poparser.tmp.rb"
+ $stderr.puts %Q[ruby #{racc} -g src/poparser.ry -o src/poparser.tmp.rb]
+
+ file = open(poparser_path, "w")
+
+ file.print "=begin\n"
+ file.print <<-EOS
+ poparser.rb - Generate a .mo
+
+ Copyright (C) 2003-2009 Masao Mutoh <mutomasa at gmail.com>
+
+ You may redistribute it and/or modify it under the same
+ license terms as Ruby.
+EOS
+ file.print "=end\n\n"
+
+ tmpfile = open("src/poparser.tmp.rb")
+ file.print tmpfile.read
+ file.close
+ tmpfile.close
+ File.delete("src/poparser.tmp.rb")
+ $stderr.puts "Create #{poparser_path}."
+ end
+end
+
+
+desc "Create *.mo from *.po"
+task :makemo do
+ require 'gettext/tools'
+ GetText.create_mofiles
+
+ $stderr.puts "Create samples mo files."
+ GetText.create_mofiles(
+ :po_root => "samples/po", :mo_root => "samples/locale")
+
+ $stderr.puts "Create samples/cgi mo files."
+ GetText.create_mofiles(
+ :po_root => "samples/cgi/po", :mo_root => "samples/cgi/locale")
+
+ $stderr.puts "Create test mo files."
+ GetText.create_mofiles(
+ :po_root => "test/po", :mo_root => "test/locale")
+end
+
+desc "Update pot/po files to match new version."
+task :updatepo do
+ begin
+ require 'gettext'
+ require 'gettext/tools/poparser'
+ require 'gettext/tools'
+ rescue LoadError
+ puts "gettext/tools/poparser was not found."
+ end
+
+ #lib/gettext/*.rb -> rgettext.po
+ GetText.update_pofiles("rgettext",
+ Dir.glob("lib/**/*.rb") + ["src/poparser.ry"],
+ "ruby-gettext #{GetText::VERSION}")
+end
+
+desc "Gather the newest po files. (for me)"
+task :gatherpo => [:updatepo] do
+ mkdir_p "pofiles/original" unless FileTest.exist? "pofiles/original"
+ Dir.glob("**/*.pot").each do |f|
+ unless /^(pofiles|test)/ =~ f
+ copy f, "pofiles/original/"
+ end
+ end
+ Dir.glob("**/*.po").each do |f|
+ unless /^(pofiles|test)/ =~ f
+ lang = /po\/([^\/]*)\/(.*.po)/.match(f).to_a[1]
+ mkdir_p "pofiles/#{lang}" unless FileTest.exist? "pofiles/#{lang}"
+ copy f, "pofiles/#{lang}/"
+ Dir.glob("pofiles/original/*.pot").each do |f|
+ newpo = "pofiles/#{lang}/#{File.basename(f, ".pot")}.po"
+ copy f, newpo unless FileTest.exist? newpo
+ end
+ end
+ end
+end
+
+def mv_pofiles(src_dir, target_dir, lang)
+ target = File.join(target_dir, lang)
+ unless File.exist?(target)
+ mkdir_p target
+ sh "cvs add #{target}"
+ end
+ cvs_add_targets = ""
+ Dir.glob(File.join(target_dir, "ja/*.po")).sort.each do |f|
+ srcfile = File.join(src_dir, File.basename(f))
+ if File.exist?(srcfile)
+ unless File.exist?(File.join(target, File.basename(f)))
+ cvs_add_targets << File.join(target, File.basename(f)) + " "
+ end
+ mv srcfile, target, :verbose => true
+ else
+ puts "mv #{srcfile} #{target}/ -- skipped"
+ end
+ end
+ sh "cvs add #{cvs_add_targets}" if cvs_add_targets.size > 0
+end
+
+desc "Deploy localized pofiles to current source tree. (for me)"
+task :deploypo do
+ srcdir = ENV["SRCDIR"] ||= File.join(ENV["HOME"], "pofiles")
+ lang = ENV["LOCALE"]
+ unless lang
+ puts "USAGE: rake deploypo [SRCDIR=#{ENV["HOME"]}/pofiles] LOCALE=ja"
+ exit
+ end
+ puts "SRCDIR = #{srcdir}, LOCALE = #{lang}"
+
+ mv_pofiles(srcdir, "po", lang)
+ mv_pofiles(srcdir, "samples/cgi/po", lang)
+ mv_pofiles(srcdir, "samples/po", lang)
+end
+
+############################################################
+# Package tasks
+############################################################
+desc "Create gem and tar.gz"
+spec = Gem::Specification.new do |s|
+ s.name = 'gettext'
+ s.version = PKG_VERSION
+ s.summary = 'Ruby-GetText-Package is a libary and tools to localize messages.'
+ s.author = 'Masao Mutoh'
+ s.email = 'mutomasa at gmail.com'
+ s.homepage = 'http://gettext.rubyforge.org/'
+ s.rubyforge_project = "gettext"
+ s.files = FileList['**/*'].to_a.select{|v| v !~ /pkg|CVS/}
+ s.require_path = 'lib'
+ s.executables = Dir.entries('bin').delete_if {|item| /^\.|CVS|~$/ =~ item }
+ s.bindir = 'bin'
+ s.add_dependency('locale', '>= 2.0.5')
+ s.has_rdoc = true
+ s.description = <<-EOF
+ 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.
+ EOF
+end
+
+Rake::PackageTask.new("ruby-gettext-package", PKG_VERSION) do |o|
+ o.package_files = FileList['**/*'].to_a.select{|v| v !~ /pkg|CVS/}
+ o.need_tar_gz = true
+ o.need_zip = false
+end
+
+Rake::GemPackageTask.new(spec) do |p|
+ p.gem_spec = spec
+ p.need_tar_gz = false
+ p.need_zip = false
+end
+
+task :package => [:makemo]
+
+############################################################
+# Misc tasks
+############################################################
+desc 'Run all tests'
+task :test do
+ Dir.chdir("test") do
+ if RUBY_PLATFORM =~ /win32/
+ sh "rake.bat", "test"
+ else
+ sh "rake", "test"
+ end
+ end
+end
+
+Rake::RDocTask.new { |rdoc|
+ begin
+ allison = `allison --path`.chop
+ rescue
+ allison = ''
+ end
+ rdoc.rdoc_dir = 'doc'
+ rdoc.title = "Ruby-GetText-Package API Reference"
+ rdoc.options << '--line-numbers' << '--inline-source'
+ rdoc.rdoc_files.include('README.rdoc', 'ChangeLog')
+ rdoc.rdoc_files.include('lib/**/*.rb')
+ rdoc.template = allison if allison.size > 0
+}
+
+desc "Publish the release files to RubyForge."
+task :release => [ :package ] do
+ require 'rubyforge'
+
+ rubyforge = RubyForge.new
+ rubyforge.configure
+ rubyforge.login
+ rubyforge.add_release("gettext", "gettext",
+ "Ruby-GetText-Package #{PKG_VERSION}",
+ "pkg/gettext-#{PKG_VERSION}.gem",
+ "pkg/ruby-gettext-package-#{PKG_VERSION}.tar.gz")
+end
+
+desc "Setup Ruby-GetText-Package. (for setup.rb)"
+task :setup => [:makemo]
diff --git a/vendor/gems/gettext-2.1.0/benchmark/1.93.0.txt b/vendor/gems/gettext-2.1.0/benchmark/1.93.0.txt
new file mode 100644
index 000000000..06adce0da
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/benchmark/1.93.0.txt
@@ -0,0 +1,8 @@
+"1.93.0"
+ user system total real
+bindtextdomain 2.580000 0.620000 3.200000 ( 3.237802)
+set_locale 18.920000 2.540000 21.460000 ( 21.950700)
+gettext ja 1.870000 0.780000 2.650000 ( 2.696046)
+gettext en (not found) 1.830000 0.820000 2.650000 ( 2.697443)
+ngettext ja 4.260000 1.280000 5.540000 ( 5.689135)
+ngettext en (not found) 5.300000 1.430000 6.730000 ( 6.889310)
diff --git a/vendor/gems/gettext-2.1.0/benchmark/2.0.0.txt b/vendor/gems/gettext-2.1.0/benchmark/2.0.0.txt
new file mode 100644
index 000000000..16efd7c34
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/benchmark/2.0.0.txt
@@ -0,0 +1,8 @@
+"2.0.0"
+ user system total real
+bindtextdomain 2.350000 0.490000 2.840000 ( 2.837863)
+set_locale 2.700000 0.630000 3.330000 ( 3.330341)
+gettext ja 74.160000 8.680000 82.840000 ( 82.886468)
+gettext en (not found) 62.030000 8.910000 70.940000 ( 70.976801)
+ngettext ja 75.610000 8.660000 84.270000 ( 84.316501)
+ngettext en (not found) 68.940000 9.630000 78.570000 ( 78.630459)
diff --git a/vendor/gems/gettext-2.1.0/benchmark/2.0.4.txt b/vendor/gems/gettext-2.1.0/benchmark/2.0.4.txt
new file mode 100644
index 000000000..40b0152e2
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/benchmark/2.0.4.txt
@@ -0,0 +1,11 @@
+"2.0.4"
+ user system total real
+bindtextdomain 1.960000 0.440000 2.400000 ( 2.439888)
+set_locale 5.970000 2.070000 8.040000 ( 8.050040)
+gettext ja 1.210000 0.390000 1.600000 ( 1.604350)
+gettext en (not found) 1.220000 0.370000 1.590000 ( 1.593880)
+ngettext ja 2.200000 0.500000 2.700000 ( 2.699904)
+ngettext en (not found) 1.850000 0.450000 2.300000 ( 2.318696)
+create object ja 168.840000 26.220000 195.060000 (195.235649)
+create object en 222.410000 32.830000 255.240000 (255.385031)
+190140K
diff --git a/vendor/gems/gettext-2.1.0/benchmark/2.1.0.txt b/vendor/gems/gettext-2.1.0/benchmark/2.1.0.txt
new file mode 100644
index 000000000..6eee8ddab
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/benchmark/2.1.0.txt
@@ -0,0 +1,11 @@
+"2.1.0"
+ user system total real
+bindtextdomain 1.320000 0.000000 1.320000 ( 1.348555)
+set_locale 3.990000 0.000000 3.990000 ( 4.073860)
+gettext ja 1.130000 0.000000 1.130000 ( 1.144062)
+gettext en (not found) 1.130000 0.000000 1.130000 ( 1.141781)
+ngettext ja 1.950000 0.000000 1.950000 ( 1.991278)
+ngettext en (not found) 1.650000 0.000000 1.650000 ( 1.676332)
+create object ja 1.210000 0.000000 1.210000 ( 1.224649)
+create object en 1.220000 0.000000 1.220000 ( 1.234247)
+104K
diff --git a/vendor/gems/gettext-2.1.0/benchmark/benchmark.rb b/vendor/gems/gettext-2.1.0/benchmark/benchmark.rb
new file mode 100644
index 000000000..dbe7fc443
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/benchmark/benchmark.rb
@@ -0,0 +1,68 @@
+$:.unshift "../../locale/lib"
+$:.unshift "../../gettext/lib"
+
+#require 'rubygems'
+require 'benchmark'
+require 'gettext'
+
+num = 100000
+
+def memory
+ pid = Process.pid
+ map = `pmap -d #{pid}`
+ map.split("\n").last.strip.squeeze(' ').split(' ')[3].to_i
+end
+
+curr_mem = memory
+
+class Test
+ include GetText
+ bindtextdomain("test1", :path => "../test/locale")
+ def test
+ _("language")
+ end
+end
+
+p GetText::VERSION
+Benchmark.bm(25){|x|
+ x.report("bindtextdomain"){ num.times{|i|
+ GetText.bindtextdomain("test1", :path => "../test/locale")
+ #GetText.bindtextdomain("test1", "../test/locale")
+ } }
+ x.report("set_locale"){ num.times{|i|
+ GetText.locale = "ja"
+ } }
+ GetText.locale = "ja"
+ x.report("gettext ja"){ num.times{|i|
+ GetText._("language")
+ } }
+ GetText.locale = "en"
+ x.report("gettext en (not found)"){ num.times{|i|
+ GetText._("language")
+ } }
+
+ GetText.bindtextdomain("plural", :path => "../test/locale")
+ #GetText.bindtextdomain("plural", "../test/locale")
+ GetText.locale = "ja"
+ x.report("ngettext ja"){ (num / 2).times{|i|
+ GetText.n_("single", "plural", 1)
+ GetText.n_("single", "plural", 2)
+ } }
+ GetText.locale = "en"
+ x.report("ngettext en (not found)"){ (num / 2).times{|i|
+ GetText.n_("single", "plural", 1)
+ GetText.n_("single", "plural", 2)
+ } }
+
+ GetText.locale = "ja"
+ x.report("create object ja"){ num.times{|i|
+ Test.new.test
+ } }
+ GetText.locale = "en"
+ x.report("create object en"){ num.times{|i|
+ Test.new.test
+ } }
+}
+
+GC.start
+puts "#{memory - curr_mem}K "
diff --git a/vendor/gems/gettext-2.1.0/benchmark/test.rb b/vendor/gems/gettext-2.1.0/benchmark/test.rb
new file mode 100644
index 000000000..576587607
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/benchmark/test.rb
@@ -0,0 +1,28 @@
+require 'benchmark'
+
+def test(s)
+ ret = ""
+ if s =~ /^\#<|^$/ or s == "GetText"
+ #if s.size == 0 or s[0..1] = "#<" or s == "GetText"
+ ret = Object
+ end
+ ret
+end
+
+num = 100000
+
+Benchmark.bm(25){|x|
+ x.report("test matched"){ num.times{|i|
+ test("#<foo>")
+ } }
+ x.report("test matched nodata"){ num.times{|i|
+ test("")
+ } }
+ x.report("test matched GetText"){ num.times{|i|
+ test("GetText")
+ } }
+ x.report("test not matched"){ num.times{|i|
+ test("FooBar")
+ } }
+
+}
diff --git a/vendor/gems/gettext-2.1.0/bin/rgettext b/vendor/gems/gettext-2.1.0/bin/rgettext
new file mode 100755
index 000000000..74eefbaec
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/bin/rgettext
@@ -0,0 +1,23 @@
+#! /usr/bin/ruby
+=begin
+ rgettext - ruby version of xgettext
+
+ Copyright (C) 2005-2009 Masao Mutoh
+
+ You may redistribute it and/or modify it under the same
+ license terms as Ruby.
+
+=end
+
+begin
+ require 'gettext/rgettext'
+rescue LoadError
+ begin
+ require 'rubygems'
+ require 'gettext/tools/rgettext'
+ rescue LoadError
+ raise 'Ruby-GetText-Package are not installed.'
+ end
+end
+
+GetText.rgettext
diff --git a/vendor/gems/gettext-2.1.0/bin/rmsgfmt b/vendor/gems/gettext-2.1.0/bin/rmsgfmt
new file mode 100755
index 000000000..1776ca3eb
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/bin/rmsgfmt
@@ -0,0 +1,22 @@
+#! /usr/bin/ruby
+=begin
+ rgettext - ruby version of xgettext
+
+ Copyright (C) 2005-2009 Masao Mutoh
+
+ You may redistribute it and/or modify it under the same
+ license terms as Ruby.
+=end
+
+begin
+ require 'gettext/tools/rmsgfmt'
+rescue LoadError
+ begin
+ require 'rubygems'
+ require 'gettext/tools/rmsgfmt'
+ rescue LoadError
+ raise 'Ruby-GetText-Package are not installed.'
+ end
+end
+
+GetText.rmsgfmt
diff --git a/vendor/gems/gettext-2.1.0/bin/rmsgmerge b/vendor/gems/gettext-2.1.0/bin/rmsgmerge
new file mode 100755
index 000000000..cffc7f431
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/bin/rmsgmerge
@@ -0,0 +1,22 @@
+#! /usr/bin/ruby
+=begin
+ rmsgmerge - ruby version of msgmerge
+
+ Copyright (C) 2005-2009 Masao Mutoh
+
+ You may redistribute it and/or modify it under the same
+ license terms as Ruby.
+=end
+
+begin
+ require 'gettext/tools/rmsgmerge'
+rescue LoadError
+ begin
+ require 'rubygems'
+ require 'gettext/tools/rmsgmerge'
+ rescue LoadError
+ raise 'Ruby-GetText-Package are not installed.'
+ end
+end
+
+GetText.rmsgmerge
diff --git a/vendor/gems/gettext-2.1.0/data/locale/bg/LC_MESSAGES/rgettext.mo b/vendor/gems/gettext-2.1.0/data/locale/bg/LC_MESSAGES/rgettext.mo
new file mode 100644
index 000000000..0d472330a
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/data/locale/bg/LC_MESSAGES/rgettext.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/data/locale/bs/LC_MESSAGES/rgettext.mo b/vendor/gems/gettext-2.1.0/data/locale/bs/LC_MESSAGES/rgettext.mo
new file mode 100644
index 000000000..c3089dfa4
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/data/locale/bs/LC_MESSAGES/rgettext.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/data/locale/ca/LC_MESSAGES/rgettext.mo b/vendor/gems/gettext-2.1.0/data/locale/ca/LC_MESSAGES/rgettext.mo
new file mode 100644
index 000000000..64a6e1214
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/data/locale/ca/LC_MESSAGES/rgettext.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/data/locale/cs/LC_MESSAGES/rgettext.mo b/vendor/gems/gettext-2.1.0/data/locale/cs/LC_MESSAGES/rgettext.mo
new file mode 100644
index 000000000..aff6cc772
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/data/locale/cs/LC_MESSAGES/rgettext.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/data/locale/de/LC_MESSAGES/rgettext.mo b/vendor/gems/gettext-2.1.0/data/locale/de/LC_MESSAGES/rgettext.mo
new file mode 100644
index 000000000..38b251c89
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/data/locale/de/LC_MESSAGES/rgettext.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/data/locale/el/LC_MESSAGES/rgettext.mo b/vendor/gems/gettext-2.1.0/data/locale/el/LC_MESSAGES/rgettext.mo
new file mode 100644
index 000000000..9d55f5622
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/data/locale/el/LC_MESSAGES/rgettext.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/data/locale/eo/LC_MESSAGES/rgettext.mo b/vendor/gems/gettext-2.1.0/data/locale/eo/LC_MESSAGES/rgettext.mo
new file mode 100644
index 000000000..f8bc3f95b
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/data/locale/eo/LC_MESSAGES/rgettext.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/data/locale/es/LC_MESSAGES/rgettext.mo b/vendor/gems/gettext-2.1.0/data/locale/es/LC_MESSAGES/rgettext.mo
new file mode 100644
index 000000000..342967972
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/data/locale/es/LC_MESSAGES/rgettext.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/data/locale/et/LC_MESSAGES/rgettext.mo b/vendor/gems/gettext-2.1.0/data/locale/et/LC_MESSAGES/rgettext.mo
new file mode 100644
index 000000000..a376968cb
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/data/locale/et/LC_MESSAGES/rgettext.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/data/locale/fr/LC_MESSAGES/rgettext.mo b/vendor/gems/gettext-2.1.0/data/locale/fr/LC_MESSAGES/rgettext.mo
new file mode 100644
index 000000000..b1dcadb50
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/data/locale/fr/LC_MESSAGES/rgettext.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/data/locale/hr/LC_MESSAGES/rgettext.mo b/vendor/gems/gettext-2.1.0/data/locale/hr/LC_MESSAGES/rgettext.mo
new file mode 100644
index 000000000..19a2eaea2
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/data/locale/hr/LC_MESSAGES/rgettext.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/data/locale/hu/LC_MESSAGES/rgettext.mo b/vendor/gems/gettext-2.1.0/data/locale/hu/LC_MESSAGES/rgettext.mo
new file mode 100644
index 000000000..e5ad0ecc4
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/data/locale/hu/LC_MESSAGES/rgettext.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/data/locale/it/LC_MESSAGES/rgettext.mo b/vendor/gems/gettext-2.1.0/data/locale/it/LC_MESSAGES/rgettext.mo
new file mode 100644
index 000000000..4377e7f2a
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/data/locale/it/LC_MESSAGES/rgettext.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/data/locale/ja/LC_MESSAGES/rgettext.mo b/vendor/gems/gettext-2.1.0/data/locale/ja/LC_MESSAGES/rgettext.mo
new file mode 100644
index 000000000..3712a3375
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/data/locale/ja/LC_MESSAGES/rgettext.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/data/locale/ko/LC_MESSAGES/rgettext.mo b/vendor/gems/gettext-2.1.0/data/locale/ko/LC_MESSAGES/rgettext.mo
new file mode 100644
index 000000000..640d4eda5
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/data/locale/ko/LC_MESSAGES/rgettext.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/data/locale/lv/LC_MESSAGES/rgettext.mo b/vendor/gems/gettext-2.1.0/data/locale/lv/LC_MESSAGES/rgettext.mo
new file mode 100644
index 000000000..f185e3bff
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/data/locale/lv/LC_MESSAGES/rgettext.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/data/locale/nb/LC_MESSAGES/rgettext.mo b/vendor/gems/gettext-2.1.0/data/locale/nb/LC_MESSAGES/rgettext.mo
new file mode 100644
index 000000000..fdcb91706
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/data/locale/nb/LC_MESSAGES/rgettext.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/data/locale/nl/LC_MESSAGES/rgettext.mo b/vendor/gems/gettext-2.1.0/data/locale/nl/LC_MESSAGES/rgettext.mo
new file mode 100644
index 000000000..340cbf4e8
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/data/locale/nl/LC_MESSAGES/rgettext.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/data/locale/pt_BR/LC_MESSAGES/rgettext.mo b/vendor/gems/gettext-2.1.0/data/locale/pt_BR/LC_MESSAGES/rgettext.mo
new file mode 100644
index 000000000..7fc736c4a
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/data/locale/pt_BR/LC_MESSAGES/rgettext.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/data/locale/ru/LC_MESSAGES/rgettext.mo b/vendor/gems/gettext-2.1.0/data/locale/ru/LC_MESSAGES/rgettext.mo
new file mode 100644
index 000000000..67dea69da
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/data/locale/ru/LC_MESSAGES/rgettext.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/data/locale/sr/LC_MESSAGES/rgettext.mo b/vendor/gems/gettext-2.1.0/data/locale/sr/LC_MESSAGES/rgettext.mo
new file mode 100644
index 000000000..eae0f2b09
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/data/locale/sr/LC_MESSAGES/rgettext.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/data/locale/sv/LC_MESSAGES/rgettext.mo b/vendor/gems/gettext-2.1.0/data/locale/sv/LC_MESSAGES/rgettext.mo
new file mode 100644
index 000000000..9ce619c10
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/data/locale/sv/LC_MESSAGES/rgettext.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/data/locale/ua/LC_MESSAGES/rgettext.mo b/vendor/gems/gettext-2.1.0/data/locale/ua/LC_MESSAGES/rgettext.mo
new file mode 100644
index 000000000..1b62565e1
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/data/locale/ua/LC_MESSAGES/rgettext.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/data/locale/vi/LC_MESSAGES/rgettext.mo b/vendor/gems/gettext-2.1.0/data/locale/vi/LC_MESSAGES/rgettext.mo
new file mode 100644
index 000000000..8ca8df16a
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/data/locale/vi/LC_MESSAGES/rgettext.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/data/locale/zh/LC_MESSAGES/rgettext.mo b/vendor/gems/gettext-2.1.0/data/locale/zh/LC_MESSAGES/rgettext.mo
new file mode 100644
index 000000000..bacba0073
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/data/locale/zh/LC_MESSAGES/rgettext.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/data/locale/zh_TW/LC_MESSAGES/rgettext.mo b/vendor/gems/gettext-2.1.0/data/locale/zh_TW/LC_MESSAGES/rgettext.mo
new file mode 100644
index 000000000..707aa3983
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/data/locale/zh_TW/LC_MESSAGES/rgettext.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/gettext.gemspec b/vendor/gems/gettext-2.1.0/gettext.gemspec
new file mode 100644
index 000000000..f9125a591
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/gettext.gemspec
@@ -0,0 +1,40 @@
+# -*- encoding: utf-8 -*-
+
+Gem::Specification.new do |s|
+ s.name = %q{gettext}
+ s.version = "2.0.0"
+
+ s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
+ s.authors = ["Masao Mutoh"]
+ s.date = %q{2009-02-06}
+ 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.}
+ s.email = %q{mutomasa at gmail.com}
+ s.executables = ["rgettext", "rmsgmerge", "rmsgfmt"]
+ s.extra_rdoc_files = ["lib/gettext.rb", "lib/gettext/tools.rb", "lib/gettext/core_ext/string.rb", "lib/gettext/version.rb", "README.rdoc"]
+ 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"]
+ s.has_rdoc = true
+ s.homepage = %q{http://gettext.rubyforge.org/}
+ s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "GetText", "--main", "README.rdoc"]
+ s.require_paths = ["lib"]
+ s.rubyforge_project = %q{gettext}
+ s.rubygems_version = %q{1.3.1}
+ s.summary = %q{Ruby-GetText-Package is a libary and tools to localize messages.}
+ 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"]
+
+ if s.respond_to? :specification_version then
+ current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
+ s.specification_version = 2
+
+ if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
+ s.add_runtime_dependency(%q<locale>, [">= 0"])
+ s.add_development_dependency(%q<echoe>, [">= 0"])
+ else
+ s.add_dependency(%q<locale>, [">= 0"])
+ s.add_dependency(%q<echoe>, [">= 0"])
+ end
+ else
+ s.add_dependency(%q<locale>, [">= 0"])
+ s.add_dependency(%q<echoe>, [">= 0"])
+ end
+end
diff --git a/vendor/gems/gettext-2.1.0/lib/gettext.rb b/vendor/gems/gettext-2.1.0/lib/gettext.rb
new file mode 100644
index 000000000..30a0e83b8
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/lib/gettext.rb
@@ -0,0 +1,310 @@
+=begin
+ gettext.rb - GetText module
+
+ Copyright (C) 2001-2009 Masao Mutoh
+ Copyright (C) 2001-2003 Masahiro Sakai
+
+ Masao Mutoh <mutomasa at gmail.com>
+ Masahiro Sakai <s01397ms@sfc.keio.ac.jp>
+
+ You may redistribute it and/or modify it under the same
+ license terms as Ruby or LGPL.
+=end
+
+if Object.constants.include? "Gem"
+ begin
+ begin
+ gem 'locale', '>=2.0.4'
+ rescue Gem::LoadError
+ end
+ rescue NoMethodError
+ else LoadError
+ end
+end
+
+require 'locale'
+raise "Install locale as gem or uninstall old gettext" unless Locale.respond_to? :candidates
+
+require 'gettext/version'
+require 'gettext/runtime/textdomain_manager'
+
+module GetText
+ # If the textdomain isn't bound when calling GetText.textdomain, this error is raised.
+ class NoboundTextDomainError < RuntimeError
+ def initialize(domainname)
+ @domainname = domainname
+ end
+ def message
+ "#{@domainname} is not bound."
+ end
+ end
+
+ extend self
+
+ def self.included(mod) #:nodoc:
+ mod.extend self
+ end
+
+ # bindtextdomain(domainname, options = {})
+ #
+ # Bind a textdomain(%{path}/%{locale}/LC_MESSAGES/%{domainname}.mo) to
+ # your program.
+ # Normally, the texdomain scope becomes the class/module(and parent
+ # classes/included modules).
+ #
+ # * domainname: the textdomain name.
+ # * options: options as an Hash.
+ # * :path - the path to the mo-files. When the value is nil, it will search default paths such as
+ # /usr/share/locale, /usr/local/share/locale)
+ # * :output_charset - The output charset. Same with GetText.set_output_charset. Usually, L10n
+ # library doesn't use this option. Application may use this once.
+ # * Returns: the GetText::TextDomainManager.
+ #
+ def bindtextdomain(domainname, *options)
+ bindtextdomain_to(self, domainname, *options)
+ end
+
+ # Includes GetText module and bind a textdomain to a class.
+ # * klass: the target ruby class.
+ # * domainname: the textdomain name.
+ # * options: options as an Hash. See GetText.bindtextdomain.
+ def bindtextdomain_to(klass, domainname, *options)
+ if options[0].kind_of? Hash
+ opts = options[0]
+ else
+ # for backward compatibility.
+ opts = {}
+ opts[:path] = options[0] if options[0]
+ opts[:output_charset] = options[2] if options[2]
+ end
+ unless (klass.kind_of? GetText or klass.include? GetText)
+ klass.__send__(:include, GetText)
+ end
+ TextDomainManager.bind_to(klass, domainname, opts)
+ end
+
+ # Binds a existed textdomain to your program.
+ # This is the same function with GetText.bindtextdomain but simpler(and faster) than bindtextdomain.
+ # Note that you need to call GetText.bindtextdomain first. If the domainname hasn't bound yet,
+ # raises GetText::NoboundTextDomainError.
+ # * domainname: a textdomain name.
+ # * Returns: the GetText::TextDomainManager.
+ def textdomain(domainname) #:nodoc:
+ textdomain_to(self, domainname)
+ end
+
+ # Includes GetText module and bind an exsited textdomain to a class.
+ # See textdomain for more detail.
+ # * klass: the target ruby class.
+ # * domainname: the textdomain name.
+
+ def textdomain_to(klass, domainname) #:nodoc:
+ domain = TextDomainManager.textdomain_pool(domainname)
+ raise NoboundTextDomainError.new(domainname) unless domain
+ bindtextdomain_to(klass, domainname)
+ end
+
+ # call-seq:
+ # gettext(msgid)
+ # _(msgid)
+ #
+ # Translates msgid and return the message.
+ # This doesn't make a copy of the message.
+ #
+ # You need to use String#dup if you want to modify the return value
+ # with destructive functions.
+ #
+ # (e.g.1) _("Hello ").dup << "world"
+ #
+ # But e.g.1 should be rewrite to:
+ #
+ # (e.g.2) _("Hello %{val}") % {:val => "world"}
+ #
+ # Because the translator may want to change the position of "world".
+ #
+ # * msgid: the message id.
+ # * Returns: localized text by msgid. If there are not binded mo-file, it will return msgid.
+ def gettext(msgid)
+ TextDomainManager.translate_singluar_message(self, msgid)
+ end
+
+ # call-seq:
+ # sgettext(msgid, div = '|')
+ # s_(msgid, div = '|')
+ #
+ # Translates msgid, but if there are no localized text,
+ # it returns a last part of msgid separeted "div".
+ #
+ # * msgid: the message id.
+ # * separator: separator or nil for no seperation.
+ # * Returns: the localized text by msgid. If there are no localized text,
+ # it returns a last part of the msgid separeted by "seperator".
+ # <tt>Movie|Location -> Location</tt>
+ # See: http://www.gnu.org/software/gettext/manual/html_mono/gettext.html#SEC151
+ def sgettext(msgid, seperator = "|")
+ TextDomainManager.translate_singluar_message(self, msgid, seperator)
+ end
+
+ # call-seq:
+ # pgettext(msgctxt, msgid)
+ # p_(msgctxt, msgid)
+ #
+ # Translates msgid with msgctxt. This methods is similer with s_().
+ # e.g.) p_("File", "New") == s_("File|New")
+ # p_("File", "Open") == s_("File|Open")
+ #
+ # * msgctxt: the message context.
+ # * msgid: the message id.
+ # * Returns: the localized text by msgid. If there are no localized text,
+ # it returns msgid.
+ # See: http://www.gnu.org/software/autoconf/manual/gettext/Contexts.html
+ def pgettext(msgctxt, msgid)
+ TextDomainManager.translate_singluar_message(self, "#{msgctxt}\004#{msgid}", "\004")
+ end
+
+ # call-seq:
+ # ngettext(msgid, msgid_plural, n)
+ # ngettext(msgids, n) # msgids = [msgid, msgid_plural]
+ # n_(msgid, msgid_plural, n)
+ # n_(msgids, n) # msgids = [msgid, msgid_plural]
+ #
+ # The ngettext is similar to the gettext function as it finds the message catalogs in the same way.
+ # But it takes two extra arguments for plural form.
+ #
+ # * msgid: the singular form.
+ # * msgid_plural: the plural form.
+ # * n: a number used to determine the plural form.
+ # * Returns: the localized text which key is msgid_plural if n is plural(follow plural-rule) or msgid.
+ # "plural-rule" is defined in po-file.
+ def ngettext(msgid, msgid_plural, n = nil)
+ TextDomainManager.translate_plural_message(self, msgid, msgid_plural, n)
+ end
+
+ # call-seq:
+ # nsgettext(msgid, msgid_plural, n, div = "|")
+ # nsgettext(msgids, n, div = "|") # msgids = [msgid, msgid_plural]
+ # ns_(msgid, msgid_plural, n, div = "|")
+ # ns_(msgids, n, div = "|") # msgids = [msgid, msgid_plural]
+ #
+ # The nsgettext is similar to the ngettext.
+ # But if there are no localized text,
+ # it returns a last part of msgid separeted "div".
+ #
+ # * msgid: the singular form with "div". (e.g. "Special|An apple")
+ # * msgid_plural: the plural form. (e.g. "%{num} Apples")
+ # * n: a number used to determine the plural form.
+ # * Returns: the localized text which key is msgid_plural if n is plural(follow plural-rule) or msgid.
+ # "plural-rule" is defined in po-file.
+ def nsgettext(msgid, msgid_plural, n="|", seperator = "|")
+ TextDomainManager.translate_plural_message(self, msgid, msgid_plural, n, seperator)
+ end
+
+ # call-seq:
+ # npgettext(msgctxt, msgid, msgid_plural, n)
+ # npgettext(msgctxt, msgids, n) # msgids = [msgid, msgid_plural]
+ # np_(msgctxt, msgid, msgid_plural, n)
+ # np_(msgctxt, msgids, n) # msgids = [msgid, msgid_plural]
+ #
+ # The npgettext is similar to the nsgettext function.
+ # e.g.) np_("Special", "An apple", "%{num} Apples", num) == ns_("Special|An apple", "%{num} Apples", num)
+ # * msgctxt: the message context.
+ # * msgid: the singular form.
+ # * msgid_plural: the plural form.
+ # * n: a number used to determine the plural form.
+ # * Returns: the localized text which key is msgid_plural if n is plural(follow plural-rule) or msgid.
+ # "plural-rule" is defined in po-file.
+ def npgettext(msgctxt, msgids, arg2 = nil, arg3 = nil)
+ if msgids.kind_of?(Array)
+ msgid = msgids[0]
+ msgid_ctxt = "#{msgctxt}\004#{msgid}"
+ msgid_plural = msgids[1]
+ opt1 = arg2
+ opt2 = arg3
+ else
+ msgid = msgids
+ msgid_ctxt = "#{msgctxt}\004#{msgid}"
+ msgid_plural = arg2
+ opt1 = arg3
+ opt2 = nil
+ end
+
+ msgstr = TextDomainManager.translate_plural_message(self, msgid_ctxt, msgid_plural, opt1, opt2)
+ if msgstr == msgid_ctxt
+ msgid
+ else
+ msgstr
+ end
+ end
+
+ # makes dynamic translation messages readable for the gettext parser.
+ # <tt>_(fruit)</tt> cannot be understood by the gettext parser. To help the parser find all your translations,
+ # you can add <tt>fruit = N_("Apple")</tt> which does not translate, but tells the parser: "Apple" needs translation.
+ # * msgid: the message id.
+ # * Returns: msgid.
+ def N_(msgid)
+ msgid
+ end
+
+ # This is same function as N_ but for ngettext.
+ # * msgid: the message id.
+ # * msgid_plural: the plural message id.
+ # * Returns: msgid.
+ def Nn_(msgid, msgid_plural)
+ [msgid, msgid_plural]
+ end
+
+ # Sets charset(String) such as "euc-jp", "sjis", "CP932", "utf-8", ...
+ # You shouldn't use this in your own Libraries.
+ # * charset: an output_charset
+ # * Returns: self
+ def set_output_charset(charset)
+ TextDomainManager.output_charset = charset
+ self
+ end
+
+ # Gets the current output_charset which is set using GetText.set_output_charset.
+ # * Returns: output_charset.
+ def output_charset
+ TextDomainManager.output_charset
+ end
+
+ # Set the locale. This value forces the locale whole the programs.
+ # This method calls Locale.set_app_language_tags, Locale.default, Locale.current.
+ # Use Locale methods if you need to handle locales more flexible.
+ def set_locale(lang)
+ Locale.set_app_language_tags(lang)
+ Locale.default = lang
+ Locale.current = lang
+ end
+
+ # Set the locale to the current thread.
+ # Note that if #set_locale is set, this value is ignored.
+ # If you need, set_locale(nil); set_current_locale(lang)
+ def set_current_locale(lang)
+ Locale.current = lang
+ end
+
+ def locale
+ Locale.current[0]
+ end
+
+ alias :locale= :set_locale #:nodoc:
+ alias :current_locale= :set_current_locale #:nodoc:
+ alias :_ :gettext #:nodoc:
+ alias :n_ :ngettext #:nodoc:
+ alias :s_ :sgettext #:nodoc:
+ alias :ns_ :nsgettext #:nodoc:
+ alias :np_ :npgettext #:nodoc:
+
+ alias :output_charset= :set_output_charset #:nodoc:
+
+unless defined? XX
+ # This is the workaround to conflict p_ methods with the xx("double x") library.
+ # http://rubyforge.org/projects/codeforpeople/
+ alias :p_ :pgettext #:nodoc:
+end
+
+ # for backward compatibility
+ alias :set_locale_all :set_locale #:nodoc:
+ alias :setlocale :set_locale #:nodoc:
+end
diff --git a/vendor/gems/gettext-2.1.0/lib/gettext/cgi.rb b/vendor/gems/gettext-2.1.0/lib/gettext/cgi.rb
new file mode 100644
index 000000000..78868fc10
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/lib/gettext/cgi.rb
@@ -0,0 +1,37 @@
+=begin
+ gettext/cgi.rb - GetText for CGI
+
+ Copyright (C) 2005-2009 Masao Mutoh
+
+ You may redistribute it and/or modify it under the same
+ license terms as Ruby or LGPL.
+=end
+
+require 'cgi'
+require 'gettext'
+
+Locale.init(:driver => :cgi)
+
+module GetText
+
+ # Sets a CGI object. This methods is appeared when requiring "gettext/cgi".
+ # * cgi_: CGI object
+ # * Returns: self
+ def set_cgi(cgi_)
+ Locale.set_cgi(cgi_)
+ end
+
+ # Same as GetText.set_cgi. This methods is appeared when requiring "gettext/cgi".
+ # * cgi_: CGI object
+ # * Returns: cgi_
+ def cgi=(cgi_)
+ set_cgi(cgi_)
+ cgi_
+ end
+
+ # Gets the CGI object. If it is nil, returns new CGI object. This methods is appeared when requiring "gettext/cgi".
+ # * Returns: the CGI object
+ def cgi
+ Locale.cgi
+ end
+end
diff --git a/vendor/gems/gettext-2.1.0/lib/gettext/core_ext/iconv.rb b/vendor/gems/gettext-2.1.0/lib/gettext/core_ext/iconv.rb
new file mode 100644
index 000000000..bc3aab0eb
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/lib/gettext/core_ext/iconv.rb
@@ -0,0 +1,110 @@
+# encoding: utf-8
+=begin
+ iconv.rb - Pseudo Iconv class. Supports Iconv.iconv, Iconv.conv.
+
+ For Matz Ruby:
+ If you don't have iconv but glib2, this library uses glib2 iconv functions.
+
+ For JRuby:
+ Use Java String class to convert strings.
+
+ Copyright (C) 2004-2009 Masao Mutoh
+
+ You may redistribute it and/or modify it under the same
+ license terms as Ruby or LGPL.
+=end
+
+begin
+ require 'iconv.so'
+rescue LoadError
+ # Pseudo Iconv class
+ #
+ # ==== For Matz Ruby:
+ # If you don't have iconv but Ruby/GLib2, this library uses Ruby/GLib2's
+ # iconv functions.
+ #
+ # Ruby/GLib is a module which is provided from Ruby-GNOME2 Project.
+ # You can get binaries for Win32(One-Click Ruby Installer).
+ # <URL: http://ruby-gnome2.sourceforge.jp/>
+ # ==== For JRuby:
+ # Use Java String class to convert strings.
+ class Iconv
+ module Failure; end
+ class InvalidEncoding < ArgumentError; include Failure; end
+ class IllegalSequence < ArgumentError; include Failure; end
+ class InvalidCharacter < ArgumentError; include Failure; end
+
+ if RUBY_PLATFORM =~ /java/
+ def self.conv(to, from, str)
+ raise InvalidCharacter, "the 3rd argument is nil" unless str
+ begin
+ str = java.lang.String.new(str.unpack("C*").to_java(:byte), from)
+ str.getBytes(to).to_ary.pack("C*")
+ rescue java.io.UnsupportedEncodingException
+ raise InvalidEncoding
+ end
+ end
+ else
+ begin
+ require 'glib2'
+
+ def self.check_glib_version?(major, minor, micro) # :nodoc:
+ (GLib::BINDING_VERSION[0] > major ||
+ (GLib::BINDING_VERSION[0] == major &&
+ GLib::BINDING_VERSION[1] > minor) ||
+ (GLib::BINDING_VERSION[0] == major &&
+ GLib::BINDING_VERSION[1] == minor &&
+ GLib::BINDING_VERSION[2] >= micro))
+ end
+
+ if check_glib_version?(0, 11, 0)
+ # This is a function equivalent of Iconv.iconv.
+ # * to: encoding name for destination
+ # * from: encoding name for source
+ # * str: strings to be converted
+ # * Returns: Returns an Array of converted strings.
+ def self.conv(to, from, str)
+ begin
+ GLib.convert(str, to, from)
+ rescue GLib::ConvertError => e
+ case e.code
+ when GLib::ConvertError::NO_CONVERSION
+ raise InvalidEncoding.new(str)
+ when GLib::ConvertError::ILLEGAL_SEQUENCE
+ raise IllegalSequence.new(str)
+ else
+ raise InvalidCharacter.new(str)
+ end
+ end
+ end
+ else
+ def self.conv(to, from, str) # :nodoc:
+ begin
+ GLib.convert(str, to, from)
+ rescue
+ raise IllegalSequence.new(str)
+ end
+ end
+ end
+ rescue LoadError
+ def self.conv(to, from, str) # :nodoc:
+ warn "Iconv was not found." if $DEBUG
+ str
+ end
+ end
+ end
+ def self.iconv(to, from, str)
+ conv(to, from, str).split(//)
+ end
+ end
+end
+
+if __FILE__ == $0
+ puts Iconv.iconv("EUC-JP", "UTF-8", "ほげ").join
+ begin
+ puts Iconv.iconv("EUC-JP", "EUC-JP", "ほげ").join
+ rescue Iconv::Failure
+ puts $!
+ puts $!.class
+ end
+end
diff --git a/vendor/gems/gettext-2.1.0/lib/gettext/core_ext/string.rb b/vendor/gems/gettext-2.1.0/lib/gettext/core_ext/string.rb
new file mode 100644
index 000000000..1cbd91567
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/lib/gettext/core_ext/string.rb
@@ -0,0 +1,84 @@
+=begin
+ string.rb - Extension for String.
+
+ Copyright (C) 2005-2009 Masao Mutoh
+
+ You may redistribute it and/or modify it under the same
+ license terms as Ruby or LGPL.
+=end
+
+# Extension for String class. This feature is included in Ruby 1.9 or later but not occur TypeError.
+#
+# String#% method which accept "named argument". The translator can know
+# the meaning of the msgids using "named argument" instead of %s/%d style.
+class String
+
+ unless instance_methods.find {|m| m.to_s == 'bytesize'}
+ # For older ruby (such as ruby-1.8.5)
+ alias :bytesize :size
+ end
+
+ alias :_old_format_m :% # :nodoc:
+
+ PERCENT_MATCH_RE = Regexp.union(
+ /%%/,
+ /%\{(.+?)\}/,
+ /%<(.+?)>(.*?\d*\.?\d*[bBdiouxXeEfgGcps])/
+ )
+
+ # call-seq:
+ # %(arg)
+ # %(hash)
+ #
+ # Format - Uses str as a format specification, and returns the result of applying it to arg.
+ # If the format specification contains more than one substitution, then arg must be
+ # an Array containing the values to be substituted. See Kernel::sprintf for details of the
+ # format string. This is the default behavior of the String class.
+ # * arg: an Array or other class except Hash.
+ # * Returns: formatted String
+ #
+ # (e.g.) "%s, %s" % ["Masao", "Mutoh"]
+ #
+ # Also you can use a Hash as the "named argument". This is recommanded way for Ruby-GetText
+ # because the translators can understand the meanings of the msgids easily.
+ # * hash: {:key1 => value1, :key2 => value2, ... }
+ # * Returns: formatted String
+ #
+ # (e.g.)
+ # For strings.
+ # "%{firstname}, %{familyname}" % {:firstname => "Masao", :familyname => "Mutoh"}
+ #
+ # With field type to specify format such as d(decimal), f(float),...
+ # "%<age>d, %<weight>.1f" % {:age => 10, :weight => 43.4}
+ def %(args)
+ if args.kind_of?(Hash)
+ ret = dup
+ ret.gsub!(PERCENT_MATCH_RE) {|match|
+ if match == '%%'
+ '%'
+ elsif $1
+ key = $1.to_sym
+ args.has_key?(key) ? args[key] : match
+ elsif $2
+ key = $2.to_sym
+ args.has_key?(key) ? sprintf("%#{$3}", args[key]) : match
+ end
+ }
+ ret
+ else
+ ret = gsub(/%([{<])/, '%%\1')
+ begin
+ ret._old_format_m(args)
+ rescue ArgumentError => e
+ if $DEBUG
+ $stderr.puts " The string:#{ret}"
+ $stderr.puts " args:#{args.inspect}"
+ puts e.backtrace
+ else
+ raise ArgumentError, e.message
+ end
+ end
+ end
+ end
+end
+
diff --git a/vendor/gems/gettext-2.1.0/lib/gettext/parser/erb.rb b/vendor/gems/gettext-2.1.0/lib/gettext/parser/erb.rb
new file mode 100644
index 000000000..eea0ea828
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/lib/gettext/parser/erb.rb
@@ -0,0 +1,3 @@
+warn "DEPRECATED: Use 'gettext/tools/parser/erb' instead."
+
+require 'gettext/tools/parser/erb'
diff --git a/vendor/gems/gettext-2.1.0/lib/gettext/parser/glade.rb b/vendor/gems/gettext-2.1.0/lib/gettext/parser/glade.rb
new file mode 100644
index 000000000..7b61fedad
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/lib/gettext/parser/glade.rb
@@ -0,0 +1,3 @@
+warn "DEPRECATED: Use 'gettext/tools/parser/glade' instead."
+
+require 'gettext/tools/parser/glade'
diff --git a/vendor/gems/gettext-2.1.0/lib/gettext/parser/ruby.rb b/vendor/gems/gettext-2.1.0/lib/gettext/parser/ruby.rb
new file mode 100644
index 000000000..cf8fae47a
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/lib/gettext/parser/ruby.rb
@@ -0,0 +1,172 @@
+#!/usr/bin/ruby
+=begin
+ parser/ruby.rb - parser for ruby script
+
+ Copyright (C) 2003-2005 Masao Mutoh
+ Copyright (C) 2005 speakillof
+ Copyright (C) 2001,2002 Yasushi Shoji, Masao Mutoh
+
+ You may redistribute it and/or modify it under the same
+ license terms as Ruby.
+
+=end
+
+require 'irb/ruby-lex.rb'
+require 'stringio'
+warn "DEPRECATED: Use 'gettext/tools/parser/ruby' instead."
+
+class RubyLexX < RubyLex # :nodoc: all
+ # Parser#parse resemlbes RubyLex#lex
+ def parse
+ until ( (tk = token).kind_of?(RubyToken::TkEND_OF_SCRIPT) && !@continue or tk.nil? )
+ s = get_readed
+ if RubyToken::TkSTRING === tk
+ def tk.value
+ @value
+ end
+
+ def tk.value=(s)
+ @value = s
+ end
+
+ if @here_header
+ s = s.sub(/\A.*?\n/, '').sub(/^.*\n\Z/, '')
+ else
+ begin
+ s = eval(s)
+ rescue Exception
+ # Do nothing.
+ end
+ end
+
+ tk.value = s
+ end
+
+ if $DEBUG
+ if tk.is_a? TkSTRING
+ $stderr.puts("#{tk}: #{tk.value}")
+ elsif tk.is_a? TkIDENTIFIER
+ $stderr.puts("#{tk}: #{tk.name}")
+ else
+ $stderr.puts(tk)
+ end
+ end
+
+ yield tk
+ end
+ return nil
+ end
+
+end
+
+module GetText
+ module RubyParser
+ extend self
+
+ unless defined? ID
+ ID = ['gettext', '_', 'N_', 'sgettext', 's_']
+ PLURAL_ID = ['ngettext', 'n_', 'Nn_', 'ns_', 'nsgettext']
+ MSGCTXT_ID = ['pgettext', 'p_']
+ MSGCTXT_PLURAL_ID = ['npgettext', 'np_']
+ end
+
+ def parse(file, targets = []) # :nodoc:
+ lines = IO.readlines(file)
+ parse_lines(file, lines, targets)
+ end
+
+ def parse_lines(file_name, lines, targets) # :nodoc:
+ file = StringIO.new(lines.join + "\n")
+ rl = RubyLexX.new
+ rl.set_input(file)
+ rl.skip_space = true
+ #rl.readed_auto_clean_up = true
+
+ target = nil
+ msgid = nil
+ line_no = nil
+ rl.parse do |tk|
+ begin
+ case tk
+ when RubyToken::TkIDENTIFIER, RubyToken::TkCONSTANT
+ if ID.include?(tk.name)
+ target = :normal
+ elsif PLURAL_ID.include?(tk.name)
+ target = :plural
+ elsif MSGCTXT_ID.include?(tk.name)
+ target = :msgctxt
+ elsif MSGCTXT_PLURAL_ID.include?(tk.name)
+ target = :msgctxt_plural
+ else
+ target = nil
+ end
+ line_no = tk.line_no.to_s
+ when RubyToken::TkSTRING
+ if target
+ if msgid
+ msgid += tk.value
+ else
+ msgid = tk.value
+ end
+ end
+ when RubyToken::TkPLUS, RubyToken::TkNL
+ #do nothing
+ when RubyToken::TkCOMMA
+ if msgid
+ case target
+ when :plural
+ msgid += "\000"
+ target = :normal
+ when :msgctxt
+ msgid += "\004"
+ target = :normal
+ when :msgctxt_plural
+ msgid += "\004"
+ target = :plural
+ else
+ target = :normal
+ end
+ end
+ else
+ if msgid
+ key_existed = targets.assoc(msgid.gsub(/\n/, '\n'))
+ if key_existed
+ targets[targets.index(key_existed)] = key_existed <<
+ file_name + ":" + line_no
+ else
+ targets << [msgid.gsub(/\n/, '\n'), file_name + ":" + line_no]
+ end
+ msgid = nil
+ target = nil
+ end
+ end
+ targets
+ rescue
+ $stderr.print "\n\nError: #{$!.inspect} "
+ $stderr.print " in #{file_name}:#{tk.line_no}\n\t #{lines[tk.line_no - 1]}" if tk
+ $stderr.print "\n"
+ exit 1
+ end
+ end
+ targets
+ end
+
+ def target?(file) # :nodoc:
+ true # always true, as default parser.
+ end
+ end
+end
+
+
+
+if __FILE__ == $0
+ require 'pp'
+ ARGV.each do |file|
+ pp GetText::RubyParser.parse(file)
+ end
+
+ #rl = RubyLexX.new; rl.set_input(ARGF)
+ #rl.parse do |tk|
+ #p tk
+ #end
+end
diff --git a/vendor/gems/gettext-2.1.0/lib/gettext/runtime/class_info.rb b/vendor/gems/gettext-2.1.0/lib/gettext/runtime/class_info.rb
new file mode 100644
index 000000000..c7acca267
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/lib/gettext/runtime/class_info.rb
@@ -0,0 +1,67 @@
+require 'locale/util/memoizable'
+
+module GetText
+ # For normalize/finding the related classes/modules.
+ # This is used for realizing the scope of TextDomain.
+ # (see: http://www.yotabanana.com/hiki/ruby-gettext-scope.html)
+ module ClassInfo
+ extend self
+ include Locale::Util::Memoizable
+
+ # normalize the class name
+ # klass should kind of the class, not object.
+ def normalize_class(klass)
+ ret = (klass.kind_of? Module) ? klass : klass.class
+ if ret.name =~ /^\#<|^$/ or ret == GetText
+ ret = Object
+ end
+ ret
+ end
+
+ def root_ancestors # :nodoc:
+ Object.ancestors
+ end
+ memoize :root_ancestors
+
+ # Internal method for related_classes.
+ def related_classes_internal(klass, all_classes = [], analyzed_classes = [] )
+ ret = []
+ klass = normalize_class(klass)
+
+ return [Object] if root_ancestors.include? klass
+
+ ary = klass.name.split(/::/)
+ while(v = ary.shift)
+ ret.unshift(((ret.size == 0) ? Object.const_get(v) : ret[0].const_get(v)))
+ end
+ ret -= analyzed_classes
+ if ret.size > 1
+ ret += related_classes_internal(ret[1], all_classes, analyzed_classes)
+ ret.uniq!
+ end
+ analyzed_classes << klass unless analyzed_classes.include? klass
+
+ klass.ancestors[1..-1].each do |a|
+ ret += related_classes_internal(a, all_classes, analyzed_classes)
+ ret.uniq!
+ end
+
+ if all_classes.size > 0
+ (ret & all_classes).uniq
+ else
+ ret.uniq
+ end
+ end
+
+ # Returns the classes which related to klass
+ # (klass's ancestors, included modules and nested modules)
+ def related_classes(klass, all_classes = [])
+ ret = related_classes_internal(klass, all_classes)
+ unless ret.include? Object
+ ret += [Object]
+ end
+ ret
+ end
+ memoize :related_classes
+ end
+end
diff --git a/vendor/gems/gettext-2.1.0/lib/gettext/runtime/locale_path.rb b/vendor/gems/gettext-2.1.0/lib/gettext/runtime/locale_path.rb
new file mode 100644
index 000000000..5500bca20
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/lib/gettext/runtime/locale_path.rb
@@ -0,0 +1,122 @@
+=begin
+ locale_path.rb - GetText::LocalePath
+
+ Copyright (C) 2001-2009 Masao Mutoh
+
+ You may redistribute it and/or modify it under the same
+ license terms as Ruby or LGPL.
+
+=end
+
+require 'rbconfig'
+require 'gettext/core_ext/string'
+
+module GetText
+ # Treats locale-path for mo-files.
+ class LocalePath
+ include Locale::Util::Memoizable
+
+ # The default locale paths.
+ CONFIG_PREFIX = Config::CONFIG['prefix'].gsub(/\/local/, "")
+ DEFAULT_RULES = [
+ "./locale/%{lang}/LC_MESSAGES/%{name}.mo",
+ "./locale/%{lang}/%{name}.mo",
+ "#{Config::CONFIG['datadir']}/locale/%{lang}/LC_MESSAGES/%{name}.mo",
+ "#{Config::CONFIG['datadir'].gsub(/\/local/, "")}/locale/%{lang}/LC_MESSAGES/%{name}.mo",
+ "#{CONFIG_PREFIX}/share/locale/%{lang}/LC_MESSAGES/%{name}.mo",
+ "#{CONFIG_PREFIX}/local/share/locale/%{lang}/LC_MESSAGES/%{name}.mo"
+ ].uniq
+
+ class << self
+ include Locale::Util::Memoizable
+
+ # Add default locale path. Usually you should use GetText.add_default_locale_path instead.
+ # * path: a new locale path. (e.g.) "/usr/share/locale/%{lang}/LC_MESSAGES/%{name}.mo"
+ # ('locale' => "ja_JP", 'name' => "textdomain")
+ # * Returns: the new DEFAULT_LOCALE_PATHS
+ def add_default_rule(path)
+ DEFAULT_RULES.unshift(path)
+ end
+
+ # Returns path rules as an Array.
+ # (e.g.) ["/usr/share/locale/%{lang}/LC_MESSAGES/%{name}.mo", ...]
+ def default_path_rules
+ default_path_rules = []
+
+ if ENV["GETTEXT_PATH"]
+ ENV["GETTEXT_PATH"].split(/,/).each {|i|
+ default_path_rules = ["#{i}/%{lang}/LC_MESSAGES/%{name}.mo", "#{i}/%{lang}/%{name}.mo"]
+ }
+ end
+
+ default_path_rules += DEFAULT_RULES
+
+ load_path = $LOAD_PATH
+ if defined? ::Gem
+ load_path += Gem.all_load_paths
+ end
+ load_path.map!{|v| v.match(/(.*?)(\/lib)*?$/); $1}
+ load_path.each {|path|
+ default_path_rules += [
+ "#{path}/data/locale/%{lang}/LC_MESSAGES/%{name}.mo",
+ "#{path}/data/locale/%{lang}/%{name}.mo",
+ "#{path}/locale/%{lang}/%{name}.mo"]
+ }
+ # paths existed only.
+ default_path_rules = default_path_rules.select{|path|
+ Dir.glob(path % {:lang => "*", :name => "*"}).size > 0}.uniq
+ default_path_rules
+ end
+ memoize_dup :default_path_rules
+ end
+
+ attr_reader :locale_paths, :supported_locales
+
+ # Creates a new GetText::TextDomain.
+ # * name: the textdomain name.
+ # * topdir: the locale path ("%{topdir}/%{lang}/LC_MESSAGES/%{name}.mo") or nil.
+ def initialize(name, topdir = nil)
+ @name = name
+
+ if topdir
+ path_rules = ["#{topdir}/%{lang}/LC_MESSAGES/%{name}.mo", "#{topdir}/%{lang}/%{name}.mo"]
+ else
+ path_rules = self.class.default_path_rules
+ end
+
+ @locale_paths = {}
+ path_rules.each do |rule|
+ this_path_rules = rule % {:lang => "([^\/]+)", :name => name}
+ Dir.glob(rule %{:lang => "*", :name => name}).each do |path|
+ if /#{this_path_rules}/ =~ path
+ @locale_paths[$1] = path unless @locale_paths[$1]
+ end
+ end
+ end
+ @supported_locales = @locale_paths.keys.sort
+ end
+
+ # Gets the current path.
+ # * lang: a Locale::Tag.
+ def current_path(lang)
+ lang_candidates = lang.to_posix.candidates
+ search_files = []
+
+ lang_candidates.each do |tag|
+ path = @locale_paths[tag.to_s]
+ warn "GetText::TextDomain#load_mo: mo-file is #{path}" if $DEBUG
+ return path if path
+ end
+
+ if $DEBUG
+ warn "MO file is not found in"
+ @locale_paths.each do |path|
+ warn " #{path[1]}"
+ end
+ end
+ nil
+ end
+ memoize :current_path
+
+ end
+end
diff --git a/vendor/gems/gettext-2.1.0/lib/gettext/runtime/mofile.rb b/vendor/gems/gettext-2.1.0/lib/gettext/runtime/mofile.rb
new file mode 100644
index 000000000..dd8158d01
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/lib/gettext/runtime/mofile.rb
@@ -0,0 +1,330 @@
+=begin
+ mofile.rb - A simple class for operating GNU MO file.
+
+ Copyright (C) 2003-2009 Masao Mutoh
+ Copyright (C) 2002 Masahiro Sakai, Masao Mutoh
+ Copyright (C) 2001 Masahiro Sakai
+
+ Masahiro Sakai <s01397ms at sfc.keio.ac.jp>
+ Masao Mutoh <mutomasa at gmail.com>
+
+ You can redistribute this file and/or modify it under the same term
+ of Ruby. License of Ruby is included with Ruby distribution in
+ the file "README".
+
+=end
+
+require 'gettext/core_ext/iconv'
+require 'stringio'
+
+module GetText
+ class MOFile < Hash
+ class InvalidFormat < RuntimeError; end;
+
+ attr_reader :filename
+
+ Header = Struct.new(:magic,
+ :revision,
+ :nstrings,
+ :orig_table_offset,
+ :translated_table_offset,
+ :hash_table_size,
+ :hash_table_offset)
+
+ # The following are only used in .mo files
+ # with minor revision >= 1.
+ class HeaderRev1 < Header
+ attr_accessor :n_sysdep_segments,
+ :sysdep_segments_offset,
+ :n_sysdep_strings,
+ :orig_sysdep_tab_offset,
+ :trans_sysdep_tab_offset
+ end
+
+ MAGIC_BIG_ENDIAN = "\x95\x04\x12\xde"
+ MAGIC_LITTLE_ENDIAN = "\xde\x12\x04\x95"
+
+ def self.open(arg = nil, output_charset = nil)
+ result = self.new(output_charset)
+ result.load(arg)
+ end
+
+ def initialize(output_charset = nil)
+ @filename = nil
+ @last_modified = nil
+ @little_endian = true
+ @output_charset = output_charset
+ @plural_proc = nil
+ super()
+ end
+
+ def update!
+ if FileTest.exist?(@filename)
+ st = File.stat(@filename)
+ load(@filename) unless (@last_modified == [st.ctime, st.mtime])
+ else
+ warn "#{@filename} was lost." if $DEBUG
+ clear
+ end
+ self
+ end
+
+ def load(arg)
+ if arg.kind_of? String
+ begin
+ st = File.stat(arg)
+ @last_modified = [st.ctime, st.mtime]
+ rescue Exception
+ end
+ load_from_file(arg)
+ else
+ load_from_stream(arg)
+ end
+ @filename = arg
+ self
+ end
+
+ def load_from_stream(io)
+ magic = io.read(4)
+ case magic
+ when MAGIC_BIG_ENDIAN
+ @little_endian = false
+ when MAGIC_LITTLE_ENDIAN
+ @little_endian = true
+ else
+ raise InvalidFormat.new(sprintf("Unknown signature %s", magic.dump))
+ end
+
+ endian_type6 = @little_endian ? 'V6' : 'N6'
+ endian_type_astr = @little_endian ? 'V*' : 'N*'
+
+ header = HeaderRev1.new(magic, *(io.read(4 * 6).unpack(endian_type6)))
+
+ if header.revision == 1
+ # FIXME: It doesn't support sysdep correctly.
+ header.n_sysdep_segments = io.read(4).unpack(endian_type6)
+ header.sysdep_segments_offset = io.read(4).unpack(endian_type6)
+ header.n_sysdep_strings = io.read(4).unpack(endian_type6)
+ header.orig_sysdep_tab_offset = io.read(4).unpack(endian_type6)
+ header.trans_sysdep_tab_offset = io.read(4).unpack(endian_type6)
+ elsif header.revision > 1
+ raise InvalidFormat.new(sprintf("file format revision %d isn't supported", header.revision))
+ end
+ io.pos = header.orig_table_offset
+ orig_table_data = io.read((4 * 2) * header.nstrings).unpack(endian_type_astr)
+
+ io.pos = header.translated_table_offset
+ trans_table_data = io.read((4 * 2) * header.nstrings).unpack(endian_type_astr)
+
+ original_strings = Array.new(header.nstrings)
+ for i in 0...header.nstrings
+ io.pos = orig_table_data[i * 2 + 1]
+ original_strings[i] = io.read(orig_table_data[i * 2 + 0])
+ end
+
+ clear
+ for i in 0...header.nstrings
+ io.pos = trans_table_data[i * 2 + 1]
+ str = io.read(trans_table_data[i * 2 + 0])
+
+ if (! original_strings[i]) || original_strings[i] == ""
+ if str
+ @charset = nil
+ @nplurals = nil
+ @plural = nil
+ str.each_line{|line|
+ if /^Content-Type:/i =~ line and /charset=((?:\w|-)+)/i =~ line
+ @charset = $1
+ elsif /^Plural-Forms:\s*nplurals\s*\=\s*(\d*);\s*plural\s*\=\s*([^;]*)\n?/ =~ line
+ @nplurals = $1
+ @plural = $2
+ end
+ break if @charset and @nplurals
+ }
+ @nplurals = "1" unless @nplurals
+ @plural = "0" unless @plural
+ end
+ else
+ if @output_charset
+ begin
+ str = Iconv.conv(@output_charset, @charset, str) if @charset
+ rescue Iconv::Failure
+ if $DEBUG
+ warn "@charset = ", @charset
+ warn"@output_charset = ", @output_charset
+ warn "msgid = ", original_strings[i]
+ warn "msgstr = ", str
+ end
+ end
+ end
+ end
+ self[original_strings[i]] = str.freeze
+ end
+ self
+ end
+
+ def prime?(number)
+ ('1' * number) !~ /^1?$|^(11+?)\1+$/
+ end
+
+ begin
+ require 'prime'
+ def next_prime(seed)
+ Prime.instance.find{|x| x > seed }
+ end
+ rescue LoadError
+ def next_prime(seed)
+ require 'mathn'
+ prime = Prime.new
+ while current = prime.succ
+ return current if current > seed
+ end
+ end
+ end
+
+ HASHWORDBITS = 32
+ # From gettext-0.12.1/gettext-runtime/intl/hash-string.h
+ # Defines the so called `hashpjw' function by P.J. Weinberger
+ # [see Aho/Sethi/Ullman, COMPILERS: Principles, Techniques and Tools,
+ # 1986, 1987 Bell Telephone Laboratories, Inc.]
+ def hash_string(str)
+ hval = 0
+ i = 0
+ str.each_byte do |b|
+ break if b == '\0'
+ hval <<= 4
+ hval += b.to_i
+ g = hval & (0xf << (HASHWORDBITS - 4))
+ if (g != 0)
+ hval ^= g >> (HASHWORDBITS - 8)
+ hval ^= g
+ end
+ end
+ hval
+ end
+
+ #Save data as little endian format.
+ def save_to_stream(io)
+ header_size = 4 * 7
+ table_size = 4 * 2 * size
+
+ hash_table_size = next_prime((size * 4) / 3)
+ hash_table_size = 3 if hash_table_size <= 2
+ header = Header.new(
+ MAGIC_LITTLE_ENDIAN, # magic
+ 0, # revision
+ size, # nstrings
+ header_size, # orig_table_offset
+ header_size + table_size, # translated_table_offset
+ hash_table_size, # hash_table_size
+ header_size + table_size * 2 # hash_table_offset
+ )
+ io.write(header.to_a.pack('a4V*'))
+
+ ary = to_a
+ ary.sort!{|a, b| a[0] <=> b[0]} # sort by original string
+
+ pos = header.hash_table_size * 4 + header.hash_table_offset
+
+ orig_table_data = Array.new()
+ ary.each{|item, _|
+ orig_table_data.push(item.bytesize)
+ orig_table_data.push(pos)
+ pos += item.bytesize + 1 # +1 is <NUL>
+ }
+ io.write(orig_table_data.pack('V*'))
+
+ trans_table_data = Array.new()
+ ary.each{|_, item|
+ trans_table_data.push(item.bytesize)
+ trans_table_data.push(pos)
+ pos += item.bytesize + 1 # +1 is <NUL>
+ }
+ io.write(trans_table_data.pack('V*'))
+
+ hash_tab = Array.new(hash_table_size)
+ j = 0
+ ary[0...size].each {|key, _|
+ hash_val = hash_string(key)
+ idx = hash_val % hash_table_size
+ if hash_tab[idx] != nil
+ incr = 1 + (hash_val % (hash_table_size - 2))
+ begin
+ if (idx >= hash_table_size - incr)
+ idx -= hash_table_size - incr
+ else
+ idx += incr
+ end
+ end until (hash_tab[idx] == nil)
+ end
+ hash_tab[idx] = j + 1
+ j += 1
+ }
+ hash_tab.collect!{|i| i ? i : 0}
+
+ io.write(hash_tab.pack('V*'))
+
+ ary.each{|item, _| io.write(item); io.write("\0") }
+ ary.each{|_, item| io.write(item); io.write("\0") }
+
+ self
+ end
+
+ def load_from_file(filename)
+ @filename = filename
+ begin
+ File.open(filename, 'rb'){|f| load_from_stream(f)}
+ rescue => e
+ e.set_backtrace("File: #{@filename}")
+ raise e
+ end
+ end
+
+ def save_to_file(filename)
+ File.open(filename, 'wb'){|f| save_to_stream(f)}
+ end
+
+ def set_comment(msgid_or_sym, comment)
+ #Do nothing
+ end
+
+ def plural_as_proc
+ unless @plural_proc
+ @plural_proc = Proc.new{|n| eval(@plural)}
+ begin
+ @plural_proc.call(1)
+ rescue
+ @plural_proc = Proc.new{|n| 0}
+ end
+ end
+ @plural_proc
+ end
+
+ attr_accessor :little_endian, :path, :last_modified
+ attr_reader :charset, :nplurals, :plural
+ end
+
+end
+
+# Test
+
+if $0 == __FILE__
+ if (ARGV.include? "-h") or (ARGV.include? "--help")
+ STDERR.puts("mo.rb [filename.mo ...]")
+ exit
+ end
+
+ ARGV.each{ |item|
+ mo = GetText::MOFile.open(item)
+ puts "------------------------------------------------------------------"
+ puts "charset = \"#{mo.charset}\""
+ puts "nplurals = \"#{mo.nplurals}\""
+ puts "plural = \"#{mo.plural}\""
+ puts "------------------------------------------------------------------"
+ mo.each do |key, value|
+ puts "original message = #{key.inspect}"
+ puts "translated message = #{value.inspect}"
+ puts "--------------------------------------------------------------------"
+ end
+ }
+end
diff --git a/vendor/gems/gettext-2.1.0/lib/gettext/runtime/textdomain.rb b/vendor/gems/gettext-2.1.0/lib/gettext/runtime/textdomain.rb
new file mode 100644
index 000000000..ce52fab3a
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/lib/gettext/runtime/textdomain.rb
@@ -0,0 +1,177 @@
+=begin
+ textdomain.rb - GetText::Textdomain
+
+ Copyright (C) 2001-2009 Masao Mutoh
+ Copyright (C) 2001-2003 Masahiro Sakai
+
+ Masahiro Sakai <s01397ms@sfc.keio.ac.jp>
+ Masao Mutoh <mutomasa at gmail.com>
+
+ You may redistribute it and/or modify it under the same
+ license terms as Ruby or LGPL.
+=end
+
+require 'gettext/core_ext/string'
+require 'gettext/runtime/mofile'
+require 'gettext/runtime/locale_path'
+
+module GetText
+ # GetText::TextDomain class manages mo-files of a textdomain.
+ #
+ # Usually, you don't need to use this class directly.
+ #
+ # Notice: This class is unstable. APIs will be changed.
+ class TextDomain
+
+ attr_reader :output_charset
+ attr_reader :mofiles
+ attr_reader :name
+
+ @@cached = ! $DEBUG
+ # Cache the mo-file or not.
+ # Default is true. If $DEBUG is set then false.
+ def self.cached?
+ @@cached
+ end
+
+ # Set to cache the mo-file or not.
+ # * val: true if cached, otherwise false.
+ def self.cached=(val)
+ @@cached = val
+ end
+
+ # Add default locale path. Usually you should use GetText.add_default_locale_path instead.
+ # * path: a new locale path. (e.g.) "/usr/share/locale/%{lang}/LC_MESSAGES/%{name}.mo"
+ # ('locale' => "ja_JP", 'name' => "textdomain")
+ # * Returns: the new DEFAULT_LOCALE_PATHS
+ def self.add_default_locale_path(path)
+ warn "Deprecated. Use GetText::LocalePath.add_default_rule instead."
+ LocalePath.add_default_rule(path)
+ end
+
+ # Creates a new GetText::TextDomain.
+ # * name: the textdomain name.
+ # * topdir: the locale path ("%{topdir}/%{lang}/LC_MESSAGES/%{name}.mo") or nil.
+ # * output_charset: output charset.
+ # * Returns: a newly created GetText::TextDomain object.
+ def initialize(name, topdir = nil, output_charset = nil)
+ @name, @output_charset = name, output_charset
+
+ @locale_path = LocalePath.new(@name, topdir)
+ @mofiles = {}
+ end
+
+ # Translates the translated string.
+ # * lang: Locale::Tag::Simple's subclass.
+ # * msgid: the original message.
+ # * Returns: the translated string or nil.
+ def translate_singluar_message(lang, msgid)
+ return "" if msgid == "" or msgid.nil?
+
+ lang_key = lang.to_s
+
+ mofile = nil
+ if self.class.cached?
+ mofile = @mofiles[lang_key]
+ end
+ unless mofile
+ mofile = load_mo(lang)
+ end
+
+ if (! mofile) or (mofile ==:empty)
+ return nil
+ end
+
+ msgstr = mofile[msgid]
+ if msgstr and (msgstr.size > 0)
+ msgstr
+ elsif msgid.include?("\000")
+ # Check "aaa\000bbb" and show warning but return the singluar part.
+ ret = nil
+ msgid_single = msgid.split("\000")[0]
+ mofile.each{|key, val|
+ if key =~ /^#{Regexp.quote(msgid_single)}\000/
+ # Usually, this is not caused to make po-files from rgettext.
+ warn %Q[Warning: n_("#{msgid_single}", "#{msgid.split("\000")[1]}") and n_("#{key.gsub(/\000/, '", "')}") are duplicated.]
+ ret = val
+ break
+ end
+ }
+ ret
+ else
+ ret = nil
+ mofile.each{|key, val|
+ if key =~ /^#{Regexp.quote(msgid)}\000/
+ ret = val.split("\000")[0]
+ break
+ end
+ }
+ ret
+ end
+ end
+
+ DEFAULT_PLURAL_CALC = Proc.new{|n| n != 1}
+ DEFAULT_SINGLE_CALC = Proc.new{|n| 0}
+
+ # Translates the translated string.
+ # * lang: Locale::Tag::Simple's subclass.
+ # * msgid: the original message.
+ # * msgid_plural: the original message(plural).
+ # * Returns: the translated string as an Array ([[msgstr1, msgstr2, ...], cond]) or nil.
+ def translate_plural_message(lang, msgid, msgid_plural) #:nodoc:
+ key = msgid + "\000" + msgid_plural
+ msg = translate_singluar_message(lang, key)
+ ret = nil
+ if ! msg
+ ret = nil
+ elsif msg.include?("\000")
+ # [[msgstr[0], msgstr[1], msgstr[2],...], cond]
+ mofile = @mofiles[lang.to_posix.to_s]
+ cond = (mofile and mofile != :empty) ? mofile.plural_as_proc : DEFAULT_PLURAL_CALC
+ ret = [msg.split("\000"), cond]
+ else
+ ret = [[msg], DEFAULT_SINGLE_CALC]
+ end
+ ret
+ end
+
+ # Clear cached mofiles.
+ def clear
+ @mofiles = {}
+ end
+
+ # Set output_charset.
+ # * charset: output charset.
+ def output_charset=(charset)
+ @output_charset = charset
+ clear
+ end
+
+ private
+ # Load a mo-file from the file.
+ # lang is the subclass of Locale::Tag::Simple.
+ def load_mo(lang)
+ lang = lang.to_posix unless lang.kind_of? Locale::Tag::Posix
+ lang_key = lang.to_s
+
+ mofile = @mofiles[lang_key]
+ if mofile
+ if mofile == :empty
+ return :empty
+ elsif ! self.class.cached?
+ mofile.update!
+ end
+ return mofile
+ end
+
+ path = @locale_path.current_path(lang)
+
+ if path
+ charset = @output_charset || lang.charset || Locale.charset || "UTF-8"
+ @mofiles[lang_key] = MOFile.open(path, charset)
+ else
+ @mofiles[lang_key] = :empty
+ end
+ end
+ end
+end
diff --git a/vendor/gems/gettext-2.1.0/lib/gettext/runtime/textdomain_group.rb b/vendor/gems/gettext-2.1.0/lib/gettext/runtime/textdomain_group.rb
new file mode 100644
index 000000000..b2ffd2dd2
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/lib/gettext/runtime/textdomain_group.rb
@@ -0,0 +1,24 @@
+=begin
+ gettext/textdomain_group - GetText::TextDomainGroup class
+
+ Copyright (C) 2009 Masao Mutoh
+
+ You may redistribute it and/or modify it under the same
+ license terms as Ruby or LGPL.
+
+=end
+
+module GetText
+
+ class TextDomainGroup
+ attr_reader :textdomains
+
+ def initialize
+ @textdomains = []
+ end
+
+ def add(textdomain)
+ @textdomains.unshift(textdomain) unless @textdomains.include? textdomain
+ end
+ end
+end
diff --git a/vendor/gems/gettext-2.1.0/lib/gettext/runtime/textdomain_manager.rb b/vendor/gems/gettext-2.1.0/lib/gettext/runtime/textdomain_manager.rb
new file mode 100644
index 000000000..09d879521
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/lib/gettext/runtime/textdomain_manager.rb
@@ -0,0 +1,211 @@
+=begin
+ gettext/textdomain_manager - GetText::TextDomainManager class
+
+ Copyright (C) 2009 Masao Mutoh
+
+ You may redistribute it and/or modify it under the same
+ license terms as Ruby or LGPL.
+
+=end
+
+require 'gettext/runtime/class_info'
+require 'gettext/runtime/textdomain'
+require 'gettext/runtime/textdomain_group'
+
+module GetText
+
+ module TextDomainManager
+
+ @@textdomain_pool = {}
+ @@textdomain_group_pool = {}
+
+ @@output_charset = nil
+ @@gettext_classes = []
+
+ @@singular_message_cache = {}
+ @@plural_message_cache = {}
+ @@cached = ! $DEBUG
+
+ extend self
+
+ # Find textdomain by name
+ def textdomain_pool(domainname)
+ @@textdomain_pool[domainname]
+ end
+
+ # Set the value whether cache messages or not.
+ # true to cache messages, otherwise false.
+ #
+ # Default is true. If $DEBUG is false, messages are not checked even if
+ # this value is true.
+ def cached=(val)
+ @@cached = val
+ TextDomain.cached = val
+ end
+
+ # Return the cached value.
+ def cached?
+ TextDomain.cached?
+ end
+
+ # Gets the output charset.
+ def output_charset
+ @@output_charset
+ end
+
+ # Sets the output charset.The program can have a output charset.
+ def output_charset=(charset)
+ @@output_charset = charset
+ @@textdomain_pool.each do |key, textdomain|
+ textdomain.output_charset = charset
+ end
+ end
+
+ # bind textdomain to the class.
+ def bind_to(klass, domainname, options = {})
+ warn "Bind the domain '#{domainname}' to '#{klass}'. " if $DEBUG
+
+ charset = options[:output_charset] || self.output_charset
+ textdomain = create_or_find_textdomain(domainname,options[:path],charset)
+ target_klass = ClassInfo.normalize_class(klass)
+ create_or_find_textdomain_group(target_klass).add(textdomain)
+ @@gettext_classes << target_klass unless @@gettext_classes.include? target_klass
+
+ textdomain
+ end
+
+ def each_textdomains(klass) #:nodoc:
+ lang = Locale.candidates[0]
+ ClassInfo.related_classes(klass, @@gettext_classes).each do |target|
+ msg = nil
+ if group = @@textdomain_group_pool[target]
+ group.textdomains.each do |textdomain|
+ yield textdomain, lang
+ end
+ end
+ end
+ end
+
+ # Translates msgid, but if there are no localized text,
+ # it returns a last part of msgid separeted "div" or whole of the msgid with no "div".
+ #
+ # * msgid: the message id.
+ # * div: separator or nil.
+ # * Returns: the localized text by msgid. If there are no localized text,
+ # it returns a last part of msgid separeted "div".
+ def translate_singluar_message(klass, msgid, div = nil)
+ klass = ClassInfo.normalize_class(klass)
+ key = [Locale.current, klass, msgid, div].hash
+ msg = @@singular_message_cache[key]
+ return msg if msg and @@cached
+ # Find messages from related classes.
+ each_textdomains(klass) do |textdomain, lang|
+ msg = textdomain.translate_singluar_message(lang, msgid)
+ break if msg
+ end
+
+ # If not found, return msgid.
+ msg ||= msgid
+ if div and msg == msgid
+ if index = msg.rindex(div)
+ msg = msg[(index + 1)..-1]
+ end
+ end
+ @@singular_message_cache[key] = msg
+ end
+
+ # This function is similar to the get_singluar_message function
+ # as it finds the message catalogs in the same way.
+ # But it takes two extra arguments for plural form.
+ # The msgid parameter must contain the singular form of the string to be converted.
+ # It is also used as the key for the search in the catalog.
+ # The msgid_plural parameter is the plural form.
+ # The parameter n is used to determine the plural form.
+ # If no message catalog is found msgid1 is returned if n == 1, otherwise msgid2.
+ # And if msgid includes "div", it returns a last part of msgid separeted "div".
+ #
+ # * msgid: the singular form with "div". (e.g. "Special|An apple", "An apple")
+ # * msgid_plural: the plural form. (e.g. "%{num} Apples")
+ # * n: a number used to determine the plural form.
+ # * div: the separator. Default is "|".
+ # * Returns: the localized text which key is msgid_plural if n is plural(follow plural-rule) or msgid.
+ # "plural-rule" is defined in po-file.
+ #
+ # or
+ #
+ # * [msgid, msgid_plural] : msgid and msgid_plural an Array
+ # * n: a number used to determine the plural form.
+ # * div: the separator. Default is "|".
+ def translate_plural_message(klass, arg1, arg2, arg3 = "|", arg4 = "|")
+ klass = ClassInfo.normalize_class(klass)
+ # parse arguments
+ if arg1.kind_of?(Array)
+ msgid = arg1[0]
+ msgid_plural = arg1[1]
+ n = arg2
+ if arg3 and arg3.kind_of? Numeric
+ raise ArgumentError, _("3rd parmeter is wrong: value = %{number}") % {:number => arg3}
+ end
+ div = arg3
+ else
+ msgid = arg1
+ msgid_plural = arg2
+ n = arg3
+ div = arg4
+ end
+
+ key = [Locale.current, klass, msgid, msgid_plural, div].hash
+ msgs = @@plural_message_cache[key]
+ unless (msgs and @@cached)
+ # Find messages from related classes.
+ msgs = nil
+ each_textdomains(klass) do |textdomain, lang|
+ msgs = textdomain.translate_plural_message(lang, msgid, msgid_plural)
+ break if msgs
+ end
+
+ msgs = [[msgid, msgid_plural], TextDomain::DEFAULT_PLURAL_CALC] unless msgs
+
+ msgstrs = msgs[0]
+ if div and msgstrs[0] == msgid and index = msgstrs[0].rindex(div)
+ msgstrs[0] = msgstrs[0][(index + 1)..-1]
+ end
+ @@plural_message_cache[key] = msgs
+ end
+
+ # Return the singular or plural message.
+ msgstrs = msgs[0]
+ plural = msgs[1].call(n)
+ return msgstrs[plural] if plural.kind_of?(Numeric)
+ return plural ? msgstrs[1] : msgstrs[0]
+ end
+
+ # for testing.
+ def clear_all_textdomains
+ @@textdomain_pool = {}
+ @@textdomain_group_pool = {}
+ @@gettext_classes = []
+ clear_caches
+ end
+
+ # for testing.
+ def clear_caches
+ @@singular_message_cache = {}
+ @@plural_message_cache = {}
+ end
+
+ def create_or_find_textdomain_group(klass) #:nodoc:
+ group = @@textdomain_group_pool[klass]
+ return group if group
+
+ @@textdomain_group_pool[klass] = TextDomainGroup.new
+ end
+
+ def create_or_find_textdomain(name, path, charset)#:nodoc:
+ textdomain = @@textdomain_pool[name]
+ return textdomain if textdomain
+
+ @@textdomain_pool[name] = TextDomain.new(name, path, charset)
+ end
+ end
+end
diff --git a/vendor/gems/gettext-2.1.0/lib/gettext/tools.rb b/vendor/gems/gettext-2.1.0/lib/gettext/tools.rb
new file mode 100644
index 000000000..d0ccd8dd9
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/lib/gettext/tools.rb
@@ -0,0 +1,195 @@
+=begin
+ tools.rb - Utility functions
+
+ Copyright (C) 2005-2008 Masao Mutoh
+
+ You may redistribute it and/or modify it under the same
+ license terms as Ruby or LGPL.
+=end
+
+require 'rbconfig'
+if /mingw|mswin|mswin32/ =~ RUBY_PLATFORM
+ ENV['PATH'] = %w(bin lib).collect{|dir|
+ "#{Config::CONFIG["prefix"]}\\lib\\GTK\\#{dir};"
+ }.join('') + ENV['PATH']
+end
+
+require 'gettext/tools/rgettext'
+require 'gettext/tools/rmsgfmt'
+require 'gettext/runtime/mofile'
+require 'fileutils'
+
+module GetText
+ bindtextdomain "rgettext"
+
+ BOM_UTF8 = [0xef, 0xbb, 0xbf].pack("c3")
+
+ # Currently, GNU msgmerge doesn't accept BOM.
+ # This mesthod remove the UTF-8 BOM from the po-file.
+ def remove_bom(path) #:nodoc:
+ bom = IO.read(path, 3)
+ if bom == BOM_UTF8
+ data = IO.read(path)[3..-1]
+ File.open(path, "w") {|f| f.write(data)}
+ end
+ end
+
+ # Merges two Uniforum style .po files together.
+ #
+ # *Note* This function requires "msgmerge" tool included in GNU GetText. So you need to install GNU GetText.
+ #
+ # The def.po file is an existing PO file with translations which will be taken
+ # over to the newly created file as long as they still match; comments will be preserved,
+ # but extracted comments and file positions will be discarded.
+ #
+ # The ref.pot file is the last created PO file with up-to-date source references but
+ # old translations, or a PO Template file (generally created by rgettext);
+ # any translations or comments in the file will be discarded, however dot
+ # comments and file positions will be preserved. Where an exact match
+ # cannot be found, fuzzy matching is used to produce better results.
+ #
+ # Usually you don't need to call this function directly. Use GetText.update_pofiles instead.
+ #
+ # * defpo: a po-file. translations referring to old sources
+ # * refpo: a po-file. references to new sources
+ # * app_version: the application information which appears "Project-Id-Version: #{app_version}" in the pot/po-files.
+ # * Returns: self
+ def msgmerge(defpo, refpo, app_version, options={})
+ verbose = options.delete(:verbose)
+ puts "msgmerge called" if verbose
+ $stderr.print defpo + " "
+
+ content = merge_po_files(defpo,refpo,options.delete(:msgmerge),verbose)
+
+ if content.empty?
+ # report failure
+ failed_filename = refpo + "~"
+ FileUtils.cp(refpo, failed_filename)
+ $stderr.puts _("Failed to merge with %{defpo}") % {:defpo => defpo}
+ $stderr.puts _("New .pot was copied to %{failed_filename}") %{:failed_filename => failed_filename}
+ raise _("Check these po/pot-files. It may have syntax errors or something wrong.")
+ else
+ # update version and save merged data
+ content.sub!(/(Project-Id-Version\:).*$/, "\\1 #{app_version}\\n\"")
+ File.open(defpo, "w") {|f|f.write(content)}
+ end
+
+ self
+ end
+
+ # Creates mo-files using #{po_root}/#{lang}/*.po an put them to
+ # #{targetdir}/#{targetdir_rule}/.
+ #
+ # This is a convenience function of GetText.rmsgfmt for multiple target files.
+ # * options: options as a Hash.
+ # * verbose: true if verbose mode, otherwise false
+ # * po_root: the root directory of po-files.
+ # * mo_root: the target root directory where the mo-files are stored.
+ # * mo_path_rule: the target directory for each mo-files.
+ def create_mofiles(options = {})
+ options = {:po_root => "./po"}.merge(options)
+
+ Dir.glob(File.join(options[:po_root], "*/*.po")) do |po_file|
+ mo_file = mo_file_from_po_file(po_file,options)
+ $stderr.print %Q[#{po_file} -> #{mo_file} ... ] if options[:verbose]
+ FileUtils.mkdir_p(File.dirname(mo_file))
+ rmsgfmt(po_file, mo_file)
+ $stderr.puts "Done." if options[:verbose]
+ end
+ end
+
+
+ # At first, this creates the #{po_root}/#{domainname}.pot file using GetText.rgettext.
+ # In the second step, this updates(merges) the #{po_root}/#{domainname}.pot and all of the
+ # #{po_root}/#{lang}/#{domainname}.po files under "po_root" using "msgmerge".
+ #
+ # *Note* "msgmerge" tool is included in GNU GetText. So you need to install GNU GetText.
+ #
+ # See <HOWTO maintain po/mo files(http://www.yotabanana.com/hiki/ruby-gettext-howto-manage.html)> for more detals.
+ # * domainname: the textdomain name.
+ # * targetfiles: An Array of target files, that should be parsed for messages (See GetText.rgettext for more details).
+ # * app_version: the application information which appears "Project-Id-Version: #{app_version}" in the pot/po-files.
+ # * options: a hash with following possible settings
+ # :lang - update files only for one language - the language specified by this option
+ # :po_root - the root directory of po-files
+ # :msgmerge - an array with the options, passed through to the gnu msgmerge tool
+ # symbols are automatically translated to options with dashes,
+ # example: [:no_wrap, :no_fuzzy_matching, :sort_output] translated to '--no-fuzzy-matching --sort-output'
+ # :verbose - true to show verbose messages. default is false.
+ #
+ # Example: GetText.update_pofiles("myapp", Dir.glob("lib/*.rb"), "myapp 1.0.0", :verbose => true)
+ def update_pofiles(textdomain, files, app_version, options = {})
+ puts options.inspect if options[:verbose]
+
+ #write found messages to tmp.pot
+ temp_pot = "tmp.pot"
+ rgettext(files, temp_pot)
+
+ #merge tmp.pot and existing pot
+ po_root = options.delete(:po_root) || "po"
+ FileUtils.mkdir_p(po_root)
+ msgmerge("#{po_root}/#{textdomain}.pot", temp_pot, app_version, options.dup)
+
+ #update local po-files
+ only_one_language = options.delete(:lang)
+ if only_one_language
+ msgmerge("#{po_root}/#{only_one_language}/#{textdomain}.po", temp_pot, app_version, options.dup)
+ else
+ Dir.glob("#{po_root}/*/#{textdomain}.po") do |po_file|
+ msgmerge(po_file, temp_pot, app_version, options.dup)
+ end
+ end
+
+ File.delete(temp_pot)
+ end
+
+ private
+
+ # Merge 2 po files, using msgmerge
+ def merge_po_files(po_a,po_b,msgmerge_options=[],verbose=false)
+ return File.read(po_b) unless FileTest.exist? po_a
+
+ cmd = ENV["MSGMERGE_PATH"] || "msgmerge"
+ ensure_command_exists(cmd)
+
+ remove_bom(po_a)
+
+ cmd_params = array_to_cli_options(msgmerge_options)
+ to_run = "#{cmd} #{cmd_params} #{po_a} #{po_b}"
+ puts "\nrunning #{to_run}" if verbose
+ `#{to_run}`
+ end
+
+ # convert an array of String/Symbol to cli options
+ def array_to_cli_options(array)
+ [*array].map do |o|
+ o.kind_of?(Symbol) ? "--#{o}".gsub('_','-') : o.to_s
+ end.join(' ')
+ end
+
+ def ensure_command_exists(cmd)
+ `#{cmd} --help`
+ unless $? && $?.success?
+ raise _("`%{cmd}' can not be found. \nInstall GNU Gettext then set PATH or MSGMERGE_PATH correctly.") % {:cmd => cmd}
+ end
+ end
+
+ # where lies the mo file for a given po_file
+ # generare directory unless it exists
+ def mo_file_from_po_file(po_file,options)
+ options = {
+ :mo_root => "./data/locale",
+ :mo_path_rule => "%{lang}/LC_MESSAGES"
+ }.merge(options)
+
+ lang, textdomain = %r[/([^/]+?)/(.*)\.po].match(po_file[options[:po_root].size..-1]).to_a[1,2]
+
+ mo_dir_rule = File.join(options[:mo_root], options[:mo_path_rule])
+ mo_dir = mo_dir_rule % {:lang => lang}
+ File.join(mo_dir, "#{textdomain}.mo")
+ end
+end
+
+if __FILE__ == $0
+ GetText.update_pofiles("foo", ARGV, "foo 1.1.0")
+end
diff --git a/vendor/gems/gettext-2.1.0/lib/gettext/tools/parser/erb.rb b/vendor/gems/gettext-2.1.0/lib/gettext/tools/parser/erb.rb
new file mode 100644
index 000000000..0aee9d461
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/lib/gettext/tools/parser/erb.rb
@@ -0,0 +1,52 @@
+=begin
+ parser/erb.rb - parser for ERB
+
+ Copyright (C) 2005-2009 Masao Mutoh
+
+ You may redistribute it and/or modify it under the same
+ license terms as Ruby or LGPL.
+=end
+
+require 'erb'
+require 'gettext/tools/parser/ruby'
+
+module GetText
+ module ErbParser
+ extend self
+
+ @config = {
+ :extnames => ['.rhtml', '.erb']
+ }
+
+ # Sets some preferences to parse ERB files.
+ # * config: a Hash of the config. It can takes some values below:
+ # * :extnames: An Array of target files extension. Default is [".rhtml"].
+ def init(config)
+ config.each{|k, v|
+ @config[k] = v
+ }
+ end
+
+ def parse(file, targets = []) # :nodoc:
+ src = ERB.new(IO.readlines(file).join).src
+ # Remove magic comment prepended by erb in Ruby 1.9.
+ src.sub!(/\A#.*?coding[:=].*?\n/, '') if src.respond_to?(:encode)
+ erb = src.split(/$/)
+ RubyParser.parse_lines(file, erb, targets)
+ end
+
+ def target?(file) # :nodoc:
+ @config[:extnames].each do |v|
+ return true if File.extname(file) == v
+ end
+ false
+ end
+ end
+end
+
+if __FILE__ == $0
+ # ex) ruby glade.rhtml foo.rhtml bar.rhtml
+ ARGV.each do |file|
+ p GetText::ErbParser.parse(file)
+ end
+end
diff --git a/vendor/gems/gettext-2.1.0/lib/gettext/tools/parser/glade.rb b/vendor/gems/gettext-2.1.0/lib/gettext/tools/parser/glade.rb
new file mode 100644
index 000000000..ab77beede
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/lib/gettext/tools/parser/glade.rb
@@ -0,0 +1,98 @@
+=begin
+ parser/glade.rb - parser for Glade-2
+
+ Copyright (C) 2004,2005 Masao Mutoh
+
+ You may redistribute it and/or modify it under the same
+ license terms as Ruby or LGPL.
+=end
+
+require 'cgi'
+require 'gettext'
+
+module GetText
+ module GladeParser
+ extend GetText
+ extend self
+
+ bindtextdomain("rgettext")
+
+ TARGET1 = /<property.*translatable="yes">(.*)/
+ TARGET2 = /(.*)<\/property>/
+
+ def parse(file, targets = []) # :nodoc:
+ lines = IO.readlines(file)
+ parse_lines(file, lines, targets)
+ end
+
+ #from ary of lines.
+ def parse_lines(file, lines, targets) # :nodoc:
+ cnt = 0
+ target = false
+ line_no = 0
+ val = nil
+
+ loop do
+ line = lines.shift
+ break unless line
+
+ cnt += 1
+ if TARGET1 =~ line
+ line_no = cnt
+ val = $1 + "\n"
+ target = true
+ if TARGET2 =~ $1
+ val = $1
+ add_target(val, file, line_no, targets)
+ val = nil
+ target = false
+ end
+ elsif target
+ if TARGET2 =~ line
+ val << $1
+ add_target(val, file, line_no, targets)
+ val = nil
+ target = false
+ else
+ val << line
+ end
+ end
+ end
+ targets
+ end
+
+ XML_RE = /<\?xml/
+ GLADE_RE = /glade-2.0.dtd/
+
+ def target?(file) # :nodoc:
+ data = IO.readlines(file)
+ if XML_RE =~ data[0] and GLADE_RE =~ data[1]
+ true
+ else
+ if File.extname(file) == '.glade'
+ raise _("`%{file}' is not glade-2.0 format.") % {:file => file}
+ end
+ false
+ end
+ end
+
+ def add_target(val, file, line_no, targets) # :nodoc:
+ return unless val.size > 0
+ assoc_data = targets.assoc(val)
+ val = CGI.unescapeHTML(val)
+ if assoc_data
+ targets[targets.index(assoc_data)] = assoc_data << "#{file}:#{line_no}"
+ else
+ targets << [val.gsub(/\n/, '\n'), "#{file}:#{line_no}"]
+ end
+ targets
+ end
+ end
+end
+
+if __FILE__ == $0
+ # ex) ruby glade.rb foo.glade bar.glade
+ ARGV.each do |file|
+ p GetText::GladeParser.parse(file)
+ end
+end
diff --git a/vendor/gems/gettext-2.1.0/lib/gettext/tools/parser/ruby.rb b/vendor/gems/gettext-2.1.0/lib/gettext/tools/parser/ruby.rb
new file mode 100644
index 000000000..9d16401ce
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/lib/gettext/tools/parser/ruby.rb
@@ -0,0 +1,226 @@
+#!/usr/bin/ruby
+=begin
+ parser/ruby.rb - parser for ruby script
+
+ Copyright (C) 2003-2009 Masao Mutoh
+ Copyright (C) 2005 speakillof
+ Copyright (C) 2001,2002 Yasushi Shoji, Masao Mutoh
+
+ You may redistribute it and/or modify it under the same
+ license terms as Ruby or LGPL.
+
+=end
+
+require 'irb/ruby-lex.rb'
+require 'stringio'
+require 'gettext/tools/pomessage'
+
+module GetText
+ class RubyLexX < RubyLex # :nodoc: all
+ # Parser#parse resemlbes RubyLex#lex
+ def parse
+ until ( (tk = token).kind_of?(RubyToken::TkEND_OF_SCRIPT) && !@continue or tk.nil? )
+ s = get_readed
+ if RubyToken::TkSTRING === tk
+ def tk.value
+ @value
+ end
+
+ def tk.value=(s)
+ @value = s
+ end
+
+ if @here_header
+ s = s.sub(/\A.*?\n/, '').sub(/^.*\n\Z/, '')
+ else
+ begin
+ s = eval(s)
+ rescue Exception
+ # Do nothing.
+ end
+ end
+
+ tk.value = s
+ end
+
+ if $DEBUG
+ if tk.is_a? TkSTRING
+ $stderr.puts("#{tk}: #{tk.value}")
+ elsif tk.is_a? TkIDENTIFIER
+ $stderr.puts("#{tk}: #{tk.name}")
+ else
+ $stderr.puts(tk)
+ end
+ end
+
+ yield tk
+ end
+ return nil
+ end
+
+ # Original parser does not keep the content of the comments,
+ # so monkey patching this with new token type and extended
+ # identify_comment implementation
+ RubyToken.def_token :TkCOMMENT_WITH_CONTENT, TkVal
+
+ def identify_comment
+ @ltype = "#"
+ get_readed # skip the hash sign itself
+
+ while ch = getc
+ if ch == "\n"
+ @ltype = nil
+ ungetc
+ break
+ end
+ end
+ return Token(TkCOMMENT_WITH_CONTENT, get_readed)
+ end
+
+ end
+
+ # Extends PoMessage for RubyParser.
+ # Implements a sort of state machine to assist the parser.
+ module PoMessageForRubyParser
+ # Supports parsing by setting attributes by and by.
+ def set_current_attribute(str)
+ param = @param_type[@param_number]
+ raise ParseError, 'no more string parameters expected' unless param
+ set_value(param, str)
+ end
+
+ def init_param
+ @param_number = 0
+ self
+ end
+
+ def advance_to_next_attribute
+ @param_number += 1
+ end
+ end
+ class PoMessage
+ include PoMessageForRubyParser
+ alias :initialize_old :initialize
+ def initialize(type)
+ initialize_old(type)
+ init_param
+ end
+ end
+
+ module RubyParser
+ extend self
+
+ ID = ['gettext', '_', 'N_', 'sgettext', 's_']
+ PLURAL_ID = ['ngettext', 'n_', 'Nn_', 'ns_', 'nsgettext']
+ MSGCTXT_ID = ['pgettext', 'p_']
+ MSGCTXT_PLURAL_ID = ['npgettext', 'np_']
+
+ # (Since 2.1.0) the 2nd parameter is deprecated
+ # (and ignored here).
+ # And You don't need to keep the pomessages as unique.
+
+ def parse(path, deprecated = []) # :nodoc:
+ lines = IO.readlines(path)
+ parse_lines(path, lines, deprecated)
+ end
+
+ def parse_lines(path, lines, deprecated = []) # :nodoc:
+ pomessages = deprecated
+ file = StringIO.new(lines.join + "\n")
+ rl = RubyLexX.new
+ rl.set_input(file)
+ rl.skip_space = true
+ #rl.readed_auto_clean_up = true
+
+ pomessage = nil
+ line_no = nil
+ last_comment = ''
+ reset_comment = false
+ rl.parse do |tk|
+ begin
+ case tk
+ when RubyToken::TkIDENTIFIER, RubyToken::TkCONSTANT
+ store_pomessage(pomessages, pomessage, path, line_no, last_comment)
+ if ID.include?(tk.name)
+ pomessage = PoMessage.new(:normal)
+ elsif PLURAL_ID.include?(tk.name)
+ pomessage = PoMessage.new(:plural)
+ elsif MSGCTXT_ID.include?(tk.name)
+ pomessage = PoMessage.new(:msgctxt)
+ elsif MSGCTXT_PLURAL_ID.include?(tk.name)
+ pomessage = PoMessage.new(:msgctxt_plural)
+ else
+ pomessage = nil
+ end
+ line_no = tk.line_no.to_s
+ when RubyToken::TkSTRING
+ pomessage.set_current_attribute tk.value if pomessage
+ when RubyToken::TkPLUS, RubyToken::TkNL
+ #do nothing
+ when RubyToken::TkCOMMA
+ pomessage.advance_to_next_attribute if pomessage
+ else
+ if store_pomessage(pomessages, pomessage, path, line_no, last_comment)
+ pomessage = nil
+ end
+ end
+ rescue
+ $stderr.print "\n\nError"
+ $stderr.print " parsing #{path}:#{tk.line_no}\n\t #{lines[tk.line_no - 1]}" if tk
+ $stderr.print "\n #{$!.inspect} in\n"
+ $stderr.print $!.backtrace.join("\n")
+ $stderr.print "\n"
+ exit 1
+ end
+
+ case tk
+ when RubyToken::TkCOMMENT_WITH_CONTENT
+ last_comment = "" if reset_comment
+ if last_comment.empty?
+ # new comment from programmer to translator?
+ comment1 = tk.value.lstrip
+ if comment1 =~ /^TRANSLATORS\:/
+ last_comment = $'
+ end
+ else
+ last_comment += "\n"
+ last_comment += tk.value
+ end
+ reset_comment = false
+ when RubyToken::TkNL
+ else
+ reset_comment = true
+ end
+ end
+ pomessages
+ end
+
+ def target?(file) # :nodoc:
+ true # always true, as the default parser.
+ end
+
+ private
+ def store_pomessage(pomessages, pomessage, file_name, line_no, last_comment) #:nodoc:
+ if pomessage && pomessage.msgid
+ pomessage.sources << file_name + ":" + line_no
+ pomessage.add_comment(last_comment) unless last_comment.empty?
+ pomessages << pomessage
+ true
+ else
+ false
+ end
+ end
+ end
+end
+
+if __FILE__ == $0
+ require 'pp'
+ ARGV.each do |path|
+ pp GetText::RubyParser.parse(path)
+ end
+
+ #rl = GetText::RubyLexX.new; rl.set_input(ARGF)
+ #rl.parse do |tk|
+ #p tk
+ #end
+end
diff --git a/vendor/gems/gettext-2.1.0/lib/gettext/tools/pomessage.rb b/vendor/gems/gettext-2.1.0/lib/gettext/tools/pomessage.rb
new file mode 100644
index 000000000..b5efe7221
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/lib/gettext/tools/pomessage.rb
@@ -0,0 +1,197 @@
+module GetText
+ class ParseError < StandardError
+ end
+
+ # Contains data related to the expression or sentence that
+ # is to be translated.
+ class PoMessage
+ PARAMS = {
+ :normal => [:msgid],
+ :plural => [:msgid, :msgid_plural],
+ :msgctxt => [:msgctxt, :msgid],
+ :msgctxt_plural => [:msgctxt, :msgid, :msgid_plural]
+ }
+
+ @@max_line_length = 70
+
+ # Sets the max line length.
+ def self.max_line_length=(len)
+ @@max_line_length = len
+ end
+
+ # Gets the max line length.
+ def self.max_line_length
+ @@max_line_length
+ end
+
+ # Required
+ attr_accessor :type # :normal, :plural, :msgctxt, :msgctxt_plural
+ attr_accessor :msgid
+ # Options
+ attr_accessor :msgid_plural
+ attr_accessor :msgctxt
+ attr_accessor :sources # ["file1:line1", "file2:line2", ...]
+ attr_accessor :comment
+
+ # Create the object. +type+ should be :normal, :plural, :msgctxt or :msgctxt_plural.
+ def initialize(type)
+ @type = type
+ @sources = []
+ @param_type = PARAMS[@type]
+ end
+
+ # Support for extracted comments. Explanation s.
+ # http://www.gnu.org/software/gettext/manual/gettext.html#Names
+ def add_comment(new_comment)
+ if (new_comment and ! new_comment.empty?)
+ @comment ||= ""
+ @comment += new_comment
+ end
+ to_s
+ end
+
+ # Returns a parameter representation suitable for po-files
+ # and other purposes.
+ def escaped(param_name)
+ orig = self.send param_name
+ orig.gsub(/"/, '\"').gsub(/\r/, '')
+ end
+
+ # Checks if the other translation target is mergeable with
+ # the current one. Relevant are msgid and translation context (msgctxt).
+ def ==(other)
+ other.msgid == self.msgid && other.msgctxt == self.msgctxt
+ end
+
+ # Merges two translation targets with the same msgid and returns the merged
+ # result. If one is declared as plural and the other not, then the one
+ # with the plural wins.
+ def merge(other)
+ return self unless other
+ raise ParseError, "Translation targets do not match: \n" \
+ " self: #{self.inspect}\n other: '#{other.inspect}'" unless self == other
+ if other.msgid_plural && !self.msgid_plural
+ res = other
+ unless (res.sources.include? self.sources[0])
+ res.sources += self.sources
+ res.add_comment(self.comment)
+ end
+ else
+ res = self
+ unless (res.sources.include? other.sources[0])
+ res.sources += other.sources
+ res.add_comment(other.comment)
+ end
+ end
+ res
+ end
+
+ # Output the po message for the po-file.
+ def to_po_str
+ raise "msgid is nil." unless @msgid
+ raise "sources is nil." unless @sources
+
+ str = ""
+ # extracted comments
+ if comment
+ comment.split("\n").each do |comment_line|
+ str << "\n#. #{comment_line.strip}"
+ end
+ end
+
+ # references
+ curr_pos = @@max_line_length
+ sources.each do |e|
+ if curr_pos + e.size > @@max_line_length
+ str << "\n#:"
+ curr_pos = 3
+ else
+ curr_pos += (e.size + 1)
+ end
+ str << " " << e
+ end
+
+ # msgctxt, msgid, msgstr
+ str << "\nmsgctxt \"" << msgctxt << "\"" if msgctxt?
+ str << "\nmsgid \"" << escaped(:msgid) << "\"\n"
+ if plural?
+ str << "msgid_plural \"" << escaped(:msgid_plural) << "\"\n"
+ str << "msgstr[0] \"\"\n"
+ str << "msgstr[1] \"\"\n"
+ else
+ str << "msgstr \"\"\n"
+ end
+ str
+ end
+
+ # Returns true if the type is kind of msgctxt.
+ # And if this is a kind of msgctxt and msgctxt property
+ # is nil, then raise an RuntimeException.
+ def msgctxt?
+ if [:msgctxt, :msgctxt_plural].include? @type
+ raise "This PoMessage is a kind of msgctxt but the msgctxt property is nil. msgid: #{msgid}" unless @msgctxt
+ true
+ end
+ end
+
+ # Returns true if the type is kind of plural.
+ # And if this is a kind of plural and msgid_plural property
+ # is nil, then raise an RuntimeException.
+ def plural?
+ if [:plural, :msgctxt_plural].include? @type
+ raise "This PoMessage is a kind of plural but the msgid_plural property is nil. msgid: #{msgid}" unless @msgid_plural
+ true
+ end
+ end
+
+ private
+
+ # sets or extends the value of a translation target params like msgid,
+ # msgctxt etc.
+ # param is symbol with the name of param
+ # value - new value
+ def set_value(param, value)
+ send "#{param}=", (send(param) || '') + value.gsub(/\n/, '\n')
+ end
+
+ public
+ # For backward comatibility. This doesn't support "comment".
+ # ary = [msgid1, "file1:line1", "file2:line"]
+ def self.new_from_ary(ary)
+ ary = ary.dup
+ msgid = ary.shift
+ sources = ary
+ type = :normal
+ msgctxt = nil
+ msgid_plural = nil
+
+ if msgid.include? "\004"
+ msgctxt, msgid = msgid.split(/\004/)
+ type = :msgctxt
+ end
+ if msgid.include? "\000"
+ ids = msgid.split(/\000/)
+ msgid = ids[0]
+ msgid_plural = ids[1]
+ if type == :msgctxt
+ type = :msgctxt_plural
+ else
+ type = :plural
+ end
+ end
+ ret = self.new(type)
+ ret.msgid = msgid
+ ret.sources = sources
+ ret.msgctxt = msgctxt
+ ret.msgid_plural = msgid_plural
+ ret
+ end
+
+ def [](number)
+ param = @param_type[number]
+ raise ParseError, 'no more string parameters expected' unless param
+ send param
+ end
+ end
+
+end
diff --git a/vendor/gems/gettext-2.1.0/lib/gettext/tools/poparser.rb b/vendor/gems/gettext-2.1.0/lib/gettext/tools/poparser.rb
new file mode 100644
index 000000000..827a99c2f
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/lib/gettext/tools/poparser.rb
@@ -0,0 +1,356 @@
+=begin
+ poparser.rb - Generate a .mo
+
+ Copyright (C) 2003-2009 Masao Mutoh <mutomasa at gmail.com>
+
+ You may redistribute it and/or modify it under the same
+ license terms as Ruby.
+=end
+
+#
+# DO NOT MODIFY!!!!
+# This file is automatically generated by Racc 1.4.6
+# from Racc grammer file "".
+#
+
+require 'racc/parser.rb'
+module GetText
+ class PoParser < Racc::Parser
+
+module_eval(<<'...end poparser.ry/module_eval...', 'poparser.ry', 108)
+ include GetText
+ GetText.bindtextdomain("rgettext")
+
+ def unescape(orig)
+ ret = orig.gsub(/\\n/, "\n")
+ ret.gsub!(/\\t/, "\t")
+ ret.gsub!(/\\r/, "\r")
+ ret.gsub!(/\\"/, "\"")
+ ret
+ end
+
+ def parse(str, data, ignore_fuzzy = true)
+ @comments = []
+ @data = data
+ @fuzzy = false
+ @msgctxt = ""
+ $ignore_fuzzy = ignore_fuzzy
+
+ str.strip!
+ @q = []
+ until str.empty? do
+ case str
+ when /\A\s+/
+ str = $'
+ when /\Amsgctxt/
+ @q.push [:MSGCTXT, $&]
+ str = $'
+ when /\Amsgid_plural/
+ @q.push [:MSGID_PLURAL, $&]
+ str = $'
+ when /\Amsgid/
+ @q.push [:MSGID, $&]
+ str = $'
+ when /\Amsgstr/
+ @q.push [:MSGSTR, $&]
+ str = $'
+ when /\A\[(\d+)\]/
+ @q.push [:PLURAL_NUM, $1]
+ str = $'
+ when /\A\#~(.*)/
+ $stderr.print _("Warning: obsolete msgid exists.\n")
+ $stderr.print " #{$&}\n"
+ @q.push [:COMMENT, $&]
+ str = $'
+ when /\A\#(.*)/
+ @q.push [:COMMENT, $&]
+ str = $'
+ when /\A\"(.*)\"/
+ @q.push [:STRING, $1]
+ str = $'
+ else
+ #c = str[0,1]
+ #@q.push [:STRING, c]
+ str = str[1..-1]
+ end
+ end
+ @q.push [false, '$end']
+ if $DEBUG
+ @q.each do |a,b|
+ puts "[#{a}, #{b}]"
+ end
+ end
+ @yydebug = true if $DEBUG
+ do_parse
+
+ if @comments.size > 0
+ @data.set_comment(:last, @comments.join("\n"))
+ end
+ @data
+ end
+
+ def next_token
+ @q.shift
+ end
+
+ def on_message(msgid, msgstr)
+ if msgstr.size > 0
+ @data[msgid] = msgstr
+ @data.set_comment(msgid, @comments.join("\n"))
+ end
+ @comments.clear
+ @msgctxt = ""
+ end
+
+ def on_comment(comment)
+ @fuzzy = true if (/fuzzy/ =~ comment)
+ @comments << comment
+ end
+
+ def parse_file(po_file, data, ignore_fuzzy = true)
+ args = [ po_file ]
+ # In Ruby 1.9, we must detect proper encoding of a PO file.
+ if String.instance_methods.include?(:encode)
+ encoding = detect_file_encoding(po_file)
+ args << "r:#{encoding}"
+ end
+ @po_file = po_file
+ parse(File.open(*args) {|io| io.read }, data, ignore_fuzzy)
+ end
+
+ def detect_file_encoding(po_file)
+ open(po_file, :encoding => 'ASCII-8BIT') do |input|
+ input.lines.each do |line|
+ return Encoding.find($1) if %r["Content-Type:.*\scharset=(.*)\\n"] =~ line
+ end
+ end
+ Encoding.default_external
+ end
+ private :detect_file_encoding
+...end poparser.ry/module_eval...
+##### State transition tables begin ###
+
+racc_action_table = [
+ 3, 13, 5, 7, 9, 15, 16, 17, 20, 17,
+ 13, 17, 13, 13, 11, 17, 23, 20, 13, 17 ]
+
+racc_action_check = [
+ 1, 16, 1, 1, 1, 12, 12, 12, 18, 18,
+ 7, 14, 15, 9, 3, 19, 20, 21, 23, 25 ]
+
+racc_action_pointer = [
+ nil, 0, nil, 14, nil, nil, nil, 3, nil, 6,
+ nil, nil, 0, nil, 4, 5, -6, nil, 2, 8,
+ 8, 11, nil, 11, nil, 12 ]
+
+racc_action_default = [
+ -1, -16, -2, -16, -3, -13, -4, -16, -6, -16,
+ -7, 26, -16, -15, -5, -16, -16, -14, -16, -8,
+ -16, -9, -11, -16, -10, -12 ]
+
+racc_goto_table = [
+ 12, 22, 14, 4, 24, 6, 2, 8, 18, 19,
+ 10, 21, 1, nil, nil, nil, 25 ]
+
+racc_goto_check = [
+ 5, 9, 5, 3, 9, 4, 2, 6, 5, 5,
+ 7, 8, 1, nil, nil, nil, 5 ]
+
+racc_goto_pointer = [
+ nil, 12, 5, 2, 4, -7, 6, 9, -7, -17 ]
+
+racc_goto_default = [
+ nil, nil, nil, nil, nil, nil, nil, nil, nil, nil ]
+
+racc_reduce_table = [
+ 0, 0, :racc_error,
+ 0, 10, :_reduce_none,
+ 2, 10, :_reduce_none,
+ 2, 10, :_reduce_none,
+ 2, 10, :_reduce_none,
+ 2, 12, :_reduce_5,
+ 1, 13, :_reduce_none,
+ 1, 13, :_reduce_none,
+ 4, 15, :_reduce_8,
+ 5, 16, :_reduce_9,
+ 2, 17, :_reduce_10,
+ 1, 17, :_reduce_none,
+ 3, 18, :_reduce_12,
+ 1, 11, :_reduce_13,
+ 2, 14, :_reduce_14,
+ 1, 14, :_reduce_15 ]
+
+racc_reduce_n = 16
+
+racc_shift_n = 26
+
+racc_token_table = {
+ false => 0,
+ :error => 1,
+ :COMMENT => 2,
+ :MSGID => 3,
+ :MSGCTXT => 4,
+ :MSGID_PLURAL => 5,
+ :MSGSTR => 6,
+ :STRING => 7,
+ :PLURAL_NUM => 8 }
+
+racc_nt_base = 9
+
+racc_use_result_var = true
+
+Racc_arg = [
+ racc_action_table,
+ racc_action_check,
+ racc_action_default,
+ racc_action_pointer,
+ racc_goto_table,
+ racc_goto_check,
+ racc_goto_default,
+ racc_goto_pointer,
+ racc_nt_base,
+ racc_reduce_table,
+ racc_token_table,
+ racc_shift_n,
+ racc_reduce_n,
+ racc_use_result_var ]
+
+Racc_token_to_s_table = [
+ "$end",
+ "error",
+ "COMMENT",
+ "MSGID",
+ "MSGCTXT",
+ "MSGID_PLURAL",
+ "MSGSTR",
+ "STRING",
+ "PLURAL_NUM",
+ "$start",
+ "msgfmt",
+ "comment",
+ "msgctxt",
+ "message",
+ "string_list",
+ "single_message",
+ "plural_message",
+ "msgstr_plural",
+ "msgstr_plural_line" ]
+
+Racc_debug_parser = true
+
+##### State transition tables end #####
+
+# reduce 0 omitted
+
+# reduce 1 omitted
+
+# reduce 2 omitted
+
+# reduce 3 omitted
+
+# reduce 4 omitted
+
+module_eval(<<'.,.,', 'poparser.ry', 23)
+ def _reduce_5(val, _values, result)
+ @msgctxt = unescape(val[1]) + "\004"
+
+ result
+ end
+.,.,
+
+# reduce 6 omitted
+
+# reduce 7 omitted
+
+module_eval(<<'.,.,', 'poparser.ry', 35)
+ def _reduce_8(val, _values, result)
+ if @fuzzy and $ignore_fuzzy
+ if val[1] != ""
+ $stderr.print _("Warning: fuzzy message was ignored.\n")
+ $stderr.print " #{@po_file}: msgid '#{val[1]}'\n"
+ else
+ on_message('', unescape(val[3]))
+ end
+ @fuzzy = false
+ else
+ on_message(@msgctxt + unescape(val[1]), unescape(val[3]))
+ end
+ result = ""
+
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'poparser.ry', 52)
+ def _reduce_9(val, _values, result)
+ if @fuzzy and $ignore_fuzzy
+ if val[1] != ""
+ $stderr.print _("Warning: fuzzy message was ignored.\n")
+ $stderr.print "msgid = '#{val[1]}\n"
+ else
+ on_message('', unescape(val[3]))
+ end
+ @fuzzy = false
+ else
+ on_message(@msgctxt + unescape(val[1]) + "\000" + unescape(val[3]), unescape(val[4]))
+ end
+ result = ""
+
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'poparser.ry', 70)
+ def _reduce_10(val, _values, result)
+ if val[0].size > 0
+ result = val[0] + "\000" + val[1]
+ else
+ result = ""
+ end
+
+ result
+ end
+.,.,
+
+# reduce 11 omitted
+
+module_eval(<<'.,.,', 'poparser.ry', 82)
+ def _reduce_12(val, _values, result)
+ result = val[2]
+
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'poparser.ry', 89)
+ def _reduce_13(val, _values, result)
+ on_comment(val[0])
+
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'poparser.ry', 97)
+ def _reduce_14(val, _values, result)
+ result = val.delete_if{|item| item == ""}.join
+
+ result
+ end
+.,.,
+
+module_eval(<<'.,.,', 'poparser.ry', 101)
+ def _reduce_15(val, _values, result)
+ result = val[0]
+
+ result
+ end
+.,.,
+
+def _reduce_none(val, _values, result)
+ val[0]
+end
+
+ end # class PoParser
+ end # module GetText
+
+
diff --git a/vendor/gems/gettext-2.1.0/lib/gettext/tools/rgettext.rb b/vendor/gems/gettext-2.1.0/lib/gettext/tools/rgettext.rb
new file mode 100644
index 000000000..a66ed2fe0
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/lib/gettext/tools/rgettext.rb
@@ -0,0 +1,226 @@
+#! /usr/bin/env ruby
+=begin
+ rgettext.rb - Generate a .pot file.
+
+ Copyright (C) 2003-2009 Masao Mutoh
+ Copyright (C) 2001,2002 Yasushi Shoji, Masao Mutoh
+
+ Yasushi Shoji <yashi at atmark-techno.com>
+ Masao Mutoh <mutomasa at gmail.com>
+
+ You may redistribute it and/or modify it under the same
+ license terms as Ruby or LGPL.
+=end
+
+require 'optparse'
+require 'gettext'
+require 'rbconfig'
+
+module GetText
+
+ module RGetText #:nodoc:
+ extend GetText
+
+ bindtextdomain("rgettext")
+
+ # constant values
+ VERSION = GetText::VERSION
+
+ @ex_parsers = []
+ [
+ ["glade.rb", "GladeParser"],
+ ["erb.rb", "ErbParser"],
+# ["ripper.rb", "RipperParser"],
+ ["ruby.rb", "RubyParser"] # Default parser.
+ ].each do |f, klass|
+ begin
+ require "gettext/tools/parser/#{f}"
+ @ex_parsers << GetText.const_get(klass)
+ rescue
+ $stderr.puts _("'%{klass}' is ignored.") % {:klass => klass}
+ $stderr.puts $! if $DEBUG
+ end
+ end
+
+ module_function
+
+ # Add an option parser
+ # the option parser module requires to have target?(file) and parser(file, ary) method.
+ #
+ # require 'gettext/tools/rgettext'
+ # module FooParser
+ # module_function
+ # def target?(file)
+ # File.extname(file) == '.foo' # *.foo file only.
+ # end
+ # def parse(file, ary)
+ # :
+ # return ary # [["msgid1", "foo.rb:200"], ["msgid2", "bar.rb:300", "baz.rb:400"], ...]
+ # end
+ # end
+ #
+ # GetText::RGetText.add_parser(FooParser)
+ def add_parser(klass)
+ @ex_parsers.insert(0, klass)
+ end
+
+ def generate_pot_header # :nodoc:
+ time = Time.now.strftime("%Y-%m-%d %H:%M")
+ off = Time.now.utc_offset
+ sign = off <= 0 ? '-' : '+'
+ time += sprintf('%s%02d%02d', sign, *(off.abs / 60).divmod(60))
+
+ <<TITLE
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\\n"
+"POT-Creation-Date: #{time}\\n"
+"PO-Revision-Date: #{time}\\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\\n"
+"Language-Team: LANGUAGE <LL@li.org>\\n"
+"MIME-Version: 1.0\\n"
+"Content-Type: text/plain; charset=UTF-8\\n"
+"Content-Transfer-Encoding: 8bit\\n"
+"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\\n"
+TITLE
+ end
+
+ def generate_pot(paths) # :nodoc:
+ pomessages = parse(paths)
+ str = ""
+ pomessages.each do |target|
+ str << target.to_po_str
+ end
+ str
+ end
+
+ def parse(paths) # :nodoc:
+ pomessages = []
+ paths.each do |path|
+ begin
+ @ex_parsers.each do |klass|
+ if klass.target?(path)
+ if klass.method(:parse).arity == 1
+ targets = klass.parse(path)
+ else
+ # For backward compatibility.
+ targets = klass.parse(path, [])
+ end
+
+ targets.each{|pomessage|
+ if pomessage.kind_of? Array
+ pomessage = PoMessage.new_from_ary(pomessage)
+ end
+
+ # Save the previous target.
+ existing = pomessages.find_index {|t| t == pomessage}
+ if existing
+ pomessage = pomessages[existing].merge(pomessage)
+ pomessages[existing] = pomessage
+ else
+ pomessages << pomessage
+ end
+ }
+ break
+ end
+ end
+ rescue
+ puts _("Error parsing %{path}") % {:path => path}
+ raise
+ end
+ end
+ pomessages
+ end
+
+ def check_options # :nodoc:
+ output = STDOUT
+
+ opts = OptionParser.new
+ opts.banner = _("Usage: %s input.rb [-r parser.rb] [-o output.pot]") % $0
+ opts.separator("")
+ opts.separator(_("Extract translatable strings from given input files."))
+ opts.separator("")
+ opts.separator(_("Specific options:"))
+
+ opts.on("-o", "--output=FILE", _("write output to specified file")) do |out|
+ unless FileTest.exist? out
+ output = File.new(File.expand_path(out), "w+")
+ else
+ $stderr.puts(_("File '%s' already exists.") % out)
+ exit 1
+ end
+ end
+
+ opts.on("-r", "--require=library", _("require the library before executing rgettext")) do |out|
+ require out
+ end
+
+ opts.on("-d", "--debug", _("run in debugging mode")) do
+ $DEBUG = true
+ end
+
+ opts.on_tail("--version", _("display version information and exit")) do
+ puts "#{$0} #{VERSION}"
+ puts "#{File.join(Config::CONFIG["bindir"], Config::CONFIG["RUBY_INSTALL_NAME"])} #{RUBY_VERSION} (#{RUBY_RELEASE_DATE}) [#{RUBY_PLATFORM}]"
+ exit
+ end
+
+ opts.parse!(ARGV)
+
+ if ARGV.size == 0
+ puts opts.help
+ exit 1
+ end
+
+ [ARGV, output]
+ end
+
+ def run(paths = nil, out = STDOUT) # :nodoc:
+ if paths.is_a? String
+ paths = [paths]
+ elsif ! paths
+ paths, out = check_options
+ end
+
+ if paths.size == 0
+ raise ArgumentError, _("no input files")
+ end
+
+ if out.is_a? String
+ File.open(File.expand_path(out), "w+") do |file|
+ file.puts generate_pot_header
+ file.puts generate_pot(paths)
+ end
+ else
+ out.puts generate_pot_header
+ out.puts generate_pot(paths)
+ end
+ self
+ end
+ end
+ extend self
+ # Creates a po-file from targetfiles(ruby-script-files, .rhtml files, glade-2 XML files),
+ # then output the result to out. If no parameter is set, it behaves same as command line tools(rgettet).
+ #
+ # This function is a part of GetText.create_pofiles.
+ # Usually you don't need to call this function directly.
+ #
+ # * paths: An Array of po-file paths or nil.
+ # * out: output IO or output path.
+ # * Returns: self
+ def rgettext(paths = nil, out = STDOUT)
+ RGetText.run(paths, out)
+ self
+ end
+end
+
+if $0 == __FILE__
+ GetText.rgettext
+# GetText.rgettext($0, "tmp.txt")
+end
diff --git a/vendor/gems/gettext-2.1.0/lib/gettext/tools/rmsgfmt.rb b/vendor/gems/gettext-2.1.0/lib/gettext/tools/rmsgfmt.rb
new file mode 100644
index 000000000..2aa428c55
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/lib/gettext/tools/rmsgfmt.rb
@@ -0,0 +1,84 @@
+=begin
+ rmsgfmt.rb - Generate a .mo
+
+ Copyright (C) 2003-2009 Masao Mutoh
+
+ You may redistribute it and/or modify it under the same
+ license terms as Ruby or LGPL.
+=end
+
+require 'optparse'
+require 'fileutils'
+require 'gettext'
+require 'gettext/tools/poparser'
+require 'rbconfig'
+
+module GetText
+
+ module RMsgfmt #:nodoc:
+ extend GetText
+ extend self
+
+ bindtextdomain "rgettext"
+
+ def run(targetfile = nil, output_path = nil) # :nodoc:
+ unless targetfile
+ targetfile, output_path = check_options
+ end
+ unless targetfile
+ raise ArgumentError, _("no input files")
+ end
+ unless output_path
+ output_path = "messages.mo"
+ end
+
+ parser = PoParser.new
+ data = MOFile.new
+
+ parser.parse_file(targetfile, data)
+ data.save_to_file(output_path)
+ end
+
+ def check_options # :nodoc:
+ output = nil
+
+ opts = OptionParser.new
+ opts.banner = _("Usage: %s input.po [-o output.mo]" % $0)
+ opts.separator("")
+ opts.separator(_("Generate binary message catalog from textual translation description."))
+ opts.separator("")
+ opts.separator(_("Specific options:"))
+
+ opts.on("-o", "--output=FILE", _("write output to specified file")) do |out|
+ output = out
+ end
+
+ opts.on_tail("--version", _("display version information and exit")) do
+ puts "#{$0} #{GetText::VERSION}"
+ puts "#{File.join(Config::CONFIG["bindir"], Config::CONFIG["RUBY_INSTALL_NAME"])} #{RUBY_VERSION} (#{RUBY_RELEASE_DATE}) [#{RUBY_PLATFORM}]"
+ exit
+ end
+ opts.parse!(ARGV)
+
+ if ARGV.size == 0
+ puts opts.help
+ exit 1
+ end
+
+ [ARGV[0], output]
+ end
+ end
+
+ # Creates a mo-file from a targetfile(po-file), then output the result to out.
+ # If no parameter is set, it behaves same as command line tools(rmsgfmt).
+ # * targetfile: An Array of po-files or nil.
+ # * output_path: output path.
+ # * Returns: the MOFile object.
+ def rmsgfmt(targetfile = nil, output_path = nil)
+ RMsgfmt.run(targetfile, output_path)
+ end
+end
+
+if $0 == __FILE__ then
+ GetText.rmsgfmt
+end
diff --git a/vendor/gems/gettext-2.1.0/lib/gettext/tools/rmsgmerge.rb b/vendor/gems/gettext-2.1.0/lib/gettext/tools/rmsgmerge.rb
new file mode 100644
index 000000000..802ba20bc
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/lib/gettext/tools/rmsgmerge.rb
@@ -0,0 +1,498 @@
+=begin
+ rmsgmerge.rb - Merge old .po to new .po
+
+ Copyright (C) 2005-2009 Masao Mutoh
+ Copyright (C) 2005,2006 speakillof
+
+ You may redistribute it and/or modify it under the same
+ license terms as Ruby or LGPL.
+=end
+
+require 'optparse'
+require 'gettext'
+require 'gettext/tools/poparser'
+require 'rbconfig'
+
+module GetText
+
+ module RMsgMerge
+
+ class PoData #:nodoc:
+
+ attr_reader :msgids
+
+ def initialize
+ @msgid2msgstr = {}
+ @msgid2comment = {}
+ @msgids = []
+ end
+
+ def set_comment(msgid_or_sym, comment)
+ @msgid2comment[msgid_or_sym] = comment
+ end
+
+ def msgstr(msgid)
+ @msgid2msgstr[msgid]
+ end
+
+ def comment(msgid)
+ @msgid2comment[msgid]
+ end
+
+ def [](msgid)
+ @msgid2msgstr[msgid]
+ end
+
+ def []=(msgid, msgstr)
+ # Retain the order
+ unless @msgid2msgstr[msgid]
+ @msgids << msgid
+ end
+
+ @msgid2msgstr[msgid] = msgstr
+ end
+
+ def each_msgid
+ arr = @msgids.delete_if{|i| Symbol === i or i == ''}
+ arr.each do |i|
+ yield i
+ end
+ end
+
+ def msgid?(msgid)
+ !(Symbol === msgid) and @msgid2msgstr[msgid] and (msgid != '')
+ end
+
+ # Is it necessary to implement this method?
+ def search_msgid_fuzzy(msgid, used_msgids)
+ nil
+ end
+
+ def nplural
+ unless @msgid2msgstr['']
+ return 0
+ else
+ if /\s*nplural\s*=\s*(\d+)/ =~ @msgid2msgstr['']
+ return $1.to_i
+ else
+ return 0
+ end
+
+ end
+ end
+
+ def generate_po
+ str = ''
+ str << generate_po_header
+
+ self.each_msgid do |id|
+ str << self.generate_po_entry(id)
+ end
+
+ str << @msgid2comment[:last]
+ str
+ end
+
+ def generate_po_header
+ str = ""
+
+ str << @msgid2comment[''].strip << "\n"
+ str << 'msgid ""' << "\n"
+ str << 'msgstr ""' << "\n"
+ msgstr = @msgid2msgstr[''].gsub(/"/, '\"').gsub(/\r/, '')
+ msgstr = msgstr.gsub(/^(.*)$/, '"\1\n"')
+ str << msgstr
+ str << "\n"
+
+ str
+ end
+
+ def generate_po_entry(msgid)
+ str = ""
+ str << @msgid2comment[msgid]
+ if str[-1] != "\n"[0]
+ str << "\n"
+ end
+
+ id = msgid.gsub(/"/, '\"').gsub(/\r/, '')
+ msgstr = @msgid2msgstr[msgid].gsub(/"/, '\"').gsub(/\r/, '')
+
+ if id.include?("\000")
+ ids = id.split(/\000/)
+ str << "msgid " << __conv(ids[0]) << "\n"
+ ids[1..-1].each do |single_id|
+ str << "msgid_plural " << __conv(single_id) << "\n"
+ end
+
+ msgstr.split("\000").each_with_index do |m, n|
+ str << "msgstr[#{n}] " << __conv(m) << "\n"
+ end
+ else
+ str << "msgid " << __conv(id) << "\n"
+ str << "msgstr " << __conv(msgstr) << "\n"
+ end
+
+ str << "\n"
+ str
+ end
+
+ def __conv(str)
+ s = ''
+
+ if str.count("\n") > 1
+ s << '""' << "\n"
+ s << str.gsub(/^(.*)$/, '"\1\n"')
+ else
+ s << '"' << str.sub("\n", "\\n") << '"'
+ end
+
+ s.rstrip
+ end
+
+ end
+
+ class Merger #:nodoc:
+
+ # From GNU gettext source.
+ #
+ # Merge the reference with the definition: take the #. and
+ # #: comments from the reference, take the # comments from
+ # the definition, take the msgstr from the definition. Add
+ # this merged entry to the output message list.
+ DOT_COMMENT_RE = /\A#\./
+ SEMICOLON_COMMENT_RE = /\A#\:/
+ FUZZY_RE = /\A#\,/
+ NOT_SPECIAL_COMMENT_RE = /\A#([^:.,]|\z)/
+
+ CRLF_RE = /\r?\n/
+ POT_DATE_EXTRACT_RE = /POT-Creation-Date:\s*(.*)?\s*$/
+ POT_DATE_RE = /POT-Creation-Date:.*?$/
+
+ def merge(definition, reference)
+ # deep copy
+ result = Marshal.load( Marshal.dump(reference) )
+
+ used = []
+ merge_header(result, definition)
+
+ result.each_msgid do |msgid|
+ if definition.msgid?(msgid)
+ used << msgid
+ merge_message(msgid, result, msgid, definition)
+ elsif other_msgid = definition.search_msgid_fuzzy(msgid, used)
+ used << other_msgid
+ merge_fuzzy_message(msgid, result, other_msgid, definition)
+ elsif msgid.index("\000") and ( reference.msgstr(msgid).gsub("\000", '') == '' )
+ # plural
+ result[msgid] = "\000" * definition.nplural
+ else
+ change_reference_comment(msgid, result)
+ end
+ end
+
+ ###################################################################
+ # msgids which are not used in reference are handled as obsolete. #
+ ###################################################################
+ last_comment = result.comment(:last) || ''
+ definition.each_msgid do |msgid|
+ unless used.include?(msgid)
+ last_comment << "\n"
+ last_comment << definition.generate_po_entry(msgid).strip.gsub(/^/, '#. ')
+ last_comment << "\n"
+ end
+ end
+ result.set_comment(:last, last_comment)
+
+ result
+ end
+
+ def merge_message(msgid, target, def_msgid, definition)
+ merge_comment(msgid, target, def_msgid, definition)
+
+ ############################################
+ # check mismatch of msgid and msgid_plural #
+ ############################################
+ def_msgstr = definition[def_msgid]
+ if msgid.index("\000")
+ if def_msgstr.index("\000")
+ # OK
+ target[msgid] = def_msgstr
+ else
+ # NG
+ s = ''
+ definition.nplural.times {
+ s << def_msgstr
+ s << "\000"
+ }
+ target[msgid] = s
+ end
+ else
+ if def_msgstr.index("\000")
+ # NG
+ target[msgid] = def_msgstr.split("\000")[0]
+ else
+ # OK
+ target[msgid] = def_msgstr
+ end
+ end
+ end
+
+ # for the future
+ def merge_fuzzy_message(msgid, target, def_msgid, definition)
+ merge_message(msgid, target, def_msgid, definition)
+ end
+
+ def merge_comment(msgid, target, def_msgid, definition)
+ ref_comment = target.comment(msgid)
+ def_comment = definition.comment(def_msgid)
+
+ normal_comment = []
+ dot_comment = []
+ semi_comment = []
+ is_fuzzy = false
+
+ def_comment.split(CRLF_RE).each do |l|
+ if NOT_SPECIAL_COMMENT_RE =~ l
+ normal_comment << l
+ end
+ end
+
+ ref_comment.split(CRLF_RE).each do |l|
+ if DOT_COMMENT_RE =~ l
+ dot_comment << l
+ elsif SEMICOLON_COMMENT_RE =~ l
+ semi_comment << l
+ elsif FUZZY_RE =~ l
+ is_fuzzy = true
+ end
+ end
+
+ str = format_comment(normal_comment, dot_comment, semi_comment, is_fuzzy)
+ target.set_comment(msgid, str)
+ end
+
+ def change_reference_comment(msgid, podata)
+ normal_comment = []
+ dot_comment = []
+ semi_comment = []
+ is_fuzzy = false
+
+ podata.comment(msgid).split(CRLF_RE).each do |l|
+ if DOT_COMMENT_RE =~ l
+ dot_comment << l
+ elsif SEMICOLON_COMMENT_RE =~ l
+ semi_comment << l
+ elsif FUZZY_RE =~ l
+ is_fuzzy = true
+ else
+ normal_comment << l
+ end
+ end
+
+ str = format_comment(normal_comment, dot_comment, semi_comment, is_fuzzy)
+ podata.set_comment(msgid, str)
+ end
+
+ def format_comment(normal_comment, dot_comment, semi_comment, is_fuzzy)
+ str = ''
+
+ str << normal_comment.join("\n").gsub(/^#(\s*)/){|sss|
+ if $1 == ""
+ "# "
+ else
+ sss
+ end
+ }
+ if normal_comment.size > 0
+ str << "\n"
+ end
+
+ str << dot_comment.join("\n").gsub(/^#.(\s*)/){|sss|
+ if $1 == ""
+ "#. "
+ else
+ sss
+ end
+ }
+ if dot_comment.size > 0
+ str << "\n"
+ end
+
+ str << semi_comment.join("\n").gsub(/^#:\s*/, "#: ")
+ if semi_comment.size > 0
+ str << "\n"
+ end
+
+ if is_fuzzy
+ str << "#, fuzzy\n"
+ end
+
+ str
+ end
+
+ def merge_header(target, definition)
+ merge_comment('', target, '', definition)
+
+ msg = target.msgstr('')
+ def_msg = definition.msgstr('')
+ if POT_DATE_EXTRACT_RE =~ msg
+ time = $1
+ def_msg = def_msg.sub(POT_DATE_RE, "POT-Creation-Date: #{time}")
+ end
+
+ target[''] = def_msg
+ end
+
+ end
+
+ end
+
+end
+
+module GetText::RMsgMerge #:nodoc:
+
+ class Config #:nodoc:
+
+ attr_accessor :defpo, :refpot, :output, :fuzzy, :update
+
+ # update mode options
+ attr_accessor :backup, :suffix
+
+=begin
+The result is written back to def.po.
+ --backup=CONTROL make a backup of def.po
+ --suffix=SUFFIX override the usual backup suffix
+The version control method may be selected via the --backup option or through
+the VERSION_CONTROL environment variable. Here are the values:
+ none, off never make backups (even if --backup is given)
+ numbered, t make numbered backups
+ existing, nil numbered if numbered backups exist, simple otherwise
+ simple, never always make simple backups
+The backup suffix is `~', unless set with --suffix or the SIMPLE_BACKUP_SUFFIX
+environment variable.
+=end
+
+ def initialize
+ @output = STDOUT
+ @fuzzy = nil
+ @update = nil
+ @backup = ENV["VERSION_CONTROL"]
+ @suffix= ENV["SIMPLE_BACKUP_SUFFIX"] || "~"
+ @input_dirs = ["."]
+ end
+
+ end
+
+end
+
+module GetText
+
+ module RMsgMerge
+ extend GetText
+ extend self
+
+ bindtextdomain("rgettext")
+
+ # constant values
+ VERSION = GetText::VERSION
+ DATE = %w($Date: 2007/07/21 15:03:05 $)[1]
+
+ def check_options(config)
+ opts = OptionParser.new
+ opts.banner = _("Usage: %s def.po ref.pot [-o output.pot]") % $0
+ #opts.summary_width = 80
+ opts.separator("")
+ opts.separator(_("Merges two Uniforum style .po files together. The def.po file is an existing PO file with translations. The ref.pot file is the last created PO file with up-to-date source references. ref.pot is generally created by rgettext."))
+ opts.separator("")
+ opts.separator(_("Specific options:"))
+
+ opts.on("-o", "--output=FILE", _("write output to specified file")) do |out|
+ unless FileTest.exist? out
+ config.output = out
+ else
+ #$stderr.puts(_("File '%s' has already existed.") % out)
+ #exit 1
+ end
+ end
+
+ #opts.on("-F", "--fuzzy-matching")
+
+ opts.on_tail("--version", _("display version information and exit")) do
+ puts "#{$0} #{VERSION} (#{DATE})"
+ puts "#{File.join(::Config::CONFIG["bindir"], ::Config::CONFIG["RUBY_INSTALL_NAME"])} #{RUBY_VERSION} (#{RUBY_RELEASE_DATE}) [#{RUBY_PLATFORM}]"
+ exit
+ end
+
+ opts.parse!(ARGV)
+
+ if ARGV.size != 2
+ puts opts.help
+ exit 1
+ end
+
+ config.defpo = ARGV[0]
+ config.refpot = ARGV[1]
+ end
+
+ def run(reference = nil, definition = nil, out = STDOUT)
+ config = GetText::RMsgMerge::Config.new
+ config.refpot = reference
+ config.defpo = definition
+ config.output = out
+
+ check_options(config)
+
+ if config.defpo.nil?
+ raise ArgumentError, _("definition po is not given.")
+ elsif config.refpot.nil?
+ raise ArgumentError, _("reference pot is not given.")
+ end
+
+ parser = PoParser.new
+ defpo = parser.parse_file(config.defpo, PoData.new, false)
+ refpot = parser.parse_file(config.refstrrefstr, PoData.new, false)
+
+ m = Merger.new
+ result = m.merge(defpo, refpot)
+ p result if $DEBUG
+ print result.generate_po if $DEBUG
+
+ begin
+ if out.is_a? String
+ File.open(File.expand_path(out), "w+") do |file|
+ file.write(result.generate_po)
+ end
+ else
+ out.puts(result.generate_po)
+ end
+ ensure
+ out.close
+ end
+ end
+
+ end
+
+end
+
+
+
+module GetText
+
+ # Experimental
+ def rmsgmerge(reference = nil, definition = nil, out = STDOUT)
+ RMsgMerge.run(reference, definition, out)
+ end
+
+end
+
+
+
+if $0 == __FILE__ then
+ require 'pp'
+
+ #parser = GetText::RMsgMerge::PoParser.new;
+ #parser = GetText::PoParser.new;
+ #pp parser.parse(ARGF.read)
+
+ GetText.rmsgmerge
+end
diff --git a/vendor/gems/gettext-2.1.0/lib/gettext/utils.rb b/vendor/gems/gettext-2.1.0/lib/gettext/utils.rb
new file mode 100644
index 000000000..e4f1be4e8
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/lib/gettext/utils.rb
@@ -0,0 +1,37 @@
+=begin
+ utils.rb - Utility functions
+
+ Copyright (C) 2005,2006 Masao Mutoh
+
+ You may redistribute it and/or modify it under the same
+ license terms as Ruby or LGPL.
+=end
+
+require 'gettext/tools'
+
+warn "'gettext/utils.rb' is deprecated. Use gettext/tools.rb."
+
+module GetText
+
+ alias :create_mofiles_org :create_mofiles #:nodoc:
+ alias :update_pofiles_org :update_pofiles #:nodoc:
+
+
+ # Deprecated. Use gettext/tools instead.
+ def create_mofiles(verbose = false,
+ podir = "./po", targetdir = "./data/locale",
+ targetpath_rule = "%s/LC_MESSAGES") # :nodoc:
+ warn "'gettext/utils.rb' is deprecated. Use gettext/tools.rb."
+ create_mofiles_org(:verbose => verbose,
+ :po_root => podir,
+ :mo_root => targetdir,
+ :mo_root_rule => targetpath_rule)
+ end
+
+ # Deprecated. Use gettext/tools instead.
+ def update_pofiles(textdomain, files, app_version, po_root = "po", refpot = "tmp.pot") # :nodoc:
+ warn "'gettext/utils.rb' is deprecated. Use gettext/tools.rb."
+ options = {:po_root => po_root}
+ update_pofiles_org(textdomain, files, app_version, options)
+ end
+end
diff --git a/vendor/gems/gettext-2.1.0/lib/gettext/version.rb b/vendor/gems/gettext-2.1.0/lib/gettext/version.rb
new file mode 100644
index 000000000..c1de5bc07
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/lib/gettext/version.rb
@@ -0,0 +1,12 @@
+#! /usr/bin/ruby
+=begin
+ version - version information of Ruby-GetText-Package
+
+ Copyright (C) 2005-2009 Masao Mutoh
+
+ You may redistribute it and/or modify it under the same
+ license terms as Ruby or LGPL.
+=end
+module GetText
+ VERSION = "2.1.0"
+end
diff --git a/vendor/gems/gettext-2.1.0/po/bg/rgettext.po b/vendor/gems/gettext-2.1.0/po/bg/rgettext.po
new file mode 100644
index 000000000..61ddfe84c
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/po/bg/rgettext.po
@@ -0,0 +1,134 @@
+#
+# a po-file for Ruby-GetText-Package
+#
+# Copyright (C) 2004-2006 Masao Mutoh
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Georgi Stoimenov <georgistoimenov@abv.bg>, 2008
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 2.1.0\n"
+"POT-Creation-Date: 2009-11-08 22:43+0900\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: Sava Chankov <sava.chankov@gmail.com>\n"
+"Language-Team: Bulgarian <ruby-on-rails-bulgaria@googlegroups.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: lib/gettext/tools/rmsgmerge.rb:402
+msgid "Usage: %s def.po ref.pot [-o output.pot]"
+msgstr "Употреба: %s def.po ref.pot [-o output.pot]"
+
+#: lib/gettext/tools/rmsgmerge.rb:405
+msgid ""
+"Merges two Uniforum style .po files together. The def.po file is an existing "
+"PO file with translations. The ref.pot file is the last created PO file with "
+"up-to-date source references. ref.pot is generally created by rgettext."
+msgstr ""
+"Слива два Uniforum .pо файла. def.po е съществуващ PO файл с преводи. ref."
+"pot е пресен PO файл с актуални референции към кода. ref.pot обикновено е "
+"създаден от rgettext."
+
+#: lib/gettext/tools/rmsgmerge.rb:407 lib/gettext/tools/rgettext.rb:149
+#: lib/gettext/tools/rmsgfmt.rb:50
+msgid "Specific options:"
+msgstr "Специфични опции:"
+
+#: lib/gettext/tools/rmsgmerge.rb:409 lib/gettext/tools/rgettext.rb:151
+#: lib/gettext/tools/rmsgfmt.rb:52
+msgid "write output to specified file"
+msgstr "изходът беше записан в зададения файл"
+
+#: lib/gettext/tools/rmsgmerge.rb:420 lib/gettext/tools/rgettext.rb:168
+#: lib/gettext/tools/rmsgfmt.rb:56
+msgid "display version information and exit"
+msgstr "показване на версията и изход"
+
+#: lib/gettext/tools/rmsgmerge.rb:446
+msgid "definition po is not given."
+msgstr "съществуващия po не е зададен."
+
+#: lib/gettext/tools/rmsgmerge.rb:448
+msgid "reference pot is not given."
+msgstr "pot с референциите не е зададен."
+
+#: lib/gettext/tools/parser/glade.rb:73
+msgid "`%{file}' is not glade-2.0 format."
+msgstr "`%{file}' не е във формат glade-2.0."
+
+#: lib/gettext/tools/rgettext.rb:40
+msgid "'%{klass}' is ignored."
+msgstr "'%{klass}' беше игнориран."
+
+#: lib/gettext/tools/rgettext.rb:134
+msgid "Error parsing %{path}"
+msgstr ""
+
+#: lib/gettext/tools/rgettext.rb:145
+msgid "Usage: %s input.rb [-r parser.rb] [-o output.pot]"
+msgstr "Употреба: %s input.rb [-r parser.rb] [-o output.pot] "
+
+#: lib/gettext/tools/rgettext.rb:147
+msgid "Extract translatable strings from given input files."
+msgstr "Извличане на преводните низове от зададените файлове."
+
+#: lib/gettext/tools/rgettext.rb:155
+msgid "File '%s' already exists."
+msgstr "Файлът '%s' съществува."
+
+#: lib/gettext/tools/rgettext.rb:160
+msgid "require the library before executing rgettext"
+msgstr "заредете библиотеката с require преди да изпълните rgettext"
+
+#: lib/gettext/tools/rgettext.rb:164
+msgid "run in debugging mode"
+msgstr "изпълнение в режим на дебъгване"
+
+#: lib/gettext/tools/rgettext.rb:192 lib/gettext/tools/rmsgfmt.rb:29
+msgid "no input files"
+msgstr "няма зададени файлове"
+
+#: lib/gettext/tools/rmsgfmt.rb:46
+msgid "Usage: %s input.po [-o output.mo]"
+msgstr "Употреба: %s input.po [-o output.mo]"
+
+#: lib/gettext/tools/rmsgfmt.rb:48
+msgid "Generate binary message catalog from textual translation description."
+msgstr "Генериране на двоични файлове с преводите от текстовите описания."
+
+#: lib/gettext/tools.rb:68
+msgid "Failed to merge with %{defpo}"
+msgstr "Пропадна сливането с %{defpo}"
+
+#: lib/gettext/tools.rb:69
+msgid "New .pot was copied to %{failed_filename}"
+msgstr "Новия .pot беше копиран като %{failed_filename}"
+
+#: lib/gettext/tools.rb:70
+msgid "Check these po/pot-files. It may have syntax errors or something wrong."
+msgstr ""
+"Проверете тези po/pot файлове. Може да имат синтактични грешки или нещо "
+"друго."
+
+#: lib/gettext/tools.rb:173
+msgid ""
+"`%{cmd}' can not be found. \n"
+"Install GNU Gettext then set PATH or MSGMERGE_PATH correctly."
+msgstr ""
+
+#: lib/gettext/runtime/textdomain_manager.rb:147
+msgid "3rd parmeter is wrong: value = %{number}"
+msgstr "Третият параметър е грешен: value = %{number}"
+
+#: src/poparser.ry:38 src/poparser.ry:55
+msgid "Warning: fuzzy message was ignored.\n"
+msgstr "Предупреждение: беше игнорирано неточно съобщение"
+
+#: src/poparser.ry:148
+msgid "Warning: obsolete msgid exists.\n"
+msgstr ""
+"Предупреждение: има несъществуващи вече msgid\n"
+"."
diff --git a/vendor/gems/gettext-2.1.0/po/bs/rgettext.po b/vendor/gems/gettext-2.1.0/po/bs/rgettext.po
new file mode 100644
index 000000000..9e8f45f03
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/po/bs/rgettext.po
@@ -0,0 +1,135 @@
+# translation of rgettext.po to Bosnian
+#
+# a po-file for Ruby-GetText-Package
+#
+# Copyright (C) 2004-2006 Masao Mutoh
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Sanjin Sehic <saserr@gmail.com>, 2007.
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 2.1.0\n"
+"POT-Creation-Date: 2009-11-08 22:43+0900\n"
+"PO-Revision-Date: 2007-03-17 16:19+0100\n"
+"Last-Translator: Sanjin Sehic <saserr@gmail.com>\n"
+"Language-Team: Bosnian <saserr@gmail.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%"
+"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#: lib/gettext/tools/rmsgmerge.rb:402
+msgid "Usage: %s def.po ref.pot [-o output.pot]"
+msgstr "Korištenje: %s def.po ref.pot [-o izlaz.pot]"
+
+#: lib/gettext/tools/rmsgmerge.rb:405
+msgid ""
+"Merges two Uniforum style .po files together. The def.po file is an existing "
+"PO file with translations. The ref.pot file is the last created PO file with "
+"up-to-date source references. ref.pot is generally created by rgettext."
+msgstr ""
+"Spaja dvije Uniforum style .po datoteke skupa. def.po datoteka je već "
+"postojeća PO datoteka sa prevodima. ref.pot je zadnja napravljena PO "
+"datoteka sa najnovijim referencama koda. ref.pot je najčešće napravljen sa "
+"rgettext."
+
+#: lib/gettext/tools/rmsgmerge.rb:407 lib/gettext/tools/rgettext.rb:149
+#: lib/gettext/tools/rmsgfmt.rb:50
+msgid "Specific options:"
+msgstr "Specifične opcije:"
+
+#: lib/gettext/tools/rmsgmerge.rb:409 lib/gettext/tools/rgettext.rb:151
+#: lib/gettext/tools/rmsgfmt.rb:52
+msgid "write output to specified file"
+msgstr "zapiši izlaz u specifičnu datoteku"
+
+#: lib/gettext/tools/rmsgmerge.rb:420 lib/gettext/tools/rgettext.rb:168
+#: lib/gettext/tools/rmsgfmt.rb:56
+msgid "display version information and exit"
+msgstr "prikaži informaciju o verziji i završi"
+
+#: lib/gettext/tools/rmsgmerge.rb:446
+msgid "definition po is not given."
+msgstr "definicijski po nije dat."
+
+#: lib/gettext/tools/rmsgmerge.rb:448
+msgid "reference pot is not given."
+msgstr "referencni po nije dat."
+
+#: lib/gettext/tools/parser/glade.rb:73
+msgid "`%{file}' is not glade-2.0 format."
+msgstr "'%{file}' nije glade-2.0 format."
+
+#: lib/gettext/tools/rgettext.rb:40
+msgid "'%{klass}' is ignored."
+msgstr "%{klass} je ignorisan."
+
+#: lib/gettext/tools/rgettext.rb:134
+msgid "Error parsing %{path}"
+msgstr ""
+
+#: lib/gettext/tools/rgettext.rb:145
+msgid "Usage: %s input.rb [-r parser.rb] [-o output.pot]"
+msgstr "Korištenje: %s ulaz.rb [-r parser.rb] [-o izlaz.pot]"
+
+#: lib/gettext/tools/rgettext.rb:147
+msgid "Extract translatable strings from given input files."
+msgstr "Izvadi niske za prevođenje iz date ulazne datoteke."
+
+#: lib/gettext/tools/rgettext.rb:155
+msgid "File '%s' already exists."
+msgstr "Datoteka '%s' već postoji."
+
+#: lib/gettext/tools/rgettext.rb:160
+msgid "require the library before executing rgettext"
+msgstr "zahtjevaj biblioteku prije izvršavanja rgettext-a"
+
+#: lib/gettext/tools/rgettext.rb:164
+msgid "run in debugging mode"
+msgstr "pokreni u modu za nalaženje grešaka"
+
+#: lib/gettext/tools/rgettext.rb:192 lib/gettext/tools/rmsgfmt.rb:29
+msgid "no input files"
+msgstr "nema ulaznih datoteka"
+
+#: lib/gettext/tools/rmsgfmt.rb:46
+msgid "Usage: %s input.po [-o output.mo]"
+msgstr "Korištenje: %s ulaz.po [-o izlaz.mo]"
+
+#: lib/gettext/tools/rmsgfmt.rb:48
+msgid "Generate binary message catalog from textual translation description."
+msgstr "Generiši binarni katalog poruka iz tekstualnog opisa prevoda"
+
+#: lib/gettext/tools.rb:68
+#, fuzzy
+msgid "Failed to merge with %{defpo}"
+msgstr "Spajanje sa %{defpo} nije uspjelo - nastavljam dalje!"
+
+#: lib/gettext/tools.rb:69
+#, fuzzy
+msgid "New .pot was copied to %{failed_filename}"
+msgstr "Molim da provjerite novi .pot u %{failed_filename}"
+
+#: lib/gettext/tools.rb:70
+msgid "Check these po/pot-files. It may have syntax errors or something wrong."
+msgstr ""
+
+#: lib/gettext/tools.rb:173
+msgid ""
+"`%{cmd}' can not be found. \n"
+"Install GNU Gettext then set PATH or MSGMERGE_PATH correctly."
+msgstr ""
+
+#: lib/gettext/runtime/textdomain_manager.rb:147
+msgid "3rd parmeter is wrong: value = %{number}"
+msgstr ""
+
+#: src/poparser.ry:38 src/poparser.ry:55
+msgid "Warning: fuzzy message was ignored.\n"
+msgstr "Upozorenje: čudna poruka je ignorisana.\n"
+
+#: src/poparser.ry:148
+msgid "Warning: obsolete msgid exists.\n"
+msgstr "Upozorenje: nekorišteni msgid postoji.\n"
diff --git a/vendor/gems/gettext-2.1.0/po/ca/rgettext.po b/vendor/gems/gettext-2.1.0/po/ca/rgettext.po
new file mode 100644
index 000000000..4b6343e94
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/po/ca/rgettext.po
@@ -0,0 +1,133 @@
+#
+# po-file for Ruby-GetText-Package
+#
+# Copyright (C) 2004-2008 Masao Mutoh
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Ramon Salvadó <rsalvado at gnuine.com>, 2006-2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 2.1.0\n"
+"POT-Creation-Date: 2009-11-08 22:43+0900\n"
+"PO-Revision-Date: 2005-12-20 10:33+0900E\n"
+"Last-Translator: Ramon Salvadó <rsalvado at gnuine.com>\n"
+"Language-Team: Catalan\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: lib/gettext/tools/rmsgmerge.rb:402
+msgid "Usage: %s def.po ref.pot [-o output.pot]"
+msgstr "Ús: %s def.po ref.pot [-o sortida.pot]"
+
+#: lib/gettext/tools/rmsgmerge.rb:405
+msgid ""
+"Merges two Uniforum style .po files together. The def.po file is an existing "
+"PO file with translations. The ref.pot file is the last created PO file with "
+"up-to-date source references. ref.pot is generally created by rgettext."
+msgstr ""
+"Combina dos fitxers .po d'estil Uniforum. El fitxer def.po és un fitxer PO "
+"existent amb traduccions. El fitxer ref.pot és l'últim fitxer PO amb "
+"referències actualitzades. Normalment qui ha creat ref.pot és rgettext"
+
+#: lib/gettext/tools/rmsgmerge.rb:407 lib/gettext/tools/rgettext.rb:149
+#: lib/gettext/tools/rmsgfmt.rb:50
+msgid "Specific options:"
+msgstr "Opcions específiques:"
+
+#: lib/gettext/tools/rmsgmerge.rb:409 lib/gettext/tools/rgettext.rb:151
+#: lib/gettext/tools/rmsgfmt.rb:52
+msgid "write output to specified file"
+msgstr "escriu la sortida en un fitxer especificat"
+
+#: lib/gettext/tools/rmsgmerge.rb:420 lib/gettext/tools/rgettext.rb:168
+#: lib/gettext/tools/rmsgfmt.rb:56
+msgid "display version information and exit"
+msgstr "mostra informació de la versió i surt"
+
+#: lib/gettext/tools/rmsgmerge.rb:446
+msgid "definition po is not given."
+msgstr "no s'ha donat una definició po"
+
+#: lib/gettext/tools/rmsgmerge.rb:448
+msgid "reference pot is not given."
+msgstr "no s'ha donat una referència pot"
+
+#: lib/gettext/tools/parser/glade.rb:73
+msgid "`%{file}' is not glade-2.0 format."
+msgstr "El fitxer `%{file}' no té el format glade-2.0."
+
+#: lib/gettext/tools/rgettext.rb:40
+msgid "'%{klass}' is ignored."
+msgstr "'%{klass}' ignorat"
+
+#: lib/gettext/tools/rgettext.rb:134
+msgid "Error parsing %{path}"
+msgstr ""
+
+#: lib/gettext/tools/rgettext.rb:145
+msgid "Usage: %s input.rb [-r parser.rb] [-o output.pot]"
+msgstr "Ús: %s entrada.po [-r parser.rb] [-o sortida.pot]"
+
+#: lib/gettext/tools/rgettext.rb:147
+msgid "Extract translatable strings from given input files."
+msgstr "Extreu les cadenes de paraules traduïbles dels fitxers d'entrada."
+
+#: lib/gettext/tools/rgettext.rb:155
+msgid "File '%s' already exists."
+msgstr "El fitxer '%s' ja existeix"
+
+#: lib/gettext/tools/rgettext.rb:160
+msgid "require the library before executing rgettext"
+msgstr "requereix la llibreria abans d'executar rgettext"
+
+#: lib/gettext/tools/rgettext.rb:164
+msgid "run in debugging mode"
+msgstr "executa en mode debug"
+
+#: lib/gettext/tools/rgettext.rb:192 lib/gettext/tools/rmsgfmt.rb:29
+msgid "no input files"
+msgstr "no hi ha fitxers d'entrada"
+
+#: lib/gettext/tools/rmsgfmt.rb:46
+msgid "Usage: %s input.po [-o output.mo]"
+msgstr "Ús: %s entrada.po [-o sortida.mo]"
+
+#: lib/gettext/tools/rmsgfmt.rb:48
+msgid "Generate binary message catalog from textual translation description."
+msgstr ""
+"Genera un catàleg de missatges binaris a partir d'un fitxer de traducció "
+"textual."
+
+#: lib/gettext/tools.rb:68
+msgid "Failed to merge with %{defpo}"
+msgstr "Ha fallat al fer el merge amb %{defpo}"
+
+#: lib/gettext/tools.rb:69
+msgid "New .pot was copied to %{failed_filename}"
+msgstr "S'ha copiat el nou .pot a %{failed_filename}"
+
+#: lib/gettext/tools.rb:70
+msgid "Check these po/pot-files. It may have syntax errors or something wrong."
+msgstr ""
+"Revisa aquestes po/pot-files. Poden contenir errors o quelcom malament."
+
+#: lib/gettext/tools.rb:173
+msgid ""
+"`%{cmd}' can not be found. \n"
+"Install GNU Gettext then set PATH or MSGMERGE_PATH correctly."
+msgstr ""
+
+#: lib/gettext/runtime/textdomain_manager.rb:147
+msgid "3rd parmeter is wrong: value = %{number}"
+msgstr "El tercer paràmetre es erroni: valor = %{number}"
+
+#: src/poparser.ry:38 src/poparser.ry:55
+msgid "Warning: fuzzy message was ignored.\n"
+msgstr "Avís: s'ha ignorat el missatge ambigu.\n"
+
+#: src/poparser.ry:148
+msgid "Warning: obsolete msgid exists.\n"
+msgstr "Avís: existeix un msgid obsolet.\n"
diff --git a/vendor/gems/gettext-2.1.0/po/cs/rgettext.po b/vendor/gems/gettext-2.1.0/po/cs/rgettext.po
new file mode 100644
index 000000000..b5d84bc88
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/po/cs/rgettext.po
@@ -0,0 +1,136 @@
+#
+# a po-file for Ruby-GetText-Package
+#
+# Copyright (C) 2004-2006 Masao Mutoh
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Karel Miarka <kajism@yahoo.com>, 2005,2006.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 2.1.0\n"
+"POT-Creation-Date: 2009-11-08 22:43+0900\n"
+"PO-Revision-Date: 2006-12-16 13:12+0100\n"
+"Last-Translator: Karel Miarka <kajism@yahoo.com>\n"
+"Language-Team: Czech\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%"
+"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+"X-Poedit-Language: Czech\n"
+"X-Poedit-Bookmarks: -1,-1,-1,-1,-1,-1,-1,-1,15,-1\n"
+
+#: lib/gettext/tools/rmsgmerge.rb:402
+msgid "Usage: %s def.po ref.pot [-o output.pot]"
+msgstr "Použití: %s def.po ref.pot [-o output.pot]"
+
+#: lib/gettext/tools/rmsgmerge.rb:405
+msgid ""
+"Merges two Uniforum style .po files together. The def.po file is an existing "
+"PO file with translations. The ref.pot file is the last created PO file with "
+"up-to-date source references. ref.pot is generally created by rgettext."
+msgstr ""
+"Sloučí dohromady dva (Uniforum style) .po soubory. Soubor def.po je "
+"existující PO soubor s překlady. Soubor ref.pot je naposledy vytvořený PO "
+"soubor s aktuálními zdrojovými referencemi. ref.pot je většinou vytvořen "
+"rgettextem."
+
+#: lib/gettext/tools/rmsgmerge.rb:407 lib/gettext/tools/rgettext.rb:149
+#: lib/gettext/tools/rmsgfmt.rb:50
+msgid "Specific options:"
+msgstr "Volby:"
+
+#: lib/gettext/tools/rmsgmerge.rb:409 lib/gettext/tools/rgettext.rb:151
+#: lib/gettext/tools/rmsgfmt.rb:52
+msgid "write output to specified file"
+msgstr "zapsat výstup od určeného souboru"
+
+#: lib/gettext/tools/rmsgmerge.rb:420 lib/gettext/tools/rgettext.rb:168
+#: lib/gettext/tools/rmsgfmt.rb:56
+msgid "display version information and exit"
+msgstr "zobrazit informaci o verzi a skončit"
+
+#: lib/gettext/tools/rmsgmerge.rb:446
+msgid "definition po is not given."
+msgstr "definiční po soubor není zadán."
+
+#: lib/gettext/tools/rmsgmerge.rb:448
+msgid "reference pot is not given."
+msgstr "referenční pot soubor není zadán."
+
+#: lib/gettext/tools/parser/glade.rb:73
+msgid "`%{file}' is not glade-2.0 format."
+msgstr "`%{file}' není ve formátu glade-2.0."
+
+#: lib/gettext/tools/rgettext.rb:40
+msgid "'%{klass}' is ignored."
+msgstr "'%{klass}' je ignorován."
+
+#: lib/gettext/tools/rgettext.rb:134
+msgid "Error parsing %{path}"
+msgstr ""
+
+#: lib/gettext/tools/rgettext.rb:145
+msgid "Usage: %s input.rb [-r parser.rb] [-o output.pot]"
+msgstr "Použití: %s input.rb [-r parser.rb] [-o output.pot]"
+
+#: lib/gettext/tools/rgettext.rb:147
+msgid "Extract translatable strings from given input files."
+msgstr "Extrahuj přeložitelné texty ze zadaných vstupních souborů."
+
+#: lib/gettext/tools/rgettext.rb:155
+msgid "File '%s' already exists."
+msgstr "Soubor '%s' již existoval."
+
+#: lib/gettext/tools/rgettext.rb:160
+msgid "require the library before executing rgettext"
+msgstr "před spuštěním rgettext je vyžadován require knihovny"
+
+#: lib/gettext/tools/rgettext.rb:164
+msgid "run in debugging mode"
+msgstr "běh v debug módu"
+
+#: lib/gettext/tools/rgettext.rb:192 lib/gettext/tools/rmsgfmt.rb:29
+msgid "no input files"
+msgstr "vstupní soubory nenalezeny"
+
+#: lib/gettext/tools/rmsgfmt.rb:46
+msgid "Usage: %s input.po [-o output.mo]"
+msgstr "Použití: %s input.po [-o output.mo]"
+
+#: lib/gettext/tools/rmsgfmt.rb:48
+msgid "Generate binary message catalog from textual translation description."
+msgstr "Generovat binání katalog zpráv z textového popisu překladu."
+
+#: lib/gettext/tools.rb:68
+#, fuzzy
+msgid "Failed to merge with %{defpo}"
+msgstr "Nepodařilo se sloučit s %{defpo} - přeskakuji!"
+
+#: lib/gettext/tools.rb:69
+#, fuzzy
+msgid "New .pot was copied to %{failed_filename}"
+msgstr "Zkontrolujte prosím nový .pot soubor v %{failed_filename}"
+
+#: lib/gettext/tools.rb:70
+msgid "Check these po/pot-files. It may have syntax errors or something wrong."
+msgstr ""
+
+#: lib/gettext/tools.rb:173
+msgid ""
+"`%{cmd}' can not be found. \n"
+"Install GNU Gettext then set PATH or MSGMERGE_PATH correctly."
+msgstr ""
+
+#: lib/gettext/runtime/textdomain_manager.rb:147
+msgid "3rd parmeter is wrong: value = %{number}"
+msgstr ""
+
+#: src/poparser.ry:38 src/poparser.ry:55
+msgid "Warning: fuzzy message was ignored.\n"
+msgstr "Varování: neurčitý (fuzzy) překlad byl ignorován.\n"
+
+#: src/poparser.ry:148
+msgid "Warning: obsolete msgid exists.\n"
+msgstr "Varování: existoval zastaralý (obsolete) msgid.\n"
diff --git a/vendor/gems/gettext-2.1.0/po/de/rgettext.po b/vendor/gems/gettext-2.1.0/po/de/rgettext.po
new file mode 100644
index 000000000..9d5551280
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/po/de/rgettext.po
@@ -0,0 +1,141 @@
+#
+# po-file for Ruby-GetText-Package
+#
+# Copyright (C) 2004-2008 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Patrick Lenz, 2006, 2007, 2008
+# Sasa Ebach, 2005
+# Sven Herzberg, 2005
+# Detlef Reichl, 2004
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 2.1.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-11-08 22:43+0900\n"
+"PO-Revision-Date: 2008-07-13 10:00W. Europe Standard Time\n"
+"Last-Translator: Patrick Lenz <patrick at limited-overload.de>\n"
+"Language-Team: German\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: lib/gettext/tools/rmsgmerge.rb:402
+msgid "Usage: %s def.po ref.pot [-o output.pot]"
+msgstr "Verwendung: %s def.po ref.pot [-o ausgabe.mo]"
+
+#: lib/gettext/tools/rmsgmerge.rb:405
+msgid ""
+"Merges two Uniforum style .po files together. The def.po file is an existing "
+"PO file with translations. The ref.pot file is the last created PO file with "
+"up-to-date source references. ref.pot is generally created by rgettext."
+msgstr ""
+"Vereint zwei .po Dateien im Uniform Stil miteinander. Die Datei def.po "
+"existiert bereits und enthält Übersetzungen. Die Datei ref.pot ist die "
+"zuletzt erstellte Datei mit aktuellen Quellenreferenzen. ref.pot wird in "
+"aller Regel durch rgettext erstellt"
+
+#: lib/gettext/tools/rmsgmerge.rb:407 lib/gettext/tools/rgettext.rb:149
+#: lib/gettext/tools/rmsgfmt.rb:50
+msgid "Specific options:"
+msgstr "Spezifische Optionen:"
+
+#: lib/gettext/tools/rmsgmerge.rb:409 lib/gettext/tools/rgettext.rb:151
+#: lib/gettext/tools/rmsgfmt.rb:52
+msgid "write output to specified file"
+msgstr "Schreibe Ausgabe in die angegebene Datei"
+
+#: lib/gettext/tools/rmsgmerge.rb:420 lib/gettext/tools/rgettext.rb:168
+#: lib/gettext/tools/rmsgfmt.rb:56
+msgid "display version information and exit"
+msgstr "Zeige Versionsinformationen und beende."
+
+#: lib/gettext/tools/rmsgmerge.rb:446
+msgid "definition po is not given."
+msgstr "Definitions .po ist nicht angegeben."
+
+#: lib/gettext/tools/rmsgmerge.rb:448
+msgid "reference pot is not given."
+msgstr "Referenz .po ist nicht angegeben."
+
+#: lib/gettext/tools/parser/glade.rb:73
+msgid "`%{file}' is not glade-2.0 format."
+msgstr "`%{file}' liegt nicht im Glade-2.0-Format vor."
+
+#: lib/gettext/tools/rgettext.rb:40
+msgid "'%{klass}' is ignored."
+msgstr "'%{klass}' wird ignoriert."
+
+#: lib/gettext/tools/rgettext.rb:134
+msgid "Error parsing %{path}"
+msgstr ""
+
+#: lib/gettext/tools/rgettext.rb:145
+msgid "Usage: %s input.rb [-r parser.rb] [-o output.pot]"
+msgstr "Verwendung: %s eingabe.po [-r parser.rb] [-o ausgabe.mo]"
+
+#: lib/gettext/tools/rgettext.rb:147
+msgid "Extract translatable strings from given input files."
+msgstr ""
+"Extrahiere die übersetzbaren Zeichenketten aus den angegebenen "
+"Eingabedateien."
+
+#: lib/gettext/tools/rgettext.rb:155
+msgid "File '%s' already exists."
+msgstr "Die Datei »%s« existierte bereits."
+
+#: lib/gettext/tools/rgettext.rb:160
+msgid "require the library before executing rgettext"
+msgstr "Bitte zunächst die Library einbinden bevor rgettext ausgeführt wird"
+
+#: lib/gettext/tools/rgettext.rb:164
+msgid "run in debugging mode"
+msgstr "Ausführung im Debug-Modus"
+
+#: lib/gettext/tools/rgettext.rb:192 lib/gettext/tools/rmsgfmt.rb:29
+msgid "no input files"
+msgstr "Keine Eingabedateien"
+
+#: lib/gettext/tools/rmsgfmt.rb:46
+msgid "Usage: %s input.po [-o output.mo]"
+msgstr "Verwendung: %s eingabe.po [-o ausgabe.mo]"
+
+#: lib/gettext/tools/rmsgfmt.rb:48
+msgid "Generate binary message catalog from textual translation description."
+msgstr ""
+"Erstelle binären Meldungskatalog aus schriftlicher Übersetzungsbeschreibung."
+
+#: lib/gettext/tools.rb:68
+msgid "Failed to merge with %{defpo}"
+msgstr "Zusammenführung mit %{defpo} fehlgeschlagen"
+
+#: lib/gettext/tools.rb:69
+msgid "New .pot was copied to %{failed_filename}"
+msgstr "Die neue .pot Datei wurde nach %{failed_filename} kopiert"
+
+#: lib/gettext/tools.rb:70
+msgid "Check these po/pot-files. It may have syntax errors or something wrong."
+msgstr ""
+"Überprüfe diese po/pot Dateien. Sie enthalten syntaktische Fehler oder "
+"andere Probleme."
+
+#: lib/gettext/tools.rb:173
+msgid ""
+"`%{cmd}' can not be found. \n"
+"Install GNU Gettext then set PATH or MSGMERGE_PATH correctly."
+msgstr ""
+
+#: lib/gettext/runtime/textdomain_manager.rb:147
+msgid "3rd parmeter is wrong: value = %{number}"
+msgstr "Der 3. Parameter ist ungültig: value = %{number}"
+
+#: src/poparser.ry:38 src/poparser.ry:55
+msgid "Warning: fuzzy message was ignored.\n"
+msgstr "Warnung: 'fuzzy'-Zeichenkette wurde ignoriert.\n"
+
+#: src/poparser.ry:148
+msgid "Warning: obsolete msgid exists.\n"
+msgstr "Warnung: Veraltete msgid enthalten.\n"
diff --git a/vendor/gems/gettext-2.1.0/po/el/rgettext.po b/vendor/gems/gettext-2.1.0/po/el/rgettext.po
new file mode 100644
index 000000000..43ffd9cd9
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/po/el/rgettext.po
@@ -0,0 +1,132 @@
+# a po-file for Ruby-GetText-Package
+#
+# Copyright (C) 2001-2008 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# damphyr <damphyr@gmx.net>, 2006-2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 2.1.0\n"
+"POT-Creation-Date: 2009-11-08 22:43+0900\n"
+"PO-Revision-Date: 2006-01-06 19:50+0100\n"
+"Last-Translator: damphyr <damphyr@gmx.net>\n"
+"Language-Team: Greek\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: lib/gettext/tools/rmsgmerge.rb:402
+msgid "Usage: %s def.po ref.pot [-o output.pot]"
+msgstr "Χρήση: %s def.po ref.pot [-o output.pot]"
+
+#: lib/gettext/tools/rmsgmerge.rb:405
+msgid ""
+"Merges two Uniforum style .po files together. The def.po file is an existing "
+"PO file with translations. The ref.pot file is the last created PO file with "
+"up-to-date source references. ref.pot is generally created by rgettext."
+msgstr ""
+"Συγχωνεύει δύο αρχεία Uniforum .po. Το αρχείο def.po είναι ένα υπάρχον "
+"αρχείο PO με τις μεταφράσεις. Το αρχείο ref.pot είναι το τελευταίο αρχείο "
+"αναφοράς που κατασκευάστηκε και έχει ενημερωμένες αναφορές κώδικα. Το ref."
+"pot κατασκευάζεται γενικά από το rgettext"
+
+#: lib/gettext/tools/rmsgmerge.rb:407 lib/gettext/tools/rgettext.rb:149
+#: lib/gettext/tools/rmsgfmt.rb:50
+msgid "Specific options:"
+msgstr "Ειδικές παράμετροι:"
+
+#: lib/gettext/tools/rmsgmerge.rb:409 lib/gettext/tools/rgettext.rb:151
+#: lib/gettext/tools/rmsgfmt.rb:52
+msgid "write output to specified file"
+msgstr "εγγραφή στο καθορισμένο αρχείο"
+
+#: lib/gettext/tools/rmsgmerge.rb:420 lib/gettext/tools/rgettext.rb:168
+#: lib/gettext/tools/rmsgfmt.rb:56
+msgid "display version information and exit"
+msgstr "πληροφορίες έκδοσης και έξοδος"
+
+#: lib/gettext/tools/rmsgmerge.rb:446
+msgid "definition po is not given."
+msgstr "το αρχείο ορισμών .po δε δόθηκε."
+
+#: lib/gettext/tools/rmsgmerge.rb:448
+msgid "reference pot is not given."
+msgstr "το αρχείο αναφοράς .pot δε δόθηκε."
+
+#: lib/gettext/tools/parser/glade.rb:73
+msgid "`%{file}' is not glade-2.0 format."
+msgstr "το `%{file}' δεν είναι σε μορφή glade-2.0."
+
+#: lib/gettext/tools/rgettext.rb:40
+msgid "'%{klass}' is ignored."
+msgstr "το %{klass}' θα αγνοηθεί."
+
+#: lib/gettext/tools/rgettext.rb:134
+msgid "Error parsing %{path}"
+msgstr ""
+
+#: lib/gettext/tools/rgettext.rb:145
+msgid "Usage: %s input.rb [-r parser.rb] [-o output.pot]"
+msgstr "Χρήση: %s input.rb [-r parser.rb] [-o output.pot]"
+
+#: lib/gettext/tools/rgettext.rb:147
+msgid "Extract translatable strings from given input files."
+msgstr "Εξαγωγή μεταφράσεων από αρχεία εισόδου."
+
+#: lib/gettext/tools/rgettext.rb:155
+msgid "File '%s' already exists."
+msgstr "Το αρχείο '%s' προϋπάρχει."
+
+#: lib/gettext/tools/rgettext.rb:160
+msgid "require the library before executing rgettext"
+msgstr ""
+"Κάντε χρήση της βιβλιοθήκης (require) πριν από την εκτέλεση του rgettext"
+
+#: lib/gettext/tools/rgettext.rb:164
+msgid "run in debugging mode"
+msgstr "εκτέλεση σε debugging mode"
+
+#: lib/gettext/tools/rgettext.rb:192 lib/gettext/tools/rmsgfmt.rb:29
+msgid "no input files"
+msgstr "που είναι τα αρχεία εισόδου ρε;"
+
+#: lib/gettext/tools/rmsgfmt.rb:46
+msgid "Usage: %s input.po [-o output.mo]"
+msgstr "Χρήση: %s input.po [-o output.mo]"
+
+#: lib/gettext/tools/rmsgfmt.rb:48
+msgid "Generate binary message catalog from textual translation description."
+msgstr "Δημιουργία καταλόγου μυνημάτων από τη μετάφραση"
+
+#: lib/gettext/tools.rb:68
+msgid "Failed to merge with %{defpo}"
+msgstr "Αποτυχία συγχώνευσης με %{defpo}"
+
+#: lib/gettext/tools.rb:69
+msgid "New .pot was copied to %{failed_filename}"
+msgstr "Ελέγξτε το καινούργιο .pot στο %{failed_filename}"
+
+#: lib/gettext/tools.rb:70
+msgid "Check these po/pot-files. It may have syntax errors or something wrong."
+msgstr "Ελέγξτε τα αρχεία .po/.pot. Μπορεί να υπάρχουν συντακτικά λάθη"
+
+#: lib/gettext/tools.rb:173
+msgid ""
+"`%{cmd}' can not be found. \n"
+"Install GNU Gettext then set PATH or MSGMERGE_PATH correctly."
+msgstr ""
+
+#: lib/gettext/runtime/textdomain_manager.rb:147
+msgid "3rd parmeter is wrong: value = %{number}"
+msgstr "Η τρίτη παράμετρος είναι λανθασμένη: value = %{number}"
+
+#: src/poparser.ry:38 src/poparser.ry:55
+msgid "Warning: fuzzy message was ignored.\n"
+msgstr "Προειδοποίηση: Ασαφές μύνημα αγνοήθηκε.\n"
+
+#: src/poparser.ry:148
+msgid "Warning: obsolete msgid exists.\n"
+msgstr "Προειδοποίηση: ύπαρξη ξεπερασμένου msgid.\n"
diff --git a/vendor/gems/gettext-2.1.0/po/eo/rgettext.po b/vendor/gems/gettext-2.1.0/po/eo/rgettext.po
new file mode 100644
index 000000000..6815a522a
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/po/eo/rgettext.po
@@ -0,0 +1,133 @@
+#
+# a po-file for Ruby-GetText-Package
+#
+# Copyright (C) 2004-2008 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Malte Milatz <malte@gmx-topmail.de>, 2006-2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 2.1.0\n"
+"POT-Creation-Date: 2009-11-08 22:43+0900\n"
+"PO-Revision-Date: 2008-07-13 10:16+0200\n"
+"Last-Translator: Malte Milatz\n"
+"Language-Team: Esperanto\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: lib/gettext/tools/rmsgmerge.rb:402
+msgid "Usage: %s def.po ref.pot [-o output.pot]"
+msgstr "Uzmaniero: %s def.po ref.pot [ -o el.pot ]"
+
+#: lib/gettext/tools/rmsgmerge.rb:405
+msgid ""
+"Merges two Uniforum style .po files together. The def.po file is an existing "
+"PO file with translations. The ref.pot file is the last created PO file with "
+"up-to-date source references. ref.pot is generally created by rgettext."
+msgstr ""
+"Kunfandos du po-dosierojn `Uniforum'-formatitajn. def.po jam enhavu "
+"tradukojn; ref.pot estu aktuale kreita el la fontkodo per rgettext."
+
+#: lib/gettext/tools/rmsgmerge.rb:407 lib/gettext/tools/rgettext.rb:149
+#: lib/gettext/tools/rmsgfmt.rb:50
+msgid "Specific options:"
+msgstr "Specifaj opcioj:"
+
+#: lib/gettext/tools/rmsgmerge.rb:409 lib/gettext/tools/rgettext.rb:151
+#: lib/gettext/tools/rmsgfmt.rb:52
+msgid "write output to specified file"
+msgstr "skribos la produkton en la indikitan dosieron"
+
+#: lib/gettext/tools/rmsgmerge.rb:420 lib/gettext/tools/rgettext.rb:168
+#: lib/gettext/tools/rmsgfmt.rb:56
+msgid "display version information and exit"
+msgstr "montros versi-informon"
+
+#: lib/gettext/tools/rmsgmerge.rb:446
+msgid "definition po is not given."
+msgstr "ne ricevis po-dosieron."
+
+#: lib/gettext/tools/rmsgmerge.rb:448
+msgid "reference pot is not given."
+msgstr "ne ricevis referencan pot-dosieron."
+
+#: lib/gettext/tools/parser/glade.rb:73
+msgid "`%{file}' is not glade-2.0 format."
+msgstr "`%{file}' ne konformas al la formato de glade-2.0."
+
+#: lib/gettext/tools/rgettext.rb:40
+msgid "'%{klass}' is ignored."
+msgstr "ignoras '%{klass}'."
+
+#: lib/gettext/tools/rgettext.rb:134
+msgid "Error parsing %{path}"
+msgstr ""
+
+#: lib/gettext/tools/rgettext.rb:145
+msgid "Usage: %s input.rb [-r parser.rb] [-o output.pot]"
+msgstr "Uzmaniero: %s en.rb [ -r analiz.rb ] [ -o el.pot ]"
+
+#: lib/gettext/tools/rgettext.rb:147
+msgid "Extract translatable strings from given input files."
+msgstr "Arigos tradukeblajn frazojn el donitaj dosieroj."
+
+#: lib/gettext/tools/rgettext.rb:155
+msgid "File '%s' already exists."
+msgstr "Dosiero '%s' jam ekzistas."
+
+# TODO: This translation looks somehow unrelated... What did I do that day?
+#: lib/gettext/tools/rgettext.rb:160
+msgid "require the library before executing rgettext"
+msgstr "uzos indikitan opcianalizilon"
+
+#: lib/gettext/tools/rgettext.rb:164
+msgid "run in debugging mode"
+msgstr "sencimiga modo"
+
+#: lib/gettext/tools/rgettext.rb:192 lib/gettext/tools/rmsgfmt.rb:29
+msgid "no input files"
+msgstr "neniu dosiero donita"
+
+#: lib/gettext/tools/rmsgfmt.rb:46
+msgid "Usage: %s input.po [-o output.mo]"
+msgstr "Uzmaniero: %s en.po [ -o el.mo ]"
+
+#: lib/gettext/tools/rmsgfmt.rb:48
+msgid "Generate binary message catalog from textual translation description."
+msgstr "Generu porkomputilan mesaĝaron el la traduktekstoj."
+
+#: lib/gettext/tools.rb:68
+msgid "Failed to merge with %{defpo}"
+msgstr "Kunfando kun %{defpo} fiaskis"
+
+#: lib/gettext/tools.rb:69
+msgid "New .pot was copied to %{failed_filename}"
+msgstr "Nova pot-dosiero kopiiĝis al %{failed_filename}"
+
+#: lib/gettext/tools.rb:70
+msgid "Check these po/pot-files. It may have syntax errors or something wrong."
+msgstr ""
+"Kontrolu jenajn po/pot-dosierojn. Estas eble sintaksaj eraroj en ili, aŭ io."
+
+#: lib/gettext/tools.rb:173
+msgid ""
+"`%{cmd}' can not be found. \n"
+"Install GNU Gettext then set PATH or MSGMERGE_PATH correctly."
+msgstr ""
+
+# TODO: Should this be "parameter"?
+#: lib/gettext/runtime/textdomain_manager.rb:147
+msgid "3rd parmeter is wrong: value = %{number}"
+msgstr "Malĝusta tria parametro: valoro = %{number}"
+
+#: src/poparser.ry:38 src/poparser.ry:55
+msgid "Warning: fuzzy message was ignored.\n"
+msgstr "Averto: ignoras senfunkcian frazon.\n"
+
+#: src/poparser.ry:148
+msgid "Warning: obsolete msgid exists.\n"
+msgstr "Averto: msgid arkaika.\n"
diff --git a/vendor/gems/gettext-2.1.0/po/es/rgettext.po b/vendor/gems/gettext-2.1.0/po/es/rgettext.po
new file mode 100644
index 000000000..3e4f883fe
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/po/es/rgettext.po
@@ -0,0 +1,134 @@
+#
+# po-file for Ruby-GetText-Package
+#
+# Copyright (C) 2004-2008 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# David Espada <davinci at escomposlinux.org>, 2004-2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 2.1.0\n"
+"POT-Creation-Date: 2009-11-08 22:43+0900\n"
+"PO-Revision-Date: 2005-04-24 14:54+0100\n"
+"Last-Translator: David Espada <davinci at escomposlinux.org>\n"
+"Language-Team: Spanish\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: lib/gettext/tools/rmsgmerge.rb:402
+msgid "Usage: %s def.po ref.pot [-o output.pot]"
+msgstr "Uso: %s def.po ref.pot [-o salida.pot]"
+
+#: lib/gettext/tools/rmsgmerge.rb:405
+msgid ""
+"Merges two Uniforum style .po files together. The def.po file is an existing "
+"PO file with translations. The ref.pot file is the last created PO file with "
+"up-to-date source references. ref.pot is generally created by rgettext."
+msgstr ""
+"Combina dos ficheros .po de estilo Uniforum juntos. El fichero def.po es un "
+"fichero PO existente con traducciones. El fichero ref.pot es el último "
+"fichero PO con referencias actualizadas. ref.pot generalmente es creado por "
+"rgettext."
+
+#: lib/gettext/tools/rmsgmerge.rb:407 lib/gettext/tools/rgettext.rb:149
+#: lib/gettext/tools/rmsgfmt.rb:50
+msgid "Specific options:"
+msgstr "Opciones específicas:"
+
+#: lib/gettext/tools/rmsgmerge.rb:409 lib/gettext/tools/rgettext.rb:151
+#: lib/gettext/tools/rmsgfmt.rb:52
+msgid "write output to specified file"
+msgstr "escribir salida en fichero especificado"
+
+#: lib/gettext/tools/rmsgmerge.rb:420 lib/gettext/tools/rgettext.rb:168
+#: lib/gettext/tools/rmsgfmt.rb:56
+msgid "display version information and exit"
+msgstr "mostrar información de versión y salir"
+
+#: lib/gettext/tools/rmsgmerge.rb:446
+msgid "definition po is not given."
+msgstr "no se ha dado definición po"
+
+#: lib/gettext/tools/rmsgmerge.rb:448
+msgid "reference pot is not given."
+msgstr "no se ha dado referencia pot"
+
+#: lib/gettext/tools/parser/glade.rb:73
+msgid "`%{file}' is not glade-2.0 format."
+msgstr "`%{file}' no tiene formato glade-2.0."
+
+#: lib/gettext/tools/rgettext.rb:40
+msgid "'%{klass}' is ignored."
+msgstr "'%{klass}' ignorado"
+
+#: lib/gettext/tools/rgettext.rb:134
+msgid "Error parsing %{path}"
+msgstr ""
+
+#: lib/gettext/tools/rgettext.rb:145
+msgid "Usage: %s input.rb [-r parser.rb] [-o output.pot]"
+msgstr "Uso: %s entrada.po [-r parser.rb] [-o salida.pot]"
+
+#: lib/gettext/tools/rgettext.rb:147
+msgid "Extract translatable strings from given input files."
+msgstr "Extraer las cadenas traducibles de los ficheros de entrada."
+
+#: lib/gettext/tools/rgettext.rb:155
+msgid "File '%s' already exists."
+msgstr "El fichero '%s' ya ha existido"
+
+#: lib/gettext/tools/rgettext.rb:160
+msgid "require the library before executing rgettext"
+msgstr "importe la biblioteca antes de ejecutar rgettext"
+
+#: lib/gettext/tools/rgettext.rb:164
+msgid "run in debugging mode"
+msgstr "ejecute en modo depuración"
+
+#: lib/gettext/tools/rgettext.rb:192 lib/gettext/tools/rmsgfmt.rb:29
+msgid "no input files"
+msgstr "no hay ficheros de entrada"
+
+#: lib/gettext/tools/rmsgfmt.rb:46
+msgid "Usage: %s input.po [-o output.mo]"
+msgstr "Uso: %s entrada.po [-o salida.mo]"
+
+#: lib/gettext/tools/rmsgfmt.rb:48
+msgid "Generate binary message catalog from textual translation description."
+msgstr ""
+"Generar catálogo de mensajes binarios a partir de la descripción textual de "
+"la traducción."
+
+#: lib/gettext/tools.rb:68
+msgid "Failed to merge with %{defpo}"
+msgstr "Fallo al unir con %{defpo}"
+
+#: lib/gettext/tools.rb:69
+msgid "New .pot was copied to %{failed_filename}"
+msgstr "Nuevo .pot se ha copiado en %{failed_filename}"
+
+#: lib/gettext/tools.rb:70
+msgid "Check these po/pot-files. It may have syntax errors or something wrong."
+msgstr "Chequee estos ficheros po/pot. Pueden tener errores"
+
+#: lib/gettext/tools.rb:173
+msgid ""
+"`%{cmd}' can not be found. \n"
+"Install GNU Gettext then set PATH or MSGMERGE_PATH correctly."
+msgstr ""
+
+#: lib/gettext/runtime/textdomain_manager.rb:147
+msgid "3rd parmeter is wrong: value = %{number}"
+msgstr "tercer parámetro es erróneo: valor = %{número}"
+
+#: src/poparser.ry:38 src/poparser.ry:55
+msgid "Warning: fuzzy message was ignored.\n"
+msgstr "Aviso: se ha ignorado mensaje ambigüo.\n"
+
+#: src/poparser.ry:148
+msgid "Warning: obsolete msgid exists.\n"
+msgstr "Aviso: existe msgid obsoleto.\n"
diff --git a/vendor/gems/gettext-2.1.0/po/et/rgettext.po b/vendor/gems/gettext-2.1.0/po/et/rgettext.po
new file mode 100644
index 000000000..8c8e63c14
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/po/et/rgettext.po
@@ -0,0 +1,131 @@
+#
+# a po-file for Ruby-GetText-Package
+#
+# Copyright (C) 2004-2006 Masao Mutoh
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Erkki Eilonen <erkki at itech.ee>, 2008.
+# Tõlked on väga toored ning vajavad kindlasti ülevaatamist.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 2.1.0\n"
+"POT-Creation-Date: 2009-11-08 22:43+0900\n"
+"PO-Revision-Date: 2008-08-10 14:00+0300\n"
+"Last-Translator: Erkki Eilonen <erkki at itech.ee>\n"
+"Language-Team: Estonian\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+
+#: lib/gettext/tools/rmsgmerge.rb:402
+msgid "Usage: %s def.po ref.pot [-o output.pot]"
+msgstr "Kasutus: %s def.po ref.pot [-o output.pot]"
+
+#: lib/gettext/tools/rmsgmerge.rb:405
+msgid ""
+"Merges two Uniforum style .po files together. The def.po file is an existing "
+"PO file with translations. The ref.pot file is the last created PO file with "
+"up-to-date source references. ref.pot is generally created by rgettext."
+msgstr ""
+"Liidab kokku kaks ühesugust .po faili. def.po on fail olemasolevate "
+"tõlgetega.ref.pot on fail viimaste uuendatud tõlgetega.ref.pot on üldjuhul "
+"loodud rgettext poolt."
+
+#: lib/gettext/tools/rmsgmerge.rb:407 lib/gettext/tools/rgettext.rb:149
+#: lib/gettext/tools/rmsgfmt.rb:50
+msgid "Specific options:"
+msgstr "Seaded:"
+
+#: lib/gettext/tools/rmsgmerge.rb:409 lib/gettext/tools/rgettext.rb:151
+#: lib/gettext/tools/rmsgfmt.rb:52
+msgid "write output to specified file"
+msgstr "kirjuta väljund antud faili"
+
+#: lib/gettext/tools/rmsgmerge.rb:420 lib/gettext/tools/rgettext.rb:168
+#: lib/gettext/tools/rmsgfmt.rb:56
+msgid "display version information and exit"
+msgstr "esita versiooni info ja välju"
+
+#: lib/gettext/tools/rmsgmerge.rb:446
+msgid "definition po is not given."
+msgstr "def.po puudub"
+
+#: lib/gettext/tools/rmsgmerge.rb:448
+msgid "reference pot is not given."
+msgstr "ref.pot puudub"
+
+#: lib/gettext/tools/parser/glade.rb:73
+msgid "`%{file}' is not glade-2.0 format."
+msgstr "`%{file}' ei ole glade-2.0 formaadis."
+
+#: lib/gettext/tools/rgettext.rb:40
+msgid "'%{klass}' is ignored."
+msgstr "'%{klass}' jäeti vahele."
+
+#: lib/gettext/tools/rgettext.rb:134
+msgid "Error parsing %{path}"
+msgstr ""
+
+#: lib/gettext/tools/rgettext.rb:145
+msgid "Usage: %s input.rb [-r parser.rb] [-o output.pot]"
+msgstr "Kasutus: %s input.rb [-r parser.rb] [-o output.pot]"
+
+#: lib/gettext/tools/rgettext.rb:147
+msgid "Extract translatable strings from given input files."
+msgstr "Eraldab sisendfailidest tõlgitavad osad."
+
+#: lib/gettext/tools/rgettext.rb:155
+msgid "File '%s' already exists."
+msgstr "Fail '%s' on juba olemas."
+
+#: lib/gettext/tools/rgettext.rb:160
+msgid "require the library before executing rgettext"
+msgstr "lae moodul enne rgettext jooksutamist"
+
+#: lib/gettext/tools/rgettext.rb:164
+msgid "run in debugging mode"
+msgstr "silumisrežiimis töötamine"
+
+#: lib/gettext/tools/rgettext.rb:192 lib/gettext/tools/rmsgfmt.rb:29
+msgid "no input files"
+msgstr "sisendfailid puuduvad"
+
+#: lib/gettext/tools/rmsgfmt.rb:46
+msgid "Usage: %s input.po [-o output.mo]"
+msgstr "Kasutus: %s input.po [-o output.mo]"
+
+#: lib/gettext/tools/rmsgfmt.rb:48
+msgid "Generate binary message catalog from textual translation description."
+msgstr "Genereerib tekstikujul tõlkest binaarkujul nimekirja."
+
+#: lib/gettext/tools.rb:68
+msgid "Failed to merge with %{defpo}"
+msgstr "Liitmine %{defpo}-ga ebaõnnestus"
+
+#: lib/gettext/tools.rb:69
+msgid "New .pot was copied to %{failed_filename}"
+msgstr "Uus .pot kopeeriti %{failed_filename}"
+
+#: lib/gettext/tools.rb:70
+msgid "Check these po/pot-files. It may have syntax errors or something wrong."
+msgstr "Kontrolli need po/pot failid üle, nendes võib olla vigu."
+
+#: lib/gettext/tools.rb:173
+msgid ""
+"`%{cmd}' can not be found. \n"
+"Install GNU Gettext then set PATH or MSGMERGE_PATH correctly."
+msgstr ""
+
+#: lib/gettext/runtime/textdomain_manager.rb:147
+msgid "3rd parmeter is wrong: value = %{number}"
+msgstr "Kolmas parameeter on vale: %{number}"
+
+#: src/poparser.ry:38 src/poparser.ry:55
+msgid "Warning: fuzzy message was ignored.\n"
+msgstr "Hoiatus: hägune tõlke osa jäeti vahele.\n"
+
+#: src/poparser.ry:148
+msgid "Warning: obsolete msgid exists.\n"
+msgstr "Hoiatus: kasutusel on üleliigne msgid. \n"
diff --git a/vendor/gems/gettext-2.1.0/po/fr/rgettext.po b/vendor/gems/gettext-2.1.0/po/fr/rgettext.po
new file mode 100644
index 000000000..4265511e7
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/po/fr/rgettext.po
@@ -0,0 +1,137 @@
+#
+# po-file for Ruby-GetText-Package
+#
+# Copyright (C) 2004-2008 Masao Mutoh
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Vincent Isambart <vincent.isambart at gmail.com>, 2008
+# David Sulc <davidsulc at gmail.com>, 2007
+# Laurent Sansonetti <lrz at chopine.be>, 2004-2006
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 2.1.0\n"
+"POT-Creation-Date: 2009-11-08 22:43+0900\n"
+"PO-Revision-Date: 2004-11-04 09:22+0100\n"
+"Last-Translator: Vincent Isambart\n"
+"Language-Team: French\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n == 1 ? 0 : 1;\n"
+
+#: lib/gettext/tools/rmsgmerge.rb:402
+msgid "Usage: %s def.po ref.pot [-o output.pot]"
+msgstr "Usage: %s def.po ref.pot [-o output.mo]"
+
+#: lib/gettext/tools/rmsgmerge.rb:405
+msgid ""
+"Merges two Uniforum style .po files together. The def.po file is an existing "
+"PO file with translations. The ref.pot file is the last created PO file with "
+"up-to-date source references. ref.pot is generally created by rgettext."
+msgstr ""
+"Fusionne deux fichiers .po de style Uniforum. Le fichier def.po est un "
+"fichier de traduction original. Le fichier ref.pot est le dernier fichier "
+"de traduction créé avec les sources mise-à-jour. ref.pot est en général "
+"généré par rgettext."
+
+#: lib/gettext/tools/rmsgmerge.rb:407 lib/gettext/tools/rgettext.rb:149
+#: lib/gettext/tools/rmsgfmt.rb:50
+msgid "Specific options:"
+msgstr "Options spécifiques:"
+
+#: lib/gettext/tools/rmsgmerge.rb:409 lib/gettext/tools/rgettext.rb:151
+#: lib/gettext/tools/rmsgfmt.rb:52
+msgid "write output to specified file"
+msgstr "écrit la sortie dans le fichier spécifié"
+
+#: lib/gettext/tools/rmsgmerge.rb:420 lib/gettext/tools/rgettext.rb:168
+#: lib/gettext/tools/rmsgfmt.rb:56
+msgid "display version information and exit"
+msgstr "affiche la version du programme et sort"
+
+#: lib/gettext/tools/rmsgmerge.rb:446
+msgid "definition po is not given."
+msgstr "la définition po n'est pas donnée."
+
+#: lib/gettext/tools/rmsgmerge.rb:448
+msgid "reference pot is not given."
+msgstr "la référence po n'est pas donnée."
+
+#: lib/gettext/tools/parser/glade.rb:73
+msgid "`%{file}' is not glade-2.0 format."
+msgstr "`%{file}' n'est pas au format glade-2.0."
+
+#: lib/gettext/tools/rgettext.rb:40
+msgid "'%{klass}' is ignored."
+msgstr "'%{klass}' est ignorée."
+
+#: lib/gettext/tools/rgettext.rb:134
+msgid "Error parsing %{path}"
+msgstr ""
+
+#: lib/gettext/tools/rgettext.rb:145
+msgid "Usage: %s input.rb [-r parser.rb] [-o output.pot]"
+msgstr "Usage: %s input.rb [-r parser.rb] [-o output.pot]"
+
+#: lib/gettext/tools/rgettext.rb:147
+msgid "Extract translatable strings from given input files."
+msgstr "Extrait les chaînes localisables des fichiers spécifiés en entrée."
+
+#: lib/gettext/tools/rgettext.rb:155
+msgid "File '%s' already exists."
+msgstr "Le fichier '%s' existe déjà."
+
+#: lib/gettext/tools/rgettext.rb:160
+msgid "require the library before executing rgettext"
+msgstr "requérir (require) la librairie avant d'exécuter rgettext"
+
+#: lib/gettext/tools/rgettext.rb:164
+msgid "run in debugging mode"
+msgstr "exécuter en mode de deboggage"
+
+#: lib/gettext/tools/rgettext.rb:192 lib/gettext/tools/rmsgfmt.rb:29
+msgid "no input files"
+msgstr "pas de fichiers d'entrée"
+
+#: lib/gettext/tools/rmsgfmt.rb:46
+msgid "Usage: %s input.po [-o output.mo]"
+msgstr "Usage: %s input.po [-o output.mo]"
+
+#: lib/gettext/tools/rmsgfmt.rb:48
+msgid "Generate binary message catalog from textual translation description."
+msgstr ""
+"Génère un catalogue binaire de messages à partir de la description textuelle "
+"d'une traduction."
+
+#: lib/gettext/tools.rb:68
+msgid "Failed to merge with %{defpo}"
+msgstr "Echec de fusion avec %{defpo}"
+
+#: lib/gettext/tools.rb:69
+msgid "New .pot was copied to %{failed_filename}"
+msgstr "Le nouveau fichier .pot a été copié sous le nom %{failed_filename}"
+
+#: lib/gettext/tools.rb:70
+msgid "Check these po/pot-files. It may have syntax errors or something wrong."
+msgstr ""
+"Veuillez vérifier ces fichiers po/pot. Ils semblent avoir des erreurs de "
+"syntaxe ou quelque chose d'incorrect."
+
+#: lib/gettext/tools.rb:173
+msgid ""
+"`%{cmd}' can not be found. \n"
+"Install GNU Gettext then set PATH or MSGMERGE_PATH correctly."
+msgstr ""
+
+#: lib/gettext/runtime/textdomain_manager.rb:147
+msgid "3rd parmeter is wrong: value = %{number}"
+msgstr "Le 3ème paramètre (de valeur %{number}) est incorrect."
+
+#: src/poparser.ry:38 src/poparser.ry:55
+msgid "Warning: fuzzy message was ignored.\n"
+msgstr "Avertissement: message flou ignoré.\n"
+
+#: src/poparser.ry:148
+msgid "Warning: obsolete msgid exists.\n"
+msgstr "Avertissement: un msgid obsolète a été trouvé.\n"
diff --git a/vendor/gems/gettext-2.1.0/po/hr/rgettext.po b/vendor/gems/gettext-2.1.0/po/hr/rgettext.po
new file mode 100644
index 000000000..b44b9dfca
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/po/hr/rgettext.po
@@ -0,0 +1,135 @@
+# translation of rgettext.po to Croatian
+#
+# a po-file for Ruby-GetText-Package
+#
+# Copyright (C) 2004-2006 Masao Mutoh
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Sanjin Sehic <saserr@gmail.com>, 2007.
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 2.1.0\n"
+"POT-Creation-Date: 2009-11-08 22:43+0900\n"
+"PO-Revision-Date: 2007-03-17 16:19+0100\n"
+"Last-Translator: Sanjin Sehic <saserr@gmail.com>\n"
+"Language-Team: Croatian <saserr@gmail.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%"
+"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#: lib/gettext/tools/rmsgmerge.rb:402
+msgid "Usage: %s def.po ref.pot [-o output.pot]"
+msgstr "Korištenje: %s def.po ref.pot [-o izlaz.pot]"
+
+#: lib/gettext/tools/rmsgmerge.rb:405
+msgid ""
+"Merges two Uniforum style .po files together. The def.po file is an existing "
+"PO file with translations. The ref.pot file is the last created PO file with "
+"up-to-date source references. ref.pot is generally created by rgettext."
+msgstr ""
+"Spaja dvije Uniforum style .po datoteke skupa. def.po datoteka je već "
+"postojeća PO datoteka sa prevodima. ref.pot je zadnja napravljena PO "
+"datoteka sa najnovijim referencama koda. ref.pot je najčešće napravljen sa "
+"rgettext."
+
+#: lib/gettext/tools/rmsgmerge.rb:407 lib/gettext/tools/rgettext.rb:149
+#: lib/gettext/tools/rmsgfmt.rb:50
+msgid "Specific options:"
+msgstr "Specifične opcije:"
+
+#: lib/gettext/tools/rmsgmerge.rb:409 lib/gettext/tools/rgettext.rb:151
+#: lib/gettext/tools/rmsgfmt.rb:52
+msgid "write output to specified file"
+msgstr "zapiši izlaz u specifičnu datoteku"
+
+#: lib/gettext/tools/rmsgmerge.rb:420 lib/gettext/tools/rgettext.rb:168
+#: lib/gettext/tools/rmsgfmt.rb:56
+msgid "display version information and exit"
+msgstr "prikaži informaciju o verziji i završi"
+
+#: lib/gettext/tools/rmsgmerge.rb:446
+msgid "definition po is not given."
+msgstr "definicijski po nije dat."
+
+#: lib/gettext/tools/rmsgmerge.rb:448
+msgid "reference pot is not given."
+msgstr "referencni po nije dat."
+
+#: lib/gettext/tools/parser/glade.rb:73
+msgid "`%{file}' is not glade-2.0 format."
+msgstr "'%{file}' nije glade-2.0 format."
+
+#: lib/gettext/tools/rgettext.rb:40
+msgid "'%{klass}' is ignored."
+msgstr "%{klass} je ignorisan."
+
+#: lib/gettext/tools/rgettext.rb:134
+msgid "Error parsing %{path}"
+msgstr ""
+
+#: lib/gettext/tools/rgettext.rb:145
+msgid "Usage: %s input.rb [-r parser.rb] [-o output.pot]"
+msgstr "Korištenje: %s ulaz.rb [-r parser.rb] [-o izlaz.pot]"
+
+#: lib/gettext/tools/rgettext.rb:147
+msgid "Extract translatable strings from given input files."
+msgstr "Izvadi niske za prevođenje iz date ulazne datoteke."
+
+#: lib/gettext/tools/rgettext.rb:155
+msgid "File '%s' already exists."
+msgstr "Datoteka '%s' već postoji."
+
+#: lib/gettext/tools/rgettext.rb:160
+msgid "require the library before executing rgettext"
+msgstr "zahtjevaj biblioteku prije izvršavanja rgettext-a"
+
+#: lib/gettext/tools/rgettext.rb:164
+msgid "run in debugging mode"
+msgstr "pokreni u modu za nalaženje grešaka"
+
+#: lib/gettext/tools/rgettext.rb:192 lib/gettext/tools/rmsgfmt.rb:29
+msgid "no input files"
+msgstr "nema ulaznih datoteka"
+
+#: lib/gettext/tools/rmsgfmt.rb:46
+msgid "Usage: %s input.po [-o output.mo]"
+msgstr "Korištenje: %s ulaz.po [-o izlaz.mo]"
+
+#: lib/gettext/tools/rmsgfmt.rb:48
+msgid "Generate binary message catalog from textual translation description."
+msgstr "Generiši binarni katalog poruka iz tekstualnog opisa prevoda"
+
+#: lib/gettext/tools.rb:68
+#, fuzzy
+msgid "Failed to merge with %{defpo}"
+msgstr "Spajanje sa %{defpo} nije uspjelo - nastavljam dalje!"
+
+#: lib/gettext/tools.rb:69
+#, fuzzy
+msgid "New .pot was copied to %{failed_filename}"
+msgstr "Molim da provjerite novi .pot u %{failed_filename}"
+
+#: lib/gettext/tools.rb:70
+msgid "Check these po/pot-files. It may have syntax errors or something wrong."
+msgstr ""
+
+#: lib/gettext/tools.rb:173
+msgid ""
+"`%{cmd}' can not be found. \n"
+"Install GNU Gettext then set PATH or MSGMERGE_PATH correctly."
+msgstr ""
+
+#: lib/gettext/runtime/textdomain_manager.rb:147
+msgid "3rd parmeter is wrong: value = %{number}"
+msgstr ""
+
+#: src/poparser.ry:38 src/poparser.ry:55
+msgid "Warning: fuzzy message was ignored.\n"
+msgstr "Upozorenje: čudna poruka je ignorisana.\n"
+
+#: src/poparser.ry:148
+msgid "Warning: obsolete msgid exists.\n"
+msgstr "Upozorenje: nekorišteni msgid postoji.\n"
diff --git a/vendor/gems/gettext-2.1.0/po/hu/rgettext.po b/vendor/gems/gettext-2.1.0/po/hu/rgettext.po
new file mode 100644
index 000000000..c53e64b76
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/po/hu/rgettext.po
@@ -0,0 +1,133 @@
+#
+# a po-file for Ruby-GetText-Package
+#
+# Copyright (C) 2004-2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Tamás Tompa <tompata at gmail.com>, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 2.1.0\n"
+"POT-Creation-Date: 2009-11-08 22:43+0900\n"
+"PO-Revision-Date: 2008-07-15 09:00+0900\n"
+"Last-Translator: Tamás Tompa <tompata at gmail.com>\n"
+"Language-Team: Hungarian\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: lib/gettext/tools/rmsgmerge.rb:402
+msgid "Usage: %s def.po ref.pot [-o output.pot]"
+msgstr "Használat: %s def.po ref.pot [-o output.pot]"
+
+#: lib/gettext/tools/rmsgmerge.rb:405
+msgid ""
+"Merges two Uniforum style .po files together. The def.po file is an existing "
+"PO file with translations. The ref.pot file is the last created PO file with "
+"up-to-date source references. ref.pot is generally created by rgettext."
+msgstr ""
+"Két Uniforum formátumú .po fájl összefésülése. A def.po fájl egy létező PO "
+"fájl fordításokkal. A ref.pot fájl az utolsó PO fájl frissített "
+"hivatkozásokkal (rgettext által generált)."
+
+#: lib/gettext/tools/rmsgmerge.rb:407 lib/gettext/tools/rgettext.rb:149
+#: lib/gettext/tools/rmsgfmt.rb:50
+msgid "Specific options:"
+msgstr "Speciális opciók:"
+
+#: lib/gettext/tools/rmsgmerge.rb:409 lib/gettext/tools/rgettext.rb:151
+#: lib/gettext/tools/rmsgfmt.rb:52
+msgid "write output to specified file"
+msgstr "kimenet írása egy megadott fájlba"
+
+#: lib/gettext/tools/rmsgmerge.rb:420 lib/gettext/tools/rgettext.rb:168
+#: lib/gettext/tools/rmsgfmt.rb:56
+msgid "display version information and exit"
+msgstr "verzió információ kiírása és kilépés"
+
+#: lib/gettext/tools/rmsgmerge.rb:446
+msgid "definition po is not given."
+msgstr "a definiciós (def) PO nincs megadva"
+
+#: lib/gettext/tools/rmsgmerge.rb:448
+msgid "reference pot is not given."
+msgstr "a referencia (ref) PO nincs megadva"
+
+#: lib/gettext/tools/parser/glade.rb:73
+msgid "`%{file}' is not glade-2.0 format."
+msgstr "`%{file}' nem glade-2.0 formátumú."
+
+#: lib/gettext/tools/rgettext.rb:40
+msgid "'%{klass}' is ignored."
+msgstr "'%{klass}' figyelmen kívül hagyva."
+
+#: lib/gettext/tools/rgettext.rb:134
+msgid "Error parsing %{path}"
+msgstr ""
+
+#: lib/gettext/tools/rgettext.rb:145
+msgid "Usage: %s input.rb [-r parser.rb] [-o output.pot]"
+msgstr "Használat: %s input.rb [-r parser.rb] [-o output.pot]"
+
+#: lib/gettext/tools/rgettext.rb:147
+msgid "Extract translatable strings from given input files."
+msgstr "Összegyűjti a lefordítandó szövegeket a megadott fájlokból."
+
+#: lib/gettext/tools/rgettext.rb:155
+msgid "File '%s' already exists."
+msgstr "A fájl '%s' már létezik."
+
+#: lib/gettext/tools/rgettext.rb:160
+msgid "require the library before executing rgettext"
+msgstr "szükséges library az rgettext futtatása előtt"
+
+#: lib/gettext/tools/rgettext.rb:164
+msgid "run in debugging mode"
+msgstr "debug módban futtatás"
+
+#: lib/gettext/tools/rgettext.rb:192 lib/gettext/tools/rmsgfmt.rb:29
+msgid "no input files"
+msgstr "Nincs feldolgozandó fájl"
+
+#: lib/gettext/tools/rmsgfmt.rb:46
+msgid "Usage: %s input.po [-o output.mo]"
+msgstr "Használat: %s input.po [-o output.mo]"
+
+#: lib/gettext/tools/rmsgfmt.rb:48
+msgid "Generate binary message catalog from textual translation description."
+msgstr "Bináris üzenetállományt generál a lefordított szöveges állományokból."
+
+#: lib/gettext/tools.rb:68
+msgid "Failed to merge with %{defpo}"
+msgstr "Sikertelen összefésülés a %{defpo} állománnyal"
+
+#: lib/gettext/tools.rb:69
+msgid "New .pot was copied to %{failed_filename}"
+msgstr "Ellenőrizd az új .pot fájlt %{failed_filename}"
+
+#: lib/gettext/tools.rb:70
+msgid "Check these po/pot-files. It may have syntax errors or something wrong."
+msgstr ""
+"Ellenőrizd a következő po/pot fájlokat, talán szintaktikai hibák találhatóak "
+"bennük."
+
+#: lib/gettext/tools.rb:173
+msgid ""
+"`%{cmd}' can not be found. \n"
+"Install GNU Gettext then set PATH or MSGMERGE_PATH correctly."
+msgstr ""
+
+#: lib/gettext/runtime/textdomain_manager.rb:147
+msgid "3rd parmeter is wrong: value = %{number}"
+msgstr "A harmadik paraméter hibás: value = %{number}"
+
+#: src/poparser.ry:38 src/poparser.ry:55
+msgid "Warning: fuzzy message was ignored.\n"
+msgstr "Figyelem: fuzzy üzenet figyelmen kívül hagyva."
+
+#: src/poparser.ry:148
+msgid "Warning: obsolete msgid exists.\n"
+msgstr "Figyelem: Elavult msgid található."
diff --git a/vendor/gems/gettext-2.1.0/po/it/rgettext.po b/vendor/gems/gettext-2.1.0/po/it/rgettext.po
new file mode 100644
index 000000000..6f5302fe5
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/po/it/rgettext.po
@@ -0,0 +1,134 @@
+#
+# po-file for Ruby-GetText-Package
+#
+# Copyright (C) 2004,2005 Masao Mutoh
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Gabriele Renzi <surrender_it at yahoo.it>, 2005.
+# Marco Lazzeri <marco.lazzeri at gmail.com>, 2006.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 2.1.0\n"
+"POT-Creation-Date: 2009-11-08 22:43+0900\n"
+"PO-Revision-Date: 2005-12-17 14:33+0900\n"
+"Last-Translator: Marco Lazzeri <marco.lazzeri at gmail.com>\n"
+"Language-Team: Italian\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: lib/gettext/tools/rmsgmerge.rb:402
+msgid "Usage: %s def.po ref.pot [-o output.pot]"
+msgstr "Utilizzo: %s input.po [-o output.pot]"
+
+#: lib/gettext/tools/rmsgmerge.rb:405
+msgid ""
+"Merges two Uniforum style .po files together. The def.po file is an existing "
+"PO file with translations. The ref.pot file is the last created PO file with "
+"up-to-date source references. ref.pot is generally created by rgettext."
+msgstr ""
+"Unisce due file .po di tipo Uniforum. Il file def.po è un file PO esistente "
+"e contenente le traduzioni. Il file ref.pot contiene i riferimenti "
+"aggiornati al sorgente e viene creato per ultimo (solitamente viene generato "
+"da rgettext)."
+
+#: lib/gettext/tools/rmsgmerge.rb:407 lib/gettext/tools/rgettext.rb:149
+#: lib/gettext/tools/rmsgfmt.rb:50
+msgid "Specific options:"
+msgstr "Opzioni:"
+
+#: lib/gettext/tools/rmsgmerge.rb:409 lib/gettext/tools/rgettext.rb:151
+#: lib/gettext/tools/rmsgfmt.rb:52
+msgid "write output to specified file"
+msgstr "scrivi l'output sul file specificato"
+
+#: lib/gettext/tools/rmsgmerge.rb:420 lib/gettext/tools/rgettext.rb:168
+#: lib/gettext/tools/rmsgfmt.rb:56
+msgid "display version information and exit"
+msgstr "mostra la versione ed esce"
+
+#: lib/gettext/tools/rmsgmerge.rb:446
+msgid "definition po is not given."
+msgstr "il file .po con la definizione non è stato specificato."
+
+#: lib/gettext/tools/rmsgmerge.rb:448
+msgid "reference pot is not given."
+msgstr "il file .pot di riferimento non è stato specificato."
+
+#: lib/gettext/tools/parser/glade.rb:73
+msgid "`%{file}' is not glade-2.0 format."
+msgstr "`%{file}' non è nel formato glade-2.0."
+
+#: lib/gettext/tools/rgettext.rb:40
+msgid "'%{klass}' is ignored."
+msgstr "'%{klass}' ignorata."
+
+#: lib/gettext/tools/rgettext.rb:134
+msgid "Error parsing %{path}"
+msgstr ""
+
+#: lib/gettext/tools/rgettext.rb:145
+msgid "Usage: %s input.rb [-r parser.rb] [-o output.pot]"
+msgstr "Utilizzo: %s input.rb [-r parser.rb] [-o output.pot]"
+
+#: lib/gettext/tools/rgettext.rb:147
+msgid "Extract translatable strings from given input files."
+msgstr "Estrae le stringhe traducibili dai file in input."
+
+#: lib/gettext/tools/rgettext.rb:155
+msgid "File '%s' already exists."
+msgstr "Il file '%s' è già esistente."
+
+#: lib/gettext/tools/rgettext.rb:160
+msgid "require the library before executing rgettext"
+msgstr ""
+
+#: lib/gettext/tools/rgettext.rb:164
+msgid "run in debugging mode"
+msgstr ""
+
+#: lib/gettext/tools/rgettext.rb:192 lib/gettext/tools/rmsgfmt.rb:29
+msgid "no input files"
+msgstr "nessun file specificato in input"
+
+#: lib/gettext/tools/rmsgfmt.rb:46
+msgid "Usage: %s input.po [-o output.mo]"
+msgstr "Utilizzo: %s input.po [-o output.mo]"
+
+#: lib/gettext/tools/rmsgfmt.rb:48
+msgid "Generate binary message catalog from textual translation description."
+msgstr ""
+"Genera un catalogo binario dei messaggi dalla descrizione testuale della "
+"traduzione."
+
+#: lib/gettext/tools.rb:68
+msgid "Failed to merge with %{defpo}"
+msgstr ""
+
+#: lib/gettext/tools.rb:69
+msgid "New .pot was copied to %{failed_filename}"
+msgstr ""
+
+#: lib/gettext/tools.rb:70
+msgid "Check these po/pot-files. It may have syntax errors or something wrong."
+msgstr ""
+
+#: lib/gettext/tools.rb:173
+msgid ""
+"`%{cmd}' can not be found. \n"
+"Install GNU Gettext then set PATH or MSGMERGE_PATH correctly."
+msgstr ""
+
+#: lib/gettext/runtime/textdomain_manager.rb:147
+msgid "3rd parmeter is wrong: value = %{number}"
+msgstr ""
+
+#: src/poparser.ry:38 src/poparser.ry:55
+msgid "Warning: fuzzy message was ignored.\n"
+msgstr ""
+
+#: src/poparser.ry:148
+msgid "Warning: obsolete msgid exists.\n"
+msgstr ""
diff --git a/vendor/gems/gettext-2.1.0/po/ja/rgettext.po b/vendor/gems/gettext-2.1.0/po/ja/rgettext.po
new file mode 100644
index 000000000..222498aae
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/po/ja/rgettext.po
@@ -0,0 +1,134 @@
+#
+# po-file for Ruby-GetText-Package
+#
+# Copyright (C) 2002-2008 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Masao Mutoh, 2004-2008
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 2.1.0\n"
+"POT-Creation-Date: 2009-11-08 22:43+0900\n"
+"PO-Revision-Date: 2008-07-13 14:05:30+0900\n"
+"Last-Translator: Masao Mutoh\n"
+"Language-Team: Japanese\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: lib/gettext/tools/rmsgmerge.rb:402
+msgid "Usage: %s def.po ref.pot [-o output.pot]"
+msgstr "使い方: %s def.po ref.pot [-o output.pot]"
+
+#: lib/gettext/tools/rmsgmerge.rb:405
+msgid ""
+"Merges two Uniforum style .po files together. The def.po file is an existing "
+"PO file with translations. The ref.pot file is the last created PO file with "
+"up-to-date source references. ref.pot is generally created by rgettext."
+msgstr ""
+"2つの.poファイルをマージします。def.poファイルはすでにある翻訳済みのPOファイ"
+"ルです。ref.potは最新のPOファイルです。ref.potは通常rgettextから新たに生成さ"
+"れたものです。"
+
+#: lib/gettext/tools/rmsgmerge.rb:407 lib/gettext/tools/rgettext.rb:149
+#: lib/gettext/tools/rmsgfmt.rb:50
+msgid "Specific options:"
+msgstr "オプション:"
+
+#: lib/gettext/tools/rmsgmerge.rb:409 lib/gettext/tools/rgettext.rb:151
+#: lib/gettext/tools/rmsgfmt.rb:52
+msgid "write output to specified file"
+msgstr "出力ファイルを指定します"
+
+#: lib/gettext/tools/rmsgmerge.rb:420 lib/gettext/tools/rgettext.rb:168
+#: lib/gettext/tools/rmsgfmt.rb:56
+msgid "display version information and exit"
+msgstr "バージョンを表示します"
+
+#: lib/gettext/tools/rmsgmerge.rb:446
+msgid "definition po is not given."
+msgstr "翻訳済みの.poファイルが与えられていません。"
+
+#: lib/gettext/tools/rmsgmerge.rb:448
+msgid "reference pot is not given."
+msgstr "最新の.potファイルが与えられていません。"
+
+#: lib/gettext/tools/parser/glade.rb:73
+msgid "`%{file}' is not glade-2.0 format."
+msgstr "`%{file}'はglade-2.0フォーマットではありません。"
+
+#: lib/gettext/tools/rgettext.rb:40
+msgid "'%{klass}' is ignored."
+msgstr "'%{klass}' は無視されました。"
+
+#: lib/gettext/tools/rgettext.rb:134
+msgid "Error parsing %{path}"
+msgstr "%{path}をパース時にエラーが発生しました。"
+
+#: lib/gettext/tools/rgettext.rb:145
+msgid "Usage: %s input.rb [-r parser.rb] [-o output.pot]"
+msgstr "使い方: %s input.rb [-r parser.rb] [-o output.pot]"
+
+#: lib/gettext/tools/rgettext.rb:147
+msgid "Extract translatable strings from given input files."
+msgstr "翻訳可能な文字列を入力ファイルから抜き出します。"
+
+#: lib/gettext/tools/rgettext.rb:155
+msgid "File '%s' already exists."
+msgstr "ファイル '%s' はすでに存在します。"
+
+#: lib/gettext/tools/rgettext.rb:160
+msgid "require the library before executing rgettext"
+msgstr "rgettextを実行する前に指定したライブラリを読み込みます。"
+
+#: lib/gettext/tools/rgettext.rb:164
+msgid "run in debugging mode"
+msgstr "デバッグモードで実行する"
+
+#: lib/gettext/tools/rgettext.rb:192 lib/gettext/tools/rmsgfmt.rb:29
+msgid "no input files"
+msgstr "入力ファイルがありません"
+
+#: lib/gettext/tools/rmsgfmt.rb:46
+msgid "Usage: %s input.po [-o output.mo]"
+msgstr "使い方: %s input.po [-o output.mo]"
+
+#: lib/gettext/tools/rmsgfmt.rb:48
+msgid "Generate binary message catalog from textual translation description."
+msgstr ""
+"poファイルからバイナリのメッセージカタログファイル(moファイル)を生成します。"
+
+#: lib/gettext/tools.rb:68
+msgid "Failed to merge with %{defpo}"
+msgstr "%{defpo}のマージに失敗しました。"
+
+#: lib/gettext/tools.rb:69
+msgid "New .pot was copied to %{failed_filename}"
+msgstr "新しい.potファイルを%{failed_filename}にコピーしました。"
+
+#: lib/gettext/tools.rb:70
+msgid "Check these po/pot-files. It may have syntax errors or something wrong."
+msgstr ""
+"文法エラーやその他のエラーがありそうです。po/potファイルをチェックしてくださ"
+"い。"
+
+#: lib/gettext/tools.rb:173
+msgid ""
+"`%{cmd}' can not be found. \n"
+"Install GNU Gettext then set PATH or MSGMERGE_PATH correctly."
+msgstr "`%{cmd}'は見つかりませんでした。\n"
+"GNU Gettextをインストールし、環境変数PATHかMSGMERGE_PATHを正しく設定してください。"
+
+#: lib/gettext/runtime/textdomain_manager.rb:147
+msgid "3rd parmeter is wrong: value = %{number}"
+msgstr "3つめのパラメータが不正です。: value = %{number}"
+
+#: src/poparser.ry:38 src/poparser.ry:55
+msgid "Warning: fuzzy message was ignored.\n"
+msgstr "Warning: fuzzyメッセージは無視されました。\n"
+
+#: src/poparser.ry:148
+msgid "Warning: obsolete msgid exists.\n"
+msgstr "Warning: 使用されていないメッセージ(obsolete msgid)が存在します。\n"
diff --git a/vendor/gems/gettext-2.1.0/po/ko/rgettext.po b/vendor/gems/gettext-2.1.0/po/ko/rgettext.po
new file mode 100644
index 000000000..20d86eeae
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/po/ko/rgettext.po
@@ -0,0 +1,133 @@
+#
+# po-file for Ruby-GetText-Package
+#
+# Copyright (C) 2002-2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Gyoung-Yoon Noh <nohmad at gmail.com>, 2006.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 2.1.0\n"
+"POT-Creation-Date: 2009-11-08 22:43+0900\n"
+"PO-Revision-Date: 2006-07-11 02:46+0900\n"
+"Last-Translator: Gyoung-Yoon Noh <nohmad at gmail.com>\n"
+"Language-Team: Korean\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#: lib/gettext/tools/rmsgmerge.rb:402
+msgid "Usage: %s def.po ref.pot [-o output.pot]"
+msgstr "사용법: %s def.po ref.pot [-o output.pot]"
+
+#: lib/gettext/tools/rmsgmerge.rb:405
+msgid ""
+"Merges two Uniforum style .po files together. The def.po file is an existing "
+"PO file with translations. The ref.pot file is the last created PO file with "
+"up-to-date source references. ref.pot is generally created by rgettext."
+msgstr ""
+"2개의 유니포럼 스타일의 .po 파일들을 서로 병합합니다. def.po 파일은 번역을 가"
+"진 PO 파일입니다. ref.pot 파일은 최신 소스를 참조하는 가장 최근에 생성된 PO "
+"파일입니다. ref.pot는 일반적으로 rgettext에 의해 생성됩니다."
+
+#: lib/gettext/tools/rmsgmerge.rb:407 lib/gettext/tools/rgettext.rb:149
+#: lib/gettext/tools/rmsgfmt.rb:50
+msgid "Specific options:"
+msgstr "특별한 옵션들:"
+
+#: lib/gettext/tools/rmsgmerge.rb:409 lib/gettext/tools/rgettext.rb:151
+#: lib/gettext/tools/rmsgfmt.rb:52
+msgid "write output to specified file"
+msgstr "지정한 파일에 출력 내용을 저장합니다"
+
+#: lib/gettext/tools/rmsgmerge.rb:420 lib/gettext/tools/rgettext.rb:168
+#: lib/gettext/tools/rmsgfmt.rb:56
+msgid "display version information and exit"
+msgstr "버전 정보를 표시하고 빠져나갑니다"
+
+#: lib/gettext/tools/rmsgmerge.rb:446
+msgid "definition po is not given."
+msgstr "po 정의가 주어지지 않았습니다."
+
+#: lib/gettext/tools/rmsgmerge.rb:448
+msgid "reference pot is not given."
+msgstr "참조할 pot 파일이 주어지지 않았습니다."
+
+#: lib/gettext/tools/parser/glade.rb:73
+msgid "`%{file}' is not glade-2.0 format."
+msgstr "`%{file}'이(가) glade-2.0 형식에 맞지 않습니다."
+
+#: lib/gettext/tools/rgettext.rb:40
+msgid "'%{klass}' is ignored."
+msgstr "'%{klass}'이(가) 무시되었습니다."
+
+#: lib/gettext/tools/rgettext.rb:134
+msgid "Error parsing %{path}"
+msgstr ""
+
+#: lib/gettext/tools/rgettext.rb:145
+msgid "Usage: %s input.rb [-r parser.rb] [-o output.pot]"
+msgstr "사용법: %s input.rb [-r parser.rb] [-o output.pot]"
+
+#: lib/gettext/tools/rgettext.rb:147
+msgid "Extract translatable strings from given input files."
+msgstr "주어진 입력 파일들로부터 번역할 수 있는 문자열을 추출합니다."
+
+#: lib/gettext/tools/rgettext.rb:155
+msgid "File '%s' already exists."
+msgstr "'%s' 파일이 이미 존재합니다."
+
+#: lib/gettext/tools/rgettext.rb:160
+msgid "require the library before executing rgettext"
+msgstr "rgettext를 실행하려면 라이브러리가 필요합니다"
+
+#: lib/gettext/tools/rgettext.rb:164
+msgid "run in debugging mode"
+msgstr "디버깅 모드에서 실행합니다"
+
+#: lib/gettext/tools/rgettext.rb:192 lib/gettext/tools/rmsgfmt.rb:29
+msgid "no input files"
+msgstr "입력 파일이 없습니다"
+
+#: lib/gettext/tools/rmsgfmt.rb:46
+msgid "Usage: %s input.po [-o output.mo]"
+msgstr "사용법: %s input.po [-o output.mo]"
+
+#: lib/gettext/tools/rmsgfmt.rb:48
+msgid "Generate binary message catalog from textual translation description."
+msgstr "텍스트로 된 번역 설명으로부터 이진 메시지 목록을 생성합니다."
+
+#: lib/gettext/tools.rb:68
+#, fuzzy
+msgid "Failed to merge with %{defpo}"
+msgstr "%{defpo} 파일을 병합하는 데 실패했습니다 - 그냥 넘어갑니다!"
+
+#: lib/gettext/tools.rb:69
+#, fuzzy
+msgid "New .pot was copied to %{failed_filename}"
+msgstr "%{failed_filename}에서 새로운 .pot 파일을 확인하십시요"
+
+#: lib/gettext/tools.rb:70
+msgid "Check these po/pot-files. It may have syntax errors or something wrong."
+msgstr ""
+
+#: lib/gettext/tools.rb:173
+msgid ""
+"`%{cmd}' can not be found. \n"
+"Install GNU Gettext then set PATH or MSGMERGE_PATH correctly."
+msgstr ""
+
+#: lib/gettext/runtime/textdomain_manager.rb:147
+msgid "3rd parmeter is wrong: value = %{number}"
+msgstr ""
+
+#: src/poparser.ry:38 src/poparser.ry:55
+msgid "Warning: fuzzy message was ignored.\n"
+msgstr "경고: 퍼지 메시지가 무시되었습니다.\n"
+
+#: src/poparser.ry:148
+msgid "Warning: obsolete msgid exists.\n"
+msgstr "경고: 사용되지 않은 msgid가 존재합니다.\n"
diff --git a/vendor/gems/gettext-2.1.0/po/lv/rgettext.po b/vendor/gems/gettext-2.1.0/po/lv/rgettext.po
new file mode 100644
index 000000000..8ac981fed
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/po/lv/rgettext.po
@@ -0,0 +1,134 @@
+#
+# a po-file for Ruby-GetText-Package
+#
+# Copyright (C) 2004-2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Aivars Akots, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 2.1.0\n"
+"POT-Creation-Date: 2009-11-08 22:43+0900\n"
+"PO-Revision-Date: 2008-07-22 12:26+0200\n"
+"Last-Translator: Aivars Akots <aivars.akots@gmail.com>\n"
+"Language-Team: Latvian\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : "
+"2);\n"
+
+#: lib/gettext/tools/rmsgmerge.rb:402
+msgid "Usage: %s def.po ref.pot [-o output.pot]"
+msgstr "Lietošana: %s def.po ref.pot [-o output.pot]"
+
+#: lib/gettext/tools/rmsgmerge.rb:405
+msgid ""
+"Merges two Uniforum style .po files together. The def.po file is an existing "
+"PO file with translations. The ref.pot file is the last created PO file with "
+"up-to-date source references. ref.pot is generally created by rgettext."
+msgstr ""
+"Apvieno divas \"Uniforum\" stila .po datnes. Def.po datne ir eksistējoša PO "
+"datne ar tulkojumiem. Ref.pot datne ir pēdējā izveidotā PO datne ar "
+"atjauninātām izejas faila atsaucēm. Ref.pot ir datni veido rgettext."
+
+#: lib/gettext/tools/rmsgmerge.rb:407 lib/gettext/tools/rgettext.rb:149
+#: lib/gettext/tools/rmsgfmt.rb:50
+msgid "Specific options:"
+msgstr "Īpaši uzstādījumi:"
+
+#: lib/gettext/tools/rmsgmerge.rb:409 lib/gettext/tools/rgettext.rb:151
+#: lib/gettext/tools/rmsgfmt.rb:52
+msgid "write output to specified file"
+msgstr "ierakstīt izvadi norādītajā datnē"
+
+#: lib/gettext/tools/rmsgmerge.rb:420 lib/gettext/tools/rgettext.rb:168
+#: lib/gettext/tools/rmsgfmt.rb:56
+msgid "display version information and exit"
+msgstr "parādīt versiju un iziet"
+
+#: lib/gettext/tools/rmsgmerge.rb:446
+msgid "definition po is not given."
+msgstr "po definīcija nav padota."
+
+#: lib/gettext/tools/rmsgmerge.rb:448
+msgid "reference pot is not given."
+msgstr "pot atsauce nav padota."
+
+#: lib/gettext/tools/parser/glade.rb:73
+msgid "`%{file}' is not glade-2.0 format."
+msgstr "`%{file}' nav glade-2.0 formātā."
+
+#: lib/gettext/tools/rgettext.rb:40
+msgid "'%{klass}' is ignored."
+msgstr "'%{klass}' ir ignorēta."
+
+#: lib/gettext/tools/rgettext.rb:134
+msgid "Error parsing %{path}"
+msgstr ""
+
+#: lib/gettext/tools/rgettext.rb:145
+msgid "Usage: %s input.rb [-r parser.rb] [-o output.pot]"
+msgstr "Lietošana: %s input.rb [-r parser.rb] [-o output.pot]"
+
+#: lib/gettext/tools/rgettext.rb:147
+msgid "Extract translatable strings from given input files."
+msgstr "Iegūt tulkojamos tekstus no norādītajām ievades datnēm."
+
+#: lib/gettext/tools/rgettext.rb:155
+msgid "File '%s' already exists."
+msgstr "Datne '%s' jau eksistē."
+
+#: lib/gettext/tools/rgettext.rb:160
+msgid "require the library before executing rgettext"
+msgstr "izmanto \"require bibliotēka\" pirms izsauc rgettext"
+
+#: lib/gettext/tools/rgettext.rb:164
+msgid "run in debugging mode"
+msgstr "izpildīt atkļūdošanas veidā"
+
+#: lib/gettext/tools/rgettext.rb:192 lib/gettext/tools/rmsgfmt.rb:29
+msgid "no input files"
+msgstr "nav ievades datņu"
+
+#: lib/gettext/tools/rmsgfmt.rb:46
+msgid "Usage: %s input.po [-o output.mo]"
+msgstr "Lietošana: %s ievades.po [-o izvades.mo]"
+
+#: lib/gettext/tools/rmsgfmt.rb:48
+msgid "Generate binary message catalog from textual translation description."
+msgstr "Ģenerēt bināro katalogu no tekstuālo tulkojumu apraksta."
+
+#: lib/gettext/tools.rb:68
+msgid "Failed to merge with %{defpo}"
+msgstr "Nesanāca apvienot ar %{defpo}"
+
+#: lib/gettext/tools.rb:69
+msgid "New .pot was copied to %{failed_filename}"
+msgstr "Jaunais .pot tika pārkopēts kā %{failed_filename}"
+
+#: lib/gettext/tools.rb:70
+msgid "Check these po/pot-files. It may have syntax errors or something wrong."
+msgstr ""
+"Pārbaudi šīs po/pot datnes. Tajās varētu būt sintakses kļūdas vai kas cits "
+"nogājis greizi."
+
+#: lib/gettext/tools.rb:173
+msgid ""
+"`%{cmd}' can not be found. \n"
+"Install GNU Gettext then set PATH or MSGMERGE_PATH correctly."
+msgstr ""
+
+#: lib/gettext/runtime/textdomain_manager.rb:147
+msgid "3rd parmeter is wrong: value = %{number}"
+msgstr "trešais parametrs ir kļūdains: vērtība = %{number}"
+
+#: src/poparser.ry:38 src/poparser.ry:55
+msgid "Warning: fuzzy message was ignored.\n"
+msgstr "Brīdinājums: ziņa tika ignorēta.\n"
+
+#: src/poparser.ry:148
+msgid "Warning: obsolete msgid exists.\n"
+msgstr "Brīdinājums: msgid eksistē.\n"
diff --git a/vendor/gems/gettext-2.1.0/po/nb/rgettext.po b/vendor/gems/gettext-2.1.0/po/nb/rgettext.po
new file mode 100644
index 000000000..900a78d8b
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/po/nb/rgettext.po
@@ -0,0 +1,135 @@
+# a po-file for Ruby-GetText-Package
+#
+# Copyright (C) 2004-2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Runar Ingebrigtsen <runar@mopo.no>, 2007, 2008.
+#
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 2.1.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-11-08 22:43+0900\n"
+"PO-Revision-Date: 2008-07-14 16:42+0200\n"
+"Last-Translator: Runar Ingebrigtsen <runar@mopo.no>\n"
+"Language-Team: Norwegian/Bokmaal <i18n-nb@lister.ping.uio.no>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: lib/gettext/tools/rmsgmerge.rb:402
+msgid "Usage: %s def.po ref.pot [-o output.pot]"
+msgstr "Bruk: %s def.po ref.pot [-o output.pot]"
+
+#: lib/gettext/tools/rmsgmerge.rb:405
+msgid ""
+"Merges two Uniforum style .po files together. The def.po file is an existing "
+"PO file with translations. The ref.pot file is the last created PO file with "
+"up-to-date source references. ref.pot is generally created by rgettext."
+msgstr ""
+"Slår sammen to po-filer av Uniforum-typen. def.po-filen er en eksisterendePO-"
+"fil med oversettelser. ref.po-filen er den sist opprettede PO-filen "
+"medoppdaterte kildereferanser. ref.pot er generelt opprettet av rgettext."
+
+#: lib/gettext/tools/rmsgmerge.rb:407 lib/gettext/tools/rgettext.rb:149
+#: lib/gettext/tools/rmsgfmt.rb:50
+msgid "Specific options:"
+msgstr "Spesifikke alternativer:"
+
+#: lib/gettext/tools/rmsgmerge.rb:409 lib/gettext/tools/rgettext.rb:151
+#: lib/gettext/tools/rmsgfmt.rb:52
+msgid "write output to specified file"
+msgstr "skriv ut til spesifisert fil"
+
+#: lib/gettext/tools/rmsgmerge.rb:420 lib/gettext/tools/rgettext.rb:168
+#: lib/gettext/tools/rmsgfmt.rb:56
+msgid "display version information and exit"
+msgstr "vis versjonsinformasjon og avslutt"
+
+#: lib/gettext/tools/rmsgmerge.rb:446
+msgid "definition po is not given."
+msgstr "definisjons-po ikke angitt"
+
+#: lib/gettext/tools/rmsgmerge.rb:448
+msgid "reference pot is not given."
+msgstr "referanse-po ikke angitt"
+
+#: lib/gettext/tools/parser/glade.rb:73
+msgid "`%{file}' is not glade-2.0 format."
+msgstr "`%{file}' er ikke glade-2.0-formattert."
+
+#: lib/gettext/tools/rgettext.rb:40
+msgid "'%{klass}' is ignored."
+msgstr "'%{klass}' blir ignorert."
+
+#: lib/gettext/tools/rgettext.rb:134
+msgid "Error parsing %{path}"
+msgstr ""
+
+#: lib/gettext/tools/rgettext.rb:145
+msgid "Usage: %s input.rb [-r parser.rb] [-o output.pot]"
+msgstr "Bruk: %s input.rb [-r parser.rb] [-o output.pot]"
+
+#: lib/gettext/tools/rgettext.rb:147
+msgid "Extract translatable strings from given input files."
+msgstr "Trekk ut oversettbare tekststrenger fra angitte filer"
+
+#: lib/gettext/tools/rgettext.rb:155
+msgid "File '%s' already exists."
+msgstr "Filen '%s' eksisterer fra før"
+
+#: lib/gettext/tools/rgettext.rb:160
+msgid "require the library before executing rgettext"
+msgstr "krev biblioteket før du kjører rgettext"
+
+#: lib/gettext/tools/rgettext.rb:164
+msgid "run in debugging mode"
+msgstr "kjør i feilsøkingsmodus"
+
+#: lib/gettext/tools/rgettext.rb:192 lib/gettext/tools/rmsgfmt.rb:29
+msgid "no input files"
+msgstr "ingen angitte filer"
+
+#: lib/gettext/tools/rmsgfmt.rb:46
+msgid "Usage: %s input.po [-o output.mo]"
+msgstr "Bruk: %s input.po [-p output.mo]"
+
+#: lib/gettext/tools/rmsgfmt.rb:48
+msgid "Generate binary message catalog from textual translation description."
+msgstr ""
+"Opprett mappe for binære meldinger ut fra beskrivelse av oversettelsen."
+
+#: lib/gettext/tools.rb:68
+msgid "Failed to merge with %{defpo}"
+msgstr "Klarte ikke slå sammen med %{defpo}·-·hopper over!"
+
+#: lib/gettext/tools.rb:69
+msgid "New .pot was copied to %{failed_filename}"
+msgstr "Kontroller ny .pot i %{failed_filename}"
+
+#: lib/gettext/tools.rb:70
+msgid "Check these po/pot-files. It may have syntax errors or something wrong."
+msgstr ""
+"Kontroller disse po/pot-filene. Det kan være syntaks-feil eller noe annet "
+"galt."
+
+#: lib/gettext/tools.rb:173
+msgid ""
+"`%{cmd}' can not be found. \n"
+"Install GNU Gettext then set PATH or MSGMERGE_PATH correctly."
+msgstr ""
+
+#: lib/gettext/runtime/textdomain_manager.rb:147
+msgid "3rd parmeter is wrong: value = %{number}"
+msgstr "Tredje parameter er feil: verdi = %{number}"
+
+#: src/poparser.ry:38 src/poparser.ry:55
+msgid "Warning: fuzzy message was ignored.\n"
+msgstr "Advarsel: uferdig melding ble ignorert.\n"
+
+#: src/poparser.ry:148
+msgid "Warning: obsolete msgid exists.\n"
+msgstr "Advarsel: det fins utdaterte msgid.\n"
diff --git a/vendor/gems/gettext-2.1.0/po/nl/rgettext.po b/vendor/gems/gettext-2.1.0/po/nl/rgettext.po
new file mode 100644
index 000000000..d06094fa6
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/po/nl/rgettext.po
@@ -0,0 +1,134 @@
+#
+# a po-file for Ruby-GetText-Package
+#
+# Copyright (C) 2005,2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Menno Jonkers <ruby-gettext at jonkers.com>, 2005,2006.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 2.1.0\n"
+"POT-Creation-Date: 2009-11-08 22:43+0900\n"
+"PO-Revision-Date: 2006-12-10 15:03+0100\n"
+"Last-Translator: Menno Jonkers <ruby_gettext jonkers.com>\n"
+"Language-Team: Dutch <ruby_gettext@jonkers.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+
+#: lib/gettext/tools/rmsgmerge.rb:402
+msgid "Usage: %s def.po ref.pot [-o output.pot]"
+msgstr "Gebruik: %s def.po ref.pot [-o uitvoer.pot]"
+
+#: lib/gettext/tools/rmsgmerge.rb:405
+msgid ""
+"Merges two Uniforum style .po files together. The def.po file is an existing "
+"PO file with translations. The ref.pot file is the last created PO file with "
+"up-to-date source references. ref.pot is generally created by rgettext."
+msgstr ""
+"Voegt twee gelijksoortige .po-bestanden samen. Het def.po-bestand is een "
+"bestaand PO-bestand met vertalingen. Het ref.pot-bestand is het meest "
+"recente POT-bestand met actuele bronverwijzingen. ref.pot wordt over het "
+"algemeen aangemaakt door rgettext."
+
+#: lib/gettext/tools/rmsgmerge.rb:407 lib/gettext/tools/rgettext.rb:149
+#: lib/gettext/tools/rmsgfmt.rb:50
+msgid "Specific options:"
+msgstr "Specifieke opties:"
+
+#: lib/gettext/tools/rmsgmerge.rb:409 lib/gettext/tools/rgettext.rb:151
+#: lib/gettext/tools/rmsgfmt.rb:52
+msgid "write output to specified file"
+msgstr "schrijf uitvoer naar opgegeven bestand"
+
+#: lib/gettext/tools/rmsgmerge.rb:420 lib/gettext/tools/rgettext.rb:168
+#: lib/gettext/tools/rmsgfmt.rb:56
+msgid "display version information and exit"
+msgstr "toon versie-informatie en stop"
+
+#: lib/gettext/tools/rmsgmerge.rb:446
+msgid "definition po is not given."
+msgstr "definitie po is niet opgegeven."
+
+#: lib/gettext/tools/rmsgmerge.rb:448
+msgid "reference pot is not given."
+msgstr "referentie pot is niet opgegeven."
+
+#: lib/gettext/tools/parser/glade.rb:73
+msgid "`%{file}' is not glade-2.0 format."
+msgstr "`%{file}' is niet in glade-2.0 formaat."
+
+#: lib/gettext/tools/rgettext.rb:40
+msgid "'%{klass}' is ignored."
+msgstr "'%{klass}' is genegeerd."
+
+#: lib/gettext/tools/rgettext.rb:134
+msgid "Error parsing %{path}"
+msgstr ""
+
+#: lib/gettext/tools/rgettext.rb:145
+msgid "Usage: %s input.rb [-r parser.rb] [-o output.pot]"
+msgstr "Gebruik: %s invoer.rb [-r parser.rb] [-o uitvoer.pot]"
+
+#: lib/gettext/tools/rgettext.rb:147
+msgid "Extract translatable strings from given input files."
+msgstr "Haalt vertaalbare strings uit gegeven invoerbestanden."
+
+#: lib/gettext/tools/rgettext.rb:155
+msgid "File '%s' already exists."
+msgstr "Bestand '%s' bestond al."
+
+#: lib/gettext/tools/rgettext.rb:160
+msgid "require the library before executing rgettext"
+msgstr "vereis de bibliotheek voordat rgettext uitgevoerd wordt"
+
+#: lib/gettext/tools/rgettext.rb:164
+msgid "run in debugging mode"
+msgstr "draai in debug mode"
+
+#: lib/gettext/tools/rgettext.rb:192 lib/gettext/tools/rmsgfmt.rb:29
+msgid "no input files"
+msgstr "geen invoerbestanden"
+
+#: lib/gettext/tools/rmsgfmt.rb:46
+msgid "Usage: %s input.po [-o output.mo]"
+msgstr "Gebruik: %s invoer.po [-o uitvoer.mo]"
+
+#: lib/gettext/tools/rmsgfmt.rb:48
+msgid "Generate binary message catalog from textual translation description."
+msgstr "Genereer binaire berichtencatalogus uit vertalingen in tekstvorm."
+
+#: lib/gettext/tools.rb:68
+#, fuzzy
+msgid "Failed to merge with %{defpo}"
+msgstr "Samenvoegen met %{defpo} mislukt - overgeslagen!"
+
+#: lib/gettext/tools.rb:69
+#, fuzzy
+msgid "New .pot was copied to %{failed_filename}"
+msgstr "Controleer nieuwe .pot in %{failed_filename}"
+
+#: lib/gettext/tools.rb:70
+msgid "Check these po/pot-files. It may have syntax errors or something wrong."
+msgstr ""
+
+#: lib/gettext/tools.rb:173
+msgid ""
+"`%{cmd}' can not be found. \n"
+"Install GNU Gettext then set PATH or MSGMERGE_PATH correctly."
+msgstr ""
+
+#: lib/gettext/runtime/textdomain_manager.rb:147
+msgid "3rd parmeter is wrong: value = %{number}"
+msgstr ""
+
+#: src/poparser.ry:38 src/poparser.ry:55
+msgid "Warning: fuzzy message was ignored.\n"
+msgstr "Waarschuwing: fuzzy bericht is genegeerd.\n"
+
+#: src/poparser.ry:148
+msgid "Warning: obsolete msgid exists.\n"
+msgstr "Waarschuwing: overtollig msgid bestaat.\n"
diff --git a/vendor/gems/gettext-2.1.0/po/pt_BR/rgettext.po b/vendor/gems/gettext-2.1.0/po/pt_BR/rgettext.po
new file mode 100644
index 000000000..bebe07f74
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/po/pt_BR/rgettext.po
@@ -0,0 +1,136 @@
+#
+# po-file for Ruby-GetText-Package
+#
+# Copyright (C) 2004-2008 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Joao Pedrosa <joaopedrosa at gmail.com>, 2004-2006.
+# Antonio Terceiro <terceiro@softwarelivre.org>, 2008
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 2.1.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-11-08 22:43+0900\n"
+"PO-Revision-Date: 2008-07-14 09:47-0300\n"
+"Last-Translator: Antonio Terceiro <terceiro@softwarelivre.org>\n"
+"Language-Team: Portuguese(Brazil) <pt@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: lib/gettext/tools/rmsgmerge.rb:402
+msgid "Usage: %s def.po ref.pot [-o output.pot]"
+msgstr "Uso: %s def.po ref.pot [-o saída.pot]"
+
+#: lib/gettext/tools/rmsgmerge.rb:405
+msgid ""
+"Merges two Uniforum style .po files together. The def.po file is an existing "
+"PO file with translations. The ref.pot file is the last created PO file with "
+"up-to-date source references. ref.pot is generally created by rgettext."
+msgstr ""
+"Mescla dois arquivos .po de estilo Uniforum juntos. O arquivo def.po é um "
+"arquivo PO existente com traduções. O arquivo ref.pot é o último arquivo PO "
+"criado com referências de código atualizadas. Ref.pot é geralmente criado "
+"pelo rgettext."
+
+#: lib/gettext/tools/rmsgmerge.rb:407 lib/gettext/tools/rgettext.rb:149
+#: lib/gettext/tools/rmsgfmt.rb:50
+msgid "Specific options:"
+msgstr "Opções específicas:"
+
+#: lib/gettext/tools/rmsgmerge.rb:409 lib/gettext/tools/rgettext.rb:151
+#: lib/gettext/tools/rmsgfmt.rb:52
+msgid "write output to specified file"
+msgstr "escreve saída para o arquivo especificado"
+
+#: lib/gettext/tools/rmsgmerge.rb:420 lib/gettext/tools/rgettext.rb:168
+#: lib/gettext/tools/rmsgfmt.rb:56
+msgid "display version information and exit"
+msgstr "mostra informação de versão e sai"
+
+#: lib/gettext/tools/rmsgmerge.rb:446
+msgid "definition po is not given."
+msgstr "po de definição não foi fornecido"
+
+#: lib/gettext/tools/rmsgmerge.rb:448
+msgid "reference pot is not given."
+msgstr "pot de referência não foi fornecido"
+
+#: lib/gettext/tools/parser/glade.rb:73
+msgid "`%{file}' is not glade-2.0 format."
+msgstr "`%{file}' não é formato glade-2.0."
+
+#: lib/gettext/tools/rgettext.rb:40
+msgid "'%{klass}' is ignored."
+msgstr "'%{klass}' é ignorado."
+
+#: lib/gettext/tools/rgettext.rb:134
+msgid "Error parsing %{path}"
+msgstr ""
+
+#: lib/gettext/tools/rgettext.rb:145
+msgid "Usage: %s input.rb [-r parser.rb] [-o output.pot]"
+msgstr "Uso: %s entrada.rb [-r parser.rb] [-o saída.pot]"
+
+#: lib/gettext/tools/rgettext.rb:147
+msgid "Extract translatable strings from given input files."
+msgstr "Extrair strings traduzíveis de arquivos de entrada fornecidos."
+
+#: lib/gettext/tools/rgettext.rb:155
+msgid "File '%s' already exists."
+msgstr "O arquivo '%s' já existe."
+
+#: lib/gettext/tools/rgettext.rb:160
+msgid "require the library before executing rgettext"
+msgstr "carregue (require) a biblioteca antes de executar o rgettext"
+
+#: lib/gettext/tools/rgettext.rb:164
+msgid "run in debugging mode"
+msgstr "executar em mode de depuração"
+
+#: lib/gettext/tools/rgettext.rb:192 lib/gettext/tools/rmsgfmt.rb:29
+msgid "no input files"
+msgstr "nenhum arquivo de entrada"
+
+#: lib/gettext/tools/rmsgfmt.rb:46
+msgid "Usage: %s input.po [-o output.mo]"
+msgstr "Uso: %s entrada.po [-o saida.mo]"
+
+#: lib/gettext/tools/rmsgfmt.rb:48
+msgid "Generate binary message catalog from textual translation description."
+msgstr "Gerar catálogo de mensagem binária da descrição de tradução textual."
+
+#: lib/gettext/tools.rb:68
+msgid "Failed to merge with %{defpo}"
+msgstr "Falha na união com %{defpo}"
+
+#: lib/gettext/tools.rb:69
+msgid "New .pot was copied to %{failed_filename}"
+msgstr "O novo .pot foi copiado para %{failed_filename}"
+
+#: lib/gettext/tools.rb:70
+msgid "Check these po/pot-files. It may have syntax errors or something wrong."
+msgstr ""
+"Confira estes arquivos po/pot. Eles podem ter erros de sintaxe ou algo "
+"errado."
+
+#: lib/gettext/tools.rb:173
+msgid ""
+"`%{cmd}' can not be found. \n"
+"Install GNU Gettext then set PATH or MSGMERGE_PATH correctly."
+msgstr ""
+
+#: lib/gettext/runtime/textdomain_manager.rb:147
+msgid "3rd parmeter is wrong: value = %{number}"
+msgstr "O 3º parâmetro está errado: value = %{number}"
+
+#: src/poparser.ry:38 src/poparser.ry:55
+msgid "Warning: fuzzy message was ignored.\n"
+msgstr "Atenção: mensagem \"fuzzy\" foi ignorada.\n"
+
+#: src/poparser.ry:148
+msgid "Warning: obsolete msgid exists.\n"
+msgstr "Atenção: existe \"msgid\" obsoleto.\n"
diff --git a/vendor/gems/gettext-2.1.0/po/rgettext.pot b/vendor/gems/gettext-2.1.0/po/rgettext.pot
new file mode 100644
index 000000000..af5a2a367
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/po/rgettext.pot
@@ -0,0 +1,125 @@
+#
+# a po-file for Ruby-GetText-Package
+#
+# Copyright (C) 2004-2006 Masao Mutoh
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 2.1.0\n"
+"POT-Creation-Date: 2009-11-08 22:43+0900\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME\n"
+"Language-Team: LANGUAGE\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
+
+#: lib/gettext/tools/rmsgmerge.rb:402
+msgid "Usage: %s def.po ref.pot [-o output.pot]"
+msgstr ""
+
+#: lib/gettext/tools/rmsgmerge.rb:405
+msgid ""
+"Merges two Uniforum style .po files together. The def.po file is an existing "
+"PO file with translations. The ref.pot file is the last created PO file with "
+"up-to-date source references. ref.pot is generally created by rgettext."
+msgstr ""
+
+#: lib/gettext/tools/rmsgmerge.rb:407 lib/gettext/tools/rgettext.rb:149
+#: lib/gettext/tools/rmsgfmt.rb:50
+msgid "Specific options:"
+msgstr ""
+
+#: lib/gettext/tools/rmsgmerge.rb:409 lib/gettext/tools/rgettext.rb:151
+#: lib/gettext/tools/rmsgfmt.rb:52
+msgid "write output to specified file"
+msgstr ""
+
+#: lib/gettext/tools/rmsgmerge.rb:420 lib/gettext/tools/rgettext.rb:168
+#: lib/gettext/tools/rmsgfmt.rb:56
+msgid "display version information and exit"
+msgstr ""
+
+#: lib/gettext/tools/rmsgmerge.rb:446
+msgid "definition po is not given."
+msgstr ""
+
+#: lib/gettext/tools/rmsgmerge.rb:448
+msgid "reference pot is not given."
+msgstr ""
+
+#: lib/gettext/tools/parser/glade.rb:73
+msgid "`%{file}' is not glade-2.0 format."
+msgstr ""
+
+#: lib/gettext/tools/rgettext.rb:40
+msgid "'%{klass}' is ignored."
+msgstr ""
+
+#: lib/gettext/tools/rgettext.rb:134
+msgid "Error parsing %{path}"
+msgstr ""
+
+#: lib/gettext/tools/rgettext.rb:145
+msgid "Usage: %s input.rb [-r parser.rb] [-o output.pot]"
+msgstr ""
+
+#: lib/gettext/tools/rgettext.rb:147
+msgid "Extract translatable strings from given input files."
+msgstr ""
+
+#: lib/gettext/tools/rgettext.rb:155
+msgid "File '%s' already exists."
+msgstr ""
+
+#: lib/gettext/tools/rgettext.rb:160
+msgid "require the library before executing rgettext"
+msgstr ""
+
+#: lib/gettext/tools/rgettext.rb:164
+msgid "run in debugging mode"
+msgstr ""
+
+#: lib/gettext/tools/rgettext.rb:192 lib/gettext/tools/rmsgfmt.rb:29
+msgid "no input files"
+msgstr ""
+
+#: lib/gettext/tools/rmsgfmt.rb:46
+msgid "Usage: %s input.po [-o output.mo]"
+msgstr ""
+
+#: lib/gettext/tools/rmsgfmt.rb:48
+msgid "Generate binary message catalog from textual translation description."
+msgstr ""
+
+#: lib/gettext/tools.rb:68
+msgid "Failed to merge with %{defpo}"
+msgstr ""
+
+#: lib/gettext/tools.rb:69
+msgid "New .pot was copied to %{failed_filename}"
+msgstr ""
+
+#: lib/gettext/tools.rb:70
+msgid "Check these po/pot-files. It may have syntax errors or something wrong."
+msgstr ""
+
+#: lib/gettext/tools.rb:173
+msgid ""
+"`%{cmd}' can not be found. \n"
+"Install GNU Gettext then set PATH or MSGMERGE_PATH correctly."
+msgstr ""
+
+#: lib/gettext/runtime/textdomain_manager.rb:147
+msgid "3rd parmeter is wrong: value = %{number}"
+msgstr ""
+
+#: src/poparser.ry:38 src/poparser.ry:55
+msgid "Warning: fuzzy message was ignored.\n"
+msgstr ""
+
+#: src/poparser.ry:148
+msgid "Warning: obsolete msgid exists.\n"
+msgstr ""
diff --git a/vendor/gems/gettext-2.1.0/po/ru/rgettext.po b/vendor/gems/gettext-2.1.0/po/ru/rgettext.po
new file mode 100644
index 000000000..29c51d716
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/po/ru/rgettext.po
@@ -0,0 +1,135 @@
+# translation of rgettext.po to Russian
+# a po-file for Ruby-GetText-Package
+#
+# Copyright (C) 2004-2008 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Yuri Kozlov <kozlov.y@gmail.com>, 2006-2008.
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 2.1.0\n"
+"POT-Creation-Date: 2009-11-08 22:43+0900\n"
+"PO-Revision-Date: 2008-07-13 10:08+0400\n"
+"Last-Translator: Yuri Kozlov <kozlov.y@gmail.com>\n"
+"Language-Team: Russian <debian-l10n-russian@lists.debian.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%"
+"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#: lib/gettext/tools/rmsgmerge.rb:402
+msgid "Usage: %s def.po ref.pot [-o output.pot]"
+msgstr "Использование: %s def.po ref.pot [-o output.pot]"
+
+#: lib/gettext/tools/rmsgmerge.rb:405
+msgid ""
+"Merges two Uniforum style .po files together. The def.po file is an existing "
+"PO file with translations. The ref.pot file is the last created PO file with "
+"up-to-date source references. ref.pot is generally created by rgettext."
+msgstr ""
+"Объединяет файлы .po Uniforum формата вместе. В файле def.po содержатся уже "
+"переведённые строки. Файл ref.pot является обновлённой версией PO файла из "
+"исходных текстов и не содержит переводов. ref.pot обычно создаётся с помощью "
+"программы rgettext."
+
+#: lib/gettext/tools/rmsgmerge.rb:407 lib/gettext/tools/rgettext.rb:149
+#: lib/gettext/tools/rmsgfmt.rb:50
+msgid "Specific options:"
+msgstr "Дополнительные параметры:"
+
+#: lib/gettext/tools/rmsgmerge.rb:409 lib/gettext/tools/rgettext.rb:151
+#: lib/gettext/tools/rmsgfmt.rb:52
+msgid "write output to specified file"
+msgstr "записать результат в указанный файл"
+
+#: lib/gettext/tools/rmsgmerge.rb:420 lib/gettext/tools/rgettext.rb:168
+#: lib/gettext/tools/rmsgfmt.rb:56
+msgid "display version information and exit"
+msgstr "показать информацию о версии и закончить работу"
+
+#: lib/gettext/tools/rmsgmerge.rb:446
+msgid "definition po is not given."
+msgstr "не указан файл def.po."
+
+#: lib/gettext/tools/rmsgmerge.rb:448
+msgid "reference pot is not given."
+msgstr "не указан файл ref.po."
+
+#: lib/gettext/tools/parser/glade.rb:73
+msgid "`%{file}' is not glade-2.0 format."
+msgstr "`%{file}' не в формате glade-2.0."
+
+#: lib/gettext/tools/rgettext.rb:40
+msgid "'%{klass}' is ignored."
+msgstr "проигнорирован '%{klass}'."
+
+#: lib/gettext/tools/rgettext.rb:134
+msgid "Error parsing %{path}"
+msgstr ""
+
+#: lib/gettext/tools/rgettext.rb:145
+msgid "Usage: %s input.rb [-r parser.rb] [-o output.pot]"
+msgstr "Использование: %s input.rb [-r parser.rb] [-o output.pot]"
+
+#: lib/gettext/tools/rgettext.rb:147
+msgid "Extract translatable strings from given input files."
+msgstr "Извлекает строки для перевода из указанных входных файлов."
+
+#: lib/gettext/tools/rgettext.rb:155
+msgid "File '%s' already exists."
+msgstr "Файл '%s' уже существует."
+
+#: lib/gettext/tools/rgettext.rb:160
+msgid "require the library before executing rgettext"
+msgstr "для выполнения rgettext требуется библиотека"
+
+#: lib/gettext/tools/rgettext.rb:164
+msgid "run in debugging mode"
+msgstr "запуск в режиме отладки"
+
+#: lib/gettext/tools/rgettext.rb:192 lib/gettext/tools/rmsgfmt.rb:29
+msgid "no input files"
+msgstr "не заданы входные файлы"
+
+#: lib/gettext/tools/rmsgfmt.rb:46
+msgid "Usage: %s input.po [-o output.mo]"
+msgstr "Использование: %s input.po [-o output.mo]"
+
+#: lib/gettext/tools/rmsgfmt.rb:48
+msgid "Generate binary message catalog from textual translation description."
+msgstr "Генерирует бинарный каталог сообщений из перевода."
+
+#: lib/gettext/tools.rb:68
+msgid "Failed to merge with %{defpo}"
+msgstr "Не удалось объединить с %{defpo}"
+
+#: lib/gettext/tools.rb:69
+msgid "New .pot was copied to %{failed_filename}"
+msgstr "Новый .pot скопирован в %{failed_filename}"
+
+#: lib/gettext/tools.rb:70
+msgid "Check these po/pot-files. It may have syntax errors or something wrong."
+msgstr ""
+"Проверьте данные po/pot-файлы. В них могут быть синтаксические и другие "
+"ошибки."
+
+#: lib/gettext/tools.rb:173
+msgid ""
+"`%{cmd}' can not be found. \n"
+"Install GNU Gettext then set PATH or MSGMERGE_PATH correctly."
+msgstr ""
+
+#: lib/gettext/runtime/textdomain_manager.rb:147
+msgid "3rd parmeter is wrong: value = %{number}"
+msgstr "Ошибка в третьем параметре: value = %{number}"
+
+#: src/poparser.ry:38 src/poparser.ry:55
+msgid "Warning: fuzzy message was ignored.\n"
+msgstr "Предупреждение: игнорирован неточный перевод сообщения.\n"
+
+#: src/poparser.ry:148
+msgid "Warning: obsolete msgid exists.\n"
+msgstr "Предупреждение: присутствует устаревшая msgid.\n"
diff --git a/vendor/gems/gettext-2.1.0/po/sr/rgettext.po b/vendor/gems/gettext-2.1.0/po/sr/rgettext.po
new file mode 100644
index 000000000..532c49d9e
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/po/sr/rgettext.po
@@ -0,0 +1,134 @@
+#
+# a po-file for Ruby-GetText-Package
+#
+# Copyright (C) 2004-2008 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Slobodan Paunović <slobodan dot paunovic at gmail dot com>, 2008
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 2.1.0\n"
+"POT-Creation-Date: 2009-11-08 22:43+0900\n"
+"PO-Revision-Date: 2008-07-13 08:53+0200\n"
+"Last-Translator: Slobodan Paunović\n"
+"Language-Team: Serbian\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%"
+"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+
+#: lib/gettext/tools/rmsgmerge.rb:402
+msgid "Usage: %s def.po ref.pot [-o output.pot]"
+msgstr "Употреба: %s def.po ref.pot [-o output.pot]"
+
+#: lib/gettext/tools/rmsgmerge.rb:405
+msgid ""
+"Merges two Uniforum style .po files together. The def.po file is an existing "
+"PO file with translations. The ref.pot file is the last created PO file with "
+"up-to-date source references. ref.pot is generally created by rgettext."
+msgstr ""
+"Спаја заједно два униформна .po фајла. def.po фајл је постојећи PO фајл са "
+"преводима. Ref.pot фајл је последње креиран PO фајл са текућим изворним "
+"референцама. Ref.pot се обично креира помоћу rgettext-а."
+
+#: lib/gettext/tools/rmsgmerge.rb:407 lib/gettext/tools/rgettext.rb:149
+#: lib/gettext/tools/rmsgfmt.rb:50
+msgid "Specific options:"
+msgstr "Посебне опције:"
+
+#: lib/gettext/tools/rmsgmerge.rb:409 lib/gettext/tools/rgettext.rb:151
+#: lib/gettext/tools/rmsgfmt.rb:52
+msgid "write output to specified file"
+msgstr "писање излаза у задат фајл"
+
+#: lib/gettext/tools/rmsgmerge.rb:420 lib/gettext/tools/rgettext.rb:168
+#: lib/gettext/tools/rmsgfmt.rb:56
+msgid "display version information and exit"
+msgstr "приказ информација о верзији и излаз"
+
+#: lib/gettext/tools/rmsgmerge.rb:446
+msgid "definition po is not given."
+msgstr "дефинициони po фајл није задат."
+
+#: lib/gettext/tools/rmsgmerge.rb:448
+msgid "reference pot is not given."
+msgstr "референтни pot фајл није задат."
+
+#: lib/gettext/tools/parser/glade.rb:73
+msgid "`%{file}' is not glade-2.0 format."
+msgstr "%{file} није у glade-2.0 формату."
+
+#: lib/gettext/tools/rgettext.rb:40
+msgid "'%{klass}' is ignored."
+msgstr "'%{klass}' игнорисано."
+
+#: lib/gettext/tools/rgettext.rb:134
+msgid "Error parsing %{path}"
+msgstr ""
+
+#: lib/gettext/tools/rgettext.rb:145
+msgid "Usage: %s input.rb [-r parser.rb] [-o output.pot]"
+msgstr "Употреба: %s input.rb [-r parser.rb] [-o output.pot]"
+
+#: lib/gettext/tools/rgettext.rb:147
+msgid "Extract translatable strings from given input files."
+msgstr "Екстракција стрингова за превођење из задатих улазних фајлова."
+
+#: lib/gettext/tools/rgettext.rb:155
+msgid "File '%s' already exists."
+msgstr "Фајл '%s' већ постоји."
+
+#: lib/gettext/tools/rgettext.rb:160
+msgid "require the library before executing rgettext"
+msgstr "захтевај библиотеку пре извршења rgettext-а"
+
+#: lib/gettext/tools/rgettext.rb:164
+msgid "run in debugging mode"
+msgstr "ради у дибагинг моду"
+
+#: lib/gettext/tools/rgettext.rb:192 lib/gettext/tools/rmsgfmt.rb:29
+msgid "no input files"
+msgstr "нема улазних фајлова"
+
+#: lib/gettext/tools/rmsgfmt.rb:46
+msgid "Usage: %s input.po [-o output.mo]"
+msgstr "Употреба: %s input.po [-o output.mo]"
+
+#: lib/gettext/tools/rmsgfmt.rb:48
+msgid "Generate binary message catalog from textual translation description."
+msgstr "Формирање бинарног каталога порука из текстуалног превода."
+
+#: lib/gettext/tools.rb:68
+msgid "Failed to merge with %{defpo}"
+msgstr "Неуспело спајање са %{defpo}"
+
+#: lib/gettext/tools.rb:69
+msgid "New .pot was copied to %{failed_filename}"
+msgstr "Нови .pot фајл је ископиран као %{failed_filename}"
+
+#: lib/gettext/tools.rb:70
+msgid "Check these po/pot-files. It may have syntax errors or something wrong."
+msgstr ""
+"Проверите ове po/pot фајлове. Могуће је да има синтаксних грешака или да "
+"нешто није у реду."
+
+#: lib/gettext/tools.rb:173
+msgid ""
+"`%{cmd}' can not be found. \n"
+"Install GNU Gettext then set PATH or MSGMERGE_PATH correctly."
+msgstr ""
+
+#: lib/gettext/runtime/textdomain_manager.rb:147
+msgid "3rd parmeter is wrong: value = %{number}"
+msgstr "3. параметар је погрешан: вредност = %{number}"
+
+#: src/poparser.ry:38 src/poparser.ry:55
+msgid "Warning: fuzzy message was ignored.\n"
+msgstr "Упозорење: фази порука је игнорисана.\n"
+
+#: src/poparser.ry:148
+msgid "Warning: obsolete msgid exists.\n"
+msgstr "Упозорење: постоји застарели msgid.\n"
diff --git a/vendor/gems/gettext-2.1.0/po/sv/rgettext.po b/vendor/gems/gettext-2.1.0/po/sv/rgettext.po
new file mode 100644
index 000000000..f0474e259
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/po/sv/rgettext.po
@@ -0,0 +1,127 @@
+#
+# po-file for Ruby-GetText-Package
+#
+# Copyright (C) 2004-2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Nikolai Weibull, 2004
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 2.1.0\n"
+"POT-Creation-Date: 2009-11-08 22:43+0900\n"
+"PO-Revision-Date: 2004-11-04 20:49+0100\n"
+"Last-Translator: Nikolai Weibull\n"
+"Language-Team: Swedish\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: lib/gettext/tools/rmsgmerge.rb:402
+msgid "Usage: %s def.po ref.pot [-o output.pot]"
+msgstr "Användning: %s def.po ref.pot [-o output.pot]"
+
+#: lib/gettext/tools/rmsgmerge.rb:405
+msgid ""
+"Merges two Uniforum style .po files together. The def.po file is an existing "
+"PO file with translations. The ref.pot file is the last created PO file with "
+"up-to-date source references. ref.pot is generally created by rgettext."
+msgstr ""
+
+#: lib/gettext/tools/rmsgmerge.rb:407 lib/gettext/tools/rgettext.rb:149
+#: lib/gettext/tools/rmsgfmt.rb:50
+msgid "Specific options:"
+msgstr ""
+
+#: lib/gettext/tools/rmsgmerge.rb:409 lib/gettext/tools/rgettext.rb:151
+#: lib/gettext/tools/rmsgfmt.rb:52
+msgid "write output to specified file"
+msgstr ""
+
+#: lib/gettext/tools/rmsgmerge.rb:420 lib/gettext/tools/rgettext.rb:168
+#: lib/gettext/tools/rmsgfmt.rb:56
+msgid "display version information and exit"
+msgstr ""
+
+#: lib/gettext/tools/rmsgmerge.rb:446
+msgid "definition po is not given."
+msgstr ""
+
+#: lib/gettext/tools/rmsgmerge.rb:448
+msgid "reference pot is not given."
+msgstr ""
+
+#: lib/gettext/tools/parser/glade.rb:73
+msgid "`%{file}' is not glade-2.0 format."
+msgstr ""
+
+#: lib/gettext/tools/rgettext.rb:40
+msgid "'%{klass}' is ignored."
+msgstr ""
+
+#: lib/gettext/tools/rgettext.rb:134
+msgid "Error parsing %{path}"
+msgstr ""
+
+#: lib/gettext/tools/rgettext.rb:145
+msgid "Usage: %s input.rb [-r parser.rb] [-o output.pot]"
+msgstr "Användning: %s input.rb [-r parser.rb] [-o output.pot]"
+
+#: lib/gettext/tools/rgettext.rb:147
+msgid "Extract translatable strings from given input files."
+msgstr "Utvinn översättningsbara strängar från givna filer."
+
+#: lib/gettext/tools/rgettext.rb:155
+msgid "File '%s' already exists."
+msgstr ""
+
+#: lib/gettext/tools/rgettext.rb:160
+msgid "require the library before executing rgettext"
+msgstr ""
+
+#: lib/gettext/tools/rgettext.rb:164
+msgid "run in debugging mode"
+msgstr ""
+
+#: lib/gettext/tools/rgettext.rb:192 lib/gettext/tools/rmsgfmt.rb:29
+msgid "no input files"
+msgstr ""
+
+#: lib/gettext/tools/rmsgfmt.rb:46
+msgid "Usage: %s input.po [-o output.mo]"
+msgstr "Användning: %s input.po [-o output.mo]"
+
+#: lib/gettext/tools/rmsgfmt.rb:48
+msgid "Generate binary message catalog from textual translation description."
+msgstr "Generera binära meddelandekataloger från textuell översättningsdata."
+
+#: lib/gettext/tools.rb:68
+msgid "Failed to merge with %{defpo}"
+msgstr ""
+
+#: lib/gettext/tools.rb:69
+msgid "New .pot was copied to %{failed_filename}"
+msgstr ""
+
+#: lib/gettext/tools.rb:70
+msgid "Check these po/pot-files. It may have syntax errors or something wrong."
+msgstr ""
+
+#: lib/gettext/tools.rb:173
+msgid ""
+"`%{cmd}' can not be found. \n"
+"Install GNU Gettext then set PATH or MSGMERGE_PATH correctly."
+msgstr ""
+
+#: lib/gettext/runtime/textdomain_manager.rb:147
+msgid "3rd parmeter is wrong: value = %{number}"
+msgstr ""
+
+#: src/poparser.ry:38 src/poparser.ry:55
+msgid "Warning: fuzzy message was ignored.\n"
+msgstr ""
+
+#: src/poparser.ry:148
+msgid "Warning: obsolete msgid exists.\n"
+msgstr ""
diff --git a/vendor/gems/gettext-2.1.0/po/ua/rgettext.po b/vendor/gems/gettext-2.1.0/po/ua/rgettext.po
new file mode 100644
index 000000000..5da763e2e
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/po/ua/rgettext.po
@@ -0,0 +1,138 @@
+# translation of rgettext.po to Ukrainian
+#
+# a po-file for Ruby-GetText-Package
+#
+# Copyright (C) 2004-2008 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Alex Rootoff, 2007,2008
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 2.1.0\n"
+"POT-Creation-Date: 2009-11-08 22:43+0900\n"
+"PO-Revision-Date: 2008-07-14 05:33+0200\n"
+"Last-Translator: Alex Rootoff <rootoff at pisem.net>\n"
+"Language-Team: Ukrainian\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%"
+"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+
+#: lib/gettext/tools/rmsgmerge.rb:402
+msgid "Usage: %s def.po ref.pot [-o output.pot]"
+msgstr "Використання: %s def.po ref.pot [-o output.pot]"
+
+#: lib/gettext/tools/rmsgmerge.rb:405
+msgid ""
+"Merges two Uniforum style .po files together. The def.po file is an existing "
+"PO file with translations. The ref.pot file is the last created PO file with "
+"up-to-date source references. ref.pot is generally created by rgettext."
+msgstr ""
+"Об'єднує файли .po Uniforum формату. В файлі def.po зберігаються уже "
+"перекладені стрічки. Файл ref.pot є оновленою версією PO файлу із вихідних "
+"текстів і не містить перекладів. ref.pot зазвичай створюють за допомогою "
+"програми rgettext."
+
+#: lib/gettext/tools/rmsgmerge.rb:407 lib/gettext/tools/rgettext.rb:149
+#: lib/gettext/tools/rmsgfmt.rb:50
+msgid "Specific options:"
+msgstr "Додаткові параметри:"
+
+#: lib/gettext/tools/rmsgmerge.rb:409 lib/gettext/tools/rgettext.rb:151
+#: lib/gettext/tools/rmsgfmt.rb:52
+msgid "write output to specified file"
+msgstr "записати результат у вказаний файл"
+
+#: lib/gettext/tools/rmsgmerge.rb:420 lib/gettext/tools/rgettext.rb:168
+#: lib/gettext/tools/rmsgfmt.rb:56
+msgid "display version information and exit"
+msgstr "показати інформацію про версію і завершити роботу"
+
+#: lib/gettext/tools/rmsgmerge.rb:446
+msgid "definition po is not given."
+msgstr "не вказано файл def.po."
+
+#: lib/gettext/tools/rmsgmerge.rb:448
+msgid "reference pot is not given."
+msgstr "не вказано файл ref.po."
+
+#: lib/gettext/tools/parser/glade.rb:73
+msgid "`%{file}' is not glade-2.0 format."
+msgstr "`%{file}' не в форматі glade-2.0."
+
+#: lib/gettext/tools/rgettext.rb:40
+msgid "'%{klass}' is ignored."
+msgstr "проігноровано '%{klass}'."
+
+#: lib/gettext/tools/rgettext.rb:134
+msgid "Error parsing %{path}"
+msgstr ""
+
+#: lib/gettext/tools/rgettext.rb:145
+msgid "Usage: %s input.rb [-r parser.rb] [-o output.pot]"
+msgstr "Використання: %s input.rb [-r parser.rb] [-o output.pot]"
+
+#: lib/gettext/tools/rgettext.rb:147
+msgid "Extract translatable strings from given input files."
+msgstr "Витягувати стрічки для перекладу із вказаних вхідних файлів."
+
+#: lib/gettext/tools/rgettext.rb:155
+msgid "File '%s' already exists."
+msgstr "Файл '%s' уже існує."
+
+#: lib/gettext/tools/rgettext.rb:160
+msgid "require the library before executing rgettext"
+msgstr "для виконання rgettext необхідна бібліотека"
+
+#: lib/gettext/tools/rgettext.rb:164
+msgid "run in debugging mode"
+msgstr "запуск в режимі відлагодження"
+
+#: lib/gettext/tools/rgettext.rb:192 lib/gettext/tools/rmsgfmt.rb:29
+msgid "no input files"
+msgstr "не задані вхідні файли"
+
+#: lib/gettext/tools/rmsgfmt.rb:46
+msgid "Usage: %s input.po [-o output.mo]"
+msgstr "Використання: %s input.po [-o output.mo]"
+
+#: lib/gettext/tools/rmsgfmt.rb:48
+msgid "Generate binary message catalog from textual translation description."
+msgstr "Генерує бінарний каталог повідомлень із перекладу."
+
+#: lib/gettext/tools.rb:68
+msgid "Failed to merge with %{defpo}"
+msgstr "Не вдалось об'єднати із %{defpo}"
+
+#: lib/gettext/tools.rb:69
+msgid "New .pot was copied to %{failed_filename}"
+msgstr "Новий файл .pot скопійовано в %{failed_filename}"
+
+#: lib/gettext/tools.rb:70
+msgid "Check these po/pot-files. It may have syntax errors or something wrong."
+msgstr ""
+"Будь ласка, перевірте ці po/pot-файли. Схоже, що вони містять синтаксичні "
+"помилки."
+
+#: lib/gettext/tools.rb:173
+msgid ""
+"`%{cmd}' can not be found. \n"
+"Install GNU Gettext then set PATH or MSGMERGE_PATH correctly."
+msgstr ""
+
+#: lib/gettext/runtime/textdomain_manager.rb:147
+msgid "3rd parmeter is wrong: value = %{number}"
+msgstr "Третій параметр неправильний: value = %{number}"
+
+#: src/poparser.ry:38 src/poparser.ry:55
+msgid "Warning: fuzzy message was ignored.\n"
+msgstr "Попередження: проігноровано неточний переклад повідомлення.\n"
+
+#: src/poparser.ry:148
+msgid "Warning: obsolete msgid exists.\n"
+msgstr "Попередження: є застаріла стрічка msgid.\n"
diff --git a/vendor/gems/gettext-2.1.0/po/vi/rgettext.po b/vendor/gems/gettext-2.1.0/po/vi/rgettext.po
new file mode 100644
index 000000000..810071b41
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/po/vi/rgettext.po
@@ -0,0 +1,132 @@
+#
+# a po-file for Ruby-GetText-Package
+#
+# Copyright (C) 2004-2008 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Ngoc DAO Thanh <ngocdaothanh at gmail.com>, 2007,2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 2.1.0\n"
+"POT-Creation-Date: 2009-11-08 22:43+0900\n"
+"PO-Revision-Date: 2008-07-13 21:28+0900\n"
+"Last-Translator: Ngoc Dao <ngocdaothanh@gmail.com>\n"
+"Language-Team: Vietnamese\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: lib/gettext/tools/rmsgmerge.rb:402
+msgid "Usage: %s def.po ref.pot [-o output.pot]"
+msgstr "Cách sử dụng: %s def.po ref.pot [-o output.pot]"
+
+#: lib/gettext/tools/rmsgmerge.rb:405
+msgid ""
+"Merges two Uniforum style .po files together. The def.po file is an existing "
+"PO file with translations. The ref.pot file is the last created PO file with "
+"up-to-date source references. ref.pot is generally created by rgettext."
+msgstr ""
+"Trộn hai tập tin .po kiểu Uniforum. Tập tin def.po là tập tin đã tồn tại PO "
+"có chứa lời dịch. Tập tin ref.pot là tập tin PO được tạo ra lần trước có "
+"chứa tham chiếu mới nhất. ref.pot thường do rgettext tạo ra."
+
+#: lib/gettext/tools/rmsgmerge.rb:407 lib/gettext/tools/rgettext.rb:149
+#: lib/gettext/tools/rmsgfmt.rb:50
+msgid "Specific options:"
+msgstr "Tùy chọn cụ thể:"
+
+#: lib/gettext/tools/rmsgmerge.rb:409 lib/gettext/tools/rgettext.rb:151
+#: lib/gettext/tools/rmsgfmt.rb:52
+msgid "write output to specified file"
+msgstr "ghi ra tập tin được chỉ định"
+
+#: lib/gettext/tools/rmsgmerge.rb:420 lib/gettext/tools/rgettext.rb:168
+#: lib/gettext/tools/rmsgfmt.rb:56
+msgid "display version information and exit"
+msgstr "hiện thông tin về phiên bản rồi thoát"
+
+#: lib/gettext/tools/rmsgmerge.rb:446
+msgid "definition po is not given."
+msgstr "tập tin định nghĩa po đã không được chỉ định."
+
+#: lib/gettext/tools/rmsgmerge.rb:448
+msgid "reference pot is not given."
+msgstr "tập tin tham chiếu pot đã không được chỉ định."
+
+#: lib/gettext/tools/parser/glade.rb:73
+msgid "`%{file}' is not glade-2.0 format."
+msgstr "`%{file}' không có định dạng là glade-2.0."
+
+#: lib/gettext/tools/rgettext.rb:40
+msgid "'%{klass}' is ignored."
+msgstr "'%{klass}' đã được bỏ qua."
+
+#: lib/gettext/tools/rgettext.rb:134
+msgid "Error parsing %{path}"
+msgstr ""
+
+#: lib/gettext/tools/rgettext.rb:145
+msgid "Usage: %s input.rb [-r parser.rb] [-o output.pot]"
+msgstr "Cách sử dụng: %s input.rb [-r parser.rb] [-o output.pot]"
+
+#: lib/gettext/tools/rgettext.rb:147
+msgid "Extract translatable strings from given input files."
+msgstr "Trích chuỗi cần dịch từ những tập tin đầu vào."
+
+#: lib/gettext/tools/rgettext.rb:155
+msgid "File '%s' already exists."
+msgstr "Tập tin '%s' đã tồn tại."
+
+#: lib/gettext/tools/rgettext.rb:160
+msgid "require the library before executing rgettext"
+msgstr "require thư viện trước khi chạy rgettext"
+
+#: lib/gettext/tools/rgettext.rb:164
+msgid "run in debugging mode"
+msgstr "chạy trong chế độ debug"
+
+#: lib/gettext/tools/rgettext.rb:192 lib/gettext/tools/rmsgfmt.rb:29
+msgid "no input files"
+msgstr "không có tập tin đầu vào"
+
+#: lib/gettext/tools/rmsgfmt.rb:46
+msgid "Usage: %s input.po [-o output.mo]"
+msgstr "Cách sử dụng: %s input.po [-o output.mo]"
+
+#: lib/gettext/tools/rmsgfmt.rb:48
+msgid "Generate binary message catalog from textual translation description."
+msgstr "Sinh message catalog nhị phân từ chuỗi văn bản."
+
+#: lib/gettext/tools.rb:68
+msgid "Failed to merge with %{defpo}"
+msgstr "Không thể trộn với %{defpo}"
+
+#: lib/gettext/tools.rb:69
+msgid "New .pot was copied to %{failed_filename}"
+msgstr "Tập tin .pot mới đã được copy thành %{failed_filename}"
+
+#: lib/gettext/tools.rb:70
+msgid "Check these po/pot-files. It may have syntax errors or something wrong."
+msgstr ""
+"Hãy kiểm tra những tập tin po/pot này. Có thể do có lỗi cú pháp hay gì đó."
+
+#: lib/gettext/tools.rb:173
+msgid ""
+"`%{cmd}' can not be found. \n"
+"Install GNU Gettext then set PATH or MSGMERGE_PATH correctly."
+msgstr ""
+
+#: lib/gettext/runtime/textdomain_manager.rb:147
+msgid "3rd parmeter is wrong: value = %{number}"
+msgstr "Tham số thứ 3 sai: giá trị = %{number}"
+
+#: src/poparser.ry:38 src/poparser.ry:55
+msgid "Warning: fuzzy message was ignored.\n"
+msgstr "Cảnh báo: fuzzy message đã bị bỏ qua.\n"
+
+#: src/poparser.ry:148
+msgid "Warning: obsolete msgid exists.\n"
+msgstr "Cảnh báo: tồn tại obsolete msgid.\n"
diff --git a/vendor/gems/gettext-2.1.0/po/zh/rgettext.po b/vendor/gems/gettext-2.1.0/po/zh/rgettext.po
new file mode 100644
index 000000000..7172ca2ca
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/po/zh/rgettext.po
@@ -0,0 +1,133 @@
+# translation of rgettext.po to Simplified Chinese
+#
+# a po-file for Ruby-GetText-Package
+#
+# Copyright (C) 2006-2008 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Yang Bob <bob.yang.dev at gmail.com>, 2006-2008.
+# Yingfeng <blogyingfeng at gmail.com>, 2006.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 2.1.0\n"
+"POT-Creation-Date: 2009-11-08 22:43+0900\n"
+"PO-Revision-Date: 2006-04-15 13:11+0300\n"
+"Last-Translator: Yang Bob <bob.yang.dev at gmail.com>\n"
+"Language-Team: Simplified Chinese\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"X-Generator: KBabel 1.9.1\n"
+
+#: lib/gettext/tools/rmsgmerge.rb:402
+msgid "Usage: %s def.po ref.pot [-o output.pot]"
+msgstr "使用方法:%s def.po ref.pot [-o output.pot]"
+
+#: lib/gettext/tools/rmsgmerge.rb:405
+msgid ""
+"Merges two Uniforum style .po files together. The def.po file is an existing "
+"PO file with translations. The ref.pot file is the last created PO file with "
+"up-to-date source references. ref.pot is generally created by rgettext."
+msgstr ""
+"合并两个同样形式的 po 文件, def.po 是原來有翻译的文件,ref.pot 是经过原始码"
+"更新过的新文件,ref.pot 一般是由 rgettext 建立的。"
+
+#: lib/gettext/tools/rmsgmerge.rb:407 lib/gettext/tools/rgettext.rb:149
+#: lib/gettext/tools/rmsgfmt.rb:50
+msgid "Specific options:"
+msgstr "具体选项:"
+
+#: lib/gettext/tools/rmsgmerge.rb:409 lib/gettext/tools/rgettext.rb:151
+#: lib/gettext/tools/rmsgfmt.rb:52
+msgid "write output to specified file"
+msgstr "输出到指定文件"
+
+#: lib/gettext/tools/rmsgmerge.rb:420 lib/gettext/tools/rgettext.rb:168
+#: lib/gettext/tools/rmsgfmt.rb:56
+msgid "display version information and exit"
+msgstr "显示版本信息并退出"
+
+#: lib/gettext/tools/rmsgmerge.rb:446
+msgid "definition po is not given."
+msgstr "po的定义未给出。"
+
+#: lib/gettext/tools/rmsgmerge.rb:448
+msgid "reference pot is not given."
+msgstr "参考pot未指定。"
+
+#: lib/gettext/tools/parser/glade.rb:73
+msgid "`%{file}' is not glade-2.0 format."
+msgstr "`%{file}'不是glade-2.0格式。"
+
+#: lib/gettext/tools/rgettext.rb:40
+msgid "'%{klass}' is ignored."
+msgstr "'%{klass}'被忽略。"
+
+#: lib/gettext/tools/rgettext.rb:134
+msgid "Error parsing %{path}"
+msgstr ""
+
+#: lib/gettext/tools/rgettext.rb:145
+msgid "Usage: %s input.rb [-r parser.rb] [-o output.pot]"
+msgstr "使用方法:%s input.rb [-r parser.rb] [-o output.pot]"
+
+#: lib/gettext/tools/rgettext.rb:147
+msgid "Extract translatable strings from given input files."
+msgstr "从给定输入文件中提取翻译字符串。"
+
+#: lib/gettext/tools/rgettext.rb:155
+msgid "File '%s' already exists."
+msgstr "文件'%s'已经存在。"
+
+#: lib/gettext/tools/rgettext.rb:160
+msgid "require the library before executing rgettext"
+msgstr "在执行 rgettext 之前需要一个库"
+
+#: lib/gettext/tools/rgettext.rb:164
+msgid "run in debugging mode"
+msgstr "运行于调试模式"
+
+#: lib/gettext/tools/rgettext.rb:192 lib/gettext/tools/rmsgfmt.rb:29
+msgid "no input files"
+msgstr "没有输入文件"
+
+#: lib/gettext/tools/rmsgfmt.rb:46
+msgid "Usage: %s input.po [-o output.mo]"
+msgstr "使用方法: %s input.po [-o output.mo]"
+
+#: lib/gettext/tools/rmsgfmt.rb:48
+msgid "Generate binary message catalog from textual translation description."
+msgstr "从文本叙述翻译生成二进制信息目录。"
+
+#: lib/gettext/tools.rb:68
+msgid "Failed to merge with %{defpo}"
+msgstr "不能与 %{defpo} 合并"
+
+#: lib/gettext/tools.rb:69
+msgid "New .pot was copied to %{failed_filename}"
+msgstr "新的 .pot 被复制到 %{failed_filename} 去了"
+
+#: lib/gettext/tools.rb:70
+msgid "Check these po/pot-files. It may have syntax errors or something wrong."
+msgstr "检查这些 po/pot-文件。它们可能有语法或者其他错误。"
+
+#: lib/gettext/tools.rb:173
+msgid ""
+"`%{cmd}' can not be found. \n"
+"Install GNU Gettext then set PATH or MSGMERGE_PATH correctly."
+msgstr ""
+
+#: lib/gettext/runtime/textdomain_manager.rb:147
+msgid "3rd parmeter is wrong: value = %{number}"
+msgstr "第三个参数错误:value = %{number}"
+
+#: src/poparser.ry:38 src/poparser.ry:55
+msgid "Warning: fuzzy message was ignored.\n"
+msgstr "警告:不明确信息(fuzzy message)已被忽略。"
+
+#: src/poparser.ry:148
+msgid "Warning: obsolete msgid exists.\n"
+msgstr "警告:存在过期的msgid。"
diff --git a/vendor/gems/gettext-2.1.0/po/zh_TW/rgettext.po b/vendor/gems/gettext-2.1.0/po/zh_TW/rgettext.po
new file mode 100644
index 000000000..70aa450d5
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/po/zh_TW/rgettext.po
@@ -0,0 +1,132 @@
+#
+# a po-file for Ruby-GetText-Package
+#
+# Copyright (C) 2004-2008 Masao Mutoh
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Yang Bob <bob.yang.dev at gmail.com>, 2006-2008.
+# LIN CHUNG-YI <xmarsh at gmail.com>, 2006.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 2.1.0\n"
+"POT-Creation-Date: 2009-11-08 22:43+0900\n"
+"PO-Revision-Date: 2006-08-21 09:39+0800\n"
+"Last-Translator: Yang Bob <bob.yang.dev at gmail.com>\n"
+"Language-Team: zh_TW <xmarsh at gmail.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"X-Poedit-Language: Chinese\n"
+"X-Poedit-Country: TAIWAN\n"
+
+#: lib/gettext/tools/rmsgmerge.rb:402
+msgid "Usage: %s def.po ref.pot [-o output.pot]"
+msgstr "使用: %s def.po ref.pot [-o output.pot]"
+
+#: lib/gettext/tools/rmsgmerge.rb:405
+msgid ""
+"Merges two Uniforum style .po files together. The def.po file is an existing "
+"PO file with translations. The ref.pot file is the last created PO file with "
+"up-to-date source references. ref.pot is generally created by rgettext."
+msgstr ""
+"合併兩同樣形式的 po 檔, def.po 檔是原來有翻譯的檔案,ref.pot 檔是經過原始碼"
+"更新過的新檔,ref.pot 一般是由rgettext 建立。"
+
+#: lib/gettext/tools/rmsgmerge.rb:407 lib/gettext/tools/rgettext.rb:149
+#: lib/gettext/tools/rmsgfmt.rb:50
+msgid "Specific options:"
+msgstr "特殊選項:"
+
+#: lib/gettext/tools/rmsgmerge.rb:409 lib/gettext/tools/rgettext.rb:151
+#: lib/gettext/tools/rmsgfmt.rb:52
+msgid "write output to specified file"
+msgstr "輸出到指定檔案"
+
+#: lib/gettext/tools/rmsgmerge.rb:420 lib/gettext/tools/rgettext.rb:168
+#: lib/gettext/tools/rmsgfmt.rb:56
+msgid "display version information and exit"
+msgstr "秀出版本資訊後退出"
+
+#: lib/gettext/tools/rmsgmerge.rb:446
+msgid "definition po is not given."
+msgstr "沒有指定PO檔"
+
+#: lib/gettext/tools/rmsgmerge.rb:448
+msgid "reference pot is not given."
+msgstr "沒指定參考pot檔"
+
+#: lib/gettext/tools/parser/glade.rb:73
+msgid "`%{file}' is not glade-2.0 format."
+msgstr "`%{file}' 不是 glade-2.0 格式"
+
+#: lib/gettext/tools/rgettext.rb:40
+msgid "'%{klass}' is ignored."
+msgstr "'%{klass}' 忽略"
+
+#: lib/gettext/tools/rgettext.rb:134
+msgid "Error parsing %{path}"
+msgstr ""
+
+#: lib/gettext/tools/rgettext.rb:145
+msgid "Usage: %s input.rb [-r parser.rb] [-o output.pot]"
+msgstr "使用: %s input.rb [-r parser.rb] [-o output.pot]"
+
+#: lib/gettext/tools/rgettext.rb:147
+msgid "Extract translatable strings from given input files."
+msgstr "從輸入檔中取出翻譯字串"
+
+#: lib/gettext/tools/rgettext.rb:155
+msgid "File '%s' already exists."
+msgstr "檔案 '%s' 已經存在"
+
+#: lib/gettext/tools/rgettext.rb:160
+msgid "require the library before executing rgettext"
+msgstr "在執行 rgettext 之前需要一個庫"
+
+#: lib/gettext/tools/rgettext.rb:164
+msgid "run in debugging mode"
+msgstr "執行除錯模式"
+
+#: lib/gettext/tools/rgettext.rb:192 lib/gettext/tools/rmsgfmt.rb:29
+msgid "no input files"
+msgstr "無輸入檔"
+
+#: lib/gettext/tools/rmsgfmt.rb:46
+msgid "Usage: %s input.po [-o output.mo]"
+msgstr "使用: %s input.po [-o output.mo]"
+
+#: lib/gettext/tools/rmsgfmt.rb:48
+msgid "Generate binary message catalog from textual translation description."
+msgstr "從textual translation description產生二進位訊息 catalog"
+
+#: lib/gettext/tools.rb:68
+msgid "Failed to merge with %{defpo}"
+msgstr "不能與 %{defpo} 合併"
+
+#: lib/gettext/tools.rb:69
+msgid "New .pot was copied to %{failed_filename}"
+msgstr "新的 .pot 被复制為 %{failed_filename} 了"
+
+#: lib/gettext/tools.rb:70
+msgid "Check these po/pot-files. It may have syntax errors or something wrong."
+msgstr "檢査这些 po/pot-文件。它们可能有語法或者其他錯誤。"
+
+#: lib/gettext/tools.rb:173
+msgid ""
+"`%{cmd}' can not be found. \n"
+"Install GNU Gettext then set PATH or MSGMERGE_PATH correctly."
+msgstr ""
+
+#: lib/gettext/runtime/textdomain_manager.rb:147
+msgid "3rd parmeter is wrong: value = %{number}"
+msgstr "第三个参数錯誤:value = %{number}"
+
+#: src/poparser.ry:38 src/poparser.ry:55
+msgid "Warning: fuzzy message was ignored.\n"
+msgstr "警告: fuzzy 訊息被忽略\n"
+
+#: src/poparser.ry:148
+msgid "Warning: obsolete msgid exists.\n"
+msgstr "警告: 存在過時的 msgid.\n"
diff --git a/vendor/gems/gettext-2.1.0/replace.rb b/vendor/gems/gettext-2.1.0/replace.rb
new file mode 100644
index 000000000..ae45a61c5
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/replace.rb
@@ -0,0 +1,8 @@
+ARGV.each do |path|
+ data = IO.read(path)
+ data.gsub!(/license terms as Ruby\./, "license terms as Ruby or LGPL.")
+ open(path, "w") do |out|
+ out.write data
+ end
+end
+
diff --git a/vendor/gems/gettext-2.1.0/samples/README b/vendor/gems/gettext-2.1.0/samples/README
new file mode 100644
index 000000000..33c926d5c
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/README
@@ -0,0 +1,16 @@
+Sample scripts for Ruby-GetText-Package.
+
+$ruby makemo.rb
+$ruby sample_script.rb
+
+hello.rb - Basic sample
+hello2.rb - Basic sample2 (using printf)
+hello_noop.rb - N_ sample
+hello_plural.rb - n_ sample
+hello_gtk.rb - Ruby/GTK2 sample
+hello_tk.rb - Ruby/TK sample
+hello_glade2.rb - Ruby/Glade2 sample
+
+makemo.rb - Create mo files from po files.
+
+cgi/* - CGI/ERB sample (See cgi/README)
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/README b/vendor/gems/gettext-2.1.0/samples/cgi/README
new file mode 100644
index 000000000..1a01ae2c1
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/README
@@ -0,0 +1,43 @@
+Sample script for CGI/ERB and Ruby-GetText-Package.
+
+At first, create mo file once:
+$ rake
+
+# You need 'rake' to execute it.
+
+(One click ruby installer for Windonws user only)
+Edit ruby.bat to fit your environment. If you don't have GTK,
+removes 'set PATH=c:\gtk\bin' line.
+
+Then run the http server.
+$ ruby http.rb
+
+Access the http server from WWW browser:
+
+http://localhost:10080/
+http://localhost:10080/1
+http://localhost:10080/2
+
+or
+
+If you want to set locale(lang) forcely, then:
+
+http://localhost:10080/?lang=ja
+http://localhost:10080/1?lang=ja
+http://localhost:10080/2?lang=ja
+ #ja is a target locale in this sample.
+
+http.rb - an http server for samples using WEBrick
+Rakefile - a Rakefile to create mo files from po files.
+
+index.cgi - a sample menu (CGI sample) - textdomain: main
+cookie.cgi - a sample menu (CGI sample) - textdomain: main
+helloerb1.cgi - an ERB/CGI sample (UTF-8) - textdomain: helloerb1
+helloerb2.cgi - an ERB/CGI sample (Auto-Detect) - textdomain: helloerb2
+
+helloerb.rhtml - an ERB file (used from both of helloerb1/helloerb2)
+other.rhtml - an ERB file (used from helloerb1)
+
+hellolib.rb - a smple library called from helloerb.rhtml which have an
+ independent textdomain: hellolib
+ruby.bat - Execute ruby interpreter on Win32.
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/Rakefile b/vendor/gems/gettext-2.1.0/samples/cgi/Rakefile
new file mode 100644
index 000000000..2d64b69fa
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/Rakefile
@@ -0,0 +1,27 @@
+task :default => [:makemo]
+
+require 'gettext/tools'
+
+desc "Create *.mo from *.po"
+task :makemo do
+ GetText.create_mofiles(:mo_root => "locale")
+end
+
+desc "Update pot/po files to match new version."
+task :updatepo do
+=begin
+ GetText.update_pofiles("helloerb1",
+ ["helloerb1.cgi", "helloerb.rhtml", "other.rhtml"],
+ "cgi-sample 1.1.1")
+ GetText.update_pofiles("helloerb2",
+ ["helloerb2.cgi", "helloerb.rhtml"],
+ "cgi-sample 1.1.1")
+ GetText.update_pofiles("hellolib",
+ ["hellolib.rb"],
+ "cgi-sample 1.1.1")
+=end
+ GetText.update_pofiles("main",
+ ["index.cgi", "cookie.cgi"],
+ "cgi-sample 1.1.1")
+end
+
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/cookie.cgi b/vendor/gems/gettext-2.1.0/samples/cgi/cookie.cgi
new file mode 100755
index 000000000..8a4971e1d
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/cookie.cgi
@@ -0,0 +1,64 @@
+#!/usr/bin/env ruby
+=begin
+ cookie.cgi - Set a selected locale to the cookie of WWW Browser.
+
+ Set UTF-8 forcely as output charset.
+
+ Recommanded to set UTF-8 forcely because some web browser
+ doesn't send HTTP_ACCEPT_CHARSET correctly.
+
+ Copyright (C) 2005 Masao Mutoh
+
+ You may redistribute it and/or modify it under the same
+ license terms as Ruby.
+=end
+$:.insert(0, "../../lib")
+
+# gettext/cgi support CGI.
+begin
+ require 'rubygems'
+rescue LoadError
+end
+
+require 'gettext/cgi'
+
+include GetText
+
+# Configure GetText first.
+set_output_charset("UTF-8")
+set_cgi(CGI.new)
+bindtextdomain("main", "locale")
+
+lang = GetText.cgi['lang']
+lang = "en" unless lang.size > 0
+
+#
+# CGI part
+#
+print "Set-Cookie:lang=#{lang}\n"
+print "Content-type:text/html; charset=UTF-8\n\n"
+
+puts %Q[
+<head>
+ <meta http-equiv="content-type" content="text/html; charset=UTF-8">
+ <link rel="stylesheet" type="text/css" href="gettext.css" media="all">
+ <title>]
+puts _("Sample script for CGI/ERB and Ruby-GetText-Package")
+puts %Q[</title>
+</head>
+<body>
+]
+
+puts "<h1>" + _("Set [%s] as the cookie of your WWW Browser.") % lang + "</h1>"
+
+puts %Q[</h1>
+ <p><a href="/">]
+puts _("Back")
+puts %Q[</a></p>
+ <div style="text-align:right">
+ <p>Copyright (C) 2005 Masao Mutoh</p>
+ </div>
+ </body>
+</html>
+]
+
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/gettext.css b/vendor/gems/gettext-2.1.0/samples/cgi/gettext.css
new file mode 100644
index 000000000..311d1124c
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/gettext.css
@@ -0,0 +1,116 @@
+/*
+ CSS for Ruby-GetText-Package
+ by Masao Mutoh.
+*/
+
+body {
+ margin: 0px;
+ padding: 0px;
+ color: #000;
+ background-color: #fff;
+ font-size: 90%;
+ font-family: Times, Sans-Serif;
+ line-height: 1.5em;
+}
+
+h1 {
+ color: #002288;
+ text-align: left;
+ clear: both;
+ padding:0.4em;
+ font-weight: bold;
+ font-size: 1.8em;
+ padding-left:0.5em;
+ padding-right:10px;
+ margin-top: 10px;
+ margin-left: 20px;
+ margin-bottom:1em;
+ margin-right:5px;
+ border: solid thin;
+ border-left: solid;
+ border-color: #9999ff;
+ border-top-width: 0px;
+ border-right-width: 0px;
+ border-bottom-width: 1px;
+ border-left-width: 15px;
+}
+h2 {
+ margin: 0px;
+ font-size: large;
+ font-weight: bold;
+ font-size: 1.4em;
+ padding: 0.3em;
+ padding-left:0.5em;
+ padding-right:10px;
+ margin-top: 1em;
+ margin-left: 1.5em;
+ margin-right: 10px;
+ margin-bottom:0.8em;
+ border: solid thin;
+ border-left: solid;
+ border-color: #9999ff;
+ border-top-width: 0px;
+ border-right-width: 0px;
+ border-bottom-width: 1px;
+ border-left-width: 15px;
+
+}
+
+h3 {
+ margin:1em;
+ margin-bottom: 0.5em;
+ margin-top: 1.5em;
+ margin-left: 2em;
+ margin-right: 24px;
+ padding: 0.1em;
+ padding-top: 0;
+ padding-left: 0.7em;
+ font-size: 1.2em;
+ border-style: dashed;
+ border-width: 0px 0px 1px 1px;
+ border-color: #ddddff;
+}
+
+p {
+ padding-left: 1em;
+ padding-right: 1em;
+ margin-top: 0px;
+ margin-left: 1.5em;
+ margin-right: 1em;
+ margin-bottom: 0.5em;
+}
+
+ol, ul {
+ margin-top: 0.2em;
+ margin-left: 3em;
+ padding-left: 1.5em;
+}
+
+li {
+ margin-top: 0.2em;
+ margin-left: 0em;
+ padding-left: 0em;
+ line-height: 1.2em;
+}
+
+.locale {
+ margin: 2em;
+ padding: 1em;
+ border-style: solid;
+ border-width: 1px 1px 1px 1px;
+ border-color: #ddddff;
+}
+
+pre {
+ margin: 2em;
+ padding: 1em;
+ border-style: solid;
+ border-width: 1px 1px 1px 1px;
+ border-color: #ddddff;
+ background-color: #eeffee;
+}
+
+.copyright {
+ text-align: right;
+ padding: 2em;
+}
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/helloerb.rhtml b/vendor/gems/gettext-2.1.0/samples/cgi/helloerb.rhtml
new file mode 100644
index 000000000..576a21e40
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/helloerb.rhtml
@@ -0,0 +1,28 @@
+<html>
+<head>
+ <meta http-equiv="content-type" content="text/html; charset=<%= GetText.output_charset %>">
+ <link rel="stylesheet" type="text/css" href="gettext.css" media="all">
+<title><%= _("Sample script for CGI/ERB and Ruby-GetText-Package") %></title>
+</head>
+<body>
+<%
+ require 'hellolib'
+ require 'cgi'
+ lib = HelloLib.new
+%>
+<h1><%= _("Hello World") %> - <%= @domainname %></h1>
+<p><%= description %></p>
+<div class="locale">
+<p><%= _("locale") %>: <%= Locale.get %></p>
+<p><%= _("output_charset") %>: <%= GetText.output_charset %></p>
+<p><%= _("QUERY_STRING") %>: <%= cgi.query_string %></p>
+</div>
+<p><%= _("Call a library method which has another textdomain.") %></p>
+<div class="locale"><%= lib.hello %></div>
+<p><a href="/"><%= _("Back") %></a></p>
+
+<div class="copyright">
+Copyright (C) 2005 Masao Mutoh
+</div>
+</body>
+</html>
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/helloerb1.cgi b/vendor/gems/gettext-2.1.0/samples/cgi/helloerb1.cgi
new file mode 100755
index 000000000..fa0ed80ce
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/helloerb1.cgi
@@ -0,0 +1,58 @@
+#!/usr/bin/env ruby
+=begin
+ helloerb1.cgi - Sample script for CGI/ERB
+
+ Set UTF-8 forcely as output charset.
+
+ Recommanded to set UTF-8 forcely because some web browser
+ doesn't send HTTP_ACCEPT_CHARSET correctly.
+
+ Copyright (C) 2005-2009 Masao Mutoh
+
+ You may redistribute it and/or modify it under the same
+ license terms as Ruby.
+=end
+$:.insert(0, "../../lib")
+
+begin
+ require 'rubygems'
+rescue LoadError
+end
+
+require 'erb'
+require 'gettext/cgi'
+
+class SimpleContainer1
+ include GetText
+
+
+ def initialize(domainname, domainpath, cgi)
+ set_cgi(cgi)
+ bindtextdomain(domainname, :path => domainpath)
+ @domainname = domainname
+ end
+
+ def description
+ _("Sample script for CGI/ERB (UTF-8).")
+ end
+
+ def to_html(path)
+ erb = ERB.new(IO.read(path)).src
+ eval(erb, binding)
+ end
+end
+
+
+GetText.output_charset = "UTF-8"
+
+print "Content-type:text/html; charset=UTF-8\n\n"
+
+cgi = CGI.new
+
+con = SimpleContainer1.new("helloerb1", "locale", cgi)
+
+if GetText.cgi["other"] == "true"
+ print con.to_html("other.rhtml")
+else
+ print con.to_html("helloerb.rhtml")
+end
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/helloerb2.cgi b/vendor/gems/gettext-2.1.0/samples/cgi/helloerb2.cgi
new file mode 100755
index 000000000..735f70f69
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/helloerb2.cgi
@@ -0,0 +1,51 @@
+#!/usr/bin/env ruby
+=begin
+ helloerb2.cgi - Sample script for CGI/ERB
+
+ Set locale/charset automaticaly.
+ (from HTTP_ACCEPT_LANGUAGE, HTTP_ACCEPT_CHARSET sended by web browser).
+
+ Recommanded to set UTF-8 forcely because some web browser
+ doesn't send HTTP_ACCEPT_CHARSET correctly.(See helloerb.cgi)
+
+ Copyright (C) 2005 Masao Mutoh
+
+ You may redistribute it and/or modify it under the same
+ license terms as Ruby.
+=end
+$:.insert(0, "../../lib")
+
+begin
+ require 'rubygems'
+rescue LoadError
+end
+
+require 'gettext/cgi'
+require 'erb'
+
+class SimpleContainer2
+ include GetText
+
+ def initialize(domainname, domainpath)
+ bindtextdomain(domainname, :path => domainpath)
+ @domainname = domainname
+ end
+
+ def description
+ _("Sample script for CGI/ERB (Auto-Detect charset).")
+ end
+
+ def to_html(path)
+ erb = ERB.new(IO.read(path)).src
+ eval(erb, binding)
+ end
+end
+
+cgi = CGI.new
+GetText.set_cgi(cgi)
+
+print "Content-type:text/html; charset=#{Locale.charset}\n\n"
+
+con = SimpleContainer2.new("helloerb2", "locale")
+
+print con.to_html("helloerb.rhtml")
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/hellolib.rb b/vendor/gems/gettext-2.1.0/samples/cgi/hellolib.rb
new file mode 100644
index 000000000..1e206bc7e
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/hellolib.rb
@@ -0,0 +1,18 @@
+#!/usr/bin/ruby
+# hellolib.rb
+#
+# Copyright (C) 2005-2009 Masao Mutoh
+#
+# This file is distributed under the same
+# license as Ruby-GetText-Package.
+#
+
+require 'gettext'
+
+class HelloLib
+ include GetText
+ bindtextdomain("hellolib", "locale")
+ def hello
+ _("This message is from hellolib.")
+ end
+end
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/http.rb b/vendor/gems/gettext-2.1.0/samples/cgi/http.rb
new file mode 100755
index 000000000..632a9a211
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/http.rb
@@ -0,0 +1,49 @@
+#! /usr/bin/env ruby
+=begin
+ http.rb - An WebServer for helloerb sample.
+
+ Copyright (C) 2005-2009 Masao Mutoh
+
+ You may redistribute it and/or modify it under the same
+ license terms as Ruby or LGPL.
+=end
+
+require 'webrick'
+require 'cgi'
+require 'rbconfig'
+
+interpreter = File.join(Config::CONFIG['bindir'], Config::CONFIG['ruby_install_name']) +
+ Config::CONFIG['EXEEXT']
+
+srv = WEBrick::HTTPServer.new({:BindAddress => '127.0.0.1',
+ :Logger => WEBrick::Log::new($stderr, WEBrick::Log::DEBUG),
+ :CGIInterpreter => interpreter,
+ # :CGIInterpreter => "ruby -d",
+ :Port => 10080})
+
+['INT', 'TERM'].each { |signal|
+ trap(signal){ srv.shutdown}
+}
+
+srv.mount("/", WEBrick::HTTPServlet::FileHandler, File.expand_path('.'))
+
+srv.mount_proc("/src/") do |req, res|
+ res.header["Content-Type"] = "text/html; charset=UTF-8"
+ if req.query_string
+ file = File.open(req.query_string).read
+ res.body = %Q[<html>
+ <head>
+ <title>View a source code</title>
+ <meta http-equiv="content-type" content="text/html; charset=UTF-8">
+ <link rel="stylesheet" type="text/css" href="/gettext.css" media="all">
+ </head>
+ <body><h1>#{req.query_string}</h1>
+ <pre>#{CGI.escapeHTML(file)}</pre>
+ <p><a href="/">Back</a></p>
+ </body>
+ </html>
+ ]
+ end
+end
+
+srv.start
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/index.cgi b/vendor/gems/gettext-2.1.0/samples/cgi/index.cgi
new file mode 100755
index 000000000..27f18cdd7
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/index.cgi
@@ -0,0 +1,111 @@
+#!/usr/bin/env ruby
+=begin
+ hello.cgi - Sample script for CGI
+
+ Set UTF-8 forcely as output charset.
+
+ Recommanded to set UTF-8 forcely because some web browser
+ doesn't send HTTP_ACCEPT_CHARSET correctly.
+
+ Copyright (C) 2005 Masao Mutoh
+
+ You may redistribute it and/or modify it under the same
+ license terms as Ruby.
+=end
+$:.insert(0, "../../lib")
+
+# gettext/cgi support CGI.
+begin
+ require 'rubygems'
+rescue LoadError
+end
+
+require 'gettext/cgi'
+
+include GetText
+set_cgi(CGI.new)
+
+print "Content-type:text/html; charset=UTF-8\n\n"
+
+# Configure GetText first.
+set_output_charset("UTF-8")
+bindtextdomain("main", "locale")
+
+langs = ["en"] + Dir.glob("locale/*").collect{|item| File.basename(item)}
+langs.sort!
+
+urls = [
+ ["helloerb1.cgi", N_("an ERB/CGI sample (UTF-8).")],
+ ["helloerb1.cgi?other=true", N_("an ERB/CGI sample (UTF-8). This sample uses the same container as sample 1 but has a different rhtml file.")],
+ ["helloerb2.cgi", N_("an ERB/CGI sample (Auto-Detect charset).")]
+]
+
+
+#
+# CGI part
+#
+
+puts %Q[<html><head>
+ <meta http-equiv="content-type" content="text/html; charset=UTF-8">
+ <link rel="stylesheet" type="text/css" href="gettext.css" media="all">
+ <title>]
+puts _("Sample script for CGI/ERB and Ruby-GetText-Package")
+puts "</title>
+</head>
+<body>
+<h1>"
+puts _("Ruby-GetText CGI sample scripts")
+puts "</h1>"
+puts "<p>" + _("Supported Locales:") + "[#{langs.join(", ")}]</p>"
+puts "<h2>" + _("Auto-Detect a locale from the WWW browser") + "</h2>"
+puts "<ol>"
+
+urls.each do |url, desc|
+ puts "<li><a href=\"/#{url}\">#{url}</a><br/>" + _(desc) + "</a></li>"
+end
+puts "</ol>"
+
+puts "<h2>" + _('Set locale as a "lang" parameter') + "</h2>"
+
+langs.each do |lang|
+ puts "<h3>[#{lang}]</h3>"
+ puts "<ol>"
+ urls.each do |url, desc|
+ if /\?other/ =~ url
+ url += "&lang=" + lang
+ else
+ url += "?lang=" + lang
+ end
+ puts "<li><a href=\"#{url}\">#{CGI.escapeHTML(url)}</a><br/>" + _(desc) + "</li>"
+ end
+ puts "</ol>"
+end
+
+puts "<h2>" + _('Set "lang" to cookie.') + "</h2>"
+puts "<p>" + _('Click one of the link below, and then click "Auto-Detect a locale from the WWW browser" samples.') + "</p>"
+puts "<ol>"
+
+langs.each do |lang|
+ url = "cookie.cgi?lang=" + lang
+ puts "<li><a href=\"#{url}\">#{CGI.escapeHTML(url)}</a> [#{lang}]</li>"
+end
+
+puts "</ol>"
+puts "<h2>" + _("Source codes") + "</h2>"
+puts "<ol>"
+
+Dir.glob("*cgi\0*rb\0*rhtml)").sort.each do |src|
+ unless /http.rb|makemo.rb/ =~ src
+ puts %Q[<li><a href="/src/?#{src}">#{src}</a></li>]
+ end
+end
+puts %Q[</ol>
+<hr/>
+ <div class="copyright">
+ <p>] + _("index.cgi is also a Ruby-GetText sample script using CGI(not ERB).")+ %Q[</p>
+ <p>Copyright (C) 2005-2008 Masao Mutoh</p>
+ </div>
+</body>
+</html>
+]
+
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/locale/bg/LC_MESSAGES/helloerb1.mo b/vendor/gems/gettext-2.1.0/samples/cgi/locale/bg/LC_MESSAGES/helloerb1.mo
new file mode 100644
index 000000000..e96a12e93
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/locale/bg/LC_MESSAGES/helloerb1.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/locale/bg/LC_MESSAGES/helloerb2.mo b/vendor/gems/gettext-2.1.0/samples/cgi/locale/bg/LC_MESSAGES/helloerb2.mo
new file mode 100644
index 000000000..a2de8f91b
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/locale/bg/LC_MESSAGES/helloerb2.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/locale/bg/LC_MESSAGES/hellolib.mo b/vendor/gems/gettext-2.1.0/samples/cgi/locale/bg/LC_MESSAGES/hellolib.mo
new file mode 100644
index 000000000..90eb8d31b
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/locale/bg/LC_MESSAGES/hellolib.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/locale/bg/LC_MESSAGES/main.mo b/vendor/gems/gettext-2.1.0/samples/cgi/locale/bg/LC_MESSAGES/main.mo
new file mode 100644
index 000000000..47dfec9ac
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/locale/bg/LC_MESSAGES/main.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/locale/bs/LC_MESSAGES/helloerb1.mo b/vendor/gems/gettext-2.1.0/samples/cgi/locale/bs/LC_MESSAGES/helloerb1.mo
new file mode 100644
index 000000000..4d8808fa4
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/locale/bs/LC_MESSAGES/helloerb1.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/locale/bs/LC_MESSAGES/helloerb2.mo b/vendor/gems/gettext-2.1.0/samples/cgi/locale/bs/LC_MESSAGES/helloerb2.mo
new file mode 100644
index 000000000..969eab454
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/locale/bs/LC_MESSAGES/helloerb2.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/locale/bs/LC_MESSAGES/hellolib.mo b/vendor/gems/gettext-2.1.0/samples/cgi/locale/bs/LC_MESSAGES/hellolib.mo
new file mode 100644
index 000000000..5c58dde53
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/locale/bs/LC_MESSAGES/hellolib.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/locale/bs/LC_MESSAGES/main.mo b/vendor/gems/gettext-2.1.0/samples/cgi/locale/bs/LC_MESSAGES/main.mo
new file mode 100644
index 000000000..e8f4340be
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/locale/bs/LC_MESSAGES/main.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/locale/ca/LC_MESSAGES/helloerb1.mo b/vendor/gems/gettext-2.1.0/samples/cgi/locale/ca/LC_MESSAGES/helloerb1.mo
new file mode 100644
index 000000000..464a79dc0
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/locale/ca/LC_MESSAGES/helloerb1.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/locale/ca/LC_MESSAGES/helloerb2.mo b/vendor/gems/gettext-2.1.0/samples/cgi/locale/ca/LC_MESSAGES/helloerb2.mo
new file mode 100644
index 000000000..2c1673430
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/locale/ca/LC_MESSAGES/helloerb2.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/locale/ca/LC_MESSAGES/hellolib.mo b/vendor/gems/gettext-2.1.0/samples/cgi/locale/ca/LC_MESSAGES/hellolib.mo
new file mode 100644
index 000000000..4d99d98a2
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/locale/ca/LC_MESSAGES/hellolib.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/locale/ca/LC_MESSAGES/main.mo b/vendor/gems/gettext-2.1.0/samples/cgi/locale/ca/LC_MESSAGES/main.mo
new file mode 100644
index 000000000..3f2cef213
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/locale/ca/LC_MESSAGES/main.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/locale/cs/LC_MESSAGES/helloerb1.mo b/vendor/gems/gettext-2.1.0/samples/cgi/locale/cs/LC_MESSAGES/helloerb1.mo
new file mode 100644
index 000000000..569cf4772
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/locale/cs/LC_MESSAGES/helloerb1.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/locale/cs/LC_MESSAGES/helloerb2.mo b/vendor/gems/gettext-2.1.0/samples/cgi/locale/cs/LC_MESSAGES/helloerb2.mo
new file mode 100644
index 000000000..02cea3e73
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/locale/cs/LC_MESSAGES/helloerb2.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/locale/cs/LC_MESSAGES/hellolib.mo b/vendor/gems/gettext-2.1.0/samples/cgi/locale/cs/LC_MESSAGES/hellolib.mo
new file mode 100644
index 000000000..d0f58e302
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/locale/cs/LC_MESSAGES/hellolib.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/locale/cs/LC_MESSAGES/main.mo b/vendor/gems/gettext-2.1.0/samples/cgi/locale/cs/LC_MESSAGES/main.mo
new file mode 100644
index 000000000..c9888fc3f
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/locale/cs/LC_MESSAGES/main.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/locale/de/LC_MESSAGES/helloerb1.mo b/vendor/gems/gettext-2.1.0/samples/cgi/locale/de/LC_MESSAGES/helloerb1.mo
new file mode 100644
index 000000000..2a0c734e1
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/locale/de/LC_MESSAGES/helloerb1.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/locale/de/LC_MESSAGES/helloerb2.mo b/vendor/gems/gettext-2.1.0/samples/cgi/locale/de/LC_MESSAGES/helloerb2.mo
new file mode 100644
index 000000000..e3e3ef4b8
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/locale/de/LC_MESSAGES/helloerb2.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/locale/de/LC_MESSAGES/hellolib.mo b/vendor/gems/gettext-2.1.0/samples/cgi/locale/de/LC_MESSAGES/hellolib.mo
new file mode 100644
index 000000000..efa0578d4
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/locale/de/LC_MESSAGES/hellolib.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/locale/de/LC_MESSAGES/main.mo b/vendor/gems/gettext-2.1.0/samples/cgi/locale/de/LC_MESSAGES/main.mo
new file mode 100644
index 000000000..6b724c74b
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/locale/de/LC_MESSAGES/main.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/locale/el/LC_MESSAGES/helloerb1.mo b/vendor/gems/gettext-2.1.0/samples/cgi/locale/el/LC_MESSAGES/helloerb1.mo
new file mode 100644
index 000000000..86c1c51b7
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/locale/el/LC_MESSAGES/helloerb1.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/locale/el/LC_MESSAGES/helloerb2.mo b/vendor/gems/gettext-2.1.0/samples/cgi/locale/el/LC_MESSAGES/helloerb2.mo
new file mode 100644
index 000000000..2d14a4998
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/locale/el/LC_MESSAGES/helloerb2.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/locale/el/LC_MESSAGES/hellolib.mo b/vendor/gems/gettext-2.1.0/samples/cgi/locale/el/LC_MESSAGES/hellolib.mo
new file mode 100644
index 000000000..8e856c179
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/locale/el/LC_MESSAGES/hellolib.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/locale/el/LC_MESSAGES/main.mo b/vendor/gems/gettext-2.1.0/samples/cgi/locale/el/LC_MESSAGES/main.mo
new file mode 100644
index 000000000..a5390fcad
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/locale/el/LC_MESSAGES/main.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/locale/eo/LC_MESSAGES/helloerb1.mo b/vendor/gems/gettext-2.1.0/samples/cgi/locale/eo/LC_MESSAGES/helloerb1.mo
new file mode 100644
index 000000000..243a18b34
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/locale/eo/LC_MESSAGES/helloerb1.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/locale/eo/LC_MESSAGES/helloerb2.mo b/vendor/gems/gettext-2.1.0/samples/cgi/locale/eo/LC_MESSAGES/helloerb2.mo
new file mode 100644
index 000000000..6f1938bf9
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/locale/eo/LC_MESSAGES/helloerb2.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/locale/eo/LC_MESSAGES/hellolib.mo b/vendor/gems/gettext-2.1.0/samples/cgi/locale/eo/LC_MESSAGES/hellolib.mo
new file mode 100644
index 000000000..3490a1ce0
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/locale/eo/LC_MESSAGES/hellolib.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/locale/eo/LC_MESSAGES/main.mo b/vendor/gems/gettext-2.1.0/samples/cgi/locale/eo/LC_MESSAGES/main.mo
new file mode 100644
index 000000000..31a29fae1
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/locale/eo/LC_MESSAGES/main.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/locale/es/LC_MESSAGES/helloerb1.mo b/vendor/gems/gettext-2.1.0/samples/cgi/locale/es/LC_MESSAGES/helloerb1.mo
new file mode 100644
index 000000000..d7ee2c59c
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/locale/es/LC_MESSAGES/helloerb1.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/locale/es/LC_MESSAGES/helloerb2.mo b/vendor/gems/gettext-2.1.0/samples/cgi/locale/es/LC_MESSAGES/helloerb2.mo
new file mode 100644
index 000000000..2d0af38c2
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/locale/es/LC_MESSAGES/helloerb2.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/locale/es/LC_MESSAGES/hellolib.mo b/vendor/gems/gettext-2.1.0/samples/cgi/locale/es/LC_MESSAGES/hellolib.mo
new file mode 100644
index 000000000..b5de80b3f
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/locale/es/LC_MESSAGES/hellolib.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/locale/es/LC_MESSAGES/main.mo b/vendor/gems/gettext-2.1.0/samples/cgi/locale/es/LC_MESSAGES/main.mo
new file mode 100644
index 000000000..1296a01ec
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/locale/es/LC_MESSAGES/main.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/locale/fr/LC_MESSAGES/helloerb1.mo b/vendor/gems/gettext-2.1.0/samples/cgi/locale/fr/LC_MESSAGES/helloerb1.mo
new file mode 100644
index 000000000..011e5936b
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/locale/fr/LC_MESSAGES/helloerb1.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/locale/fr/LC_MESSAGES/helloerb2.mo b/vendor/gems/gettext-2.1.0/samples/cgi/locale/fr/LC_MESSAGES/helloerb2.mo
new file mode 100644
index 000000000..4b6efb5fe
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/locale/fr/LC_MESSAGES/helloerb2.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/locale/fr/LC_MESSAGES/hellolib.mo b/vendor/gems/gettext-2.1.0/samples/cgi/locale/fr/LC_MESSAGES/hellolib.mo
new file mode 100644
index 000000000..58789eed5
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/locale/fr/LC_MESSAGES/hellolib.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/locale/fr/LC_MESSAGES/main.mo b/vendor/gems/gettext-2.1.0/samples/cgi/locale/fr/LC_MESSAGES/main.mo
new file mode 100644
index 000000000..63073388c
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/locale/fr/LC_MESSAGES/main.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/locale/hr/LC_MESSAGES/helloerb1.mo b/vendor/gems/gettext-2.1.0/samples/cgi/locale/hr/LC_MESSAGES/helloerb1.mo
new file mode 100644
index 000000000..7ccf62008
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/locale/hr/LC_MESSAGES/helloerb1.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/locale/hr/LC_MESSAGES/helloerb2.mo b/vendor/gems/gettext-2.1.0/samples/cgi/locale/hr/LC_MESSAGES/helloerb2.mo
new file mode 100644
index 000000000..de94ac9b6
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/locale/hr/LC_MESSAGES/helloerb2.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/locale/hr/LC_MESSAGES/hellolib.mo b/vendor/gems/gettext-2.1.0/samples/cgi/locale/hr/LC_MESSAGES/hellolib.mo
new file mode 100644
index 000000000..1c1c5ecfd
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/locale/hr/LC_MESSAGES/hellolib.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/locale/hr/LC_MESSAGES/main.mo b/vendor/gems/gettext-2.1.0/samples/cgi/locale/hr/LC_MESSAGES/main.mo
new file mode 100644
index 000000000..00ee53f0e
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/locale/hr/LC_MESSAGES/main.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/locale/hu/LC_MESSAGES/helloerb1.mo b/vendor/gems/gettext-2.1.0/samples/cgi/locale/hu/LC_MESSAGES/helloerb1.mo
new file mode 100644
index 000000000..f2137dde7
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/locale/hu/LC_MESSAGES/helloerb1.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/locale/hu/LC_MESSAGES/helloerb2.mo b/vendor/gems/gettext-2.1.0/samples/cgi/locale/hu/LC_MESSAGES/helloerb2.mo
new file mode 100644
index 000000000..f60e2264f
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/locale/hu/LC_MESSAGES/helloerb2.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/locale/hu/LC_MESSAGES/hellolib.mo b/vendor/gems/gettext-2.1.0/samples/cgi/locale/hu/LC_MESSAGES/hellolib.mo
new file mode 100644
index 000000000..2226c7276
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/locale/hu/LC_MESSAGES/hellolib.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/locale/hu/LC_MESSAGES/main.mo b/vendor/gems/gettext-2.1.0/samples/cgi/locale/hu/LC_MESSAGES/main.mo
new file mode 100644
index 000000000..b25083d12
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/locale/hu/LC_MESSAGES/main.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/locale/it/LC_MESSAGES/helloerb1.mo b/vendor/gems/gettext-2.1.0/samples/cgi/locale/it/LC_MESSAGES/helloerb1.mo
new file mode 100644
index 000000000..819067d8e
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/locale/it/LC_MESSAGES/helloerb1.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/locale/it/LC_MESSAGES/helloerb2.mo b/vendor/gems/gettext-2.1.0/samples/cgi/locale/it/LC_MESSAGES/helloerb2.mo
new file mode 100644
index 000000000..78f810926
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/locale/it/LC_MESSAGES/helloerb2.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/locale/it/LC_MESSAGES/hellolib.mo b/vendor/gems/gettext-2.1.0/samples/cgi/locale/it/LC_MESSAGES/hellolib.mo
new file mode 100644
index 000000000..515e2258c
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/locale/it/LC_MESSAGES/hellolib.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/locale/it/LC_MESSAGES/main.mo b/vendor/gems/gettext-2.1.0/samples/cgi/locale/it/LC_MESSAGES/main.mo
new file mode 100644
index 000000000..b9235997b
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/locale/it/LC_MESSAGES/main.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/locale/ja/LC_MESSAGES/helloerb1.mo b/vendor/gems/gettext-2.1.0/samples/cgi/locale/ja/LC_MESSAGES/helloerb1.mo
new file mode 100644
index 000000000..387825e41
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/locale/ja/LC_MESSAGES/helloerb1.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/locale/ja/LC_MESSAGES/helloerb2.mo b/vendor/gems/gettext-2.1.0/samples/cgi/locale/ja/LC_MESSAGES/helloerb2.mo
new file mode 100644
index 000000000..e528c91d6
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/locale/ja/LC_MESSAGES/helloerb2.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/locale/ja/LC_MESSAGES/hellolib.mo b/vendor/gems/gettext-2.1.0/samples/cgi/locale/ja/LC_MESSAGES/hellolib.mo
new file mode 100644
index 000000000..1a0c36067
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/locale/ja/LC_MESSAGES/hellolib.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/locale/ja/LC_MESSAGES/main.mo b/vendor/gems/gettext-2.1.0/samples/cgi/locale/ja/LC_MESSAGES/main.mo
new file mode 100644
index 000000000..94e4a69e7
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/locale/ja/LC_MESSAGES/main.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/locale/ko/LC_MESSAGES/helloerb1.mo b/vendor/gems/gettext-2.1.0/samples/cgi/locale/ko/LC_MESSAGES/helloerb1.mo
new file mode 100644
index 000000000..01730b1a4
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/locale/ko/LC_MESSAGES/helloerb1.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/locale/ko/LC_MESSAGES/helloerb2.mo b/vendor/gems/gettext-2.1.0/samples/cgi/locale/ko/LC_MESSAGES/helloerb2.mo
new file mode 100644
index 000000000..60925a913
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/locale/ko/LC_MESSAGES/helloerb2.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/locale/ko/LC_MESSAGES/hellolib.mo b/vendor/gems/gettext-2.1.0/samples/cgi/locale/ko/LC_MESSAGES/hellolib.mo
new file mode 100644
index 000000000..b7d743440
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/locale/ko/LC_MESSAGES/hellolib.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/locale/ko/LC_MESSAGES/main.mo b/vendor/gems/gettext-2.1.0/samples/cgi/locale/ko/LC_MESSAGES/main.mo
new file mode 100644
index 000000000..444436a27
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/locale/ko/LC_MESSAGES/main.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/locale/lv/LC_MESSAGES/helloerb1.mo b/vendor/gems/gettext-2.1.0/samples/cgi/locale/lv/LC_MESSAGES/helloerb1.mo
new file mode 100644
index 000000000..4f19dc8a3
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/locale/lv/LC_MESSAGES/helloerb1.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/locale/lv/LC_MESSAGES/helloerb2.mo b/vendor/gems/gettext-2.1.0/samples/cgi/locale/lv/LC_MESSAGES/helloerb2.mo
new file mode 100644
index 000000000..a4d34f497
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/locale/lv/LC_MESSAGES/helloerb2.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/locale/lv/LC_MESSAGES/hellolib.mo b/vendor/gems/gettext-2.1.0/samples/cgi/locale/lv/LC_MESSAGES/hellolib.mo
new file mode 100644
index 000000000..3a0db00e7
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/locale/lv/LC_MESSAGES/hellolib.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/locale/lv/LC_MESSAGES/main.mo b/vendor/gems/gettext-2.1.0/samples/cgi/locale/lv/LC_MESSAGES/main.mo
new file mode 100644
index 000000000..aa5699a6b
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/locale/lv/LC_MESSAGES/main.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/locale/nb/LC_MESSAGES/helloerb1.mo b/vendor/gems/gettext-2.1.0/samples/cgi/locale/nb/LC_MESSAGES/helloerb1.mo
new file mode 100644
index 000000000..ee9f55fa3
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/locale/nb/LC_MESSAGES/helloerb1.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/locale/nb/LC_MESSAGES/helloerb2.mo b/vendor/gems/gettext-2.1.0/samples/cgi/locale/nb/LC_MESSAGES/helloerb2.mo
new file mode 100644
index 000000000..1ba22a6dc
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/locale/nb/LC_MESSAGES/helloerb2.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/locale/nb/LC_MESSAGES/hellolib.mo b/vendor/gems/gettext-2.1.0/samples/cgi/locale/nb/LC_MESSAGES/hellolib.mo
new file mode 100644
index 000000000..17dc42f2b
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/locale/nb/LC_MESSAGES/hellolib.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/locale/nb/LC_MESSAGES/main.mo b/vendor/gems/gettext-2.1.0/samples/cgi/locale/nb/LC_MESSAGES/main.mo
new file mode 100644
index 000000000..d6d86f790
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/locale/nb/LC_MESSAGES/main.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/locale/nl/LC_MESSAGES/helloerb1.mo b/vendor/gems/gettext-2.1.0/samples/cgi/locale/nl/LC_MESSAGES/helloerb1.mo
new file mode 100644
index 000000000..ea41f80e4
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/locale/nl/LC_MESSAGES/helloerb1.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/locale/nl/LC_MESSAGES/helloerb2.mo b/vendor/gems/gettext-2.1.0/samples/cgi/locale/nl/LC_MESSAGES/helloerb2.mo
new file mode 100644
index 000000000..b67b63c53
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/locale/nl/LC_MESSAGES/helloerb2.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/locale/nl/LC_MESSAGES/hellolib.mo b/vendor/gems/gettext-2.1.0/samples/cgi/locale/nl/LC_MESSAGES/hellolib.mo
new file mode 100644
index 000000000..f79df2d7a
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/locale/nl/LC_MESSAGES/hellolib.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/locale/nl/LC_MESSAGES/main.mo b/vendor/gems/gettext-2.1.0/samples/cgi/locale/nl/LC_MESSAGES/main.mo
new file mode 100644
index 000000000..46f06f65b
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/locale/nl/LC_MESSAGES/main.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/locale/pt_BR/LC_MESSAGES/helloerb1.mo b/vendor/gems/gettext-2.1.0/samples/cgi/locale/pt_BR/LC_MESSAGES/helloerb1.mo
new file mode 100644
index 000000000..a7e6187c4
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/locale/pt_BR/LC_MESSAGES/helloerb1.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/locale/pt_BR/LC_MESSAGES/helloerb2.mo b/vendor/gems/gettext-2.1.0/samples/cgi/locale/pt_BR/LC_MESSAGES/helloerb2.mo
new file mode 100644
index 000000000..bd1e3f6b0
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/locale/pt_BR/LC_MESSAGES/helloerb2.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/locale/pt_BR/LC_MESSAGES/hellolib.mo b/vendor/gems/gettext-2.1.0/samples/cgi/locale/pt_BR/LC_MESSAGES/hellolib.mo
new file mode 100644
index 000000000..eb39917ff
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/locale/pt_BR/LC_MESSAGES/hellolib.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/locale/pt_BR/LC_MESSAGES/main.mo b/vendor/gems/gettext-2.1.0/samples/cgi/locale/pt_BR/LC_MESSAGES/main.mo
new file mode 100644
index 000000000..4c0293b96
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/locale/pt_BR/LC_MESSAGES/main.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/locale/ru/LC_MESSAGES/helloerb1.mo b/vendor/gems/gettext-2.1.0/samples/cgi/locale/ru/LC_MESSAGES/helloerb1.mo
new file mode 100644
index 000000000..1dd2d9ed8
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/locale/ru/LC_MESSAGES/helloerb1.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/locale/ru/LC_MESSAGES/helloerb2.mo b/vendor/gems/gettext-2.1.0/samples/cgi/locale/ru/LC_MESSAGES/helloerb2.mo
new file mode 100644
index 000000000..83dac1ebb
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/locale/ru/LC_MESSAGES/helloerb2.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/locale/ru/LC_MESSAGES/hellolib.mo b/vendor/gems/gettext-2.1.0/samples/cgi/locale/ru/LC_MESSAGES/hellolib.mo
new file mode 100644
index 000000000..3579c8c97
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/locale/ru/LC_MESSAGES/hellolib.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/locale/ru/LC_MESSAGES/main.mo b/vendor/gems/gettext-2.1.0/samples/cgi/locale/ru/LC_MESSAGES/main.mo
new file mode 100644
index 000000000..b25f01cb1
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/locale/ru/LC_MESSAGES/main.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/locale/sr/LC_MESSAGES/helloerb1.mo b/vendor/gems/gettext-2.1.0/samples/cgi/locale/sr/LC_MESSAGES/helloerb1.mo
new file mode 100644
index 000000000..cd586ab58
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/locale/sr/LC_MESSAGES/helloerb1.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/locale/sr/LC_MESSAGES/helloerb2.mo b/vendor/gems/gettext-2.1.0/samples/cgi/locale/sr/LC_MESSAGES/helloerb2.mo
new file mode 100644
index 000000000..5df810b93
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/locale/sr/LC_MESSAGES/helloerb2.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/locale/sr/LC_MESSAGES/hellolib.mo b/vendor/gems/gettext-2.1.0/samples/cgi/locale/sr/LC_MESSAGES/hellolib.mo
new file mode 100644
index 000000000..2a7e09c74
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/locale/sr/LC_MESSAGES/hellolib.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/locale/sr/LC_MESSAGES/main.mo b/vendor/gems/gettext-2.1.0/samples/cgi/locale/sr/LC_MESSAGES/main.mo
new file mode 100644
index 000000000..52de34239
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/locale/sr/LC_MESSAGES/main.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/locale/ua/LC_MESSAGES/helloerb1.mo b/vendor/gems/gettext-2.1.0/samples/cgi/locale/ua/LC_MESSAGES/helloerb1.mo
new file mode 100644
index 000000000..6ca0fab00
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/locale/ua/LC_MESSAGES/helloerb1.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/locale/ua/LC_MESSAGES/helloerb2.mo b/vendor/gems/gettext-2.1.0/samples/cgi/locale/ua/LC_MESSAGES/helloerb2.mo
new file mode 100644
index 000000000..0beaac2fd
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/locale/ua/LC_MESSAGES/helloerb2.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/locale/ua/LC_MESSAGES/hellolib.mo b/vendor/gems/gettext-2.1.0/samples/cgi/locale/ua/LC_MESSAGES/hellolib.mo
new file mode 100644
index 000000000..5779dc393
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/locale/ua/LC_MESSAGES/hellolib.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/locale/ua/LC_MESSAGES/main.mo b/vendor/gems/gettext-2.1.0/samples/cgi/locale/ua/LC_MESSAGES/main.mo
new file mode 100644
index 000000000..3e1306286
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/locale/ua/LC_MESSAGES/main.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/locale/vi/LC_MESSAGES/helloerb1.mo b/vendor/gems/gettext-2.1.0/samples/cgi/locale/vi/LC_MESSAGES/helloerb1.mo
new file mode 100644
index 000000000..e31170cb9
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/locale/vi/LC_MESSAGES/helloerb1.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/locale/vi/LC_MESSAGES/helloerb2.mo b/vendor/gems/gettext-2.1.0/samples/cgi/locale/vi/LC_MESSAGES/helloerb2.mo
new file mode 100644
index 000000000..0a4d38f74
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/locale/vi/LC_MESSAGES/helloerb2.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/locale/vi/LC_MESSAGES/hellolib.mo b/vendor/gems/gettext-2.1.0/samples/cgi/locale/vi/LC_MESSAGES/hellolib.mo
new file mode 100644
index 000000000..f1b2933c5
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/locale/vi/LC_MESSAGES/hellolib.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/locale/vi/LC_MESSAGES/main.mo b/vendor/gems/gettext-2.1.0/samples/cgi/locale/vi/LC_MESSAGES/main.mo
new file mode 100644
index 000000000..aba1b4c06
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/locale/vi/LC_MESSAGES/main.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/locale/zh/LC_MESSAGES/helloerb1.mo b/vendor/gems/gettext-2.1.0/samples/cgi/locale/zh/LC_MESSAGES/helloerb1.mo
new file mode 100644
index 000000000..a752fa928
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/locale/zh/LC_MESSAGES/helloerb1.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/locale/zh/LC_MESSAGES/helloerb2.mo b/vendor/gems/gettext-2.1.0/samples/cgi/locale/zh/LC_MESSAGES/helloerb2.mo
new file mode 100644
index 000000000..f2176ab82
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/locale/zh/LC_MESSAGES/helloerb2.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/locale/zh/LC_MESSAGES/hellolib.mo b/vendor/gems/gettext-2.1.0/samples/cgi/locale/zh/LC_MESSAGES/hellolib.mo
new file mode 100644
index 000000000..9911f26eb
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/locale/zh/LC_MESSAGES/hellolib.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/locale/zh/LC_MESSAGES/main.mo b/vendor/gems/gettext-2.1.0/samples/cgi/locale/zh/LC_MESSAGES/main.mo
new file mode 100644
index 000000000..24ce4320c
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/locale/zh/LC_MESSAGES/main.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/locale/zh_TW/LC_MESSAGES/helloerb1.mo b/vendor/gems/gettext-2.1.0/samples/cgi/locale/zh_TW/LC_MESSAGES/helloerb1.mo
new file mode 100644
index 000000000..02f4d4964
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/locale/zh_TW/LC_MESSAGES/helloerb1.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/locale/zh_TW/LC_MESSAGES/helloerb2.mo b/vendor/gems/gettext-2.1.0/samples/cgi/locale/zh_TW/LC_MESSAGES/helloerb2.mo
new file mode 100644
index 000000000..e68ccaeca
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/locale/zh_TW/LC_MESSAGES/helloerb2.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/locale/zh_TW/LC_MESSAGES/hellolib.mo b/vendor/gems/gettext-2.1.0/samples/cgi/locale/zh_TW/LC_MESSAGES/hellolib.mo
new file mode 100644
index 000000000..522439272
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/locale/zh_TW/LC_MESSAGES/hellolib.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/locale/zh_TW/LC_MESSAGES/main.mo b/vendor/gems/gettext-2.1.0/samples/cgi/locale/zh_TW/LC_MESSAGES/main.mo
new file mode 100644
index 000000000..7bb441826
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/locale/zh_TW/LC_MESSAGES/main.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/other.rhtml b/vendor/gems/gettext-2.1.0/samples/cgi/other.rhtml
new file mode 100644
index 000000000..2dd2ce968
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/other.rhtml
@@ -0,0 +1,20 @@
+<html>
+<head>
+ <meta http-equiv="content-type" content="text/html; charset=<%= GetText.output_charset %>">
+ <link rel="stylesheet" type="text/css" href="gettext.css" media="all">
+<title><%= _("Sample script for CGI/ERB and Ruby-GetText-Package") %></title>
+</head>
+<body>
+<h1><%= _("Another sample") %> - <%= @domainname %></h1>
+<p><%= _("This sample(other.rhtml) is the another ERB file of helloerb1.cgi.") %></p>
+<div class="locale">
+<p><%= _("locale") %>: <%= Locale.get %></p>
+<p><%= _("output_charset") %>: <%= GetText.output_charset %></p>
+<p><%= _("QUERY_STRING") %>: <%= CGI.escapeHTML(cgi.query_string) %></p>
+</div>
+<p><a href="/"><%= _("Back") %></a></p>
+<div class="copyright">
+Copyright (C) 2005 Masao Mutoh
+</div>
+</body>
+</html>
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/po/bg/helloerb1.po b/vendor/gems/gettext-2.1.0/samples/cgi/po/bg/helloerb1.po
new file mode 100644
index 000000000..d2a6d524e
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/po/bg/helloerb1.po
@@ -0,0 +1,59 @@
+# CGI/ERB sample for Ruby-GetText-Package.
+#
+# Copyright (C) 2005,2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Georgi Stoimenov <georgistoimenov@abv.bg>, 2008
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: cgi-sample 1.1.1\n"
+"POT-Creation-Date: 2006-01-07 14:48+0900\n"
+"PO-Revision-Date: 2005-04-23 12:44+0900\n"
+"Last-Translator: Sava Chankov <sava.chankov@gmail.com>\n"
+"Language-Team: Bulgarian <ruby-on-rails-bulgaria@googlegroups.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: helloerb1.cgi:32
+msgid "Sample script for CGI/ERB (UTF-8)."
+msgstr "Примерен CGI/ERB скрипт (UTF-8)."
+
+#: helloerb.rhtml:5 other.rhtml:5
+msgid "Sample script for CGI/ERB and Ruby-GetText-Package"
+msgstr "Примерен скрипт, ползващ CGI/ERB и Ruby-GetText-Package"
+
+#: helloerb.rhtml:12
+msgid "Hello World"
+msgstr "Гепи копеле"
+
+#: helloerb.rhtml:15 other.rhtml:11
+msgid "locale"
+msgstr "локал"
+
+#: helloerb.rhtml:16 other.rhtml:12
+msgid "output_charset"
+msgstr "изходно_кодиране"
+
+#: helloerb.rhtml:17 other.rhtml:13
+msgid "QUERY_STRING"
+msgstr "НИЗ_С_ПАРАМЕТРИ"
+
+#: helloerb.rhtml:19
+msgid "Call a library method which has another textdomain."
+msgstr "Извикване на метод от библиотеката, който принадлежи на друга текстова област"
+
+#: helloerb.rhtml:21 other.rhtml:15
+msgid "Back"
+msgstr "Назад"
+
+#: other.rhtml:8
+msgid "Another sample"
+msgstr "Друг пример"
+
+#: other.rhtml:9
+msgid "This sample(other.rhtml) is the another ERB file of helloerb1.cgi."
+msgstr "Този пример (other.rhtml) е другия ERB файл от helloerb1.cgi."
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/po/bg/helloerb2.po b/vendor/gems/gettext-2.1.0/samples/cgi/po/bg/helloerb2.po
new file mode 100644
index 000000000..5d175349a
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/po/bg/helloerb2.po
@@ -0,0 +1,51 @@
+# CGI/ERB sample for Ruby-GetText-Package.
+#
+# Copyright (C) 2005,2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Georgi Stoimenov <georgistoimenov@abv.bg>, 2008
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: cgi-sample 1.1.1\n"
+"POT-Creation-Date: 2006-01-07 14:51+0900\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: Sava Chankov <sava.chankov@gmail.com>\n"
+"Language-Team: Bulgarian <ruby-on-rails-bulgaria@googlegroups.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: helloerb2.cgi:34
+msgid "Sample script for CGI/ERB (Auto-Detect charset)."
+msgstr "Примерен CGI/ERB скрипт (автоматично разпознаване на кодирането)"
+
+#: helloerb.rhtml:5
+msgid "Sample script for CGI/ERB and Ruby-GetText-Package"
+msgstr "Примерен скрипт, ползващ CGI/ERB и Ruby-GetText-Package"
+
+#: helloerb.rhtml:12
+msgid "Hello World"
+msgstr "Гепи копеле"
+
+#: helloerb.rhtml:15
+msgid "locale"
+msgstr "локал"
+
+#: helloerb.rhtml:16
+msgid "output_charset"
+msgstr "изходно_кодиране"
+
+#: helloerb.rhtml:17
+msgid "QUERY_STRING"
+msgstr "НИЗ_С_ПАРАМЕТРИ"
+
+#: helloerb.rhtml:19
+msgid "Call a library method which has another textdomain."
+msgstr "Извикване на метод от библиотеката, който принадлежи на друга текстова област"
+
+#: helloerb.rhtml:21
+msgid "Back"
+msgstr "Назад"
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/po/bg/hellolib.po b/vendor/gems/gettext-2.1.0/samples/cgi/po/bg/hellolib.po
new file mode 100644
index 000000000..0e78a7ddf
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/po/bg/hellolib.po
@@ -0,0 +1,23 @@
+# CGI/ERB sample for Ruby-GetText-Package.
+#
+# Copyright (C) 2005,2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Georgi Stoimenov <georgistoimenov@abv.bg>, 2008
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: cgi-sample 1.1.1\n"
+"POT-Creation-Date: 2006-01-07 14:53+0900\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: Sava Chankov <sava.chankov@gmail.com>\n"
+"Language-Team: Bulgarian <ruby-on-rails-bulgaria@googlegroups.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: hellolib.rb:19
+msgid "This message is from hellolib."
+msgstr "Поздрави от hellolib."
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/po/bg/main.po b/vendor/gems/gettext-2.1.0/samples/cgi/po/bg/main.po
new file mode 100644
index 000000000..f662d8ac9
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/po/bg/main.po
@@ -0,0 +1,83 @@
+# CGI/ERB sample for Ruby-GetText-Package.
+#
+# Copyright (C) 2005,2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Georgi Stoimenov <georgistoimenov@abv.bg>, 2008
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: cgi-sample 1.1.1\n"
+"POT-Creation-Date: 2006-01-07 14:55+0900\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: Sava Chankov <sava.chankov@gmail.com>\n"
+"Language-Team: Bulgarian <ruby-on-rails-bulgaria@googlegroups.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: index.cgi:36
+msgid "an ERB/CGI sample (UTF-8)."
+msgstr "ERB/CGI пример (UTF-8)."
+
+#: index.cgi:37
+msgid ""
+"an ERB/CGI sample (UTF-8). This sample uses the same container as sample 1 "
+"but has a different rhtml file."
+msgstr ""
+"ERB/CGI пример (UTF-8). Този пример ползва същия контролер като пример 1 "
+"но с различен rhtml файл."
+
+#: index.cgi:38
+msgid "an ERB/CGI sample (Auto-Detect charset)."
+msgstr "ERB/CGI пример (автоматично разпознаване на кодирането)."
+
+#: index.cgi:50 cookie.cgi:44
+msgid "Sample script for CGI/ERB and Ruby-GetText-Package"
+msgstr "Примерен скрипт, ползващ CGI/ERB и Ruby-GetText-Package"
+
+#: index.cgi:55
+msgid "Ruby-GetText CGI sample scripts"
+msgstr "Ruby-GetText CGI примерни скриптове"
+
+#: index.cgi:57
+msgid "Supported Locales:"
+msgstr "Поддържани локали:"
+
+#: index.cgi:58
+msgid "Auto-Detect a locale from the WWW browser"
+msgstr "Аавтоматично разпознаване на локал, зададен от браузъра"
+
+#: index.cgi:66
+msgid "Set locale as a \"lang\" parameter"
+msgstr "Изберете локал с параметъре \"lang\""
+
+#: index.cgi:82
+msgid "Set \"lang\" to cookie."
+msgstr "\"lang\" като бисквитка (cookie)."
+
+#: index.cgi:83
+msgid ""
+"Click one of the link below, and then click \"Auto-Detect a locale from the "
+"WWW browser\" samples."
+msgstr ""
+"Щракнете върху една от връзките по-надолу и после на примерите с "
+"\"Автоматично разпознаване на локал, зададен от браузъра\"."
+
+#: index.cgi:92
+msgid "Source codes"
+msgstr "Изходен код"
+
+#: index.cgi:103
+msgid "index.cgi is also a Ruby-GetText sample script using CGI(not ERB)."
+msgstr "index.cgi е също така примерен скрипт, ползващ Ruby-GetText и CGI (без ERB)."
+
+#: cookie.cgi:50
+msgid "Set [%s] as the cookie of your WWW Browser."
+msgstr "[%s] като бисквитка (cookie) във вашия браузър."
+
+#: cookie.cgi:54
+msgid "Back"
+msgstr "Назад"
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/po/bs/helloerb1.po b/vendor/gems/gettext-2.1.0/samples/cgi/po/bs/helloerb1.po
new file mode 100644
index 000000000..ffb2b5c8c
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/po/bs/helloerb1.po
@@ -0,0 +1,59 @@
+# translation of helloerb1.po to Bosnian
+# CGI/ERB sample for Ruby-GetText-Package.
+# Copyright (C) 2005,2006 Masao Mutoh
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Sanjin Sehic <saserr@gmail.com>, 2007.
+msgid ""
+msgstr ""
+"Project-Id-Version: helloerb1\n"
+"POT-Creation-Date: 2006-01-07 14:48+0900\n"
+"PO-Revision-Date: 2007-03-20 20:32+0100\n"
+"Last-Translator: Sanjin Sehic <saserr@gmail.com>\n"
+"Language-Team: Bosnian <saserr@gmail.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#: helloerb1.cgi:32
+msgid "Sample script for CGI/ERB (UTF-8)."
+msgstr "Primjer skripte za CGI/ERB"
+
+#: helloerb.rhtml:5 other.rhtml:5
+msgid "Sample script for CGI/ERB and Ruby-GetText-Package"
+msgstr "Primjer skripte za CGI/ERB i Ruby on Rails GetText Paket"
+
+#: helloerb.rhtml:12
+msgid "Hello World"
+msgstr "Zdravo Svijetu"
+
+#: helloerb.rhtml:15 other.rhtml:11
+msgid "locale"
+msgstr "lokal"
+
+#: helloerb.rhtml:16 other.rhtml:12
+msgid "output_charset"
+msgstr "izlazni_charset"
+
+#: helloerb.rhtml:17 other.rhtml:13
+msgid "QUERY_STRING"
+msgstr "UPITNA_NISKA"
+
+#: helloerb.rhtml:19
+msgid "Call a library method which has another textdomain."
+msgstr "Pozovi biblioteku koja ima drugu tekst domenu."
+
+#: helloerb.rhtml:21 other.rhtml:15
+msgid "Back"
+msgstr "Nazad"
+
+#: other.rhtml:8
+msgid "Another sample"
+msgstr "Drugi primjer"
+
+#: other.rhtml:9
+msgid "This sample(other.rhtml) is the another ERB file of helloerb1.cgi."
+msgstr "Ovaj primjer(other.rhtml) je druga ERB datoteka helloerb1.cgi-a."
+
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/po/bs/helloerb2.po b/vendor/gems/gettext-2.1.0/samples/cgi/po/bs/helloerb2.po
new file mode 100644
index 000000000..6f93f7fb6
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/po/bs/helloerb2.po
@@ -0,0 +1,51 @@
+# translation of helloerb2.po to Bosnian
+# CGI/ERB sample for Ruby-GetText-Package.
+# Copyright (C) 2005,2006 Masao Mutoh
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Sanjin Sehic <saserr@gmail.com>, 2007.
+msgid ""
+msgstr ""
+"Project-Id-Version: helloerb2\n"
+"POT-Creation-Date: 2006-01-07 14:51+0900\n"
+"PO-Revision-Date: 2007-03-20 20:32+0100\n"
+"Last-Translator: Sanjin Sehic <saserr@gmail.com>\n"
+"Language-Team: Bosnian <saserr@gmail.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#: helloerb2.cgi:34
+msgid "Sample script for CGI/ERB (Auto-Detect charset)."
+msgstr "Primjer skripte za CGI/ERB (Auto-Detektovanje skupakaraktera)"
+
+#: helloerb.rhtml:5
+msgid "Sample script for CGI/ERB and Ruby-GetText-Package"
+msgstr "Primjer skripte za CGI/ERB i Ruby on Rails GetText Paket"
+
+#: helloerb.rhtml:12
+msgid "Hello World"
+msgstr "Zdravo Svijetu"
+
+#: helloerb.rhtml:15
+msgid "locale"
+msgstr "lokal"
+
+#: helloerb.rhtml:16
+msgid "output_charset"
+msgstr "izlazni_charset"
+
+#: helloerb.rhtml:17
+msgid "QUERY_STRING"
+msgstr "UPITNA_NISKA"
+
+#: helloerb.rhtml:19
+msgid "Call a library method which has another textdomain."
+msgstr "Pozovi biblioteku koja ima drugu tekst domenu."
+
+#: helloerb.rhtml:21
+msgid "Back"
+msgstr "Nazad"
+
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/po/bs/hellolib.po b/vendor/gems/gettext-2.1.0/samples/cgi/po/bs/hellolib.po
new file mode 100644
index 000000000..e4ee657f9
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/po/bs/hellolib.po
@@ -0,0 +1,23 @@
+# translation of hellolib.po to Bosnian
+# CGI/ERB sample for Ruby-GetText-Package.
+# Copyright (C) 2005,2006 Masao Mutoh
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Sanjin Sehic <saserr@gmail.com>, 2007.
+msgid ""
+msgstr ""
+"Project-Id-Version: hellolib\n"
+"POT-Creation-Date: 2006-01-07 14:53+0900\n"
+"PO-Revision-Date: 2007-03-20 20:19+0100\n"
+"Last-Translator: Sanjin Sehic <saserr@gmail.com>\n"
+"Language-Team: Bosnian <saserr@gmail.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#: hellolib.rb:19
+msgid "This message is from hellolib."
+msgstr "Ova poruka je iz hellolib-a."
+
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/po/bs/main.po b/vendor/gems/gettext-2.1.0/samples/cgi/po/bs/main.po
new file mode 100644
index 000000000..7a0a1aaa9
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/po/bs/main.po
@@ -0,0 +1,83 @@
+# translation of main.po to Bosnian
+# CGI/ERB sample for Ruby-GetText-Package.
+# Copyright (C) 2005,2006 Masao Mutoh
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Sanjin Sehic <saserr@gmail.com>, 2007.
+msgid ""
+msgstr ""
+"Project-Id-Version: main\n"
+"POT-Creation-Date: 2006-01-07 14:55+0900\n"
+"PO-Revision-Date: 2007-03-20 20:30+0100\n"
+"Last-Translator: Sanjin Sehic <saserr@gmail.com>\n"
+"Language-Team: Bosnian <saserr@gmail.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#: index.cgi:36
+msgid "an ERB/CGI sample (UTF-8)."
+msgstr "ERB-CGI primjer (UTF-8)"
+
+#: index.cgi:37
+msgid ""
+"an ERB/CGI sample (UTF-8). This sample uses the same container as sample 1 "
+"but has a different rhtml file."
+msgstr ""
+"ERB-CGI primjer (UTF-8). Ovaj primjer koristi isti kontejner kao primjer 1 "
+"ali ima drugačiji rhtml file"
+
+#: index.cgi:38
+msgid "an ERB/CGI sample (Auto-Detect charset)."
+msgstr "ERB-CGI primjer (Auto-Pronalaženje charset-a)"
+
+#: index.cgi:50 cookie.cgi:44
+msgid "Sample script for CGI/ERB and Ruby-GetText-Package"
+msgstr "Primjer skripte za CGI/ERB i Ruby GetText Paketa"
+
+#: index.cgi:55
+msgid "Ruby-GetText CGI sample scripts"
+msgstr "Ruby-GetText CGI primjer skripta"
+
+#: index.cgi:57
+msgid "Supported Locales:"
+msgstr "Podržani Lokali:"
+
+#: index.cgi:58
+msgid "Auto-Detect a locale from the WWW browser"
+msgstr "Auto-Pronalaženje lokala iz WWW preglednika"
+
+#: index.cgi:66
+msgid "Set locale as a \"lang\" parameter"
+msgstr "Postavi lokal kao \"lang\" parametar"
+
+#: index.cgi:82
+msgid "Set \"lang\" to cookie."
+msgstr "Postavi \"lang\" u cookie."
+
+#: index.cgi:83
+msgid ""
+"Click one of the link below, and then click \"Auto-Detect a locale from the "
+"WWW browser\" samples."
+msgstr ""
+"Izaberi jednu prećicu odozdo, i izaberi \"Auto-Pronalaženje lokala iz "
+"WWW preglednika\" primjer."
+
+#: index.cgi:92
+msgid "Source codes"
+msgstr "Izvorni kodovi"
+
+#: index.cgi:103
+msgid "index.cgi is also a Ruby-GetText sample script using CGI(not ERB)."
+msgstr "index.cgi je također Ruby-GetText primjer skripte koja koristi CGI(ne ERB)."
+
+#: cookie.cgi:50
+msgid "Set [%s] as the cookie of your WWW Browser."
+msgstr "Postavi [%s] kao cookie u vašem WWW Pregledniku."
+
+#: cookie.cgi:54
+msgid "Back"
+msgstr "Nazad"
+
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/po/ca/helloerb1.po b/vendor/gems/gettext-2.1.0/samples/cgi/po/ca/helloerb1.po
new file mode 100644
index 000000000..5cdc71d65
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/po/ca/helloerb1.po
@@ -0,0 +1,59 @@
+# CGI/ERB sample for Ruby-GetText-Package.
+#
+# Copyright (C) 2005,2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Ramon Salvadó <rsalvado at gnuine.com>, 2006.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: cgi-sample 1.1.1\n"
+"POT-Creation-Date: 2006-01-07 14:48+0900\n"
+"PO-Revision-Date: 2005-12-20 10:33+0900E\n"
+"Last-Translator: Ramon Salvadó <rsalvado at gnuine.com>\n"
+"Language-Team: Catalan\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: helloerb1.cgi:32
+msgid "Sample script for CGI/ERB (UTF-8)."
+msgstr "Script d'exemple per a CGI/ERB (UTF-8)."
+
+#: helloerb.rhtml:5 other.rhtml:5
+msgid "Sample script for CGI/ERB and Ruby-GetText-Package"
+msgstr "Script d'exemple per a CGI/ERB i Ruby-GetText-Package"
+
+#: helloerb.rhtml:12
+msgid "Hello World"
+msgstr "Hola Món"
+
+#: helloerb.rhtml:15 other.rhtml:11
+msgid "locale"
+msgstr ""
+
+#: helloerb.rhtml:16 other.rhtml:12
+msgid "output_charset"
+msgstr ""
+
+#: helloerb.rhtml:17 other.rhtml:13
+msgid "QUERY_STRING"
+msgstr ""
+
+#: helloerb.rhtml:19
+msgid "Call a library method which has another textdomain."
+msgstr "Crida a un mètode d'una llibreria que té un altre textdomain"
+
+#: helloerb.rhtml:21 other.rhtml:15
+msgid "Back"
+msgstr "Enrere"
+
+#: other.rhtml:8
+msgid "Another sample"
+msgstr "Un altre exemple"
+
+#: other.rhtml:9
+msgid "This sample(other.rhtml) is the another ERB file of helloerb1.cgi."
+msgstr "Aquest exemple(other.rhtml) és un altre fitxer ERB de helloerb1.cgi."
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/po/ca/helloerb2.po b/vendor/gems/gettext-2.1.0/samples/cgi/po/ca/helloerb2.po
new file mode 100644
index 000000000..e6352b19a
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/po/ca/helloerb2.po
@@ -0,0 +1,51 @@
+# CGI/ERB sample for Ruby-GetText-Package.
+#
+# Copyright (C) 2005,2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Ramon Salvadó <rsalvado at gnuine.com>, 2006.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: cgi-sample 1.1.1\n"
+"POT-Creation-Date: 2006-01-07 14:51+0900\n"
+"PO-Revision-Date: 2005-12-20 10:33+0900E\n"
+"Last-Translator: Ramon Salvadó <rsalvado at gnuine.com>\n"
+"Language-Team: Catalan\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: helloerb2.cgi:34
+msgid "Sample script for CGI/ERB (Auto-Detect charset)."
+msgstr "Script d'exemple per a CGI/ERB (Auto-detecció de charset)"
+
+#: helloerb.rhtml:5
+msgid "Sample script for CGI/ERB and Ruby-GetText-Package"
+msgstr "Script d'exemple per a CGI/ERB i Ruby-GetText-Package"
+
+#: helloerb.rhtml:12
+msgid "Hello World"
+msgstr "Hola Món"
+
+#: helloerb.rhtml:15
+msgid "locale"
+msgstr ""
+
+#: helloerb.rhtml:16
+msgid "output_charset"
+msgstr ""
+
+#: helloerb.rhtml:17
+msgid "QUERY_STRING"
+msgstr ""
+
+#: helloerb.rhtml:19
+msgid "Call a library method which has another textdomain."
+msgstr "Crida a un mètode d'una llibreria que té un altre textdomain."
+
+#: helloerb.rhtml:21
+msgid "Back"
+msgstr "Enrere"
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/po/ca/hellolib.po b/vendor/gems/gettext-2.1.0/samples/cgi/po/ca/hellolib.po
new file mode 100644
index 000000000..e29f35034
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/po/ca/hellolib.po
@@ -0,0 +1,23 @@
+# CGI/ERB sample for Ruby-GetText-Package.
+#
+# Copyright (C) 2005,2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Ramon Salvadó <rsalvado at gnuine.com>, 2006.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: cgi-sample 1.1.1\n"
+"POT-Creation-Date: 2006-01-07 14:53+0900\n"
+"PO-Revision-Date: 2005-12-20 10:33+0900E\n"
+"Last-Translator: Ramon Salvadó <rsalvado at gnuine.com>\n"
+"Language-Team: Catalan\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: hellolib.rb:19
+msgid "This message is from hellolib."
+msgstr "Aquest és el missatge de hellolib."
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/po/ca/main.po b/vendor/gems/gettext-2.1.0/samples/cgi/po/ca/main.po
new file mode 100644
index 000000000..a9c3b1ae5
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/po/ca/main.po
@@ -0,0 +1,83 @@
+# CGI/ERB sample for Ruby-GetText-Package.
+#
+# Copyright (C) 2005,2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Ramon Salvadó <rsalvado at gnuine.com>, 2006.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: cgi-sample 1.1.1\n"
+"POT-Creation-Date: 2006-01-07 14:55+0900\n"
+"PO-Revision-Date: 2005-12-20 10:33+0900E\n"
+"Last-Translator: Ramon Salvadó <rsalvado at gnuine.com>\n"
+"Language-Team: Catalan\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: index.cgi:36
+msgid "an ERB/CGI sample (UTF-8)."
+msgstr "un exemple d'ERB/CGI (UTF-8)."
+
+#: index.cgi:37
+msgid ""
+"an ERB/CGI sample (UTF-8). This sample uses the same container as sample 1 "
+"but has a different rhtml file."
+msgstr ""
+"Un exemple d'ERB/CGI (UTF-8). Aquest exemple utilitza el mateix contenidor que l'exemple 1 "
+"però té un fitxer rhtml diferent."
+
+#: index.cgi:38
+msgid "an ERB/CGI sample (Auto-Detect charset)."
+msgstr "un exemple d'ERB/CGI (Auto-detecció charset)."
+
+#: index.cgi:50 cookie.cgi:44
+msgid "Sample script for CGI/ERB and Ruby-GetText-Package"
+msgstr "Script d'exemple per CGI/ERB i Ruby-GetText-Package"
+
+#: index.cgi:55
+msgid "Ruby-GetText CGI sample scripts"
+msgstr "Scripts d'exemple per Ruby-GetText CGI"
+
+#: index.cgi:57
+msgid "Supported Locales:"
+msgstr "Locales suportats:"
+
+#: index.cgi:58
+msgid "Auto-Detect a locale from the WWW browser"
+msgstr "Auto-Detecció del locale des del navegador WWW"
+
+#: index.cgi:66
+msgid "Set locale as a \"lang\" parameter"
+msgstr "Fixa el locale com a paràmetre \"lang\""
+
+#: index.cgi:82
+msgid "Set \"lang\" to cookie."
+msgstr "Fixa \"lang\" a la galeta."
+
+#: index.cgi:83
+msgid ""
+"Click one of the link below, and then click \"Auto-Detect a locale from the "
+"WWW browser\" samples."
+msgstr ""
+"Clica un dels següents enllaços i seguidament clica a \"Exemples d'Auto-Detecció del locale des del "
+"navegador WWW\"."
+
+#: index.cgi:92
+msgid "Source codes"
+msgstr "Codis font"
+
+#: index.cgi:103
+msgid "index.cgi is also a Ruby-GetText sample script using CGI(not ERB)."
+msgstr "index.cgi és també un exemple de script Ruby-GetText utilitzant CGI(no ERB)."
+
+#: cookie.cgi:50
+msgid "Set [%s] as the cookie of your WWW Browser."
+msgstr "Fixa [%s] com la galeta del teu navegaor WWW."
+
+#: cookie.cgi:54
+msgid "Back"
+msgstr "Enrere"
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/po/cs/helloerb1.po b/vendor/gems/gettext-2.1.0/samples/cgi/po/cs/helloerb1.po
new file mode 100644
index 000000000..0aa369da0
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/po/cs/helloerb1.po
@@ -0,0 +1,61 @@
+# CGI/ERB sample for Ruby-GetText-Package.
+#
+# Copyright (C) 2005 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Karel Miarka <kajism@yahoo.com>, 2005.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: cgi-sample 1.1.1\n"
+"POT-Creation-Date: 2006-01-07 14:48+0900\n"
+"PO-Revision-Date: 2005-12-17 21:13+0100\n"
+"Last-Translator: Karel Miarka <kajism@yahoo.com>\n"
+"Language-Team: Czech\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%"
+"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+"X-Poedit-Language: Czech\n"
+
+#: helloerb1.cgi:32
+msgid "Sample script for CGI/ERB (UTF-8)."
+msgstr "Ukázkový skript pro CGI/ERB (UTF-8)."
+
+#: helloerb.rhtml:5 other.rhtml:5
+msgid "Sample script for CGI/ERB and Ruby-GetText-Package"
+msgstr "Ukázkový skript pro CGI/ERB a Ruby-GetText-Package"
+
+#: helloerb.rhtml:12
+msgid "Hello World"
+msgstr "Ahoj Světe"
+
+#: helloerb.rhtml:15 other.rhtml:11
+msgid "locale"
+msgstr "locale"
+
+#: helloerb.rhtml:16 other.rhtml:12
+msgid "output_charset"
+msgstr "output_charset"
+
+#: helloerb.rhtml:17 other.rhtml:13
+msgid "QUERY_STRING"
+msgstr "QUERY_STRING"
+
+#: helloerb.rhtml:19
+msgid "Call a library method which has another textdomain."
+msgstr "Zavolat knihovní metodu, která má jinou textdomain."
+
+#: helloerb.rhtml:21 other.rhtml:15
+msgid "Back"
+msgstr "Zpět"
+
+#: other.rhtml:8
+msgid "Another sample"
+msgstr "Další příklad"
+
+#: other.rhtml:9
+msgid "This sample(other.rhtml) is the another ERB file of helloerb1.cgi."
+msgstr "Tato úkázka (other.rhtml) je další z ERB souborů helloerb1.cgi."
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/po/cs/helloerb2.po b/vendor/gems/gettext-2.1.0/samples/cgi/po/cs/helloerb2.po
new file mode 100644
index 000000000..7f2709798
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/po/cs/helloerb2.po
@@ -0,0 +1,52 @@
+# CGI/ERB sample for Ruby-GetText-Package.
+#
+# Copyright (C) 2005 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Karel Miarka <kajism@yahoo.com>, 2005.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: cgi-sample 1.1.1\n"
+"POT-Creation-Date: 2006-01-07 14:51+0900\n"
+"PO-Revision-Date: 2005-12-17 21:16+0100\n"
+"Last-Translator: Karel Miarka <kajism@yahoo.com>\n"
+"Language-Team: Czech\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%"
+"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+
+#: helloerb2.cgi:34
+msgid "Sample script for CGI/ERB (Auto-Detect charset)."
+msgstr "Ukázkový skript pro CGI/ERB (Auto-Detect charset)."
+
+#: helloerb.rhtml:5
+msgid "Sample script for CGI/ERB and Ruby-GetText-Package"
+msgstr "Ukázkový skript pro CGI/ERB a Ruby-GetText-Package"
+
+#: helloerb.rhtml:12
+msgid "Hello World"
+msgstr "Ahoj Světe"
+
+#: helloerb.rhtml:15
+msgid "locale"
+msgstr "locale"
+
+#: helloerb.rhtml:16
+msgid "output_charset"
+msgstr "output_charset"
+
+#: helloerb.rhtml:17
+msgid "QUERY_STRING"
+msgstr "QUERY_STRING"
+
+#: helloerb.rhtml:19
+msgid "Call a library method which has another textdomain."
+msgstr "Zavolat knihovní metodu, která má jinou textdomain."
+
+#: helloerb.rhtml:21
+msgid "Back"
+msgstr "Zpět"
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/po/cs/hellolib.po b/vendor/gems/gettext-2.1.0/samples/cgi/po/cs/hellolib.po
new file mode 100644
index 000000000..7bf7dd3b7
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/po/cs/hellolib.po
@@ -0,0 +1,25 @@
+# CGI/ERB sample for Ruby-GetText-Package.
+#
+# Copyright (C) 2005 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Karel Miarka <kajism@yahoo.com>, 2005.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: cgi-sample 1.1.1\n"
+"POT-Creation-Date: 2006-01-07 14:53+0900\n"
+"PO-Revision-Date: 2005-12-17 21:20+0100\n"
+"Last-Translator: Karel Miarka <kajism@yahoo.com>\n"
+"Language-Team: Czech\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%"
+"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+"X-Poedit-Language: Czech\n"
+
+#: hellolib.rb:19
+msgid "This message is from hellolib."
+msgstr "Tato zpráva je z hellolib."
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/po/cs/main.po b/vendor/gems/gettext-2.1.0/samples/cgi/po/cs/main.po
new file mode 100644
index 000000000..47c2cd918
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/po/cs/main.po
@@ -0,0 +1,85 @@
+# CGI/ERB sample for Ruby-GetText-Package.
+#
+# Copyright (C) 2005 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Karel Miarka <kajism@yahoo.com>, 2005.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: cgi-sample 1.1.1\n"
+"POT-Creation-Date: 2006-01-07 14:55+0900\n"
+"PO-Revision-Date: 2005-12-17 21:28+0100\n"
+"Last-Translator: Karel Miarka <kajism@yahoo.com>\n"
+"Language-Team: Czech\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%"
+"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+"X-Poedit-Language: Czech\n"
+
+#: index.cgi:36
+msgid "an ERB/CGI sample (UTF-8)."
+msgstr "ukázka ERB/CGI (UTF-8)"
+
+#: index.cgi:37
+msgid ""
+"an ERB/CGI sample (UTF-8). This sample uses the same container as sample 1 "
+"but has a different rhtml file."
+msgstr ""
+"ukázka ERB/CGI (UTF-8). Tato ukázka používá stejný container jako ukázka 1, "
+"ale jiný rhtml soubor."
+
+#: index.cgi:38
+msgid "an ERB/CGI sample (Auto-Detect charset)."
+msgstr "ukázka ERB/CGI (Auto-Detect charset)."
+
+#: index.cgi:50 cookie.cgi:44
+msgid "Sample script for CGI/ERB and Ruby-GetText-Package"
+msgstr "Ukázkový skript pro CGI/ERB a Ruby-GetText-Package"
+
+#: index.cgi:55
+msgid "Ruby-GetText CGI sample scripts"
+msgstr "Ruby-GetText ukázkový CGI skript"
+
+#: index.cgi:57
+msgid "Supported Locales:"
+msgstr "Podporované jazyky:"
+
+#: index.cgi:58
+msgid "Auto-Detect a locale from the WWW browser"
+msgstr "Automatická detekce jazyka z WWW prohlížeče"
+
+#: index.cgi:66
+msgid "Set locale as a \"lang\" parameter"
+msgstr "Nastavit jazyk parametrem \"lang\""
+
+#: index.cgi:82
+msgid "Set \"lang\" to cookie."
+msgstr "Nastavit cookie \"lang\""
+
+#: index.cgi:83
+msgid ""
+"Click one of the link below, and then click \"Auto-Detect a locale from the "
+"WWW browser\" samples."
+msgstr ""
+"Klikněte na jeden z níže uvedených odkazů a pak klikněte na \"Automatická "
+"detekce jazyka z WWW prohlížeče\"."
+
+#: index.cgi:92
+msgid "Source codes"
+msgstr "Zdrojové kódy"
+
+#: index.cgi:103
+msgid "index.cgi is also a Ruby-GetText sample script using CGI(not ERB)."
+msgstr "index.cgi je také ukázka Ruby-GetText CGI skriptu (bez ERB)."
+
+#: cookie.cgi:50
+msgid "Set [%s] as the cookie of your WWW Browser."
+msgstr "Nastavit [%s] jako cookie Vašeho WWW prohlížeče."
+
+#: cookie.cgi:54
+msgid "Back"
+msgstr "Zpět"
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/po/de/helloerb1.po b/vendor/gems/gettext-2.1.0/samples/cgi/po/de/helloerb1.po
new file mode 100644
index 000000000..7c82708bd
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/po/de/helloerb1.po
@@ -0,0 +1,61 @@
+# CGI/ERB sample for Ruby-GetText-Package.
+#
+# Copyright (C) 2005,2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Detlef Reichl <detlef!reichl()gmx!org, 2005
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: cgi-sample 1.1.1\n"
+"POT-Creation-Date: 2006-01-07 14:48+0900\n"
+"PO-Revision-Date: 2005-04-24 17:10+0100\n"
+"Last-Translator: Detlef Reichl <detlef!reichl()gmx!org\n"
+"Language-Team: German\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: helloerb1.cgi:32
+msgid "Sample script for CGI/ERB (UTF-8)."
+msgstr "Beispielskript für CGI/ERB (UTF-8)."
+
+#: helloerb.rhtml:5 other.rhtml:5
+msgid "Sample script for CGI/ERB and Ruby-GetText-Package"
+msgstr "Beispielskript für CGI/ERB und Ruby-GetText-Paket"
+
+#: helloerb.rhtml:12
+msgid "Hello World"
+msgstr "Hallo Welt"
+
+#: helloerb.rhtml:15 other.rhtml:11
+msgid "locale"
+msgstr ""
+
+#: helloerb.rhtml:16 other.rhtml:12
+msgid "output_charset"
+msgstr ""
+
+#: helloerb.rhtml:17 other.rhtml:13
+msgid "QUERY_STRING"
+msgstr ""
+
+#: helloerb.rhtml:19
+msgid "Call a library method which has another textdomain."
+msgstr "Aufruf einer Bibiotheksmethode welche eine andere textdomain hat."
+
+#: helloerb.rhtml:21 other.rhtml:15
+msgid "Back"
+msgstr "Zurück"
+
+#: other.rhtml:8
+msgid "Another sample"
+msgstr "Ein weiteres Beispiel"
+
+#: other.rhtml:9
+msgid "This sample(other.rhtml) is the another ERB file of helloerb1.cgi."
+msgstr ""
+"Dieses Beispiel (other.rhtml) ist eine weitere ERB-Datei von helloerb1.cgi."
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/po/de/helloerb2.po b/vendor/gems/gettext-2.1.0/samples/cgi/po/de/helloerb2.po
new file mode 100644
index 000000000..1d443d22c
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/po/de/helloerb2.po
@@ -0,0 +1,52 @@
+# CGI/ERB sample for Ruby-GetText-Package.
+#
+# Copyright (C) 2005,2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Detlef Reichl <detlef!reichl()gmx!org, 2005.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: cgi-sample 1.1.1\n"
+"POT-Creation-Date: 2006-01-07 14:51+0900\n"
+"PO-Revision-Date: 2005-04-24 17:10+0100\n"
+"Last-Translator: Detlef Reichl <detlef!reichl()gmx!org\n"
+"Language-Team: German\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: helloerb2.cgi:34
+msgid "Sample script for CGI/ERB (Auto-Detect charset)."
+msgstr "Beispielskript für CGI/ERB (Autoerkennung des Zeichensatzes)"
+
+#: helloerb.rhtml:5
+msgid "Sample script for CGI/ERB and Ruby-GetText-Package"
+msgstr "Beispielskript für CGI/ERB und Ruby-GetText-Paket"
+
+#: helloerb.rhtml:12
+msgid "Hello World"
+msgstr "Hallo Welt"
+
+#: helloerb.rhtml:15
+msgid "locale"
+msgstr ""
+
+#: helloerb.rhtml:16
+msgid "output_charset"
+msgstr ""
+
+#: helloerb.rhtml:17
+msgid "QUERY_STRING"
+msgstr ""
+
+#: helloerb.rhtml:19
+msgid "Call a library method which has another textdomain."
+msgstr "Aufruf einer Bibiotheksmethode welche eine andere textdomain hat."
+
+#: helloerb.rhtml:21
+msgid "Back"
+msgstr "Zurück"
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/po/de/hellolib.po b/vendor/gems/gettext-2.1.0/samples/cgi/po/de/hellolib.po
new file mode 100644
index 000000000..d5b1f1c21
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/po/de/hellolib.po
@@ -0,0 +1,24 @@
+# CGI/ERB sample for Ruby-GetText-Package.
+#
+# Copyright (C) 2005,2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Detlef Reichl <detlef!reichl()gmx!org, 2005.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: cgi-sample 1.1.1\n"
+"POT-Creation-Date: 2006-01-07 14:53+0900\n"
+"PO-Revision-Date: 2005-04-24 17:10+0100\n"
+"Last-Translator: Detlef Reichl <detlef!reichl()gmx!org\n"
+"Language-Team: German\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: hellolib.rb:19
+msgid "This message is from hellolib."
+msgstr "Diese Meldung kommt von hellolib."
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/po/de/main.po b/vendor/gems/gettext-2.1.0/samples/cgi/po/de/main.po
new file mode 100644
index 000000000..b3880623b
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/po/de/main.po
@@ -0,0 +1,86 @@
+# CGI/ERB sample for Ruby-GetText-Package.
+#
+# Copyright (C) 2005,2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Detlef Reichl <detlef!reichl()gmx!org, 2005.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: cgi-sample 1.1.1\n"
+"POT-Creation-Date: 2006-01-07 14:55+0900\n"
+"PO-Revision-Date: 2005-04-24 17:10+0100\n"
+"Last-Translator: Detlef Reichl <detlef!reichl()gmx!org\n"
+"Language-Team: German\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: index.cgi:36
+msgid "an ERB/CGI sample (UTF-8)."
+msgstr "ein ERB/CGI Beispiel (UTF-8)."
+
+#: index.cgi:37
+msgid ""
+"an ERB/CGI sample (UTF-8). This sample uses the same container as sample 1 "
+"but has a different rhtml file."
+msgstr ""
+"ein ERB/CGI Beispiel (UTF-8). Diese Beispiel verwendet den gleichen "
+"Container wie Beispiel 1 aber eine andere rhtml-Datei."
+
+#: index.cgi:38
+msgid "an ERB/CGI sample (Auto-Detect charset)."
+msgstr "Beispielskript für CGI/ERB (Autoerkennung des Zeichensatzes)"
+
+#: index.cgi:50 cookie.cgi:44
+msgid "Sample script for CGI/ERB and Ruby-GetText-Package"
+msgstr "Beispielskript für CGI/ERB und Ruby-GetText-Paket"
+
+#: index.cgi:55
+msgid "Ruby-GetText CGI sample scripts"
+msgstr "Ruby-GetText CGI Beispielskript"
+
+#: index.cgi:57
+msgid "Supported Locales:"
+msgstr "Unterstützte Locales:"
+
+#: index.cgi:58
+msgid "Auto-Detect a locale from the WWW browser"
+msgstr "Auto-Erkennung eines locale vom Webbrowser"
+
+#: index.cgi:66
+msgid "Set locale as a \"lang\" parameter"
+msgstr "Setze locale als einen \"lang\" Parameter"
+
+#: index.cgi:82
+msgid "Set \"lang\" to cookie."
+msgstr "Setze \"lang\" als Cookie."
+
+#: index.cgi:83
+msgid ""
+"Click one of the link below, and then click \"Auto-Detect a locale from the "
+"WWW browser\" samples."
+msgstr ""
+"Klicke auf den unteren Link und dann klicke \"Auto-Erkennung eines locale "
+"vom Webbrowser\" Beispiele."
+
+#: index.cgi:92
+msgid "Source codes"
+msgstr "Quelltexte"
+
+#: index.cgi:103
+msgid "index.cgi is also a Ruby-GetText sample script using CGI(not ERB)."
+msgstr ""
+"index.cgi ist ebenso ein Ruby-GetText Beispielskript das CGI nutzt (nicht "
+"ERB)."
+
+#: cookie.cgi:50
+msgid "Set [%s] as the cookie of your WWW Browser."
+msgstr "Setze [%s] als ein Cookie Deines Webbrowsers."
+
+#: cookie.cgi:54
+msgid "Back"
+msgstr "Zurück"
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/po/el/helloerb1.po b/vendor/gems/gettext-2.1.0/samples/cgi/po/el/helloerb1.po
new file mode 100644
index 000000000..4dff23986
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/po/el/helloerb1.po
@@ -0,0 +1,60 @@
+# CGI/ERB sample for Ruby-GetText-Package.
+#
+# Copyright (C) 2005,2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# damphyr <damphyr@gmx.net>, 2006.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: cgi-sample 1.1.1\n"
+"POT-Creation-Date: 2006-01-07 14:48+0900\n"
+"PO-Revision-Date: 2006-01-06 19:50+0100\n"
+"Last-Translator: damphyr <damphyr@gmx.net>\n"
+"Language-Team: Greek\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: helloerb1.cgi:32
+msgid "Sample script for CGI/ERB (UTF-8)."
+msgstr "Υπόδειγμα για CGI/ERB (UTF-8)."
+
+#: helloerb.rhtml:5 other.rhtml:5
+msgid "Sample script for CGI/ERB and Ruby-GetText-Package"
+msgstr "Υπόδειγμα για CGI/ERB και τη βιβλιοθήκη Ruby-GetText"
+
+#: helloerb.rhtml:12
+msgid "Hello World"
+msgstr "Γειά σου Κόσμε"
+
+#: helloerb.rhtml:15 other.rhtml:11
+msgid "locale"
+msgstr "locale"
+
+#: helloerb.rhtml:16 other.rhtml:12
+msgid "output_charset"
+msgstr "output_charset"
+
+#: helloerb.rhtml:17 other.rhtml:13
+msgid "QUERY_STRING"
+msgstr "QUERY_STRING"
+
+#: helloerb.rhtml:19
+msgid "Call a library method which has another textdomain."
+msgstr "Κλήση μεθόδου βιβλιοθήκης που έχει διαφορετικό πεδίο κειμένου"
+
+#: helloerb.rhtml:21 other.rhtml:15
+msgid "Back"
+msgstr "Πίσω"
+
+#: other.rhtml:8
+msgid "Another sample"
+msgstr "Άλλο ένα υπόδειγμα"
+
+#: other.rhtml:9
+msgid "This sample(other.rhtml) is the another ERB file of helloerb1.cgi."
+msgstr ""
+"Αυτό το υπόδειγμα (other.rhtml) είναι άλλο ένα ERB αρχείο του helloerb1.cgi."
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/po/el/helloerb2.po b/vendor/gems/gettext-2.1.0/samples/cgi/po/el/helloerb2.po
new file mode 100644
index 000000000..448db25e0
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/po/el/helloerb2.po
@@ -0,0 +1,51 @@
+# CGI/ERB sample for Ruby-GetText-Package.
+#
+# Copyright (C) 2005,2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# damphyr <damphyr@gmx.net>, 2006.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: cgi-sample 1.1.1\n"
+"POT-Creation-Date: 2006-01-07 14:51+0900\n"
+"PO-Revision-Date: 2006-01-06 19:50+0100\n"
+"Last-Translator: damphyr <damphyr@gmx.net>\n"
+"Language-Team: Greek\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: helloerb2.cgi:34
+msgid "Sample script for CGI/ERB (Auto-Detect charset)."
+msgstr "Υπόδειγμα για CGI/ERB (Αυτόματη αναγνώριση συνόλου χρακτήρων)"
+
+#: helloerb.rhtml:5
+msgid "Sample script for CGI/ERB and Ruby-GetText-Package"
+msgstr "Υπόδειγμα για CGI/ERB και τη βιβλιοθήκη Ruby-GetText"
+
+#: helloerb.rhtml:12
+msgid "Hello World"
+msgstr "Γειά σου Κόσμε"
+
+#: helloerb.rhtml:15
+msgid "locale"
+msgstr "locale"
+
+#: helloerb.rhtml:16
+msgid "output_charset"
+msgstr "output_charset"
+
+#: helloerb.rhtml:17
+msgid "QUERY_STRING"
+msgstr "QUERY_STRING"
+
+#: helloerb.rhtml:19
+msgid "Call a library method which has another textdomain."
+msgstr "Κλήση μεθόδου βιβλιοθήκης που έχει διαφορετικό πεδίο κειμένου"
+
+#: helloerb.rhtml:21
+msgid "Back"
+msgstr "Πίσω"
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/po/el/hellolib.po b/vendor/gems/gettext-2.1.0/samples/cgi/po/el/hellolib.po
new file mode 100644
index 000000000..88ce0aae6
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/po/el/hellolib.po
@@ -0,0 +1,23 @@
+# CGI/ERB sample for Ruby-GetText-Package.
+#
+# Copyright (C) 2005,2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# damphyr <damphyr@gmx.net>, 2006.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: cgi-sample 1.1.1\n"
+"POT-Creation-Date: 2006-01-07 14:53+0900\n"
+"PO-Revision-Date: 2006-01-06 19:50+0100\n"
+"Last-Translator: damphyr <damphyr@gmx.net>\n"
+"Language-Team: Greek\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: hellolib.rb:19
+msgid "This message is from hellolib."
+msgstr "Αυτό το μύνημα είναι από τη hellolib."
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/po/el/main.po b/vendor/gems/gettext-2.1.0/samples/cgi/po/el/main.po
new file mode 100644
index 000000000..b57b3a9c2
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/po/el/main.po
@@ -0,0 +1,84 @@
+# CGI/ERB sample for Ruby-GetText-Package.
+#
+# Copyright (C) 2005,2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# damphyr <damphyr@gmx.net>, 2006.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: cgi-sample 1.1.1\n"
+"POT-Creation-Date: 2006-01-07 14:55+0900\n"
+"PO-Revision-Date: 2006-01-06 19:50+0100\n"
+"Last-Translator: damphyr <damphyr@gmx.net>\n"
+"Language-Team: Greek\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: index.cgi:36
+msgid "an ERB/CGI sample (UTF-8)."
+msgstr "ένα υπόδειγμα ERB/CGI (UTF-8)."
+
+#: index.cgi:37
+msgid ""
+"an ERB/CGI sample (UTF-8). This sample uses the same container as sample 1 "
+"but has a different rhtml file."
+msgstr "ένα υπόδειγμα ERB/CGI (UTF-8). Αυτό το υπόδειγμα χρησιμοποιεί "
+
+#: index.cgi:38
+msgid "an ERB/CGI sample (Auto-Detect charset)."
+msgstr "ένα υπόδειγμα για CGI/ERB (αυτόματη αναγνώριση συνόλου χρακτήρων)"
+
+#: index.cgi:50 cookie.cgi:44
+msgid "Sample script for CGI/ERB and Ruby-GetText-Package"
+msgstr "Υπόδειγμα για CGI/ERB και τη βιβλιοθήκη Ruby-GetText"
+
+#: index.cgi:55
+msgid "Ruby-GetText CGI sample scripts"
+msgstr "Ruby-GetText υποδείγματα CGI"
+
+#: index.cgi:57
+msgid "Supported Locales:"
+msgstr "Υποστηριζόμενα locale"
+
+#: index.cgi:58
+msgid "Auto-Detect a locale from the WWW browser"
+msgstr "Αυτόματη αναγνώριση locale από τον browser"
+
+#: index.cgi:66
+msgid "Set locale as a \"lang\" parameter"
+msgstr "Set locale as a \"lang\" parameter"
+
+#: index.cgi:82
+msgid "Set \"lang\" to cookie."
+msgstr "Set \"lang\" to cookie."
+
+#: index.cgi:83
+msgid ""
+"Click one of the link below, and then click \"Auto-Detect a locale from the "
+"WWW browser\" samples."
+msgstr ""
+"Ακολούθησε έναν από τους δεσμούς και επέλεξε τα υποδείγματα \"Αυτόματη "
+"αναγνώριση locale από τον browser\""
+
+#: index.cgi:92
+msgid "Source codes"
+msgstr "Κώδικας"
+
+#: index.cgi:103
+msgid "index.cgi is also a Ruby-GetText sample script using CGI(not ERB)."
+msgstr ""
+"Το index.cgi είναι επίσης ένα υπόδειγμα χρήσης Ruby-GetText με CGI (χωρίς "
+"ERB)"
+
+#: cookie.cgi:50
+msgid "Set [%s] as the cookie of your WWW Browser."
+msgstr ""
+"Θέσε [%s] ως το μπισκότο του ξεφυλιστή σου (αστείο είναι, όχι μετάφραση)"
+
+#: cookie.cgi:54
+msgid "Back"
+msgstr "Πίσω"
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/po/eo/helloerb1.po b/vendor/gems/gettext-2.1.0/samples/cgi/po/eo/helloerb1.po
new file mode 100644
index 000000000..0e2fd251c
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/po/eo/helloerb1.po
@@ -0,0 +1,60 @@
+# CGI/ERB sample for Ruby-GetText-Package.
+#
+# Copyright (C) 2005,2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Malte Milatz <malte@gmx-topmail.de>, 2006.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: cgi-sample 1.1.1\n"
+"POT-Creation-Date: 2006-01-07 14:48+0900\n"
+"PO-Revision-Date: 2005-04-23 12:44+0900\n"
+"Last-Translator: Malte Milatz <malte@gmx-topmail.de>\n"
+"Language-Team: Esperanto\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: helloerb1.cgi:32
+msgid "Sample script for CGI/ERB (UTF-8)."
+msgstr "Programekzemplo pri CGI/ERB (UTF-8)."
+
+#: helloerb.rhtml:5 other.rhtml:5
+msgid "Sample script for CGI/ERB and Ruby-GetText-Package"
+msgstr "Programekzemplo pri CGI/ERB kaj Ruby-GetText."
+
+#: helloerb.rhtml:12
+msgid "Hello World"
+msgstr "Saluton!"
+
+#: helloerb.rhtml:15 other.rhtml:11
+msgid "locale"
+msgstr "lokaĵaro"
+
+#: helloerb.rhtml:16 other.rhtml:12
+msgid "output_charset"
+msgstr "eliga_signaro"
+
+#: helloerb.rhtml:17 other.rhtml:13
+msgid "QUERY_STRING"
+msgstr "INFORMMENDA_FRAZO"
+
+#: helloerb.rhtml:19
+msgid "Call a library method which has another textdomain."
+msgstr "Voki metodon en alia tekstdomajno."
+
+#: helloerb.rhtml:21 other.rhtml:15
+msgid "Back"
+msgstr "Reen"
+
+#: other.rhtml:8
+msgid "Another sample"
+msgstr "Plia ekzemplo"
+
+#: other.rhtml:9
+msgid "This sample(other.rhtml) is the another ERB file of helloerb1.cgi."
+msgstr "Ĉi tiu ERB-dosiero (other.rhtml) estas alternativo por helloerb1.cgi."
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/po/eo/helloerb2.po b/vendor/gems/gettext-2.1.0/samples/cgi/po/eo/helloerb2.po
new file mode 100644
index 000000000..293bd7503
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/po/eo/helloerb2.po
@@ -0,0 +1,52 @@
+# CGI/ERB sample for Ruby-GetText-Package.
+#
+# Copyright (C) 2005,2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Malte Milatz <malte@gmx-topmail.de>, 2006.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: cgi-sample 1.1.1\n"
+"POT-Creation-Date: 2006-01-07 14:51+0900\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: Malte Milatz <malte@gmx-topmail.de>\n"
+"Language-Team: Esperanto\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: helloerb2.cgi:34
+msgid "Sample script for CGI/ERB (Auto-Detect charset)."
+msgstr "Programekzemplo pri CGI/ERB (signaro divenata)."
+
+#: helloerb.rhtml:5
+msgid "Sample script for CGI/ERB and Ruby-GetText-Package"
+msgstr "Programekzemplo pri CGI/ERB kaj Ruby-GetText"
+
+#: helloerb.rhtml:12
+msgid "Hello World"
+msgstr "Saluton!"
+
+#: helloerb.rhtml:15
+msgid "locale"
+msgstr "lokaĵaro"
+
+#: helloerb.rhtml:16
+msgid "output_charset"
+msgstr "eliga_signaro"
+
+#: helloerb.rhtml:17
+msgid "QUERY_STRING"
+msgstr "INFORMMENDA_FRAZO"
+
+#: helloerb.rhtml:19
+msgid "Call a library method which has another textdomain."
+msgstr "Voki metodon en alia tekstdomajno."
+
+#: helloerb.rhtml:21
+msgid "Back"
+msgstr "Reen"
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/po/eo/hellolib.po b/vendor/gems/gettext-2.1.0/samples/cgi/po/eo/hellolib.po
new file mode 100644
index 000000000..f0447e71e
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/po/eo/hellolib.po
@@ -0,0 +1,24 @@
+# CGI/ERB sample for Ruby-GetText-Package.
+#
+# Copyright (C) 2005,2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Malte Milatz <malte@gmx-topmail.de>, 2006.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: cgi-sample 1.1.1\n"
+"POT-Creation-Date: 2006-01-07 14:53+0900\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: Malte Milatz <malte@gmx-topmail.de>\n"
+"Language-Team: Esperanto\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: hellolib.rb:19
+msgid "This message is from hellolib."
+msgstr "Ĉi tiu frazo devenas de hellolib."
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/po/eo/main.po b/vendor/gems/gettext-2.1.0/samples/cgi/po/eo/main.po
new file mode 100644
index 000000000..380dc88a7
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/po/eo/main.po
@@ -0,0 +1,84 @@
+# CGI/ERB sample for Ruby-GetText-Package.
+#
+# Copyright (C) 2005,2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Malte Milatz <malte@gmx-topmail.de>, 2006.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: cgi-sample 1.1.1\n"
+"POT-Creation-Date: 2006-01-07 14:55+0900\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: Malte Milatz <malte@gmx-topmail.de>\n"
+"Language-Team: Esperanto\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: index.cgi:36
+msgid "an ERB/CGI sample (UTF-8)."
+msgstr "programekzemplo pri ERB/CGI (UTF-8)."
+
+#: index.cgi:37
+msgid ""
+"an ERB/CGI sample (UTF-8). This sample uses the same container as sample 1 "
+"but has a different rhtml file."
+msgstr ""
+"ekzemplo pri ERB/CGI (UTF-8), kiu uzas la saman ujon kiel la unua ekzemplo "
+"sed alian rhtml-dosieron."
+
+#: index.cgi:38
+msgid "an ERB/CGI sample (Auto-Detect charset)."
+msgstr "Ekzemplo pri ERB/CGI (aŭtomata diveno de la signaro)."
+
+#: index.cgi:50 cookie.cgi:44
+msgid "Sample script for CGI/ERB and Ruby-GetText-Package"
+msgstr "Ekzemplo pri ERB/CGI kaj Ruby-GetText"
+
+#: index.cgi:55
+msgid "Ruby-GetText CGI sample scripts"
+msgstr "Programekzemploj pri Ruby-GetText kaj CGI"
+
+#: index.cgi:57
+msgid "Supported Locales:"
+msgstr "Disponeblaj lokaĵaroj:"
+
+#: index.cgi:58
+msgid "Auto-Detect a locale from the WWW browser"
+msgstr "Elekto de la lokaĵaron surbaze de krozilaj informoj"
+
+#: index.cgi:66
+msgid "Set locale as a \"lang\" parameter"
+msgstr "Agordo de la lokaĵaro per la parametro \"lang\""
+
+#: index.cgi:82
+msgid "Set \"lang\" to cookie."
+msgstr "Registro de \"lang\" en kuketon."
+
+#: index.cgi:83
+msgid ""
+"Click one of the link below, and then click \"Auto-Detect a locale from the "
+"WWW browser\" samples."
+msgstr ""
+"Alklaku unu el la jenaj ligiloj, poste alklaku \"Elekto de la lokaĵaro "
+"surbaze de krozilaj informoj."
+
+#: index.cgi:92
+msgid "Source codes"
+msgstr "Fontkodo"
+
+#: index.cgi:103
+msgid "index.cgi is also a Ruby-GetText sample script using CGI(not ERB)."
+msgstr "index.cgi estas programekzemplo pri Ruby-GetText kaj CGI (ne ERB)."
+
+#: cookie.cgi:50
+msgid "Set [%s] as the cookie of your WWW Browser."
+msgstr "Registru [%s] en krozilan kuketon."
+
+#: cookie.cgi:54
+msgid "Back"
+msgstr "Reen"
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/po/es/helloerb1.po b/vendor/gems/gettext-2.1.0/samples/cgi/po/es/helloerb1.po
new file mode 100644
index 000000000..62a600f52
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/po/es/helloerb1.po
@@ -0,0 +1,59 @@
+# CGI/ERB sample for Ruby-GetText-Package.
+#
+# Copyright (C) 2005 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# David Moreno Garza <damog at damog.net>, 2005.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: cgi-sample 1.1.1\n"
+"POT-Creation-Date: 2006-01-07 14:48+0900\n"
+"PO-Revision-Date: 2005-04-23 12:44+0900\n"
+"Last-Translator: David Moreno Garza <damog at damog.net>\n"
+"Language-Team: Spanish\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: helloerb1.cgi:32
+msgid "Sample script for CGI/ERB (UTF-8)."
+msgstr "Script de ejemplo para CGI/ERB (UTF-8)."
+
+#: helloerb.rhtml:5 other.rhtml:5
+msgid "Sample script for CGI/ERB and Ruby-GetText-Package"
+msgstr "Script de ejemplo para CGI/RB y Ruby-GetText-Package"
+
+#: helloerb.rhtml:12
+msgid "Hello World"
+msgstr "Hola Mundo"
+
+#: helloerb.rhtml:15 other.rhtml:11
+msgid "locale"
+msgstr "locale"
+
+#: helloerb.rhtml:16 other.rhtml:12
+msgid "output_charset"
+msgstr "charset_de_salida"
+
+#: helloerb.rhtml:17 other.rhtml:13
+msgid "QUERY_STRING"
+msgstr "CADENA_DE_CONSULTA"
+
+#: helloerb.rhtml:19
+msgid "Call a library method which has another textdomain."
+msgstr "Llama al método de una biblioteca la cual tienen otro textdomain."
+
+#: helloerb.rhtml:21 other.rhtml:15
+msgid "Back"
+msgstr "Regresar"
+
+#: other.rhtml:8
+msgid "Another sample"
+msgstr "Otro ejemplo"
+
+#: other.rhtml:9
+msgid "This sample(other.rhtml) is the another ERB file of helloerb1.cgi."
+msgstr "Este ejemplo (otro.rhtml) is otro archivo ERB de helloerb1.cgi."
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/po/es/helloerb2.po b/vendor/gems/gettext-2.1.0/samples/cgi/po/es/helloerb2.po
new file mode 100644
index 000000000..2f1bb16db
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/po/es/helloerb2.po
@@ -0,0 +1,50 @@
+# CGI/ERB sample for Ruby-GetText-Package.
+#
+# Copyright (C) 2005,2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# David Moreno Garza <damog at damog.net>, 2005.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: cgi-sample 1.1.1\n"
+"POT-Creation-Date: 2006-01-07 14:51+0900\n"
+"Last-Translator: David Moreno Garza <damog at damog.net>\n"
+"Language-Team: Spanish\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: helloerb2.cgi:34
+msgid "Sample script for CGI/ERB (Auto-Detect charset)."
+msgstr "Script de ejemplo para CGI/ERB (charset Auto-Detect)."
+
+#: helloerb.rhtml:5
+msgid "Sample script for CGI/ERB and Ruby-GetText-Package"
+msgstr "Script de ejemplo para CGI/ERB y Ruby-GetText-Package"
+
+#: helloerb.rhtml:12
+msgid "Hello World"
+msgstr "Hola Mundo"
+
+#: helloerb.rhtml:15
+msgid "locale"
+msgstr "locale"
+
+#: helloerb.rhtml:16
+msgid "output_charset"
+msgstr "charset_de_salida"
+
+#: helloerb.rhtml:17
+msgid "QUERY_STRING"
+msgstr "CADENA_DE_CONSULTA"
+
+#: helloerb.rhtml:19
+msgid "Call a library method which has another textdomain."
+msgstr "Llama al método de una biblioteca la cual tiene otro textdomain."
+
+#: helloerb.rhtml:21
+msgid "Back"
+msgstr "Regresar"
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/po/es/hellolib.po b/vendor/gems/gettext-2.1.0/samples/cgi/po/es/hellolib.po
new file mode 100644
index 000000000..cd737ac0b
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/po/es/hellolib.po
@@ -0,0 +1,22 @@
+# CGI/ERB sample for Ruby-GetText-Package.
+#
+# Copyright (C) 2005,2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# David Moreno Garza <damog at damog.net>, 2005.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: cgi-sample 1.1.1\n"
+"POT-Creation-Date: 2006-01-07 14:53+0900\n"
+"Last-Translator: David Moreno Garza <damog at damog.net>\n"
+"Language-Team: Spanish\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: hellolib.rb:19
+msgid "This message is from hellolib."
+msgstr "Este mensaje es de hellolib."
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/po/es/main.po b/vendor/gems/gettext-2.1.0/samples/cgi/po/es/main.po
new file mode 100644
index 000000000..6933ad749
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/po/es/main.po
@@ -0,0 +1,83 @@
+# CGI/ERB sample for Ruby-GetText-Package.
+#
+# Copyright (C) 2005,2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# David Moreno Garza <damog at damog.net>, 2005.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: cgi-sample 1.1.1\n"
+"POT-Creation-Date: 2006-01-07 14:55+0900\n"
+"Last-Translator: David Moreno Garza <damog at damog.net>\n"
+"Language-Team: Spanish\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: index.cgi:36
+msgid "an ERB/CGI sample (UTF-8)."
+msgstr "un ejemplo ERB/CGI (UTF-8)."
+
+#: index.cgi:37
+msgid ""
+"an ERB/CGI sample (UTF-8). This sample uses the same container as sample 1 "
+"but has a different rhtml file."
+msgstr ""
+"un ejemplo ERB/CGI (UTF-8). Este ejemplo utiliza el mismo contenedor como "
+"prueba 1 pero tiene otro archivo rhtml."
+
+#: index.cgi:38
+msgid "an ERB/CGI sample (Auto-Detect charset)."
+msgstr "un ejemplo ERB/CGI (charset Auto-Detect)."
+
+#: index.cgi:50 cookie.cgi:44
+msgid "Sample script for CGI/ERB and Ruby-GetText-Package"
+msgstr "Script de ejemplo para CGI/ERB y Ruby-GetText-Package"
+
+#: index.cgi:55
+msgid "Ruby-GetText CGI sample scripts"
+msgstr "Scripts de ejemplo CGI de Ruby-GetText"
+
+#: index.cgi:57
+msgid "Supported Locales:"
+msgstr "Locales soportadas:"
+
+#: index.cgi:58
+msgid "Auto-Detect a locale from the WWW browser"
+msgstr "Auto-detectar la locale del navegador web"
+
+#: index.cgi:66
+msgid "Set locale as a \"lang\" parameter"
+msgstr "Definir la locale como el parámetro \"lang\""
+
+#: index.cgi:82
+msgid "Set \"lang\" to cookie."
+msgstr "Definir \"lang\" como una cookie."
+
+#: index.cgi:83
+msgid ""
+"Click one of the link below, and then click \"Auto-Detect a locale from the "
+"WWW browser\" samples."
+msgstr ""
+"Dele clic en alguno de los enlaces de abajo y luego sobre los ejemplos de "
+"\"Auto-detectar la locale del navegador web\"."
+
+#: index.cgi:92
+msgid "Source codes"
+msgstr "Códigos fuentes"
+
+#: index.cgi:103
+msgid "index.cgi is also a Ruby-GetText sample script using CGI(not ERB)."
+msgstr ""
+"index.cgi es también un script de ejempli Ruby-GetText usando CGI (no ERB)."
+
+#: cookie.cgi:50
+msgid "Set [%s] as the cookie of your WWW Browser."
+msgstr "Definir [%s] como la cookie del navegador web."
+
+#: cookie.cgi:54
+msgid "Back"
+msgstr "Regresar"
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/po/fr/helloerb1.po b/vendor/gems/gettext-2.1.0/samples/cgi/po/fr/helloerb1.po
new file mode 100644
index 000000000..5688106b8
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/po/fr/helloerb1.po
@@ -0,0 +1,59 @@
+# CGI/ERB sample for Ruby-GetText-Package.
+#
+# Copyright (C) 2005 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Laurent Sansonetti <lrz@rubymonks.org>, 2005
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: cgi-sample 1.1.1\n"
+"POT-Creation-Date: 2006-01-07 14:48+0900\n"
+"PO-Revision-Date: 2005-04-23 12:44+0900\n"
+"Last-Translator: Laurent Sansonetti\n"
+"Language-Team: French\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n == 1 ? 0 : 1;\n"
+
+#: helloerb1.cgi:32
+msgid "Sample script for CGI/ERB (UTF-8)."
+msgstr "Exemple de script ERB/CGI (UTF-8)."
+
+#: helloerb.rhtml:5 other.rhtml:5
+msgid "Sample script for CGI/ERB and Ruby-GetText-Package"
+msgstr "Un exemple de script CGI/ERB avec Ruby-GetText-Package"
+
+#: helloerb.rhtml:12
+msgid "Hello World"
+msgstr "Bonjour monde"
+
+#: helloerb.rhtml:15 other.rhtml:11
+msgid "locale"
+msgstr "locale"
+
+#: helloerb.rhtml:16 other.rhtml:12
+msgid "output_charset"
+msgstr "output_charset"
+
+#: helloerb.rhtml:17 other.rhtml:13
+msgid "QUERY_STRING"
+msgstr "QUERY_STRING"
+
+#: helloerb.rhtml:19
+msgid "Call a library method which has another textdomain."
+msgstr "Appelle une mŽthode d'une bibliothque avec un autre domaine de texte."
+
+#: helloerb.rhtml:21 other.rhtml:15
+msgid "Back"
+msgstr "PrŽcŽdent"
+
+#: other.rhtml:8
+msgid "Another sample"
+msgstr "Un autre exemple"
+
+#: other.rhtml:9
+msgid "This sample(other.rhtml) is the another ERB file of helloerb1.cgi."
+msgstr "Cet exemple (other.rhtml) est l'autre exemple ERB de helloerb1.cgi."
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/po/fr/helloerb2.po b/vendor/gems/gettext-2.1.0/samples/cgi/po/fr/helloerb2.po
new file mode 100644
index 000000000..9a4c13243
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/po/fr/helloerb2.po
@@ -0,0 +1,51 @@
+# CGI/ERB sample for Ruby-GetText-Package.
+#
+# Copyright (C) 2005,2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Laurent Sansonetti <lrz@rubymonks.org>, 2005
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: cgi-sample 1.1.1\n"
+"POT-Creation-Date: 2006-01-07 14:51+0900\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: Laurent Sansonetti\n"
+"Language-Team: French\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n == 1 ? 0 : 1;\n"
+
+#: helloerb2.cgi:34
+msgid "Sample script for CGI/ERB (Auto-Detect charset)."
+msgstr "Un exemple de script CGI/ERB (jeu de caractres automatiquement dŽtectŽ)."
+
+#: helloerb.rhtml:5
+msgid "Sample script for CGI/ERB and Ruby-GetText-Package"
+msgstr "Un exemple de script CGI/ERB avec Ruby-GetText-Package"
+
+#: helloerb.rhtml:12
+msgid "Hello World"
+msgstr "Bonjour monde"
+
+#: helloerb.rhtml:15
+msgid "locale"
+msgstr "locale"
+
+#: helloerb.rhtml:16
+msgid "output_charset"
+msgstr "output_charset"
+
+#: helloerb.rhtml:17
+msgid "QUERY_STRING"
+msgstr "QUERY_STRING"
+
+#: helloerb.rhtml:19
+msgid "Call a library method which has another textdomain."
+msgstr "Appelle une mŽthode d'une bibliothque avec un autre domaine de texte."
+
+#: helloerb.rhtml:21
+msgid "Back"
+msgstr "PrŽcŽdent"
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/po/fr/hellolib.po b/vendor/gems/gettext-2.1.0/samples/cgi/po/fr/hellolib.po
new file mode 100644
index 000000000..c03c65cc0
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/po/fr/hellolib.po
@@ -0,0 +1,22 @@
+# CGI/ERB sample for Ruby-GetText-Package.
+#
+# Copyright (C) 2005,2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+# Laurent Sansonetti <lrz@rubymonks.org>, 2005
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: cgi-sample 1.1.1\n"
+"POT-Creation-Date: 2006-01-07 14:53+0900\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: Laurent Sansonetti\n"
+"Language-Team: French\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n == 1 ? 0 : 1;\n"
+
+#: hellolib.rb:19
+msgid "This message is from hellolib."
+msgstr "Ce message vient de hellolib."
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/po/fr/main.po b/vendor/gems/gettext-2.1.0/samples/cgi/po/fr/main.po
new file mode 100644
index 000000000..7355ffc8f
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/po/fr/main.po
@@ -0,0 +1,85 @@
+# CGI/ERB sample for Ruby-GetText-Package.
+#
+# Copyright (C) 2005,2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Laurent Sansonetti <lrz@rubymonks.org>, 2005
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: cgi-sample 1.1.1\n"
+"POT-Creation-Date: 2006-01-07 14:55+0900\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: Laurent Sansonetti <lrz@rubymonks.org>\n"
+"Language-Team: French\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n == 1 ? 0 : 1;\n"
+
+#: index.cgi:36
+msgid "an ERB/CGI sample (UTF-8)."
+msgstr "un exemple ERB/CGI (UTF-8)."
+
+#: index.cgi:37
+msgid ""
+"an ERB/CGI sample (UTF-8). This sample uses the same container as sample 1 "
+"but has a different rhtml file."
+msgstr ""
+"un exemple ERB/CGI (UTF-8) qui utilise le même conteneur qu'à l'exemple 1 "
+"mais avec un autre fichier rhtml."
+
+#: index.cgi:38
+msgid "an ERB/CGI sample (Auto-Detect charset)."
+msgstr "un exemple ERB/CGI (jeu de caractères automatiquement détecté)."
+
+#: index.cgi:50 cookie.cgi:44
+msgid "Sample script for CGI/ERB and Ruby-GetText-Package"
+msgstr "Un exemple de script CGI/ERB avec Ruby-GetText-Package"
+
+#: index.cgi:55
+msgid "Ruby-GetText CGI sample scripts"
+msgstr "Exemples de script CGI avec Ruby-GetText"
+
+#: index.cgi:57
+msgid "Supported Locales:"
+msgstr "Locales supportées:"
+
+#: index.cgi:58
+msgid "Auto-Detect a locale from the WWW browser"
+msgstr "Détection automatique de la locale à partir du navigateur Internet"
+
+#: index.cgi:66
+msgid "Set locale as a \"lang\" parameter"
+msgstr "Assigne la locale au paramêtre \"lang\""
+
+#: index.cgi:82
+msgid "Set \"lang\" to cookie."
+msgstr "Assigne \"lang\" au cookie."
+
+#: index.cgi:83
+msgid ""
+"Click one of the link below, and then click \"Auto-Detect a locale from the "
+"WWW browser\" samples."
+msgstr ""
+"Cliquez sur un des liens en dessous, et cliquez ensuite sur les exemples "
+"\"Détection automatique de la locale à partir du navigateur Internet\"."
+
+#: index.cgi:92
+msgid "Source codes"
+msgstr "Code source"
+
+#: index.cgi:103
+msgid "index.cgi is also a Ruby-GetText sample script using CGI(not ERB)."
+msgstr ""
+"index.cgi est aussi un exemple de script Ruby-GetText utilisant CGI (non "
+"ERB)."
+
+#: cookie.cgi:50
+msgid "Set [%s] as the cookie of your WWW Browser."
+msgstr "Assigne [%s] comme étant le cookie de votre navigateur Internet."
+
+#: cookie.cgi:54
+msgid "Back"
+msgstr "Précédent"
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/po/helloerb1.pot b/vendor/gems/gettext-2.1.0/samples/cgi/po/helloerb1.pot
new file mode 100644
index 000000000..ccf5de527
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/po/helloerb1.pot
@@ -0,0 +1,60 @@
+# CGI/ERB sample for Ruby-GetText-Package.
+#
+# Copyright (C) 2005,2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: cgi-sample 1.1.1\n"
+"POT-Creation-Date: 2006-01-07 14:48+0900\n"
+"PO-Revision-Date: 2005-04-23 12:44+0900\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
+
+#: helloerb1.cgi:32
+msgid "Sample script for CGI/ERB (UTF-8)."
+msgstr ""
+
+#: helloerb.rhtml:5 other.rhtml:5
+msgid "Sample script for CGI/ERB and Ruby-GetText-Package"
+msgstr ""
+
+#: helloerb.rhtml:12
+msgid "Hello World"
+msgstr ""
+
+#: helloerb.rhtml:15 other.rhtml:11
+msgid "locale"
+msgstr ""
+
+#: helloerb.rhtml:16 other.rhtml:12
+msgid "output_charset"
+msgstr ""
+
+#: helloerb.rhtml:17 other.rhtml:13
+msgid "QUERY_STRING"
+msgstr ""
+
+#: helloerb.rhtml:19
+msgid "Call a library method which has another textdomain."
+msgstr ""
+
+#: helloerb.rhtml:21 other.rhtml:15
+msgid "Back"
+msgstr ""
+
+#: other.rhtml:8
+msgid "Another sample"
+msgstr ""
+
+#: other.rhtml:9
+msgid "This sample(other.rhtml) is the another ERB file of helloerb1.cgi."
+msgstr ""
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/po/helloerb2.pot b/vendor/gems/gettext-2.1.0/samples/cgi/po/helloerb2.pot
new file mode 100644
index 000000000..a93596ee6
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/po/helloerb2.pot
@@ -0,0 +1,52 @@
+# CGI/ERB sample for Ruby-GetText-Package.
+#
+# Copyright (C) 2005,2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: cgi-sample 1.1.1\n"
+"POT-Creation-Date: 2006-01-07 14:51+0900\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
+
+#: helloerb2.cgi:34
+msgid "Sample script for CGI/ERB (Auto-Detect charset)."
+msgstr ""
+
+#: helloerb.rhtml:5
+msgid "Sample script for CGI/ERB and Ruby-GetText-Package"
+msgstr ""
+
+#: helloerb.rhtml:12
+msgid "Hello World"
+msgstr ""
+
+#: helloerb.rhtml:15
+msgid "locale"
+msgstr ""
+
+#: helloerb.rhtml:16
+msgid "output_charset"
+msgstr ""
+
+#: helloerb.rhtml:17
+msgid "QUERY_STRING"
+msgstr ""
+
+#: helloerb.rhtml:19
+msgid "Call a library method which has another textdomain."
+msgstr ""
+
+#: helloerb.rhtml:21
+msgid "Back"
+msgstr ""
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/po/hellolib.pot b/vendor/gems/gettext-2.1.0/samples/cgi/po/hellolib.pot
new file mode 100644
index 000000000..1b98e6e68
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/po/hellolib.pot
@@ -0,0 +1,24 @@
+# CGI/ERB sample for Ruby-GetText-Package.
+#
+# Copyright (C) 2005,2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: cgi-sample 1.1.1\n"
+"POT-Creation-Date: 2006-01-07 14:53+0900\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
+
+#: hellolib.rb:19
+msgid "This message is from hellolib."
+msgstr ""
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/po/hr/helloerb1.po b/vendor/gems/gettext-2.1.0/samples/cgi/po/hr/helloerb1.po
new file mode 100644
index 000000000..b870c9922
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/po/hr/helloerb1.po
@@ -0,0 +1,59 @@
+# translation of helloerb1.po to Croatian
+# CGI/ERB sample for Ruby-GetText-Package.
+# Copyright (C) 2005,2006 Masao Mutoh
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Sanjin Sehic <saserr@gmail.com>, 2007.
+msgid ""
+msgstr ""
+"Project-Id-Version: helloerb1\n"
+"POT-Creation-Date: 2006-01-07 14:48+0900\n"
+"PO-Revision-Date: 2007-03-20 20:32+0100\n"
+"Last-Translator: Sanjin Sehic <saserr@gmail.com>\n"
+"Language-Team: Croatian <saserr@gmail.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#: helloerb1.cgi:32
+msgid "Sample script for CGI/ERB (UTF-8)."
+msgstr "Primjer skripte za CGI/ERB"
+
+#: helloerb.rhtml:5 other.rhtml:5
+msgid "Sample script for CGI/ERB and Ruby-GetText-Package"
+msgstr "Primjer skripte za CGI/ERB i Ruby on Rails GetText Paket"
+
+#: helloerb.rhtml:12
+msgid "Hello World"
+msgstr "Zdravo Svijetu"
+
+#: helloerb.rhtml:15 other.rhtml:11
+msgid "locale"
+msgstr "lokal"
+
+#: helloerb.rhtml:16 other.rhtml:12
+msgid "output_charset"
+msgstr "izlazni_charset"
+
+#: helloerb.rhtml:17 other.rhtml:13
+msgid "QUERY_STRING"
+msgstr "UPITNA_NISKA"
+
+#: helloerb.rhtml:19
+msgid "Call a library method which has another textdomain."
+msgstr "Pozovi biblioteku koja ima drugu tekst domenu."
+
+#: helloerb.rhtml:21 other.rhtml:15
+msgid "Back"
+msgstr "Nazad"
+
+#: other.rhtml:8
+msgid "Another sample"
+msgstr "Drugi primjer"
+
+#: other.rhtml:9
+msgid "This sample(other.rhtml) is the another ERB file of helloerb1.cgi."
+msgstr "Ovaj primjer(other.rhtml) je druga ERB datoteka helloerb1.cgi-a."
+
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/po/hr/helloerb2.po b/vendor/gems/gettext-2.1.0/samples/cgi/po/hr/helloerb2.po
new file mode 100644
index 000000000..a39bda17d
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/po/hr/helloerb2.po
@@ -0,0 +1,51 @@
+# translation of helloerb2.po to Croatian
+# CGI/ERB sample for Ruby-GetText-Package.
+# Copyright (C) 2005,2006 Masao Mutoh
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Sanjin Sehic <saserr@gmail.com>, 2007.
+msgid ""
+msgstr ""
+"Project-Id-Version: helloerb2\n"
+"POT-Creation-Date: 2006-01-07 14:51+0900\n"
+"PO-Revision-Date: 2007-03-20 20:32+0100\n"
+"Last-Translator: Sanjin Sehic <saserr@gmail.com>\n"
+"Language-Team: Croatian <saserr@gmail.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#: helloerb2.cgi:34
+msgid "Sample script for CGI/ERB (Auto-Detect charset)."
+msgstr "Primjer skripte za CGI/ERB (Auto-Detektovanje skupakaraktera)"
+
+#: helloerb.rhtml:5
+msgid "Sample script for CGI/ERB and Ruby-GetText-Package"
+msgstr "Primjer skripte za CGI/ERB i Ruby on Rails GetText Paket"
+
+#: helloerb.rhtml:12
+msgid "Hello World"
+msgstr "Zdravo Svijetu"
+
+#: helloerb.rhtml:15
+msgid "locale"
+msgstr "lokal"
+
+#: helloerb.rhtml:16
+msgid "output_charset"
+msgstr "izlazni_charset"
+
+#: helloerb.rhtml:17
+msgid "QUERY_STRING"
+msgstr "UPITNA_NISKA"
+
+#: helloerb.rhtml:19
+msgid "Call a library method which has another textdomain."
+msgstr "Pozovi biblioteku koja ima drugu tekst domenu."
+
+#: helloerb.rhtml:21
+msgid "Back"
+msgstr "Nazad"
+
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/po/hr/hellolib.po b/vendor/gems/gettext-2.1.0/samples/cgi/po/hr/hellolib.po
new file mode 100644
index 000000000..25af97c58
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/po/hr/hellolib.po
@@ -0,0 +1,23 @@
+# translation of hellolib.po to Croatian
+# CGI/ERB sample for Ruby-GetText-Package.
+# Copyright (C) 2005,2006 Masao Mutoh
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Sanjin Sehic <saserr@gmail.com>, 2007.
+msgid ""
+msgstr ""
+"Project-Id-Version: hellolib\n"
+"POT-Creation-Date: 2006-01-07 14:53+0900\n"
+"PO-Revision-Date: 2007-03-20 20:19+0100\n"
+"Last-Translator: Sanjin Sehic <saserr@gmail.com>\n"
+"Language-Team: Croatian <saserr@gmail.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#: hellolib.rb:19
+msgid "This message is from hellolib."
+msgstr "Ova poruka je iz hellolib-a."
+
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/po/hr/main.po b/vendor/gems/gettext-2.1.0/samples/cgi/po/hr/main.po
new file mode 100644
index 000000000..a293670d5
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/po/hr/main.po
@@ -0,0 +1,83 @@
+# translation of main.po to Croatian
+# CGI/ERB sample for Ruby-GetText-Package.
+# Copyright (C) 2005,2006 Masao Mutoh
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Sanjin Sehic <saserr@gmail.com>, 2007.
+msgid ""
+msgstr ""
+"Project-Id-Version: main\n"
+"POT-Creation-Date: 2006-01-07 14:55+0900\n"
+"PO-Revision-Date: 2007-03-20 20:30+0100\n"
+"Last-Translator: Sanjin Sehic <saserr@gmail.com>\n"
+"Language-Team: Croatian <saserr@gmail.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#: index.cgi:36
+msgid "an ERB/CGI sample (UTF-8)."
+msgstr "ERB-CGI primjer (UTF-8)"
+
+#: index.cgi:37
+msgid ""
+"an ERB/CGI sample (UTF-8). This sample uses the same container as sample 1 "
+"but has a different rhtml file."
+msgstr ""
+"ERB-CGI primjer (UTF-8). Ovaj primjer koristi isti kontejner kao primjer 1 "
+"ali ima drugačiji rhtml file"
+
+#: index.cgi:38
+msgid "an ERB/CGI sample (Auto-Detect charset)."
+msgstr "ERB-CGI primjer (Auto-Pronalaženje charset-a)"
+
+#: index.cgi:50 cookie.cgi:44
+msgid "Sample script for CGI/ERB and Ruby-GetText-Package"
+msgstr "Primjer skripte za CGI/ERB i Ruby GetText Paketa"
+
+#: index.cgi:55
+msgid "Ruby-GetText CGI sample scripts"
+msgstr "Ruby-GetText CGI primjer skripta"
+
+#: index.cgi:57
+msgid "Supported Locales:"
+msgstr "Podržani Lokali:"
+
+#: index.cgi:58
+msgid "Auto-Detect a locale from the WWW browser"
+msgstr "Auto-Pronalaženje lokala iz WWW preglednika"
+
+#: index.cgi:66
+msgid "Set locale as a \"lang\" parameter"
+msgstr "Postavi lokal kao \"lang\" parametar"
+
+#: index.cgi:82
+msgid "Set \"lang\" to cookie."
+msgstr "Postavi \"lang\" u cookie."
+
+#: index.cgi:83
+msgid ""
+"Click one of the link below, and then click \"Auto-Detect a locale from the "
+"WWW browser\" samples."
+msgstr ""
+"Izaberi jednu prećicu odozdo, i izaberi \"Auto-Pronalaženje lokala iz "
+"WWW preglednika\" primjer."
+
+#: index.cgi:92
+msgid "Source codes"
+msgstr "Izvorni kodovi"
+
+#: index.cgi:103
+msgid "index.cgi is also a Ruby-GetText sample script using CGI(not ERB)."
+msgstr "index.cgi je također Ruby-GetText primjer skripte koja koristi CGI(ne ERB)."
+
+#: cookie.cgi:50
+msgid "Set [%s] as the cookie of your WWW Browser."
+msgstr "Postavi [%s] kao cookie u vašem WWW Pregledniku."
+
+#: cookie.cgi:54
+msgid "Back"
+msgstr "Nazad"
+
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/po/hu/helloerb1.po b/vendor/gems/gettext-2.1.0/samples/cgi/po/hu/helloerb1.po
new file mode 100644
index 000000000..727a9dbc0
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/po/hu/helloerb1.po
@@ -0,0 +1,59 @@
+# CGI/ERB sample for Ruby-GetText-Package.
+#
+# Copyright (C) 2005,2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Tamás Tompa <tompata at gmail.com>, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: cgi-sample 1.1.1\n"
+"POT-Creation-Date: 2006-01-07 14:48+0900\n"
+"PO-Revision-Date: 2008-01-15 00:00+0900\n"
+"Last-Translator: Tamás Tompa <tompata at gmail.com>\n"
+"Language-Team: Hungarian\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: helloerb1.cgi:32
+msgid "Sample script for CGI/ERB (UTF-8)."
+msgstr "Példa script CGI/ERB (UTF-8)-hoz."
+
+#: helloerb.rhtml:5 other.rhtml:5
+msgid "Sample script for CGI/ERB and Ruby-GetText-Package"
+msgstr "Példa script CGI/ERB-hez és a Ruby-GetText-Package-hez"
+
+#: helloerb.rhtml:12
+msgid "Hello World"
+msgstr "Hello világ"
+
+#: helloerb.rhtml:15 other.rhtml:11
+msgid "locale"
+msgstr "locale"
+
+#: helloerb.rhtml:16 other.rhtml:12
+msgid "output_charset"
+msgstr "output_charset"
+
+#: helloerb.rhtml:17 other.rhtml:13
+msgid "QUERY_STRING"
+msgstr "QUERY_STRING"
+
+#: helloerb.rhtml:19
+msgid "Call a library method which has another textdomain."
+msgstr "Könyvtári metódus hívása, ami egy másik textdomain-ben van."
+
+#: helloerb.rhtml:21 other.rhtml:15
+msgid "Back"
+msgstr "Vissza"
+
+#: other.rhtml:8
+msgid "Another sample"
+msgstr "Másik példa"
+
+#: other.rhtml:9
+msgid "This sample(other.rhtml) is the another ERB file of helloerb1.cgi."
+msgstr "Ez a példa (other.rhtml) egy másik ERB fájl a helloerb1.cgi-hez."
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/po/hu/helloerb2.po b/vendor/gems/gettext-2.1.0/samples/cgi/po/hu/helloerb2.po
new file mode 100644
index 000000000..3bc1f1450
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/po/hu/helloerb2.po
@@ -0,0 +1,51 @@
+# CGI/ERB sample for Ruby-GetText-Package.
+#
+# Copyright (C) 2005,2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Tamás Tompa <tompata at gmail.com>, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: cgi-sample 1.1.1\n"
+"POT-Creation-Date: 2006-01-07 14:51+0900\n"
+"PO-Revision-Date: 2008-01-15 00:00+0900\n"
+"Last-Translator: Tamás Tompa <tompata at gmail.com>\n"
+"Language-Team: Hungarian\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: helloerb2.cgi:34
+msgid "Sample script for CGI/ERB (Auto-Detect charset)."
+msgstr "Példa script CGI/ERB (Automatikus karakterkódolás felismerő)-höz."
+
+#: helloerb.rhtml:5
+msgid "Sample script for CGI/ERB and Ruby-GetText-Package"
+msgstr "Példa script CGI/ERB-hez és a Ruby-GetText-Package-hez"
+
+#: helloerb.rhtml:12
+msgid "Hello World"
+msgstr "Hello világ"
+
+#: helloerb.rhtml:15
+msgid "locale"
+msgstr "locale"
+
+#: helloerb.rhtml:16
+msgid "output_charset"
+msgstr "output_charset"
+
+#: helloerb.rhtml:17
+msgid "QUERY_STRING"
+msgstr "QUERY_STRING"
+
+#: helloerb.rhtml:19
+msgid "Call a library method which has another textdomain."
+msgstr "Könyvtári metódus hívása, ami egy másik textdomain-ben van."
+
+#: helloerb.rhtml:21
+msgid "Back"
+msgstr "Vissza"
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/po/hu/hellolib.po b/vendor/gems/gettext-2.1.0/samples/cgi/po/hu/hellolib.po
new file mode 100644
index 000000000..e96161342
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/po/hu/hellolib.po
@@ -0,0 +1,23 @@
+# CGI/ERB sample for Ruby-GetText-Package.
+#
+# Copyright (C) 2005,2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Tamás Tompa <tompata at gmail.com>, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: cgi-sample 1.1.1\n"
+"POT-Creation-Date: 2006-01-07 14:53+0900\n"
+"PO-Revision-Date: 2008-01-15 00:00+0900\n"
+"Last-Translator: Tamás Tompa <tompata at gmail.com>\n"
+"Language-Team: Hungarian\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: hellolib.rb:19
+msgid "This message is from hellolib."
+msgstr "Az az üzenet a hellolib-ből jön."
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/po/hu/main.po b/vendor/gems/gettext-2.1.0/samples/cgi/po/hu/main.po
new file mode 100644
index 000000000..d3c5d2b80
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/po/hu/main.po
@@ -0,0 +1,82 @@
+# CGI/ERB sample for Ruby-GetText-Package.
+#
+# Copyright (C) 2005,2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Tamás Tompa <tompata at gmail.com>, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: cgi-sample 1.1.1\n"
+"POT-Creation-Date: 2006-01-07 14:55+0900\n"
+"PO-Revision-Date: 2008-01-15 00:00+0900\n"
+"Last-Translator: Tamás Tompa <tompata at gmail.com>\n"
+"Language-Team: Hungarian\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: index.cgi:36
+msgid "an ERB/CGI sample (UTF-8)."
+msgstr "egy ERB/CGI példa (UTF-8)."
+
+#: index.cgi:37
+msgid ""
+"an ERB/CGI sample (UTF-8). This sample uses the same container as sample 1 "
+"but has a different rhtml file."
+msgstr ""
+"egy ERB/CGI példa (UTF-8). Ez a példa ugyanazt a container-t használja, mint a példa 1"
+"de másik rhtml fájlt."
+
+#: index.cgi:38
+msgid "an ERB/CGI sample (Auto-Detect charset)."
+msgstr "egy ERB/CGI példa (Automatikus karakterkódolás felismerő)."
+
+#: index.cgi:50 cookie.cgi:44
+msgid "Sample script for CGI/ERB and Ruby-GetText-Package"
+msgstr "Példa script CGI/ERB-hez és a Ruby-GetText-Package-hez"
+
+#: index.cgi:55
+msgid "Ruby-GetText CGI sample scripts"
+msgstr "Ruby-GetText CGI példa script-ek"
+
+#: index.cgi:57
+msgid "Supported Locales:"
+msgstr "Támogatott területek (locale-ek):"
+
+#: index.cgi:58
+msgid "Auto-Detect a locale from the WWW browser"
+msgstr "Automatikus (locale) felismerés böngészőből"
+
+#: index.cgi:66
+msgid "Set locale as a \"lang\" parameter"
+msgstr "Locale beállítása mint \"lang\" paraméter"
+
+#: index.cgi:82
+msgid "Set \"lang\" to cookie."
+msgstr "A megfelelő \"lang\" cookie beállítása."
+
+#: index.cgi:83
+msgid ""
+"Click one of the link below, and then click \"Auto-Detect a locale from the "
+"WWW browser\" samples."
+msgstr ""
+"Kattints az alábbi linkre, aztán kattints az \"Automatikus (locale) felismerés böngészőből\" példákra."
+
+#: index.cgi:92
+msgid "Source codes"
+msgstr "Forrás kód"
+
+#: index.cgi:103
+msgid "index.cgi is also a Ruby-GetText sample script using CGI(not ERB)."
+msgstr "az index.cgi is egy Ruby-GetText példa script, ami CGI-t használ (nem ERB)."
+
+#: cookie.cgi:50
+msgid "Set [%s] as the cookie of your WWW Browser."
+msgstr "Cookie [%s] beállítása a böngésződben."
+
+#: cookie.cgi:54
+msgid "Back"
+msgstr "Vissza"
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/po/it/helloerb1.po b/vendor/gems/gettext-2.1.0/samples/cgi/po/it/helloerb1.po
new file mode 100644
index 000000000..54f351c1e
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/po/it/helloerb1.po
@@ -0,0 +1,60 @@
+# CGI/ERB sample for Ruby-GetText-Package.
+#
+# Copyright (C) 2005 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Gabriele Renzi <surrender_it at yahoo.it>, 2005.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: cgi-sample 1.1.1\n"
+"POT-Creation-Date: 2006-01-07 14:48+0900\n"
+"PO-Revision-Date: 2005-04-24 12:44+0100\n"
+"Last-Translator: Gabriele Renzi <surrender_it at yahoo.it>\n"
+"Language-Team: Gabriele Renzi <surrender_it at yahoo.it>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
+
+#: helloerb1.cgi:32
+msgid "Sample script for CGI/ERB (UTF-8)."
+msgstr "Script di esempio per CGI/ERB (UTF-8)."
+
+#: helloerb.rhtml:5 other.rhtml:5
+msgid "Sample script for CGI/ERB and Ruby-GetText-Package"
+msgstr "Script di esempio per CGI/ERB e per il pacchetto Ruby-GetText"
+
+#: helloerb.rhtml:12
+msgid "Hello World"
+msgstr "Ciao a tutti"
+
+#: helloerb.rhtml:15 other.rhtml:11
+msgid "locale"
+msgstr ""
+
+#: helloerb.rhtml:16 other.rhtml:12
+msgid "output_charset"
+msgstr ""
+
+#: helloerb.rhtml:17 other.rhtml:13
+msgid "QUERY_STRING"
+msgstr ""
+
+#: helloerb.rhtml:19
+msgid "Call a library method which has another textdomain."
+msgstr "Chiama un metodo di libreria che ha un textdomain differente."
+
+#: helloerb.rhtml:21 other.rhtml:15
+msgid "Back"
+msgstr "Indietro"
+
+#: other.rhtml:8
+msgid "Another sample"
+msgstr "Un altro esempio"
+
+#: other.rhtml:9
+msgid "This sample(other.rhtml) is the another ERB file of helloerb1.cgi."
+msgstr "Questo esempio(other.rhtml) Ã l'altro file ERB di helloerb1.cgi."
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/po/it/helloerb2.po b/vendor/gems/gettext-2.1.0/samples/cgi/po/it/helloerb2.po
new file mode 100644
index 000000000..7406fa29a
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/po/it/helloerb2.po
@@ -0,0 +1,52 @@
+# CGI/ERB sample for Ruby-GetText-Package.
+#
+# Copyright (C) 2005 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Gabriele Renzi <surrender_it at yahoo.it>, 2005.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: cgi-sample 1.1.1\n"
+"POT-Creation-Date: 2006-01-07 14:51+0900\n"
+"PO-Revision-Date: 2005-04-24 15:27+0100\n"
+"Last-Translator: Gabriele Renzi <surrender_it at yahoo.it>\n"
+"Language-Team: Gabriele Renzi <surrender_it at yahoo.it>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
+
+#: helloerb2.cgi:34
+msgid "Sample script for CGI/ERB (Auto-Detect charset)."
+msgstr "Script di esempio per CGI/ERB (Auto-riconoscimento del charset)."
+
+#: helloerb.rhtml:5
+msgid "Sample script for CGI/ERB and Ruby-GetText-Package"
+msgstr "Script di esempio per CGI/ERB e per il pacchetto Ruby-GetText"
+
+#: helloerb.rhtml:12
+msgid "Hello World"
+msgstr "Ciao a tutti"
+
+#: helloerb.rhtml:15
+msgid "locale"
+msgstr ""
+
+#: helloerb.rhtml:16
+msgid "output_charset"
+msgstr ""
+
+#: helloerb.rhtml:17
+msgid "QUERY_STRING"
+msgstr ""
+
+#: helloerb.rhtml:19
+msgid "Call a library method which has another textdomain."
+msgstr "Chiama un metodo di libreria che ha un textdomain differente."
+
+#: helloerb.rhtml:21
+msgid "Back"
+msgstr "Indietro"
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/po/it/hellolib.po b/vendor/gems/gettext-2.1.0/samples/cgi/po/it/hellolib.po
new file mode 100644
index 000000000..4aabb3ee9
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/po/it/hellolib.po
@@ -0,0 +1,24 @@
+# CGI/ERB sample for Ruby-GetText-Package.
+#
+# Copyright (C) 2005 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Gabriele Renzi <surrender_it at yahoo.it>, 2005.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: cgi-sample 1.1.1\n"
+"POT-Creation-Date: 2006-01-07 14:53+0900\n"
+"PO-Revision-Date: 2005-04-24 12:44+0100\n"
+"Last-Translator: Gabriele Renzi <surrender_it at yahoo.it>\n"
+"Language-Team: Gabriele Renzi <surrender_it at yahoo.it>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
+
+#: hellolib.rb:19
+msgid "This message is from hellolib."
+msgstr "Questo messaggio viene da hellolib"
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/po/it/main.po b/vendor/gems/gettext-2.1.0/samples/cgi/po/it/main.po
new file mode 100644
index 000000000..5808b3c07
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/po/it/main.po
@@ -0,0 +1,84 @@
+# CGI/ERB sample for Ruby-GetText-Package.
+#
+# Copyright (C) 2005 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Gabriele Renzi <surrender_it at yahoo.it>, 2005.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: cgi-sample 1.1.1\n"
+"POT-Creation-Date: 2006-01-07 14:55+0900\n"
+"PO-Revision-Date: 2005-04-24 12:44+0100\n"
+"Last-Translator: Gabriele Renzi <surrender_it at yahoo.it>\n"
+"Language-Team: Gabriele Renzi <surrender_it at yahoo.it>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
+
+#: index.cgi:36
+msgid "an ERB/CGI sample (UTF-8)."
+msgstr "un esempio di ERB/CGI (UTF-8)."
+
+#: index.cgi:37
+msgid ""
+"an ERB/CGI sample (UTF-8). This sample uses the same container as sample 1 "
+"but has a different rhtml file."
+msgstr ""
+"un esempio di ERB/CGI (UTF-8). Questo esmepio usa lo stesso container "
+"dell'esempio 1 ma ha un altro file rhtml."
+
+#: index.cgi:38
+msgid "an ERB/CGI sample (Auto-Detect charset)."
+msgstr "un esempio ERB/CGI (Riconoscimento charset automatico)."
+
+#: index.cgi:50 cookie.cgi:44
+msgid "Sample script for CGI/ERB and Ruby-GetText-Package"
+msgstr "Script di esempio per CGI/ERB e per il pacchetto Ruby-GetText"
+
+#: index.cgi:55
+msgid "Ruby-GetText CGI sample scripts"
+msgstr "Script di esempio per Ruby-GetText CGI"
+
+#: index.cgi:57
+msgid "Supported Locales:"
+msgstr "Locale supportati:"
+
+#: index.cgi:58
+msgid "Auto-Detect a locale from the WWW browser"
+msgstr "Riconoscimento automatico del locale da un browser WWW"
+
+#: index.cgi:66
+msgid "Set locale as a \"lang\" parameter"
+msgstr "Imposta locale come un parametro \"lang\" "
+
+#: index.cgi:82
+msgid "Set \"lang\" to cookie."
+msgstr "Imposta \"lang\" su cookie"
+
+#: index.cgi:83
+msgid ""
+"Click one of the link below, and then click \"Auto-Detect a locale from the "
+"WWW browser\" samples."
+msgstr ""
+"Cliccare su uno dei link sottostanti, e poi sugli esempi \"Riconoscimento "
+"automatico del locale da un browser WWW\"."
+
+#: index.cgi:92
+msgid "Source codes"
+msgstr "Codici sorgente"
+
+#: index.cgi:103
+msgid "index.cgi is also a Ruby-GetText sample script using CGI(not ERB)."
+msgstr "Anche index.cgi è un esempio Ruby-GetText usando CGI (non ERB)."
+
+#: cookie.cgi:50
+msgid "Set [%s] as the cookie of your WWW Browser."
+msgstr "Imposta [%s] come cookie sul tuo browser WWW."
+
+#: cookie.cgi:54
+msgid "Back"
+msgstr "Indietro"
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/po/ja/helloerb1.po b/vendor/gems/gettext-2.1.0/samples/cgi/po/ja/helloerb1.po
new file mode 100644
index 000000000..9895164b3
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/po/ja/helloerb1.po
@@ -0,0 +1,60 @@
+# CGI/ERB sample for Ruby-GetText-Package.
+#
+# Copyright (C) 2005,2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Masao Mutoh <mutomasa at gmail.com>, 2005.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: cgi-sample 1.1.1\n"
+"POT-Creation-Date: 2006-01-07 14:48+0900\n"
+"PO-Revision-Date: 2005-04-23 12:44+0900\n"
+"Last-Translator: Masao Mutoh <mutomasa at gmail.com>\n"
+"Language-Team: Japanese\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n == 1 ? 0 : 1;\n"
+
+#: helloerb1.cgi:32
+msgid "Sample script for CGI/ERB (UTF-8)."
+msgstr "CGI/ERB用サンプルスクリプト(UTF-8)"
+
+#: helloerb.rhtml:5 other.rhtml:5
+msgid "Sample script for CGI/ERB and Ruby-GetText-Package"
+msgstr "CGI/ERBとRuby-GetText-Packageのサンプルスクリプト"
+
+#: helloerb.rhtml:12
+msgid "Hello World"
+msgstr "こんにちは世界"
+
+#: helloerb.rhtml:15 other.rhtml:11
+msgid "locale"
+msgstr "ロケール"
+
+#: helloerb.rhtml:16 other.rhtml:12
+msgid "output_charset"
+msgstr "出力文字列(output_charset)"
+
+#: helloerb.rhtml:17 other.rhtml:13
+msgid "QUERY_STRING"
+msgstr "クエリ文字列(QUERY_STRING)"
+
+#: helloerb.rhtml:19
+msgid "Call a library method which has another textdomain."
+msgstr "異なるテキストドメイン(TextDomain)を持ったライブラリを呼び出します。"
+
+#: helloerb.rhtml:21 other.rhtml:15
+msgid "Back"
+msgstr "戻る"
+
+#: other.rhtml:8
+msgid "Another sample"
+msgstr "アナザーサンプル"
+
+#: other.rhtml:9
+msgid "This sample(other.rhtml) is the another ERB file of helloerb1.cgi."
+msgstr "このサンプル(other.rhtml)はhelloerb1.cgiのもう一つのERBファイルです。"
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/po/ja/helloerb2.po b/vendor/gems/gettext-2.1.0/samples/cgi/po/ja/helloerb2.po
new file mode 100644
index 000000000..97b67edc5
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/po/ja/helloerb2.po
@@ -0,0 +1,52 @@
+# CGI/ERB sample for Ruby-GetText-Package.
+#
+# Copyright (C) 2005,2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Masao Mutoh <mutomasa at gmail.com>, 2005.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: cgi-sample 1.1.1\n"
+"POT-Creation-Date: 2006-01-07 14:51+0900\n"
+"PO-Revision-Date: 2005-04-23 12:43+0900\n"
+"Last-Translator: Masao Mutoh <mutomasa at gmail.com>\n"
+"Language-Team: Japanese\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n == 1 ? 0 : 1;\n"
+
+#: helloerb2.cgi:34
+msgid "Sample script for CGI/ERB (Auto-Detect charset)."
+msgstr "CGI/ERB用サンプルスクリプト(文字コード自動判別)"
+
+#: helloerb.rhtml:5
+msgid "Sample script for CGI/ERB and Ruby-GetText-Package"
+msgstr "CGI/ERBとRuby-GetText-Packageのサンプルスクリプト"
+
+#: helloerb.rhtml:12
+msgid "Hello World"
+msgstr "こんにちは世界"
+
+#: helloerb.rhtml:15
+msgid "locale"
+msgstr "ロケール"
+
+#: helloerb.rhtml:16
+msgid "output_charset"
+msgstr "出力文字列(output_charset)"
+
+#: helloerb.rhtml:17
+msgid "QUERY_STRING"
+msgstr "クエリ文字列(QUERY_STRING)"
+
+#: helloerb.rhtml:19
+msgid "Call a library method which has another textdomain."
+msgstr "異なるテキストドメイン(TextDomain)を持ったライブラリを呼び出します。"
+
+#: helloerb.rhtml:21
+msgid "Back"
+msgstr "戻る"
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/po/ja/hellolib.po b/vendor/gems/gettext-2.1.0/samples/cgi/po/ja/hellolib.po
new file mode 100644
index 000000000..54d312372
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/po/ja/hellolib.po
@@ -0,0 +1,24 @@
+# CGI/ERB sample for Ruby-GetText-Package.
+#
+# Copyright (C) 2005,2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Masao Mutoh <mutomasa at gmail.com>, 2005.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: cgi-sample 1.1.1\n"
+"POT-Creation-Date: 2006-01-07 14:53+0900\n"
+"PO-Revision-Date: 2005-04-19 02:35+0900\n"
+"Last-Translator: Masao Mutoh <mutomasa at gmail.com>\n"
+"Language-Team: Japanese\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n == 1 ? 0 : 1;\n"
+
+#: hellolib.rb:19
+msgid "This message is from hellolib."
+msgstr "このメッセージはhellolibから取得しています。"
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/po/ja/main.po b/vendor/gems/gettext-2.1.0/samples/cgi/po/ja/main.po
new file mode 100644
index 000000000..acc928e6c
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/po/ja/main.po
@@ -0,0 +1,85 @@
+# CGI/ERB sample for Ruby-GetText-Package.
+#
+# Copyright (C) 2005,2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Masao Mutoh <mutomasa at gmail.com>, 2005.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: cgi-sample 1.1.1\n"
+"POT-Creation-Date: 2006-01-07 14:55+0900\n"
+"PO-Revision-Date: 2005-04-23 16:34+0900\n"
+"Last-Translator: Masao Mutoh <mutomasa at gmail.com>\n"
+"Language-Team: Japanese\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n == 1 ? 0 : 1;\n"
+
+#: index.cgi:36
+msgid "an ERB/CGI sample (UTF-8)."
+msgstr "ERB/CGIサンプル(UTF-8)"
+
+#: index.cgi:37
+msgid ""
+"an ERB/CGI sample (UTF-8). This sample uses the same container as sample 1 "
+"but has a different rhtml file."
+msgstr ""
+"ERB/CGIサンプル。このサンプルはサンプル1と同じコンテナを使用しています(rhtml"
+"ファイルは別)。"
+
+#: index.cgi:38
+msgid "an ERB/CGI sample (Auto-Detect charset)."
+msgstr "ERB/CGIサンプル(文字コード自動判別)"
+
+#: index.cgi:50 cookie.cgi:44
+msgid "Sample script for CGI/ERB and Ruby-GetText-Package"
+msgstr "Ruby-GetText-PacakgeのCGI/ERB向けサンプルスクリプト"
+
+#: index.cgi:55
+msgid "Ruby-GetText CGI sample scripts"
+msgstr "Ruby-GetText CGIサンプルスクリプト"
+
+#: index.cgi:57
+msgid "Supported Locales:"
+msgstr "このサンプルでサポートされているロケール:"
+
+#: index.cgi:58
+msgid "Auto-Detect a locale from the WWW browser"
+msgstr "WWWブラウザによるロケール自動判別"
+
+#: index.cgi:66
+msgid "Set locale as a \"lang\" parameter"
+msgstr "ロケールを\"lang\"パラメータとして渡す"
+
+#: index.cgi:82
+msgid "Set \"lang\" to cookie."
+msgstr "ロケールをクッキーの\"lang\"パラメータとして渡す"
+
+#: index.cgi:83
+msgid ""
+"Click one of the link below, and then click \"Auto-Detect a locale from the "
+"WWW browser\" samples."
+msgstr ""
+"以下のリンクを一つ選択した後で、\"WWWブラウザによるロケール自動判別\"サンプル"
+"をクリックしてみてください。"
+
+#: index.cgi:92
+msgid "Source codes"
+msgstr "ソースコード"
+
+#: index.cgi:103
+msgid "index.cgi is also a Ruby-GetText sample script using CGI(not ERB)."
+msgstr ""
+"index.cgiもRuby-GetTextのCGIサンプルスクリプトです(ERBは使っていません)。"
+
+#: cookie.cgi:50
+msgid "Set [%s] as the cookie of your WWW Browser."
+msgstr "[%s]ロケールをあなたのブラウザのクッキーに設定しました。"
+
+#: cookie.cgi:54
+msgid "Back"
+msgstr "戻る"
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/po/ko/helloerb1.po b/vendor/gems/gettext-2.1.0/samples/cgi/po/ko/helloerb1.po
new file mode 100644
index 000000000..d46d12d01
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/po/ko/helloerb1.po
@@ -0,0 +1,59 @@
+# CGI/ERB sample for Ruby-GetText-Package.
+#
+# Copyright (C) 2005,2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Gyoung-Yoon Noh <nohmad@gmail.com>, 2005.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: cgi-sample 1.1.1\n"
+"POT-Creation-Date: 2006-01-07 14:48+0900\n"
+"PO-Revision-Date: 2005-12-23 02:00+0900\n"
+"Last-Translator: Gyoung-Yoon Noh <nohmad@gmail.com>\n"
+"Language-Team: Korean\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#: helloerb1.cgi:32
+msgid "Sample script for CGI/ERB (UTF-8)."
+msgstr "CGI/ERB를 위한 예제 스크립트 (UTF-8)"
+
+#: helloerb.rhtml:5 other.rhtml:5
+msgid "Sample script for CGI/ERB and Ruby-GetText-Package"
+msgstr "CGI/ERB와 Ruby-GetText 꾸러미를 위한 예제 스크립트"
+
+#: helloerb.rhtml:12
+msgid "Hello World"
+msgstr "안녕 세상"
+
+#: helloerb.rhtml:15 other.rhtml:11
+msgid "locale"
+msgstr "로케일"
+
+#: helloerb.rhtml:16 other.rhtml:12
+msgid "output_charset"
+msgstr "출력 문자집합"
+
+#: helloerb.rhtml:17 other.rhtml:13
+msgid "QUERY_STRING"
+msgstr ""
+
+#: helloerb.rhtml:19
+msgid "Call a library method which has another textdomain."
+msgstr "또다른 textdomain을 가진 라이브러리 메쏘드를 호출합니다."
+
+#: helloerb.rhtml:21 other.rhtml:15
+msgid "Back"
+msgstr "뒤로 가기"
+
+#: other.rhtml:8
+msgid "Another sample"
+msgstr "또다른 예제"
+
+#: other.rhtml:9
+msgid "This sample(other.rhtml) is the another ERB file of helloerb1.cgi."
+msgstr "이 예제(other.rhtml)는 helloerb1.cgi의 또다른 ERB 파일입니다."
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/po/ko/helloerb2.po b/vendor/gems/gettext-2.1.0/samples/cgi/po/ko/helloerb2.po
new file mode 100644
index 000000000..db325e302
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/po/ko/helloerb2.po
@@ -0,0 +1,51 @@
+# CGI/ERB sample for Ruby-GetText-Package.
+#
+# Copyright (C) 2005,2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Gyoung-Yoon Noh <nohmad@gmail.com>, 2005.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: cgi-sample 1.1.1\n"
+"POT-Creation-Date: 2006-01-07 14:51+0900\n"
+"PO-Revision-Date: 2005-12-23 02:00+0900\n"
+"Last-Translator: Gyoung-Yoon Noh <nohmad@gmail.com>\n"
+"Language-Team: Korean\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#: helloerb2.cgi:34
+msgid "Sample script for CGI/ERB (Auto-Detect charset)."
+msgstr "CGI/ERB를 위한 예제 스크립트(문자집합 자동탐지)."
+
+#: helloerb.rhtml:5
+msgid "Sample script for CGI/ERB and Ruby-GetText-Package"
+msgstr "CGI/ERB와 Ruby-GetText 꾸러미를 위한 예제 스크립트"
+
+#: helloerb.rhtml:12
+msgid "Hello World"
+msgstr "안녕 세상"
+
+#: helloerb.rhtml:15
+msgid "locale"
+msgstr "로케일"
+
+#: helloerb.rhtml:16
+msgid "output_charset"
+msgstr "출력 문자집합"
+
+#: helloerb.rhtml:17
+msgid "QUERY_STRING"
+msgstr ""
+
+#: helloerb.rhtml:19
+msgid "Call a library method which has another textdomain."
+msgstr "또다른 textdomain을 가진 라이브러리 메쏘드를 호출합니다."
+
+#: helloerb.rhtml:21
+msgid "Back"
+msgstr "뒤로 가기"
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/po/ko/hellolib.po b/vendor/gems/gettext-2.1.0/samples/cgi/po/ko/hellolib.po
new file mode 100644
index 000000000..914ba97b0
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/po/ko/hellolib.po
@@ -0,0 +1,23 @@
+# CGI/ERB sample for Ruby-GetText-Package.
+#
+# Copyright (C) 2005,2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Gyoung-Yoon Noh <nohmad@gmail.com>
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: cgi-sample 1.1.1\n"
+"POT-Creation-Date: 2006-01-07 14:53+0900\n"
+"PO-Revision-Date: 2005-12-23 02:00+0900\n"
+"Last-Translator: Gyoung-Yoon Noh <nohmad@gmail.com>\n"
+"Language-Team: Korean\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#: hellolib.rb:19
+msgid "This message is from hellolib."
+msgstr "이것은 hellolib으로부터의 메시지입니다."
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/po/ko/main.po b/vendor/gems/gettext-2.1.0/samples/cgi/po/ko/main.po
new file mode 100644
index 000000000..46fab58cb
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/po/ko/main.po
@@ -0,0 +1,84 @@
+# CGI/ERB sample for Ruby-GetText-Package.
+#
+# Copyright (C) 2005,2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Gyoung-Yoon Noh <nohmad@gmail.com>, 2005.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: cgi-sample 1.1.1\n"
+"POT-Creation-Date: 2006-01-07 14:55+0900\n"
+"PO-Revision-Date: 2005-12-23 02:00+0900\n"
+"Last-Translator: Gyoung-Yoon Noh <nohmad@gmail.com>\n"
+"Language-Team: Korean\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#: index.cgi:36
+msgid "an ERB/CGI sample (UTF-8)."
+msgstr "ERB/CGI 예제 (UTF-8)"
+
+#: index.cgi:37
+msgid ""
+"an ERB/CGI sample (UTF-8). This sample uses the same container as sample 1 "
+"but has a different rhtml file."
+msgstr ""
+"ERB/CGI 샘플 (UTF-8). 이 예제는 예제 1과 같은 컨테이너를 사용하지만 다른 "
+"rhtml 파일을 사용합니다."
+
+#: index.cgi:38
+msgid "an ERB/CGI sample (Auto-Detect charset)."
+msgstr "ERB/CGI 샘플 (문자집합 자동탐지)"
+
+#: index.cgi:50 cookie.cgi:44
+msgid "Sample script for CGI/ERB and Ruby-GetText-Package"
+msgstr "CGI/ERB와 Ruby-GetText 꾸러미를 위한 예제 스크립트"
+
+#: index.cgi:55
+msgid "Ruby-GetText CGI sample scripts"
+msgstr "Ruby-GetText CGI 예제 스크립트들"
+
+#: index.cgi:57
+msgid "Supported Locales:"
+msgstr "지원되는 로케일:"
+
+#: index.cgi:58
+msgid "Auto-Detect a locale from the WWW browser"
+msgstr "웹 브라우저로부터 로케일을 자동탐지"
+
+#: index.cgi:66
+msgid "Set locale as a \"lang\" parameter"
+msgstr "\"lang\" 매개변수로 로케일을 설정"
+
+#: index.cgi:82
+msgid "Set \"lang\" to cookie."
+msgstr "\"lang\"을 쿠키에 설정합니다."
+
+#: index.cgi:83
+msgid ""
+"Click one of the link below, and then click \"Auto-Detect a locale from the "
+"WWW browser\" samples."
+msgstr ""
+"아래 링크 중 하나를 선택하시고 \"웹 브라우저로부터 로케일을 자동탐지\" 예제"
+"를 클릭하세요."
+
+#: index.cgi:92
+msgid "Source codes"
+msgstr "소스 코드들"
+
+#: index.cgi:103
+msgid "index.cgi is also a Ruby-GetText sample script using CGI(not ERB)."
+msgstr ""
+"index.cgi 역시 ERB가 아닌 CGI를 사용하는 Ruby-GetText 예제 스크립트입니다."
+
+#: cookie.cgi:50
+msgid "Set [%s] as the cookie of your WWW Browser."
+msgstr "[%s]를 웹 브라우저의 쿠키로 설정합니다."
+
+#: cookie.cgi:54
+msgid "Back"
+msgstr "뒤로가기"
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/po/lv/helloerb1.po b/vendor/gems/gettext-2.1.0/samples/cgi/po/lv/helloerb1.po
new file mode 100644
index 000000000..85d7bf16a
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/po/lv/helloerb1.po
@@ -0,0 +1,65 @@
+# CGI/ERB sample for Ruby-GetText-Package.
+#
+# Copyright (C) 2005,2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Aivars Akots, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: cgi-sample 1.1.1\n"
+"POT-Creation-Date: 2006-01-07 14:48+0900\n"
+"PO-Revision-Date: 2008-07-22 09:12+0200\n"
+"Last-Translator: Aivars Akots <aivars.akots@gmail.com>\n"
+"Language-Team: Latvian\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);\n"
+
+#: helloerb1.cgi:32
+msgid "Sample script for CGI/ERB (UTF-8)."
+msgstr "Paraugs CGI/ERB (UTF-8)"
+
+#: helloerb.rhtml:5
+#: other.rhtml:5
+msgid "Sample script for CGI/ERB and Ruby-GetText-Package"
+msgstr "Paraugs CGI/ERB (UTF-8) un Ruby-GetText-Package"
+
+#: helloerb.rhtml:12
+msgid "Hello World"
+msgstr "Sveicināta pasaule"
+
+#: helloerb.rhtml:15
+#: other.rhtml:11
+msgid "locale"
+msgstr "valoda"
+
+#: helloerb.rhtml:16
+#: other.rhtml:12
+msgid "output_charset"
+msgstr "izvades_simbolu_kodējums"
+
+#: helloerb.rhtml:17
+#: other.rhtml:13
+msgid "QUERY_STRING"
+msgstr "PIEPRASĪJUMA_TEKSTS"
+
+#: helloerb.rhtml:19
+msgid "Call a library method which has another textdomain."
+msgstr "Izsaukt bibliotēku ar citu teksta sakni"
+
+#: helloerb.rhtml:21
+#: other.rhtml:15
+msgid "Back"
+msgstr "Atgriezties"
+
+#: other.rhtml:8
+msgid "Another sample"
+msgstr "Vēl viens piemērs"
+
+#: other.rhtml:9
+msgid "This sample(other.rhtml) is the another ERB file of helloerb1.cgi."
+msgstr "Šis paraugs(other.rhtml) ir cits ERB fails no helloerb1.cgi."
+
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/po/lv/helloerb2.po b/vendor/gems/gettext-2.1.0/samples/cgi/po/lv/helloerb2.po
new file mode 100644
index 000000000..07e0ba137
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/po/lv/helloerb2.po
@@ -0,0 +1,52 @@
+# CGI/ERB sample for Ruby-GetText-Package.
+#
+# Copyright (C) 2005,2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Aivars Akots, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: cgi-sample 1.1.1\n"
+"POT-Creation-Date: 2006-01-07 14:51+0900\n"
+"PO-Revision-Date: 2008-07-22 09:13+0200\n"
+"Last-Translator: Aivars Akots <aivars.akots@gmail.com>\n"
+"Language-Team: Latvian\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);\n"
+
+#: helloerb2.cgi:34
+msgid "Sample script for CGI/ERB (Auto-Detect charset)."
+msgstr "Paraugs CGI/ERB (Automātiska simbolu kodējuma atpazīšana)."
+
+#: helloerb.rhtml:5
+msgid "Sample script for CGI/ERB and Ruby-GetText-Package"
+msgstr "Paraugs CGI/ERB un Ruby-GetText-Package"
+
+#: helloerb.rhtml:12
+msgid "Hello World"
+msgstr "Sveicināta pasaule"
+
+#: helloerb.rhtml:15
+msgid "locale"
+msgstr "valoda"
+
+#: helloerb.rhtml:16
+msgid "output_charset"
+msgstr "izvades_simbolu_kodējums"
+
+#: helloerb.rhtml:17
+msgid "QUERY_STRING"
+msgstr "PIEPRASĪJUMA_TEKSTS"
+
+#: helloerb.rhtml:19
+msgid "Call a library method which has another textdomain."
+msgstr "Izsaukt bibliotēku ar citu teksta sakni"
+
+#: helloerb.rhtml:21
+msgid "Back"
+msgstr "Atgriezties"
+
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/po/lv/hellolib.po b/vendor/gems/gettext-2.1.0/samples/cgi/po/lv/hellolib.po
new file mode 100644
index 000000000..90e512899
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/po/lv/hellolib.po
@@ -0,0 +1,24 @@
+# CGI/ERB sample for Ruby-GetText-Package.
+#
+# Copyright (C) 2005,2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Aivars Akots, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: cgi-sample 1.1.1\n"
+"POT-Creation-Date: 2006-01-07 14:53+0900\n"
+"PO-Revision-Date: 2008-07-22 08:56+0200\n"
+"Last-Translator: Aivars Akots <aivars.akots@gmail.com>\n"
+"Language-Team: Latvian\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);\n"
+
+#: hellolib.rb:19
+msgid "This message is from hellolib."
+msgstr "Šis ziņojums ir no hellolib."
+
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/po/lv/main.po b/vendor/gems/gettext-2.1.0/samples/cgi/po/lv/main.po
new file mode 100644
index 000000000..a225e0118
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/po/lv/main.po
@@ -0,0 +1,77 @@
+# CGI/ERB sample for Ruby-GetText-Package.
+#
+# Copyright (C) 2005,2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Aivars Akots, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: cgi-sample 1.1.1\n"
+"POT-Creation-Date: 2006-01-07 14:55+0900\n"
+"PO-Revision-Date: 2008-07-22 09:24+0200\n"
+"Last-Translator: Aivars Akots <aivars.akots@gmail.com>\n"
+"Language-Team: Latvian\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);\n"
+
+#: index.cgi:36
+msgid "an ERB/CGI sample (UTF-8)."
+msgstr "ERB/CGI paraugs (UTF-8)."
+
+#: index.cgi:37
+msgid "an ERB/CGI sample (UTF-8). This sample uses the same container as sample 1 but has a different rhtml file."
+msgstr "ERB/CGI paraugs (UTF-8). Šis paraugs izmantot to pašu saturu ko paraugs 1, bet ar citu rhtml datni."
+
+#: index.cgi:38
+msgid "an ERB/CGI sample (Auto-Detect charset)."
+msgstr "ERB/CGI paraugs (UTF-8) (Automātiksa simbolu kodējuma atpazīšana)."
+
+#: index.cgi:50
+#: cookie.cgi:44
+msgid "Sample script for CGI/ERB and Ruby-GetText-Package"
+msgstr "CGI/ERB un Ruby-GetText-Package paraugs"
+
+#: index.cgi:55
+msgid "Ruby-GetText CGI sample scripts"
+msgstr "Ruby-GetText CGI paraugi"
+
+#: index.cgi:57
+msgid "Supported Locales:"
+msgstr "Atbalstītās valodas"
+
+#: index.cgi:58
+msgid "Auto-Detect a locale from the WWW browser"
+msgstr "Automātiski noteikt valodu no WWW pārlūka"
+
+#: index.cgi:66
+msgid "Set locale as a \"lang\" parameter"
+msgstr "Uzstādīt valodu kā \"lang\" mainīgo"
+
+#: index.cgi:82
+msgid "Set \"lang\" to cookie."
+msgstr "Uzstādīt \"lang\" sīkdatnē"
+
+#: index.cgi:83
+msgid "Click one of the link below, and then click \"Auto-Detect a locale from the WWW browser\" samples."
+msgstr "Spied uz kādas no zemāk norādītajām saitēm un tad spied uz \"Automātiski noteikt valodu no WWW pārlūka\" piemēriem"
+
+#: index.cgi:92
+msgid "Source codes"
+msgstr "Izejas kodi"
+
+#: index.cgi:103
+msgid "index.cgi is also a Ruby-GetText sample script using CGI(not ERB)."
+msgstr "index.cgi ir arī Ruby-GetText paraugs izmantojot CGI(nevis ERB)."
+
+#: cookie.cgi:50
+msgid "Set [%s] as the cookie of your WWW Browser."
+msgstr "Uzstādīt [%s] kā sīkdatni WWW Pārlūkā."
+
+#: cookie.cgi:54
+msgid "Back"
+msgstr "Atgriezties"
+
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/po/main.pot b/vendor/gems/gettext-2.1.0/samples/cgi/po/main.pot
new file mode 100644
index 000000000..fe8317ab3
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/po/main.pot
@@ -0,0 +1,80 @@
+# CGI/ERB sample for Ruby-GetText-Package.
+#
+# Copyright (C) 2005,2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: cgi-sample 1.1.1\n"
+"POT-Creation-Date: 2006-01-07 14:55+0900\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
+
+#: index.cgi:36
+msgid "an ERB/CGI sample (UTF-8)."
+msgstr ""
+
+#: index.cgi:37
+msgid ""
+"an ERB/CGI sample (UTF-8). This sample uses the same container as sample 1 "
+"but has a different rhtml file."
+msgstr ""
+
+#: index.cgi:38
+msgid "an ERB/CGI sample (Auto-Detect charset)."
+msgstr ""
+
+#: index.cgi:50 cookie.cgi:44
+msgid "Sample script for CGI/ERB and Ruby-GetText-Package"
+msgstr ""
+
+#: index.cgi:55
+msgid "Ruby-GetText CGI sample scripts"
+msgstr ""
+
+#: index.cgi:57
+msgid "Supported Locales:"
+msgstr ""
+
+#: index.cgi:58
+msgid "Auto-Detect a locale from the WWW browser"
+msgstr ""
+
+#: index.cgi:66
+msgid "Set locale as a \"lang\" parameter"
+msgstr ""
+
+#: index.cgi:82
+msgid "Set \"lang\" to cookie."
+msgstr ""
+
+#: index.cgi:83
+msgid ""
+"Click one of the link below, and then click \"Auto-Detect a locale from the "
+"WWW browser\" samples."
+msgstr ""
+
+#: index.cgi:92
+msgid "Source codes"
+msgstr ""
+
+#: index.cgi:103
+msgid "index.cgi is also a Ruby-GetText sample script using CGI(not ERB)."
+msgstr ""
+
+#: cookie.cgi:50
+msgid "Set [%s] as the cookie of your WWW Browser."
+msgstr ""
+
+#: cookie.cgi:54
+msgid "Back"
+msgstr ""
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/po/nb/helloerb1.po b/vendor/gems/gettext-2.1.0/samples/cgi/po/nb/helloerb1.po
new file mode 100644
index 000000000..fffd6d460
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/po/nb/helloerb1.po
@@ -0,0 +1,60 @@
+# CGI/ERB sample for Ruby-GetText-Package.
+# Copyright (C) 2005,2006 Masao Mutoh
+# This file is distributed under the same license as the Ruby-GetText-Package.
+# Runar Ingebrigtsen <runar@mopo.no>, 2008.
+# , fuzzy
+#
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: cgi-sample 1.1.1\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2006-01-07 14:48+0900\n"
+"PO-Revision-Date: 2008-07-14 16:27+0200\n"
+"Last-Translator: Runar Ingebrigtsen <runar@mopo.no>\n"
+"Language-Team: Norwegian/Bokmaal <i18n-nb@lister.ping.uio.no>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;"
+
+#: helloerb1.cgi:32
+msgid "Sample script for CGI/ERB (UTF-8)."
+msgstr "Eksempelskript for CGI/ERB (UTF-8)."
+
+#: helloerb.rhtml:5 other.rhtml:5
+msgid "Sample script for CGI/ERB and Ruby-GetText-Package"
+msgstr "Eksempelskript for CGI/ERB og Ruby-GetText-pakken"
+
+#: helloerb.rhtml:12
+msgid "Hello World"
+msgstr "Smil til verden"
+
+#: helloerb.rhtml:15 other.rhtml:11
+msgid "locale"
+msgstr "lokale"
+
+#: helloerb.rhtml:16 other.rhtml:12
+msgid "output_charset"
+msgstr "output_charset"
+
+#: helloerb.rhtml:17 other.rhtml:13
+msgid "QUERY_STRING"
+msgstr "QUERY_STRING"
+
+#: helloerb.rhtml:19
+msgid "Call a library method which has another textdomain."
+msgstr "Spør etter bibliotekmetode som har et annet tekstdomene."
+
+#: helloerb.rhtml:21 other.rhtml:15
+msgid "Back"
+msgstr "Tilbake"
+
+#: other.rhtml:8
+msgid "Another sample"
+msgstr "Enda et eksempel"
+
+#: other.rhtml:9
+msgid "This sample(other.rhtml) is the another ERB file of helloerb1.cgi."
+msgstr "Dette eksempelet (other.rhtml) er den andre ERB-filen til helloerb1.cgi"
+
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/po/nb/helloerb2.po b/vendor/gems/gettext-2.1.0/samples/cgi/po/nb/helloerb2.po
new file mode 100644
index 000000000..a9e51b87f
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/po/nb/helloerb2.po
@@ -0,0 +1,52 @@
+# CGI/ERB sample for Ruby-GetText-Package.
+# Copyright (C) 2005,2006 Masao Mutoh
+# This file is distributed under the same license as the Ruby-GetText-Package.
+# Runar Ingebrigtsen <runar@mopo.no>, 2008.
+# , fuzzy
+#
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: cgi-sample 1.1.1\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2006-01-07 14:51+0900\n"
+"PO-Revision-Date: 2008-07-14 16:28+0200\n"
+"Last-Translator: Runar Ingebrigtsen <runar@mopo.no>\n"
+"Language-Team: Norwegian/Bokmaal <i18n-nb@lister.ping.uio.no>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;"
+
+#: helloerb2.cgi:34
+msgid "Sample script for CGI/ERB (Auto-Detect charset)."
+msgstr "Eksempelskript for CGI/ERB (Auto-Detect-charset)."
+
+#: helloerb.rhtml:5
+msgid "Sample script for CGI/ERB and Ruby-GetText-Package"
+msgstr "Eksempelskript for CGI/ERB og Ruby-GetText-pakken"
+
+#: helloerb.rhtml:12
+msgid "Hello World"
+msgstr "Smil til verden"
+
+#: helloerb.rhtml:15
+msgid "locale"
+msgstr "lokale"
+
+#: helloerb.rhtml:16
+msgid "output_charset"
+msgstr "output_charset"
+
+#: helloerb.rhtml:17
+msgid "QUERY_STRING"
+msgstr "QUERY_STRING"
+
+#: helloerb.rhtml:19
+msgid "Call a library method which has another textdomain."
+msgstr "Spør etter bibliotekmetode som har et annet tekstdomene."
+
+#: helloerb.rhtml:21
+msgid "Back"
+msgstr "Tilbake"
+
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/po/nb/hellolib.po b/vendor/gems/gettext-2.1.0/samples/cgi/po/nb/hellolib.po
new file mode 100644
index 000000000..adc6c3060
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/po/nb/hellolib.po
@@ -0,0 +1,24 @@
+# CGI/ERB sample for Ruby-GetText-Package.
+# Copyright (C) 2005,2006 Masao Mutoh
+# This file is distributed under the same license as the Ruby-GetText-Package.
+# Runar Ingebrigtsen <runar@mopo.no>, 2008.
+# , fuzzy
+#
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: cgi-sample 1.1.1\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2006-01-07 14:53+0900\n"
+"PO-Revision-Date: 2008-07-14 16:30+0200\n"
+"Last-Translator: Runar Ingebrigtsen <runar@mopo.no>\n"
+"Language-Team: Norwegian/Bokmaal <i18n-nb@lister.ping.uio.no>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;"
+
+#: hellolib.rb:19
+msgid "This message is from hellolib."
+msgstr "Denne meldingen kommer fra hellolib"
+
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/po/nb/main.po b/vendor/gems/gettext-2.1.0/samples/cgi/po/nb/main.po
new file mode 100644
index 000000000..82fa0148e
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/po/nb/main.po
@@ -0,0 +1,84 @@
+# CGI/ERB sample for Ruby-GetText-Package.
+# Copyright (C) 2005,2006 Masao Mutoh
+# This file is distributed under the same license as the Ruby-GetText-Package.
+# Runar Ingebrigtsen <runar@mopo.no>, 2008.
+# , fuzzy
+#
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: cgi-sample 1.1.1\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2006-01-07 14:55+0900\n"
+"PO-Revision-Date: 2008-07-14 16:35+0200\n"
+"Last-Translator: Runar Ingebrigtsen <runar@mopo.no>\n"
+"Language-Team: Norwegian/Bokmaal <i18n-nb@lister.ping.uio.no>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;"
+
+#: index.cgi:36
+msgid "an ERB/CGI sample (UTF-8)."
+msgstr "et ERB/CGI-eksempel (UTF-8)."
+
+#: index.cgi:37
+msgid ""
+"an ERB/CGI sample (UTF-8). This sample uses the same container as sample 1 "
+"but has a different rhtml file."
+msgstr ""
+"et ERB/CGI-eksempel (UTF-8). Dette eksempelet bruker den samme containeren som"
+"eksempel 1, men har en annen rhtml-fil."
+
+#: index.cgi:38
+msgid "an ERB/CGI sample (Auto-Detect charset)."
+msgstr "et ERB/CGI-eksempel (Auto-Detect charset)."
+
+#: index.cgi:50 cookie.cgi:44
+msgid "Sample script for CGI/ERB and Ruby-GetText-Package"
+msgstr "Eksempelskript for CGI/ERB og Ruby-GetText-pakken"
+
+#: index.cgi:55
+msgid "Ruby-GetText CGI sample scripts"
+msgstr "Ruby-GetText CGI eksempelskript"
+
+#: index.cgi:57
+msgid "Supported Locales:"
+msgstr "Støttede lokale:"
+
+#: index.cgi:58
+msgid "Auto-Detect a locale from the WWW browser"
+msgstr "Auto-Detect et lokale fra nettleseren"
+
+#: index.cgi:66
+msgid "Set locale as a \"lang\" parameter"
+msgstr "Sett lokale som en \"lang\"-parameter"
+
+#: index.cgi:82
+msgid "Set \"lang\" to cookie."
+msgstr "Sett \"lang\" til en informasjonskapsel."
+
+#: index.cgi:83
+msgid ""
+"Click one of the link below, and then click \"Auto-Detect a locale from the "
+"WWW browser\" samples."
+msgstr ""
+"Klikk på en lenke under og deretter på \"Auto-Detect et lokale fra nettleseren\""
+"eksemplene."
+
+#: index.cgi:92
+msgid "Source codes"
+msgstr "Kildekode"
+
+#: index.cgi:103
+msgid "index.cgi is also a Ruby-GetText sample script using CGI(not ERB)."
+msgstr "index.cgi er også et Ruby-GetText eksempelskript som bruker CGI, ikke ERB."
+
+#: cookie.cgi:50
+msgid "Set [%s] as the cookie of your WWW Browser."
+msgstr "Sett [%s] som informasjonskapsel i din nettleser."
+
+#: cookie.cgi:54
+msgid "Back"
+msgstr "Tilbake"
+
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/po/nl/helloerb1.po b/vendor/gems/gettext-2.1.0/samples/cgi/po/nl/helloerb1.po
new file mode 100644
index 000000000..ecf856d1c
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/po/nl/helloerb1.po
@@ -0,0 +1,61 @@
+# CGI/ERB sample for Ruby-GetText-Package.
+#
+# Copyright (C) 2005,2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Menno Jonkers <ruby-gettext@jonkers.com>, 2005.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: cgi-sample 1.1.1\n"
+"POT-Creation-Date: 2006-01-07 14:48+0900\n"
+"PO-Revision-Date: 2005-12-19 21:44+0100\n"
+"Last-Translator: Menno Jonkers <ruby-gettext@jonkers.com>\n"
+"Language-Team: Dutch <ruby_gettext@jonkers.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+
+#: helloerb1.cgi:32
+msgid "Sample script for CGI/ERB (UTF-8)."
+msgstr "Voorbeeldscript voor CGI/ERB (UTF-8)."
+
+#: helloerb.rhtml:5 other.rhtml:5
+msgid "Sample script for CGI/ERB and Ruby-GetText-Package"
+msgstr "Voorbeeldscript voor CGI/ERB en Ruby-GetText-Package"
+
+#: helloerb.rhtml:12
+msgid "Hello World"
+msgstr "Hallo wereld"
+
+#: helloerb.rhtml:15 other.rhtml:11
+msgid "locale"
+msgstr "locale"
+
+#: helloerb.rhtml:16 other.rhtml:12
+msgid "output_charset"
+msgstr "output_charset"
+
+#: helloerb.rhtml:17 other.rhtml:13
+msgid "QUERY_STRING"
+msgstr "QUERY_STRING"
+
+#: helloerb.rhtml:19
+msgid "Call a library method which has another textdomain."
+msgstr "Roep een bibliotheekmethode aan die een ander tekstdomein heeft."
+
+#: helloerb.rhtml:21 other.rhtml:15
+msgid "Back"
+msgstr "Terug"
+
+#: other.rhtml:8
+msgid "Another sample"
+msgstr "Een ander voorbeeld"
+
+#: other.rhtml:9
+msgid "This sample(other.rhtml) is the another ERB file of helloerb1.cgi."
+msgstr ""
+"Dit voorbeeld (other.rhtml) is een ander ERB-bestand van helloerb1.cgi."
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/po/nl/helloerb2.po b/vendor/gems/gettext-2.1.0/samples/cgi/po/nl/helloerb2.po
new file mode 100644
index 000000000..5a5a5547e
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/po/nl/helloerb2.po
@@ -0,0 +1,52 @@
+# CGI/ERB sample for Ruby-GetText-Package.
+#
+# Copyright (C) 2005,2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Menno Jonkers <ruby-gettext@jonkers.com>, 2005.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: cgi-sample 1.1.1\n"
+"POT-Creation-Date: 2006-01-07 14:51+0900\n"
+"PO-Revision-Date: 2005-12-19 21:44+0100\n"
+"Last-Translator: Menno Jonkers <ruby-gettext@jonkers.com>\n"
+"Language-Team: Dutch <ruby_gettext@jonkers.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+
+#: helloerb2.cgi:34
+msgid "Sample script for CGI/ERB (Auto-Detect charset)."
+msgstr "Voorbeeldscript voor CGI/ERB (auto-detect charset)."
+
+#: helloerb.rhtml:5
+msgid "Sample script for CGI/ERB and Ruby-GetText-Package"
+msgstr "Voorbeeldscript voor CGI/ERB en Ruby-GetText-Package"
+
+#: helloerb.rhtml:12
+msgid "Hello World"
+msgstr "Hallo wereld"
+
+#: helloerb.rhtml:15
+msgid "locale"
+msgstr "locale"
+
+#: helloerb.rhtml:16
+msgid "output_charset"
+msgstr "output_charset"
+
+#: helloerb.rhtml:17
+msgid "QUERY_STRING"
+msgstr "QUERY_STRING"
+
+#: helloerb.rhtml:19
+msgid "Call a library method which has another textdomain."
+msgstr "Roep een librarymethode aan die een ander tekstdomein heeft."
+
+#: helloerb.rhtml:21
+msgid "Back"
+msgstr "Terug"
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/po/nl/hellolib.po b/vendor/gems/gettext-2.1.0/samples/cgi/po/nl/hellolib.po
new file mode 100644
index 000000000..0512c2f99
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/po/nl/hellolib.po
@@ -0,0 +1,24 @@
+# CGI/ERB sample for Ruby-GetText-Package.
+#
+# Copyright (C) 2005,2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Menno Jonkers <ruby-gettext@jonkers.com>, 2005.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: cgi-sample 1.1.1\n"
+"POT-Creation-Date: 2006-01-07 14:53+0900\n"
+"PO-Revision-Date: 2005-12-19 21:44+0100\n"
+"Last-Translator: Menno Jonkers <ruby-gettext@jonkers.com>\n"
+"Language-Team: Dutch <ruby_gettext@jonkers.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+
+#: hellolib.rb:19
+msgid "This message is from hellolib."
+msgstr "Dit bericht komt van hellolib."
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/po/nl/main.po b/vendor/gems/gettext-2.1.0/samples/cgi/po/nl/main.po
new file mode 100644
index 000000000..fa5ae032c
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/po/nl/main.po
@@ -0,0 +1,86 @@
+# CGI/ERB sample for Ruby-GetText-Package.
+#
+# Copyright (C) 2005,2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Menno Jonkers <ruby-gettext@jonkers.com>, 2005.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: cgi-sample 1.1.1\n"
+"POT-Creation-Date: 2006-01-07 14:55+0900\n"
+"PO-Revision-Date: 2005-12-19 21:44+0100\n"
+"Last-Translator: Menno Jonkers <ruby-gettext@jonkers.com>\n"
+"Language-Team: Dutch <ruby_gettext@jonkers.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+
+#: index.cgi:36
+msgid "an ERB/CGI sample (UTF-8)."
+msgstr "een ERB/CGI voorbeeld (UTF-8)."
+
+#: index.cgi:37
+msgid ""
+"an ERB/CGI sample (UTF-8). This sample uses the same container as sample 1 "
+"but has a different rhtml file."
+msgstr ""
+"een ERB/CGI voorbeeld (UTF-8). Dit voorbeeld gebruikt dezelfde container als "
+"voorbeeld 1, maar heeft een ander rhtml-bestand."
+
+#: index.cgi:38
+msgid "an ERB/CGI sample (Auto-Detect charset)."
+msgstr "een ERB/CGI voorbeeld (auto-detect charset)."
+
+#: index.cgi:50 cookie.cgi:44
+msgid "Sample script for CGI/ERB and Ruby-GetText-Package"
+msgstr "Voorbeeldscript voor CGI/ERB en Ruby-GetText-Package"
+
+#: index.cgi:55
+msgid "Ruby-GetText CGI sample scripts"
+msgstr "Ruby-GetText CGI voorbeeldscripts"
+
+#: index.cgi:57
+msgid "Supported Locales:"
+msgstr "Ondersteunde locales:"
+
+#: index.cgi:58
+msgid "Auto-Detect a locale from the WWW browser"
+msgstr "Auto-detect een locale van de webbrowser"
+
+#: index.cgi:66
+msgid "Set locale as a \"lang\" parameter"
+msgstr "Stel locale in als een \"lang\" parameter"
+
+#: index.cgi:82
+msgid "Set \"lang\" to cookie."
+msgstr "Zet \"lang\" in een cookie."
+
+#: index.cgi:83
+msgid ""
+"Click one of the link below, and then click \"Auto-Detect a locale from the "
+"WWW browser\" samples."
+msgstr ""
+"Kies een van onderstaande links en klik dan \"Auto-detect een locale van de "
+"webbrowser\"."
+
+#: index.cgi:92
+msgid "Source codes"
+msgstr "Broncodes"
+
+#: index.cgi:103
+msgid "index.cgi is also a Ruby-GetText sample script using CGI(not ERB)."
+msgstr ""
+"index.cgi is ook een Ruby-GetText voorbeeldscript dat CGI gebruikt (niet "
+"ERB)."
+
+#: cookie.cgi:50
+msgid "Set [%s] as the cookie of your WWW Browser."
+msgstr "Stel [%s] in als cookie van de webbrowser."
+
+#: cookie.cgi:54
+msgid "Back"
+msgstr "Terug"
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/po/pt_BR/helloerb1.po b/vendor/gems/gettext-2.1.0/samples/cgi/po/pt_BR/helloerb1.po
new file mode 100644
index 000000000..bdcb8dfe8
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/po/pt_BR/helloerb1.po
@@ -0,0 +1,59 @@
+# CGI/ERB sample for Ruby-GetText-Package.
+#
+# Copyright (C) 2005,2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Joao Pedrosa <joaopedrosa@gmail.com>, 2005.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: cgi-sample 1.1.1\n"
+"POT-Creation-Date: 2006-01-07 14:48+0900\n"
+"PO-Revision-Date: 2005-12-17 10:12-0300\n"
+"Last-Translator: Joao Pedrosa <joaopedrosa@gmail.com>\n"
+"Language-Team: Portuguese(Brazil)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: helloerb1.cgi:32
+msgid "Sample script for CGI/ERB (UTF-8)."
+msgstr "Script de exemplo para CGI/ERB (UTF-8)."
+
+#: helloerb.rhtml:5 other.rhtml:5
+msgid "Sample script for CGI/ERB and Ruby-GetText-Package"
+msgstr "Script de exemplo para CGI/ERB e Ruby-GetText-Package"
+
+#: helloerb.rhtml:12
+msgid "Hello World"
+msgstr "Olá Mundo"
+
+#: helloerb.rhtml:15 other.rhtml:11
+msgid "locale"
+msgstr "locale"
+
+#: helloerb.rhtml:16 other.rhtml:12
+msgid "output_charset"
+msgstr "charset_de_saída"
+
+#: helloerb.rhtml:17 other.rhtml:13
+msgid "QUERY_STRING"
+msgstr "STRING_DE_PESQUISA"
+
+#: helloerb.rhtml:19
+msgid "Call a library method which has another textdomain."
+msgstr "Chama um método de biblioteca que tem um outro domínio de texto."
+
+#: helloerb.rhtml:21 other.rhtml:15
+msgid "Back"
+msgstr "Voltar"
+
+#: other.rhtml:8
+msgid "Another sample"
+msgstr "Outro exemplo"
+
+#: other.rhtml:9
+msgid "This sample(other.rhtml) is the another ERB file of helloerb1.cgi."
+msgstr "Este exemplo(other.rhtml) é o outro arquivo de ERB do helloerb1.cgi."
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/po/pt_BR/helloerb2.po b/vendor/gems/gettext-2.1.0/samples/cgi/po/pt_BR/helloerb2.po
new file mode 100644
index 000000000..d628670cd
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/po/pt_BR/helloerb2.po
@@ -0,0 +1,51 @@
+# CGI/ERB sample for Ruby-GetText-Package.
+#
+# Copyright (C) 2005 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Joao Pedrosa <joaopedrosa@gmail.com>, 2005.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: cgi-sample 1.1.1\n"
+"POT-Creation-Date: 2006-01-07 14:51+0900\n"
+"PO-Revision-Date: 2005-12-17 10:12-0300\n"
+"Last-Translator: Joao Pedrosa <joaopedrosa@gmail.com>\n"
+"Language-Team: Portuguese(Brazil)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: helloerb2.cgi:34
+msgid "Sample script for CGI/ERB (Auto-Detect charset)."
+msgstr "Script de exemplo para CGI/ERB (Auto-Detectar charset)."
+
+#: helloerb.rhtml:5
+msgid "Sample script for CGI/ERB and Ruby-GetText-Package"
+msgstr "Script de exemplo para CGI/ERB e Ruby-GetText-Package"
+
+#: helloerb.rhtml:12
+msgid "Hello World"
+msgstr "Olá Mundo"
+
+#: helloerb.rhtml:15
+msgid "locale"
+msgstr "locale"
+
+#: helloerb.rhtml:16
+msgid "output_charset"
+msgstr "charset_de_saída"
+
+#: helloerb.rhtml:17
+msgid "QUERY_STRING"
+msgstr "STRING_DE_PESQUISA"
+
+#: helloerb.rhtml:19
+msgid "Call a library method which has another textdomain."
+msgstr "Chamar um método de biblioteca que tem outro domínio de texto."
+
+#: helloerb.rhtml:21
+msgid "Back"
+msgstr "Voltar"
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/po/pt_BR/hellolib.po b/vendor/gems/gettext-2.1.0/samples/cgi/po/pt_BR/hellolib.po
new file mode 100644
index 000000000..d17c667d5
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/po/pt_BR/hellolib.po
@@ -0,0 +1,23 @@
+# CGI/ERB sample for Ruby-GetText-Package.
+#
+# Copyright (C) 2005 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Joao Pedrosa <joaopedrosa@gmail.com>, 2005.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: cgi-sample 1.1.1\n"
+"POT-Creation-Date: 2006-01-07 14:53+0900\n"
+"PO-Revision-Date: 2005-12-17 10:12-0300\n"
+"Last-Translator: Joao Pedrosa <joaopedrosa@gmail.com>\n"
+"Language-Team: Portuguese(Brazil)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: hellolib.rb:19
+msgid "This message is from hellolib."
+msgstr "Esta mensagem é de hellolib."
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/po/pt_BR/main.po b/vendor/gems/gettext-2.1.0/samples/cgi/po/pt_BR/main.po
new file mode 100644
index 000000000..6481ca372
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/po/pt_BR/main.po
@@ -0,0 +1,84 @@
+# CGI/ERB sample for Ruby-GetText-Package.
+#
+# Copyright (C) 2005 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Joao Pedrosa <joaopedrosa@gmail.com>, 2005.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: cgi-sample 1.1.1\n"
+"POT-Creation-Date: 2006-01-07 14:55+0900\n"
+"PO-Revision-Date: 2005-12-17 10:12-0300\n"
+"Last-Translator: Joao Pedrosa <joaopedrosa@gmail.com>\n"
+"Language-Team: Portuguese(Brazil)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: index.cgi:36
+msgid "an ERB/CGI sample (UTF-8)."
+msgstr "um exemplo de ERB/CGI (UTF-8)."
+
+#: index.cgi:37
+msgid ""
+"an ERB/CGI sample (UTF-8). This sample uses the same container as sample 1 "
+"but has a different rhtml file."
+msgstr ""
+"um exemplo de ERB/CGI (UTF-8). Este exemplo usa o mesmo recipiente do "
+"exemplo 1, mas tem outro arquivo rhtml."
+
+#: index.cgi:38
+msgid "an ERB/CGI sample (Auto-Detect charset)."
+msgstr "um exemplo ERB/CGI (Auto-Detectar charset)."
+
+#: index.cgi:50 cookie.cgi:44
+msgid "Sample script for CGI/ERB and Ruby-GetText-Package"
+msgstr "Script de exemplo para CGI/ERB e Ruby-GetText-Package"
+
+#: index.cgi:55
+msgid "Ruby-GetText CGI sample scripts"
+msgstr "Scripts de exemplo de CGI de Ruby-GetText"
+
+#: index.cgi:57
+msgid "Supported Locales:"
+msgstr "Locales suportados:"
+
+#: index.cgi:58
+msgid "Auto-Detect a locale from the WWW browser"
+msgstr "Auto-Detectar um locale do browser WWW"
+
+#: index.cgi:66
+msgid "Set locale as a \"lang\" parameter"
+msgstr "Configurar locale como um parâmetro \"lang\""
+
+#: index.cgi:82
+msgid "Set \"lang\" to cookie."
+msgstr "Configurar \"lang\" para cookie."
+
+#: index.cgi:83
+msgid ""
+"Click one of the link below, and then click \"Auto-Detect a locale from the "
+"WWW browser\" samples."
+msgstr ""
+"Clique em um dos links abaixo, e então clique no exemplo \"Auto-Detectar um "
+"locale do browser WWW\""
+
+#: index.cgi:92
+msgid "Source codes"
+msgstr "Código-fonte"
+
+#: index.cgi:103
+msgid "index.cgi is also a Ruby-GetText sample script using CGI(not ERB)."
+msgstr ""
+"index.cgi também é um script de exemplo de Ruby-GetText usando CGI(não ERB)."
+
+#: cookie.cgi:50
+msgid "Set [%s] as the cookie of your WWW Browser."
+msgstr "Configurar [%s] como o cookie do seu browser WWW."
+
+#: cookie.cgi:54
+msgid "Back"
+msgstr "Voltar"
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/po/ru/helloerb1.po b/vendor/gems/gettext-2.1.0/samples/cgi/po/ru/helloerb1.po
new file mode 100644
index 000000000..d334350f5
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/po/ru/helloerb1.po
@@ -0,0 +1,58 @@
+# translation of helloerb1.po to Russian
+# CGI/ERB sample for Ruby-GetText-Package.
+# Copyright (C) 2005,2006 Masao Mutoh#
+# This file is distributed under the same license as the Ruby-GetText-Package.#
+# Yuri Kozlov <kozlov.y@gmail.com>, 2006.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: cgi-sample 1.1.1\n"
+"POT-Creation-Date: 2006-01-07 14:48+0900\n"
+"PO-Revision-Date: 2006-04-17 20:25+0300\n"
+"Last-Translator: Yuri Kozlov <kozlov.y@gmail.com>\n"
+"Language-Team: Russian <debian-l10n-russian@lists.debian.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.9.1\n"
+
+#: helloerb1.cgi:32
+msgid "Sample script for CGI/ERB (UTF-8)."
+msgstr "Пример сценария CGI/ERB (UTF-8)."
+
+#: helloerb.rhtml:5 other.rhtml:5
+msgid "Sample script for CGI/ERB and Ruby-GetText-Package"
+msgstr "Пример сценария CGI/ERB и Ruby-GetText-Package"
+
+#: helloerb.rhtml:12
+msgid "Hello World"
+msgstr "Здравствуй, мир"
+
+#: helloerb.rhtml:15 other.rhtml:11
+msgid "locale"
+msgstr "локаль"
+
+#: helloerb.rhtml:16 other.rhtml:12
+msgid "output_charset"
+msgstr "кодировка_результата"
+
+#: helloerb.rhtml:17 other.rhtml:13
+msgid "QUERY_STRING"
+msgstr "СТРОКА_ЗАПРОСА"
+
+#: helloerb.rhtml:19
+msgid "Call a library method which has another textdomain."
+msgstr "Вызов библиотечного метода, расположенного в другом текстовом домене."
+
+#: helloerb.rhtml:21 other.rhtml:15
+msgid "Back"
+msgstr "Назад"
+
+#: other.rhtml:8
+msgid "Another sample"
+msgstr "Другой пример"
+
+#: other.rhtml:9
+msgid "This sample(other.rhtml) is the another ERB file of helloerb1.cgi."
+msgstr "Это пример(other.rhtml) из другого ERB файла helloerb1.cgi."
+
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/po/ru/helloerb2.po b/vendor/gems/gettext-2.1.0/samples/cgi/po/ru/helloerb2.po
new file mode 100644
index 000000000..c3031fd3d
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/po/ru/helloerb2.po
@@ -0,0 +1,50 @@
+# translation of helloerb2.po to Russian
+# CGI/ERB sample for Ruby-GetText-Package.
+# Copyright (C) 2005,2006 Masao Mutoh#
+# This file is distributed under the same license as the Ruby-GetText-Package.#
+# Yuri Kozlov <kozlov.y@gmail.com>, 2006.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: cgi-sample 1.1.1\n"
+"POT-Creation-Date: 2006-01-07 14:51+0900\n"
+"PO-Revision-Date: 2006-04-17 20:26+0300\n"
+"Last-Translator: Yuri Kozlov <kozlov.y@gmail.com>\n"
+"Language-Team: Russian <debian-l10n-russian@lists.debian.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.9.1\n"
+
+#: helloerb2.cgi:34
+msgid "Sample script for CGI/ERB (Auto-Detect charset)."
+msgstr "Пример сценария CGI/ERB (Автоопределение кодировки)."
+
+#: helloerb.rhtml:5
+msgid "Sample script for CGI/ERB and Ruby-GetText-Package"
+msgstr "Sample script for CGI/ERB and Ruby-GetText-Package"
+
+#: helloerb.rhtml:12
+msgid "Hello World"
+msgstr "Здравствуй, мир"
+
+#: helloerb.rhtml:15
+msgid "locale"
+msgstr "локаль"
+
+#: helloerb.rhtml:16
+msgid "output_charset"
+msgstr "кодировка_результата"
+
+#: helloerb.rhtml:17
+msgid "QUERY_STRING"
+msgstr "СТРОКА_ЗАПРОСА"
+
+#: helloerb.rhtml:19
+msgid "Call a library method which has another textdomain."
+msgstr "Вызов библиотечного метода, расположенного в другом текстовом домене."
+
+#: helloerb.rhtml:21
+msgid "Back"
+msgstr "Назад"
+
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/po/ru/hellolib.po b/vendor/gems/gettext-2.1.0/samples/cgi/po/ru/hellolib.po
new file mode 100644
index 000000000..3c25cdfba
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/po/ru/hellolib.po
@@ -0,0 +1,22 @@
+# translation of hellolib.po to Russian
+# CGI/ERB sample for Ruby-GetText-Package.
+# Copyright (C) 2005,2006 Masao Mutoh#
+# This file is distributed under the same license as the Ruby-GetText-Package.#
+# Yuri Kozlov <kozlov.y@gmail.com>, 2006.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: cgi-sample 1.1.1\n"
+"POT-Creation-Date: 2006-01-07 14:53+0900\n"
+"PO-Revision-Date: 2006-04-17 20:43+0300\n"
+"Last-Translator: Yuri Kozlov <kozlov.y@gmail.com>\n"
+"Language-Team: Russian <debian-l10n-russian@lists.debian.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.9.1\n"
+
+#: hellolib.rb:19
+msgid "This message is from hellolib."
+msgstr "Сообщение из hellolib."
+
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/po/ru/main.po b/vendor/gems/gettext-2.1.0/samples/cgi/po/ru/main.po
new file mode 100644
index 000000000..9983e5bdc
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/po/ru/main.po
@@ -0,0 +1,82 @@
+# translation of main.po to Russian
+# CGI/ERB sample for Ruby-GetText-Package.
+# Copyright (C) 2005,2006 Masao Mutoh#
+# This file is distributed under the same license as the Ruby-GetText-Package.#
+# Yuri Kozlov <kozlov.y@gmail.com>, 2006.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: cgi-sample 1.1.1\n"
+"POT-Creation-Date: 2006-01-07 14:55+0900\n"
+"PO-Revision-Date: 2006-04-17 21:01+0300\n"
+"Last-Translator: Yuri Kozlov <kozlov.y@gmail.com>\n"
+"Language-Team: Russian <debian-l10n-russian@lists.debian.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.9.1\n"
+
+#: index.cgi:36
+msgid "an ERB/CGI sample (UTF-8)."
+msgstr "Пример ERB/CGI (UTF-8)."
+
+#: index.cgi:37
+msgid ""
+"an ERB/CGI sample (UTF-8). This sample uses the same container as sample 1 "
+"but has a different rhtml file."
+msgstr ""
+"Пример ERB/CGI (UTF-8). Этот пример использует тот же контейнер как "
+"в примере 1, но имеет другой rhtml файл."
+
+#: index.cgi:38
+msgid "an ERB/CGI sample (Auto-Detect charset)."
+msgstr "Пример ERB/CGI (автоопределение кодировки)."
+
+#: index.cgi:50 cookie.cgi:44
+msgid "Sample script for CGI/ERB and Ruby-GetText-Package"
+msgstr "Пример сценария CGI/ERB и Ruby-GetText-Package"
+
+#: index.cgi:55
+msgid "Ruby-GetText CGI sample scripts"
+msgstr "Примеры сценариев Ruby-GetText CGI"
+
+#: index.cgi:57
+msgid "Supported Locales:"
+msgstr "Поддерживаемые локали:"
+
+#: index.cgi:58
+msgid "Auto-Detect a locale from the WWW browser"
+msgstr "Автоопределение локали WWW браузера"
+
+#: index.cgi:66
+msgid "Set locale as a \"lang\" parameter"
+msgstr "Установка локали в параметре \"lang\""
+
+#: index.cgi:82
+msgid "Set \"lang\" to cookie."
+msgstr "Установка \"lang\" в куки."
+
+#: index.cgi:83
+msgid ""
+"Click one of the link below, and then click \"Auto-Detect a locale from the "
+"WWW browser\" samples."
+msgstr ""
+"Нажмите на ссылку ниже и затем нажмите на "
+"примеры \"Автоопределение локали WWW браузера\"."
+
+#: index.cgi:92
+msgid "Source codes"
+msgstr "Исходные тексты"
+
+#: index.cgi:103
+msgid "index.cgi is also a Ruby-GetText sample script using CGI(not ERB)."
+msgstr "index.cgi это также Ruby-GetText пример использующий CGI(не ERB)."
+
+#: cookie.cgi:50
+msgid "Set [%s] as the cookie of your WWW Browser."
+msgstr "Установить [%s] как куки в вашем WWW браузере."
+
+#: cookie.cgi:54
+msgid "Back"
+msgstr "Назад"
+
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/po/sr/helloerb1.po b/vendor/gems/gettext-2.1.0/samples/cgi/po/sr/helloerb1.po
new file mode 100644
index 000000000..8a6cf4c6a
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/po/sr/helloerb1.po
@@ -0,0 +1,60 @@
+# CGI/ERB sample for Ruby-GetText-Package.
+#
+# Copyright (C) 2005,2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Slobodan Paunović <slobodan.paunovic at gmail.com>, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: cgi-sample 1.1.1\n"
+"POT-Creation-Date: 2006-01-07 14:48+0900\n"
+"PO-Revision-Date: 2008-06-05 23:05+0200\n"
+"Last-Translator: Slobodan Paunović <slobodan.paunovic at gmail.com>\n"
+"Language-Team: Serbian\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%"
+"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+
+#: helloerb1.cgi:32
+msgid "Sample script for CGI/ERB (UTF-8)."
+msgstr "Пример скрипта за CGI/ERB (UTF-8)."
+
+#: helloerb.rhtml:5 other.rhtml:5
+msgid "Sample script for CGI/ERB and Ruby-GetText-Package"
+msgstr "Пример скрипта за CGI/ERB и Ruby-GetText-Package"
+
+#: helloerb.rhtml:12
+msgid "Hello World"
+msgstr "Здраво свете"
+
+#: helloerb.rhtml:15 other.rhtml:11
+msgid "locale"
+msgstr "locale"
+
+#: helloerb.rhtml:16 other.rhtml:12
+msgid "output_charset"
+msgstr "output_charset"
+
+#: helloerb.rhtml:17 other.rhtml:13
+msgid "QUERY_STRING"
+msgstr "QUERY_STRING"
+
+#: helloerb.rhtml:19
+msgid "Call a library method which has another textdomain."
+msgstr "Позови функцију из библиотеке која има неки други текст домен."
+
+#: helloerb.rhtml:21 other.rhtml:15
+msgid "Back"
+msgstr "Назад"
+
+#: other.rhtml:8
+msgid "Another sample"
+msgstr "Други пример"
+
+#: other.rhtml:9
+msgid "This sample(other.rhtml) is the another ERB file of helloerb1.cgi."
+msgstr "Овај пример(other.rhtml) је други ERB фајл од helloerb1.cgi."
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/po/sr/helloerb2.po b/vendor/gems/gettext-2.1.0/samples/cgi/po/sr/helloerb2.po
new file mode 100644
index 000000000..86394af6c
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/po/sr/helloerb2.po
@@ -0,0 +1,52 @@
+# CGI/ERB sample for Ruby-GetText-Package.
+#
+# Copyright (C) 2005,2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Slobodan Paunović <slobodan.paunovic at gmail.com>, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: cgi-sample 1.1.1\n"
+"POT-Creation-Date: 2006-01-07 14:51+0900\n"
+"PO-Revision-Date: 2008-06-05 23:06+0200\n"
+"Last-Translator: Slobodan Paunović <slobodan.paunovic at gmail.com>\n"
+"Language-Team: Serbian\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%"
+"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+
+#: helloerb2.cgi:34
+msgid "Sample script for CGI/ERB (Auto-Detect charset)."
+msgstr "Пример скрипта за CGI/ERB (Auto-Detect charset)."
+
+#: helloerb.rhtml:5
+msgid "Sample script for CGI/ERB and Ruby-GetText-Package"
+msgstr "Пример скрипта за CGI/ERB i Ruby-GetText-Package"
+
+#: helloerb.rhtml:12
+msgid "Hello World"
+msgstr "Здраво свете"
+
+#: helloerb.rhtml:15
+msgid "locale"
+msgstr "locale"
+
+#: helloerb.rhtml:16
+msgid "output_charset"
+msgstr "output_charset"
+
+#: helloerb.rhtml:17
+msgid "QUERY_STRING"
+msgstr "QUERY_STRING"
+
+#: helloerb.rhtml:19
+msgid "Call a library method which has another textdomain."
+msgstr "Позови функцију библиотеке која има неки други текст домен."
+
+#: helloerb.rhtml:21
+msgid "Back"
+msgstr "Назад"
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/po/sr/hellolib.po b/vendor/gems/gettext-2.1.0/samples/cgi/po/sr/hellolib.po
new file mode 100644
index 000000000..0c30f268e
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/po/sr/hellolib.po
@@ -0,0 +1,24 @@
+# CGI/ERB sample for Ruby-GetText-Package.
+#
+# Copyright (C) 2005,2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Slobodan Paunović <slobodan.paunovic at gmail.com>, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: cgi-sample 1.1.1\n"
+"POT-Creation-Date: 2006-01-07 14:53+0900\n"
+"PO-Revision-Date: 2008-06-05 23:08+0200\n"
+"Last-Translator: Slobodan Paunović <slobodan.paunovic at gmail.com>\n"
+"Language-Team: Serbian\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%"
+"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+
+#: hellolib.rb:19
+msgid "This message is from hellolib."
+msgstr "Ова порука је из hellolib."
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/po/sr/main.po b/vendor/gems/gettext-2.1.0/samples/cgi/po/sr/main.po
new file mode 100644
index 000000000..d9723d9ab
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/po/sr/main.po
@@ -0,0 +1,80 @@
+# CGI/ERB sample for Ruby-GetText-Package.
+#
+# Copyright (C) 2005,2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Slobodan Paunović <slobodan.paunovic at gmail.com>, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: cgi-sample 1.1.1\n"
+"POT-Creation-Date: 2006-01-07 14:55+0900\n"
+"PO-Revision-Date: 2008-06-05 23:14+0200\n"
+"Last-Translator: Slobodan Paunović <slobodan.paunovic at gmail.com>\n"
+"Language-Team: Serbian\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%"
+"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+
+#: index.cgi:36
+msgid "an ERB/CGI sample (UTF-8)."
+msgstr "један ERB/CGI пример (UTF-8)"
+
+#: index.cgi:37
+msgid ""
+"an ERB/CGI sample (UTF-8). This sample uses the same container as sample 1 "
+"but has a different rhtml file."
+msgstr "један ERB/CGI пример (UTF-8). Овај пример користи исти контејнер као и пример 1, али има другачији rhtml фајл."
+
+#: index.cgi:38
+msgid "an ERB/CGI sample (Auto-Detect charset)."
+msgstr "један ERB/CGI пример (Auto-Detect charset)."
+
+#: index.cgi:50 cookie.cgi:44
+msgid "Sample script for CGI/ERB and Ruby-GetText-Package"
+msgstr "Пример скрипта за CGI/ERB и Ruby-GetText-Package"
+
+#: index.cgi:55
+msgid "Ruby-GetText CGI sample scripts"
+msgstr "Ruby-GetText CGI примери скриптова"
+
+#: index.cgi:57
+msgid "Supported Locales:"
+msgstr "Подржани језици:"
+
+#: index.cgi:58
+msgid "Auto-Detect a locale from the WWW browser"
+msgstr "Аутоматска детекција језика из WWW прегледача"
+
+#: index.cgi:66
+msgid "Set locale as a \"lang\" parameter"
+msgstr "Подеси језик као \"lang\" параметар"
+
+#: index.cgi:82
+msgid "Set \"lang\" to cookie."
+msgstr "Подеси \"lang\" у куки."
+
+#: index.cgi:83
+msgid ""
+"Click one of the link below, and then click \"Auto-Detect a locale from the "
+"WWW browser\" samples."
+msgstr "Кликните један од линкова испод, а затим кликните \"Аутоматска детекција језика из WWW прегледачa\" primere."
+
+#: index.cgi:92
+msgid "Source codes"
+msgstr "Изворни код"
+
+#: index.cgi:103
+msgid "index.cgi is also a Ruby-GetText sample script using CGI(not ERB)."
+msgstr "index.cgi је такође Ruby-GetText пример скрипта који користи CGI (а не ERB)."
+
+#: cookie.cgi:50
+msgid "Set [%s] as the cookie of your WWW Browser."
+msgstr "Подеси [%s] као куки вашег WWW прегледачa."
+
+#: cookie.cgi:54
+msgid "Back"
+msgstr "Назад"
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/po/ua/helloerb1.po b/vendor/gems/gettext-2.1.0/samples/cgi/po/ua/helloerb1.po
new file mode 100644
index 000000000..051769e61
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/po/ua/helloerb1.po
@@ -0,0 +1,62 @@
+# CGI/ERB sample for Ruby-GetText-Package.
+#
+# Copyright (C) 2005,2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Alex Rootoff <rootoff at pisem.net>, 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: cgi-sample 1.1.1\n"
+"POT-Creation-Date: 2006-01-07 14:48+0900\n"
+"PO-Revision-Date: 2008-02-04 08:12+0200\n"
+"Last-Translator: Alex Rootoff <rootoff at pisem.net>\n"
+"Language-Team: Ukrainian\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%"
+"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+
+#: helloerb1.cgi:32
+msgid "Sample script for CGI/ERB (UTF-8)."
+msgstr "Зразок сценарію для CGI/ERB (UTF-8)."
+
+#: helloerb.rhtml:5 other.rhtml:5
+msgid "Sample script for CGI/ERB and Ruby-GetText-Package"
+msgstr "Зразок сценарію для CGI/ERB (UTF-8) і Ruby-GetText-Package"
+
+#: helloerb.rhtml:12
+msgid "Hello World"
+msgstr "Привіт, світ"
+
+#: helloerb.rhtml:15 other.rhtml:11
+msgid "locale"
+msgstr "локаль"
+
+#: helloerb.rhtml:16 other.rhtml:12
+msgid "output_charset"
+msgstr "output_charset"
+
+#: helloerb.rhtml:17 other.rhtml:13
+msgid "QUERY_STRING"
+msgstr "QUERY_STRING"
+
+#: helloerb.rhtml:19
+msgid "Call a library method which has another textdomain."
+msgstr "Викликати метод бібліотеки, що має інший текстовий домен."
+
+#: helloerb.rhtml:21 other.rhtml:15
+msgid "Back"
+msgstr "Назад"
+
+#: other.rhtml:8
+msgid "Another sample"
+msgstr "Інший зразок"
+
+#: other.rhtml:9
+msgid "This sample(other.rhtml) is the another ERB file of helloerb1.cgi."
+msgstr "Цей зразок(other.rhtml) є іншим ERB файлом helloerb1.cgi."
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/po/ua/helloerb2.po b/vendor/gems/gettext-2.1.0/samples/cgi/po/ua/helloerb2.po
new file mode 100644
index 000000000..f121586ae
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/po/ua/helloerb2.po
@@ -0,0 +1,54 @@
+# CGI/ERB sample for Ruby-GetText-Package.
+#
+# Copyright (C) 2005,2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Alex Rootoff <rootoff at pisem.net>, 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: cgi-sample 1.1.1\n"
+"POT-Creation-Date: 2006-01-07 14:51+0900\n"
+"PO-Revision-Date: 2007-12-23 13:32+0200\n"
+"Last-Translator: Alex Rootoff <rootoff at pisem.net>\n"
+"Language-Team: Ukrainian\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%"
+"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+
+#: helloerb2.cgi:34
+msgid "Sample script for CGI/ERB (Auto-Detect charset)."
+msgstr "Зразок сценарію для CGI/ERB (автовизначення набору символів)."
+
+#: helloerb.rhtml:5
+msgid "Sample script for CGI/ERB and Ruby-GetText-Package"
+msgstr "Зразок сценарію для CGI/ERB і Ruby-GetText-Package"
+
+#: helloerb.rhtml:12
+msgid "Hello World"
+msgstr "Привіт, світ"
+
+#: helloerb.rhtml:15
+msgid "locale"
+msgstr "локаль"
+
+#: helloerb.rhtml:16
+msgid "output_charset"
+msgstr "output_charset"
+
+#: helloerb.rhtml:17
+msgid "QUERY_STRING"
+msgstr "QUERY_STRING"
+
+#: helloerb.rhtml:19
+msgid "Call a library method which has another textdomain."
+msgstr "Виклик методу бібліотеки, що має інший текстовий домен"
+
+#: helloerb.rhtml:21
+msgid "Back"
+msgstr "Назад"
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/po/ua/hellolib.po b/vendor/gems/gettext-2.1.0/samples/cgi/po/ua/hellolib.po
new file mode 100644
index 000000000..77caecc16
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/po/ua/hellolib.po
@@ -0,0 +1,26 @@
+# CGI/ERB sample for Ruby-GetText-Package.
+#
+# Copyright (C) 2005,2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Alex Rootoff <rootoff at pisem.net>, 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: cgi-sample 1.1.1\n"
+"POT-Creation-Date: 2006-01-07 14:53+0900\n"
+"PO-Revision-Date: 2007-12-23 13:36+0200\n"
+"Last-Translator: Alex Rootoff <rootoff at pisem.net>\n"
+"Language-Team: Ukrainian\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%"
+"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+
+#: hellolib.rb:19
+msgid "This message is from hellolib."
+msgstr "Це повідомлення з hellolib."
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/po/ua/main.po b/vendor/gems/gettext-2.1.0/samples/cgi/po/ua/main.po
new file mode 100644
index 000000000..a088662ac
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/po/ua/main.po
@@ -0,0 +1,84 @@
+# CGI/ERB sample for Ruby-GetText-Package.
+#
+# Copyright (C) 2005,2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Alex Rootoff <rootoff at pisem.net>, 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: cgi-sample 1.1.1\n"
+"POT-Creation-Date: 2006-01-07 14:55+0900\n"
+"PO-Revision-Date: 2008-02-04 08:12+0200\n"
+"Last-Translator: Alex Rootoff <rootoff at pisem.net>\n"
+"Language-Team: Ukrainian\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%"
+"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+
+#: index.cgi:36
+msgid "an ERB/CGI sample (UTF-8)."
+msgstr "Зразок ERB/CGI сценарію (UTF-8)"
+
+#: index.cgi:37
+msgid ""
+"an ERB/CGI sample (UTF-8). This sample uses the same container as sample 1 "
+"but has a different rhtml file."
+msgstr "Зразок ERB/CGI сценарію (UTF-8). Цей зразок використовує той же контейнер, "
+"що і перший зразок, але має інший файл rhtml."
+
+#: index.cgi:38
+msgid "an ERB/CGI sample (Auto-Detect charset)."
+msgstr "Зразок ERB/CGI сценарію (авто-визначення набору символів)"
+
+#: index.cgi:50 cookie.cgi:44
+msgid "Sample script for CGI/ERB and Ruby-GetText-Package"
+msgstr "Зразок сценарію для CGI/ERB і Ruby-GetText-Package"
+
+#: index.cgi:55
+msgid "Ruby-GetText CGI sample scripts"
+msgstr "Зразок сценарію Ruby-GetText CGI"
+
+#: index.cgi:57
+msgid "Supported Locales:"
+msgstr "Сумісні локалі:"
+
+#: index.cgi:58
+msgid "Auto-Detect a locale from the WWW browser"
+msgstr "Автовизначення локалі з броузеру"
+
+#: index.cgi:66
+msgid "Set locale as a \"lang\" parameter"
+msgstr "Встановити локаль параметром \"lang\""
+
+#: index.cgi:82
+msgid "Set \"lang\" to cookie."
+msgstr "Встановити \"lang\" в cookie."
+
+#: index.cgi:83
+msgid ""
+"Click one of the link below, and then click \"Auto-Detect a locale from the "
+"WWW browser\" samples."
+msgstr "Нажміть на однe з посилань і натисніть \"Автовизначення локалі "
+"з броузеру\""
+
+#: index.cgi:92
+msgid "Source codes"
+msgstr "Коди джерела"
+
+#: index.cgi:103
+msgid "index.cgi is also a Ruby-GetText sample script using CGI(not ERB)."
+msgstr "index.cgi є також зразком скрипта Ruby-GetText з використанням CGI(не ERB)."
+
+#: cookie.cgi:50
+msgid "Set [%s] as the cookie of your WWW Browser."
+msgstr "Встановити [%s] як cookie у вашому броузері"
+
+#: cookie.cgi:54
+msgid "Back"
+msgstr "Назад"
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/po/vi/helloerb1.po b/vendor/gems/gettext-2.1.0/samples/cgi/po/vi/helloerb1.po
new file mode 100644
index 000000000..76423c7fd
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/po/vi/helloerb1.po
@@ -0,0 +1,65 @@
+# CGI/ERB sample for Ruby-GetText-Package.
+#
+# Copyright (C) 2005,2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Ngoc DAO Thanh <ngocdaothanh at gmail.com>, 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: cgi-sample 1.1.1\n"
+"POT-Creation-Date: 2006-01-07 14:48+0900\n"
+"PO-Revision-Date: 2007-03-21 10:40+0900\n"
+"Last-Translator: Ngoc DAO Thanh <ngocdaothanh at gmail.com>\n"
+"Language-Team: Vietnamese\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: helloerb1.cgi:32
+msgid "Sample script for CGI/ERB (UTF-8)."
+msgstr "Script ví dụ mẫu về CGI/ERB (UTF-8)."
+
+#: helloerb.rhtml:5
+#: other.rhtml:5
+msgid "Sample script for CGI/ERB and Ruby-GetText-Package"
+msgstr "Script ví dụ mẫu về CGI/ERB và gói Ruby-GetText"
+
+#: helloerb.rhtml:12
+msgid "Hello World"
+msgstr "Xin chào cả Thế Giới"
+
+#: helloerb.rhtml:15
+#: other.rhtml:11
+msgid "locale"
+msgstr "ngông ngữ"
+
+#: helloerb.rhtml:16
+#: other.rhtml:12
+msgid "output_charset"
+msgstr "output_charset"
+
+#: helloerb.rhtml:17
+#: other.rhtml:13
+msgid "QUERY_STRING"
+msgstr "QUERY_STRING"
+
+#: helloerb.rhtml:19
+msgid "Call a library method which has another textdomain."
+msgstr "Gọi phương thức trong thư viện có textdomain khác."
+
+#: helloerb.rhtml:21
+#: other.rhtml:15
+msgid "Back"
+msgstr "Quay lui"
+
+#: other.rhtml:8
+msgid "Another sample"
+msgstr "Ví dụ mẫu khác"
+
+#: other.rhtml:9
+msgid "This sample(other.rhtml) is the another ERB file of helloerb1.cgi."
+msgstr "Ví dụ mẫu này (other.rhtml) là tập tin ERB khác của helloerb1.cgi."
+
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/po/vi/helloerb2.po b/vendor/gems/gettext-2.1.0/samples/cgi/po/vi/helloerb2.po
new file mode 100644
index 000000000..4a3cb2e43
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/po/vi/helloerb2.po
@@ -0,0 +1,52 @@
+# CGI/ERB sample for Ruby-GetText-Package.
+#
+# Copyright (C) 2005,2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Ngoc DAO Thanh <ngocdaothanh at gmail.com>, 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: cgi-sample 1.1.1\n"
+"POT-Creation-Date: 2006-01-07 14:51+0900\n"
+"PO-Revision-Date: 2007-03-21 10:43+0900\n"
+"Last-Translator: Ngoc DAO Thanh <ngocdaothanh at gmail.com>\n"
+"Language-Team: Vietnamese\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: helloerb2.cgi:34
+msgid "Sample script for CGI/ERB (Auto-Detect charset)."
+msgstr "Script ví dụ mẫu về CGI/ERB (Auto-Detect charset)."
+
+#: helloerb.rhtml:5
+msgid "Sample script for CGI/ERB and Ruby-GetText-Package"
+msgstr "Script ví dụ mẫu về CGI/ERB và gói Ruby-GetText"
+
+#: helloerb.rhtml:12
+msgid "Hello World"
+msgstr "Xin chào Thế Giới"
+
+#: helloerb.rhtml:15
+msgid "locale"
+msgstr "ngôn ngữ"
+
+#: helloerb.rhtml:16
+msgid "output_charset"
+msgstr "output_charset"
+
+#: helloerb.rhtml:17
+msgid "QUERY_STRING"
+msgstr "QUERY_STRING"
+
+#: helloerb.rhtml:19
+msgid "Call a library method which has another textdomain."
+msgstr "Gọi phương thức trong thư viện có textdomain khác."
+
+#: helloerb.rhtml:21
+msgid "Back"
+msgstr "Quay lui"
+
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/po/vi/hellolib.po b/vendor/gems/gettext-2.1.0/samples/cgi/po/vi/hellolib.po
new file mode 100644
index 000000000..ec08e35f7
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/po/vi/hellolib.po
@@ -0,0 +1,24 @@
+# CGI/ERB sample for Ruby-GetText-Package.
+#
+# Copyright (C) 2005,2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Ngoc DAO Thanh <ngocdaothanh at gmail.com>, 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: cgi-sample 1.1.1\n"
+"POT-Creation-Date: 2006-01-07 14:53+0900\n"
+"PO-Revision-Date: 2007-03-21 11:03+0900\n"
+"Last-Translator: Ngoc DAO Thanh <ngocdaothanh at gmail.com>\n"
+"Language-Team: Vietnamese\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: hellolib.rb:19
+msgid "This message is from hellolib."
+msgstr "Thông điệp này là từ hellolib."
+
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/po/vi/main.po b/vendor/gems/gettext-2.1.0/samples/cgi/po/vi/main.po
new file mode 100644
index 000000000..7ab3c62df
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/po/vi/main.po
@@ -0,0 +1,77 @@
+# CGI/ERB sample for Ruby-GetText-Package.
+#
+# Copyright (C) 2005,2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Ngoc DAO Thanh <ngocdaothanh at gmail.com>, 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: cgi-sample 1.1.1\n"
+"POT-Creation-Date: 2006-01-07 14:55+0900\n"
+"PO-Revision-Date: 2007-03-21 11:18+0900\n"
+"Last-Translator: Ngoc DAO Thanh <ngocdaothanh at gmail.com>\n"
+"Language-Team: Vietnamese\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: index.cgi:36
+msgid "an ERB/CGI sample (UTF-8)."
+msgstr "ví dụ mẫu về ERB/CGI (UTF-8)."
+
+#: index.cgi:37
+msgid "an ERB/CGI sample (UTF-8). This sample uses the same container as sample 1 but has a different rhtml file."
+msgstr "ví dụ mẫu về ERB/CGI (UTF-8). Ví dụ này dùng cùng container như ví dụ 1, nhưng có tập tin rhtml khác."
+
+#: index.cgi:38
+msgid "an ERB/CGI sample (Auto-Detect charset)."
+msgstr "ví dụ mẫu về ERB/CGI (Auto-Detect charset)."
+
+#: index.cgi:50
+#: cookie.cgi:44
+msgid "Sample script for CGI/ERB and Ruby-GetText-Package"
+msgstr "Script ví dụ mẫu về CGI/ERB và gói Ruby-GetText"
+
+#: index.cgi:55
+msgid "Ruby-GetText CGI sample scripts"
+msgstr "Những script CGI ví dụ mẫu về Ruby-GetText"
+
+#: index.cgi:57
+msgid "Supported Locales:"
+msgstr "Những ngôn ngữ được hỗ trợ:"
+
+#: index.cgi:58
+msgid "Auto-Detect a locale from the WWW browser"
+msgstr "Tự động nhận biết bảng mã từ trình duyệt WWW"
+
+#: index.cgi:66
+msgid "Set locale as a \"lang\" parameter"
+msgstr "Đặt tham số ngôn ngữ \"lang\""
+
+#: index.cgi:82
+msgid "Set \"lang\" to cookie."
+msgstr "Đặt \"lang\" vào cookie."
+
+#: index.cgi:83
+msgid "Click one of the link below, and then click \"Auto-Detect a locale from the WWW browser\" samples."
+msgstr "Click một trong những link ở dưới, sau đó click những ví dụ mẫu \"Tự động nhận biết bảng mã từ trình duyệt WWW\"."
+
+#: index.cgi:92
+msgid "Source codes"
+msgstr "Mã nguồn"
+
+#: index.cgi:103
+msgid "index.cgi is also a Ruby-GetText sample script using CGI(not ERB)."
+msgstr "index.cgi cũng là script ví dụ mẫu về Ruby-GetText dùng CGI (không phải ERB)."
+
+#: cookie.cgi:50
+msgid "Set [%s] as the cookie of your WWW Browser."
+msgstr "Đặt [%s] là cookie của trình duyệt WWW của bạn."
+
+#: cookie.cgi:54
+msgid "Back"
+msgstr "Quay lui"
+
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/po/zh/helloerb1.po b/vendor/gems/gettext-2.1.0/samples/cgi/po/zh/helloerb1.po
new file mode 100644
index 000000000..514d2208d
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/po/zh/helloerb1.po
@@ -0,0 +1,60 @@
+# CGI/ERB sample for Ruby-GetText-Package.
+#
+# Copyright (C) 2005,2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Yingfeng <blogyingfeng at gmail.com>, 2006.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: cgi-sample 1.1.1\n"
+"POT-Creation-Date: 2006-03-04 22:50+0900\n"
+"PO-Revision-Date: 2006-04-15 13:11+0300\n"
+"Last-Translator: Yingfeng <blogyingfeng at gmail.com>\n"
+"Language-Team: Simplified Chinese\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"X-Generator: KBabel 1.9.1\n"
+
+#: helloerb1.cgi:32
+msgid "Sample script for CGI/ERB (UTF-8)."
+msgstr "用于CGI/ERB的示例脚本(UTF-8)"
+
+#: helloerb.rhtml:5 other.rhtml:5
+msgid "Sample script for CGI/ERB and Ruby-GetText-Package"
+msgstr "用于CGI/ERB和Ruby-GetText-Package的示例脚本"
+
+#: helloerb.rhtml:12
+msgid "Hello World"
+msgstr "你好世界"
+
+#: helloerb.rhtml:15 other.rhtml:11
+msgid "locale"
+msgstr "本地"
+
+#: helloerb.rhtml:16 other.rhtml:12
+msgid "output_charset"
+msgstr "输出字符集"
+
+#: helloerb.rhtml:17 other.rhtml:13
+msgid "QUERY_STRING"
+msgstr "QUERY_STRING"
+
+#: helloerb.rhtml:19
+msgid "Call a library method which has another textdomain."
+msgstr "调用具备其他textdomain的库方法"
+
+#: helloerb.rhtml:21 other.rhtml:15
+msgid "Back"
+msgstr "返回"
+
+#: other.rhtml:8
+msgid "Another sample"
+msgstr "另一个示例"
+
+#: other.rhtml:9
+msgid "This sample(other.rhtml) is the another ERB file of helloerb1.cgi."
+msgstr "示例(other.rhtml)是helloerb1.cgi的另一个ERB文件"
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/po/zh/helloerb2.po b/vendor/gems/gettext-2.1.0/samples/cgi/po/zh/helloerb2.po
new file mode 100644
index 000000000..e4539dc52
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/po/zh/helloerb2.po
@@ -0,0 +1,52 @@
+# CGI/ERB sample for Ruby-GetText-Package.
+#
+# Copyright (C) 2005,2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Yingfeng <blogyingfeng at gmail.com>, 2006.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: cgi-sample 1.1.1\n"
+"POT-Creation-Date: 2006-03-04 22:50+0900\n"
+"PO-Revision-Date: 2006-04-15 13:11+0300\n"
+"Last-Translator: Yingfeng <blogyingfeng at gmail.com>\n"
+"Language-Team: Simplified Chinese\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"X-Generator: KBabel 1.9.1\n"
+
+#: helloerb2.cgi:34
+msgid "Sample script for CGI/ERB (Auto-Detect charset)."
+msgstr "用于CGI/ERB的示例脚本(自动检测字符集)"
+
+#: helloerb.rhtml:5
+msgid "Sample script for CGI/ERB and Ruby-GetText-Package"
+msgstr "用于CGI/ERB和Ruby-GetText-Package的示例脚本"
+
+#: helloerb.rhtml:12
+msgid "Hello World"
+msgstr "你好世界"
+
+#: helloerb.rhtml:15
+msgid "locale"
+msgstr "本地"
+
+#: helloerb.rhtml:16
+msgid "output_charset"
+msgstr "输出字符集"
+
+#: helloerb.rhtml:17
+msgid "QUERY_STRING"
+msgstr "QUERY_STRING"
+
+#: helloerb.rhtml:19
+msgid "Call a library method which has another textdomain."
+msgstr "调用具备其他textdomain的库方法"
+
+#: helloerb.rhtml:21
+msgid "Back"
+msgstr "返回"
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/po/zh/hellolib.po b/vendor/gems/gettext-2.1.0/samples/cgi/po/zh/hellolib.po
new file mode 100644
index 000000000..0df452d45
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/po/zh/hellolib.po
@@ -0,0 +1,24 @@
+# CGI/ERB sample for Ruby-GetText-Package.
+#
+# Copyright (C) 2005,2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Yingfeng <blogyingfeng at gmail.com>, 2006.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: cgi-sample 1.1.1\n"
+"POT-Creation-Date: 2006-03-04 22:50+0900\n"
+"PO-Revision-Date: 2006-04-15 13:11+0300\n"
+"Last-Translator: Yingfeng <blogyingfeng at gmail.com>\n"
+"Language-Team: Simplified Chinese\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"X-Generator: KBabel 1.9.1\n"
+
+#: hellolib.rb:19
+msgid "This message is from hellolib."
+msgstr "本条信息来自hellolib。"
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/po/zh/main.po b/vendor/gems/gettext-2.1.0/samples/cgi/po/zh/main.po
new file mode 100644
index 000000000..2369fb3a0
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/po/zh/main.po
@@ -0,0 +1,80 @@
+# CGI/ERB sample for Ruby-GetText-Package.
+#
+# Copyright (C) 2005,2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Yingfeng <blogyingfeng at gmail.com>, 2006.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: cgi-sample 1.1.1\n"
+"POT-Creation-Date: 2006-03-04 22:50+0900\n"
+"PO-Revision-Date: 2006-04-15 13:11+0300\n"
+"Last-Translator: Yingfeng <blogyingfeng at gmail.com>\n"
+"Language-Team: Simplified Chinese\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"X-Generator: KBabel 1.9.1\n"
+
+#: index.cgi:36
+msgid "an ERB/CGI sample (UTF-8)."
+msgstr "一个ERB/CGI例子(UTF-8)。"
+
+#: index.cgi:37
+msgid ""
+"an ERB/CGI sample (UTF-8). This sample uses the same container as sample 1 "
+"but has a different rhtml file."
+msgstr "一个ERB/CGI示例(UTF-8)。本示例采用跟示例1相同的容器,但却拥有一个不同的rhtml文件。"
+
+#: index.cgi:38
+msgid "an ERB/CGI sample (Auto-Detect charset)."
+msgstr "一个ERB/CGI示例(自动检测字符集)。"
+
+#: index.cgi:50 cookie.cgi:44
+msgid "Sample script for CGI/ERB and Ruby-GetText-Package"
+msgstr "用于CGI/ERB和Ruby-GetText-Package的示例脚本"
+
+#: index.cgi:55
+msgid "Ruby-GetText CGI sample scripts"
+msgstr "Ruby-GetText CGI示例脚本"
+
+#: index.cgi:57
+msgid "Supported Locales:"
+msgstr "目前支持的国家:"
+
+#: index.cgi:58
+msgid "Auto-Detect a locale from the WWW browser"
+msgstr "从WWW浏览器自动检测国家"
+
+#: index.cgi:66
+msgid "Set locale as a \"lang\" parameter"
+msgstr "用\"lang\"参数设置国家"
+
+#: index.cgi:82
+msgid "Set \"lang\" to cookie."
+msgstr "为cookie设置\"lang\""
+
+#: index.cgi:83
+msgid ""
+"Click one of the link below, and then click \"Auto-Detect a locale from the "
+"WWW browser\" samples."
+msgstr "点击下面的链接,然后点击\"从WWW浏览器自动检测国家\"例程"
+
+#: index.cgi:92
+msgid "Source codes"
+msgstr "源代码"
+
+#: index.cgi:103
+msgid "index.cgi is also a Ruby-GetText sample script using CGI(not ERB)."
+msgstr "index.cgi也是Ruby-GetText用于CGI(不是ERB)的示例脚本。"
+
+#: cookie.cgi:50
+msgid "Set [%s] as the cookie of your WWW Browser."
+msgstr "将[%s]设置为您的WWW浏览器的cookie。"
+
+#: cookie.cgi:54
+msgid "Back"
+msgstr "返回"
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/po/zh_TW/helloerb1.po b/vendor/gems/gettext-2.1.0/samples/cgi/po/zh_TW/helloerb1.po
new file mode 100644
index 000000000..ae1ec0661
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/po/zh_TW/helloerb1.po
@@ -0,0 +1,67 @@
+# CGI/ERB sample for Ruby-GetText-Package.
+#
+# Copyright (C) 2005,2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# LIN CHUNG-YI <xmarsh at gmail.com>, 2006.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: cgi-sample 1.1.1\n"
+"POT-Creation-Date: 2006-01-07 14:48+0900\n"
+"PO-Revision-Date: 2006-08-18 15:06+0800\n"
+"Last-Translator: LIN CHUNG-YI <xmarsh at gmail.com>\n"
+"Language-Team: zh_TW <xmarsh at gmail.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"X-Poedit-Language: Chinese\n"
+"X-Poedit-Country: TAIWAN\n"
+
+#: helloerb1.cgi:32
+msgid "Sample script for CGI/ERB (UTF-8)."
+msgstr "CGI/ERB (UTF-8) 範例"
+
+#: helloerb.rhtml:5
+#: other.rhtml:5
+msgid "Sample script for CGI/ERB and Ruby-GetText-Package"
+msgstr "CGI/ERB 與 Ruby-GetText-Package 範例"
+
+#: helloerb.rhtml:12
+msgid "Hello World"
+msgstr "哈囉世界"
+
+#: helloerb.rhtml:15
+#: other.rhtml:11
+msgid "locale"
+msgstr "字集"
+
+#: helloerb.rhtml:16
+#: other.rhtml:12
+msgid "output_charset"
+msgstr "output_charset"
+
+#: helloerb.rhtml:17
+#: other.rhtml:13
+msgid "QUERY_STRING"
+msgstr "QUERY_STRING"
+
+#: helloerb.rhtml:19
+msgid "Call a library method which has another textdomain."
+msgstr "呼叫一個有另外 textdomain 的 library method"
+
+#: helloerb.rhtml:21
+#: other.rhtml:15
+msgid "Back"
+msgstr "返回"
+
+#: other.rhtml:8
+msgid "Another sample"
+msgstr "另一個範例"
+
+#: other.rhtml:9
+msgid "This sample(other.rhtml) is the another ERB file of helloerb1.cgi."
+msgstr "這個範例(other.rhtml) 是 helloerb1.cgi 的另一個ERB 檔"
+
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/po/zh_TW/helloerb2.po b/vendor/gems/gettext-2.1.0/samples/cgi/po/zh_TW/helloerb2.po
new file mode 100644
index 000000000..7350bd407
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/po/zh_TW/helloerb2.po
@@ -0,0 +1,54 @@
+# CGI/ERB sample for Ruby-GetText-Package.
+#
+# Copyright (C) 2005,2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# LIN CHUNG-YI <xmarsh at gmail.com>, 2006.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: cgi-sample 1.1.1\n"
+"POT-Creation-Date: 2006-01-07 14:51+0900\n"
+"PO-Revision-Date: 2006-08-18 15:09+0800\n"
+"Last-Translator: LIN CHUNG-YI <xmarsh at gmail.com>\n"
+"Language-Team: zh_TW <xmarsh at gmail.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"X-Poedit-Language: Chinese\n"
+"X-Poedit-Country: TAIWAN\n"
+
+#: helloerb2.cgi:34
+msgid "Sample script for CGI/ERB (Auto-Detect charset)."
+msgstr "CGI/ERB 範例 (自動偵測字集)"
+
+#: helloerb.rhtml:5
+msgid "Sample script for CGI/ERB and Ruby-GetText-Package"
+msgstr "CGI/ERB 與 Ruby-GetText-Package 範例"
+
+#: helloerb.rhtml:12
+msgid "Hello World"
+msgstr "哈囉世界"
+
+#: helloerb.rhtml:15
+msgid "locale"
+msgstr "字集"
+
+#: helloerb.rhtml:16
+msgid "output_charset"
+msgstr "output_charset"
+
+#: helloerb.rhtml:17
+msgid "QUERY_STRING"
+msgstr "QUERY_STRING"
+
+#: helloerb.rhtml:19
+msgid "Call a library method which has another textdomain."
+msgstr "Call a library method which has another textdomain."
+
+#: helloerb.rhtml:21
+msgid "Back"
+msgstr "返回"
+
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/po/zh_TW/hellolib.po b/vendor/gems/gettext-2.1.0/samples/cgi/po/zh_TW/hellolib.po
new file mode 100644
index 000000000..4e46992bd
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/po/zh_TW/hellolib.po
@@ -0,0 +1,26 @@
+# CGI/ERB sample for Ruby-GetText-Package.
+#
+# Copyright (C) 2005,2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# LIN CHUNG-YI <xmarsh at gmail.com>, 2006.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: cgi-sample 1.1.1\n"
+"POT-Creation-Date: 2006-01-07 14:53+0900\n"
+"PO-Revision-Date: 2006-08-21 09:08+0800\n"
+"Last-Translator: LIN CHUNG-YI <xmarsh at gmail.com>\n"
+"Language-Team: zh_TW <xmarsh at gmail.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"X-Poedit-Language: Chinese\n"
+"X-Poedit-Country: TAIWAN\n"
+
+#: hellolib.rb:19
+msgid "This message is from hellolib."
+msgstr "這個訊息來自 hellolib"
+
diff --git a/vendor/gems/gettext-2.1.0/samples/cgi/po/zh_TW/main.po b/vendor/gems/gettext-2.1.0/samples/cgi/po/zh_TW/main.po
new file mode 100644
index 000000000..b7c2bbf0a
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/cgi/po/zh_TW/main.po
@@ -0,0 +1,79 @@
+# CGI/ERB sample for Ruby-GetText-Package.
+#
+# Copyright (C) 2005,2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# LIN CHUNG-YI <xmarsh at gmail.com>, 2006.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: cgi-sample 1.1.1\n"
+"POT-Creation-Date: 2006-01-07 14:55+0900\n"
+"PO-Revision-Date: 2006-08-18 14:43+0800\n"
+"Last-Translator: LIN CHUNG-YI <xmarsh at gmail.com>\n"
+"Language-Team: zh_TW <xmarsh at gmail.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"X-Poedit-Language: Chinese\n"
+"X-Poedit-Country: TAIWAN\n"
+
+#: index.cgi:36
+msgid "an ERB/CGI sample (UTF-8)."
+msgstr "ERB/CGI 範例 (UTF-8)"
+
+#: index.cgi:37
+msgid "an ERB/CGI sample (UTF-8). This sample uses the same container as sample 1 but has a different rhtml file."
+msgstr "ERB/CGI 範例 (UTF-8) 該範例使用範例一同樣的 container 只是 rhtml 檔案不同"
+
+#: index.cgi:38
+msgid "an ERB/CGI sample (Auto-Detect charset)."
+msgstr "ERB/CGI 範例 (字集自動偵測)"
+
+#: index.cgi:50
+#: cookie.cgi:44
+msgid "Sample script for CGI/ERB and Ruby-GetText-Package"
+msgstr "CGI/ERB 與 Ruby-GetText-Package 的範例程式"
+
+#: index.cgi:55
+msgid "Ruby-GetText CGI sample scripts"
+msgstr "Ruby-GetText 的 CGI 範例"
+
+#: index.cgi:57
+msgid "Supported Locales:"
+msgstr "支援字集:"
+
+#: index.cgi:58
+msgid "Auto-Detect a locale from the WWW browser"
+msgstr "自動從瀏覽器判斷字集"
+
+#: index.cgi:66
+msgid "Set locale as a \"lang\" parameter"
+msgstr "利用 \"lang\" 參數設定字集"
+
+#: index.cgi:82
+msgid "Set \"lang\" to cookie."
+msgstr "設定 \"lang\" 到 cookie."
+
+#: index.cgi:83
+msgid "Click one of the link below, and then click \"Auto-Detect a locale from the WWW browser\" samples."
+msgstr "按下面連結再按 \"自動從瀏覽器判斷字集\" 範例"
+
+#: index.cgi:92
+msgid "Source codes"
+msgstr "原始碼"
+
+#: index.cgi:103
+msgid "index.cgi is also a Ruby-GetText sample script using CGI(not ERB)."
+msgstr "index.cgi 也是 Ruby-GetText 的 CGI 範例 (非 ERB)"
+
+#: cookie.cgi:50
+msgid "Set [%s] as the cookie of your WWW Browser."
+msgstr "設定 [%s] 為瀏覽器的 cookie"
+
+#: cookie.cgi:54
+msgid "Back"
+msgstr "返回"
+
diff --git a/vendor/gems/gettext-2.1.0/samples/hello.rb b/vendor/gems/gettext-2.1.0/samples/hello.rb
new file mode 100644
index 000000000..343092a93
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/hello.rb
@@ -0,0 +1,36 @@
+#!/usr/bin/ruby
+# hello.rb - sample for _() and class.
+#
+# Copyright (C) 2001-2009 Masao Mutoh
+# This file is distributed under the same license as Ruby-GetText-Package.
+
+require 'rubygems'
+require 'gettext'
+
+class HelloWorld
+ include GetText
+
+ bindtextdomain("hello", :path => "locale")
+
+ def hello
+ print _("Hello World\n")
+ end
+end
+
+if __FILE__ == $0
+ a = HelloWorld.new
+
+ a.hello # Show in your locale
+
+ old = GetText.locale
+ p old.to_s # Show current locale
+
+ # Change the locale to "en".
+ GetText.set_locale_all("en")
+ p GetText.locale.to_s
+ a.hello # Show in English
+
+ # Retrive original locale
+ GetText.set_locale(old)
+ a.hello # Show in your locale
+end
diff --git a/vendor/gems/gettext-2.1.0/samples/hello2.rb b/vendor/gems/gettext-2.1.0/samples/hello2.rb
new file mode 100644
index 000000000..8f9eb7027
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/hello2.rb
@@ -0,0 +1,23 @@
+#!/usr/bin/ruby
+# hello2.po - sample for _() and module
+#
+# Copyright (C) 2002-2004 Masao Mutoh
+# This file is distributed under the same license as Ruby-GetText-Package.
+
+require 'rubygems'
+require 'gettext'
+
+module Hello
+ include GetText
+
+ bindtextdomain("hello2", :path => "locale")
+
+ module_function
+ def hello
+ num = 1
+ puts _("One is %{num}\n") % {:num => num}
+ puts _("Hello %{world}\n") % {:world => _("World")}
+ end
+end
+
+Hello.hello
diff --git a/vendor/gems/gettext-2.1.0/samples/hello_glade2.glade b/vendor/gems/gettext-2.1.0/samples/hello_glade2.glade
new file mode 100644
index 000000000..4a7049d6b
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/hello_glade2.glade
@@ -0,0 +1,70 @@
+<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*-->
+<!DOCTYPE glade-interface SYSTEM "http://glade.gnome.org/glade-2.0.dtd">
+
+<glade-interface>
+<requires lib="gnome"/>
+
+<widget class="GtkWindow" id="window1">
+ <property name="visible">True</property>
+ <property name="title" translatable="yes">window1</property>
+ <property name="type">GTK_WINDOW_TOPLEVEL</property>
+ <property name="window_position">GTK_WIN_POS_NONE</property>
+ <property name="modal">False</property>
+ <property name="resizable">True</property>
+ <property name="destroy_with_parent">False</property>
+ <property name="decorated">True</property>
+ <property name="skip_taskbar_hint">False</property>
+ <property name="skip_pager_hint">False</property>
+ <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
+ <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+
+ <child>
+ <widget class="GtkVBox" id="vbox1">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">0</property>
+
+ <child>
+ <widget class="GtkLabel" id="label1">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">first line
+second line
+third line</property>
+ <property name="use_underline">False</property>
+ <property name="use_markup">False</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">True</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkButton" id="button1">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">&lt;Hello world&gt;</property>
+ <property name="use_underline">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
+ <signal name="clicked" handler="on_quit" last_modification_time="Sat, 03 Jul 2004 16:35:11 GMT"/>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+ </widget>
+ </child>
+</widget>
+
+</glade-interface>
diff --git a/vendor/gems/gettext-2.1.0/samples/hello_glade2.rb b/vendor/gems/gettext-2.1.0/samples/hello_glade2.rb
new file mode 100644
index 000000000..1e6251b99
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/hello_glade2.rb
@@ -0,0 +1,25 @@
+#!/usr/bin/env ruby
+# hello_glade2.rb - sample for Ruby/Libglade2
+#
+# Copyright (C) 2004-2008 Masao Mutoh
+# This file is distributed under the same license as Ruby-GetText-Package.
+
+require 'rubygems'
+require 'libglade2'
+
+class HelloLibglade2
+ def initialize(path, appname)
+ @glade = GladeXML.new(path, nil, appname, "locale") {|handler| method(handler)}
+ end
+ def on_quit
+ puts "Hello world"
+ Gtk.main_quit
+ end
+end
+
+if __FILE__ == $0
+ APPNAME = "hello_glade2"
+ Gnome::Program.new(APPNAME, "1.0")
+ HelloLibglade2.new("hello_glade2.glade", APPNAME)
+ Gtk.main
+end
diff --git a/vendor/gems/gettext-2.1.0/samples/hello_gtk2.rb b/vendor/gems/gettext-2.1.0/samples/hello_gtk2.rb
new file mode 100644
index 000000000..295ad8d37
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/hello_gtk2.rb
@@ -0,0 +1,27 @@
+#!/usr/bin/ruby
+# hello_gtk2.rb - sample for Ruby/GTK2
+#
+# Copyright (C) 2001-2006 Masao Mutoh
+# This file is distributed under the same license as Ruby-GetText-Package.
+
+require 'rubygems'
+require 'gettext'
+require 'gtk2'
+
+class LocalizedWindow < Gtk::Window
+ include GetText
+
+ bindtextdomain("hello_gtk", :path => "locale", :output_charset => "utf-8")
+
+ def initialize
+ super
+ signal_connect('delete-event') do
+ Gtk.main_quit
+ end
+
+ add(Gtk::Label.new(_("hello, gtk world")))
+ end
+end
+
+LocalizedWindow.new.show_all
+Gtk.main
diff --git a/vendor/gems/gettext-2.1.0/samples/hello_noop.rb b/vendor/gems/gettext-2.1.0/samples/hello_noop.rb
new file mode 100644
index 000000000..3550faec6
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/hello_noop.rb
@@ -0,0 +1,31 @@
+#!/usr/bin/ruby
+# hello_noop.rb - sample for N_() and class.
+#
+# Copyright (C) 2002-2006 Masao Mutoh
+# This file is distributed under the same license as Ruby-GetText-Package.
+
+require 'rubygems'
+require 'gettext'
+
+class HelloNoop
+ include GetText
+
+ MSGS = [N_("Hello World"), N_("Hello World2")]
+
+ def initialize
+ # You can call bindtextdomain as instance methods.
+ # In this case, it initializes(decided the locale lazily)
+ # in a instance.
+ bindtextdomain("hello_noop", :path => "locale")
+ end
+
+ def hello
+ MSGS.each do |msg|
+ print _(msg), "\n"
+ end
+ end
+end
+
+hello = HelloNoop.new
+
+hello.hello
diff --git a/vendor/gems/gettext-2.1.0/samples/hello_plural.rb b/vendor/gems/gettext-2.1.0/samples/hello_plural.rb
new file mode 100644
index 000000000..e528c6e38
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/hello_plural.rb
@@ -0,0 +1,26 @@
+#!/usr/bin/ruby
+# hello_plural.po - sample for n_() and class.
+#
+# Copyright (C) 2002-2006 Masao Mutoh
+# This file is distributed under the same license as Ruby-GetText-Package.
+
+require 'rubygems'
+require 'gettext'
+
+class HelloPlural
+ include GetText
+
+ def initialize
+ bindtextdomain("hello_plural", :path => "locale")
+ end
+
+ def hello
+ (0..2).each do |v|
+ puts n_("There is an apple.\n", "There are %{num} apples.\n", v) % {:num => v}
+ end
+ end
+end
+
+hello = HelloPlural.new
+
+hello.hello
diff --git a/vendor/gems/gettext-2.1.0/samples/hello_tk.rb b/vendor/gems/gettext-2.1.0/samples/hello_tk.rb
new file mode 100644
index 000000000..d551c5223
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/hello_tk.rb
@@ -0,0 +1,19 @@
+#!/usr/bin/ruby
+# hello_tk.rb - sample for Ruby/TK
+#
+# Copyright (C) 2004 Masao Mutoh
+# This file is distributed under the same license as Ruby-GetText-Package.
+
+require 'rubygems'
+require 'gettext'
+require 'tk'
+
+include GetText
+bindtextdomain("hello_tk", :path => "locale")
+
+TkLabel.new {
+ text _("hello, tk world")
+ pack
+}
+
+Tk.mainloop
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/bg/LC_MESSAGES/hello.mo b/vendor/gems/gettext-2.1.0/samples/locale/bg/LC_MESSAGES/hello.mo
new file mode 100644
index 000000000..d3763f9c2
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/bg/LC_MESSAGES/hello.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/bg/LC_MESSAGES/hello2.mo b/vendor/gems/gettext-2.1.0/samples/locale/bg/LC_MESSAGES/hello2.mo
new file mode 100644
index 000000000..968dbe3c7
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/bg/LC_MESSAGES/hello2.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/bg/LC_MESSAGES/hello_glade2.mo b/vendor/gems/gettext-2.1.0/samples/locale/bg/LC_MESSAGES/hello_glade2.mo
new file mode 100644
index 000000000..21901bae6
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/bg/LC_MESSAGES/hello_glade2.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/bg/LC_MESSAGES/hello_gtk.mo b/vendor/gems/gettext-2.1.0/samples/locale/bg/LC_MESSAGES/hello_gtk.mo
new file mode 100644
index 000000000..9bff07385
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/bg/LC_MESSAGES/hello_gtk.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/bg/LC_MESSAGES/hello_noop.mo b/vendor/gems/gettext-2.1.0/samples/locale/bg/LC_MESSAGES/hello_noop.mo
new file mode 100644
index 000000000..2838b7a13
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/bg/LC_MESSAGES/hello_noop.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/bg/LC_MESSAGES/hello_plural.mo b/vendor/gems/gettext-2.1.0/samples/locale/bg/LC_MESSAGES/hello_plural.mo
new file mode 100644
index 000000000..6e0434863
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/bg/LC_MESSAGES/hello_plural.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/bg/LC_MESSAGES/hello_tk.mo b/vendor/gems/gettext-2.1.0/samples/locale/bg/LC_MESSAGES/hello_tk.mo
new file mode 100644
index 000000000..84e8a9774
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/bg/LC_MESSAGES/hello_tk.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/bs/LC_MESSAGES/hello.mo b/vendor/gems/gettext-2.1.0/samples/locale/bs/LC_MESSAGES/hello.mo
new file mode 100644
index 000000000..f98298c1b
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/bs/LC_MESSAGES/hello.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/bs/LC_MESSAGES/hello2.mo b/vendor/gems/gettext-2.1.0/samples/locale/bs/LC_MESSAGES/hello2.mo
new file mode 100644
index 000000000..dfe56dc94
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/bs/LC_MESSAGES/hello2.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/bs/LC_MESSAGES/hello_glade2.mo b/vendor/gems/gettext-2.1.0/samples/locale/bs/LC_MESSAGES/hello_glade2.mo
new file mode 100644
index 000000000..ba5abcd7d
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/bs/LC_MESSAGES/hello_glade2.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/bs/LC_MESSAGES/hello_gtk.mo b/vendor/gems/gettext-2.1.0/samples/locale/bs/LC_MESSAGES/hello_gtk.mo
new file mode 100644
index 000000000..8c2eb44bd
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/bs/LC_MESSAGES/hello_gtk.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/bs/LC_MESSAGES/hello_noop.mo b/vendor/gems/gettext-2.1.0/samples/locale/bs/LC_MESSAGES/hello_noop.mo
new file mode 100644
index 000000000..651513ba3
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/bs/LC_MESSAGES/hello_noop.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/bs/LC_MESSAGES/hello_plural.mo b/vendor/gems/gettext-2.1.0/samples/locale/bs/LC_MESSAGES/hello_plural.mo
new file mode 100644
index 000000000..1ee8f602d
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/bs/LC_MESSAGES/hello_plural.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/bs/LC_MESSAGES/hello_tk.mo b/vendor/gems/gettext-2.1.0/samples/locale/bs/LC_MESSAGES/hello_tk.mo
new file mode 100644
index 000000000..6f9fa40b9
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/bs/LC_MESSAGES/hello_tk.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/ca/LC_MESSAGES/hello.mo b/vendor/gems/gettext-2.1.0/samples/locale/ca/LC_MESSAGES/hello.mo
new file mode 100644
index 000000000..81473f387
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/ca/LC_MESSAGES/hello.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/ca/LC_MESSAGES/hello2.mo b/vendor/gems/gettext-2.1.0/samples/locale/ca/LC_MESSAGES/hello2.mo
new file mode 100644
index 000000000..5980bd6a1
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/ca/LC_MESSAGES/hello2.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/ca/LC_MESSAGES/hello_glade2.mo b/vendor/gems/gettext-2.1.0/samples/locale/ca/LC_MESSAGES/hello_glade2.mo
new file mode 100644
index 000000000..2e171ff6c
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/ca/LC_MESSAGES/hello_glade2.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/ca/LC_MESSAGES/hello_gtk.mo b/vendor/gems/gettext-2.1.0/samples/locale/ca/LC_MESSAGES/hello_gtk.mo
new file mode 100644
index 000000000..ba7662de2
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/ca/LC_MESSAGES/hello_gtk.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/ca/LC_MESSAGES/hello_noop.mo b/vendor/gems/gettext-2.1.0/samples/locale/ca/LC_MESSAGES/hello_noop.mo
new file mode 100644
index 000000000..0c9ff9a59
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/ca/LC_MESSAGES/hello_noop.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/ca/LC_MESSAGES/hello_plural.mo b/vendor/gems/gettext-2.1.0/samples/locale/ca/LC_MESSAGES/hello_plural.mo
new file mode 100644
index 000000000..c2315cf64
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/ca/LC_MESSAGES/hello_plural.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/ca/LC_MESSAGES/hello_tk.mo b/vendor/gems/gettext-2.1.0/samples/locale/ca/LC_MESSAGES/hello_tk.mo
new file mode 100644
index 000000000..4aaa2292d
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/ca/LC_MESSAGES/hello_tk.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/cs/LC_MESSAGES/hello.mo b/vendor/gems/gettext-2.1.0/samples/locale/cs/LC_MESSAGES/hello.mo
new file mode 100644
index 000000000..2aa2f0b8f
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/cs/LC_MESSAGES/hello.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/cs/LC_MESSAGES/hello2.mo b/vendor/gems/gettext-2.1.0/samples/locale/cs/LC_MESSAGES/hello2.mo
new file mode 100644
index 000000000..2e91ba645
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/cs/LC_MESSAGES/hello2.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/cs/LC_MESSAGES/hello_glade2.mo b/vendor/gems/gettext-2.1.0/samples/locale/cs/LC_MESSAGES/hello_glade2.mo
new file mode 100644
index 000000000..94613f743
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/cs/LC_MESSAGES/hello_glade2.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/cs/LC_MESSAGES/hello_gtk.mo b/vendor/gems/gettext-2.1.0/samples/locale/cs/LC_MESSAGES/hello_gtk.mo
new file mode 100644
index 000000000..b18a72df9
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/cs/LC_MESSAGES/hello_gtk.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/cs/LC_MESSAGES/hello_noop.mo b/vendor/gems/gettext-2.1.0/samples/locale/cs/LC_MESSAGES/hello_noop.mo
new file mode 100644
index 000000000..5eefb6c34
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/cs/LC_MESSAGES/hello_noop.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/cs/LC_MESSAGES/hello_plural.mo b/vendor/gems/gettext-2.1.0/samples/locale/cs/LC_MESSAGES/hello_plural.mo
new file mode 100644
index 000000000..388dc12f1
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/cs/LC_MESSAGES/hello_plural.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/cs/LC_MESSAGES/hello_tk.mo b/vendor/gems/gettext-2.1.0/samples/locale/cs/LC_MESSAGES/hello_tk.mo
new file mode 100644
index 000000000..d7b33547b
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/cs/LC_MESSAGES/hello_tk.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/de/LC_MESSAGES/hello.mo b/vendor/gems/gettext-2.1.0/samples/locale/de/LC_MESSAGES/hello.mo
new file mode 100644
index 000000000..d12787a98
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/de/LC_MESSAGES/hello.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/de/LC_MESSAGES/hello2.mo b/vendor/gems/gettext-2.1.0/samples/locale/de/LC_MESSAGES/hello2.mo
new file mode 100644
index 000000000..5962c60ac
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/de/LC_MESSAGES/hello2.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/de/LC_MESSAGES/hello_glade2.mo b/vendor/gems/gettext-2.1.0/samples/locale/de/LC_MESSAGES/hello_glade2.mo
new file mode 100644
index 000000000..071c5b8d0
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/de/LC_MESSAGES/hello_glade2.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/de/LC_MESSAGES/hello_gtk.mo b/vendor/gems/gettext-2.1.0/samples/locale/de/LC_MESSAGES/hello_gtk.mo
new file mode 100644
index 000000000..9994535db
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/de/LC_MESSAGES/hello_gtk.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/de/LC_MESSAGES/hello_noop.mo b/vendor/gems/gettext-2.1.0/samples/locale/de/LC_MESSAGES/hello_noop.mo
new file mode 100644
index 000000000..4966fc260
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/de/LC_MESSAGES/hello_noop.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/de/LC_MESSAGES/hello_plural.mo b/vendor/gems/gettext-2.1.0/samples/locale/de/LC_MESSAGES/hello_plural.mo
new file mode 100644
index 000000000..f12563b22
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/de/LC_MESSAGES/hello_plural.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/de/LC_MESSAGES/hello_tk.mo b/vendor/gems/gettext-2.1.0/samples/locale/de/LC_MESSAGES/hello_tk.mo
new file mode 100644
index 000000000..606f3a359
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/de/LC_MESSAGES/hello_tk.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/el/LC_MESSAGES/hello.mo b/vendor/gems/gettext-2.1.0/samples/locale/el/LC_MESSAGES/hello.mo
new file mode 100644
index 000000000..882132a36
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/el/LC_MESSAGES/hello.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/el/LC_MESSAGES/hello2.mo b/vendor/gems/gettext-2.1.0/samples/locale/el/LC_MESSAGES/hello2.mo
new file mode 100644
index 000000000..bdfc39f4e
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/el/LC_MESSAGES/hello2.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/el/LC_MESSAGES/hello_glade2.mo b/vendor/gems/gettext-2.1.0/samples/locale/el/LC_MESSAGES/hello_glade2.mo
new file mode 100644
index 000000000..a7f1752c9
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/el/LC_MESSAGES/hello_glade2.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/el/LC_MESSAGES/hello_gtk.mo b/vendor/gems/gettext-2.1.0/samples/locale/el/LC_MESSAGES/hello_gtk.mo
new file mode 100644
index 000000000..7655e5102
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/el/LC_MESSAGES/hello_gtk.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/el/LC_MESSAGES/hello_noop.mo b/vendor/gems/gettext-2.1.0/samples/locale/el/LC_MESSAGES/hello_noop.mo
new file mode 100644
index 000000000..b50de6cff
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/el/LC_MESSAGES/hello_noop.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/el/LC_MESSAGES/hello_plural.mo b/vendor/gems/gettext-2.1.0/samples/locale/el/LC_MESSAGES/hello_plural.mo
new file mode 100644
index 000000000..3c51ea73b
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/el/LC_MESSAGES/hello_plural.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/el/LC_MESSAGES/hello_tk.mo b/vendor/gems/gettext-2.1.0/samples/locale/el/LC_MESSAGES/hello_tk.mo
new file mode 100644
index 000000000..3ef0df1f0
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/el/LC_MESSAGES/hello_tk.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/eo/LC_MESSAGES/hello.mo b/vendor/gems/gettext-2.1.0/samples/locale/eo/LC_MESSAGES/hello.mo
new file mode 100644
index 000000000..92df66e54
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/eo/LC_MESSAGES/hello.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/eo/LC_MESSAGES/hello2.mo b/vendor/gems/gettext-2.1.0/samples/locale/eo/LC_MESSAGES/hello2.mo
new file mode 100644
index 000000000..58d619233
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/eo/LC_MESSAGES/hello2.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/eo/LC_MESSAGES/hello_glade2.mo b/vendor/gems/gettext-2.1.0/samples/locale/eo/LC_MESSAGES/hello_glade2.mo
new file mode 100644
index 000000000..bbd24bd7d
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/eo/LC_MESSAGES/hello_glade2.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/eo/LC_MESSAGES/hello_gtk.mo b/vendor/gems/gettext-2.1.0/samples/locale/eo/LC_MESSAGES/hello_gtk.mo
new file mode 100644
index 000000000..678f1aa66
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/eo/LC_MESSAGES/hello_gtk.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/eo/LC_MESSAGES/hello_noop.mo b/vendor/gems/gettext-2.1.0/samples/locale/eo/LC_MESSAGES/hello_noop.mo
new file mode 100644
index 000000000..15a73254d
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/eo/LC_MESSAGES/hello_noop.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/eo/LC_MESSAGES/hello_plural.mo b/vendor/gems/gettext-2.1.0/samples/locale/eo/LC_MESSAGES/hello_plural.mo
new file mode 100644
index 000000000..db1fd21cf
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/eo/LC_MESSAGES/hello_plural.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/eo/LC_MESSAGES/hello_tk.mo b/vendor/gems/gettext-2.1.0/samples/locale/eo/LC_MESSAGES/hello_tk.mo
new file mode 100644
index 000000000..3fa10d06a
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/eo/LC_MESSAGES/hello_tk.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/es/LC_MESSAGES/hello.mo b/vendor/gems/gettext-2.1.0/samples/locale/es/LC_MESSAGES/hello.mo
new file mode 100644
index 000000000..0a1d279cf
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/es/LC_MESSAGES/hello.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/es/LC_MESSAGES/hello2.mo b/vendor/gems/gettext-2.1.0/samples/locale/es/LC_MESSAGES/hello2.mo
new file mode 100644
index 000000000..86ff6715f
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/es/LC_MESSAGES/hello2.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/es/LC_MESSAGES/hello_glade2.mo b/vendor/gems/gettext-2.1.0/samples/locale/es/LC_MESSAGES/hello_glade2.mo
new file mode 100644
index 000000000..01c72a22e
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/es/LC_MESSAGES/hello_glade2.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/es/LC_MESSAGES/hello_gtk.mo b/vendor/gems/gettext-2.1.0/samples/locale/es/LC_MESSAGES/hello_gtk.mo
new file mode 100644
index 000000000..f36994795
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/es/LC_MESSAGES/hello_gtk.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/es/LC_MESSAGES/hello_noop.mo b/vendor/gems/gettext-2.1.0/samples/locale/es/LC_MESSAGES/hello_noop.mo
new file mode 100644
index 000000000..7feb70a7b
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/es/LC_MESSAGES/hello_noop.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/es/LC_MESSAGES/hello_plural.mo b/vendor/gems/gettext-2.1.0/samples/locale/es/LC_MESSAGES/hello_plural.mo
new file mode 100644
index 000000000..290599c5d
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/es/LC_MESSAGES/hello_plural.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/es/LC_MESSAGES/hello_tk.mo b/vendor/gems/gettext-2.1.0/samples/locale/es/LC_MESSAGES/hello_tk.mo
new file mode 100644
index 000000000..87cf28752
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/es/LC_MESSAGES/hello_tk.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/fr/LC_MESSAGES/hello.mo b/vendor/gems/gettext-2.1.0/samples/locale/fr/LC_MESSAGES/hello.mo
new file mode 100644
index 000000000..84bb7e641
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/fr/LC_MESSAGES/hello.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/fr/LC_MESSAGES/hello2.mo b/vendor/gems/gettext-2.1.0/samples/locale/fr/LC_MESSAGES/hello2.mo
new file mode 100644
index 000000000..fc5fb8ee6
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/fr/LC_MESSAGES/hello2.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/fr/LC_MESSAGES/hello_glade2.mo b/vendor/gems/gettext-2.1.0/samples/locale/fr/LC_MESSAGES/hello_glade2.mo
new file mode 100644
index 000000000..a6b273e04
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/fr/LC_MESSAGES/hello_glade2.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/fr/LC_MESSAGES/hello_gtk.mo b/vendor/gems/gettext-2.1.0/samples/locale/fr/LC_MESSAGES/hello_gtk.mo
new file mode 100644
index 000000000..79546432c
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/fr/LC_MESSAGES/hello_gtk.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/fr/LC_MESSAGES/hello_noop.mo b/vendor/gems/gettext-2.1.0/samples/locale/fr/LC_MESSAGES/hello_noop.mo
new file mode 100644
index 000000000..f8f05b9d5
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/fr/LC_MESSAGES/hello_noop.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/fr/LC_MESSAGES/hello_plural.mo b/vendor/gems/gettext-2.1.0/samples/locale/fr/LC_MESSAGES/hello_plural.mo
new file mode 100644
index 000000000..f23b2a65b
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/fr/LC_MESSAGES/hello_plural.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/fr/LC_MESSAGES/hello_tk.mo b/vendor/gems/gettext-2.1.0/samples/locale/fr/LC_MESSAGES/hello_tk.mo
new file mode 100644
index 000000000..4d00998d9
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/fr/LC_MESSAGES/hello_tk.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/hr/LC_MESSAGES/hello.mo b/vendor/gems/gettext-2.1.0/samples/locale/hr/LC_MESSAGES/hello.mo
new file mode 100644
index 000000000..118f4e53c
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/hr/LC_MESSAGES/hello.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/hr/LC_MESSAGES/hello2.mo b/vendor/gems/gettext-2.1.0/samples/locale/hr/LC_MESSAGES/hello2.mo
new file mode 100644
index 000000000..43ccd8c47
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/hr/LC_MESSAGES/hello2.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/hr/LC_MESSAGES/hello_glade2.mo b/vendor/gems/gettext-2.1.0/samples/locale/hr/LC_MESSAGES/hello_glade2.mo
new file mode 100644
index 000000000..d33b57a6f
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/hr/LC_MESSAGES/hello_glade2.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/hr/LC_MESSAGES/hello_gtk.mo b/vendor/gems/gettext-2.1.0/samples/locale/hr/LC_MESSAGES/hello_gtk.mo
new file mode 100644
index 000000000..3c771b223
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/hr/LC_MESSAGES/hello_gtk.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/hr/LC_MESSAGES/hello_noop.mo b/vendor/gems/gettext-2.1.0/samples/locale/hr/LC_MESSAGES/hello_noop.mo
new file mode 100644
index 000000000..5fa2c64a2
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/hr/LC_MESSAGES/hello_noop.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/hr/LC_MESSAGES/hello_plural.mo b/vendor/gems/gettext-2.1.0/samples/locale/hr/LC_MESSAGES/hello_plural.mo
new file mode 100644
index 000000000..c57469db6
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/hr/LC_MESSAGES/hello_plural.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/hr/LC_MESSAGES/hello_tk.mo b/vendor/gems/gettext-2.1.0/samples/locale/hr/LC_MESSAGES/hello_tk.mo
new file mode 100644
index 000000000..c788ad517
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/hr/LC_MESSAGES/hello_tk.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/hu/LC_MESSAGES/hello.mo b/vendor/gems/gettext-2.1.0/samples/locale/hu/LC_MESSAGES/hello.mo
new file mode 100644
index 000000000..1153f6d1d
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/hu/LC_MESSAGES/hello.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/hu/LC_MESSAGES/hello2.mo b/vendor/gems/gettext-2.1.0/samples/locale/hu/LC_MESSAGES/hello2.mo
new file mode 100644
index 000000000..5c67e13a3
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/hu/LC_MESSAGES/hello2.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/hu/LC_MESSAGES/hello_glade2.mo b/vendor/gems/gettext-2.1.0/samples/locale/hu/LC_MESSAGES/hello_glade2.mo
new file mode 100644
index 000000000..41609eb94
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/hu/LC_MESSAGES/hello_glade2.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/hu/LC_MESSAGES/hello_gtk.mo b/vendor/gems/gettext-2.1.0/samples/locale/hu/LC_MESSAGES/hello_gtk.mo
new file mode 100644
index 000000000..40d606f29
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/hu/LC_MESSAGES/hello_gtk.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/hu/LC_MESSAGES/hello_noop.mo b/vendor/gems/gettext-2.1.0/samples/locale/hu/LC_MESSAGES/hello_noop.mo
new file mode 100644
index 000000000..c2d8827a9
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/hu/LC_MESSAGES/hello_noop.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/hu/LC_MESSAGES/hello_plural.mo b/vendor/gems/gettext-2.1.0/samples/locale/hu/LC_MESSAGES/hello_plural.mo
new file mode 100644
index 000000000..8459353b7
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/hu/LC_MESSAGES/hello_plural.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/hu/LC_MESSAGES/hello_tk.mo b/vendor/gems/gettext-2.1.0/samples/locale/hu/LC_MESSAGES/hello_tk.mo
new file mode 100644
index 000000000..d37dcc73f
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/hu/LC_MESSAGES/hello_tk.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/it/LC_MESSAGES/hello.mo b/vendor/gems/gettext-2.1.0/samples/locale/it/LC_MESSAGES/hello.mo
new file mode 100644
index 000000000..d620055f1
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/it/LC_MESSAGES/hello.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/it/LC_MESSAGES/hello2.mo b/vendor/gems/gettext-2.1.0/samples/locale/it/LC_MESSAGES/hello2.mo
new file mode 100644
index 000000000..ffae7028c
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/it/LC_MESSAGES/hello2.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/it/LC_MESSAGES/hello_glade2.mo b/vendor/gems/gettext-2.1.0/samples/locale/it/LC_MESSAGES/hello_glade2.mo
new file mode 100644
index 000000000..eb4d88de6
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/it/LC_MESSAGES/hello_glade2.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/it/LC_MESSAGES/hello_gtk.mo b/vendor/gems/gettext-2.1.0/samples/locale/it/LC_MESSAGES/hello_gtk.mo
new file mode 100644
index 000000000..f67472523
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/it/LC_MESSAGES/hello_gtk.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/it/LC_MESSAGES/hello_noop.mo b/vendor/gems/gettext-2.1.0/samples/locale/it/LC_MESSAGES/hello_noop.mo
new file mode 100644
index 000000000..cabc97c6d
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/it/LC_MESSAGES/hello_noop.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/it/LC_MESSAGES/hello_plural.mo b/vendor/gems/gettext-2.1.0/samples/locale/it/LC_MESSAGES/hello_plural.mo
new file mode 100644
index 000000000..af8d47224
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/it/LC_MESSAGES/hello_plural.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/it/LC_MESSAGES/hello_tk.mo b/vendor/gems/gettext-2.1.0/samples/locale/it/LC_MESSAGES/hello_tk.mo
new file mode 100644
index 000000000..2dee19224
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/it/LC_MESSAGES/hello_tk.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/ja/LC_MESSAGES/hello.mo b/vendor/gems/gettext-2.1.0/samples/locale/ja/LC_MESSAGES/hello.mo
new file mode 100644
index 000000000..a40d26dfb
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/ja/LC_MESSAGES/hello.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/ja/LC_MESSAGES/hello2.mo b/vendor/gems/gettext-2.1.0/samples/locale/ja/LC_MESSAGES/hello2.mo
new file mode 100644
index 000000000..d6eef0a6b
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/ja/LC_MESSAGES/hello2.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/ja/LC_MESSAGES/hello_glade2.mo b/vendor/gems/gettext-2.1.0/samples/locale/ja/LC_MESSAGES/hello_glade2.mo
new file mode 100644
index 000000000..984d93481
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/ja/LC_MESSAGES/hello_glade2.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/ja/LC_MESSAGES/hello_gtk.mo b/vendor/gems/gettext-2.1.0/samples/locale/ja/LC_MESSAGES/hello_gtk.mo
new file mode 100644
index 000000000..d41113e25
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/ja/LC_MESSAGES/hello_gtk.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/ja/LC_MESSAGES/hello_noop.mo b/vendor/gems/gettext-2.1.0/samples/locale/ja/LC_MESSAGES/hello_noop.mo
new file mode 100644
index 000000000..2353b7c49
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/ja/LC_MESSAGES/hello_noop.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/ja/LC_MESSAGES/hello_plural.mo b/vendor/gems/gettext-2.1.0/samples/locale/ja/LC_MESSAGES/hello_plural.mo
new file mode 100644
index 000000000..715cac2a5
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/ja/LC_MESSAGES/hello_plural.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/ja/LC_MESSAGES/hello_tk.mo b/vendor/gems/gettext-2.1.0/samples/locale/ja/LC_MESSAGES/hello_tk.mo
new file mode 100644
index 000000000..9f6808923
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/ja/LC_MESSAGES/hello_tk.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/ko/LC_MESSAGES/hello.mo b/vendor/gems/gettext-2.1.0/samples/locale/ko/LC_MESSAGES/hello.mo
new file mode 100644
index 000000000..96b91b59a
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/ko/LC_MESSAGES/hello.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/ko/LC_MESSAGES/hello2.mo b/vendor/gems/gettext-2.1.0/samples/locale/ko/LC_MESSAGES/hello2.mo
new file mode 100644
index 000000000..59cd4f037
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/ko/LC_MESSAGES/hello2.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/ko/LC_MESSAGES/hello_glade2.mo b/vendor/gems/gettext-2.1.0/samples/locale/ko/LC_MESSAGES/hello_glade2.mo
new file mode 100644
index 000000000..ec2ce9ad4
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/ko/LC_MESSAGES/hello_glade2.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/ko/LC_MESSAGES/hello_gtk.mo b/vendor/gems/gettext-2.1.0/samples/locale/ko/LC_MESSAGES/hello_gtk.mo
new file mode 100644
index 000000000..6d08291a7
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/ko/LC_MESSAGES/hello_gtk.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/ko/LC_MESSAGES/hello_noop.mo b/vendor/gems/gettext-2.1.0/samples/locale/ko/LC_MESSAGES/hello_noop.mo
new file mode 100644
index 000000000..d6d97ac04
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/ko/LC_MESSAGES/hello_noop.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/ko/LC_MESSAGES/hello_plural.mo b/vendor/gems/gettext-2.1.0/samples/locale/ko/LC_MESSAGES/hello_plural.mo
new file mode 100644
index 000000000..e58b8cbc9
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/ko/LC_MESSAGES/hello_plural.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/ko/LC_MESSAGES/hello_tk.mo b/vendor/gems/gettext-2.1.0/samples/locale/ko/LC_MESSAGES/hello_tk.mo
new file mode 100644
index 000000000..77a3d4db3
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/ko/LC_MESSAGES/hello_tk.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/lv/LC_MESSAGES/hello.mo b/vendor/gems/gettext-2.1.0/samples/locale/lv/LC_MESSAGES/hello.mo
new file mode 100644
index 000000000..b27f830f3
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/lv/LC_MESSAGES/hello.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/lv/LC_MESSAGES/hello2.mo b/vendor/gems/gettext-2.1.0/samples/locale/lv/LC_MESSAGES/hello2.mo
new file mode 100644
index 000000000..fd677e679
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/lv/LC_MESSAGES/hello2.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/lv/LC_MESSAGES/hello_glade2.mo b/vendor/gems/gettext-2.1.0/samples/locale/lv/LC_MESSAGES/hello_glade2.mo
new file mode 100644
index 000000000..39982cf10
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/lv/LC_MESSAGES/hello_glade2.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/lv/LC_MESSAGES/hello_gtk.mo b/vendor/gems/gettext-2.1.0/samples/locale/lv/LC_MESSAGES/hello_gtk.mo
new file mode 100644
index 000000000..c42f3e62e
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/lv/LC_MESSAGES/hello_gtk.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/lv/LC_MESSAGES/hello_noop.mo b/vendor/gems/gettext-2.1.0/samples/locale/lv/LC_MESSAGES/hello_noop.mo
new file mode 100644
index 000000000..0b9cab7f9
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/lv/LC_MESSAGES/hello_noop.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/lv/LC_MESSAGES/hello_plural.mo b/vendor/gems/gettext-2.1.0/samples/locale/lv/LC_MESSAGES/hello_plural.mo
new file mode 100644
index 000000000..c749bd94a
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/lv/LC_MESSAGES/hello_plural.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/lv/LC_MESSAGES/hello_tk.mo b/vendor/gems/gettext-2.1.0/samples/locale/lv/LC_MESSAGES/hello_tk.mo
new file mode 100644
index 000000000..69db9aa0a
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/lv/LC_MESSAGES/hello_tk.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/nb/LC_MESSAGES/hello.mo b/vendor/gems/gettext-2.1.0/samples/locale/nb/LC_MESSAGES/hello.mo
new file mode 100644
index 000000000..07068e620
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/nb/LC_MESSAGES/hello.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/nb/LC_MESSAGES/hello2.mo b/vendor/gems/gettext-2.1.0/samples/locale/nb/LC_MESSAGES/hello2.mo
new file mode 100644
index 000000000..44a248057
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/nb/LC_MESSAGES/hello2.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/nb/LC_MESSAGES/hello_glade2.mo b/vendor/gems/gettext-2.1.0/samples/locale/nb/LC_MESSAGES/hello_glade2.mo
new file mode 100644
index 000000000..315ba581c
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/nb/LC_MESSAGES/hello_glade2.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/nb/LC_MESSAGES/hello_gtk.mo b/vendor/gems/gettext-2.1.0/samples/locale/nb/LC_MESSAGES/hello_gtk.mo
new file mode 100644
index 000000000..5fd72270f
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/nb/LC_MESSAGES/hello_gtk.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/nb/LC_MESSAGES/hello_noop.mo b/vendor/gems/gettext-2.1.0/samples/locale/nb/LC_MESSAGES/hello_noop.mo
new file mode 100644
index 000000000..f086f9be4
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/nb/LC_MESSAGES/hello_noop.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/nb/LC_MESSAGES/hello_plural.mo b/vendor/gems/gettext-2.1.0/samples/locale/nb/LC_MESSAGES/hello_plural.mo
new file mode 100644
index 000000000..145adf825
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/nb/LC_MESSAGES/hello_plural.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/nb/LC_MESSAGES/hello_tk.mo b/vendor/gems/gettext-2.1.0/samples/locale/nb/LC_MESSAGES/hello_tk.mo
new file mode 100644
index 000000000..d2225a0ab
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/nb/LC_MESSAGES/hello_tk.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/nl/LC_MESSAGES/hello.mo b/vendor/gems/gettext-2.1.0/samples/locale/nl/LC_MESSAGES/hello.mo
new file mode 100644
index 000000000..84e103111
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/nl/LC_MESSAGES/hello.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/nl/LC_MESSAGES/hello2.mo b/vendor/gems/gettext-2.1.0/samples/locale/nl/LC_MESSAGES/hello2.mo
new file mode 100644
index 000000000..0a1213753
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/nl/LC_MESSAGES/hello2.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/nl/LC_MESSAGES/hello_glade2.mo b/vendor/gems/gettext-2.1.0/samples/locale/nl/LC_MESSAGES/hello_glade2.mo
new file mode 100644
index 000000000..c97cc45fd
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/nl/LC_MESSAGES/hello_glade2.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/nl/LC_MESSAGES/hello_gtk.mo b/vendor/gems/gettext-2.1.0/samples/locale/nl/LC_MESSAGES/hello_gtk.mo
new file mode 100644
index 000000000..60158adcf
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/nl/LC_MESSAGES/hello_gtk.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/nl/LC_MESSAGES/hello_noop.mo b/vendor/gems/gettext-2.1.0/samples/locale/nl/LC_MESSAGES/hello_noop.mo
new file mode 100644
index 000000000..2c8eaa273
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/nl/LC_MESSAGES/hello_noop.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/nl/LC_MESSAGES/hello_plural.mo b/vendor/gems/gettext-2.1.0/samples/locale/nl/LC_MESSAGES/hello_plural.mo
new file mode 100644
index 000000000..78e5581b1
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/nl/LC_MESSAGES/hello_plural.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/nl/LC_MESSAGES/hello_tk.mo b/vendor/gems/gettext-2.1.0/samples/locale/nl/LC_MESSAGES/hello_tk.mo
new file mode 100644
index 000000000..bd256365b
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/nl/LC_MESSAGES/hello_tk.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/pt_BR/LC_MESSAGES/hello.mo b/vendor/gems/gettext-2.1.0/samples/locale/pt_BR/LC_MESSAGES/hello.mo
new file mode 100644
index 000000000..1a95da4a2
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/pt_BR/LC_MESSAGES/hello.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/pt_BR/LC_MESSAGES/hello2.mo b/vendor/gems/gettext-2.1.0/samples/locale/pt_BR/LC_MESSAGES/hello2.mo
new file mode 100644
index 000000000..df919734d
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/pt_BR/LC_MESSAGES/hello2.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/pt_BR/LC_MESSAGES/hello_glade2.mo b/vendor/gems/gettext-2.1.0/samples/locale/pt_BR/LC_MESSAGES/hello_glade2.mo
new file mode 100644
index 000000000..bf8fac6c5
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/pt_BR/LC_MESSAGES/hello_glade2.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/pt_BR/LC_MESSAGES/hello_gtk.mo b/vendor/gems/gettext-2.1.0/samples/locale/pt_BR/LC_MESSAGES/hello_gtk.mo
new file mode 100644
index 000000000..3f88f81b3
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/pt_BR/LC_MESSAGES/hello_gtk.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/pt_BR/LC_MESSAGES/hello_noop.mo b/vendor/gems/gettext-2.1.0/samples/locale/pt_BR/LC_MESSAGES/hello_noop.mo
new file mode 100644
index 000000000..03517fc09
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/pt_BR/LC_MESSAGES/hello_noop.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/pt_BR/LC_MESSAGES/hello_plural.mo b/vendor/gems/gettext-2.1.0/samples/locale/pt_BR/LC_MESSAGES/hello_plural.mo
new file mode 100644
index 000000000..72a7a17f3
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/pt_BR/LC_MESSAGES/hello_plural.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/pt_BR/LC_MESSAGES/hello_tk.mo b/vendor/gems/gettext-2.1.0/samples/locale/pt_BR/LC_MESSAGES/hello_tk.mo
new file mode 100644
index 000000000..3f88f81b3
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/pt_BR/LC_MESSAGES/hello_tk.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/ru/LC_MESSAGES/hello.mo b/vendor/gems/gettext-2.1.0/samples/locale/ru/LC_MESSAGES/hello.mo
new file mode 100644
index 000000000..01c66a2ec
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/ru/LC_MESSAGES/hello.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/ru/LC_MESSAGES/hello2.mo b/vendor/gems/gettext-2.1.0/samples/locale/ru/LC_MESSAGES/hello2.mo
new file mode 100644
index 000000000..ba05d4fac
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/ru/LC_MESSAGES/hello2.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/ru/LC_MESSAGES/hello_glade2.mo b/vendor/gems/gettext-2.1.0/samples/locale/ru/LC_MESSAGES/hello_glade2.mo
new file mode 100644
index 000000000..15a3e5b50
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/ru/LC_MESSAGES/hello_glade2.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/ru/LC_MESSAGES/hello_gtk.mo b/vendor/gems/gettext-2.1.0/samples/locale/ru/LC_MESSAGES/hello_gtk.mo
new file mode 100644
index 000000000..36f7cdf8f
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/ru/LC_MESSAGES/hello_gtk.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/ru/LC_MESSAGES/hello_noop.mo b/vendor/gems/gettext-2.1.0/samples/locale/ru/LC_MESSAGES/hello_noop.mo
new file mode 100644
index 000000000..ecf6dae16
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/ru/LC_MESSAGES/hello_noop.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/ru/LC_MESSAGES/hello_plural.mo b/vendor/gems/gettext-2.1.0/samples/locale/ru/LC_MESSAGES/hello_plural.mo
new file mode 100644
index 000000000..463d2517a
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/ru/LC_MESSAGES/hello_plural.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/ru/LC_MESSAGES/hello_tk.mo b/vendor/gems/gettext-2.1.0/samples/locale/ru/LC_MESSAGES/hello_tk.mo
new file mode 100644
index 000000000..54c8e7d0d
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/ru/LC_MESSAGES/hello_tk.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/sr/LC_MESSAGES/hello.mo b/vendor/gems/gettext-2.1.0/samples/locale/sr/LC_MESSAGES/hello.mo
new file mode 100644
index 000000000..0f31f99c6
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/sr/LC_MESSAGES/hello.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/sr/LC_MESSAGES/hello2.mo b/vendor/gems/gettext-2.1.0/samples/locale/sr/LC_MESSAGES/hello2.mo
new file mode 100644
index 000000000..b2622f9ef
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/sr/LC_MESSAGES/hello2.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/sr/LC_MESSAGES/hello_glade2.mo b/vendor/gems/gettext-2.1.0/samples/locale/sr/LC_MESSAGES/hello_glade2.mo
new file mode 100644
index 000000000..870bd9a21
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/sr/LC_MESSAGES/hello_glade2.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/sr/LC_MESSAGES/hello_gtk.mo b/vendor/gems/gettext-2.1.0/samples/locale/sr/LC_MESSAGES/hello_gtk.mo
new file mode 100644
index 000000000..70aeec7d3
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/sr/LC_MESSAGES/hello_gtk.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/sr/LC_MESSAGES/hello_noop.mo b/vendor/gems/gettext-2.1.0/samples/locale/sr/LC_MESSAGES/hello_noop.mo
new file mode 100644
index 000000000..e5fda1ef0
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/sr/LC_MESSAGES/hello_noop.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/sr/LC_MESSAGES/hello_plural.mo b/vendor/gems/gettext-2.1.0/samples/locale/sr/LC_MESSAGES/hello_plural.mo
new file mode 100644
index 000000000..779c9b675
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/sr/LC_MESSAGES/hello_plural.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/sr/LC_MESSAGES/hello_tk.mo b/vendor/gems/gettext-2.1.0/samples/locale/sr/LC_MESSAGES/hello_tk.mo
new file mode 100644
index 000000000..db76c3ad1
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/sr/LC_MESSAGES/hello_tk.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/sv/LC_MESSAGES/hello.mo b/vendor/gems/gettext-2.1.0/samples/locale/sv/LC_MESSAGES/hello.mo
new file mode 100644
index 000000000..47458db3e
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/sv/LC_MESSAGES/hello.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/sv/LC_MESSAGES/hello2.mo b/vendor/gems/gettext-2.1.0/samples/locale/sv/LC_MESSAGES/hello2.mo
new file mode 100644
index 000000000..f24f1c8b5
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/sv/LC_MESSAGES/hello2.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/sv/LC_MESSAGES/hello_glade2.mo b/vendor/gems/gettext-2.1.0/samples/locale/sv/LC_MESSAGES/hello_glade2.mo
new file mode 100644
index 000000000..55b8be9a1
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/sv/LC_MESSAGES/hello_glade2.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/sv/LC_MESSAGES/hello_gtk.mo b/vendor/gems/gettext-2.1.0/samples/locale/sv/LC_MESSAGES/hello_gtk.mo
new file mode 100644
index 000000000..a28108f06
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/sv/LC_MESSAGES/hello_gtk.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/sv/LC_MESSAGES/hello_noop.mo b/vendor/gems/gettext-2.1.0/samples/locale/sv/LC_MESSAGES/hello_noop.mo
new file mode 100644
index 000000000..7f9a11ac4
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/sv/LC_MESSAGES/hello_noop.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/sv/LC_MESSAGES/hello_plural.mo b/vendor/gems/gettext-2.1.0/samples/locale/sv/LC_MESSAGES/hello_plural.mo
new file mode 100644
index 000000000..8a723259b
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/sv/LC_MESSAGES/hello_plural.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/sv/LC_MESSAGES/hello_tk.mo b/vendor/gems/gettext-2.1.0/samples/locale/sv/LC_MESSAGES/hello_tk.mo
new file mode 100644
index 000000000..e93a30484
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/sv/LC_MESSAGES/hello_tk.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/ua/LC_MESSAGES/hello.mo b/vendor/gems/gettext-2.1.0/samples/locale/ua/LC_MESSAGES/hello.mo
new file mode 100644
index 000000000..be2301a23
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/ua/LC_MESSAGES/hello.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/ua/LC_MESSAGES/hello2.mo b/vendor/gems/gettext-2.1.0/samples/locale/ua/LC_MESSAGES/hello2.mo
new file mode 100644
index 000000000..56b675934
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/ua/LC_MESSAGES/hello2.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/ua/LC_MESSAGES/hello_glade2.mo b/vendor/gems/gettext-2.1.0/samples/locale/ua/LC_MESSAGES/hello_glade2.mo
new file mode 100644
index 000000000..45741f1b9
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/ua/LC_MESSAGES/hello_glade2.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/ua/LC_MESSAGES/hello_gtk.mo b/vendor/gems/gettext-2.1.0/samples/locale/ua/LC_MESSAGES/hello_gtk.mo
new file mode 100644
index 000000000..a7b8ec937
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/ua/LC_MESSAGES/hello_gtk.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/ua/LC_MESSAGES/hello_noop.mo b/vendor/gems/gettext-2.1.0/samples/locale/ua/LC_MESSAGES/hello_noop.mo
new file mode 100644
index 000000000..86e22f517
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/ua/LC_MESSAGES/hello_noop.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/ua/LC_MESSAGES/hello_plural.mo b/vendor/gems/gettext-2.1.0/samples/locale/ua/LC_MESSAGES/hello_plural.mo
new file mode 100644
index 000000000..f0c541f00
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/ua/LC_MESSAGES/hello_plural.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/ua/LC_MESSAGES/hello_tk.mo b/vendor/gems/gettext-2.1.0/samples/locale/ua/LC_MESSAGES/hello_tk.mo
new file mode 100644
index 000000000..30d1a0964
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/ua/LC_MESSAGES/hello_tk.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/vi/LC_MESSAGES/hello.mo b/vendor/gems/gettext-2.1.0/samples/locale/vi/LC_MESSAGES/hello.mo
new file mode 100644
index 000000000..4ca5b24c8
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/vi/LC_MESSAGES/hello.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/vi/LC_MESSAGES/hello2.mo b/vendor/gems/gettext-2.1.0/samples/locale/vi/LC_MESSAGES/hello2.mo
new file mode 100644
index 000000000..262062224
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/vi/LC_MESSAGES/hello2.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/vi/LC_MESSAGES/hello_glade2.mo b/vendor/gems/gettext-2.1.0/samples/locale/vi/LC_MESSAGES/hello_glade2.mo
new file mode 100644
index 000000000..20d2ce316
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/vi/LC_MESSAGES/hello_glade2.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/vi/LC_MESSAGES/hello_gtk.mo b/vendor/gems/gettext-2.1.0/samples/locale/vi/LC_MESSAGES/hello_gtk.mo
new file mode 100644
index 000000000..9dadca326
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/vi/LC_MESSAGES/hello_gtk.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/vi/LC_MESSAGES/hello_noop.mo b/vendor/gems/gettext-2.1.0/samples/locale/vi/LC_MESSAGES/hello_noop.mo
new file mode 100644
index 000000000..0dfb87cb8
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/vi/LC_MESSAGES/hello_noop.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/vi/LC_MESSAGES/hello_plural.mo b/vendor/gems/gettext-2.1.0/samples/locale/vi/LC_MESSAGES/hello_plural.mo
new file mode 100644
index 000000000..c055e8739
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/vi/LC_MESSAGES/hello_plural.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/vi/LC_MESSAGES/hello_tk.mo b/vendor/gems/gettext-2.1.0/samples/locale/vi/LC_MESSAGES/hello_tk.mo
new file mode 100644
index 000000000..8c1d275b6
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/vi/LC_MESSAGES/hello_tk.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/zh/LC_MESSAGES/hello.mo b/vendor/gems/gettext-2.1.0/samples/locale/zh/LC_MESSAGES/hello.mo
new file mode 100644
index 000000000..ed2c491a1
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/zh/LC_MESSAGES/hello.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/zh/LC_MESSAGES/hello2.mo b/vendor/gems/gettext-2.1.0/samples/locale/zh/LC_MESSAGES/hello2.mo
new file mode 100644
index 000000000..f6fd7e8b0
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/zh/LC_MESSAGES/hello2.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/zh/LC_MESSAGES/hello_glade2.mo b/vendor/gems/gettext-2.1.0/samples/locale/zh/LC_MESSAGES/hello_glade2.mo
new file mode 100644
index 000000000..ebb1a1d86
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/zh/LC_MESSAGES/hello_glade2.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/zh/LC_MESSAGES/hello_gtk.mo b/vendor/gems/gettext-2.1.0/samples/locale/zh/LC_MESSAGES/hello_gtk.mo
new file mode 100644
index 000000000..6a494c690
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/zh/LC_MESSAGES/hello_gtk.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/zh/LC_MESSAGES/hello_noop.mo b/vendor/gems/gettext-2.1.0/samples/locale/zh/LC_MESSAGES/hello_noop.mo
new file mode 100644
index 000000000..405af5390
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/zh/LC_MESSAGES/hello_noop.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/zh/LC_MESSAGES/hello_plural.mo b/vendor/gems/gettext-2.1.0/samples/locale/zh/LC_MESSAGES/hello_plural.mo
new file mode 100644
index 000000000..d9723d8d8
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/zh/LC_MESSAGES/hello_plural.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/zh/LC_MESSAGES/hello_tk.mo b/vendor/gems/gettext-2.1.0/samples/locale/zh/LC_MESSAGES/hello_tk.mo
new file mode 100644
index 000000000..50b6a42ac
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/zh/LC_MESSAGES/hello_tk.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/zh_TW/LC_MESSAGES/hello.mo b/vendor/gems/gettext-2.1.0/samples/locale/zh_TW/LC_MESSAGES/hello.mo
new file mode 100644
index 000000000..4a9a4c780
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/zh_TW/LC_MESSAGES/hello.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/zh_TW/LC_MESSAGES/hello2.mo b/vendor/gems/gettext-2.1.0/samples/locale/zh_TW/LC_MESSAGES/hello2.mo
new file mode 100644
index 000000000..dc40bf3eb
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/zh_TW/LC_MESSAGES/hello2.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/zh_TW/LC_MESSAGES/hello_glade2.mo b/vendor/gems/gettext-2.1.0/samples/locale/zh_TW/LC_MESSAGES/hello_glade2.mo
new file mode 100644
index 000000000..55ec19a66
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/zh_TW/LC_MESSAGES/hello_glade2.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/zh_TW/LC_MESSAGES/hello_gtk.mo b/vendor/gems/gettext-2.1.0/samples/locale/zh_TW/LC_MESSAGES/hello_gtk.mo
new file mode 100644
index 000000000..e2fca11d4
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/zh_TW/LC_MESSAGES/hello_gtk.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/zh_TW/LC_MESSAGES/hello_noop.mo b/vendor/gems/gettext-2.1.0/samples/locale/zh_TW/LC_MESSAGES/hello_noop.mo
new file mode 100644
index 000000000..5b2687258
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/zh_TW/LC_MESSAGES/hello_noop.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/zh_TW/LC_MESSAGES/hello_plural.mo b/vendor/gems/gettext-2.1.0/samples/locale/zh_TW/LC_MESSAGES/hello_plural.mo
new file mode 100644
index 000000000..ae8fa791b
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/zh_TW/LC_MESSAGES/hello_plural.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/locale/zh_TW/LC_MESSAGES/hello_tk.mo b/vendor/gems/gettext-2.1.0/samples/locale/zh_TW/LC_MESSAGES/hello_tk.mo
new file mode 100644
index 000000000..9c8bcc977
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/locale/zh_TW/LC_MESSAGES/hello_tk.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/samples/makemo.rb b/vendor/gems/gettext-2.1.0/samples/makemo.rb
new file mode 100755
index 000000000..c470d16ed
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/makemo.rb
@@ -0,0 +1,4 @@
+require 'rubygems'
+require 'gettext/tools'
+
+GetText.create_mofiles(:mo_root => "locale")
diff --git a/vendor/gems/gettext-2.1.0/samples/po/bg/hello.po b/vendor/gems/gettext-2.1.0/samples/po/bg/hello.po
new file mode 100644
index 000000000..10dd92b3e
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/bg/hello.po
@@ -0,0 +1,24 @@
+# Hello World -- a sample for Ruby-GetText-Package
+#
+# Copyright (C) 2001-2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Georgi Stoimenov <georgistoimenov@abv.bg>, 2008
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 1.1.1\n"
+"POT-Creation-Date: 2001-12-24 01:30:54+0900\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: Sava Chankov <sava.chankov@gmail.com>\n"
+"Language-Team: Bulgarian <ruby-on-rails-bulgaria@googlegroups.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+
+#: ../hello.rb:7
+msgid "Hello World\n"
+msgstr "Гепи копеле\n"
diff --git a/vendor/gems/gettext-2.1.0/samples/po/bg/hello2.po b/vendor/gems/gettext-2.1.0/samples/po/bg/hello2.po
new file mode 100644
index 000000000..ba96043e1
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/bg/hello2.po
@@ -0,0 +1,31 @@
+# Hello World 2 -- sample for ruby-gettext-package
+#
+# Copyright (C) 2002-2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Georgi Stoimenov <georgistoimenov@abv.bg>, 2008
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 1.1.1\n"
+"POT-Creation-Date: 2002-01-01 03:05:08+0900\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: Sava Chankov <sava.chankov@gmail.com>\n"
+"Language-Team: Bulgarian <ruby-on-rails-bulgaria@googlegroups.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: hello2.rb:9
+msgid "World"
+msgstr "копеле"
+
+#: hello2.rb:8
+msgid "One is %{num}\n"
+msgstr "Едно е %{num}\n"
+
+#: hello2.rb:9
+msgid "Hello %{world}\n"
+msgstr "Гепи %{копеле}\n"
diff --git a/vendor/gems/gettext-2.1.0/samples/po/bg/hello_glade2.po b/vendor/gems/gettext-2.1.0/samples/po/bg/hello_glade2.po
new file mode 100644
index 000000000..f0b8bf17b
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/bg/hello_glade2.po
@@ -0,0 +1,31 @@
+# hello_glade2.po - sample for Ruby/Libglade2
+#
+# Copyright (C) 2005,2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Georgi Stoimenov <georgistoimenov@abv.bg>, 2008
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 1.1.1\n"
+"POT-Creation-Date: 2004-07-03 23:38+0900\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: Sava Chankov <sava.chankov@gmail.com>\n"
+"Language-Team: Bulgarian <ruby-on-rails-bulgaria@googlegroups.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: hello_glade2.glade:8
+msgid "window1"
+msgstr "прозорец1"
+
+#: hello_glade2.glade:29
+msgid "first line\nsecond line\nthird line"
+msgstr "първи ред\nвтори ред\nтрети ред"
+
+#: hello_glade2.glade:53
+msgid "<Hello world>"
+msgstr "<Гепи копеле>"
diff --git a/vendor/gems/gettext-2.1.0/samples/po/bg/hello_gtk.po b/vendor/gems/gettext-2.1.0/samples/po/bg/hello_gtk.po
new file mode 100644
index 000000000..e53d22f47
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/bg/hello_gtk.po
@@ -0,0 +1,23 @@
+# Hello World for Ruby/GTK -- sample for ruby-gettext-package
+#
+# Copyright (C) 2001-2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Georgi Stoimenov <georgistoimenov@abv.bg>, 2008
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 1.1.1\n"
+"POT-Creation-Date: 2001-12-24 01:52:10+0900\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: Sava Chankov <sava.chankov@gmail.com>\n"
+"Language-Team: Bulgarian <ruby-on-rails-bulgaria@googlegroups.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: ../hello_gtk.rb:14
+msgid "hello, gtk world"
+msgstr "Гепи, gtk копеле"
diff --git a/vendor/gems/gettext-2.1.0/samples/po/bg/hello_noop.po b/vendor/gems/gettext-2.1.0/samples/po/bg/hello_noop.po
new file mode 100644
index 000000000..ce03dcba1
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/bg/hello_noop.po
@@ -0,0 +1,27 @@
+# Hello World noop -- sample for ruby-gettext-package
+#
+# Copyright (C) 2002-2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Georgi Stoimenov <georgistoimenov@abv.bg>, 2008
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 1.1.1\n"
+"POT-Creation-Date: 2002-02-21 23:23:08+0900\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: Sava Chankov <sava.chankov@gmail.com>\n"
+"Language-Team: Bulgarian <ruby-on-rails-bulgaria@googlegroups.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: hello_noop.rb:8
+msgid "Hello World"
+msgstr "Гепи копеле"
+
+#: hello_noop.rb:8
+msgid "Hello World2"
+msgstr "Гепи копеле2"
diff --git a/vendor/gems/gettext-2.1.0/samples/po/bg/hello_plural.po b/vendor/gems/gettext-2.1.0/samples/po/bg/hello_plural.po
new file mode 100644
index 000000000..6a6e1cc1a
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/bg/hello_plural.po
@@ -0,0 +1,25 @@
+# hello_plural.po - sample for plural messages
+#
+# Copyright (C) 2002-2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Georgi Stoimenov <georgistoimenov@abv.bg>, 2008
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 1.1.1\n"
+"POT-Creation-Date: 2002-10-21 15:32:15+0900\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: Sava Chankov <sava.chankov@gmail.com>\n"
+"Language-Team: Bulgarian <ruby-on-rails-bulgaria@googlegroups.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: hello_plural.rb:11
+msgid "There is an apple.\n"
+msgid_plural "There are %{num} apples.\n"
+msgstr[0] "Това е ябълка.\n"
+msgstr[1] "Това са %{num} ябълки.\n"
diff --git a/vendor/gems/gettext-2.1.0/samples/po/bg/hello_tk.po b/vendor/gems/gettext-2.1.0/samples/po/bg/hello_tk.po
new file mode 100644
index 000000000..57779ed43
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/bg/hello_tk.po
@@ -0,0 +1,23 @@
+# hello_tk.po - sample for Ruby/TK
+#
+# Copyright (C) 2004 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Georgi Stoimenov <georgistoimenov@abv.bg>, 2008
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 1.1.1\n"
+"POT-Creation-Date: 2004-11-05 21:38+0900\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: Sava Chankov <sava.chankov@gmail.com>\n"
+"Language-Team: Bulgarian <ruby-on-rails-bulgaria@googlegroups.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: hello_tk.rb:10
+msgid "hello, tk world"
+msgstr "Гепи, tk копеле"
diff --git a/vendor/gems/gettext-2.1.0/samples/po/bs/hello.po b/vendor/gems/gettext-2.1.0/samples/po/bs/hello.po
new file mode 100644
index 000000000..88483040b
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/bs/hello.po
@@ -0,0 +1,23 @@
+# translation of hello.po to Bosnian
+# Hello World -- a sample for Ruby-GetText-Package
+# Copyright (C) 2001-2006 Masao Mutoh
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Sanjin Sehic <saserr@gmail.com>, 2007.
+msgid ""
+msgstr ""
+"Project-Id-Version: hello\n"
+"POT-Creation-Date: 2001-12-24 01:30:54+0900\n"
+"PO-Revision-Date: 2007-03-20 20:23+0100\n"
+"Last-Translator: Sanjin Sehic <saserr@gmail.com>\n"
+"Language-Team: Bosnian <saserr@gmail.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+
+#: ../hello.rb:7
+msgid "Hello World\n"
+msgstr "Zdravo Svijetu\n"
+
diff --git a/vendor/gems/gettext-2.1.0/samples/po/bs/hello2.po b/vendor/gems/gettext-2.1.0/samples/po/bs/hello2.po
new file mode 100644
index 000000000..42b9b836d
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/bs/hello2.po
@@ -0,0 +1,31 @@
+# translation of hello2.po to Bosnian
+# Hello World 2 -- sample for ruby-gettext-package
+# Copyright (C) 2002-2006 Masao Mutoh
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Sanjin Sehic <saserr@gmail.com>, 2007.
+msgid ""
+msgstr ""
+"Project-Id-Version: hello2\n"
+"POT-Creation-Date: 2002-01-01 03:05:08+0900\n"
+"PO-Revision-Date: 2007-03-20 20:15+0100\n"
+"Last-Translator: Sanjin Sehic <saserr@gmail.com>\n"
+"Language-Team: Bosnian <saserr@gmail.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+
+#: hello2.rb:9
+msgid "World"
+msgstr "Svijetu"
+
+#: hello2.rb:8
+msgid "One is %{num}\n"
+msgstr "Jedan je %{num}\n"
+
+#: hello2.rb:9
+msgid "Hello %{world}\n"
+msgstr "Zdravo %{world}\n"
+
diff --git a/vendor/gems/gettext-2.1.0/samples/po/bs/hello_glade2.po b/vendor/gems/gettext-2.1.0/samples/po/bs/hello_glade2.po
new file mode 100644
index 000000000..e4b22679a
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/bs/hello_glade2.po
@@ -0,0 +1,31 @@
+# translation of hello_glade2.po to Bosnian
+# hello_glade2.po - sample for Ruby/Libglade2
+# Copyright (C) 2005,2006 Masao Mutoh
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Sanjin Sehic <saserr@gmail.com>, 2007.
+msgid ""
+msgstr ""
+"Project-Id-Version: hello_glade2\n"
+"POT-Creation-Date: 2004-07-03 23:38+0900\n"
+"PO-Revision-Date: 2007-03-20 20:18+0100\n"
+"Last-Translator: Sanjin Sehic <saserr@gmail.com>\n"
+"Language-Team: Bosnian <saserr@gmail.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#: hello_glade2.glade:8
+msgid "window1"
+msgstr "prozor1"
+
+#: hello_glade2.glade:29
+msgid "first line\nsecond line\nthird line"
+msgstr "prvi red\ndrugi red\ntreći red"
+
+#: hello_glade2.glade:53
+msgid "<Hello world>"
+msgstr "<Zdravo svijetu>"
+
diff --git a/vendor/gems/gettext-2.1.0/samples/po/bs/hello_gtk.po b/vendor/gems/gettext-2.1.0/samples/po/bs/hello_gtk.po
new file mode 100644
index 000000000..df835844b
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/bs/hello_gtk.po
@@ -0,0 +1,23 @@
+# translation of hello_gtk.po to Bosnian
+# Hello World for Ruby/GTK -- sample for ruby-gettext-package
+# Copyright (C) 2001-2006 Masao Mutoh
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Sanjin Sehic <saserr@gmail.com>, 2007.
+msgid ""
+msgstr ""
+"Project-Id-Version: hello_gtk\n"
+"POT-Creation-Date: 2001-12-24 01:52:10+0900\n"
+"PO-Revision-Date: 2007-03-20 20:18+0100\n"
+"Last-Translator: Sanjin Sehic <saserr@gmail.com>\n"
+"Language-Team: Bosnian <saserr@gmail.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+
+#: ../hello_gtk.rb:14
+msgid "hello, gtk world"
+msgstr "zdravo, gtk svijetu"
+
diff --git a/vendor/gems/gettext-2.1.0/samples/po/bs/hello_noop.po b/vendor/gems/gettext-2.1.0/samples/po/bs/hello_noop.po
new file mode 100644
index 000000000..f272427ba
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/bs/hello_noop.po
@@ -0,0 +1,27 @@
+# translation of hello_noop.po to Bosnian
+# Hello World noop -- sample for ruby-gettext-package
+# Copyright (C) 2002-2006 Masao Mutoh
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Sanjin Sehic <saserr@gmail.com>, 2007.
+msgid ""
+msgstr ""
+"Project-Id-Version: hello_noop\n"
+"POT-Creation-Date: 2002-02-21 23:23:08+0900\n"
+"PO-Revision-Date: 2007-03-20 20:20+0100\n"
+"Last-Translator: Sanjin Sehic <saserr@gmail.com>\n"
+"Language-Team: Bosnian <saserr@gmail.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+
+#: hello_noop.rb:8
+msgid "Hello World"
+msgstr "Zdravo Svijetu"
+
+#: hello_noop.rb:8
+msgid "Hello World2"
+msgstr "Zdravo Svijetu2"
+
diff --git a/vendor/gems/gettext-2.1.0/samples/po/bs/hello_plural.po b/vendor/gems/gettext-2.1.0/samples/po/bs/hello_plural.po
new file mode 100644
index 000000000..34c4a81a6
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/bs/hello_plural.po
@@ -0,0 +1,26 @@
+# translation of hello_plural.po to Bosnian
+# hello_plural.po - sample for plural messages
+# Copyright (C) 2002-2006 Masao Mutoh
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Sanjin Sehic <saserr@gmail.com>, 2007.
+msgid ""
+msgstr ""
+"Project-Id-Version: hello_plural\n"
+"POT-Creation-Date: 2002-10-21 15:32:15+0900\n"
+"PO-Revision-Date: 2007-03-20 20:22+0100\n"
+"Last-Translator: Sanjin Sehic <saserr@gmail.com>\n"
+"Language-Team: Bosnian <saserr@gmail.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#: hello_plural.rb:11
+msgid "There is an apple.\n"
+msgid_plural "There are %{num} apples.\n"
+msgstr[0] "Postoji jabuka.\n"
+msgstr[1] "Postoje %{num} jabuke.\n"
+msgstr[2] "Postoji %{num} jabuka.\n"
+
diff --git a/vendor/gems/gettext-2.1.0/samples/po/bs/hello_tk.po b/vendor/gems/gettext-2.1.0/samples/po/bs/hello_tk.po
new file mode 100644
index 000000000..fef102068
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/bs/hello_tk.po
@@ -0,0 +1,23 @@
+# translation of hello_tk.po to Bosnian
+# hello_tk.po - sample for Ruby/TK
+# Copyright (C) 2004 Masao Mutoh
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Sanjin Sehic <saserr@gmail.com>, 2007.
+msgid ""
+msgstr ""
+"Project-Id-Version: hello_tk\n"
+"POT-Creation-Date: 2004-11-05 21:38+0900\n"
+"PO-Revision-Date: 2007-03-20 20:24+0100\n"
+"Last-Translator: Sanjin Sehic <saserr@gmail.com>\n"
+"Language-Team: Bosnian <saserr@gmail.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#: hello_tk.rb:10
+msgid "hello, tk world"
+msgstr "zdravo, tk svijetu"
+
diff --git a/vendor/gems/gettext-2.1.0/samples/po/ca/hello.po b/vendor/gems/gettext-2.1.0/samples/po/ca/hello.po
new file mode 100644
index 000000000..c31689d36
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/ca/hello.po
@@ -0,0 +1,23 @@
+# Hello World -- a sample for Ruby-GetText-Package
+#
+# Copyright (C) 2001-2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Ramon Salvadó <rsalvado at gnuine.com>, 2006.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 1.1.1\n"
+"POT-Creation-Date: 2001-12-24 01:30:54+0900\n"
+"PO-Revision-Date: 2005-12-20 10:33+0900E\n"
+"Last-Translator: Ramon Salvadó <rsalvado at gnuine.com>\n"
+"Language-Team: Catalan\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: ../hello.rb:7
+msgid "Hello World\n"
+msgstr "Hola Món\n"
diff --git a/vendor/gems/gettext-2.1.0/samples/po/ca/hello2.po b/vendor/gems/gettext-2.1.0/samples/po/ca/hello2.po
new file mode 100644
index 000000000..699cdfe92
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/ca/hello2.po
@@ -0,0 +1,31 @@
+# Hello World 2 -- sample for ruby-gettext-package
+#
+# Copyright (C) 2002-2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Ramon Salvadó <rsalvado at gnuine.com>, 2006.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 1.1.1\n"
+"POT-Creation-Date: 2002-01-01 03:05:08+0900\n"
+"PO-Revision-Date: 2005-12-20 10:33+0900E\n"
+"Last-Translator: Ramon Salvadó <rsalvado at gnuine.com>\n"
+"Language-Team: Catalan\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: hello2.rb:9
+msgid "World"
+msgstr "Món"
+
+#: hello2.rb:8
+msgid "One is %{num}\n"
+msgstr "Un és %{num}\n"
+
+#: hello2.rb:9
+msgid "Hello %{world}\n"
+msgstr "Hola %{world}\n"
diff --git a/vendor/gems/gettext-2.1.0/samples/po/ca/hello_glade2.po b/vendor/gems/gettext-2.1.0/samples/po/ca/hello_glade2.po
new file mode 100644
index 000000000..8332e7ca4
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/ca/hello_glade2.po
@@ -0,0 +1,31 @@
+# hello_glade2.po - sample for Ruby/Libglade2
+#
+# Copyright (C) 2005,2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Ramon Salvadó <rsalvado at gnuine.com>, 2006.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 1.1.1\n"
+"POT-Creation-Date: 2004-07-03 23:38+0900\n"
+"PO-Revision-Date: 2005-12-20 10:33+0900E\n"
+"Last-Translator: Ramon Salvadó <rsalvado at gnuine.com>\n"
+"Language-Team: Catalan\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: hello_glade2.glade:8
+msgid "window1"
+msgstr "Finestra1"
+
+#: hello_glade2.glade:29
+msgid "first line\nsecond line\nthird line"
+msgstr "Primera línia\nsegona línia\ntercera línia"
+
+#: hello_glade2.glade:53
+msgid "<Hello world>"
+msgstr "<Hola Món>"
diff --git a/vendor/gems/gettext-2.1.0/samples/po/ca/hello_gtk.po b/vendor/gems/gettext-2.1.0/samples/po/ca/hello_gtk.po
new file mode 100644
index 000000000..f47fea4f9
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/ca/hello_gtk.po
@@ -0,0 +1,23 @@
+# Hello World for Ruby/GTK -- sample for ruby-gettext-package
+#
+# Copyright (C) 2001-2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Ramon Salvadó <rsalvado at gnuine.com>, 2006.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 1.1.1\n"
+"POT-Creation-Date: 2001-12-24 01:52:10+0900\n"
+"PO-Revision-Date: 2005-12-20 10:33+0900E\n"
+"Last-Translator: Ramon Salvadó <rsalvado at gnuine.com>\n"
+"Language-Team: Catalan\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: ../hello_gtk.rb:14
+msgid "hello, gtk world"
+msgstr "hola, món gtk"
diff --git a/vendor/gems/gettext-2.1.0/samples/po/ca/hello_noop.po b/vendor/gems/gettext-2.1.0/samples/po/ca/hello_noop.po
new file mode 100644
index 000000000..4df4ef624
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/ca/hello_noop.po
@@ -0,0 +1,27 @@
+# Hello World noop -- sample for ruby-gettext-package
+#
+# Copyright (C) 2002-2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Ramon Salvadó <rsalvado at gnuine.com>, 2006.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 1.1.1\n"
+"POT-Creation-Date: 2002-02-21 23:23:08+0900\n"
+"PO-Revision-Date: 2005-12-20 10:33+0900E\n"
+"Last-Translator: Ramon Salvadó <rsalvado at gnuine.com>\n"
+"Language-Team: Catalan\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: hello_noop.rb:8
+msgid "Hello World"
+msgstr "Hola Món"
+
+#: hello_noop.rb:8
+msgid "Hello World2"
+msgstr "Hola Món2"
diff --git a/vendor/gems/gettext-2.1.0/samples/po/ca/hello_plural.po b/vendor/gems/gettext-2.1.0/samples/po/ca/hello_plural.po
new file mode 100644
index 000000000..88f12530e
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/ca/hello_plural.po
@@ -0,0 +1,25 @@
+# hello_plural.po - sample for plural messages
+#
+# Copyright (C) 2002-2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Ramon Salvadó <rsalvado at gnuine.com>, 2006.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 1.1.1\n"
+"POT-Creation-Date: 2002-10-21 15:32:15+0900\n"
+"PO-Revision-Date: 2005-12-20 10:33+0900E\n"
+"Last-Translator: Ramon Salvadó <rsalvado at gnuine.com>\n"
+"Language-Team: Catalan\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: hello_plural.rb:11
+msgid "There is an apple.\n"
+msgid_plural "There are %{num} apples.\n"
+msgstr[0] "Hi ha %{num} poma.\n"
+msgstr[1] "Hi ha %{num} pomes.\n"
diff --git a/vendor/gems/gettext-2.1.0/samples/po/ca/hello_tk.po b/vendor/gems/gettext-2.1.0/samples/po/ca/hello_tk.po
new file mode 100644
index 000000000..79f3afd6a
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/ca/hello_tk.po
@@ -0,0 +1,23 @@
+# hello_tk.po - sample for Ruby/TK
+#
+# Copyright (C) 2004 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Ramon Salvadó <rsalvado at gnuine.com>, 2006.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 1.1.1\n"
+"POT-Creation-Date: 2004-11-05 21:38+0900\n"
+"PO-Revision-Date: 2005-12-20 10:33+0900E\n"
+"Last-Translator: Ramon Salvadó <rsalvado at gnuine.com>\n"
+"Language-Team: Catalan\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: hello_tk.rb:10
+msgid "hello, tk world"
+msgstr "hola, món tk"
diff --git a/vendor/gems/gettext-2.1.0/samples/po/cs/hello.po b/vendor/gems/gettext-2.1.0/samples/po/cs/hello.po
new file mode 100644
index 000000000..7f5fe7a2c
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/cs/hello.po
@@ -0,0 +1,23 @@
+# Hello World -- a sample for Ruby-GetText-Package
+#
+# Copyright (C) Masao Mutoh <mutomasa at gmail.com>
+#
+# Karel Miarka <kajism@yahoo.com>, 2005.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 1.1.0\n"
+"POT-Creation-Date: 2001-12-24 01:30:54+0900\n"
+"PO-Revision-Date: 2005-12-17 21:03+0100\n"
+"Last-Translator: Karel Miarka <kajism@yahoo.com>\n"
+"Language-Team: Czech\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+"X-Poedit-Language: Czech\n"
+
+#: ../hello.rb:7
+msgid "Hello World\n"
+msgstr "Ahoj Světe\n"
+
diff --git a/vendor/gems/gettext-2.1.0/samples/po/cs/hello2.po b/vendor/gems/gettext-2.1.0/samples/po/cs/hello2.po
new file mode 100644
index 000000000..995975393
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/cs/hello2.po
@@ -0,0 +1,31 @@
+# Hello World 2 -- sample for ruby-gettext-package
+#
+# Copyright (C) Masao Mutoh <mutomasa at gmail.com>
+#
+# Karel Miarka <kajism@yahoo.com>, 2005.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 1.1.0\n"
+"POT-Creation-Date: 2002-01-01 03:05:08+0900\n"
+"PO-Revision-Date: 2005-12-17 21:03+0100\n"
+"Last-Translator: Karel Miarka <kajism@yahoo.com>\n"
+"Language-Team: Czech\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+"X-Poedit-Language: Czech\n"
+
+#: hello2.rb:9
+msgid "World"
+msgstr "Svět"
+
+#: hello2.rb:8
+msgid "One is %{num}\n"
+msgstr "Jedna je %{num}\n"
+
+#: hello2.rb:9
+msgid "Hello %{world}\n"
+msgstr "Ahoj %{world}\n"
+
diff --git a/vendor/gems/gettext-2.1.0/samples/po/cs/hello_glade2.po b/vendor/gems/gettext-2.1.0/samples/po/cs/hello_glade2.po
new file mode 100644
index 000000000..1e49cdfed
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/cs/hello_glade2.po
@@ -0,0 +1,37 @@
+# Hello World Glade2 -- a sample for Ruby-GetText-Package
+#
+# Copyright (C) 2005 Masao Mutoh
+#
+# Karel Miarka <kajism@yahoo.com>, 2005.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 1.1.0\n"
+"POT-Creation-Date: 2004-07-03 23:38+0900\n"
+"PO-Revision-Date: 2005-12-17 21:18+0100\n"
+"Last-Translator: Karel Miarka <kajism@yahoo.com>\n"
+"Language-Team: Czech\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+"X-Poedit-Language: Czech\n"
+
+#: hello_glade2.glade:8
+msgid "window1"
+msgstr "okno1"
+
+#: hello_glade2.glade:29
+msgid ""
+"first line\n"
+"second line\n"
+"third line"
+msgstr ""
+"první řádek\n"
+"druhý řádek\n"
+"třetí řádek"
+
+#: hello_glade2.glade:53
+msgid "<Hello world>"
+msgstr "<Ahoj světe>"
+
diff --git a/vendor/gems/gettext-2.1.0/samples/po/cs/hello_gtk.po b/vendor/gems/gettext-2.1.0/samples/po/cs/hello_gtk.po
new file mode 100644
index 000000000..a485f9e53
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/cs/hello_gtk.po
@@ -0,0 +1,23 @@
+# Hello World for Ruby/GTK -- sample for ruby-gettext-package
+#
+# Copyright (C) Masao Mutoh <mutomasa at gmail.com>
+#
+# Karel Miarka <kajism@yahoo.com>, 2005.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 1.1.0\n"
+"POT-Creation-Date: 2001-12-24 01:52:10+0900\n"
+"PO-Revision-Date: 2005-12-17 21:19+0100\n"
+"Last-Translator: Karel Miarka <kajism@yahoo.com>\n"
+"Language-Team: Czech\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+"X-Poedit-Language: Czech\n"
+
+#: ../hello_gtk.rb:14
+msgid "hello, gtk world"
+msgstr "ahoj, světe gtk"
+
diff --git a/vendor/gems/gettext-2.1.0/samples/po/cs/hello_noop.po b/vendor/gems/gettext-2.1.0/samples/po/cs/hello_noop.po
new file mode 100644
index 000000000..d4a556a6f
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/cs/hello_noop.po
@@ -0,0 +1,27 @@
+# Hello World noop -- sample for ruby-gettext-package
+#
+# Copyright (C) Masao Mutoh <mutomasa at gmail.com>
+#
+# Karel Miarka <kajism@yahoo.com>, 2005.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 1.1.0\n"
+"POT-Creation-Date: 2002-02-21 23:23:08+0900\n"
+"PO-Revision-Date: 2005-12-17 21:03+0100\n"
+"Last-Translator: Karel Miarka <kajism@yahoo.com>\n"
+"Language-Team: Czech\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+"X-Poedit-Language: Czech\n"
+
+#: hello_noop.rb:8
+msgid "Hello World"
+msgstr "Ahoj Světe"
+
+#: hello_noop.rb:8
+msgid "Hello World2"
+msgstr "Ahoj Světe2"
+
diff --git a/vendor/gems/gettext-2.1.0/samples/po/cs/hello_plural.po b/vendor/gems/gettext-2.1.0/samples/po/cs/hello_plural.po
new file mode 100644
index 000000000..bbfcac525
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/cs/hello_plural.po
@@ -0,0 +1,26 @@
+# Hello World plural -- a sample for Ruby-GetText-Package
+#
+# Copyright (C) 2005,2006 Masao Mutoh
+#
+# Karel Miarka <kajism@yahoo.com>, 2005.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 1.6.0\n"
+"POT-Creation-Date: 2002-10-21 15:32:15+0900\n"
+"PO-Revision-Date: 2005-12-17 21:08+0100\n"
+"Last-Translator: Karel Miarka <kajism@yahoo.com>\n"
+"Language-Team: Czech\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+"X-Poedit-Language: Czech\n"
+
+#: hello_plural.rb:11
+msgid "There is an apple.\n"
+msgid_plural "There are %{num} apples.\n"
+msgstr[0] "Jedno jablko.\n"
+msgstr[1] "%{num} jablka.\n"
+msgstr[2] "%{num} jablek.\n"
+
diff --git a/vendor/gems/gettext-2.1.0/samples/po/cs/hello_tk.po b/vendor/gems/gettext-2.1.0/samples/po/cs/hello_tk.po
new file mode 100644
index 000000000..601c88b6f
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/cs/hello_tk.po
@@ -0,0 +1,23 @@
+# hello_tk.po - sample for Ruby/TK
+#
+# Copyright (C) 2004 Masao Mutoh
+#
+# Karel Miarka <kajism@yahoo.com>, 2005.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 1.1.0\n"
+"POT-Creation-Date: 2004-11-05 21:38+0900\n"
+"PO-Revision-Date: 2005-12-17 21:20+0100\n"
+"Last-Translator: Karel Miarka <kajism@yahoo.com>\n"
+"Language-Team: Czech\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+"X-Poedit-Language: Czech\n"
+
+#: hello_tk.rb:10
+msgid "hello, tk world"
+msgstr "ahoj, světe tk"
+
diff --git a/vendor/gems/gettext-2.1.0/samples/po/de/hello.po b/vendor/gems/gettext-2.1.0/samples/po/de/hello.po
new file mode 100644
index 000000000..1feb3eee5
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/de/hello.po
@@ -0,0 +1,20 @@
+# Hello World -- a sample for Ruby-GetText-Package
+#
+# Copyright (C) Masao Mutoh <mutomasa at gmail.com>
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext-package 0.0.1\n"
+"POT-Creation-Date: 2001-12-24 01:30:54+0900\n"
+"PO-Revision-Date: 2005-04-24 17:10+0100\n"
+"Last-Translator: Detlef Reichl <detlef!reichl()gmx!org\n"
+"Language-Team: Detlef Reichl <detlef!reichl()gmx!org\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../hello.rb:7
+msgid "Hello World\n"
+msgstr "Hallo Welt\n"
diff --git a/vendor/gems/gettext-2.1.0/samples/po/de/hello2.po b/vendor/gems/gettext-2.1.0/samples/po/de/hello2.po
new file mode 100644
index 000000000..709f52249
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/de/hello2.po
@@ -0,0 +1,28 @@
+# Hello World 2 -- sample for ruby-gettext-package
+#
+# Copyright (C) Masao Mutoh <mutomasa at gmail.com>
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext-package 0.0.1\n"
+"POT-Creation-Date: 2002-01-01 03:05:08+0900\n"
+"PO-Revision-Date: 2005-04-24 17:10+0100\n"
+"Last-Translator: Detlef Reichl <detlef!reichl()gmx!org\n"
+"Language-Team: Detlef Reichl <detlef!reichl()gmx!org\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: hello2.rb:9
+msgid "World"
+msgstr "Welt"
+
+#: hello2.rb:8
+msgid "One is %{num}\n"
+msgstr "Eins ist %{num}\n"
+
+#: hello2.rb:9
+msgid "Hello %{world}\n"
+msgstr "Hallo %{world}\n"
diff --git a/vendor/gems/gettext-2.1.0/samples/po/de/hello_glade2.po b/vendor/gems/gettext-2.1.0/samples/po/de/hello_glade2.po
new file mode 100644
index 000000000..34994367b
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/de/hello_glade2.po
@@ -0,0 +1,27 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR ORGANIZATION
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2004-07-03 23:38+0900\n"
+"PO-Revision-Date: 2005-04-24 17:10+0100\n"
+"Last-Translator: Detlef Reichl <detlef!reichl()gmx!org\n"
+"Language-Team: Detlef Reichl <detlef!reichl()gmx!org\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
+
+#: hello_glade2.glade:8
+msgid "window1"
+msgstr "Fenster1"
+
+#: hello_glade2.glade:29
+msgid "first line\nsecond line\nthird line"
+msgstr "erste Zeile\nzweite Zeile\ndritte Zeile"
+
+#: hello_glade2.glade:53
+msgid "<Hello world>"
+msgstr "<Hallo Welt>"
diff --git a/vendor/gems/gettext-2.1.0/samples/po/de/hello_gtk.po b/vendor/gems/gettext-2.1.0/samples/po/de/hello_gtk.po
new file mode 100644
index 000000000..042b9efa3
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/de/hello_gtk.po
@@ -0,0 +1,20 @@
+# Hello World for Ruby/GTK -- sample for ruby-gettext-package
+#
+# Copyright (C) Masao Mutoh <mutomasa at gmail.com>
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext-package 0.0.1\n"
+"POT-Creation-Date: 2001-12-24 01:52:10+0900\n"
+"PO-Revision-Date: 2005-04-24 17:10+0100\n"
+"Last-Translator: Detlef Reichl <detlef!reichl()gmx!org\n"
+"Language-Team: Detlef Reichl <detlef!reichl()gmx!org\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../hello_gtk.rb:14
+msgid "hello, gtk world"
+msgstr "Hallo, gtk Welt"
diff --git a/vendor/gems/gettext-2.1.0/samples/po/de/hello_noop.po b/vendor/gems/gettext-2.1.0/samples/po/de/hello_noop.po
new file mode 100644
index 000000000..b7114f122
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/de/hello_noop.po
@@ -0,0 +1,24 @@
+# Hello World noop -- sample for ruby-gettext-package
+#
+# Copyright (C) Masao Mutoh <mutomasa at gmail.com>
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2002-02-21 23:23:08+0900\n"
+"PO-Revision-Date: 2005-04-24 17:10+0100\n"
+"Last-Translator: Detlef Reichl <detlef!reichl()gmx!org\n"
+"Language-Team: Detlef Reichl <detlef!reichl()gmx!org\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: hello_noop.rb:8
+msgid "Hello World"
+msgstr "Hallo Welt"
+
+#: hello_noop.rb:8
+msgid "Hello World2"
+msgstr "Hallo Welt2"
diff --git a/vendor/gems/gettext-2.1.0/samples/po/de/hello_plural.po b/vendor/gems/gettext-2.1.0/samples/po/de/hello_plural.po
new file mode 100644
index 000000000..0dc06f7de
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/de/hello_plural.po
@@ -0,0 +1,25 @@
+# hello_plural.po - sample for plural messages
+#
+# Copyright (C) 2005-2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Detlef Reichl, 2005.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2002-10-21 15:32:15+0900\n"
+"PO-Revision-Date: 2005-04-24 17:10+0100\n"
+"Last-Translator: Detlef Reichl <detlef!reichl()gmx!org\n"
+"Language-Team: Detlef Reichl <detlef!reichl()gmx!org\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n == 1 ? 0 : 1;\n"
+
+#: hello_plural.rb:11
+msgid "There is an apple.\n"
+msgid_plural "There are %{num} apples.\n"
+msgstr[0] "Da ist ein Apfel.\n"
+msgstr[1] "Da sind %{num} Äpfel.\n"
diff --git a/vendor/gems/gettext-2.1.0/samples/po/de/hello_tk.po b/vendor/gems/gettext-2.1.0/samples/po/de/hello_tk.po
new file mode 100644
index 000000000..59128cd09
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/de/hello_tk.po
@@ -0,0 +1,20 @@
+# hello_tk.po - sample for Ruby/TK
+#
+# Copyright (C) 2004 Masao Mutoh
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 0.8.0\n"
+"POT-Creation-Date: 2004-11-05 21:38+0900\n"
+"PO-Revision-Date: 2005-04-24 17:10+0100\n"
+"Last-Translator: Detlef Reichl <detlef!reichl()gmx!org\n"
+"Language-Team: Detlef Reichl <detlef!reichl()gmx!org\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
+
+#: hello_tk.rb:10
+msgid "hello, tk world"
+msgstr "Hallo, tk Welt"
diff --git a/vendor/gems/gettext-2.1.0/samples/po/el/hello.po b/vendor/gems/gettext-2.1.0/samples/po/el/hello.po
new file mode 100644
index 000000000..a7a191b2c
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/el/hello.po
@@ -0,0 +1,23 @@
+# Hello World -- a sample for Ruby-GetText-Package
+#
+# Copyright (C) 2001-2006 Masao Mutoh <mutomasa at gmail.com>
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# damphyr <damphyr@gmx.net>, 2006.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 1.1.1\n"
+"POT-Creation-Date: 2001-12-24 01:30:54+0900\n"
+"PO-Revision-Date: 2006-01-06 19:50+0100\n"
+"Last-Translator: damphyr <damphyr@gmx.net>\n"
+"Language-Team: Greek\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: ../hello.rb:7
+msgid "Hello World\n"
+msgstr "Γειά σου κόσμε\n"
diff --git a/vendor/gems/gettext-2.1.0/samples/po/el/hello2.po b/vendor/gems/gettext-2.1.0/samples/po/el/hello2.po
new file mode 100644
index 000000000..181ad0465
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/el/hello2.po
@@ -0,0 +1,31 @@
+# Hello World 2 -- sample for ruby-gettext-package
+#
+# Copyright (C) 2002-2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# damphyr <damphyr@gmx.net>, 2006.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 1.1.1\n"
+"POT-Creation-Date: 2002-01-01 03:05:08+0900\n"
+"PO-Revision-Date: 2006-01-06 19:50+0100\n"
+"Last-Translator: damphyr <damphyr@gmx.net>\n"
+"Language-Team: Greek\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: hello2.rb:9
+msgid "World"
+msgstr "Κόσμος"
+
+#: hello2.rb:8
+msgid "One is %{num}\n"
+msgstr "Ένα είναι %{num}\n"
+
+#: hello2.rb:9
+msgid "Hello %{world}\n"
+msgstr "Γειά %{world}\n"
diff --git a/vendor/gems/gettext-2.1.0/samples/po/el/hello_glade2.po b/vendor/gems/gettext-2.1.0/samples/po/el/hello_glade2.po
new file mode 100644
index 000000000..bdcfee4f7
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/el/hello_glade2.po
@@ -0,0 +1,31 @@
+# hello_glade2.po - sample for Ruby/Libglade2
+#
+# Copyright (C) 2005,2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# damphyr <damphyr@gmx.net>, 2006.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 1.1.1\n"
+"POT-Creation-Date: 2004-07-03 23:38+0900\n"
+"PO-Revision-Date: 2006-01-06 19:50+0100\n"
+"Last-Translator: damphyr <damphyr@gmx.net>\n"
+"Language-Team: Greek\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: hello_glade2.glade:8
+msgid "window1"
+msgstr "παράθυρο1"
+
+#: hello_glade2.glade:29
+msgid "first line\nsecond line\nthird line"
+msgstr "πρώτη\nγραμμήδεύτερη\nγραμμή\nτρίτη γραμμή"
+
+#: hello_glade2.glade:53
+msgid "<Hello world>"
+msgstr "<Γειά σου Κόσμε>"
diff --git a/vendor/gems/gettext-2.1.0/samples/po/el/hello_gtk.po b/vendor/gems/gettext-2.1.0/samples/po/el/hello_gtk.po
new file mode 100644
index 000000000..1922d1f1b
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/el/hello_gtk.po
@@ -0,0 +1,22 @@
+# Hello World for Ruby/GTK -- sample for ruby-gettext-package
+#
+# Copyright (C) 2005,2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# damphyr <damphyr@gmx.net>, 2006.
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 1.1.1\n"
+"POT-Creation-Date: 2001-12-24 01:52:10+0900\n"
+"PO-Revision-Date: 2006-01-06 19:50+0100\n"
+"Last-Translator: damphyr <damphyr@gmx.net>\n"
+"Language-Team: Greek\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: ../hello_gtk.rb:14
+msgid "hello, gtk world"
+msgstr "Γειά σου κόσμε του gtk"
diff --git a/vendor/gems/gettext-2.1.0/samples/po/el/hello_noop.po b/vendor/gems/gettext-2.1.0/samples/po/el/hello_noop.po
new file mode 100644
index 000000000..9fb96595d
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/el/hello_noop.po
@@ -0,0 +1,27 @@
+# Hello World noop -- sample for ruby-gettext-package
+#
+# Copyright (C) 2002-2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# damphyr <damphyr@gmx.net>, 2006.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext-1.1.1\n"
+"POT-Creation-Date: 2002-02-21 23:23:08+0900\n"
+"PO-Revision-Date: 2006-01-06 19:50+0100\n"
+"Last-Translator: damphyr <damphyr@gmx.net>\n"
+"Language-Team: Greek\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: hello_noop.rb:8
+msgid "Hello World"
+msgstr "Γειά σου κόσμε"
+
+#: hello_noop.rb:8
+msgid "Hello World2"
+msgstr "Γειά σου κόσμε 2"
diff --git a/vendor/gems/gettext-2.1.0/samples/po/el/hello_plural.po b/vendor/gems/gettext-2.1.0/samples/po/el/hello_plural.po
new file mode 100644
index 000000000..824d373c9
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/el/hello_plural.po
@@ -0,0 +1,25 @@
+# hello_plural.po - sample for plural messages
+#
+# Copyright (C) 2002-2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# damphyr <damphyr@gmx.net>, 2006.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 1.6.0\n"
+"POT-Creation-Date: 2002-10-21 15:32:15+0900\n"
+"PO-Revision-Date: 2006-01-06 19:50+0100\n"
+"Last-Translator: damphyr <damphyr@gmx.net>\n"
+"Language-Team: Greek\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: hello_plural.rb:11
+msgid "There is an apple.\n"
+msgid_plural "There are %{num} apples.\n"
+msgstr[0] "Υπάρχει ένα μήλο.\n"
+msgstr[1] "Υπάρχουν %{num} μήλα\n"
diff --git a/vendor/gems/gettext-2.1.0/samples/po/el/hello_tk.po b/vendor/gems/gettext-2.1.0/samples/po/el/hello_tk.po
new file mode 100644
index 000000000..2ac9ae53e
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/el/hello_tk.po
@@ -0,0 +1,23 @@
+# hello_tk.po - sample for Ruby/TK
+#
+# Copyright (C) 2004-2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# damphyr <damphyr@gmx.net>, 2006.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 1.1.1\n"
+"POT-Creation-Date: 2004-11-05 21:38+0900\n"
+"PO-Revision-Date: 2006-01-06 19:50+0100\n"
+"Last-Translator: damphyr <damphyr@gmx.net>\n"
+"Language-Team: Greek\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: hello_tk.rb:10
+msgid "hello, tk world"
+msgstr "Γειά σου κόσμε του tk"
diff --git a/vendor/gems/gettext-2.1.0/samples/po/eo/hello.po b/vendor/gems/gettext-2.1.0/samples/po/eo/hello.po
new file mode 100644
index 000000000..66748e51f
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/eo/hello.po
@@ -0,0 +1,23 @@
+# Hello World -- a sample for Ruby-GetText-Package
+#
+# Copyright (C) 2001-2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Malte Milatz <malte@gmx-topmail.de>, 2006.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 1.1.1\n"
+"POT-Creation-Date: 2001-12-24 01:30:54+0900\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: Malte Milatz <malte@gmx-topmail.de>\n"
+"Language-Team: Esperanto\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../hello.rb:7
+msgid "Hello World\n"
+msgstr "Saluton!\n"
diff --git a/vendor/gems/gettext-2.1.0/samples/po/eo/hello2.po b/vendor/gems/gettext-2.1.0/samples/po/eo/hello2.po
new file mode 100644
index 000000000..9bf93612c
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/eo/hello2.po
@@ -0,0 +1,31 @@
+# Hello World 2 -- sample for ruby-gettext-package
+#
+# Copyright (C) 2002-2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Malte Milatz <malte@gmx-topmail.de>, 2006.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 1.1.1\n"
+"POT-Creation-Date: 2002-01-01 03:05:08+0900\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: Malte Milatz <malte@gmx-topmail.de>\n"
+"Language-Team: Esperanto\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: hello2.rb:9
+msgid "World"
+msgstr "homoj"
+
+#: hello2.rb:8
+msgid "One is %{num}\n"
+msgstr "Unu estas %{num}.\n"
+
+#: hello2.rb:9
+msgid "Hello %{world}\n"
+msgstr "Saluton, %{world}!\n"
diff --git a/vendor/gems/gettext-2.1.0/samples/po/eo/hello_glade2.po b/vendor/gems/gettext-2.1.0/samples/po/eo/hello_glade2.po
new file mode 100644
index 000000000..a3a84e777
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/eo/hello_glade2.po
@@ -0,0 +1,32 @@
+# hello_glade2.po - sample for Ruby/Libglade2
+#
+# Copyright (C) 2005,2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Malte Milatz <malte@gmx-topmail.de>, 2006.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 1.1.1\n"
+"POT-Creation-Date: 2004-07-03 23:38+0900\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: Malte Milatz <malte@gmx-topmail.de>\n"
+"Language-Team: Esperanto\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: hello_glade2.glade:8
+msgid "window1"
+msgstr "fenestro1"
+
+#: hello_glade2.glade:29
+msgid "first line\nsecond line\nthird line"
+msgstr "unua linio\ndua linio\ntria linio"
+
+#: hello_glade2.glade:53
+msgid "<Hello world>"
+msgstr "<Saluton!>"
diff --git a/vendor/gems/gettext-2.1.0/samples/po/eo/hello_gtk.po b/vendor/gems/gettext-2.1.0/samples/po/eo/hello_gtk.po
new file mode 100644
index 000000000..475021206
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/eo/hello_gtk.po
@@ -0,0 +1,23 @@
+# Hello World for Ruby/GTK -- sample for ruby-gettext-package
+#
+# Copyright (C) 2001-2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Malte Milatz <malte@gmx-topmail.de>, 2006.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 1.1.1\n"
+"POT-Creation-Date: 2001-12-24 01:52:10+0900\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: Malte Milatz <malte@gmx-topmail.de>\n"
+"Language-Team: Esperanto\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../hello_gtk.rb:14
+msgid "hello, gtk world"
+msgstr "GTK-an saluton!"
diff --git a/vendor/gems/gettext-2.1.0/samples/po/eo/hello_noop.po b/vendor/gems/gettext-2.1.0/samples/po/eo/hello_noop.po
new file mode 100644
index 000000000..2a43dc392
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/eo/hello_noop.po
@@ -0,0 +1,27 @@
+# Hello World noop -- sample for ruby-gettext-package
+#
+# Copyright (C) 2002-2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Malte Milatz <malte@gmx-topmail.de>, 2006.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 1.1.1\n"
+"POT-Creation-Date: 2002-02-21 23:23:08+0900\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: Malte Milatz <malte@gmx-topmail.de>\n"
+"Language-Team: Esperanto\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: hello_noop.rb:8
+msgid "Hello World"
+msgstr "Saluton!"
+
+#: hello_noop.rb:8
+msgid "Hello World2"
+msgstr "Saluton plifoje!"
diff --git a/vendor/gems/gettext-2.1.0/samples/po/eo/hello_plural.po b/vendor/gems/gettext-2.1.0/samples/po/eo/hello_plural.po
new file mode 100644
index 000000000..3b8bd872b
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/eo/hello_plural.po
@@ -0,0 +1,26 @@
+# hello_plural.po - sample for plural messages
+#
+# Copyright (C) 2002-2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Malte Milatz <malte@gmx-topmail.de>, 2006.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 1.1.1\n"
+"POT-Creation-Date: 2002-10-21 15:32:15+0900\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: Malte Milatz <malte@gmx-topmail.de>\n"
+"Language-Team: Esperanto\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n == 1 ? 0 : 1;\n"
+
+#: hello_plural.rb:11
+msgid "There is an apple.\n"
+msgid_plural "There are %{num} apples.\n"
+msgstr[0] "Jen pomo.\n"
+msgstr[1] "Jen %{num} pomoj.\n"
diff --git a/vendor/gems/gettext-2.1.0/samples/po/eo/hello_tk.po b/vendor/gems/gettext-2.1.0/samples/po/eo/hello_tk.po
new file mode 100644
index 000000000..18b3a7e79
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/eo/hello_tk.po
@@ -0,0 +1,24 @@
+# hello_tk.po - sample for Ruby/TK
+#
+# Copyright (C) 2004 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Malte Milatz <malte@gmx-topmail.de>, 2006.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 1.1.1\n"
+"POT-Creation-Date: 2004-11-05 21:38+0900\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: Malte Milatz <malte@gmx-topmail.de>\n"
+"Language-Team: Esperanto\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: hello_tk.rb:10
+msgid "hello, tk world"
+msgstr "TK-an saluton!"
diff --git a/vendor/gems/gettext-2.1.0/samples/po/es/hello.po b/vendor/gems/gettext-2.1.0/samples/po/es/hello.po
new file mode 100644
index 000000000..78025f3fd
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/es/hello.po
@@ -0,0 +1,21 @@
+# hello.po - sample for GetText._()
+#
+# Copyright (C) 2001-2004 Masao Mutoh
+#
+# David Espada <davinci@escomposlinux.org>, 2004.
+#
+
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext-package 0.0.1\n"
+"POT-Creation-Date: 2004-11-5 10:11:00+0900\n"
+"PO-Revision-Date: 2004-11-05 10:32+0100\n"
+"Last-Translator: David Espada <davinci@escomposlinux.org>\n"
+"Language-Team: Spanish\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../hello.rb:7
+msgid "Hello World\n"
+msgstr "Hola mundo\n"
diff --git a/vendor/gems/gettext-2.1.0/samples/po/es/hello2.po b/vendor/gems/gettext-2.1.0/samples/po/es/hello2.po
new file mode 100644
index 000000000..f29e4cb0e
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/es/hello2.po
@@ -0,0 +1,28 @@
+# hello2.po - sample for GetText._()
+#
+# Copyright (C) 2002-2004 Masao Mutoh
+#
+# David Espada <davinci@escomposlinux.org>, 2004.
+
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext-package 0.0.1\n"
+"POT-Creation-Date: 2004-11-05 10:11:00+0900\n"
+"PO-Revision-Date: 2004-11-05 10:32+0100\n"
+"Last-Translator: David Espada <davinci@escomposlinux.org>\n"
+"Language-Team: Spanish\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: hello2.rb:9
+msgid "World"
+msgstr "Mundo"
+
+#: hello2.rb:8
+msgid "One is %{num}\n"
+msgstr "Uno es %{num}\n"
+
+#: hello2.rb:9
+msgid "Hello %{world}\n"
+msgstr "Hola %{world}\n"
diff --git a/vendor/gems/gettext-2.1.0/samples/po/es/hello_glade2.po b/vendor/gems/gettext-2.1.0/samples/po/es/hello_glade2.po
new file mode 100644
index 000000000..c1fc5f747
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/es/hello_glade2.po
@@ -0,0 +1,28 @@
+# hello_glade2.po - sample for Ruby/Libglade2
+#
+# Copyright (C) 2004 Masao Mutoh
+#
+# David Espada <davinci@escomposlinux.org>, 2004.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 0.8.0\n"
+"POT-Creation-Date: 2004-11-05 10:15+0900\n"
+"PO-Revision-Date: 2004-11-05 10:32+0100\n"
+"Last-Translator: David Espada <davinci@escomposlinux.org\n"
+"Language-Team: Spanish\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: hello_glade2.glade:8
+msgid "window1"
+msgstr "ventana1"
+
+#: hello_glade2.glade:29
+msgid "first line\nsecond line\nthird line"
+msgstr "primera línea\nsegunda línea\ntercera línea"
+
+#: hello_glade2.glade:53
+msgid "<Hello world>"
+msgstr "<Hola mundo>"
diff --git a/vendor/gems/gettext-2.1.0/samples/po/es/hello_gtk.po b/vendor/gems/gettext-2.1.0/samples/po/es/hello_gtk.po
new file mode 100644
index 000000000..91b22e29c
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/es/hello_gtk.po
@@ -0,0 +1,20 @@
+# hell_gtk.po - sample for Ruby/GTK
+#
+# Copyright (C) 2001-2004 Masao Mutoh
+#
+# David Espada <davinci@escomposlinux.org>, 2004.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 0.8.0\n"
+"POT-Creation-Date: 2004-11-05 10:15:00+0900\n"
+"PO-Revision-Date: 2004-11-04 20:49+0100\n"
+"Last-Translator: David Espada <davinci@escomposlinux.org>\n"
+"Language-Team: Spanish\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../hello_gtk.rb:14
+msgid "hello, gtk world"
+msgstr "hola, mundo gtk"
diff --git a/vendor/gems/gettext-2.1.0/samples/po/es/hello_noop.po b/vendor/gems/gettext-2.1.0/samples/po/es/hello_noop.po
new file mode 100644
index 000000000..40156790c
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/es/hello_noop.po
@@ -0,0 +1,24 @@
+# hello_noop.po - sample for GetText.N_().
+#
+# Copyright (C) 2002-2004 Masao Mutoh
+#
+# David Espada <davinci@escomposlinux.org>, 2004.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 0.8.0\n"
+"POT-Creation-Date: 2004-11-05 10:11:00+0900\n"
+"PO-Revision-Date: 2004-11-05 10:32+0100\n"
+"Last-Translator: David Espada <davinci@escomposlinux.org\n"
+"Language-Team: Spanish\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: hello_noop.rb:8
+msgid "Hello World"
+msgstr "Hola Mundo"
+
+#: hello_noop.rb:8
+msgid "Hello World2"
+msgstr "Hola Mundo2"
diff --git a/vendor/gems/gettext-2.1.0/samples/po/es/hello_plural.po b/vendor/gems/gettext-2.1.0/samples/po/es/hello_plural.po
new file mode 100644
index 000000000..3ffb69d0e
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/es/hello_plural.po
@@ -0,0 +1,23 @@
+# hello_plural.po - sample for GetText.n_().
+#
+# Copyright (C) 2002-2006 Masao Mutoh
+#
+# David Espada <davinci at escomposlinux.org>, 2004.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 1.6.0\n"
+"POT-Creation-Date: 2004-11-05 10:11:00+0900\n"
+"PO-Revision-Date: 2004-11-05 10:32+0100\n"
+"Last-Translator: David Espada <davinci at escomposlinux.org>\n"
+"Language-Team: Spanish\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n == 1 ? 0 : 1;\n"
+
+#: hello_plural.rb:11
+msgid "There is an apple.\n"
+msgid_plural "There are %{num} apples.\n"
+msgstr[0] "Hay una manzana.\n"
+msgstr[1] "Hay %{num} manzanas.\n"
diff --git a/vendor/gems/gettext-2.1.0/samples/po/es/hello_tk.po b/vendor/gems/gettext-2.1.0/samples/po/es/hello_tk.po
new file mode 100644
index 000000000..f89f5215a
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/es/hello_tk.po
@@ -0,0 +1,20 @@
+# hello_tk.po - sample for Ruby/TK
+#
+# Copyright (C) 2004 Masao Mutoh
+#
+# David Espada <davinci@escomposlinux.org>, 2004.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 0.8.0\n"
+"POT-Creation-Date: 2004-11-05 21:38+0900\n"
+"PO-Revision-Date: 2004-11-04 20:49+0100\n"
+"Last-Translator: David Espada <davinci@escomposlinux.org>\n"
+"Language-Team: Spanish\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: hello_tk.rb:10
+msgid "hello, tk world"
+msgstr "hola, mundo tk"
diff --git a/vendor/gems/gettext-2.1.0/samples/po/fr/hello.po b/vendor/gems/gettext-2.1.0/samples/po/fr/hello.po
new file mode 100644
index 000000000..ea93f017b
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/fr/hello.po
@@ -0,0 +1,18 @@
+# hello.po - sample for GetText._()
+#
+# Copyright (C) 2004 Laurent Sansonetti <lrz@rubymonks.org>
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext-package 0.8.0\n"
+"POT-Creation-Date: 2001-12-24 01:30:54+0900\n"
+"PO-Revision-Date: 2004-11-04 09:22+0100\n"
+"Last-Translator: Laurent Sansonetti\n"
+"Language-Team: French\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../hello.rb:7
+msgid "Hello World\n"
+msgstr "Bonjour Monde\n"
diff --git a/vendor/gems/gettext-2.1.0/samples/po/fr/hello2.po b/vendor/gems/gettext-2.1.0/samples/po/fr/hello2.po
new file mode 100644
index 000000000..61a56fca3
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/fr/hello2.po
@@ -0,0 +1,26 @@
+# hello2.po - sample for GetText._()
+#
+# Copyright (C) 2004 Laurent Sansonetti <lrz@rubymonks.org>
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext-package 0.8.0\n"
+"POT-Creation-Date: 2002-01-01 03:05:08+0900\n"
+"PO-Revision-Date: 2004-11-04 09:22+0100\n"
+"Last-Translator: Laurent Sansonetti\n"
+"Language-Team: French\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: hello2.rb:9
+msgid "World"
+msgstr "Monde"
+
+#: hello2.rb:8
+msgid "One is %{num}\n"
+msgstr "Le premier est %{num}\n"
+
+#: hello2.rb:9
+msgid "Hello %{world}\n"
+msgstr "Bonjour %{world}\n"
diff --git a/vendor/gems/gettext-2.1.0/samples/po/fr/hello_glade2.po b/vendor/gems/gettext-2.1.0/samples/po/fr/hello_glade2.po
new file mode 100644
index 000000000..841185a68
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/fr/hello_glade2.po
@@ -0,0 +1,27 @@
+# hello_glade2.po - sample for Ruby/Libglade2
+#
+# Copyright (C) 2004 Laurent Sansonetti <lrz@rubymonks.org>
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 0.8.0\n"
+"POT-Creation-Date: 2004-07-03 23:38+0900\n"
+"PO-Revision-Date: 2004-11-04 09:22+0100\n"
+"Last-Translator: Laurent Sansonetti\n"
+"Language-Team: French\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n == 1 ? 0 : 1;\n"
+
+#: hello_glade2.glade:8
+msgid "window1"
+msgstr "fenêtre1"
+
+#: hello_glade2.glade:29
+msgid "first line\nsecond line\nthird line"
+msgstr "première ligne\ndeuxième ligne\ntroisième ligne"
+
+#: hello_glade2.glade:53
+msgid "<Hello world>"
+msgstr "<Bonjour monde>"
diff --git a/vendor/gems/gettext-2.1.0/samples/po/fr/hello_gtk.po b/vendor/gems/gettext-2.1.0/samples/po/fr/hello_gtk.po
new file mode 100644
index 000000000..2e44ef03d
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/fr/hello_gtk.po
@@ -0,0 +1,18 @@
+# hello_gtk.po - sample for Ruby/GTK
+#
+# Copyright (C) 2004 Laurent Sansonetti <lrz@rubymonks.org>
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 0.8.0\n"
+"POT-Creation-Date: 2001-12-24 01:52:10+0900\n"
+"PO-Revision-Date: 2004-11-04 09:22+0100\n"
+"Last-Translator: Laurent Sansonetti\n"
+"Language-Team: French\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../hello_gtk.rb:14
+msgid "hello, gtk world"
+msgstr "bonjour, monde GTK"
diff --git a/vendor/gems/gettext-2.1.0/samples/po/fr/hello_noop.po b/vendor/gems/gettext-2.1.0/samples/po/fr/hello_noop.po
new file mode 100644
index 000000000..8750f1cac
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/fr/hello_noop.po
@@ -0,0 +1,22 @@
+# hello_noop.po - sample for GetText.N_()
+#
+# Copyright (C) 2004 Laurent Sansonetti <lrz@rubymonks.org>
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 0.8.0\n"
+"POT-Creation-Date: 2002-02-21 23:23:08+0900\n"
+"PO-Revision-Date: 2004-11-04 09:22+0100\n"
+"Last-Translator: Laurent Sansonetti\n"
+"Language-Team: French\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: hello_noop.rb:8
+msgid "Hello World"
+msgstr "Bonjour Monde"
+
+#: hello_noop.rb:8
+msgid "Hello World2"
+msgstr "Bonjour Monde2"
diff --git a/vendor/gems/gettext-2.1.0/samples/po/fr/hello_plural.po b/vendor/gems/gettext-2.1.0/samples/po/fr/hello_plural.po
new file mode 100644
index 000000000..773349a65
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/fr/hello_plural.po
@@ -0,0 +1,21 @@
+# hello_plural.po - sample for GetText.n_()
+#
+# Copyright (C) 2004 Laurent Sansonetti <lrz@rubymonks.org>
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 1.6.0\n"
+"POT-Creation-Date: 2002-10-21 15:32:15+0900\n"
+"PO-Revision-Date: 2004-11-04 09:22+0100\n"
+"Last-Translator: Laurent Sansonetti\n"
+"Language-Team: French\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n == 1 ? 0 : 1;\n"
+
+#: hello_plural.rb:11
+msgid "There is an apple.\n"
+msgid_plural "There are %{num} apples.\n"
+msgstr[0] "Il y a une pomme.\n"
+msgstr[1] "Il y a %{num} pommes.\n"
diff --git a/vendor/gems/gettext-2.1.0/samples/po/fr/hello_tk.po b/vendor/gems/gettext-2.1.0/samples/po/fr/hello_tk.po
new file mode 100644
index 000000000..ead774a5e
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/fr/hello_tk.po
@@ -0,0 +1,18 @@
+# hello_tk.po - sample for Ruby/TK
+#
+# Copyright (C) 2004 Laurent Sansonetti <lrz@rubymonks.org>
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 0.8.0\n"
+"POT-Creation-Date: 2002-02-14 00:52:38+0900\n"
+"POT-Creation-Date: 2002-02-14 00:54:43+0900\n"
+"Last-Translator: Laurent Sansonetti\n"
+"Language-Team: French\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: hello_tk.rb:10
+msgid "hello, tk world"
+msgstr "bonjour, monde TK"
diff --git a/vendor/gems/gettext-2.1.0/samples/po/hello.pot b/vendor/gems/gettext-2.1.0/samples/po/hello.pot
new file mode 100644
index 000000000..67da22dc4
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/hello.pot
@@ -0,0 +1,23 @@
+# Hello World -- a sample for Ruby-GetText-Package
+#
+# Copyright (C) 2001-2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 1.1.1\n"
+"POT-Creation-Date: 2001-12-24 01:30:54+0900\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Transfer-Encoding: ENCODING\n"
+
+#: ../hello.rb:7
+msgid "Hello World\n"
+msgstr ""
diff --git a/vendor/gems/gettext-2.1.0/samples/po/hello2.pot b/vendor/gems/gettext-2.1.0/samples/po/hello2.pot
new file mode 100644
index 000000000..32fcbe513
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/hello2.pot
@@ -0,0 +1,31 @@
+# Hello World 2 -- sample for ruby-gettext-package
+#
+# Copyright (C) 2002-2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 1.1.1\n"
+"POT-Creation-Date: 2002-01-01 03:05:08+0900\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Transfer-Encoding: ENCODING\n"
+
+#: hello2.rb:9
+msgid "World"
+msgstr ""
+
+#: hello2.rb:8
+msgid "One is %{num}\n"
+msgstr ""
+
+#: hello2.rb:9
+msgid "Hello %{world}\n"
+msgstr ""
diff --git a/vendor/gems/gettext-2.1.0/samples/po/hello_glade2.pot b/vendor/gems/gettext-2.1.0/samples/po/hello_glade2.pot
new file mode 100644
index 000000000..052f8ef8b
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/hello_glade2.pot
@@ -0,0 +1,32 @@
+# hello_glade2.po - sample for Ruby/Libglade2
+#
+# Copyright (C) 2005,2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 1.1.1\n"
+"POT-Creation-Date: 2004-07-03 23:38+0900\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
+
+#: hello_glade2.glade:8
+msgid "window1"
+msgstr ""
+
+#: hello_glade2.glade:29
+msgid "first line\nsecond line\nthird line"
+msgstr ""
+
+#: hello_glade2.glade:53
+msgid "<Hello world>"
+msgstr ""
diff --git a/vendor/gems/gettext-2.1.0/samples/po/hello_gtk.pot b/vendor/gems/gettext-2.1.0/samples/po/hello_gtk.pot
new file mode 100644
index 000000000..861213a91
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/hello_gtk.pot
@@ -0,0 +1,23 @@
+# Hello World for Ruby/GTK -- sample for ruby-gettext-package
+#
+# Copyright (C) 2001-2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 1.1.1\n"
+"POT-Creation-Date: 2001-12-24 01:52:10+0900\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Transfer-Encoding: ENCODING\n"
+
+#: ../hello_gtk.rb:14
+msgid "hello, gtk world"
+msgstr ""
diff --git a/vendor/gems/gettext-2.1.0/samples/po/hello_noop.pot b/vendor/gems/gettext-2.1.0/samples/po/hello_noop.pot
new file mode 100644
index 000000000..3d560e578
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/hello_noop.pot
@@ -0,0 +1,27 @@
+# Hello World noop -- sample for ruby-gettext-package
+#
+# Copyright (C) 2002-2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 1.1.1\n"
+"POT-Creation-Date: 2002-02-21 23:23:08+0900\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Transfer-Encoding: ENCODING\n"
+
+#: hello_noop.rb:8
+msgid "Hello World"
+msgstr ""
+
+#: hello_noop.rb:8
+msgid "Hello World2"
+msgstr ""
diff --git a/vendor/gems/gettext-2.1.0/samples/po/hello_plural.pot b/vendor/gems/gettext-2.1.0/samples/po/hello_plural.pot
new file mode 100644
index 000000000..e4f72d890
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/hello_plural.pot
@@ -0,0 +1,26 @@
+# hello_plural.po - sample for plural messages
+#
+# Copyright (C) 2002-2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 1.1.1\n"
+"POT-Creation-Date: 2002-10-21 15:32:15+0900\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Transfer-Encoding: ENCODING\n"
+"Plural-Forms: nplurals=2; plural=n == 1 ? 0 : 1;\n"
+
+#: hello_plural.rb:11
+msgid "There is an apple.\n"
+msgid_plural "There are %{num} apples.\n"
+msgstr[0] ""
+msgstr[1] ""
diff --git a/vendor/gems/gettext-2.1.0/samples/po/hello_tk.pot b/vendor/gems/gettext-2.1.0/samples/po/hello_tk.pot
new file mode 100644
index 000000000..18f7f5242
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/hello_tk.pot
@@ -0,0 +1,24 @@
+# hello_tk.po - sample for Ruby/TK
+#
+# Copyright (C) 2004 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 1.1.1\n"
+"POT-Creation-Date: 2004-11-05 21:38+0900\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
+
+#: hello_tk.rb:10
+msgid "hello, tk world"
+msgstr ""
diff --git a/vendor/gems/gettext-2.1.0/samples/po/hr/hello.po b/vendor/gems/gettext-2.1.0/samples/po/hr/hello.po
new file mode 100644
index 000000000..7c0b29894
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/hr/hello.po
@@ -0,0 +1,23 @@
+# translation of hello.po to Croatian
+# Hello World -- a sample for Ruby-GetText-Package
+# Copyright (C) 2001-2006 Masao Mutoh
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Sanjin Sehic <saserr@gmail.com>, 2007.
+msgid ""
+msgstr ""
+"Project-Id-Version: hello\n"
+"POT-Creation-Date: 2001-12-24 01:30:54+0900\n"
+"PO-Revision-Date: 2007-03-20 20:23+0100\n"
+"Last-Translator: Sanjin Sehic <saserr@gmail.com>\n"
+"Language-Team: Croatian <saserr@gmail.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+
+#: ../hello.rb:7
+msgid "Hello World\n"
+msgstr "Zdravo Svijetu\n"
+
diff --git a/vendor/gems/gettext-2.1.0/samples/po/hr/hello2.po b/vendor/gems/gettext-2.1.0/samples/po/hr/hello2.po
new file mode 100644
index 000000000..684009427
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/hr/hello2.po
@@ -0,0 +1,31 @@
+# translation of hello2.po to Croatian
+# Hello World 2 -- sample for ruby-gettext-package
+# Copyright (C) 2002-2006 Masao Mutoh
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Sanjin Sehic <saserr@gmail.com>, 2007.
+msgid ""
+msgstr ""
+"Project-Id-Version: hello2\n"
+"POT-Creation-Date: 2002-01-01 03:05:08+0900\n"
+"PO-Revision-Date: 2007-03-20 20:15+0100\n"
+"Last-Translator: Sanjin Sehic <saserr@gmail.com>\n"
+"Language-Team: Croatian <saserr@gmail.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+
+#: hello2.rb:9
+msgid "World"
+msgstr "Svijetu"
+
+#: hello2.rb:8
+msgid "One is %{num}\n"
+msgstr "Jedan je %{num}\n"
+
+#: hello2.rb:9
+msgid "Hello %{world}\n"
+msgstr "Zdravo %{world}\n"
+
diff --git a/vendor/gems/gettext-2.1.0/samples/po/hr/hello_glade2.po b/vendor/gems/gettext-2.1.0/samples/po/hr/hello_glade2.po
new file mode 100644
index 000000000..b63d3eff9
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/hr/hello_glade2.po
@@ -0,0 +1,31 @@
+# translation of hello_glade2.po to Croatian
+# hello_glade2.po - sample for Ruby/Libglade2
+# Copyright (C) 2005,2006 Masao Mutoh
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Sanjin Sehic <saserr@gmail.com>, 2007.
+msgid ""
+msgstr ""
+"Project-Id-Version: hello_glade2\n"
+"POT-Creation-Date: 2004-07-03 23:38+0900\n"
+"PO-Revision-Date: 2007-03-20 20:18+0100\n"
+"Last-Translator: Sanjin Sehic <saserr@gmail.com>\n"
+"Language-Team: Croatian <saserr@gmail.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#: hello_glade2.glade:8
+msgid "window1"
+msgstr "prozor1"
+
+#: hello_glade2.glade:29
+msgid "first line\nsecond line\nthird line"
+msgstr "prvi red\ndrugi red\ntreći red"
+
+#: hello_glade2.glade:53
+msgid "<Hello world>"
+msgstr "<Zdravo svijetu>"
+
diff --git a/vendor/gems/gettext-2.1.0/samples/po/hr/hello_gtk.po b/vendor/gems/gettext-2.1.0/samples/po/hr/hello_gtk.po
new file mode 100644
index 000000000..3fb55ed5a
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/hr/hello_gtk.po
@@ -0,0 +1,23 @@
+# translation of hello_gtk.po to Croatian
+# Hello World for Ruby/GTK -- sample for ruby-gettext-package
+# Copyright (C) 2001-2006 Masao Mutoh
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Sanjin Sehic <saserr@gmail.com>, 2007.
+msgid ""
+msgstr ""
+"Project-Id-Version: hello_gtk\n"
+"POT-Creation-Date: 2001-12-24 01:52:10+0900\n"
+"PO-Revision-Date: 2007-03-20 20:18+0100\n"
+"Last-Translator: Sanjin Sehic <saserr@gmail.com>\n"
+"Language-Team: Croatian <saserr@gmail.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+
+#: ../hello_gtk.rb:14
+msgid "hello, gtk world"
+msgstr "zdravo, gtk svijetu"
+
diff --git a/vendor/gems/gettext-2.1.0/samples/po/hr/hello_noop.po b/vendor/gems/gettext-2.1.0/samples/po/hr/hello_noop.po
new file mode 100644
index 000000000..54155ea93
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/hr/hello_noop.po
@@ -0,0 +1,27 @@
+# translation of hello_noop.po to Croatian
+# Hello World noop -- sample for ruby-gettext-package
+# Copyright (C) 2002-2006 Masao Mutoh
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Sanjin Sehic <saserr@gmail.com>, 2007.
+msgid ""
+msgstr ""
+"Project-Id-Version: hello_noop\n"
+"POT-Creation-Date: 2002-02-21 23:23:08+0900\n"
+"PO-Revision-Date: 2007-03-20 20:20+0100\n"
+"Last-Translator: Sanjin Sehic <saserr@gmail.com>\n"
+"Language-Team: Croatian <saserr@gmail.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+
+#: hello_noop.rb:8
+msgid "Hello World"
+msgstr "Zdravo Svijetu"
+
+#: hello_noop.rb:8
+msgid "Hello World2"
+msgstr "Zdravo Svijetu2"
+
diff --git a/vendor/gems/gettext-2.1.0/samples/po/hr/hello_plural.po b/vendor/gems/gettext-2.1.0/samples/po/hr/hello_plural.po
new file mode 100644
index 000000000..9a651a5e8
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/hr/hello_plural.po
@@ -0,0 +1,26 @@
+# translation of hello_plural.po to Croatian
+# hello_plural.po - sample for plural messages
+# Copyright (C) 2002-2006 Masao Mutoh
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Sanjin Sehic <saserr@gmail.com>, 2007.
+msgid ""
+msgstr ""
+"Project-Id-Version: hello_plural\n"
+"POT-Creation-Date: 2002-10-21 15:32:15+0900\n"
+"PO-Revision-Date: 2007-03-20 20:22+0100\n"
+"Last-Translator: Sanjin Sehic <saserr@gmail.com>\n"
+"Language-Team: Croatian <saserr@gmail.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#: hello_plural.rb:11
+msgid "There is an apple.\n"
+msgid_plural "There are %{num} apples.\n"
+msgstr[0] "Postoji jabuka.\n"
+msgstr[1] "Postoje %{num} jabuke.\n"
+msgstr[2] "Postoji %{num} jabuka.\n"
+
diff --git a/vendor/gems/gettext-2.1.0/samples/po/hr/hello_tk.po b/vendor/gems/gettext-2.1.0/samples/po/hr/hello_tk.po
new file mode 100644
index 000000000..9196c0ef1
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/hr/hello_tk.po
@@ -0,0 +1,23 @@
+# translation of hello_tk.po to Croatian
+# hello_tk.po - sample for Ruby/TK
+# Copyright (C) 2004 Masao Mutoh
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Sanjin Sehic <saserr@gmail.com>, 2007.
+msgid ""
+msgstr ""
+"Project-Id-Version: hello_tk\n"
+"POT-Creation-Date: 2004-11-05 21:38+0900\n"
+"PO-Revision-Date: 2007-03-20 20:24+0100\n"
+"Last-Translator: Sanjin Sehic <saserr@gmail.com>\n"
+"Language-Team: Croatian <saserr@gmail.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#: hello_tk.rb:10
+msgid "hello, tk world"
+msgstr "zdravo, tk svijetu"
+
diff --git a/vendor/gems/gettext-2.1.0/samples/po/hu/hello.po b/vendor/gems/gettext-2.1.0/samples/po/hu/hello.po
new file mode 100644
index 000000000..4eaf6f90f
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/hu/hello.po
@@ -0,0 +1,22 @@
+# Hello World -- a sample for Ruby-GetText-Package
+#
+# Copyright (C) 2001-2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Tamás Tompa <tompata at gmail.com>, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 1.1.1\n"
+"POT-Creation-Date: 2001-12-24 01:30:54+0900\n"
+"PO-Revision-Date: 2008-01-15 00:00+0900\n"
+"Last-Translator: Tamás Tompa <tompata at gmail.com>\n"
+"Language-Team: Hungarian\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../hello.rb:7
+msgid "Hello World\n"
+msgstr "Hello világ\n"
diff --git a/vendor/gems/gettext-2.1.0/samples/po/hu/hello2.po b/vendor/gems/gettext-2.1.0/samples/po/hu/hello2.po
new file mode 100644
index 000000000..5725aeea7
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/hu/hello2.po
@@ -0,0 +1,30 @@
+# Hello World 2 -- sample for ruby-gettext-package
+#
+# Copyright (C) 2002-2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Tams Tompa <tompata at gmail.com>, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 1.1.1\n"
+"POT-Creation-Date: 2002-01-01 03:05:08+0900\n"
+"PO-Revision-Date: 2008-01-15 00:00+0900\n"
+"Last-Translator: Tams Tompa <tompata at gmail.com>\n"
+"Language-Team: Hungarian\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: hello2.rb:9
+msgid "World"
+msgstr "Vilg"
+
+#: hello2.rb:8
+msgid "One is %{num}\n"
+msgstr "Egy az %{num}\n"
+
+#: hello2.rb:9
+msgid "Hello %{world}\n"
+msgstr "Hello %{world}\n"
diff --git a/vendor/gems/gettext-2.1.0/samples/po/hu/hello_glade2.po b/vendor/gems/gettext-2.1.0/samples/po/hu/hello_glade2.po
new file mode 100644
index 000000000..f03ed0fa2
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/hu/hello_glade2.po
@@ -0,0 +1,31 @@
+# hello_glade2.po - sample for Ruby/Libglade2
+#
+# Copyright (C) 2005,2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Tamás Tompa <tompata at gmail.com>, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 1.1.1\n"
+"POT-Creation-Date: 2004-07-03 23:38+0900\n"
+"PO-Revision-Date: 2008-01-15 00:00+0900\n"
+"Last-Translator: Tamás Tompa <tompata at gmail.com>\n"
+"Language-Team: Hungarian\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: hello_glade2.glade:8
+msgid "window1"
+msgstr "ablak1"
+
+#: hello_glade2.glade:29
+msgid "first line\nsecond line\nthird line"
+msgstr "első sor\nmásodik sor\nharmadik sor"
+
+#: hello_glade2.glade:53
+msgid "<Hello world>"
+msgstr "<Hello világ>"
diff --git a/vendor/gems/gettext-2.1.0/samples/po/hu/hello_gtk.po b/vendor/gems/gettext-2.1.0/samples/po/hu/hello_gtk.po
new file mode 100644
index 000000000..16108ee87
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/hu/hello_gtk.po
@@ -0,0 +1,22 @@
+# Hello World for Ruby/GTK -- sample for ruby-gettext-package
+#
+# Copyright (C) 2001-2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Tamás Tompa <tompata at gmail.com>, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 1.1.1\n"
+"POT-Creation-Date: 2001-12-24 01:52:10+0900\n"
+"PO-Revision-Date: 2008-01-15 00:00+0900\n"
+"Last-Translator: Tamás Tompa <tompata at gmail.com>\n"
+"Language-Team: Hungarian\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../hello_gtk.rb:14
+msgid "hello, gtk world"
+msgstr "hello, gtk világ"
diff --git a/vendor/gems/gettext-2.1.0/samples/po/hu/hello_noop.po b/vendor/gems/gettext-2.1.0/samples/po/hu/hello_noop.po
new file mode 100644
index 000000000..6a71dbc81
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/hu/hello_noop.po
@@ -0,0 +1,26 @@
+# Hello World noop -- sample for ruby-gettext-package
+#
+# Copyright (C) 2002-2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Tamás Tompa <tompata at gmail.com>, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 1.1.1\n"
+"POT-Creation-Date: 2002-02-21 23:23:08+0900\n"
+"PO-Revision-Date: 2008-01-15 00:00+0900\n"
+"Last-Translator: Tamás Tompa <tompata at gmail.com>\n"
+"Language-Team: Hungarian\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: hello_noop.rb:8
+msgid "Hello World"
+msgstr "Hello világ"
+
+#: hello_noop.rb:8
+msgid "Hello World2"
+msgstr "Hello világ 2"
diff --git a/vendor/gems/gettext-2.1.0/samples/po/hu/hello_plural.po b/vendor/gems/gettext-2.1.0/samples/po/hu/hello_plural.po
new file mode 100644
index 000000000..b03a48b67
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/hu/hello_plural.po
@@ -0,0 +1,25 @@
+# hello_plural.po - sample for plural messages
+#
+# Copyright (C) 2002-2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Tamás Tompa <tompata at gmail.com>, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 1.1.1\n"
+"POT-Creation-Date: 2002-10-21 15:32:15+0900\n"
+"PO-Revision-Date: 2008-01-15 00:00+0900\n"
+"Last-Translator: Tamás Tompa <tompata at gmail.com>\n"
+"Language-Team: Hungarian\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n == 1 ? 0 : 1;\n"
+
+#: hello_plural.rb:11
+msgid "There is an apple.\n"
+msgid_plural "There are %{num} apples.\n"
+msgstr[0] "Ez egy alma.\n"
+msgstr[1] "Ez pedig %{num} alma.\n"
diff --git a/vendor/gems/gettext-2.1.0/samples/po/hu/hello_tk.po b/vendor/gems/gettext-2.1.0/samples/po/hu/hello_tk.po
new file mode 100644
index 000000000..a41b17d0d
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/hu/hello_tk.po
@@ -0,0 +1,23 @@
+# hello_tk.po - sample for Ruby/TK
+#
+# Copyright (C) 2004 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Tamás Tompa <tompata at gmail.com>, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 1.1.1\n"
+"POT-Creation-Date: 2004-11-05 21:38+0900\n"
+"PO-Revision-Date: 2008-01-15 00:00+0900\n"
+"Last-Translator: Tamás Tompa <tompata at gmail.com>\n"
+"Language-Team: Hungarian\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: hello_tk.rb:10
+msgid "hello, tk world"
+msgstr "hello, tk világ"
diff --git a/vendor/gems/gettext-2.1.0/samples/po/it/hello.po b/vendor/gems/gettext-2.1.0/samples/po/it/hello.po
new file mode 100644
index 000000000..f00f77c81
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/it/hello.po
@@ -0,0 +1,20 @@
+# Hello World -- a sample for Ruby-GetText-Package
+#
+# Copyright (C) Masao Mutoh <mutomasa at gmail.com>
+# Gabriele Renzi <surrender_it at yahoo.it>, 2005.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext-package 0.0.1\n"
+"POT-Creation-Date: 2002-01-01 03:05:08+0900\n"
+"PO-Revision-Date: 2005-04-24 15:27+0100\n"
+"Last-Translator: Gabriele Renzi <surrender_it at yahoo.it>\n"
+"Language-Team: Gabriele Renzi <surrender_it at yahoo.it>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../hello.rb:7
+msgid "Hello World\n"
+msgstr "Ciao a tutti\n"
diff --git a/vendor/gems/gettext-2.1.0/samples/po/it/hello2.po b/vendor/gems/gettext-2.1.0/samples/po/it/hello2.po
new file mode 100644
index 000000000..2e773a0f7
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/it/hello2.po
@@ -0,0 +1,28 @@
+# Hello World 2 -- sample for ruby-gettext-package
+#
+# Copyright (C) Masao Mutoh <mutomasa at gmail.com>
+# Gabriele Renzi <surrender_it at yahoo.it>, 2005.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext-package 0.0.1\n"
+"POT-Creation-Date: 2002-01-01 03:05:08+0900\n"
+"PO-Revision-Date: 2005-04-24 15:27+0100\n"
+"Last-Translator: Gabriele Renzi <surrender_it at yahoo.it>\n"
+"Language-Team: Gabriele Renzi <surrender_it at yahoo.it>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: hello2.rb:9
+msgid "World"
+msgstr "tutti"
+
+#: hello2.rb:8
+msgid "One is %{num}\n"
+msgstr "Uno è %{num}\n"
+
+#: hello2.rb:9
+msgid "Hello %{world}\n"
+msgstr "Ciao a %{world}\n"
diff --git a/vendor/gems/gettext-2.1.0/samples/po/it/hello_glade2.po b/vendor/gems/gettext-2.1.0/samples/po/it/hello_glade2.po
new file mode 100644
index 000000000..d4d6923aa
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/it/hello_glade2.po
@@ -0,0 +1,28 @@
+# hello_glade2.po - sample for GetText.n_().
+#
+# Copyright (C) 2002-2004 Masao Mutoh
+#
+# Gabriele Renzi <surrender_it at yahoo.it>, 2005.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext-package 0.0.1\n"
+"POT-Creation-Date: 2002-01-01 03:05:08+0900\n"
+"PO-Revision-Date: 2005-04-24 15:27+0100\n"
+"Last-Translator: Gabriele Renzi <surrender_it at yahoo.it>\n"
+"Language-Team: Gabriele Renzi <surrender_it at yahoo.it>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: hello_glade2.glade:8
+msgid "window1"
+msgstr "finestra1"
+
+#: hello_glade2.glade:29
+msgid "first line\nsecond line\nthird line"
+msgstr "prima linea\nseconda linea\nterza linea"
+
+#: hello_glade2.glade:53
+msgid "<Hello world>"
+msgstr "<Ciao a tutti>"
diff --git a/vendor/gems/gettext-2.1.0/samples/po/it/hello_gtk.po b/vendor/gems/gettext-2.1.0/samples/po/it/hello_gtk.po
new file mode 100644
index 000000000..107da59b4
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/it/hello_gtk.po
@@ -0,0 +1,21 @@
+# Hello World for Ruby/GTK -- sample for ruby-gettext-package
+#
+# Copyright (C) Masao Mutoh <mutomasa at gmail.com>
+#
+# Gabriele Renzi <surrender_it at yahoo.it>, 2005.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext-package 0.0.1\n"
+"POT-Creation-Date: 2002-01-01 03:05:08+0900\n"
+"PO-Revision-Date: 2005-04-24 15:27+0100\n"
+"Last-Translator: Gabriele Renzi <surrender_it at yahoo.it>\n"
+"Language-Team: Gabriele Renzi <surrender_it at yahoo.it>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../hello_gtk.rb:14
+msgid "hello, gtk world"
+msgstr "ciao, mondo gtk"
diff --git a/vendor/gems/gettext-2.1.0/samples/po/it/hello_noop.po b/vendor/gems/gettext-2.1.0/samples/po/it/hello_noop.po
new file mode 100644
index 000000000..db9e97d71
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/it/hello_noop.po
@@ -0,0 +1,24 @@
+# Hello World noop -- sample for ruby-gettext-package
+#
+# Copyright (C) Masao Mutoh <mutomasa at gmail.com>
+# Gabriele Renzi <surrender_it at yahoo.it>, 2005.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext-package 0.0.1\n"
+"POT-Creation-Date: 2002-01-01 03:05:08+0900\n"
+"PO-Revision-Date: 2005-04-24 15:27+0100\n"
+"Last-Translator: Gabriele Renzi <surrender_it at yahoo.it>\n"
+"Language-Team: Gabriele Renzi <surrender_it at yahoo.it>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: hello_noop.rb:8
+msgid "Hello World"
+msgstr "Ciao a tutti"
+
+#: hello_noop.rb:8
+msgid "Hello World2"
+msgstr "Ciao a tutti2"
diff --git a/vendor/gems/gettext-2.1.0/samples/po/it/hello_plural.po b/vendor/gems/gettext-2.1.0/samples/po/it/hello_plural.po
new file mode 100644
index 000000000..eab3bb8aa
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/it/hello_plural.po
@@ -0,0 +1,23 @@
+# hello_plural.po - sample for GetText.n_().
+#
+# Copyright (C) 2002-2006 Masao Mutoh
+#
+# Gabriele Renzi <surrender_it at yahoo.it>, 2005.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext-package 1.6.0\n"
+"POT-Creation-Date: 2002-01-01 03:05:08+0900\n"
+"PO-Revision-Date: 2005-04-24 15:27+0100\n"
+"Last-Translator: Gabriele Renzi <surrender_it at yahoo.it>\n"
+"Language-Team: Gabriele Renzi <surrender_it at yahoo.it>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n == 1 ? 0 : 1;\n"
+
+#: hello_plural.rb:11
+msgid "There is an apple.\n"
+msgid_plural "There are %{num} apples.\n"
+msgstr[0] "C'è una mela.\n"
+msgstr[1] "Ci sono %{num} mele.\n"
diff --git a/vendor/gems/gettext-2.1.0/samples/po/it/hello_tk.po b/vendor/gems/gettext-2.1.0/samples/po/it/hello_tk.po
new file mode 100644
index 000000000..737850b7e
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/it/hello_tk.po
@@ -0,0 +1,21 @@
+# hello_tk.po - sample for Ruby/TK
+#
+# Copyright (C) 2004 Masao Mutoh
+#
+# Gabriele Renzi <surrender_it at yahoo.it>, 2005.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext-package 0.0.1\n"
+"POT-Creation-Date: 2002-01-01 03:05:08+0900\n"
+"PO-Revision-Date: 2005-04-24 15:27+0100\n"
+"Last-Translator: Gabriele Renzi <surrender_it at yahoo.it>\n"
+"Language-Team: Gabriele Renzi <surrender_it at yahoo.it>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: hello_tk.rb:10
+msgid "hello, tk world"
+msgstr "ciao, mondo tk"
diff --git a/vendor/gems/gettext-2.1.0/samples/po/ja/hello.po b/vendor/gems/gettext-2.1.0/samples/po/ja/hello.po
new file mode 100644
index 000000000..db3d2a48b
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/ja/hello.po
@@ -0,0 +1,20 @@
+# hello.po - sample for GetText._()
+#
+# Copyright (C) 2001-2004 Masao Mutoh
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 0.8.0\n"
+"POT-Creation-Date: 2001-12-24 01:30:54+0900\n"
+"PO-Revision-Date: 2001-12-24 01:30:54+0900\n"
+"Last-Translator: Masao Mutoh\n"
+"Language-Team: Japanese\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+
+#: ../hello.rb:7
+msgid "Hello World\n"
+msgstr "こんにちわ、世界\n"
diff --git a/vendor/gems/gettext-2.1.0/samples/po/ja/hello2.po b/vendor/gems/gettext-2.1.0/samples/po/ja/hello2.po
new file mode 100644
index 000000000..5048aa3df
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/ja/hello2.po
@@ -0,0 +1,28 @@
+# hello2.po - sample for GetText._()
+#
+# Copyright (C) 2002-2004 Masao Mutoh
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 0.8.0\n"
+"POT-Creation-Date: 2002-01-01 03:05:08+0900\n"
+"PO-Revision-Date: 2002-01-01 03:05:08+0900\n"
+"Last-Translator: Masao Mutoh\n"
+"Language-Team: Japanese\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=euc-jp\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+
+#: hello2.rb:9
+msgid "World"
+msgstr ""
+
+#: hello2.rb:8
+msgid "One is %{num}\n"
+msgstr " %{num}\n"
+
+#: hello2.rb:9
+msgid "Hello %{world}\n"
+msgstr " %{world}\n"
diff --git a/vendor/gems/gettext-2.1.0/samples/po/ja/hello_glade2.po b/vendor/gems/gettext-2.1.0/samples/po/ja/hello_glade2.po
new file mode 100644
index 000000000..831514ff0
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/ja/hello_glade2.po
@@ -0,0 +1,26 @@
+# hello_glade2.po - sample for Ruby/Libglade2
+#
+# Copyright (C) 2004 Masao Mutoh
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 0.8.0\n"
+"POT-Creation-Date: 2004-07-03 23:38+0900\n"
+"PO-Revision-Date: 2004-07-04 00:24+0900\n"
+"Last-Translator: Masao Mutoh\n"
+"Language-Team: Japanese\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: hello_glade2.glade:8
+msgid "window1"
+msgstr "こんにちわ世界 Ruby/Libglade2 テスト"
+
+#: hello_glade2.glade:29
+msgid "first line\nsecond line\nthird line"
+msgstr "1行目\n2行目\n3行目"
+
+#: hello_glade2.glade:53
+msgid "<Hello world>"
+msgstr "<こんにちわ世界>"
diff --git a/vendor/gems/gettext-2.1.0/samples/po/ja/hello_gtk.po b/vendor/gems/gettext-2.1.0/samples/po/ja/hello_gtk.po
new file mode 100644
index 000000000..f2b99397e
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/ja/hello_gtk.po
@@ -0,0 +1,19 @@
+# hello_gtk.po - sample for Ruby/GTK
+#
+# Copyright (C) 2001-2004 Masao Mutoh
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 0.8.0\n"
+"POT-Creation-Date: 2001-12-24 01:52:10+0900\n"
+"PO-Revision-Date: 2001-12-24 01:52:10+0900\n"
+"Last-Translator: Masao Mutoh\n"
+"Language-Team: Japanese\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=euc-jp\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../hello_gtk.rb:14
+msgid "hello, gtk world"
+msgstr "ˤGTK"
diff --git a/vendor/gems/gettext-2.1.0/samples/po/ja/hello_noop.po b/vendor/gems/gettext-2.1.0/samples/po/ja/hello_noop.po
new file mode 100644
index 000000000..c1f1f7589
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/ja/hello_noop.po
@@ -0,0 +1,23 @@
+# hello_noop.po - sample for GetText.N_()
+#
+# Copyright (C) 2002-2004 Masao Mutoh
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 0.8.0\n"
+"POT-Creation-Date: 2002-02-21 23:23:08+0900\n"
+"PO-Revision-Date: 2002-02-21 22:50:00+0900\n"
+"Last-Translator: Masao Mutoh\n"
+"Language-Team: Japanese\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=euc-jp\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: hello_noop.rb:8
+msgid "Hello World"
+msgstr "ˤϡ"
+
+#: hello_noop.rb:8
+msgid "Hello World2"
+msgstr "ˤϡ2"
diff --git a/vendor/gems/gettext-2.1.0/samples/po/ja/hello_plural.po b/vendor/gems/gettext-2.1.0/samples/po/ja/hello_plural.po
new file mode 100644
index 000000000..6f281fe10
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/ja/hello_plural.po
@@ -0,0 +1,21 @@
+# hello_plural.po - sample for GetText.n_()
+#
+# Copyright (C) 2002-2006 Masao Mutoh
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 1.6.0\n"
+"POT-Creation-Date: 2002-10-21 19:32:15+0900\n"
+"PO-Revision-Date: 2002-10-21 19:32:15+0900\n"
+"Last-Translator: Masao Mutoh\n"
+"Language-Team: Japanese\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=Shift_JIS\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: hello_plural.rb:11
+msgid "There is an apple.\n"
+msgid_plural "There are %{num} apples.\n"
+msgstr[0] "񂲂܂B\n"
+msgstr[1] "񂲂%{num}‚܂B\n"
diff --git a/vendor/gems/gettext-2.1.0/samples/po/ja/hello_tk.po b/vendor/gems/gettext-2.1.0/samples/po/ja/hello_tk.po
new file mode 100644
index 000000000..fb2342bb2
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/ja/hello_tk.po
@@ -0,0 +1,19 @@
+# hello_tk.po - sample for Ruby/TK
+#
+# Copyright (C) 2004 Masao Mutoh
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 0.8.0\n"
+"POT-Creation-Date: 2002-02-14 00:52:38+0900\n"
+"POT-Creation-Date: 2002-02-14 00:54:43+0900\n"
+"Last-Translator: Masao Mutoh\n"
+"Language-Team: Japanese\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=euc-jp\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: hello_tk.rb:10
+msgid "hello, tk world"
+msgstr "ˤTK"
diff --git a/vendor/gems/gettext-2.1.0/samples/po/ko/hello.po b/vendor/gems/gettext-2.1.0/samples/po/ko/hello.po
new file mode 100644
index 000000000..f0288b599
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/ko/hello.po
@@ -0,0 +1,18 @@
+# Hello World -- a sample for ruby-gettext package.
+#
+# Copyright (C) Masao Mutoh <mutomasa at gmail.com>
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 0.0.0\n"
+"POT-Creation-Date: 2001-12-24 01:30:54+0900\n"
+"PO-Revision-Date: 2005-12-23 02:00+0900\n"
+"Last-Translator: Gyoung-Yoon Noh <nohmad@gmail.com>\n"
+"Language-Team: Korean\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../hello.rb:7
+msgid "Hello World\n"
+msgstr "안녕 세상\n"
diff --git a/vendor/gems/gettext-2.1.0/samples/po/ko/hello2.po b/vendor/gems/gettext-2.1.0/samples/po/ko/hello2.po
new file mode 100644
index 000000000..3a61accf6
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/ko/hello2.po
@@ -0,0 +1,26 @@
+# Hello World 2 -- a sample for ruby-gettext package.
+#
+# Copyright (C) Masao Mutoh <mutomasa at gmail.com>
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 0.0.0\n"
+"POT-Creation-Date: 2002-01-01 03:05:08+0900\n"
+"PO-Revision-Date: 2005-12-23 02:00+0900\n"
+"Last-Translator: Gyoung-Yoon Noh <nohmad@gmail.com>\n"
+"Language-Team: Korean\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: hello2.rb:9
+msgid "World"
+msgstr "세상"
+
+#: hello2.rb:8
+msgid "One is %{num}\n"
+msgstr "하나는 %{num}\n"
+
+#: hello2.rb:9
+msgid "Hello %{world}\n"
+msgstr "안녕 %{world}\n"
diff --git a/vendor/gems/gettext-2.1.0/samples/po/ko/hello_glade2.po b/vendor/gems/gettext-2.1.0/samples/po/ko/hello_glade2.po
new file mode 100644
index 000000000..6e1ab256a
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/ko/hello_glade2.po
@@ -0,0 +1,29 @@
+# Hello World for Ruby/Glade2 -- a sample for ruby-gettext package.
+#
+# Copyright (C) YEAR ORGANIZATION
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 0.0.0\n"
+"POT-Creation-Date: 2004-07-03 23:38+0900\n"
+"PO-Revision-Date: 2005-12-23 02:00+0900\n"
+"Last-Translator: Gyoung-Yoon Noh <nohmad@gmail.com>\n"
+"Language-Team: Korean\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n == 1 ? 0 : 1;\n"
+
+#: hello_glade2.glade:8
+msgid "window1"
+msgstr "윈도우1"
+
+#: hello_glade2.glade:29
+msgid "first line\nsecond line\nthird line"
+msgstr "첫번째 줄\n두번째 줄\n세번째 줄"
+
+#: hello_glade2.glade:53
+msgid "<Hello world>"
+msgstr "<안녕 세상>"
+
diff --git a/vendor/gems/gettext-2.1.0/samples/po/ko/hello_gtk.po b/vendor/gems/gettext-2.1.0/samples/po/ko/hello_gtk.po
new file mode 100644
index 000000000..e910edf29
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/ko/hello_gtk.po
@@ -0,0 +1,18 @@
+# Hello World for Ruby/GTK -- a sample for ruby-gettext package.
+#
+# Copyright (C) Masao Mutoh <mutomasa at gmail.com>
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 0.0.0\n"
+"POT-Creation-Date: 2001-12-24 01:52:10+0900\n"
+"PO-Revision-Date: 2005-12-23 02:00+0900\n"
+"Last-Translator: Gyoung-Yoon Noh <nohmad@gmail.com>\n"
+"Language-Team: Korean\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../hello_gtk.rb:14
+msgid "hello, gtk world"
+msgstr "안녕, gtk 세상"
diff --git a/vendor/gems/gettext-2.1.0/samples/po/ko/hello_noop.po b/vendor/gems/gettext-2.1.0/samples/po/ko/hello_noop.po
new file mode 100644
index 000000000..468ba1d9d
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/ko/hello_noop.po
@@ -0,0 +1,22 @@
+# Hello World noop -- a sample for ruby-gettext package.
+#
+# Copyright (C) Masao Mutoh <mutomasa at gmail.com>
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 0.0.0\n"
+"POT-Creation-Date: 2002-02-21 23:23:08+0900\n"
+"PO-Revision-Date: 2005-12-23 02:00+0900\n"
+"Last-Translator: Gyoung-Yoon Noh <nohmad@gmail.com>\n"
+"Language-Team: Korean\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: hello_noop.rb:8
+msgid "Hello World"
+msgstr "안녕 세상"
+
+#: hello_noop.rb:8
+msgid "Hello World2"
+msgstr "안녕 세상 2"
diff --git a/vendor/gems/gettext-2.1.0/samples/po/ko/hello_plural.po b/vendor/gems/gettext-2.1.0/samples/po/ko/hello_plural.po
new file mode 100644
index 000000000..ba3dc61ed
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/ko/hello_plural.po
@@ -0,0 +1,25 @@
+# Hello World Pluralization -- a sample for ruby-gettext package.
+#
+# Copyright (C) 2005,2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Gyoung-Yoon Noh, 2005.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 1.6.0\n"
+"POT-Creation-Date: 2002-10-21 15:32:15+0900\n"
+"PO-Revision-Date: 2005-12-23 02:00+0900\n"
+"Last-Translator: Gyoung-Yoon Noh <nohmad at gmail.com>\n"
+"Language-Team: Korean\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n == 1 ? 0 : 1;\n"
+
+#: hello_plural.rb:11
+msgid "There is an apple.\n"
+msgid_plural "There are %{num} apples.\n"
+msgstr[0] "사과 %{num} 개가 있습니다.\n"
+msgstr[1] "사과 %{num} 개가 있습니다.\n"
diff --git a/vendor/gems/gettext-2.1.0/samples/po/ko/hello_tk.po b/vendor/gems/gettext-2.1.0/samples/po/ko/hello_tk.po
new file mode 100644
index 000000000..b6d2213c0
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/ko/hello_tk.po
@@ -0,0 +1,19 @@
+# Hello World for Ruby/Tk -- a sample for ruby-gettext package.
+#
+# Copyright (C) 2004 Masao Mutoh
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 0.8.0\n"
+"POT-Creation-Date: 2004-11-05 21:38+0900\n"
+"PO-Revision-Date: 2005-12-23 02:00+0900\n"
+"Last-Translator: Gyoung-Yoon Noh <nohmad@gmail.com>\n"
+"Language-Team: Korean\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
+
+#: hello_tk.rb:10
+msgid "hello, tk world"
+msgstr "안녕, tk 세상"
diff --git a/vendor/gems/gettext-2.1.0/samples/po/lv/hello.po b/vendor/gems/gettext-2.1.0/samples/po/lv/hello.po
new file mode 100644
index 000000000..728d6a0d2
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/lv/hello.po
@@ -0,0 +1,24 @@
+# Hello World -- a sample for Ruby-GetText-Package
+#
+# Copyright (C) 2001-2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Aivars Akots, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 1.1.1\n"
+"POT-Creation-Date: 2001-12-24 01:30:54+0900\n"
+"PO-Revision-Date: 2008-07-22 08:59+0200\n"
+"Last-Translator: Aivars Akots <aivars.akots@gmail.com>\n"
+"Language-Team: Latvian\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);\n"
+
+#: ../hello.rb:7
+msgid "Hello World\n"
+msgstr "Sveicināta pasaule\n"
+
diff --git a/vendor/gems/gettext-2.1.0/samples/po/lv/hello2.po b/vendor/gems/gettext-2.1.0/samples/po/lv/hello2.po
new file mode 100644
index 000000000..570fade65
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/lv/hello2.po
@@ -0,0 +1,32 @@
+# Hello World 2 -- sample for ruby-gettext-package
+#
+# Copyright (C) 2002-2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Aivars Akots, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 1.1.1\n"
+"POT-Creation-Date: 2002-01-01 03:05:08+0900\n"
+"PO-Revision-Date: 2008-07-22 09:04+0200\n"
+"Last-Translator: Aivars Akots <aivars.akots@gmail.com>\n"
+"Language-Team: Latvian\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);\n"
+
+#: hello2.rb:9
+msgid "World"
+msgstr "Pasaule"
+
+#: hello2.rb:8
+msgid "One is %{num}\n"
+msgstr "Viens ir %{num}\n"
+
+#: hello2.rb:9
+msgid "Hello %{world}\n"
+msgstr "Sveicināta %{world}\n"
+
diff --git a/vendor/gems/gettext-2.1.0/samples/po/lv/hello_glade2.po b/vendor/gems/gettext-2.1.0/samples/po/lv/hello_glade2.po
new file mode 100644
index 000000000..8b30b54ec
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/lv/hello_glade2.po
@@ -0,0 +1,38 @@
+# hello_glade2.po - sample for Ruby/Libglade2
+#
+# Copyright (C) 2005,2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Aivars Akots, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 1.1.1\n"
+"POT-Creation-Date: 2004-07-03 23:38+0900\n"
+"PO-Revision-Date: 2008-07-22 09:04+0200\n"
+"Last-Translator: Aivars Akots <aivars.akots@gmail.com>\n"
+"Language-Team: Latvian\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);\n"
+
+#: hello_glade2.glade:8
+msgid "window1"
+msgstr "logs1"
+
+#: hello_glade2.glade:29
+msgid ""
+"first line\n"
+"second line\n"
+"third line"
+msgstr ""
+"pirmā rinda\n"
+"otrā rinda\n"
+"trešā rinda"
+
+#: hello_glade2.glade:53
+msgid "<Hello world>"
+msgstr "<Sveicināta pasaule>"
+
diff --git a/vendor/gems/gettext-2.1.0/samples/po/lv/hello_gtk.po b/vendor/gems/gettext-2.1.0/samples/po/lv/hello_gtk.po
new file mode 100644
index 000000000..619eeab2e
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/lv/hello_gtk.po
@@ -0,0 +1,24 @@
+# Hello World for Ruby/GTK -- sample for ruby-gettext-package
+#
+# Copyright (C) 2001-2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Aivars Akots, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 1.1.1\n"
+"POT-Creation-Date: 2001-12-24 01:52:10+0900\n"
+"PO-Revision-Date: 2008-07-22 08:56+0200\n"
+"Last-Translator: Aivars Akots <aivars.akots@gmail.com>\n"
+"Language-Team: Latvian\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);\n"
+
+#: ../hello_gtk.rb:14
+msgid "hello, gtk world"
+msgstr "Sveicināta, gtk pasaule"
+
diff --git a/vendor/gems/gettext-2.1.0/samples/po/lv/hello_noop.po b/vendor/gems/gettext-2.1.0/samples/po/lv/hello_noop.po
new file mode 100644
index 000000000..41440b795
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/lv/hello_noop.po
@@ -0,0 +1,28 @@
+# Hello World noop -- sample for ruby-gettext-package
+#
+# Copyright (C) 2002-2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Aivars Akots, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 1.1.1\n"
+"POT-Creation-Date: 2002-02-21 23:23:08+0900\n"
+"PO-Revision-Date: 2008-07-22 09:01+0200\n"
+"Last-Translator: Aivars Akots <aivars.akots@gmail.com>\n"
+"Language-Team: Latvian\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);\n"
+
+#: hello_noop.rb:8
+msgid "Hello World"
+msgstr "Sveicināta pasaule"
+
+#: hello_noop.rb:8
+msgid "Hello World2"
+msgstr "Sveicināta pasaule2"
+
diff --git a/vendor/gems/gettext-2.1.0/samples/po/lv/hello_plural.po b/vendor/gems/gettext-2.1.0/samples/po/lv/hello_plural.po
new file mode 100644
index 000000000..c07f0ea2e
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/lv/hello_plural.po
@@ -0,0 +1,26 @@
+# hello_plural.po - sample for plural messages
+#
+# Copyright (C) 2002-2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Aivars Akots, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 1.1.1\n"
+"POT-Creation-Date: 2002-10-21 15:32:15+0900\n"
+"PO-Revision-Date: 2008-07-22 08:58+0200\n"
+"Last-Translator: Aivars Akots <aivars.akots@gmail.com>\n"
+"Language-Team: Latvian\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n == 1 ? 0 : 1;\n"
+
+#: hello_plural.rb:11
+msgid "There is an apple.\n"
+msgid_plural "There are %{num} apples.\n"
+msgstr[0] "Šeit ir viens ābols.\n"
+msgstr[1] "Šeit ir %{num} āboli.\n"
+
diff --git a/vendor/gems/gettext-2.1.0/samples/po/lv/hello_tk.po b/vendor/gems/gettext-2.1.0/samples/po/lv/hello_tk.po
new file mode 100644
index 000000000..bf319ee80
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/lv/hello_tk.po
@@ -0,0 +1,24 @@
+# hello_tk.po - sample for Ruby/TK
+#
+# Copyright (C) 2004 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Aivars Akots, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 1.1.1\n"
+"POT-Creation-Date: 2004-11-05 21:38+0900\n"
+"PO-Revision-Date: 2008-07-22 08:54+0200\n"
+"Last-Translator: Aivars Akots <aivars.akots@gmail.com>\n"
+"Language-Team: Latvian\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);\n"
+
+#: hello_tk.rb:10
+msgid "hello, tk world"
+msgstr "Sveicināta, tk pasaule"
+
diff --git a/vendor/gems/gettext-2.1.0/samples/po/nb/hello.po b/vendor/gems/gettext-2.1.0/samples/po/nb/hello.po
new file mode 100644
index 000000000..6f0ba0961
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/nb/hello.po
@@ -0,0 +1,23 @@
+# Hello World -- a sample for Ruby-GetText-Package
+# Copyright (C) 2001-2006 Masao Mutoh
+# This file is distributed under the same license as the Ruby-GetText-Package.
+# Runar Ingebrigtsen <runar@mopo.no>, 2008.
+# , fuzzy
+#
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 1.1.1\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2001-12-24 01:30:54+0900\n"
+"PO-Revision-Date: 2008-07-14 16:23+0200\n"
+"Last-Translator: Runar Ingebrigtsen <runar@mopo.no>\n"
+"Language-Team: Norwegian/Bokmaal <i18n-nb@lister.ping.uio.no>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit"
+
+#: ../hello.rb:7
+msgid "Hello World\n"
+msgstr "Smil til verden\n"
+
diff --git a/vendor/gems/gettext-2.1.0/samples/po/nb/hello2.po b/vendor/gems/gettext-2.1.0/samples/po/nb/hello2.po
new file mode 100644
index 000000000..dd857b30c
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/nb/hello2.po
@@ -0,0 +1,31 @@
+# Hello World 2 -- sample for ruby-gettext-package
+# Copyright (C) 2002-2006 Masao Mutoh
+# This file is distributed under the same license as the Ruby-GetText-Package.
+# Runar Ingebrigtsen <runar@mopo.no>, 2008.
+# , fuzzy
+#
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 1.1.1\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2002-01-01 03:05:08+0900\n"
+"PO-Revision-Date: 2008-07-14 16:24+0200\n"
+"Last-Translator: Runar Ingebrigtsen <runar@mopo.no>\n"
+"Language-Team: Norwegian/Bokmaal <i18n-nb@lister.ping.uio.no>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit"
+
+#: hello2.rb:9
+msgid "World"
+msgstr "Verden"
+
+#: hello2.rb:8
+msgid "One is %{num}\n"
+msgstr "En er %{num}\n"
+
+#: hello2.rb:9
+msgid "Hello %{world}\n"
+msgstr "Smil til %{world}\n"
+
diff --git a/vendor/gems/gettext-2.1.0/samples/po/nb/hello_glade2.po b/vendor/gems/gettext-2.1.0/samples/po/nb/hello_glade2.po
new file mode 100644
index 000000000..285cdcebd
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/nb/hello_glade2.po
@@ -0,0 +1,31 @@
+# hello_glade2.po - sample for Ruby/Libglade2
+# Copyright (C) 2005,2006 Masao Mutoh
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Runar Ingebrigtsen <runar@mopo.no>, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 1.1.1\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2004-07-03 23:38+0900\n"
+"PO-Revision-Date: 2008-07-14 16:29+0200\n"
+"Last-Translator: Runar Ingebrigtsen <runar@mopo.no>\n"
+"Language-Team: Norwegian/Bokmaal <i18n-nb@lister.ping.uio.no>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;"
+
+#: hello_glade2.glade:8
+msgid "window1"
+msgstr "vindu1"
+
+#: hello_glade2.glade:29
+msgid "first line\nsecond line\nthird line"
+msgstr "første linje\nandrelinje\ntredje linje"
+
+#: hello_glade2.glade:53
+msgid "<Hello world>"
+msgstr "<Smil til verden>"
+
diff --git a/vendor/gems/gettext-2.1.0/samples/po/nb/hello_gtk.po b/vendor/gems/gettext-2.1.0/samples/po/nb/hello_gtk.po
new file mode 100644
index 000000000..c50e2c02a
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/nb/hello_gtk.po
@@ -0,0 +1,23 @@
+# Hello World for Ruby/GTK -- sample for ruby-gettext-package
+# Copyright (C) 2001-2006 Masao Mutoh
+# This file is distributed under the same license as the Ruby-GetText-Package.
+# Runar Ingebrigtsen <runar@mopo.no>, 2008.
+# , fuzzy
+#
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 1.1.1\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2001-12-24 01:52:10+0900\n"
+"PO-Revision-Date: 2008-07-14 16:29+0200\n"
+"Last-Translator: Runar Ingebrigtsen <runar@mopo.no>\n"
+"Language-Team: Norwegian/Bokmaal <i18n-nb@lister.ping.uio.no>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit"
+
+#: ../hello_gtk.rb:14
+msgid "hello, gtk world"
+msgstr "smil til gtk-verden"
+
diff --git a/vendor/gems/gettext-2.1.0/samples/po/nb/hello_noop.po b/vendor/gems/gettext-2.1.0/samples/po/nb/hello_noop.po
new file mode 100644
index 000000000..20b3e103e
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/nb/hello_noop.po
@@ -0,0 +1,27 @@
+# Hello World noop -- sample for ruby-gettext-package
+# Copyright (C) 2002-2006 Masao Mutoh
+# This file is distributed under the same license as the Ruby-GetText-Package.
+# Runar Ingebrigtsen <runar@mopo.no>, 2008.
+# , fuzzy
+#
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 1.1.1\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2002-02-21 23:23:08+0900\n"
+"PO-Revision-Date: 2008-07-14 16:30+0200\n"
+"Last-Translator: Runar Ingebrigtsen <runar@mopo.no>\n"
+"Language-Team: Norwegian/Bokmaal <i18n-nb@lister.ping.uio.no>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit"
+
+#: hello_noop.rb:8
+msgid "Hello World"
+msgstr "Smil til verden"
+
+#: hello_noop.rb:8
+msgid "Hello World2"
+msgstr "Smil til verden 2"
+
diff --git a/vendor/gems/gettext-2.1.0/samples/po/nb/hello_plural.po b/vendor/gems/gettext-2.1.0/samples/po/nb/hello_plural.po
new file mode 100644
index 000000000..0521cc1c5
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/nb/hello_plural.po
@@ -0,0 +1,26 @@
+# hello_plural.po - sample for plural messages
+# Copyright (C) 2002-2006 Masao Mutoh
+# This file is distributed under the same license as the Ruby-GetText-Package.
+# Runar Ingebrigtsen <runar@mopo.no>, 2008.
+# , fuzzy
+#
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 1.1.1\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2002-10-21 15:32:15+0900\n"
+"PO-Revision-Date: 2008-07-14 16:31+0200\n"
+"Last-Translator: Runar Ingebrigtsen <runar@mopo.no>\n"
+"Language-Team: Norwegian/Bokmaal <i18n-nb@lister.ping.uio.no>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n == 1 ? 0 : 1;"
+
+#: hello_plural.rb:11
+msgid "There is an apple.\n"
+msgid_plural "There are %{num} apples.\n"
+msgstr[0] "Der er et eple.\n"
+msgstr[1] "Der er %{num} epler.\n"
+
diff --git a/vendor/gems/gettext-2.1.0/samples/po/nb/hello_tk.po b/vendor/gems/gettext-2.1.0/samples/po/nb/hello_tk.po
new file mode 100644
index 000000000..0b5551337
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/nb/hello_tk.po
@@ -0,0 +1,24 @@
+# hello_tk.po - sample for Ruby/TK
+# Copyright (C) 2004 Masao Mutoh
+# This file is distributed under the same license as the Ruby-GetText-Package.
+# Runar Ingebrigtsen <runar@mopo.no>, 2008.
+# , fuzzy
+#
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 1.1.1\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2004-11-05 21:38+0900\n"
+"PO-Revision-Date: 2008-07-14 16:31+0200\n"
+"Last-Translator: Runar Ingebrigtsen <runar@mopo.no>\n"
+"Language-Team: Norwegian/Bokmaal <i18n-nb@lister.ping.uio.no>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;"
+
+#: hello_tk.rb:10
+msgid "hello, tk world"
+msgstr "smil til tk-verden"
+
diff --git a/vendor/gems/gettext-2.1.0/samples/po/nl/hello.po b/vendor/gems/gettext-2.1.0/samples/po/nl/hello.po
new file mode 100644
index 000000000..fa53784d2
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/nl/hello.po
@@ -0,0 +1,24 @@
+# Hello World -- a sample for Ruby-GetText-Package
+#
+# Copyright (C) 2005 Masao Mutoh <mutomasa at gmail.com>
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Menno Jonkers <ruby-gettext@jonkers.com>, 2005.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext-package 1.1.0\n"
+"POT-Creation-Date: 2001-12-24 01:30:54+0900\n"
+"PO-Revision-Date: 2005-12-19 21:44+0100\n"
+"Last-Translator: Menno Jonkers <ruby-gettext@jonkers.com>\n"
+"Language-Team: Dutch <ruby_gettext@jonkers.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+
+#: ../hello.rb:7
+msgid "Hello World\n"
+msgstr "Hallo wereld\n"
+
diff --git a/vendor/gems/gettext-2.1.0/samples/po/nl/hello2.po b/vendor/gems/gettext-2.1.0/samples/po/nl/hello2.po
new file mode 100644
index 000000000..fe606987f
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/nl/hello2.po
@@ -0,0 +1,32 @@
+# Hello World 2 -- sample for ruby-gettext-package
+#
+# Copyright (C) 2005 Masao Mutoh <mutomasa at gmail.com>
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Menno Jonkers <ruby-gettext@jonkers.com>, 2005.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext-package 1.1.0\n"
+"POT-Creation-Date: 2002-01-01 03:05:08+0900\n"
+"PO-Revision-Date: 2005-12-19 21:39+0100\n"
+"Last-Translator: Menno Jonkers <ruby-gettext@jonkers.com>\n"
+"Language-Team: Dutch <ruby-gettext@jonkers.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+
+#: hello2.rb:9
+msgid "World"
+msgstr "Wereld"
+
+#: hello2.rb:8
+msgid "One is %{num}\n"
+msgstr "Een is %{num}\n"
+
+#: hello2.rb:9
+msgid "Hello %{world}\n"
+msgstr "Hallo %{world}\n"
+
diff --git a/vendor/gems/gettext-2.1.0/samples/po/nl/hello_glade2.po b/vendor/gems/gettext-2.1.0/samples/po/nl/hello_glade2.po
new file mode 100644
index 000000000..bf0136e3f
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/nl/hello_glade2.po
@@ -0,0 +1,31 @@
+# hello_glade2.po - sample for Ruby/Libglade2
+#
+# Copyright (C) 2005 Masao Mutoh <mutomasa at gmail.com>
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Menno Jonkers <ruby-gettext@jonkers.com>, 2005.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext-package 1.1.0\n"
+"POT-Creation-Date: 2001-12-24 01:30:54+0900\n"
+"PO-Revision-Date: 2005-12-19 21:44+0100\n"
+"Last-Translator: Menno Jonkers <ruby-gettext@jonkers.com>\n"
+"Language-Team: Dutch <ruby_gettext@jonkers.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+
+#: hello_glade2.glade:8
+msgid "window1"
+msgstr "venster1"
+
+#: hello_glade2.glade:29
+msgid "first line\nsecond line\nthird line"
+msgstr "eerste regel\ntweede regel\nderde regel"
+
+#: hello_glade2.glade:53
+msgid "<Hello world>"
+msgstr "<Hallo wereld>"
diff --git a/vendor/gems/gettext-2.1.0/samples/po/nl/hello_gtk.po b/vendor/gems/gettext-2.1.0/samples/po/nl/hello_gtk.po
new file mode 100644
index 000000000..0aa2e5164
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/nl/hello_gtk.po
@@ -0,0 +1,24 @@
+# Hello World for Ruby/GTK -- sample for ruby-gettext-package
+#
+# Copyright (C) 2005 Masao Mutoh <mutomasa at gmail.com>
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Menno Jonkers <ruby-gettext@jonkers.com>, 2005.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext-package 0.0.1\n"
+"POT-Creation-Date: 2001-12-24 01:30:54+0900\n"
+"PO-Revision-Date: 2005-12-19 21:44+0100\n"
+"Last-Translator: Menno Jonkers <ruby-gettext@jonkers.com>\n"
+"Language-Team: Dutch <ruby_gettext@jonkers.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+
+#: ../hello_gtk.rb:14
+msgid "hello, gtk world"
+msgstr "hallo, gtk-wereld"
diff --git a/vendor/gems/gettext-2.1.0/samples/po/nl/hello_noop.po b/vendor/gems/gettext-2.1.0/samples/po/nl/hello_noop.po
new file mode 100644
index 000000000..e0798325e
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/nl/hello_noop.po
@@ -0,0 +1,28 @@
+# Hello World noop -- sample for ruby-gettext-package
+#
+# Copyright (C) 2005 Masao Mutoh <mutomasa at gmail.com>
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Menno Jonkers <ruby-gettext@jonkers.com>, 2005.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext-package 1.1.0\n"
+"POT-Creation-Date: 2001-12-24 01:30:54+0900\n"
+"PO-Revision-Date: 2005-12-19 21:44+0100\n"
+"Last-Translator: Menno Jonkers <ruby-gettext@jonkers.com>\n"
+"Language-Team: Dutch <ruby_gettext@jonkers.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+
+#: hello_noop.rb:8
+msgid "Hello World"
+msgstr "Hallo wereld"
+
+#: hello_noop.rb:8
+msgid "Hello World2"
+msgstr "Hallo wereld2"
diff --git a/vendor/gems/gettext-2.1.0/samples/po/nl/hello_plural.po b/vendor/gems/gettext-2.1.0/samples/po/nl/hello_plural.po
new file mode 100644
index 000000000..5089780aa
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/nl/hello_plural.po
@@ -0,0 +1,25 @@
+# SOME DESCRIPTIVE TITLE.
+#
+# Copyright (C) 2005,2006 Masao Mutoh <mutomasa at gmail.com>
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Menno Jonkers <ruby-gettext at jonkers.com>, 2005.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext-package 1.6.0\n"
+"POT-Creation-Date: 2001-12-24 01:30:54+0900\n"
+"PO-Revision-Date: 2005-12-19 21:44+0100\n"
+"Last-Translator: Menno Jonkers <ruby-gettext@jonkers.com>\n"
+"Language-Team: Dutch <ruby_gettext at jonkers.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+
+#: hello_plural.rb:11
+msgid "There is an apple.\n"
+msgid_plural "There are %{num} apples.\n"
+msgstr[0] "Er is een appel.\n"
+msgstr[1] "Er zijn %{num} appels.\n"
diff --git a/vendor/gems/gettext-2.1.0/samples/po/nl/hello_tk.po b/vendor/gems/gettext-2.1.0/samples/po/nl/hello_tk.po
new file mode 100644
index 000000000..08a10d984
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/nl/hello_tk.po
@@ -0,0 +1,24 @@
+# hello_tk.po - sample for Ruby/TK
+#
+# Copyright (C) 2004 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Menno Jonkers <ruby-gettext@jonkers.com>, 2005.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext-package 0.0.1\n"
+"POT-Creation-Date: 2001-12-24 01:30:54+0900\n"
+"PO-Revision-Date: 2005-12-19 21:44+0100\n"
+"Last-Translator: Menno Jonkers <ruby-gettext@jonkers.com>\n"
+"Language-Team: Dutch <ruby_gettext@jonkers.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+
+#: hello_tk.rb:10
+msgid "hello, tk world"
+msgstr "hallo, tk-wereld"
diff --git a/vendor/gems/gettext-2.1.0/samples/po/pt_BR/hello.po b/vendor/gems/gettext-2.1.0/samples/po/pt_BR/hello.po
new file mode 100644
index 000000000..d2a2ebc8f
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/pt_BR/hello.po
@@ -0,0 +1,21 @@
+# hello.po - sample for GetText._()
+#
+# Copyright (C) 2001-2004 Masao Mutoh
+#
+# Joao Pedrosa <joaopedrosa@gmail.com>, 2004, 2005.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 1.1.0\n"
+"POT-Creation-Date: 2005-12-17 14:56+0900\n"
+"PO-Revision-Date: 2005-12-17 10:12-0300\n"
+"Last-Translator: Joao Pedrosa <joaopedrosa@gmail.com>\n"
+"Language-Team: Portuguese(Brazil)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: ../hello.rb:7
+msgid "Hello World\n"
+msgstr "Olá, mundo\n"
diff --git a/vendor/gems/gettext-2.1.0/samples/po/pt_BR/hello2.po b/vendor/gems/gettext-2.1.0/samples/po/pt_BR/hello2.po
new file mode 100644
index 000000000..cb8005a31
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/pt_BR/hello2.po
@@ -0,0 +1,29 @@
+# hello2.po - sample for GetText._()
+#
+# Copyright (C) 2002-2004 Masao Mutoh
+#
+# Joao Pedrosa <joaopedrosa@gmail.com>, 2004, 2005.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 1.1.0\n"
+"POT-Creation-Date: 2005-12-17 14:56+0900\n"
+"PO-Revision-Date: 2005-12-17 10:12-0300\n"
+"Last-Translator: Joao Pedrosa <joaopedrosa@gmail.com>\n"
+"Language-Team: Portuguese(Brazil)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: hello2.rb:9
+msgid "World"
+msgstr "Mundo"
+
+#: hello2.rb:8
+msgid "One is %{num}\n"
+msgstr "Um é %{num}\n"
+
+#: hello2.rb:9
+msgid "Hello %{world}\n"
+msgstr "Olá, %{world}\n"
diff --git a/vendor/gems/gettext-2.1.0/samples/po/pt_BR/hello_glade2.po b/vendor/gems/gettext-2.1.0/samples/po/pt_BR/hello_glade2.po
new file mode 100644
index 000000000..ae080f067
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/pt_BR/hello_glade2.po
@@ -0,0 +1,29 @@
+# hello_glade2.po - sample for Ruby/Libglade2
+#
+# Copyright (C) 2004 Masao Mutoh
+#
+# Joao Pedrosa <joaopedrosa@gmail.com>, 2004, 2005.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 1.1.0\n"
+"POT-Creation-Date: 2005-12-17 14:56+0900\n"
+"PO-Revision-Date: 2005-12-17 10:12-0300\n"
+"Last-Translator: Joao Pedrosa <joaopedrosa@gmail.com>\n"
+"Language-Team: Portuguese(Brazil)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: hello_glade2.glade:8
+msgid "window1"
+msgstr "Janela1"
+
+#: hello_glade2.glade:29
+msgid "first line\nsecond line\nthird line"
+msgstr "primeira linha\nsegunda linha\nterceira linha"
+
+#: hello_glade2.glade:53
+msgid "<Hello world>"
+msgstr "<Olá, mundo>"
diff --git a/vendor/gems/gettext-2.1.0/samples/po/pt_BR/hello_gtk.po b/vendor/gems/gettext-2.1.0/samples/po/pt_BR/hello_gtk.po
new file mode 100644
index 000000000..b27aa75e8
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/pt_BR/hello_gtk.po
@@ -0,0 +1,21 @@
+# hellgtk.po - sample for Ruby/GTK
+#
+# Copyright (C) 2001-2004 Masao Mutoh
+#
+# Joao Pedrosa <joaopedrosa@gmail.com>, 2004, 2005.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 1.1.0\n"
+"POT-Creation-Date: 2005-12-17 14:56+0900\n"
+"PO-Revision-Date: 2005-12-17 10:12-0300\n"
+"Last-Translator: Joao Pedrosa <joaopedrosa@gmail.com>\n"
+"Language-Team: Portuguese(Brazil)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: ../hello_gtk.rb:14
+msgid "hello, gtk world"
+msgstr "Olá, mundo de gtk"
diff --git a/vendor/gems/gettext-2.1.0/samples/po/pt_BR/hello_noop.po b/vendor/gems/gettext-2.1.0/samples/po/pt_BR/hello_noop.po
new file mode 100644
index 000000000..c4183faca
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/pt_BR/hello_noop.po
@@ -0,0 +1,25 @@
+# hello_noop.po - sample for GetText.N_().
+#
+# Copyright (C) 2002-2004 Masao Mutoh
+#
+# Joao Pedrosa <joaopedrosa@gmail.com>, 2004, 2005.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 1.1.0\n"
+"POT-Creation-Date: 2005-12-17 14:56+0900\n"
+"PO-Revision-Date: 2005-12-17 10:12-0300\n"
+"Last-Translator: Joao Pedrosa <joaopedrosa@gmail.com>\n"
+"Language-Team: Portuguese(Brazil)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: hello_noop.rb:8
+msgid "Hello World"
+msgstr "Olá, mundo"
+
+#: hello_noop.rb:8
+msgid "Hello World2"
+msgstr "Olá, mundo2"
diff --git a/vendor/gems/gettext-2.1.0/samples/po/pt_BR/hello_plural.po b/vendor/gems/gettext-2.1.0/samples/po/pt_BR/hello_plural.po
new file mode 100644
index 000000000..01bb0b996
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/pt_BR/hello_plural.po
@@ -0,0 +1,23 @@
+# hello_plural.po - sample for GetText.n_().
+#
+# Copyright (C) 2002-2006 Masao Mutoh
+#
+# Joao Pedrosa <joaopedrosa at gmail.com>, 2004, 2005.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 1.6.0\n"
+"POT-Creation-Date: 2005-12-17 14:56+0900\n"
+"PO-Revision-Date: 2005-12-17 10:12-0300\n"
+"Last-Translator: Joao Pedrosa <joaopedrosa at gmail.com>\n"
+"Language-Team: Portuguese(Brazil)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: hello_plural.rb:11
+msgid "There is an apple.\n"
+msgid_plural "There are %{num} apples.\n"
+msgstr[0] "Existe uma maçã.\n"
+msgstr[1] "Existem %{num} maçãs.\n"
diff --git a/vendor/gems/gettext-2.1.0/samples/po/pt_BR/hello_tk.po b/vendor/gems/gettext-2.1.0/samples/po/pt_BR/hello_tk.po
new file mode 100644
index 000000000..b8dff9495
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/pt_BR/hello_tk.po
@@ -0,0 +1,21 @@
+# helltk.po - sample for Ruby/GTK
+#
+# Copyright (C) 2001-2004 Masao Mutoh
+#
+# Joao Pedrosa <joaopedrosa@gmail.com>, 2004, 2005.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 1.1.0\n"
+"POT-Creation-Date: 2005-12-17 14:56+0900\n"
+"PO-Revision-Date: 2005-12-17 10:12-0300\n"
+"Last-Translator: Joao Pedrosa <joaopedrosa@gmail.com>\n"
+"Language-Team: Portuguese(Brazil)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: ../hellogtk.rb:14
+msgid "hello, gtk world"
+msgstr "Olá, mundo de gtk"
diff --git a/vendor/gems/gettext-2.1.0/samples/po/ru/hello.po b/vendor/gems/gettext-2.1.0/samples/po/ru/hello.po
new file mode 100644
index 000000000..5ec62e296
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/ru/hello.po
@@ -0,0 +1,22 @@
+# translation of hello.po to Russian
+# Hello World -- a sample for Ruby-GetText-Package
+# Copyright (C) 2001-2006 Masao Mutoh#
+# This file is distributed under the same license as the Ruby-GetText-Package.#
+# Yuri Kozlov <kozlov.y@gmail.com>, 2006.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 1.1.1\n"
+"POT-Creation-Date: 2001-12-24 01:30:54+0900\n"
+"PO-Revision-Date: 2006-04-17 20:44+0300\n"
+"Last-Translator: Yuri Kozlov <kozlov.y@gmail.com>\n"
+"Language-Team: Russian <debian-l10n-russian@lists.debian.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.9.1\n"
+
+#: ../hello.rb:7
+msgid "Hello World\n"
+msgstr "Здравствуй, мир\n"
+
diff --git a/vendor/gems/gettext-2.1.0/samples/po/ru/hello2.po b/vendor/gems/gettext-2.1.0/samples/po/ru/hello2.po
new file mode 100644
index 000000000..32d623d0e
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/ru/hello2.po
@@ -0,0 +1,30 @@
+# translation of hello2.po to Russian
+# Hello World 2 -- sample for ruby-gettext-package
+# Copyright (C) 2002-2006 Masao Mutoh#
+# This file is distributed under the same license as the Ruby-GetText-Package.#
+# Yuri Kozlov <kozlov.y@gmail.com>, 2006.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 1.1.1\n"
+"POT-Creation-Date: 2002-01-01 03:05:08+0900\n"
+"PO-Revision-Date: 2006-04-17 20:15+0300\n"
+"Last-Translator: Yuri Kozlov <kozlov.y@gmail.com>\n"
+"Language-Team: Russian <debian-l10n-russian@lists.debian.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.9.1\n"
+
+#: hello2.rb:9
+msgid "World"
+msgstr "мир"
+
+#: hello2.rb:8
+msgid "One is %{num}\n"
+msgstr "Один пишется как %{num}\n"
+
+#: hello2.rb:9
+msgid "Hello %{world}\n"
+msgstr "Здравствуй %{world}\n"
+
diff --git a/vendor/gems/gettext-2.1.0/samples/po/ru/hello_glade2.po b/vendor/gems/gettext-2.1.0/samples/po/ru/hello_glade2.po
new file mode 100644
index 000000000..8bb4fca05
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/ru/hello_glade2.po
@@ -0,0 +1,30 @@
+# translation of hello_glade2.po to Russian
+# hello_glade2.po - sample for Ruby/Libglade2
+# Copyright (C) 2005,2006 Masao Mutoh#
+# This file is distributed under the same license as the Ruby-GetText-Package.#
+# Yuri Kozlov <kozlov.y@gmail.com>, 2006.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 1.1.1\n"
+"POT-Creation-Date: 2004-07-03 23:38+0900\n"
+"PO-Revision-Date: 2006-04-17 20:27+0300\n"
+"Last-Translator: Yuri Kozlov <kozlov.y@gmail.com>\n"
+"Language-Team: Russian <debian-l10n-russian@lists.debian.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.9.1\n"
+
+#: hello_glade2.glade:8
+msgid "window1"
+msgstr "окно1"
+
+#: hello_glade2.glade:29
+msgid "first line\nsecond line\nthird line"
+msgstr "первая строка\nвторая строка\nтретья строка"
+
+#: hello_glade2.glade:53
+msgid "<Hello world>"
+msgstr "<Здравствуй мир>"
+
diff --git a/vendor/gems/gettext-2.1.0/samples/po/ru/hello_gtk.po b/vendor/gems/gettext-2.1.0/samples/po/ru/hello_gtk.po
new file mode 100644
index 000000000..d0e034091
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/ru/hello_gtk.po
@@ -0,0 +1,22 @@
+# translation of hello_gtk.po to Russian
+# Hello World for Ruby/GTK -- sample for ruby-gettext-package
+# Copyright (C) 2001-2006 Masao Mutoh <mutomasa at gmail.com>#
+# This file is distributed under the same license as the Ruby-GetText-Package.#
+# Yuri Kozlov <kozlov.y@gmail.com>, 2006.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 1.1.1\n"
+"POT-Creation-Date: 2001-12-24 01:52:10+0900\n"
+"PO-Revision-Date: 2006-04-17 20:28+0300\n"
+"Last-Translator: Yuri Kozlov <kozlov.y@gmail.com>\n"
+"Language-Team: Russian <debian-l10n-russian@lists.debian.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.9.1\n"
+
+#: ../hello_gtk.rb:14
+msgid "hello, gtk world"
+msgstr "Здравствуй, мир gtk"
+
diff --git a/vendor/gems/gettext-2.1.0/samples/po/ru/hello_noop.po b/vendor/gems/gettext-2.1.0/samples/po/ru/hello_noop.po
new file mode 100644
index 000000000..96594b7ac
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/ru/hello_noop.po
@@ -0,0 +1,26 @@
+# translation of hello_noop.po to Russian
+# Hello World noop -- sample for ruby-gettext-package
+# Copyright (C) 2002-2006 Masao Mutoh#
+# This file is distributed under the same license as the Ruby-GetText-Package.#
+# Yuri Kozlov <kozlov.y@gmail.com>, 2006.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 1.1.1\n"
+"POT-Creation-Date: 2002-02-21 23:23:08+0900\n"
+"PO-Revision-Date: 2006-04-17 20:43+0300\n"
+"Last-Translator: Yuri Kozlov <kozlov.y@gmail.com>\n"
+"Language-Team: Russian <debian-l10n-russian@lists.debian.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.9.1\n"
+
+#: hello_noop.rb:8
+msgid "Hello World"
+msgstr "Здравствуй, мир"
+
+#: hello_noop.rb:8
+msgid "Hello World2"
+msgstr "Здравствуй, мир2"
+
diff --git a/vendor/gems/gettext-2.1.0/samples/po/ru/hello_plural.po b/vendor/gems/gettext-2.1.0/samples/po/ru/hello_plural.po
new file mode 100644
index 000000000..bfeac89db
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/ru/hello_plural.po
@@ -0,0 +1,28 @@
+# translation of hello_plural.po to Russian
+# hello_plural.po - sample for plural messages
+#
+# Copyright (C) 2002-2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Yuri Kozlov <kozlov.y@gmail.com>, 2006.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 1.6.0\n"
+"POT-Creation-Date: 2002-10-21 15:32:15+0900\n"
+"PO-Revision-Date: 2006-04-18 19:27+0300\n"
+"Last-Translator: Yuri Kozlov <kozlov.y at gmail.com>\n"
+"Language-Team: Russian <debian-l10n-russian at lists.debian.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n == 1 ? 0 : 1;\n"
+"X-Generator: KBabel 1.9.1\n"
+
+#: hello_plural.rb:11
+msgid "There is an apple.\n"
+msgid_plural "There are %{num} apples.\n"
+msgstr[0] "Вот яблоко.\n"
+msgstr[1] "Вот %{num} яблок.\n"
+
diff --git a/vendor/gems/gettext-2.1.0/samples/po/ru/hello_tk.po b/vendor/gems/gettext-2.1.0/samples/po/ru/hello_tk.po
new file mode 100644
index 000000000..5ee57b209
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/ru/hello_tk.po
@@ -0,0 +1,22 @@
+# translation of hello_tk.po to Russian
+# hello_tk.po - sample for Ruby/TK
+# Copyright (C) 2004 Masao Mutoh#
+# This file is distributed under the same license as the Ruby-GetText-Package.#
+# Yuri Kozlov <kozlov.y@gmail.com>, 2006.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 1.1.1\n"
+"POT-Creation-Date: 2004-11-05 21:38+0900\n"
+"PO-Revision-Date: 2006-04-17 20:45+0300\n"
+"Last-Translator: Yuri Kozlov <kozlov.y@gmail.com>\n"
+"Language-Team: Russian <debian-l10n-russian@lists.debian.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.9.1\n"
+
+#: hello_tk.rb:10
+msgid "hello, tk world"
+msgstr "Здравствуй, мир tk"
+
diff --git a/vendor/gems/gettext-2.1.0/samples/po/sr/hello.po b/vendor/gems/gettext-2.1.0/samples/po/sr/hello.po
new file mode 100644
index 000000000..70d02f44c
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/sr/hello.po
@@ -0,0 +1,22 @@
+# Hello World -- a sample for Ruby-GetText-Package
+#
+# Copyright (C) 2001-2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Slobodan Paunović <slobodan.paunovic at gmail.com>, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 1.1.1\n"
+"POT-Creation-Date: 2001-12-24 01:30:54+0900\n"
+"PO-Revision-Date: 2008-06-05 23:09+0200\n"
+"Last-Translator: Slobodan Paunović <slobodan.paunovic at gmail.com>\n"
+"Language-Team: Serbian\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../hello.rb:7
+msgid "Hello World\n"
+msgstr "Здраво свете\n"
diff --git a/vendor/gems/gettext-2.1.0/samples/po/sr/hello2.po b/vendor/gems/gettext-2.1.0/samples/po/sr/hello2.po
new file mode 100644
index 000000000..5dce510c8
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/sr/hello2.po
@@ -0,0 +1,30 @@
+# Hello World 2 -- sample for ruby-gettext-package
+#
+# Copyright (C) 2002-2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Slobodan Paunović <slobodan.paunovic at gmail.com>, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 1.1.1\n"
+"POT-Creation-Date: 2002-01-01 03:05:08+0900\n"
+"PO-Revision-Date: 2008-06-05 23:04+0200\n"
+"Last-Translator: Slobodan Paunović <slobodan.paunovic at gmail.com>\n"
+"Language-Team: Serbian\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: hello2.rb:9
+msgid "World"
+msgstr "свет"
+
+#: hello2.rb:8
+msgid "One is %{num}\n"
+msgstr "Један је %{num}\n"
+
+#: hello2.rb:9
+msgid "Hello %{world}\n"
+msgstr "Здраво %{world}\n"
diff --git a/vendor/gems/gettext-2.1.0/samples/po/sr/hello_glade2.po b/vendor/gems/gettext-2.1.0/samples/po/sr/hello_glade2.po
new file mode 100644
index 000000000..08b1fb2a2
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/sr/hello_glade2.po
@@ -0,0 +1,32 @@
+# hello_glade2.po - sample for Ruby/Libglade2
+#
+# Copyright (C) 2005,2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Slobodan Paunović <slobodan.paunovic at gmail.com>, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 1.1.1\n"
+"POT-Creation-Date: 2004-07-03 23:38+0900\n"
+"PO-Revision-Date: 2008-06-05 23:07+0200\n"
+"Last-Translator: Slobodan Paunović <slobodan.paunovic at gmail.com>\n"
+"Language-Team: Serbian\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%"
+"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+
+#: hello_glade2.glade:8
+msgid "window1"
+msgstr "прозор1"
+
+#: hello_glade2.glade:29
+msgid "first line\nsecond line\nthird line"
+msgstr "прва линија\nдруга линија\nтрећа линија"
+
+#: hello_glade2.glade:53
+msgid "<Hello world>"
+msgstr "<Здраво свете>"
diff --git a/vendor/gems/gettext-2.1.0/samples/po/sr/hello_gtk.po b/vendor/gems/gettext-2.1.0/samples/po/sr/hello_gtk.po
new file mode 100644
index 000000000..e41c71a1f
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/sr/hello_gtk.po
@@ -0,0 +1,22 @@
+# Hello World for Ruby/GTK -- sample for ruby-gettext-package
+#
+# Copyright (C) 2001-2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Slobodan Paunović <slobodan.paunovic at gmail.com>, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 1.1.1\n"
+"POT-Creation-Date: 2001-12-24 01:52:10+0900\n"
+"PO-Revision-Date: 2008-06-05 23:08+0200\n"
+"Last-Translator: Slobodan Paunović <slobodan.paunovic at gmail.com>\n"
+"Language-Team: Serbian\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../hello_gtk.rb:14
+msgid "hello, gtk world"
+msgstr "здраво, gtk свете"
diff --git a/vendor/gems/gettext-2.1.0/samples/po/sr/hello_noop.po b/vendor/gems/gettext-2.1.0/samples/po/sr/hello_noop.po
new file mode 100644
index 000000000..6c1c89160
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/sr/hello_noop.po
@@ -0,0 +1,26 @@
+# Hello World noop -- sample for ruby-gettext-package
+#
+# Copyright (C) 2002-2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Slobodan Paunović <slobodan.paunovic at gmail.com>, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 1.1.1\n"
+"POT-Creation-Date: 2002-02-21 23:23:08+0900\n"
+"PO-Revision-Date: 2008-06-05 23:08+0200\n"
+"Last-Translator: Slobodan Paunović <slobodan.paunovic at gmail.com>\n"
+"Language-Team: Serbian\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: hello_noop.rb:8
+msgid "Hello World"
+msgstr "Здраво свете"
+
+#: hello_noop.rb:8
+msgid "Hello World2"
+msgstr "Здраво свете2"
diff --git a/vendor/gems/gettext-2.1.0/samples/po/sr/hello_plural.po b/vendor/gems/gettext-2.1.0/samples/po/sr/hello_plural.po
new file mode 100644
index 000000000..0966461ec
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/sr/hello_plural.po
@@ -0,0 +1,26 @@
+# hello_plural.po - sample for plural messages
+#
+# Copyright (C) 2002-2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Slobodan Paunović <slobodan.paunovic at gmail.com>, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 1.1.1\n"
+"POT-Creation-Date: 2002-10-21 15:32:15+0900\n"
+"PO-Revision-Date: 2008-06-05 23:09+0200\n"
+"Last-Translator: Slobodan Paunović <slobodan.paunovic at gmail.com>\n"
+"Language-Team: Serbian\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%"
+"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+
+#: hello_plural.rb:11
+msgid "There is an apple.\n"
+msgid_plural "There are %{num} apples.\n"
+msgstr[0] "Има једна јабука.\n"
+msgstr[1] "Има %{num} јабука.\n"
diff --git a/vendor/gems/gettext-2.1.0/samples/po/sr/hello_tk.po b/vendor/gems/gettext-2.1.0/samples/po/sr/hello_tk.po
new file mode 100644
index 000000000..0f2db4ccc
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/sr/hello_tk.po
@@ -0,0 +1,24 @@
+# hello_tk.po - sample for Ruby/TK
+#
+# Copyright (C) 2004 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Slobodan Paunović <slobodan.paunovic at gmail.com>, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 1.1.1\n"
+"POT-Creation-Date: 2004-11-05 21:38+0900\n"
+"PO-Revision-Date: 2008-06-05 23:09+0200\n"
+"Last-Translator: Slobodan Paunović <slobodan.paunovic at gmail.com>\n"
+"Language-Team: Serbian\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%"
+"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+
+#: hello_tk.rb:10
+msgid "hello, tk world"
+msgstr "здраво, tk свете"
diff --git a/vendor/gems/gettext-2.1.0/samples/po/sv/hello.po b/vendor/gems/gettext-2.1.0/samples/po/sv/hello.po
new file mode 100644
index 000000000..7411c2d7d
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/sv/hello.po
@@ -0,0 +1,20 @@
+# hello.po - sample for GetText._()
+#
+# Copyright (C) 2001-2004 Masao Mutoh
+#
+# Nikolai Weibull, 2004
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 0.8.0\n"
+"POT-Creation-Date: 2001-12-24 01:30:54+0900\n"
+"PO-Revision-Date: 2004-11-04 20:49+0100\n"
+"Last-Translator: Nikolai Weibull\n"
+"Language-Team: Swedish\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../hello.rb:7
+msgid "Hello World\n"
+msgstr "Hej, världen\n"
diff --git a/vendor/gems/gettext-2.1.0/samples/po/sv/hello2.po b/vendor/gems/gettext-2.1.0/samples/po/sv/hello2.po
new file mode 100644
index 000000000..5add89964
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/sv/hello2.po
@@ -0,0 +1,28 @@
+# hello2.po - sample for GetText._()
+#
+# Copyright (C) 2002-2004 Masao Mutoh
+#
+# Nikolai Weibull, 2004
+
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 0.8.0\n"
+"POT-Creation-Date: 2002-01-01 03:05:08+0900\n"
+"PO-Revision-Date: 2004-11-04 20:49+0100\n"
+"Last-Translator: Nikolai Weibull\n"
+"Language-Team: Swedish\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: hello2.rb:9
+msgid "World"
+msgstr "världen"
+
+#: hello2.rb:8
+msgid "One is %{num}\n"
+msgstr "Ett är %{num}\n"
+
+#: hello2.rb:9
+msgid "Hello %{world}\n"
+msgstr "Hej, %{world}\n"
diff --git a/vendor/gems/gettext-2.1.0/samples/po/sv/hello_glade2.po b/vendor/gems/gettext-2.1.0/samples/po/sv/hello_glade2.po
new file mode 100644
index 000000000..9704011b5
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/sv/hello_glade2.po
@@ -0,0 +1,28 @@
+# hello_glade2.po - sample for Ruby/Libglade2
+#
+# Copyright (C) 2004 Masao Mutoh
+#
+# Nikolai Weibull, 2004
+
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 0.8.0\n"
+"POT-Creation-Date: 2004-07-03 23:38+0900\n"
+"PO-Revision-Date: 2004-11-04 20:49+0100\n"
+"Last-Translator: Nikolai Weibull\n"
+"Language-Team: Swedish\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: hello_glade2.glade:8
+msgid "window1"
+msgstr "fönster1"
+
+#: hello_glade2.glade:29
+msgid "first line\nsecond line\nthird line"
+msgstr "första raden\nandra raden\ntredje raden"
+
+#: hello_glade2.glade:53
+msgid "<Hello world>"
+msgstr "<Hej, världen>"
diff --git a/vendor/gems/gettext-2.1.0/samples/po/sv/hello_gtk.po b/vendor/gems/gettext-2.1.0/samples/po/sv/hello_gtk.po
new file mode 100644
index 000000000..c638e552e
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/sv/hello_gtk.po
@@ -0,0 +1,20 @@
+# hellgtk.po - sample for Ruby/GTK
+#
+# Copyright (C) 2001-2004 Masao Mutoh
+#
+# Nikolai Weibull, 2004
+
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 0.8.0\n"
+"POT-Creation-Date: 2001-12-24 01:52:10+0900\n"
+"PO-Revision-Date: 2004-11-04 20:49+0100\n"
+"Last-Translator: Nikolai Weibull\n"
+"Language-Team: Swedish\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../hello_gtk.rb:14
+msgid "hello, gtk world"
+msgstr "hej, gtk-världen"
diff --git a/vendor/gems/gettext-2.1.0/samples/po/sv/hello_noop.po b/vendor/gems/gettext-2.1.0/samples/po/sv/hello_noop.po
new file mode 100644
index 000000000..a6135ffa7
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/sv/hello_noop.po
@@ -0,0 +1,24 @@
+# hello_noop.po - sample for GetText.N_().
+#
+# Copyright (C) 2002-2004 Masao Mutoh
+#
+# Nikolai Weibull, 2004
+
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 0.8.0\n"
+"POT-Creation-Date: 2002-02-21 23:23:08+0900\n"
+"PO-Revision-Date: 2004-11-04 20:49+0100\n"
+"Last-Translator: Nikolai Weibull\n"
+"Language-Team: Swedish\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: hello_noop.rb:8
+msgid "Hello World"
+msgstr "Hej, världen"
+
+#: hello_noop.rb:8
+msgid "Hello World2"
+msgstr "Hej, världen2"
diff --git a/vendor/gems/gettext-2.1.0/samples/po/sv/hello_plural.po b/vendor/gems/gettext-2.1.0/samples/po/sv/hello_plural.po
new file mode 100644
index 000000000..2f89250db
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/sv/hello_plural.po
@@ -0,0 +1,23 @@
+# hello_plural.po - sample for GetText.n_().
+#
+# Copyright (C) 2002-2006 Masao Mutoh
+#
+# Nikolai Weibull, 2004
+
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 1.6.0\n"
+"POT-Creation-Date: 2002-10-21 15:32:15+0900\n"
+"PO-Revision-Date: 2004-11-04 20:49+0100\n"
+"Last-Translator: Nikolai Weibull\n"
+"Language-Team: Swedish\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n == 1 ? 0 : 1;\n"
+
+#: hello_plural.rb:11
+msgid "There is an apple.\n"
+msgid_plural "There are %{num} apples.\n"
+msgstr[0] "Det finns ett äpple.\n"
+msgstr[1] "Det finns %{num} äpplen.\n"
diff --git a/vendor/gems/gettext-2.1.0/samples/po/sv/hello_tk.po b/vendor/gems/gettext-2.1.0/samples/po/sv/hello_tk.po
new file mode 100644
index 000000000..b8a6fe9bd
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/sv/hello_tk.po
@@ -0,0 +1,20 @@
+# hello_tk.po - sample for Ruby/TK
+#
+# Copyright (C) 2004 Masao Mutoh
+#
+# Nikolai Weibull, 2004
+
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 0.8.0\n"
+"POT-Creation-Date: 2004-11-05 21:38+0900\n"
+"PO-Revision-Date: 2004-11-05 20:49+0100\n"
+"Last-Translator: Nikolai Weibull\n"
+"Language-Team: Swedish\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: hello_tk.rb:10
+msgid "hello, tk world"
+msgstr "hej, tk-världen"
diff --git a/vendor/gems/gettext-2.1.0/samples/po/test.rb b/vendor/gems/gettext-2.1.0/samples/po/test.rb
new file mode 100644
index 000000000..b9e0557f2
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/test.rb
@@ -0,0 +1,11 @@
+filename, to = ARGV
+p filename
+p to
+Dir.glob("*/#{filename}.po").each do |path|
+ data = IO.read(path)
+ data.gsub!(/#{filename}/, to)
+p to_path = path.sub(/#{filename}/, to)
+ File.open(to_path, "w") do |out|
+ out.write data
+ end
+end
diff --git a/vendor/gems/gettext-2.1.0/samples/po/ua/hello.po b/vendor/gems/gettext-2.1.0/samples/po/ua/hello.po
new file mode 100644
index 000000000..232b4c74a
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/ua/hello.po
@@ -0,0 +1,22 @@
+# Hello World -- a sample for Ruby-GetText-Package
+#
+# Copyright (C) 2001-2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Alex Rootoff <rootoff at pisem.net>, 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 1.1.1\n"
+"POT-Creation-Date: 2001-12-24 01:30:54+0900\n"
+"PO-Revision-Date: 2007-12-23 13:17+0200\n"
+"Last-Translator: Alex Rootoff <rootoff at pisem.net>\n"
+"Language-Team: Ukrainian\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../hello.rb:7
+msgid "Hello World\n"
+msgstr "Привіт, світ\n"
diff --git a/vendor/gems/gettext-2.1.0/samples/po/ua/hello2.po b/vendor/gems/gettext-2.1.0/samples/po/ua/hello2.po
new file mode 100644
index 000000000..cfc39e6da
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/ua/hello2.po
@@ -0,0 +1,30 @@
+# Hello World 2 -- sample for ruby-gettext-package
+#
+# Copyright (C) 2002-2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Alex Rootoff <rootoff at pisem.net>, 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 1.1.1\n"
+"POT-Creation-Date: 2002-01-01 03:05:08+0900\n"
+"PO-Revision-Date: 2008-02-04 08:22+0020\n"
+"Last-Translator: Alex Rootoff <rootoff at pisem.net>\n"
+"Language-Team: Ukrainian\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: hello2.rb:9
+msgid "World"
+msgstr "Світ"
+
+#: hello2.rb:8
+msgid "One is %{num}\n"
+msgstr "Є %{num}\n"
+
+#: hello2.rb:9
+msgid "Hello %{world}\n"
+msgstr "Привіт, %{world}\n"
diff --git a/vendor/gems/gettext-2.1.0/samples/po/ua/hello_glade2.po b/vendor/gems/gettext-2.1.0/samples/po/ua/hello_glade2.po
new file mode 100644
index 000000000..c6b87e920
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/ua/hello_glade2.po
@@ -0,0 +1,34 @@
+# hello_glade2.po - sample for Ruby/Libglade2
+#
+# Copyright (C) 2005,2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Alex Rootoff <rootoff at pisem.net>, 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 1.1.1\n"
+"POT-Creation-Date: 2004-07-03 23:38+0900\n"
+"PO-Revision-Date: 2007-12-23 13:12+0200\n"
+"Last-Translator: Alex Rootoff <rootoff at pisem.net>\n"
+"Language-Team: Ukrainian\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%"
+"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+
+#: hello_glade2.glade:8
+msgid "window1"
+msgstr "вікно1"
+
+#: hello_glade2.glade:29
+msgid "first line\nsecond line\nthird line"
+msgstr "перша стрічка\nдруга стрічка\nтретя стрічка"
+
+#: hello_glade2.glade:53
+msgid "<Hello world>"
+msgstr "<Привіт, світ>"
diff --git a/vendor/gems/gettext-2.1.0/samples/po/ua/hello_gtk.po b/vendor/gems/gettext-2.1.0/samples/po/ua/hello_gtk.po
new file mode 100644
index 000000000..8aaf13f59
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/ua/hello_gtk.po
@@ -0,0 +1,22 @@
+# Hello World for Ruby/GTK -- sample for ruby-gettext-package
+#
+# Copyright (C) 2001-2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Alex Rootoff <rootoff at pisem.net>, 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 1.1.1\n"
+"POT-Creation-Date: 2001-12-24 01:52:10+0900\n"
+"PO-Revision-Date: 2007-12-23 13:17+0200\n"
+"Last-Translator: Alex Rootoff <rootoff at pisem.net>\n"
+"Language-Team: Ukrainian\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../hello_gtk.rb:14
+msgid "hello, gtk world"
+msgstr "Привіт, світ gtk"
diff --git a/vendor/gems/gettext-2.1.0/samples/po/ua/hello_noop.po b/vendor/gems/gettext-2.1.0/samples/po/ua/hello_noop.po
new file mode 100644
index 000000000..fb9b29eff
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/ua/hello_noop.po
@@ -0,0 +1,26 @@
+# Hello World noop -- sample for ruby-gettext-package
+#
+# Copyright (C) 2002-2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Alex Rootoff <rootoff at pisem.net>, 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 1.1.1\n"
+"POT-Creation-Date: 2002-02-21 23:23:08+0900\n"
+"PO-Revision-Date: 2007-12-23 13:58+0200\n"
+"Last-Translator: Alex Rootoff <rootoff at pisem.net>\n"
+"Language-Team: Ukrainian\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: hello_noop.rb:8
+msgid "Hello World"
+msgstr "Привіт, світ"
+
+#: hello_noop.rb:8
+msgid "Hello World2"
+msgstr "Привіт, світ2"
diff --git a/vendor/gems/gettext-2.1.0/samples/po/ua/hello_plural.po b/vendor/gems/gettext-2.1.0/samples/po/ua/hello_plural.po
new file mode 100644
index 000000000..dc947953a
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/ua/hello_plural.po
@@ -0,0 +1,29 @@
+# hello_plural.po - sample for plural messages
+#
+# Copyright (C) 2002-2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Alex Rootoff <rootoff at pisem.net>, 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 1.1.1\n"
+"POT-Creation-Date: 2002-10-21 15:32:15+0900\n"
+"PO-Revision-Date: 2008-02-04 08:24+0020\n"
+"Last-Translator: Alex Rootoff <rootoff at pisem.net>\n"
+"Language-Team: Ukrainian\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%"
+"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+
+#: hello_plural.rb:11
+msgid "There is an apple.\n"
+msgid_plural "There are %{num} apples.\n"
+msgstr[0] "Є %{num} яблуко"
+msgstr[1] "Є %{num} яблука"
+msgstr[2] "Є %{num} яблук"
diff --git a/vendor/gems/gettext-2.1.0/samples/po/ua/hello_tk.po b/vendor/gems/gettext-2.1.0/samples/po/ua/hello_tk.po
new file mode 100644
index 000000000..ef6b97cd9
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/ua/hello_tk.po
@@ -0,0 +1,26 @@
+# hello_tk.po - sample for Ruby/TK
+#
+# Copyright (C) 2004 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Alex Rootoff <rootoff at pisem.net>, 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 1.1.1\n"
+"POT-Creation-Date: 2004-11-05 21:38+0900\n"
+"PO-Revision-Date: 2007-12-23 13:42+0200\n"
+"Last-Translator: Alex Rootoff <rootoff at pisem.net>\n"
+"Language-Team: Ukrainian\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%"
+"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+
+#: hello_tk.rb:10
+msgid "hello, tk world"
+msgstr "Привіт, світ tk"
diff --git a/vendor/gems/gettext-2.1.0/samples/po/vi/hello.po b/vendor/gems/gettext-2.1.0/samples/po/vi/hello.po
new file mode 100644
index 000000000..cbcc3f75f
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/vi/hello.po
@@ -0,0 +1,23 @@
+# Hello World -- a sample for Ruby-GetText-Package
+#
+# Copyright (C) 2001-2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Ngoc DAO Thanh <ngocdaothanh at gmail.com>, 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 1.1.1\n"
+"POT-Creation-Date: 2001-12-24 01:30:54+0900\n"
+"PO-Revision-Date: 2007-03-21 10:13+0900\n"
+"Last-Translator: Ngoc DAO Thanh <ngocdaothanh at gmail.com>\n"
+"Language-Team: Vietnamese\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../hello.rb:7
+msgid "Hello World\n"
+msgstr "Xin chào cả Thế Giới\n"
+
diff --git a/vendor/gems/gettext-2.1.0/samples/po/vi/hello2.po b/vendor/gems/gettext-2.1.0/samples/po/vi/hello2.po
new file mode 100644
index 000000000..a87ce40ca
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/vi/hello2.po
@@ -0,0 +1,31 @@
+# Hello World 2 -- sample for ruby-gettext-package
+#
+# Copyright (C) 2002-2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Ngoc DAO Thanh <ngocdaothanh at gmail.com>, 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 1.1.1\n"
+"POT-Creation-Date: 2002-01-01 03:05:08+0900\n"
+"PO-Revision-Date: 2007-03-21 10:16+0900\n"
+"Last-Translator: Ngoc DAO Thanh <ngocdaothanh at gmail.com>\n"
+"Language-Team: Vietnamese\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: hello2.rb:9
+msgid "World"
+msgstr "Thế Giới"
+
+#: hello2.rb:8
+msgid "One is %{num}\n"
+msgstr "Một là is %{num}\n"
+
+#: hello2.rb:9
+msgid "Hello %{world}\n"
+msgstr "Xin chào %{world}\n"
+
diff --git a/vendor/gems/gettext-2.1.0/samples/po/vi/hello_glade2.po b/vendor/gems/gettext-2.1.0/samples/po/vi/hello_glade2.po
new file mode 100644
index 000000000..7c9301730
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/vi/hello_glade2.po
@@ -0,0 +1,38 @@
+# hello_glade2.po - sample for Ruby/Libglade2
+#
+# Copyright (C) 2005,2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Ngoc DAO Thanh <ngocdaothanh at gmail.com>, 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 1.1.1\n"
+"POT-Creation-Date: 2004-07-03 23:38+0900\n"
+"PO-Revision-Date: 2007-03-21 11:02+0900\n"
+"Last-Translator: Ngoc DAO Thanh <ngocdaothanh at gmail.com>\n"
+"Language-Team: Vietnamese\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: hello_glade2.glade:8
+msgid "window1"
+msgstr "cửa sổ 1"
+
+#: hello_glade2.glade:29
+msgid ""
+"first line\n"
+"second line\n"
+"third line"
+msgstr ""
+"dòng thứ nhất\n"
+"dòng thứ hai\n"
+"dòng thứ ba"
+
+#: hello_glade2.glade:53
+msgid "<Hello world>"
+msgstr "<Xin chào thế giới>"
+
diff --git a/vendor/gems/gettext-2.1.0/samples/po/vi/hello_gtk.po b/vendor/gems/gettext-2.1.0/samples/po/vi/hello_gtk.po
new file mode 100644
index 000000000..2d08e3842
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/vi/hello_gtk.po
@@ -0,0 +1,23 @@
+# Hello World for Ruby/GTK -- sample for ruby-gettext-package
+#
+# Copyright (C) 2001-2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Ngoc DAO Thanh <ngocdaothanh at gmail.com>, 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 1.1.1\n"
+"POT-Creation-Date: 2001-12-24 01:52:10+0900\n"
+"PO-Revision-Date: 2007-03-21 11:02+0900\n"
+"Last-Translator: Ngoc DAO Thanh <ngocdaothanh at gmail.com>\n"
+"Language-Team: Vietnamese\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../hello_gtk.rb:14
+msgid "hello, gtk world"
+msgstr "xin chào, thế giới gtk"
+
diff --git a/vendor/gems/gettext-2.1.0/samples/po/vi/hello_noop.po b/vendor/gems/gettext-2.1.0/samples/po/vi/hello_noop.po
new file mode 100644
index 000000000..80e84b51e
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/vi/hello_noop.po
@@ -0,0 +1,27 @@
+# Hello World noop -- sample for ruby-gettext-package
+#
+# Copyright (C) 2002-2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Ngoc DAO Thanh <ngocdaothanh at gmail.com>, 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 1.1.1\n"
+"POT-Creation-Date: 2002-02-21 23:23:08+0900\n"
+"PO-Revision-Date: 2007-03-21 10:14+0900\n"
+"Last-Translator: Ngoc DAO Thanh <ngocdaothanh at gmail.com>\n"
+"Language-Team: Vietnamese\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: hello_noop.rb:8
+msgid "Hello World"
+msgstr "Xin chào cả Thế Giới"
+
+#: hello_noop.rb:8
+msgid "Hello World2"
+msgstr "Xin chào cả Thế Giới2"
+
diff --git a/vendor/gems/gettext-2.1.0/samples/po/vi/hello_plural.po b/vendor/gems/gettext-2.1.0/samples/po/vi/hello_plural.po
new file mode 100644
index 000000000..f31bf11ca
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/vi/hello_plural.po
@@ -0,0 +1,26 @@
+# hello_plural.po - sample for plural messages
+#
+# Copyright (C) 2002-2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Ngoc DAO Thanh <ngocdaothanh at gmail.com>, 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 1.1.1\n"
+"POT-Creation-Date: 2002-10-21 15:32:15+0900\n"
+"PO-Revision-Date: 2007-03-21 10:15+0900\n"
+"Last-Translator: Ngoc DAO Thanh <ngocdaothanh at gmail.com>\n"
+"Language-Team: Vietnamese\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n == 1 ? 0 : 1;\n"
+
+#: hello_plural.rb:11
+msgid "There is an apple.\n"
+msgid_plural "There are %{num} apples.\n"
+msgstr[0] "Có một quả táo.\n"
+msgstr[1] "Có %{num} quả táo.\n"
+
diff --git a/vendor/gems/gettext-2.1.0/samples/po/vi/hello_tk.po b/vendor/gems/gettext-2.1.0/samples/po/vi/hello_tk.po
new file mode 100644
index 000000000..584e89dbf
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/vi/hello_tk.po
@@ -0,0 +1,24 @@
+# hello_tk.po - sample for Ruby/TK
+#
+# Copyright (C) 2004 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Ngoc DAO Thanh <ngocdaothanh at gmail.com>, 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 1.1.1\n"
+"POT-Creation-Date: 2004-11-05 21:38+0900\n"
+"PO-Revision-Date: 2007-03-21 11:04+0900\n"
+"Last-Translator: Ngoc DAO Thanh <ngocdaothanh at gmail.com>\n"
+"Language-Team: Vietnamese\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: hello_tk.rb:10
+msgid "hello, tk world"
+msgstr "xin chào, thế giới tk"
+
diff --git a/vendor/gems/gettext-2.1.0/samples/po/zh/hello.po b/vendor/gems/gettext-2.1.0/samples/po/zh/hello.po
new file mode 100644
index 000000000..a1795cd05
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/zh/hello.po
@@ -0,0 +1,23 @@
+# Hello World -- a sample for Ruby-GetText-Package
+#
+# Copyright (C) 2001-2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Yingfeng <blogyingfeng at gmail.com>, 2006.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 1.6.0\n"
+"POT-Creation-Date: 2001-12-24 01:30:54+0900\n"
+"PO-Revision-Date: 2006-04-15 13:11+0300\n"
+"Last-Translator: Yingfeng <blogyingfeng at gmail.com>\n"
+"Language-Team: Simplified Chinese\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=GB2312\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#: ../hello.rb:7
+msgid "Hello World\n"
+msgstr "ã\n"
diff --git a/vendor/gems/gettext-2.1.0/samples/po/zh/hello2.po b/vendor/gems/gettext-2.1.0/samples/po/zh/hello2.po
new file mode 100644
index 000000000..2be319cd8
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/zh/hello2.po
@@ -0,0 +1,31 @@
+# Hello World 2 -- sample for ruby-gettext-package
+#
+# Copyright (C) 2002-2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Yingfeng <blogyingfeng at gmail.com>, 2006.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 1.1.1\n"
+"POT-Creation-Date: 2002-01-01 03:05:08+0900\n"
+"PO-Revision-Date: 2006-04-15 13:11+0300\n"
+"Last-Translator: Yingfeng <blogyingfeng at gmail.com>\n"
+"Language-Team: Simplified Chinese\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=GB2312\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#: hello2.rb:9
+msgid "World"
+msgstr ""
+
+#: hello2.rb:8
+msgid "One is %{num}\n"
+msgstr "һ%{num}\n"
+
+#: hello2.rb:9
+msgid "Hello %{world}\n"
+msgstr " %{world}\n"
diff --git a/vendor/gems/gettext-2.1.0/samples/po/zh/hello_glade2.po b/vendor/gems/gettext-2.1.0/samples/po/zh/hello_glade2.po
new file mode 100644
index 000000000..51e349cf3
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/zh/hello_glade2.po
@@ -0,0 +1,31 @@
+# hello_glade2.po - sample for Ruby/Libglade2
+#
+# Copyright (C) 2005,2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Yingfeng <blogyingfeng at gmail.com>, 2006.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 1.1.1\n"
+"POT-Creation-Date: 2004-07-03 23:38+0900\n"
+"PO-Revision-Date: 2006-04-15 13:11+0300\n"
+"Last-Translator: Yingfeng <blogyingfeng at gmail.com>\n"
+"Language-Team: Simplified Chinese\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#: hello_glade2.glade:8
+msgid "window1"
+msgstr "窗口1"
+
+#: hello_glade2.glade:29
+msgid "first line\nsecond line\nthird line"
+msgstr "第一行\n第二行\n第三行"
+
+#: hello_glade2.glade:53
+msgid "<Hello world>"
+msgstr "<你好世界>"
diff --git a/vendor/gems/gettext-2.1.0/samples/po/zh/hello_gtk.po b/vendor/gems/gettext-2.1.0/samples/po/zh/hello_gtk.po
new file mode 100644
index 000000000..d4574ae6f
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/zh/hello_gtk.po
@@ -0,0 +1,23 @@
+# Hello World for Ruby/GTK -- sample for ruby-gettext-package
+#
+# Copyright (C) 2001-2006 Masao Mutoh <mutomasa at gmail.com>
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Yingfeng <blogyingfeng at gmail.com>, 2006.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 1.1.1\n"
+"POT-Creation-Date: 2001-12-24 01:52:10+0900\n"
+"PO-Revision-Date: 2006-04-15 13:11+0300\n"
+"Last-Translator: Yingfeng <blogyingfeng at gmail.com>\n"
+"Language-Team: Simplified Chinese\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=GB2312\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#: ../hello_gtk.rb:14
+msgid "hello, gtk world"
+msgstr "ãgtk"
diff --git a/vendor/gems/gettext-2.1.0/samples/po/zh/hello_noop.po b/vendor/gems/gettext-2.1.0/samples/po/zh/hello_noop.po
new file mode 100644
index 000000000..74034fc0f
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/zh/hello_noop.po
@@ -0,0 +1,27 @@
+# Hello World noop -- sample for ruby-gettext-package
+#
+# Copyright (C) 2002-2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Yingfeng <blogyingfeng at gmail.com>, 2006.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 1.1.1\n"
+"POT-Creation-Date: 2002-02-21 23:23:08+0900\n"
+"PO-Revision-Date: 2006-04-15 13:11+0300\n"
+"Last-Translator: Yingfeng <blogyingfeng at gmail.com>\n"
+"Language-Team: Simplified Chinese\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=GB2312\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#: hello_noop.rb:8
+msgid "Hello World"
+msgstr ""
+
+#: hello_noop.rb:8
+msgid "Hello World2"
+msgstr "2"
diff --git a/vendor/gems/gettext-2.1.0/samples/po/zh/hello_plural.po b/vendor/gems/gettext-2.1.0/samples/po/zh/hello_plural.po
new file mode 100644
index 000000000..50ca21b28
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/zh/hello_plural.po
@@ -0,0 +1,25 @@
+# hello_plural.po - sample for plural messages
+#
+# Copyright (C) 2002-2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Yingfeng <blogyingfeng at gmail.com>, 2006.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 1.6.0\n"
+"POT-Creation-Date: 2002-10-21 15:32:15+0900\n"
+"PO-Revision-Date: 2006-04-15 13:11+0300\n"
+"Last-Translator: Yingfeng <blogyingfeng at gmail.com>\n"
+"Language-Team: Simplified Chinese\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=GB2312\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#: hello_plural.rb:11
+msgid "There is an apple.\n"
+msgid_plural "There are %{num} apples.\n"
+msgstr[0] "һƻ\n"
+msgstr[1] "%{num}ƻ\n"
diff --git a/vendor/gems/gettext-2.1.0/samples/po/zh/hello_tk.po b/vendor/gems/gettext-2.1.0/samples/po/zh/hello_tk.po
new file mode 100644
index 000000000..08ba0b06d
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/zh/hello_tk.po
@@ -0,0 +1,23 @@
+# hello_tk.po - sample for Ruby/TK
+#
+# Copyright (C) 2004 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# Yingfeng <blogyingfeng at gmail.com>, 2006.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 1.1.1\n"
+"POT-Creation-Date: 2004-11-05 21:38+0900\n"
+"PO-Revision-Date: 2006-04-15 13:11+0300\n"
+"Last-Translator: Yingfeng <blogyingfeng at gmail.com>\n"
+"Language-Team: Simplified Chinese\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#: hello_tk.rb:10
+msgid "hello, tk world"
+msgstr "你好,tk世界"
diff --git a/vendor/gems/gettext-2.1.0/samples/po/zh_TW/hello.po b/vendor/gems/gettext-2.1.0/samples/po/zh_TW/hello.po
new file mode 100644
index 000000000..f9c803e49
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/zh_TW/hello.po
@@ -0,0 +1,26 @@
+# Hello World -- a sample for Ruby-GetText-Package
+#
+# Copyright (C) 2001-2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# LIN CHUNG-YI <xmarsh at gmail.com>, 2006.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 1.1.1\n"
+"POT-Creation-Date: 2001-12-24 01:30:54+0900\n"
+"PO-Revision-Date: 2006-08-18 14:48+0800\n"
+"Last-Translator: LIN CHUNG-YI <xmarsh at gmail.com>\n"
+"Language-Team: zh_TW <xmarsh at gmail.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"X-Poedit-Language: Chinese\n"
+"X-Poedit-Country: TAIWAN\n"
+
+#: ../hello.rb:7
+msgid "Hello World\n"
+msgstr "哈囉世界\n"
+
diff --git a/vendor/gems/gettext-2.1.0/samples/po/zh_TW/hello2.po b/vendor/gems/gettext-2.1.0/samples/po/zh_TW/hello2.po
new file mode 100644
index 000000000..f4def7f25
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/zh_TW/hello2.po
@@ -0,0 +1,34 @@
+# Hello World 2 -- sample for ruby-gettext-package
+#
+# Copyright (C) 2002-2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# LIN CHUNG-YI <xmarsh at gmail.com>, 2006.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 1.1.1\n"
+"POT-Creation-Date: 2002-01-01 03:05:08+0900\n"
+"PO-Revision-Date: 2006-08-18 14:49+0800\n"
+"Last-Translator: LIN CHUNG-YI <xmarsh at gmail.com>\n"
+"Language-Team: zh_TW <xmarsh at gmail.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"X-Poedit-Language: Chinese\n"
+"X-Poedit-Country: TAIWAN\n"
+
+#: hello2.rb:9
+msgid "World"
+msgstr "世界"
+
+#: hello2.rb:8
+msgid "One is %{num}\n"
+msgstr "一個是 %{num}\n"
+
+#: hello2.rb:9
+msgid "Hello %{world}\n"
+msgstr "哈囉 %{world}\n"
+
diff --git a/vendor/gems/gettext-2.1.0/samples/po/zh_TW/hello_glade2.po b/vendor/gems/gettext-2.1.0/samples/po/zh_TW/hello_glade2.po
new file mode 100644
index 000000000..e38c1fefe
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/zh_TW/hello_glade2.po
@@ -0,0 +1,40 @@
+# hello_glade2.po - sample for Ruby/Libglade2
+#
+# Copyright (C) 2005,2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# LIN CHUNG-YI <xmarsh at gmail.com>, 2006.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 1.1.1\n"
+"POT-Creation-Date: 2004-07-03 23:38+0900\n"
+"PO-Revision-Date: 2006-08-21 09:05+0800\n"
+"Last-Translator: LIN CHUNG-YI <xmarsh at gmail.com>\n"
+"Language-Team: zh_TW <xmarsh at gmail.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"X-Poedit-Language: Chinese\n"
+"X-Poedit-Country: TAIWAN\n"
+
+#: hello_glade2.glade:8
+msgid "window1"
+msgstr "視窗一"
+
+#: hello_glade2.glade:29
+msgid ""
+"first line\n"
+"second line\n"
+"third line"
+msgstr ""
+"第一行\n"
+"第二行\n"
+"第三行"
+
+#: hello_glade2.glade:53
+msgid "<Hello world>"
+msgstr "<哈囉世界>"
+
diff --git a/vendor/gems/gettext-2.1.0/samples/po/zh_TW/hello_gtk.po b/vendor/gems/gettext-2.1.0/samples/po/zh_TW/hello_gtk.po
new file mode 100644
index 000000000..0f7ad996a
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/zh_TW/hello_gtk.po
@@ -0,0 +1,25 @@
+# Hello World for Ruby/GTK -- sample for ruby-gettext-package
+#
+# Copyright (C) 2001-2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# LIN CHUNG-YI <xmarsh at gmail.com>, 2006.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 1.1.1\n"
+"POT-Creation-Date: 2001-12-24 01:52:10+0900\n"
+"PO-Revision-Date: 2006-08-21 09:06+0800\n"
+"Last-Translator: LIN CHUNG-YI <xmarsh at gmail.com>\n"
+"Language-Team: zh_TW <xmarsh at gmail.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Poedit-Language: Chinese\n"
+"X-Poedit-Country: TAIWAN\n"
+
+#: ../hello_gtk.rb:14
+msgid "hello, gtk world"
+msgstr "哈囉, gtk 世界"
+
diff --git a/vendor/gems/gettext-2.1.0/samples/po/zh_TW/hello_noop.po b/vendor/gems/gettext-2.1.0/samples/po/zh_TW/hello_noop.po
new file mode 100644
index 000000000..821c42d3f
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/zh_TW/hello_noop.po
@@ -0,0 +1,30 @@
+# Hello World noop -- sample for ruby-gettext-package
+#
+# Copyright (C) 2002-2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# LIN CHUNG-YI <xmarsh at gmail.com>, 2006.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 1.1.1\n"
+"POT-Creation-Date: 2002-02-21 23:23:08+0900\n"
+"PO-Revision-Date: 2006-08-18 14:51+0800\n"
+"Last-Translator: LIN CHUNG-YI <xmarsh at gmail.com>\n"
+"Language-Team: zh_TW <xmarsh at gmail.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"X-Poedit-Language: Chinese\n"
+"X-Poedit-Country: TAIWAN\n"
+
+#: hello_noop.rb:8
+msgid "Hello World"
+msgstr "哈囉世界"
+
+#: hello_noop.rb:8
+msgid "Hello World2"
+msgstr "哈囉世界二"
+
diff --git a/vendor/gems/gettext-2.1.0/samples/po/zh_TW/hello_plural.po b/vendor/gems/gettext-2.1.0/samples/po/zh_TW/hello_plural.po
new file mode 100644
index 000000000..ea7bcc9fa
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/zh_TW/hello_plural.po
@@ -0,0 +1,28 @@
+# hello_plural.po - sample for plural messages
+#
+# Copyright (C) 2002-2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# LIN CHUNG-YI <xmarsh at gmail.com>, 2006.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 1.1.1\n"
+"POT-Creation-Date: 2002-10-21 15:32:15+0900\n"
+"PO-Revision-Date: 2006-08-18 15:01+0800\n"
+"Last-Translator: LIN CHUNG-YI <xmarsh at gmail.com>\n"
+"Language-Team: zh_TW <xmarsh at gmail.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n == 1 ? 0 : 1;\n"
+"X-Poedit-Language: Chinese\n"
+"X-Poedit-Country: TAIWAN\n"
+
+#: hello_plural.rb:11
+msgid "There is an apple.\n"
+msgid_plural "There are %{num} apples.\n"
+msgstr[0] "有一個蘋果。\n"
+msgstr[1] "有 %{num} 個蘋果。\n"
+
diff --git a/vendor/gems/gettext-2.1.0/samples/po/zh_TW/hello_tk.po b/vendor/gems/gettext-2.1.0/samples/po/zh_TW/hello_tk.po
new file mode 100644
index 000000000..bf5cbd560
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/samples/po/zh_TW/hello_tk.po
@@ -0,0 +1,26 @@
+# hello_tk.po - sample for Ruby/TK
+#
+# Copyright (C) 2004-2006 Masao Mutoh
+#
+# This file is distributed under the same license as the Ruby-GetText-Package.
+#
+# LIN CHUNG-YI <xmarsh at gmail.com>, 2006.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 1.1.1\n"
+"POT-Creation-Date: 2004-11-05 21:38+0900\n"
+"PO-Revision-Date: 2006-08-21 09:10+0800\n"
+"Last-Translator: LIN CHUNG-YI <xmarsh at gmail.com>\n"
+"Language-Team: zh_TW <xmarsh at gmail.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"X-Poedit-Language: Chinese\n"
+"X-Poedit-Country: TAIWAN\n"
+
+#: hello_tk.rb:10
+msgid "hello, tk world"
+msgstr "哈囉, tk 世界"
+
diff --git a/vendor/gems/gettext-2.1.0/src/poparser.ry b/vendor/gems/gettext-2.1.0/src/poparser.ry
new file mode 100644
index 000000000..0af77a263
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/src/poparser.ry
@@ -0,0 +1,217 @@
+#
+# poparser.ry - ruby version of msgfmt
+#
+# Copyright (C) 2002-2008 Masao Mutoh <mutomasa at gmail.com>
+#
+# You may redistribute it and/or modify it under the same
+# license terms as Ruby.
+
+class GetText::PoParser
+ token COMMENT MSGID MSGCTXT MSGID_PLURAL MSGSTR STRING PLURAL_NUM
+
+ rule
+
+ msgfmt
+ : /* empty */
+ | msgfmt comment
+ | msgfmt msgctxt
+ | msgfmt message
+ ;
+
+ msgctxt
+ : MSGCTXT string_list
+ {
+ @msgctxt = unescape(val[1]) + "\004"
+ }
+ ;
+
+ message
+ : single_message
+ | plural_message
+ ;
+
+ single_message
+ : MSGID string_list MSGSTR string_list
+ {
+ if @fuzzy and $ignore_fuzzy
+ if val[1] != ""
+ $stderr.print _("Warning: fuzzy message was ignored.\n")
+ $stderr.print " #{@po_file}: msgid '#{val[1]}'\n"
+ else
+ on_message('', unescape(val[3]))
+ end
+ @fuzzy = false
+ else
+ on_message(@msgctxt + unescape(val[1]), unescape(val[3]))
+ end
+ result = ""
+ }
+
+ plural_message
+ : MSGID string_list MSGID_PLURAL string_list msgstr_plural
+ {
+ if @fuzzy and $ignore_fuzzy
+ if val[1] != ""
+ $stderr.print _("Warning: fuzzy message was ignored.\n")
+ $stderr.print "msgid = '#{val[1]}\n"
+ else
+ on_message('', unescape(val[3]))
+ end
+ @fuzzy = false
+ else
+ on_message(@msgctxt + unescape(val[1]) + "\000" + unescape(val[3]), unescape(val[4]))
+ end
+ result = ""
+ }
+ ;
+
+ msgstr_plural
+ : msgstr_plural msgstr_plural_line
+ {
+ if val[0].size > 0
+ result = val[0] + "\000" + val[1]
+ else
+ result = ""
+ end
+ }
+ | msgstr_plural_line
+ ;
+
+ msgstr_plural_line
+ : MSGSTR PLURAL_NUM string_list
+ {
+ result = val[2]
+ }
+ ;
+
+ comment
+ : COMMENT
+ {
+ on_comment(val[0])
+ }
+ #| COMMENT
+ #;
+
+ string_list
+ : string_list STRING
+ {
+ result = val.delete_if{|item| item == ""}.join
+ }
+ | STRING
+ {
+ result = val[0]
+ }
+ ;
+end
+
+---- inner
+ include GetText
+ GetText.bindtextdomain("rgettext")
+
+ def unescape(orig)
+ ret = orig.gsub(/\\n/, "\n")
+ ret.gsub!(/\\t/, "\t")
+ ret.gsub!(/\\r/, "\r")
+ ret.gsub!(/\\"/, "\"")
+ ret
+ end
+
+ def parse(str, data, ignore_fuzzy = true)
+ @comments = []
+ @data = data
+ @fuzzy = false
+ @msgctxt = ""
+ $ignore_fuzzy = ignore_fuzzy
+
+ str.strip!
+ @q = []
+ until str.empty? do
+ case str
+ when /\A\s+/
+ str = $'
+ when /\Amsgctxt/
+ @q.push [:MSGCTXT, $&]
+ str = $'
+ when /\Amsgid_plural/
+ @q.push [:MSGID_PLURAL, $&]
+ str = $'
+ when /\Amsgid/
+ @q.push [:MSGID, $&]
+ str = $'
+ when /\Amsgstr/
+ @q.push [:MSGSTR, $&]
+ str = $'
+ when /\A\[(\d+)\]/
+ @q.push [:PLURAL_NUM, $1]
+ str = $'
+ when /\A\#~(.*)/
+ $stderr.print _("Warning: obsolete msgid exists.\n")
+ $stderr.print " #{$&}\n"
+ @q.push [:COMMENT, $&]
+ str = $'
+ when /\A\#(.*)/
+ @q.push [:COMMENT, $&]
+ str = $'
+ when /\A\"(.*)\"/
+ @q.push [:STRING, $1]
+ str = $'
+ else
+ #c = str[0,1]
+ #@q.push [:STRING, c]
+ str = str[1..-1]
+ end
+ end
+ @q.push [false, '$end']
+ if $DEBUG
+ @q.each do |a,b|
+ puts "[#{a}, #{b}]"
+ end
+ end
+ @yydebug = true if $DEBUG
+ do_parse
+
+ if @comments.size > 0
+ @data.set_comment(:last, @comments.join("\n"))
+ end
+ @data
+ end
+
+ def next_token
+ @q.shift
+ end
+
+ def on_message(msgid, msgstr)
+ if msgstr.size > 0
+ @data[msgid] = msgstr
+ @data.set_comment(msgid, @comments.join("\n"))
+ end
+ @comments.clear
+ @msgctxt = ""
+ end
+
+ def on_comment(comment)
+ @fuzzy = true if (/fuzzy/ =~ comment)
+ @comments << comment
+ end
+
+ def parse_file(po_file, data, ignore_fuzzy = true)
+ args = [ po_file ]
+ # In Ruby 1.9, we must detect proper encoding of a PO file.
+ if String.instance_methods.include?(:encode)
+ encoding = detect_file_encoding(po_file)
+ args << "r:#{encoding}"
+ end
+ @po_file = po_file
+ parse(File.open(*args) {|io| io.read }, data, ignore_fuzzy)
+ end
+
+ def detect_file_encoding(po_file)
+ open(po_file, :encoding => 'ASCII-8BIT') do |input|
+ input.lines.each do |line|
+ return Encoding.find($1) if %r["Content-Type:.*\scharset=(.*)\\n"] =~ line
+ end
+ end
+ Encoding.default_external
+ end
+ private :detect_file_encoding
+---- footer
diff --git a/vendor/gems/gettext-2.1.0/test.rb b/vendor/gems/gettext-2.1.0/test.rb
new file mode 100644
index 000000000..2fe67bd14
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/test.rb
@@ -0,0 +1,33 @@
+#!/usr/bin/ruby
+## hello_gtk2.rb - sample for Ruby/GTK2
+##
+## Copyright (C) 2001-2006 Masao Mutoh
+## This file is distributed under the same license as Ruby-GetText-Package.
+
+require 'rubygems'
+require 'gettext'
+require 'gtk2'
+
+class LocalizedWindow < Gtk::Window
+ include GetText
+
+ bindtextdomain("hello_gtk", :path => "locale", :output_charset => "utf-8")
+
+ def initialize
+ super
+ signal_connect('delete-event') do
+ Gtk.main_quit
+ end
+
+ add(Gtk::Label.new( "sdaf" )
+ np_("Special", "An apple", "%{num} Apples", num)
+ p_("File", "New")
+ s_("File|New")
+ n_("Special|An apple", "%{num} Apples", num)
+ end
+end
+
+LocalizedWindow.new.show_all
+Gtk.main
+
+
diff --git a/vendor/gems/gettext-2.1.0/test/README b/vendor/gems/gettext-2.1.0/test/README
new file mode 100644
index 000000000..f159b66e4
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/test/README
@@ -0,0 +1 @@
+Go to gettext dir and run "rake makemo" prior to running any tests! \ No newline at end of file
diff --git a/vendor/gems/gettext-2.1.0/test/Rakefile b/vendor/gems/gettext-2.1.0/test/Rakefile
new file mode 100644
index 000000000..1d1e0247f
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/test/Rakefile
@@ -0,0 +1,17 @@
+$LOAD_PATH.unshift "../lib"
+
+task :default => :test
+
+desc "Create mo files"
+task :makemo do
+ require 'gettext/tools'
+ GetText.create_mofiles(:mo_root => "locale")
+end
+
+desc 'Run all tests'
+task :test do
+ Dir.glob("**/test_*.rb").each do |path|
+ puts ""
+ ruby "-I../lib:../../locale/lib -rubygems #{path}"
+ end
+end
diff --git a/vendor/gems/gettext-2.1.0/test/locale/cr/LC_MESSAGES/plural.mo b/vendor/gems/gettext-2.1.0/test/locale/cr/LC_MESSAGES/plural.mo
new file mode 100644
index 000000000..b6c1fcd53
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/test/locale/cr/LC_MESSAGES/plural.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/test/locale/da/LC_MESSAGES/plural.mo b/vendor/gems/gettext-2.1.0/test/locale/da/LC_MESSAGES/plural.mo
new file mode 100644
index 000000000..1604a69b7
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/test/locale/da/LC_MESSAGES/plural.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/test/locale/da/LC_MESSAGES/plural_error.mo b/vendor/gems/gettext-2.1.0/test/locale/da/LC_MESSAGES/plural_error.mo
new file mode 100644
index 000000000..a33f51fd9
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/test/locale/da/LC_MESSAGES/plural_error.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/test/locale/fr/LC_MESSAGES/plural.mo b/vendor/gems/gettext-2.1.0/test/locale/fr/LC_MESSAGES/plural.mo
new file mode 100644
index 000000000..b814f5ff3
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/test/locale/fr/LC_MESSAGES/plural.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/test/locale/fr/LC_MESSAGES/plural_error.mo b/vendor/gems/gettext-2.1.0/test/locale/fr/LC_MESSAGES/plural_error.mo
new file mode 100644
index 000000000..e774b09c3
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/test/locale/fr/LC_MESSAGES/plural_error.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/test/locale/fr/LC_MESSAGES/test1.mo b/vendor/gems/gettext-2.1.0/test/locale/fr/LC_MESSAGES/test1.mo
new file mode 100644
index 000000000..5ffa9f95e
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/test/locale/fr/LC_MESSAGES/test1.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/test/locale/fr/LC_MESSAGES/test2.mo b/vendor/gems/gettext-2.1.0/test/locale/fr/LC_MESSAGES/test2.mo
new file mode 100644
index 000000000..97183f297
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/test/locale/fr/LC_MESSAGES/test2.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/test/locale/ir/LC_MESSAGES/plural.mo b/vendor/gems/gettext-2.1.0/test/locale/ir/LC_MESSAGES/plural.mo
new file mode 100644
index 000000000..160c1e725
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/test/locale/ir/LC_MESSAGES/plural.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/test/locale/ja/LC_MESSAGES/npgettext.mo b/vendor/gems/gettext-2.1.0/test/locale/ja/LC_MESSAGES/npgettext.mo
new file mode 100644
index 000000000..dcb616842
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/test/locale/ja/LC_MESSAGES/npgettext.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/test/locale/ja/LC_MESSAGES/nsgettext.mo b/vendor/gems/gettext-2.1.0/test/locale/ja/LC_MESSAGES/nsgettext.mo
new file mode 100644
index 000000000..073301527
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/test/locale/ja/LC_MESSAGES/nsgettext.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/test/locale/ja/LC_MESSAGES/pgettext.mo b/vendor/gems/gettext-2.1.0/test/locale/ja/LC_MESSAGES/pgettext.mo
new file mode 100644
index 000000000..b0eeb41d8
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/test/locale/ja/LC_MESSAGES/pgettext.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/test/locale/ja/LC_MESSAGES/plural.mo b/vendor/gems/gettext-2.1.0/test/locale/ja/LC_MESSAGES/plural.mo
new file mode 100644
index 000000000..0748463c3
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/test/locale/ja/LC_MESSAGES/plural.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/test/locale/ja/LC_MESSAGES/plural_error.mo b/vendor/gems/gettext-2.1.0/test/locale/ja/LC_MESSAGES/plural_error.mo
new file mode 100644
index 000000000..9a6600554
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/test/locale/ja/LC_MESSAGES/plural_error.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/test/locale/ja/LC_MESSAGES/rubyparser.mo b/vendor/gems/gettext-2.1.0/test/locale/ja/LC_MESSAGES/rubyparser.mo
new file mode 100644
index 000000000..d204fe1f1
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/test/locale/ja/LC_MESSAGES/rubyparser.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/test/locale/ja/LC_MESSAGES/sgettext.mo b/vendor/gems/gettext-2.1.0/test/locale/ja/LC_MESSAGES/sgettext.mo
new file mode 100644
index 000000000..38a885037
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/test/locale/ja/LC_MESSAGES/sgettext.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/test/locale/ja/LC_MESSAGES/test1.mo b/vendor/gems/gettext-2.1.0/test/locale/ja/LC_MESSAGES/test1.mo
new file mode 100644
index 000000000..46fd44a6e
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/test/locale/ja/LC_MESSAGES/test1.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/test/locale/ja/LC_MESSAGES/test2.mo b/vendor/gems/gettext-2.1.0/test/locale/ja/LC_MESSAGES/test2.mo
new file mode 100644
index 000000000..adc89b1ee
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/test/locale/ja/LC_MESSAGES/test2.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/test/locale/ja/LC_MESSAGES/test3.mo b/vendor/gems/gettext-2.1.0/test/locale/ja/LC_MESSAGES/test3.mo
new file mode 100644
index 000000000..9ed02c744
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/test/locale/ja/LC_MESSAGES/test3.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/test/locale/la/LC_MESSAGES/plural.mo b/vendor/gems/gettext-2.1.0/test/locale/la/LC_MESSAGES/plural.mo
new file mode 100644
index 000000000..5f71e52db
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/test/locale/la/LC_MESSAGES/plural.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/test/locale/la/LC_MESSAGES/plural_error.mo b/vendor/gems/gettext-2.1.0/test/locale/la/LC_MESSAGES/plural_error.mo
new file mode 100644
index 000000000..14b875ca2
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/test/locale/la/LC_MESSAGES/plural_error.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/test/locale/li/LC_MESSAGES/plural.mo b/vendor/gems/gettext-2.1.0/test/locale/li/LC_MESSAGES/plural.mo
new file mode 100644
index 000000000..5b9e23c99
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/test/locale/li/LC_MESSAGES/plural.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/test/locale/li/LC_MESSAGES/plural_error.mo b/vendor/gems/gettext-2.1.0/test/locale/li/LC_MESSAGES/plural_error.mo
new file mode 100644
index 000000000..5a9dc5f5d
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/test/locale/li/LC_MESSAGES/plural_error.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/test/locale/po/LC_MESSAGES/plural.mo b/vendor/gems/gettext-2.1.0/test/locale/po/LC_MESSAGES/plural.mo
new file mode 100644
index 000000000..0f1677a0a
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/test/locale/po/LC_MESSAGES/plural.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/test/locale/sl/LC_MESSAGES/plural.mo b/vendor/gems/gettext-2.1.0/test/locale/sl/LC_MESSAGES/plural.mo
new file mode 100644
index 000000000..f92254b5f
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/test/locale/sl/LC_MESSAGES/plural.mo
Binary files differ
diff --git a/vendor/gems/gettext-2.1.0/test/po/cr/plural.po b/vendor/gems/gettext-2.1.0/test/po/cr/plural.po
new file mode 100644
index 000000000..92f4a7d1d
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/test/po/cr/plural.po
@@ -0,0 +1,23 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR ORGANIZATION
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2002-10-21 15:32:15+0900\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=US-ASCII\n"
+"Content-Transfer-Encoding: ENCODING\n"
+"Plural-Forms: nplurals=3; plural= n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+
+#: hello_plural.rb:11
+msgid "one"
+msgid_plural "two"
+msgstr[0] "cr_one"
+msgstr[1] "cr_two"
+msgstr[2] "cr_three"
diff --git a/vendor/gems/gettext-2.1.0/test/po/da/plural.po b/vendor/gems/gettext-2.1.0/test/po/da/plural.po
new file mode 100644
index 000000000..c6ff529d8
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/test/po/da/plural.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR ORGANIZATION
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2002-10-21 15:32:15+0900\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=US-ASCII\n"
+"Content-Transfer-Encoding: ENCODING\n"
+"Plural-Forms: nplurals=2; plural= n != 1;\n"
+
+#: hello_plural.rb:11
+msgid "one"
+msgid_plural "two"
+msgstr[0] "da_one"
+msgstr[1] "da_plural"
diff --git a/vendor/gems/gettext-2.1.0/test/po/da/plural_error.po b/vendor/gems/gettext-2.1.0/test/po/da/plural_error.po
new file mode 100644
index 000000000..1ca81140e
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/test/po/da/plural_error.po
@@ -0,0 +1,22 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR ORGANIZATION
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2002-10-21 15:32:15+0900\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=US-ASCII\n"
+"Content-Transfer-Encoding: ENCODING\n"
+"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
+
+#: hello_plural.rb:11
+msgid "first"
+msgid_plural "second"
+msgstr[0] "da_first"
+msgstr[1] "da_second"
diff --git a/vendor/gems/gettext-2.1.0/test/po/fr/plural.po b/vendor/gems/gettext-2.1.0/test/po/fr/plural.po
new file mode 100644
index 000000000..9f3b6dd18
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/test/po/fr/plural.po
@@ -0,0 +1,28 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR ORGANIZATION
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2002-10-21 15:32:15+0900\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=US-ASCII\n"
+"Content-Transfer-Encoding: ENCODING\n"
+"Plural-Forms: nplurals=2; plural=n>1;\n"
+
+#: hello_plural.rb:11
+msgid "one"
+msgid_plural "two"
+msgstr[0] "fr_one"
+msgstr[1] "fr_plural"
+
+#: hello_plural.rb:14
+msgid "single"
+msgid_plural "plural"
+msgstr[0] "fr_hitotsu"
+msgstr[1] "fr_fukusu"
diff --git a/vendor/gems/gettext-2.1.0/test/po/fr/plural_error.po b/vendor/gems/gettext-2.1.0/test/po/fr/plural_error.po
new file mode 100644
index 000000000..9d9025b5c
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/test/po/fr/plural_error.po
@@ -0,0 +1,20 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR ORGANIZATION
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2002-10-21 15:32:15+0900\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=US-ASCII\n"
+"Content-Transfer-Encoding: ENCODING\n"
+
+#: hello_plural.rb:11
+msgid "first"
+msgid_plural "second"
+msgstr[0] "fr_first"
diff --git a/vendor/gems/gettext-2.1.0/test/po/fr/test1.po b/vendor/gems/gettext-2.1.0/test/po/fr/test1.po
new file mode 100644
index 000000000..841503432
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/test/po/fr/test1.po
@@ -0,0 +1,23 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR ORGANIZATION
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2002-01-01 02:24:56+0900\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: ENCODING\n"
+
+#: simple.rb:10
+msgid "language"
+msgstr "french"
+
+#: simple.rb:14
+msgid "one is %d."
+msgstr "FRENCH:ONE IS %d."
diff --git a/vendor/gems/gettext-2.1.0/test/po/fr/test2.po b/vendor/gems/gettext-2.1.0/test/po/fr/test2.po
new file mode 100644
index 000000000..c0bb028d0
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/test/po/fr/test2.po
@@ -0,0 +1,19 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR ORGANIZATION
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2001-10-28 01:39:53+0900\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: ENCODING\n"
+
+#: test.rb:9 test.rb:11
+msgid "LANGUAGE"
+msgstr "FRENCH"
diff --git a/vendor/gems/gettext-2.1.0/test/po/ir/plural.po b/vendor/gems/gettext-2.1.0/test/po/ir/plural.po
new file mode 100644
index 000000000..97d3ba4f4
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/test/po/ir/plural.po
@@ -0,0 +1,23 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR ORGANIZATION
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2002-10-21 15:32:15+0900\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=US-ASCII\n"
+"Content-Transfer-Encoding: ENCODING\n"
+"Plural-Forms: nplurals=3; plural=n==1 ? 0 : n==2 ? 1 : 2;\n"
+
+#: hello_plural.rb:11
+msgid "one"
+msgid_plural "two"
+msgstr[0] "ir_one"
+msgstr[1] "ir_two"
+msgstr[2] "ir_plural"
diff --git a/vendor/gems/gettext-2.1.0/test/po/ja/npgettext.po b/vendor/gems/gettext-2.1.0/test/po/ja/npgettext.po
new file mode 100644
index 000000000..aa2eb2b2b
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/test/po/ja/npgettext.po
@@ -0,0 +1,46 @@
+# Japanese translations for PACKAGE package
+# PACKAGE パッケージに対する英訳.
+# Copyright (C) 2008 THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# Masao Mutoh <mutomasa at gmail.com>, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2008-08-06 02:36+0900\n"
+"PO-Revision-Date: 2008-08-06 02:36+0900\n"
+"Last-Translator: Masao Mutoh <mutomasa at gmail.com>\n"
+"Language-Team: Japanese\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: testlib/npgettext.rb:10 testlib/npgettext.rb:11 testlib/npgettext.rb:15
+#: testlib/npgettext.rb:16
+msgctxt "Magazine"
+msgid "a book"
+msgid_plural "%{num} books"
+msgstr[0] "一つの本"
+msgstr[1] "%{num}の本たち"
+
+#: testlib/npgettext.rb:20 testlib/npgettext.rb:21
+msgctxt "Hardcover"
+msgid "a book"
+msgid_plural "%{num} books"
+msgstr[0] "一つのハードカバー本"
+msgstr[1] "%{num}のハードカバー本たち"
+
+#: testlib/npgettext.rb:25 testlib/npgettext.rb:26
+msgctxt "Magaine"
+msgid "I have a magazine"
+msgid_plural "I have %{num} magazines"
+msgstr[0] "マガジンを1冊持ってます。"
+msgstr[0] "マガジンたちを%{num}冊持ってます。"
+
+#: testlib/npgettext.rb:30 testlib/npgettext.rb:31
+msgctxt "Hardcover"
+msgid "a picture"
+msgid_plural "%{num} pictures"
+msgstr[0] ""
+msgstr[1] ""
diff --git a/vendor/gems/gettext-2.1.0/test/po/ja/nsgettext.po b/vendor/gems/gettext-2.1.0/test/po/ja/nsgettext.po
new file mode 100644
index 000000000..9d5c13e74
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/test/po/ja/nsgettext.po
@@ -0,0 +1,65 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2007-07-03 00:20+0900\n"
+"PO-Revision-Date: 2007-07-03 00:20+0900\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: nsgettext.rb:10 nsgettext.rb:14
+msgid "AAA|BBB"
+msgid_plural "CCC"
+msgstr[0] "single"
+msgstr[1] "plural"
+
+#: nsgettext.rb:18
+msgid "AAA"
+msgid_plural "BBB"
+msgstr[0] ""
+msgstr[1] ""
+
+#: nsgettext.rb:22
+msgid "AAA|CCC"
+msgid_plural "DDD"
+msgstr[0] ""
+msgstr[1] ""
+
+#: nsgettext.rb:26
+msgid "AAA|BBB|CCC"
+msgid_plural "DDD"
+msgstr[0] ""
+msgstr[1] ""
+
+#: nsgettext.rb:30
+msgid "AAA$BBB"
+msgid_plural "CCC"
+msgstr[0] ""
+msgstr[1] ""
+
+#: nsgettext.rb:34
+msgid "AAA$B|BB"
+msgid_plural "CCC"
+msgstr[0] ""
+msgstr[1] ""
+
+#: nsgettext.rb:38
+msgid "AAA$B|CC"
+msgid_plural "DDD"
+msgstr[0] "single"
+msgstr[1] "plural"
+
+#: nsgettext.rb:42
+msgid "AAA|CCC|BBB"
+msgid_plural "DDD"
+msgstr[0] ""
+msgstr[1] ""
diff --git a/vendor/gems/gettext-2.1.0/test/po/ja/pgettext.po b/vendor/gems/gettext-2.1.0/test/po/ja/pgettext.po
new file mode 100644
index 000000000..d4005f8da
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/test/po/ja/pgettext.po
@@ -0,0 +1,41 @@
+# Japanese translations for PACKAGE package
+# PACKAGE パッケージに対する英訳.
+# Copyright (C) 2008 THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# Masao Mutoh <mutomasa at gmail.com>, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2008-07-26 15:39+0900\n"
+"PO-Revision-Date: 2008-07-26 15:39+0900\n"
+"Last-Translator: Masao Mutoh <mutomasa at gmail.com>\n"
+"Language-Team: Japanese\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#: testlib/pgettext.rb:10 testlib/pgettext.rb:14
+msgctxt "AAA"
+msgid "BBB"
+msgstr "えーびー"
+
+#: testlib/pgettext.rb:18
+msgctxt "AAA|BBB"
+msgid "CCC"
+msgstr "えーびーしー"
+
+#: testlib/pgettext.rb:22
+msgctxt "AAA"
+msgid "CCC"
+msgstr ""
+
+#: testlib/pgettext.rb:26
+msgctxt "CCC"
+msgid "BBB"
+msgstr "しーびー"
+
+#: testlib/pgettext.rb:33
+msgid "BBB"
+msgstr "びー"
diff --git a/vendor/gems/gettext-2.1.0/test/po/ja/plural.po b/vendor/gems/gettext-2.1.0/test/po/ja/plural.po
new file mode 100644
index 000000000..fb45fef02
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/test/po/ja/plural.po
@@ -0,0 +1,28 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR ORGANIZATION
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2002-10-21 15:32:15+0900\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=US-ASCII\n"
+"Content-Transfer-Encoding: ENCODING\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#: hello_plural.rb:11
+msgid "one"
+msgid_plural "two"
+msgstr[0] "all"
+msgstr[1] ""
+
+#: hello_plural.rb:13
+msgid "single"
+msgid_plural "plural"
+msgstr[0] "hitotsu"
+msgstr[1] "fukusu"
diff --git a/vendor/gems/gettext-2.1.0/test/po/ja/plural_error.po b/vendor/gems/gettext-2.1.0/test/po/ja/plural_error.po
new file mode 100644
index 000000000..6991f243e
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/test/po/ja/plural_error.po
@@ -0,0 +1,20 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR ORGANIZATION
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2002-10-21 15:32:15+0900\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=US-ASCII\n"
+"Content-Transfer-Encoding: ENCODING\n"
+
+#: hello_plural.rb:11
+msgid "first"
+msgid_plural "second"
+msgstr[0] "a"
diff --git a/vendor/gems/gettext-2.1.0/test/po/ja/rubyparser.po b/vendor/gems/gettext-2.1.0/test/po/ja/rubyparser.po
new file mode 100644
index 000000000..554952ef5
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/test/po/ja/rubyparser.po
@@ -0,0 +1,43 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR ORGANIZATION
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2004-07-03 23:03+0900\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
+
+#: test_rubyparser.rb:8
+msgid "aaa"
+msgstr "AAA"
+
+#: test_rubyparser.rb:12
+msgid "aaa\n"
+msgstr "AAA\n"
+
+#: test_rubyparser.rb:16
+msgid "bbb\nccc"
+msgstr "BBB\nCCC"
+
+#: test_rubyparser.rb:20
+msgid "bbb\nccc\nddd\n"
+msgstr "BBB\nCCC\nDDD\n"
+
+#: test_rubyparser.rb:27 test_rubyparser.rb:31
+msgid "eee"
+msgstr "EEE"
+
+#: test_rubyparser.rb:31
+msgid "fff"
+msgstr "FFF"
+
+#: test_rubyparser.rb:35
+msgid "ggghhhiii"
+msgstr "GGGHHHIII"
diff --git a/vendor/gems/gettext-2.1.0/test/po/ja/sgettext.po b/vendor/gems/gettext-2.1.0/test/po/ja/sgettext.po
new file mode 100644
index 000000000..ee2869e9a
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/test/po/ja/sgettext.po
@@ -0,0 +1,47 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR ORGANIZATION
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2004-08-12 03:31+0900\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
+
+#: sgettext.rb:10 sgettext.rb:14
+msgid "AAA|BBB"
+msgstr "MATCHED"
+
+#: sgettext.rb:18
+msgid "AAA"
+msgstr ""
+
+#: sgettext.rb:22
+msgid "AAA|CCC"
+msgstr ""
+
+#: sgettext.rb:26
+msgid "AAA|BBB|CCC"
+msgstr ""
+
+#: sgettext.rb:30
+msgid "AAA$BBB"
+msgstr ""
+
+#: sgettext.rb:34
+msgid "AAA$B|BB"
+msgstr ""
+
+#: sgettext.rb:38
+msgid "AAA$B|CC"
+msgstr "MATCHED"
+
+#: sgettext.rb:42
+msgid "AAA|CCC|BBB"
+msgstr ""
diff --git a/vendor/gems/gettext-2.1.0/test/po/ja/test1.po b/vendor/gems/gettext-2.1.0/test/po/ja/test1.po
new file mode 100644
index 000000000..19993fb1f
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/test/po/ja/test1.po
@@ -0,0 +1,23 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR ORGANIZATION
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2002-01-01 02:24:56+0900\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: ENCODING\n"
+
+#: simple.rb:10
+msgid "language"
+msgstr "japanese"
+
+#: simple.rb:14
+msgid "one is %d."
+msgstr "ONE IS %d."
diff --git a/vendor/gems/gettext-2.1.0/test/po/ja/test2.po b/vendor/gems/gettext-2.1.0/test/po/ja/test2.po
new file mode 100644
index 000000000..1f4801e20
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/test/po/ja/test2.po
@@ -0,0 +1,19 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR ORGANIZATION
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2001-10-28 01:39:53+0900\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: ENCODING\n"
+
+#: test.rb:9 test.rb:11
+msgid "LANGUAGE"
+msgstr "JAPANESE"
diff --git a/vendor/gems/gettext-2.1.0/test/po/ja/test3.po b/vendor/gems/gettext-2.1.0/test/po/ja/test3.po
new file mode 100644
index 000000000..675ca0583
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/test/po/ja/test3.po
@@ -0,0 +1,19 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR ORGANIZATION
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2001-10-28 01:39:53+0900\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: ENCODING\n"
+
+#: test.rb:9 test.rb:11
+msgid "language"
+msgstr "JAPANESE"
diff --git a/vendor/gems/gettext-2.1.0/test/po/la/plural.po b/vendor/gems/gettext-2.1.0/test/po/la/plural.po
new file mode 100644
index 000000000..55ce771f8
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/test/po/la/plural.po
@@ -0,0 +1,23 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR ORGANIZATION
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2002-10-21 15:32:15+0900\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=US-ASCII\n"
+"Content-Transfer-Encoding: ENCODING\n"
+"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n!=0 ? 1 : 2 ;\n"
+
+#: hello_plural.rb:11
+msgid "one"
+msgid_plural "two"
+msgstr[0] "la_one"
+msgstr[1] "la_plural"
+msgstr[2] "la_zero"
diff --git a/vendor/gems/gettext-2.1.0/test/po/la/plural_error.po b/vendor/gems/gettext-2.1.0/test/po/la/plural_error.po
new file mode 100644
index 000000000..a9cacf022
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/test/po/la/plural_error.po
@@ -0,0 +1,21 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR ORGANIZATION
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2002-10-21 15:32:15+0900\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=US-ASCII\n"
+"Content-Transfer-Encoding: ENCODING\n"
+"Plural-Forms: nplurals=2; plural= n != 1;\n"
+
+#: hello_plural.rb:11
+msgid "first"
+msgid_plural "second"
+msgstr[0] "la_first"
diff --git a/vendor/gems/gettext-2.1.0/test/po/li/plural.po b/vendor/gems/gettext-2.1.0/test/po/li/plural.po
new file mode 100644
index 000000000..784308e22
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/test/po/li/plural.po
@@ -0,0 +1,23 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR ORGANIZATION
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2002-10-21 15:32:15+0900\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=US-ASCII\n"
+"Content-Transfer-Encoding: ENCODING\n"
+"Plural-Forms: nplurals=3; plural= n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+
+#: hello_plural.rb:11
+msgid "one"
+msgid_plural "two"
+msgstr[0] "li_one"
+msgstr[1] "li_two"
+msgstr[2] "li_three"
diff --git a/vendor/gems/gettext-2.1.0/test/po/li/plural_error.po b/vendor/gems/gettext-2.1.0/test/po/li/plural_error.po
new file mode 100644
index 000000000..a44afc496
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/test/po/li/plural_error.po
@@ -0,0 +1,27 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR ORGANIZATION
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2002-10-21 15:32:15+0900\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=US-ASCII\n"
+"Content-Transfer-Encoding: ENCODING\n"
+"Plural-Forms: nplurals=0; plural=EXPRESSION;\n"
+
+#: hello_plural.rb:11
+msgid "first"
+msgid_plural "second"
+msgstr[0] "li_first"
+
+#: hello_plural.rb:13
+msgid "one"
+msgid_plural "two"
+msgstr[0] "li_one"
+msgstr[1] "li_two"
diff --git a/vendor/gems/gettext-2.1.0/test/po/po/plural.po b/vendor/gems/gettext-2.1.0/test/po/po/plural.po
new file mode 100644
index 000000000..7f26ba78c
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/test/po/po/plural.po
@@ -0,0 +1,23 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR ORGANIZATION
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2002-10-21 15:32:15+0900\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=US-ASCII\n"
+"Content-Transfer-Encoding: ENCODING\n"
+"Plural-Forms: nplurals=3; plural=n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+
+#: hello_plural.rb:11
+msgid "one"
+msgid_plural "two"
+msgstr[0] "po_one"
+msgstr[1] "po_two"
+msgstr[2] "po_three"
diff --git a/vendor/gems/gettext-2.1.0/test/po/sl/plural.po b/vendor/gems/gettext-2.1.0/test/po/sl/plural.po
new file mode 100644
index 000000000..479faaba2
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/test/po/sl/plural.po
@@ -0,0 +1,24 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR ORGANIZATION
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2002-10-21 15:32:15+0900\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=US-ASCII\n"
+"Content-Transfer-Encoding: ENCODING\n"
+"Plural-Forms: nplurals=4; plural=n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3;\n"
+
+#: hello_plural.rb:11
+msgid "one"
+msgid_plural "two"
+msgstr[0] "sl_one"
+msgstr[1] "sl_two"
+msgstr[2] "sl_three"
+msgstr[3] "sl_four"
diff --git a/vendor/gems/gettext-2.1.0/test/test_class_info.rb b/vendor/gems/gettext-2.1.0/test/test_class_info.rb
new file mode 100644
index 000000000..bb74bac2d
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/test/test_class_info.rb
@@ -0,0 +1,83 @@
+require 'testlib/helper.rb'
+require 'gettext/runtime/class_info'
+
+module M1; end
+module M2; end
+
+module M1
+ module M3
+ include M2
+ module M4; end
+ class C1; end
+ end
+ class C2
+ module M5
+ class C4; end
+ end
+ class C3; end
+ end
+end
+
+module M1::M6
+ include M1::M3::M4
+ module M7; end
+end
+
+module M8
+ module M9
+ end
+ include M9
+end
+
+# Anonymous module
+@@anon = Module.new
+class @@anon::AC1; end
+module @@anon::AM1; end
+
+class TestClassInfo < Test::Unit::TestCase
+ include GetText::ClassInfo
+
+ def test_normalize_class
+ assert_equal M1::M3, normalize_class(M1::M3)
+ assert_equal M1::M3::C1, normalize_class(M1::M3::C1)
+ assert_equal M1::M3::C1, normalize_class(M1::M3::C1.new)
+
+ assert_equal NilClass, normalize_class(nil)
+ assert_equal TestClassInfo, normalize_class(self)
+ end
+
+ def test_normalize_class_anonymous_module
+ assert_equal Object, normalize_class(@@anon)
+ assert_equal Object, normalize_class(@@anon)
+ assert_equal Object, normalize_class(@@anon::AC1)
+ assert_equal Object, normalize_class(@@anon::AM1)
+ end
+
+ def test_related_classes
+=begin
+ assert_equal [M1, Object], related_classes(M1)
+ assert_equal [M1::M3, M1, M2, Object], related_classes(M1::M3)
+ assert_equal [M1::M3::M4, M1::M3, M1, M2, Object], related_classes(M1::M3::M4)
+=end
+ assert_equal [M1::M3::C1, M1::M3, M1, M2, Object], related_classes(M1::M3::C1)
+=begin
+ assert_equal [M1::C2, M1, Object], related_classes(M1::C2)
+ assert_equal [M1::C2::M5::C4, M1::C2::M5, M1::C2, M1, Object], related_classes(M1::C2::M5::C4)
+ assert_equal [M1::C2::C3, M1::C2, M1, Object], related_classes(M1::C2::C3)
+ assert_equal [M1::M6, M1, M1::M3::M4, M1::M3, M2, Object], related_classes(M1::M6)
+ assert_equal [M1::M6::M7, M1::M6, M1, M1::M3::M4, M1::M3, M2, Object], related_classes(M1::M6::M7)
+=end
+ end
+
+ def test_rellated_classes_with_all_classes
+ assert_equal [M1, Object], related_classes(M1, [M1])
+ assert_equal [M1, Object], related_classes(M1::M3::M4, [M1])
+ assert_equal [M1::M3, Object], related_classes(M1::M3::M4, [M1::M3])
+ assert_equal [M1::M3, M1, Object], related_classes(M1::M3::M4, [M1::M3, M1])
+ end
+
+ def test_related_classes_loop_mixin
+ assert_equal [M8, M8::M9, Object], related_classes(M8)
+ end
+
+end
diff --git a/vendor/gems/gettext-2.1.0/test/test_gettext.rb b/vendor/gems/gettext-2.1.0/test/test_gettext.rb
new file mode 100644
index 000000000..f4e2ea51b
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/test/test_gettext.rb
@@ -0,0 +1,311 @@
+# -*- coding: utf-8 -*-
+require 'testlib/helper.rb'
+
+require 'testlib/simple.rb'
+require 'testlib/gettext.rb'
+require 'testlib/sgettext.rb'
+require 'testlib/nsgettext.rb'
+require 'testlib/pgettext.rb'
+require 'testlib/npgettext.rb'
+
+class TestGetText < Test::Unit::TestCase
+
+ def setup
+ ENV["LC_ALL"] = "ja_JP.UTF-8"
+ ENV["LANG"] = "ja_JP.UTF-8"
+ GetText.locale = nil
+ GetText::TextDomainManager.clear_caches
+ end
+
+ def test_change_locale
+ GetText.locale = nil
+ bindtextdomain("test2", "locale")
+ test = Simple.new
+ assert_equal("japanese", test.test)
+ set_locale("fr")
+ assert_equal("french", test.test) # influence of previous line
+ assert_equal("FRENCH:ONE IS 1.", test.test_formatted_string)
+ set_locale("ja")
+ assert_equal("JAPANESE", _("LANGUAGE")) # influence of previous line
+ assert_equal("japanese", test.test)
+ end
+
+ def test_no_msgstr
+ bindtextdomain("test1", :path => "locale")
+ assert_equal("nomsgstr", _("nomsgstr"))
+ end
+
+ def test_empty
+ bindtextdomain("test1", "locale")
+ assert_equal("japanese", gettext("language"))
+ assert_equal("", gettext(""))
+ assert_equal("", gettext(nil))
+ end
+
+ def test_gettext
+ test = TestRubyParser.new
+ assert_equal("AAA", test.test_1)
+ assert_equal("AAA\n", test.test_2)
+ assert_equal("BBB\nCCC", test.test_3)
+ assert_equal("BBB
+CCC
+DDD
+", test.test_4)
+ assert_equal("EEE", test.test_5)
+ assert_equal("EEEfooFFF", test.test_6)
+ assert_equal("GGGHHHIII", test.test_7)
+ end
+
+ def test_N_
+ assert_equal("test", N_("test"))
+ end
+
+ def test_sgettext
+ test = TestSGetText.new
+
+ assert_equal("MATCHED", test.test_1)
+ assert_equal("MATCHED", test.test_2)
+ assert_equal("AAA", test.test_3)
+ assert_equal("CCC", test.test_4)
+ assert_equal("CCC", test.test_5)
+ assert_equal("BBB", test.test_6)
+ assert_equal("B|BB", test.test_7)
+ assert_equal("MATCHED", test.test_8)
+ assert_equal("BBB", test.test_9)
+ end
+
+ def test_s_uses_no_seperator_when_nil_is_given
+ assert_equal "AAA|BBB", s_("AAA|BBB", nil)
+ end
+
+ def test_pgettext
+ GetText.locale = nil
+ test = TestPGetText.new
+
+ assert_equal("えーびー", test.test_1)
+ assert_equal("えーびー", test.test_2)
+ assert_equal("えーびーしー", test.test_3)
+ assert_equal("CCC", test.test_4)
+ assert_equal("しーびー", test.test_5)
+ assert_equal("びー", test.test_6)
+
+ GetText.locale = "en"
+ test = TestPGetText.new
+
+ assert_equal("BBB", test.test_1)
+ assert_equal("BBB", test.test_2)
+ assert_equal("CCC", test.test_3)
+ assert_equal("CCC", test.test_4)
+ assert_equal("BBB", test.test_5)
+ assert_equal("BBB", test.test_6)
+ end
+
+ def test_npgettext
+ GetText.locale = nil
+ test = TestNPGetText.new
+ assert_equal(["一つの本", "%{num}の本たち"], test.test_1)
+ assert_equal(["一つの本", "%{num}の本たち"], test.test_2)
+ assert_equal(["一つのハードカバー本", "%{num}のハードカバー本たち"], test.test_3)
+ assert_equal(["マガジンを1冊持ってます。", "マガジンたちを%{num}冊持ってます。"], test.test_4)
+ assert_equal(["a picture", "%{num} pictures"], test.test_5)
+ end
+
+ def test_n_defaults_to_1_when_number_is_missing
+ assert_equal n_("aaa","aaa2",1), "aaa"
+ end
+
+ def test_nsgettext
+ GetText.locale = nil
+ test = TestNSGetText.new
+ assert_equal(["single", "plural"], test.test_1)
+ assert_equal(["single", "plural"], test.test_2)
+ assert_equal(["AAA", "BBB"], test.test_3)
+ assert_equal(["CCC", "DDD"], test.test_4)
+ assert_equal(["CCC", "DDD"], test.test_5)
+ assert_equal(["BBB", "CCC"], test.test_6)
+ assert_equal(["B|BB", "CCC"], test.test_7)
+ assert_equal(["single", "plural"], test.test_8)
+ assert_equal(["BBB", "DDD"], test.test_9)
+ end
+
+ def test_plural
+ GetText.locale = nil
+ bindtextdomain("plural", :path => "locale")
+ assert_equal("all", n_("one", "two", 0))
+ assert_equal("all", n_("one", "two", 1))
+ assert_equal("all", n_("one", "two", 2))
+
+ set_locale("da")
+ assert_equal("da_plural", n_("one", "two", 0))
+ assert_equal("da_one", n_("one", "two", 1))
+ assert_equal("da_plural", n_("one", "two", 2))
+
+ set_locale("fr")
+ assert_equal("fr_one", ngettext("one", "two", 0))
+ assert_equal("fr_one", ngettext("one", "two", 1))
+ assert_equal("fr_plural", ngettext("one", "two", 2))
+
+ set_locale("la")
+ assert_equal("la_one", ngettext("one", "two", 21))
+ assert_equal("la_one", ngettext("one", "two", 1))
+ assert_equal("la_plural", ngettext("one", "two", 2))
+ assert_equal("la_zero", ngettext("one", "two", 0))
+
+ set_locale("ir")
+ assert_equal("ir_one", ngettext("one", "two", 1))
+ assert_equal("ir_two", ngettext("one", "two", 2))
+ assert_equal("ir_plural", ngettext("one", "two", 3))
+ assert_equal("ir_plural", ngettext("one", "two", 0))
+
+ set_locale("li")
+ assert_equal("li_one", ngettext("one", "two", 1))
+ assert_equal("li_two", ngettext("one", "two", 22))
+ assert_equal("li_three", ngettext("one", "two", 11))
+
+ set_locale("cr")
+ assert_equal("cr_one", ngettext("one", "two", 1))
+ assert_equal("cr_two", ngettext("one", "two", 2))
+ assert_equal("cr_three", ngettext("one", "two", 5))
+
+ set_locale("po")
+ assert_equal("po_one", ngettext("one", "two", 1))
+ assert_equal("po_two", ngettext("one", "two", 2))
+ assert_equal("po_three", ngettext("one", "two", 5))
+
+ set_locale("sl")
+ assert_equal("sl_one", ngettext("one", "two", 1))
+ assert_equal("sl_two", ngettext("one", "two", 2))
+ assert_equal("sl_three", ngettext("one", "two", 3))
+ assert_equal("sl_three", ngettext("one", "two", 4))
+ assert_equal("sl_four", ngettext("one", "two", 5))
+ end
+
+ def test_plural_format_invalid
+ bindtextdomain("plural_error", :path => "locale")
+ #If it defines msgstr[0] only, msgstr[0] is used everytime.
+ assert_equal("a", n_("first", "second", 0))
+ assert_equal("a", n_("first", "second", 1))
+ assert_equal("a", n_("first", "second", 2))
+ # Use default(plural = 0)
+ set_locale("fr")
+ assert_equal("fr_first", n_("first", "second", 0))
+ assert_equal("fr_first", n_("first", "second", 1))
+ assert_equal("fr_first", n_("first", "second", 2))
+ setlocale("da") # Invalid Plural-Forms.
+ assert_equal("da_first", n_("first", "second", 0))
+ assert_equal("da_first", n_("first", "second", 1))
+ assert_equal("da_first", n_("first", "second", 2))
+ setlocale("la") # wrong number of msgstr.
+ assert_equal("la_first", n_("first", "second", 0))
+ assert_equal("la_first", n_("first", "second", 1))
+ assert_equal("la_first", n_("first", "second", 2))
+
+ setlocale("li") # Invalid Plural-Forms: nplurals is set, but wrong plural=.
+ assert_equal("li_first", n_("first", "second", 0))
+ assert_equal("li_first", n_("first", "second", 1))
+ assert_equal("li_first", n_("first", "second", 2))
+ assert_equal("li_one", n_("one", "two", 0))
+ assert_equal("li_one", n_("one", "two", 1))
+ assert_equal("li_one", n_("one", "two", 2))
+ end
+
+ def test_plural_array
+ bindtextdomain("plural", :path => "locale")
+ set_locale "da"
+ assert_equal("da_plural", n_(["one", "two"], 0))
+ assert_equal("da_one", n_(["one", "two"], 1))
+ assert_equal("da_plural", n_(["one", "two"], 2))
+ end
+
+ def test_plural_with_single
+ bindtextdomain("plural", :path => "locale")
+
+ assert_equal("hitotsu", _("single"))
+ assert_equal("hitotsu", n_("single", "plural", 1))
+ assert_equal("hitotsu", n_("single", "plural", 2))
+ assert_equal("all", n_("one", "two", 1))
+ assert_equal("all", n_("one", "two", 2))
+ assert_equal("all", _("one"))
+
+ bindtextdomain("plural", :path => "locale")
+ set_locale "fr"
+
+ assert_equal("fr_hitotsu", _("single"))
+ assert_equal("fr_hitotsu", n_("single", "plural", 1))
+ assert_equal("fr_fukusu", n_("single", "plural", 2))
+ assert_equal("fr_one", n_("one", "two", 1))
+ assert_equal("fr_plural", n_("one", "two", 2))
+ assert_equal("fr_one", _("one"))
+
+# assert_equal("fr_hitotsu", n_("single", "not match", 1))
+# assert_equal("fr_fukusu", n_("single", "not match", 2))
+ end
+
+ def test_Nn_
+ GetText.locale = "da"
+ bindtextdomain("plural", :path => "locale")
+ assert_equal(["one", "two"], Nn_("one", "two"))
+ end
+
+ def test_setlocale
+ bindtextdomain("test1", :path => "locale")
+ assert_equal("japanese", _("language"))
+ set_locale("en")
+ assert_equal("language", _("language"))
+
+ set_locale("fr")
+ assert_equal("french", _("language"))
+
+ set_locale(nil)
+ Locale.set "en"
+ assert_equal("language", _("language"))
+
+ Locale.set "ja"
+ assert_equal("japanese", _("language"))
+
+ # Confirm to set Locale::Object.
+ loc = Locale::Tag::Posix.parse("ja_JP.UTF-8")
+ assert_equal(loc, GetText.locale = loc)
+ assert_equal(Locale::Tag::Posix, GetText.locale.class)
+ end
+
+ def test_restrict_locale
+ bindtextdomain("test1", :path => "locale")
+ Locale.set_app_language_tags("ja", "en")
+
+ Locale.set_current "fr"
+ assert_equal("language", _("language"))
+
+ Locale.set_current "en"
+ assert_equal("language", _("language"))
+
+ Locale.set_current "ja"
+ assert_equal("japanese", _("language"))
+ Locale.set_app_language_tags(nil)
+ end
+
+
+ # Anonymous
+ @@anon = Module.new
+ class @@anon::I
+ bindtextdomain("test1", :path => "locale")
+ def self.test
+ _("language")
+ end
+ def test2
+ _("language")
+ end
+ end
+
+ def test_anonymous_module
+ assert_equal("japanese", @@anon::I.test)
+ assert_equal("japanese", @@anon::I.new.test2)
+
+ end
+
+ def test_frozen
+ GetText.bindtextdomain("test1", :path => "locale")
+ assert(GetText._("language").frozen?)
+ end
+
+end
diff --git a/vendor/gems/gettext-2.1.0/test/test_locale_path.rb b/vendor/gems/gettext-2.1.0/test/test_locale_path.rb
new file mode 100644
index 000000000..31d94f047
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/test/test_locale_path.rb
@@ -0,0 +1,50 @@
+require 'testlib/helper.rb'
+require 'testlib/simple'
+
+class TestLocalePath < Test::Unit::TestCase
+ def setup
+ GetText.locale = "ja_JP.eucJP"
+ GetText::LocalePath.clear
+ end
+
+ def test_locale_path
+ test = Simple.new
+ assert_equal("japanese", test.test)
+ prefix = GetText::LocalePath::CONFIG_PREFIX
+ default_locale_dirs = [
+ "./locale/%{lang}/LC_MESSAGES/%{name}.mo",
+ "./locale/%{lang}/%{name}.mo",
+ "#{Config::CONFIG['datadir']}/locale/%{lang}/LC_MESSAGES/%{name}.mo",
+ "#{Config::CONFIG['datadir'].gsub(/\/local/, "")}/locale/%{lang}/LC_MESSAGES/%{name}.mo",
+ "#{prefix}/share/locale/%{lang}/LC_MESSAGES/%{name}.mo",
+ "#{prefix}/local/share/locale/%{lang}/LC_MESSAGES/%{name}.mo"
+ ].uniq
+ assert_equal(default_locale_dirs, GetText::LocalePath::DEFAULT_RULES)
+ new_path = "/foo/%{lang}/%{name}.mo"
+ GetText::LocalePath.add_default_rule(new_path)
+ assert_equal([new_path] + default_locale_dirs, GetText::LocalePath::DEFAULT_RULES)
+ end
+
+ def test_initialize_with_topdir
+ testdir = File.dirname(File.expand_path(__FILE__))
+ path = GetText::LocalePath.new("test1", "#{testdir}/locale")
+ assert_equal path.locale_paths, { "ja" => "#{testdir}/locale/ja/LC_MESSAGES/test1.mo",
+ "fr" => "#{testdir}/locale/fr/LC_MESSAGES/test1.mo"}
+ assert_equal path.current_path(Locale::Tag.parse("ja")), "#{testdir}/locale/ja/LC_MESSAGES/test1.mo"
+ assert_equal path.current_path(Locale::Tag.parse("ja-JP")), "#{testdir}/locale/ja/LC_MESSAGES/test1.mo"
+ assert_equal path.current_path(Locale::Tag.parse("ja_JP.UTF-8")), "#{testdir}/locale/ja/LC_MESSAGES/test1.mo"
+ assert_equal path.current_path(Locale::Tag.parse("en")), nil
+ end
+
+ def test_supported_locales
+ testdir = File.dirname(File.expand_path(__FILE__))
+ path = GetText::LocalePath.new("test1", "#{testdir}/locale")
+ assert_equal ["fr", "ja"], path.supported_locales
+
+ path = GetText::LocalePath.new("plural", "#{testdir}/locale")
+ assert_equal ["cr", "da", "fr", "ir", "ja", "la", "li", "po", "sl"], path.supported_locales
+
+ path = GetText::LocalePath.new("nodomain", "#{testdir}/locale")
+ assert_equal [], path.supported_locales
+ end
+end
diff --git a/vendor/gems/gettext-2.1.0/test/test_parser.rb b/vendor/gems/gettext-2.1.0/test/test_parser.rb
new file mode 100644
index 000000000..bbbe51fbe
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/test/test_parser.rb
@@ -0,0 +1,158 @@
+require 'testlib/helper.rb'
+require 'gettext/tools/parser/ruby'
+require 'gettext/tools/parser/glade'
+require 'gettext/tools/parser/erb'
+
+require 'gettext/tools/rgettext'
+
+class TestGetTextParser < Test::Unit::TestCase
+ def test_ruby
+ @ary = GetText::RGetText.parse('testlib/gettext.rb')
+
+ assert_target 'aaa', ['testlib/gettext.rb:8']
+ assert_target 'aaa\n', ['testlib/gettext.rb:12']
+ assert_target 'bbb\nccc', ['testlib/gettext.rb:16']
+ assert_target 'bbb\nccc\nddd\n', ['testlib/gettext.rb:20']
+ assert_target 'eee', ['testlib/gettext.rb:27', 'testlib/gettext.rb:31']
+ assert_target 'fff', ['testlib/gettext.rb:31']
+ assert_target 'ggghhhiii', ['testlib/gettext.rb:35']
+ assert_target 'a"b"c"', ['testlib/gettext.rb:41']
+ assert_target 'd"e"f"', ['testlib/gettext.rb:45']
+ assert_target 'jjj', ['testlib/gettext.rb:49']
+ assert_target 'kkk', ['testlib/gettext.rb:50']
+ assert_target 'lllmmm', ['testlib/gettext.rb:54']
+ assert_target 'nnn\nooo', ['testlib/gettext.rb:62']
+ assert_target "\#", ['testlib/gettext.rb:66', 'testlib/gettext.rb:70']
+ assert_target "\\taaa", ['testlib/gettext.rb:74']
+ assert_target "Here document1\\nHere document2\\n", ['testlib/gettext.rb:78']
+ assert_target "Francois Pinard", ['testlib/gettext.rb:97'] do |t|
+ assert_match /proper name/, t.comment
+ assert_match /Pronunciation/, t.comment
+ end
+ assert_target "self explaining", ['testlib/gettext.rb:102'] do |t|
+ assert_nil t.comment
+ end
+ # TODO: assert_target "in_quote", ['testlib/gettext.rb:96']
+ end
+
+ def test_ruby_N
+ @ary = GetText::RGetText.parse('testlib/N_.rb')
+
+ assert_target 'aaa', ['testlib/N_.rb:8']
+ assert_target 'aaa\n', ['testlib/N_.rb:12']
+ assert_target 'bbb\nccc', ['testlib/N_.rb:16']
+ assert_target 'bbb\nccc\nddd\n', ['testlib/N_.rb:20']
+ assert_target 'eee', ['testlib/N_.rb:27', 'testlib/N_.rb:31']
+ assert_target 'fff', ['testlib/N_.rb:31']
+ assert_target 'ggghhhiii', ['testlib/N_.rb:35']
+ assert_target 'a"b"c"', ['testlib/N_.rb:41']
+ assert_target 'd"e"f"', ['testlib/N_.rb:45']
+ assert_target 'jjj', ['testlib/N_.rb:49']
+ assert_target 'kkk', ['testlib/N_.rb:50']
+ assert_target 'lllmmm', ['testlib/N_.rb:54']
+ assert_target 'nnn\nooo', ['testlib/N_.rb:62']
+ end
+
+ def test_ruby_n
+ @ary = GetText::RGetText.parse('testlib/ngettext.rb')
+ assert_plural_target "aaa", "aaa2", ['testlib/ngettext.rb:8']
+ assert_plural_target "bbb\\n", "ccc2\\nccc2", ['testlib/ngettext.rb:12']
+ assert_plural_target "ddd\\nddd", "ddd2\\nddd2", ['testlib/ngettext.rb:16']
+ assert_plural_target "eee\\neee\\n", "eee2\\neee2\\n", ['testlib/ngettext.rb:21']
+ assert_plural_target "ddd\\neee\\n", "ddd\\neee2", ['testlib/ngettext.rb:27']
+ assert_plural_target "fff", "fff2", ['testlib/ngettext.rb:34', 'testlib/ngettext.rb:38']
+ assert_plural_target "ggg", "ggg2", ['testlib/ngettext.rb:38']
+ assert_plural_target "ggghhhiii", "jjjkkklll", ['testlib/ngettext.rb:42']
+ assert_plural_target "a\"b\"c\"", "a\"b\"c\"2", ['testlib/ngettext.rb:51']
+ assert_plural_target "mmmmmm", "mmm2mmm2", ['testlib/ngettext.rb:59']
+ assert_plural_target "nnn", "nnn2", ['testlib/ngettext.rb:60']
+ assert_plural_target "comment", "comments", ['testlib/ngettext.rb:76'] do |t|
+ assert_equal "please provide translations for all \n the plural forms!", t.comment
+ end
+ end
+
+ def test_ruby_p
+ @ary = GetText::RGetText.parse('testlib/pgettext.rb')
+ assert_target_in_context "AAA", "BBB", ["testlib/pgettext.rb:8", "testlib/pgettext.rb:12"]
+ assert_target_in_context "AAA|BBB", "CCC", ["testlib/pgettext.rb:16"]
+ assert_target_in_context "AAA", "CCC", ["testlib/pgettext.rb:20"]
+ assert_target_in_context "CCC", "BBB", ["testlib/pgettext.rb:24"]
+ assert_target_in_context "program", "name", ['testlib/pgettext.rb:34'] do |t|
+ assert_equal "please translate 'name' in the context of 'program'.\n Hint: the translation should NOT contain the translation of 'program'.", t.comment
+ end
+ end
+
+ def test_glade
+ # Old style (~2.0.4)
+ ary = GetText::GladeParser.parse('testlib/gladeparser.glade')
+
+ assert_equal(['window1', 'testlib/gladeparser.glade:8'], ary[0])
+ assert_equal(['normal text', 'testlib/gladeparser.glade:29'], ary[1])
+ assert_equal(['1st line\n2nd line\n3rd line', 'testlib/gladeparser.glade:50'], ary[2])
+ assert_equal(['<span color="red" weight="bold" size="large">markup </span>', 'testlib/gladeparser.glade:73'], ary[3])
+ assert_equal(['<span color="red">1st line markup </span>\n<span color="blue">2nd line markup</span>', 'testlib/gladeparser.glade:94'], ary[4])
+ assert_equal(['<span>&quot;markup&quot; with &lt;escaped strings&gt;</span>', 'testlib/gladeparser.glade:116'], ary[5])
+ assert_equal(['duplicated', 'testlib/gladeparser.glade:137', 'testlib/gladeparser.glade:158'], ary[6])
+ end
+
+ def testlib_erb
+ @ary = GetText::ErbParser.parse('testlib/erb.rhtml')
+
+ assert_target 'aaa', ['testlib/erb.rhtml:8']
+ assert_target 'aaa\n', ['testlib/erb.rhtml:11']
+ assert_target 'bbb', ['testlib/erb.rhtml:12']
+ assert_plural_target "ccc1", "ccc2", ['testlib/erb.rhtml:13']
+ end
+
+ def test_rgettext_parse
+ GetText::ErbParser.init(:extnames => ['.rhtml', '.rxml'])
+ @ary = GetText::RGetText.parse(['testlib/erb.rhtml'])
+ assert_target 'aaa', ['testlib/erb.rhtml:8']
+ assert_target 'aaa\n', ['testlib/erb.rhtml:11']
+ assert_target 'bbb', ['testlib/erb.rhtml:12']
+ assert_plural_target "ccc1", "ccc2", ['testlib/erb.rhtml:13']
+
+ @ary = GetText::RGetText.parse(['testlib/erb.rxml'])
+ assert_target 'aaa', ['testlib/erb.rxml:9']
+ assert_target 'aaa\n', ['testlib/erb.rxml:12']
+ assert_target 'bbb', ['testlib/erb.rxml:13']
+ assert_plural_target "ccc1", "ccc2", ['testlib/erb.rxml:14']
+
+ @ary = GetText::RGetText.parse(['testlib/ngettext.rb'])
+ assert_plural_target "ooo", "ppp", ['testlib/ngettext.rb:64', 'testlib/ngettext.rb:65']
+ assert_plural_target "qqq", "rrr", ['testlib/ngettext.rb:69', 'testlib/ngettext.rb:70']
+ end
+
+ private
+
+ def assert_target(msgid, sources = nil)
+ t = @ary.detect {|elem| elem.msgid == msgid}
+ if t
+ if sources
+ assert_equal sources.sort, t.sources.sort, 'Translation target sources do not match.'
+ end
+ yield t if block_given?
+ else
+ flunk "Expected a translation target with id '#{msgid}'. Not found."
+ end
+ end
+
+ def assert_plural_target(msgid, plural, sources = nil)
+ assert_target msgid, sources do |t|
+ assert_equal plural, t.msgid_plural, 'Expected plural form'
+ yield t if block_given?
+ end
+ end
+
+ def assert_target_in_context(msgctxt, msgid, sources = nil)
+ t = @ary.detect {|elem| elem.msgid == msgid && elem.msgctxt == msgctxt}
+ if t
+ if sources
+ assert_equal sources.sort, t.sources.sort, 'Translation target sources do not match.'
+ end
+ yield t if block_given?
+ else
+ flunk "Expected a translation target with id '#{msgid}' and context '#{msgctxt}'. Not found."
+ end
+ end
+end
diff --git a/vendor/gems/gettext-2.1.0/test/test_po_generation.rb b/vendor/gems/gettext-2.1.0/test/test_po_generation.rb
new file mode 100644
index 000000000..dea071b1b
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/test/test_po_generation.rb
@@ -0,0 +1,20 @@
+require 'testlib/helper.rb'
+require 'gettext'
+require 'gettext/tools/rgettext.rb'
+require 'stringio'
+
+class TestPoGeneration < Test::Unit::TestCase
+ def test_extracted_comments
+ GetText::RGetText.run(
+ File.join(File.dirname(__FILE__), 'testlib/gettext.rb'),
+ out = StringIO.new)
+ res = out.string
+
+ # Use following to debug the content of the
+ # created file: File.open('/tmp/test.po', 'w').write(res)
+
+ assert_match '#. "Fran\u00e7ois" or (with HTML entities) "Fran&ccedil;ois".', res
+ assert_no_match /Ignored/, res, 'Only comments starting with TRANSLATORS should be extracted'
+ assert_no_match /TRANSLATORS: This is a proper name/, res, 'The prefix "TRANSLATORS:" should be skipped'
+ end
+end
diff --git a/vendor/gems/gettext-2.1.0/test/test_pomessage.rb b/vendor/gems/gettext-2.1.0/test/test_pomessage.rb
new file mode 100644
index 000000000..51b7d053d
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/test/test_pomessage.rb
@@ -0,0 +1,99 @@
+require 'testlib/helper.rb'
+require 'gettext/tools/parser/ruby'
+
+# Most functionality of PoMessage is thoroughly tested together
+# with the parser and po file generator. Here only tests for some special
+# functionality.
+class TestPoMessage < Test::Unit::TestCase
+
+ def test_context_match
+ tt1 = GetText::PoMessage.new(:msgctxt)
+ tt1.msgid = 'hello'
+ tt1.msgctxt = 'world'
+ tt2 = GetText::PoMessage.new(:normal)
+ tt2.msgid = 'hello'
+ assert_raise GetText::ParseError do
+ tt1.merge tt2
+ end
+ end
+
+ def test_attribute_accumulation
+ tt = GetText::PoMessage.new(:plural)
+ tt.set_current_attribute 'long'
+ tt.set_current_attribute ' tail'
+ tt.advance_to_next_attribute
+ tt.set_current_attribute 'long tails'
+ assert_equal 'long tail', tt.msgid
+ assert_equal 'long tails', tt.msgid_plural
+ end
+
+ def test_to_po_str_normal
+ po = GetText::PoMessage.new(:normal)
+ po.msgid = 'hello'
+ po.sources = ["file1:1", "file2:10"]
+ assert_equal "\n#: file1:1 file2:10\nmsgid \"hello\"\nmsgstr \"\"\n", po.to_po_str
+
+ po.msgctxt = 'context'
+ po.msgid_plural = 'hello2'
+ # Ignore these properties.
+ assert_equal "\n#: file1:1 file2:10\nmsgid \"hello\"\nmsgstr \"\"\n", po.to_po_str
+ end
+
+ def test_to_po_str_plural
+ po = GetText::PoMessage.new(:plural)
+ po.msgid = 'hello'
+ po.msgid_plural = 'hello2'
+ po.sources = ["file1:1", "file2:10"]
+ assert_equal "\n#: file1:1 file2:10\nmsgid \"hello\"\nmsgid_plural \"hello2\"\nmsgstr[0] \"\"\nmsgstr[1] \"\"\n", po.to_po_str
+
+ po.msgctxt = 'context'
+ # Ignore this property
+ assert_equal "\n#: file1:1 file2:10\nmsgid \"hello\"\nmsgid_plural \"hello2\"\nmsgstr[0] \"\"\nmsgstr[1] \"\"\n", po.to_po_str
+ end
+
+ def test_to_po_str_msgctxt
+ po = GetText::PoMessage.new(:msgctxt)
+ po.msgctxt = 'context'
+ po.msgid = 'hello'
+ po.sources = ["file1:1", "file2:10"]
+ assert_equal "\n#: file1:1 file2:10\nmsgctxt \"context\"\nmsgid \"hello\"\nmsgstr \"\"\n", po.to_po_str
+ end
+
+ def test_to_po_str_msgctxt_plural
+ po = GetText::PoMessage.new(:msgctxt_plural)
+ po.msgctxt = 'context'
+ po.msgid = 'hello'
+ po.msgid_plural = 'hello2'
+ po.sources = ["file1:1", "file2:10"]
+ assert_equal "\n#: file1:1 file2:10\nmsgctxt \"context\"\nmsgid \"hello\"\nmsgid_plural \"hello2\"\nmsgstr[0] \"\"\nmsgstr[1] \"\"\n", po.to_po_str
+ end
+
+ def test_to_po_str_exception
+ po = GetText::PoMessage.new(:normal)
+ po.sources = ["file1:1", "file2:10"]
+ assert_raise(RuntimeError){ po.to_po_str }
+
+ po.sources = nil
+ assert_raise(RuntimeError){ po.to_po_str }
+
+ po = GetText::PoMessage.new(:plural)
+ po.msgid = 'hello'
+ po.sources = ["file1:1", "file2:10"]
+ assert_raise(RuntimeError){ po.to_po_str }
+
+ po.msgid_plural = 'hello2'
+ po.sources = nil
+ assert_raise(RuntimeError){ po.to_po_str }
+
+ po = GetText::PoMessage.new(:msgctxt)
+ po.msgid = 'hello'
+ po.sources = ["file1:1", "file2:10"]
+ assert_raise(RuntimeError){ po.to_po_str }
+
+ po = GetText::PoMessage.new(:msgctxt_plural)
+ po.msgctxt = 'context'
+ po.msgid = 'hello'
+ po.sources = ["file1:1", "file2:10"]
+ assert_raise(RuntimeError){ po.to_po_str }
+ end
+end
diff --git a/vendor/gems/gettext-2.1.0/test/test_string.rb b/vendor/gems/gettext-2.1.0/test/test_string.rb
new file mode 100644
index 000000000..43460e134
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/test/test_string.rb
@@ -0,0 +1,65 @@
+require 'testlib/helper.rb'
+
+class TestGetTextString < Test::Unit::TestCase
+ def test_sprintf
+ assert_equal("foo is a number", "%{msg} is a number" % {:msg => "foo"})
+ assert_equal("bar is a number", "%s is a number" % ["bar"])
+ assert_equal("bar is a number", "%s is a number" % "bar")
+ assert_equal("1, test", "%{num}, %{record}" % {:num => 1, :record => "test"})
+ assert_equal("test, 1", "%{record}, %{num}" % {:num => 1, :record => "test"})
+ assert_equal("1, test", "%d, %s" % [1, "test"])
+ assert_equal("test, 1", "%2$s, %1$d" % [1, "test"])
+ assert_raise(ArgumentError) { "%-%" % [1] }
+ end
+
+ def test_sprintf_placeholder_include_non_english
+ assert_equal("a", "%{foo+foo}" % {"foo+foo".to_sym => "a"})
+ assert_equal("a", "%{foo.foo}" % {"foo.foo".to_sym => "a"})
+ assert_equal("a }", "%{foo+foo} }" % {"foo+foo".to_sym => "a"})
+ assert_equal("a { b }", "%{foo+foo} { %{bar bar-} }" % {"foo+foo".to_sym => "a", "bar bar-".to_sym => "b"})
+ end
+
+ def test_percent
+ assert_equal("% 1", "%% %<num>d" % {:num => 1.0})
+ assert_equal("%{num} %<num>d", "%%{num} %%<num>d" % {:num => 1})
+ end
+
+ def test_sprintf_percent_in_replacement
+ assert_equal("%<not_translated>s", "%{msg}" % { :msg => '%<not_translated>s', :not_translated => 'should not happen' })
+ end
+
+ def test_sprintf_lack_argument
+ assert_equal("%{num}, test", "%{num}, %{record}" % {:record => "test"})
+ assert_equal("%{record}", "%{record}" % {:num => 1})
+ end
+
+ def test_no_placeholder
+ assert_equal("aaa", "aaa" % {:num => 1})
+ assert_equal("bbb", "bbb" % [1])
+ end
+
+ def test_sprintf_ruby19_style
+ assert_equal("1", "%<num>d" % {:num => 1})
+ assert_equal("0b1", "%<num>#b" % {:num => 1})
+ assert_equal("foo", "%<msg>s" % {:msg => "foo"})
+ assert_equal("1.000000", "%<num>f" % {:num => 1.0})
+ assert_equal(" 1", "%<num>3.0f" % {:num => 1.0})
+ assert_equal("100.00", "%<num>2.2f" % {:num => 100.0})
+ assert_equal("0x64", "%<num>#x" % {:num => 100.0})
+ assert_equal("a", "%<foo.foo>s" % {"foo.foo".to_sym => "a"})
+ assert_raise(ArgumentError) { "%<num>,d" % {:num => 100} }
+ assert_raise(ArgumentError) { "%<num>/d" % {:num => 100} }
+ end
+
+ def test_sprintf_old_style
+ assert_equal("foo 1.000000", "%s %f" % ["foo", 1.0])
+ end
+
+ def test_sprintf_mix
+ assert_equal("foo 1.000000", "%{name} %<num>f" % {:name => "foo", :num => 1.0})
+ assert_equal("%{name} 1.000000", "%{name} %f" % [1.0])
+ assert_equal("%{name} 1.000000", "%{name} %f" % [1.0, 2.0])
+ end
+
+
+end
diff --git a/vendor/gems/gettext-2.1.0/test/test_textdomain_bind.rb b/vendor/gems/gettext-2.1.0/test/test_textdomain_bind.rb
new file mode 100644
index 000000000..d44d831c1
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/test/test_textdomain_bind.rb
@@ -0,0 +1,37 @@
+require 'testlib/helper.rb'
+
+class Foo
+end
+
+class TestGetTextBind < Test::Unit::TestCase
+ def setup
+ GetText.locale = "ja_JP.EUC-JP"
+ GetText::TextDomainManager.clear_all_textdomains
+ end
+
+ def test_bindtextdomain
+ domain = GetText.bindtextdomain("foo")
+ assert_equal domain, GetText::TextDomainManager.create_or_find_textdomain_group(Object).textdomains[0]
+ assert_equal domain, GetText::TextDomainManager.textdomain_pool("foo")
+ end
+
+ def test_textdomain
+ domain1 = GetText.bindtextdomain("foo")
+
+ assert_equal domain1, GetText.textdomain("foo")
+
+ assert_raise(GetText::NoboundTextDomainError) {
+ GetText.textdomain_to(Foo, "bar")
+ }
+ end
+
+ def test_textdomain_to
+ domain1 = GetText.bindtextdomain("foo")
+
+ assert_equal domain1, GetText.textdomain_to(Foo, "foo")
+
+ assert_raise(GetText::NoboundTextDomainError) {
+ GetText.textdomain_to(Foo, "bar")
+ }
+ end
+end
diff --git a/vendor/gems/gettext-2.1.0/test/test_textdomain_multi.rb b/vendor/gems/gettext-2.1.0/test/test_textdomain_multi.rb
new file mode 100644
index 000000000..2278e7e22
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/test/test_textdomain_multi.rb
@@ -0,0 +1,80 @@
+require 'testlib/helper.rb'
+require 'testlib/multi_textdomain.rb'
+
+class TestGetTextMulti < Test::Unit::TestCase
+
+ def setup
+ GetText.locale = "ja"
+ end
+
+ def test_two_domains_in_a_class
+
+ test = C11.new
+ assert_equal("japanese", test.test) # Use test1.po
+ assert_equal("JAPANESE", test.test2) # Use test2.po
+
+ test = C12.new
+ assert_equal("japanese", test.test) # Use test1.po
+ assert_equal("JAPANESE", test.test2) # Use test2.po
+ end
+
+ def test_inheritance
+ # inheritance. only parent has a textdomain and it's methods
+ test = C21.new
+ assert_equal("japanese", test.test) # Use C11's po(test1.po)
+ assert_equal("JAPANESE", test.test2) # Use C11's po(test2.po)
+
+ test = C22.new
+ assert_equal("japanese", test.test) # Use C11's po(test1.po)
+ assert_equal("JAPANESE", test.test2) # Use C11's po(test2.po)
+ end
+
+ def test_module_and_sub_modules
+ # module
+ assert_equal("japanese", M1.test)
+
+ # sub-module. only an included module has a textdomain and it's methods
+ assert_equal("japanese", M1::M1M1.test) # Same method with M1.
+ assert_equal("LANGUAGE", M1::M1M1.test2) # No influence from ancestors.
+
+ # sub-class (class bindtextdomain).
+ test = M1::M1C1.new
+ assert_equal("japanese", test.test) # Use test1.po
+ assert_equal("JAPANESE", test.test2) # Use test2.po
+
+ # sub-class (instance bindtextdomain).
+ test = M1::M1C2.new
+ assert_equal("japanese", test.test) # Use test1.po
+ assert_equal("JAPANESE", test.test2) # Use test2.po
+ end
+
+ def test_eval
+ test = C2.new
+ assert_equal("japanese", test.test) # Use test1.po
+ end
+
+ def test_as_class_methods
+ test = C3.new
+ assert_equal("japanese", test.test) # Use test1.po
+ assert_equal("japanese", C3.test) # Use test1.po
+ end
+
+ def test_simple_inheritance
+ test = C4.new
+ assert_equal("japanese", test.test) # Use C3's test1.po
+ assert_equal("japanese", C4.test) # Use C3's test1.po
+ assert_equal("JAPANESE", test.test2) # Use C4's test2.po
+ assert_equal("no data", test.test3) # No po file.
+ end
+
+ def test_same_msgid_but_different_textdomain
+ test1 = C12.new # test1 domain
+ test2 = C51.new # test3 domain
+ test3 = C52.new # test3 domain but inherited C11.
+
+ assert_equal("japanese", test1.test) # Use text1 message
+ assert_equal("JAPANESE", test2.test) # Use text3 message
+ assert_equal("JAPANESE", test3.test) # Use text3 message
+ end
+
+end
diff --git a/vendor/gems/gettext-2.1.0/test/test_textdomain_toplevel.rb b/vendor/gems/gettext-2.1.0/test/test_textdomain_toplevel.rb
new file mode 100644
index 000000000..0e737bfa3
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/test/test_textdomain_toplevel.rb
@@ -0,0 +1,42 @@
+require 'testlib/helper.rb'
+include GetText
+
+bindtextdomain("test1", :path => "locale")
+module M1
+ module_function
+ def module_function
+ _("language")
+ end
+end
+
+class C1
+ def instance_method
+ _("language")
+ end
+ def self.class_method
+ _("language")
+ end
+end
+
+def toplevel_method
+ _("language")
+end
+
+class TestGetText < Test::Unit::TestCase
+ include GetText
+
+ def test_toplevel
+ GetText.locale = "ja"
+ assert_equal("japanese", toplevel_method)
+ assert_equal("japanese", M1.module_function)
+ assert_equal("japanese", C1.class_method)
+ assert_equal("japanese", C1.new.instance_method)
+
+ GetText::TextDomainManager.clear_all_textdomains
+ GetText.bindtextdomain("test1", :path => "locale")
+ assert_equal("japanese", toplevel_method)
+ assert_equal("japanese", M1.module_function)
+ assert_equal("japanese", C1.class_method)
+ assert_equal("japanese", C1.new.instance_method)
+ end
+end
diff --git a/vendor/gems/gettext-2.1.0/test/test_thread.rb b/vendor/gems/gettext-2.1.0/test/test_thread.rb
new file mode 100644
index 000000000..5fa8be84f
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/test/test_thread.rb
@@ -0,0 +1,41 @@
+require 'testlib/helper.rb'
+require 'thread'
+
+class TestThread < Test::Unit::TestCase
+ include GetText
+
+ bindtextdomain "test1", :path => "locale"
+
+ def setup
+ Locale.init(:driver => :env)
+ @mutex = Mutex.new
+ end
+
+ def invoke_thread(tag, language, sleep_time)
+ Thread.start do
+ @mutex.synchronize {
+ Thread.current["language"] = language
+ GetText.current_locale = tag
+ }
+ (1..10).each do |v|
+ @mutex.synchronize{
+ assert_equal Thread.current["language"], _("language")
+ }
+ print "."
+ $stdout.flush
+ sleep sleep_time
+ end
+ end
+ end
+
+ def test_thread
+ th1 = invoke_thread("ja_JP.eucJP", "japanese", 0.4)
+ th2 = invoke_thread("fr", "french", 0.3)
+ th3 = invoke_thread("en", "language", 0.1)
+ th4 = invoke_thread("zh_CN", "language", 0.2) # No translation.
+ th1.join
+ th2.join
+ th3.join
+ th4.join
+ end
+end
diff --git a/vendor/gems/gettext-2.1.0/test/testlib/N_.rb b/vendor/gems/gettext-2.1.0/test/testlib/N_.rb
new file mode 100644
index 000000000..f69b6ede2
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/test/testlib/N_.rb
@@ -0,0 +1,66 @@
+require 'gettext'
+include GetText
+
+class TestRubyParser_N
+ bindtextdomain("testN_rubyparser", :path => "locale")
+
+ def testN_1
+ N_("aaa")
+ end
+
+ def testN_2
+ N_("aaa\n")
+ end
+
+ def testN_3
+ N_("bbb\nccc")
+ end
+
+ def testN_4
+ N_("bbb
+ccc
+ddd
+")
+ end
+
+ def testN_5
+ N_("eee")
+ end
+
+ def testN_6
+ N_("eee") + "foo" + N_("fff")
+ end
+
+ def testN_7
+ N_("ggg"\
+ "hhh"\
+ "iii")
+ end
+
+ def testN_8
+ N_('a"b"c"')
+ end
+
+ def testN_9
+ N_("d\"e\"f\"")
+ end
+
+ def testN_10
+ N_("jjj") +
+ N_("kkk")
+ end
+
+ def testN_11
+ N_("lll" + "mmm")
+ end
+
+ def testN_12
+ puts N_(msg), "ppp" #Ignored
+ end
+
+ def testN_13
+ N_("nnn\n" +
+ "ooo")
+ end
+end
+
diff --git a/vendor/gems/gettext-2.1.0/test/testlib/erb.rhtml b/vendor/gems/gettext-2.1.0/test/testlib/erb.rhtml
new file mode 100644
index 000000000..d19c75cf2
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/test/testlib/erb.rhtml
@@ -0,0 +1,15 @@
+<%
+ require 'gettext'
+ include GetText
+ bindtextdomain("helloerb", :path => "locale")
+%>
+<html>
+<head>
+<title><%= _("aaa") %></title>
+</head>
+<body>
+<h1><%= _("aaa\n") %></h1>
+<p><%= N_("bbb") %></p>
+<p><%= n_("ccc1", "ccc2", 1) %></p>
+</body>
+</html>
diff --git a/vendor/gems/gettext-2.1.0/test/testlib/erb.rxml b/vendor/gems/gettext-2.1.0/test/testlib/erb.rxml
new file mode 100644
index 000000000..cb0f1a269
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/test/testlib/erb.rxml
@@ -0,0 +1,16 @@
+<?xml version="1.0" standalone="no"?>
+<%
+ require 'gettext'
+ include GetText
+ bindtextdomain("helloerb", :path => "locale")
+%>
+<html>
+<head>
+<title><%= _("aaa") %></title>
+</head>
+<body>
+<h1><%= _("aaa\n") %></h1>
+<p><%= N_("bbb") %></p>
+<p><%= n_("ccc1", "ccc2", 1) %></p>
+</body>
+</html>
diff --git a/vendor/gems/gettext-2.1.0/test/testlib/gettext.rb b/vendor/gems/gettext-2.1.0/test/testlib/gettext.rb
new file mode 100644
index 000000000..0324e9424
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/test/testlib/gettext.rb
@@ -0,0 +1,113 @@
+require 'gettext'
+include GetText
+
+class TestRubyParser
+ bindtextdomain("rubyparser", :path => "locale")
+
+ def test_1
+ _("aaa")
+ end
+
+ def test_2
+ _("aaa\n")
+ end
+
+ def test_3
+ _("bbb\nccc")
+ end
+
+ def test_4
+ _("bbb
+ccc
+ddd
+")
+ end
+
+ def test_5
+ _("eee")
+ end
+
+ def test_6
+ _("eee") + "foo" + _("fff")
+ end
+
+ def test_7
+ _("ggg"\
+ "hhh"\
+ "iii")
+ end
+
+ def test_8
+ _('a"b"c"')
+ end
+
+ def test_9
+ _("d\"e\"f\"")
+ end
+
+ def test_10
+ _("jjj") +
+ _("kkk")
+ end
+
+ def test_11
+ _("lll" + "mmm")
+ end
+
+ def test_12
+ puts _(msg), "ppp" #Ignored
+ end
+
+ def test_13
+ _("nnn\n" +
+ "ooo")
+ end
+ def test_14
+ _("\#")
+ end
+
+ def test_15
+ _('#')
+ end
+
+ def test_16
+ _('\taaa')
+ end
+
+ def test_17
+ ret = _(<<EOF
+Here document1
+Here document2
+EOF
+)
+ end
+
+ def test_18
+ "<div>#{_('in_quote')}</div>"
+ end
+
+ def about
+ puts (
+ # TRANSLATORS: This is a proper name. See the gettext
+ # manual, section Names. Note this is actually a non-ASCII
+ # name: The first name is (with Unicode escapes)
+ # "Fran\u00e7ois" or (with HTML entities) "Fran&ccedil;ois".
+ # Pronunciation is like "fraa-swa pee-nar".
+ # This is an example from GNU gettext documentation.
+ _("Francois Pinard"))
+
+ puts (
+ # This comment should not be extracted because it does
+ # not start with 'TRANSLATORS:'
+ _('self explaining'))
+ end
+
+end
+
+module ActionController
+ class Base
+ end
+end
+class ApplicationController < ActionController::Base
+ "#{Time.now.strftime('%m/%d')}"
+end
diff --git a/vendor/gems/gettext-2.1.0/test/testlib/gladeparser.glade b/vendor/gems/gettext-2.1.0/test/testlib/gladeparser.glade
new file mode 100644
index 000000000..0e278cc61
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/test/testlib/gladeparser.glade
@@ -0,0 +1,183 @@
+<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*-->
+<!DOCTYPE glade-interface SYSTEM "http://glade.gnome.org/glade-2.0.dtd">
+
+<glade-interface>
+
+<widget class="GtkWindow" id="window1">
+ <property name="visible">True</property>
+ <property name="title" translatable="yes">window1</property>
+ <property name="type">GTK_WINDOW_TOPLEVEL</property>
+ <property name="window_position">GTK_WIN_POS_NONE</property>
+ <property name="modal">False</property>
+ <property name="resizable">True</property>
+ <property name="destroy_with_parent">False</property>
+ <property name="decorated">True</property>
+ <property name="skip_taskbar_hint">False</property>
+ <property name="skip_pager_hint">False</property>
+ <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
+ <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+
+ <child>
+ <widget class="GtkVBox" id="vbox1">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">0</property>
+
+ <child>
+ <widget class="GtkLabel" id="label4">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">normal text</property>
+ <property name="use_underline">False</property>
+ <property name="use_markup">False</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkLabel" id="label5">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">1st line
+2nd line
+3rd line</property>
+ <property name="use_underline">False</property>
+ <property name="use_markup">False</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkLabel" id="label6">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">&lt;span color=&quot;red&quot; weight=&quot;bold&quot; size=&quot;large&quot;&gt;markup &lt;/span&gt;</property>
+ <property name="use_underline">False</property>
+ <property name="use_markup">True</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkLabel" id="label7">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">&lt;span color=&quot;red&quot;&gt;1st line markup &lt;/span&gt;
+&lt;span color=&quot;blue&quot;&gt;2nd line markup&lt;/span&gt;</property>
+ <property name="use_underline">False</property>
+ <property name="use_markup">True</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkLabel" id="label8">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">&lt;span&gt;&amp;quot;markup&amp;quot; with &amp;lt;escaped strings&amp;gt;&lt;/span&gt;</property>
+ <property name="use_underline">False</property>
+ <property name="use_markup">True</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkLabel" id="label9">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">duplicated</property>
+ <property name="use_underline">False</property>
+ <property name="use_markup">False</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <widget class="GtkLabel" id="label10">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">duplicated</property>
+ <property name="use_underline">False</property>
+ <property name="use_markup">False</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ </widget>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+
+ <child>
+ <placeholder/>
+ </child>
+ </widget>
+ </child>
+</widget>
+
+</glade-interface>
diff --git a/vendor/gems/gettext-2.1.0/test/testlib/helper.rb b/vendor/gems/gettext-2.1.0/test/testlib/helper.rb
new file mode 100644
index 000000000..17754901c
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/test/testlib/helper.rb
@@ -0,0 +1,11 @@
+$LOAD_PATH.unshift File.expand_path("../../lib", File.dirname(__FILE__))
+require 'test/unit'
+
+require 'rubygems'
+require 'gettext'
+
+#optional gems
+begin
+ require 'redgreen'
+rescue LoadError
+end
diff --git a/vendor/gems/gettext-2.1.0/test/testlib/multi_textdomain.rb b/vendor/gems/gettext-2.1.0/test/testlib/multi_textdomain.rb
new file mode 100644
index 000000000..dd9070b01
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/test/testlib/multi_textdomain.rb
@@ -0,0 +1,131 @@
+class C11
+ include GetText
+ def initialize
+ bindtextdomain("test1", :path => "locale")
+ bindtextdomain("test2", :path => "locale")
+ end
+ def test
+ _("language")
+ end
+ def test2
+ _("LANGUAGE")
+ end
+end
+
+class C12
+ include GetText
+ bindtextdomain("test1", :path => "locale")
+ bindtextdomain("test2", :path => "locale")
+
+ def test
+ _("language")
+ end
+ def test2
+ _("LANGUAGE")
+ end
+end
+
+class C21 < C11
+end
+
+class C22 < C12
+end
+
+module M1
+ include GetText
+ bindtextdomain("test1", :path => "locale")
+
+ module_function
+ def test
+ _("language")
+ end
+
+ module M1M1
+ include GetText
+ module_function
+ def test
+ _("language")
+ end
+ # Doesn't translate
+ def test2
+ _("LANGUAGE")
+ end
+ end
+
+ class M1C1
+ include GetText
+ bindtextdomain("test2", :path => "locale")
+ def test
+ _("language")
+ end
+ def test2
+ _("LANGUAGE")
+ end
+ end
+
+ class M1C2
+ include GetText
+ def initialize
+ bindtextdomain("test2", :path => "locale")
+ end
+ def test
+ _("language")
+ end
+ def test2
+ _("LANGUAGE")
+ end
+ end
+
+end
+
+class C2
+ include GetText
+ def initialize
+ bindtextdomain("test1", :path => "locale")
+ end
+
+ def test
+ _("language")
+ end
+
+ def test_eval
+ eval("_(\"language\")")
+ end
+end
+
+class C3
+ include GetText
+ bindtextdomain("test1", :path => "locale")
+
+ def test
+ _("language")
+ end
+
+ def self.test
+ _("language")
+ end
+end
+
+class C4 < C3
+ bindtextdomain("test2", :path => "locale")
+
+ def test2
+ _("LANGUAGE")
+ end
+
+ def test3
+ _("no data")
+ end
+end
+
+class C51
+ include GetText
+ bindtextdomain("test3", :path => "locale")
+ def test
+ _("language")
+ end
+end
+
+class C52 < C12
+ bindtextdomain("test3", :path => "locale")
+end
diff --git a/vendor/gems/gettext-2.1.0/test/testlib/ngettext.rb b/vendor/gems/gettext-2.1.0/test/testlib/ngettext.rb
new file mode 100644
index 000000000..d28eda695
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/test/testlib/ngettext.rb
@@ -0,0 +1,79 @@
+require 'gettext'
+include GetText
+
+class TestRubyParser_n
+ bindtextdomain("rubyparser", :path => "locale")
+
+ def test_1
+ n_("aaa","aaa2",1)
+ end
+
+ def test_2
+ n_("bbb\n", "ccc2\nccc2", 1)
+ end
+
+ def test_3_1
+ n_("ddd\nddd",
+ "ddd2\nddd2",
+ 1)
+ end
+ def test_3_2
+ n_("eee\neee\n" ,
+ "eee2\neee2\n" ,
+ 1)
+ end
+
+ def test_4
+ n_("ddd
+eee
+", "ddd
+eee2", 1)
+ end
+
+ def test_5_1
+ n_("fff", "fff2", 1)
+ end
+
+ def test_5_2
+ n_("fff", "fff2", 1) + "foo" + n_("ggg", "ggg2", 1)
+ end
+
+ def test_6
+ n_("ggg"\
+ "hhh"\
+ "iii",
+ "jjj"\
+ "kkk"\
+ "lll", 1)
+ end
+
+ def test_7
+ n_('a"b"c"', 'a"b"c"2', 1)
+ end
+
+ def test_8
+ n_("d\"e\"f\"", "d\"e\"f\"2", 1)
+ end
+
+ def test_9
+ n_("mmm" + "mmm","mmm2" + "mmm2",1) +
+ n_("nnn" ,"nnn2" ,1)
+ end
+
+ def test_10
+ _("ooo")
+ n_("ooo", "ppp", 1)
+ end
+
+ def test_11
+ n_("qqq", "rrr", 1)
+ n_("qqq", "sss", 1) # This is merged to "qqq" with plural form "rrr".
+ end
+
+ def extracted_comments
+ # TRANSLATORS:please provide translations for all
+ # the plural forms!
+ n_('comment', 'comments', 2)
+ end
+end
+
diff --git a/vendor/gems/gettext-2.1.0/test/testlib/npgettext.rb b/vendor/gems/gettext-2.1.0/test/testlib/npgettext.rb
new file mode 100644
index 000000000..b92c6cda7
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/test/testlib/npgettext.rb
@@ -0,0 +1,31 @@
+require 'gettext'
+
+class TestNPGetText
+ include GetText
+ bindtextdomain("npgettext", :path => "locale")
+
+ def test_1
+ [np_("Magazine", "a book", "%{num} books", 1),
+ np_("Magazine", "a book", "%{num} books", 2)]
+ end
+
+ def test_2
+ [npgettext("Magazine", "a book", "%{num} books", 1),
+ npgettext("Magazine", "a book", "%{num} books", 2)]
+ end
+
+ def test_3
+ [np_("Hardcover", "a book", "%{num} books", 1),
+ np_("Hardcover", "a book", "%{num} books", 2)]
+ end
+
+ def test_4
+ [np_("Magaine", "I have a magazine", "I have %{num} magazines", 1),
+ np_("Magaine", "I have a magazine", "I have %{num} magazines", 2)]
+ end
+
+ def test_5
+ [np_("Hardcover", "a picture", "%{num} pictures", 1),
+ np_("Hardcover", "a picture", "%{num} pictures", 2)] #not found.
+ end
+end
diff --git a/vendor/gems/gettext-2.1.0/test/testlib/nsgettext.rb b/vendor/gems/gettext-2.1.0/test/testlib/nsgettext.rb
new file mode 100644
index 000000000..67ef25be5
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/test/testlib/nsgettext.rb
@@ -0,0 +1,42 @@
+require 'gettext'
+
+class TestNSGetText
+ include GetText
+ bindtextdomain("nsgettext", :path => "locale")
+
+ def test_1
+ [ns_("AAA|BBB", "CCC", 1), ns_("AAA|BBB", "CCC", 2)]
+ end
+
+ def test_2
+ [nsgettext("AAA|BBB", "CCC", 1), nsgettext("AAA|BBB", "CCC", 2)]
+ end
+
+ def test_3
+ [ns_("AAA", "BBB", 1), ns_("AAA", "BBB", 2)] #not found
+ end
+
+ def test_4
+ [ns_("AAA|CCC", "DDD", 1), ns_("AAA|CCC", "DDD", 2)] #not found
+ end
+
+ def test_5
+ [ns_("AAA|BBB|CCC", "DDD", 1), ns_("AAA|BBB|CCC", "DDD", 2)] #not found
+ end
+
+ def test_6
+ [ns_("AAA$BBB", "CCC", 1, "$"), ns_("AAA$BBB", "CCC", 2, "$")] #not found
+ end
+
+ def test_7
+ [ns_("AAA$B|BB", "CCC", 1, "$"), ns_("AAA$B|BB", "CCC", 2, "$")] #not found
+ end
+
+ def test_8
+ [ns_("AAA$B|CC", "DDD", 1, "$"), ns_("AAA$B|CC", "DDD", 2, "$")]
+ end
+
+ def test_9
+ [ns_("AAA|CCC|BBB", "DDD", 1), ns_("AAA|CCC|BBB", "DDD", 2)] #not found
+ end
+end
diff --git a/vendor/gems/gettext-2.1.0/test/testlib/pgettext.rb b/vendor/gems/gettext-2.1.0/test/testlib/pgettext.rb
new file mode 100644
index 000000000..2d4c6fd60
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/test/testlib/pgettext.rb
@@ -0,0 +1,36 @@
+require 'gettext'
+
+class TestPGetText
+ include GetText
+ bindtextdomain("pgettext", :path => "locale")
+
+ def test_1
+ p_("AAA", "BBB")
+ end
+
+ def test_2
+ pgettext("AAA", "BBB")
+ end
+
+ def test_3
+ pgettext("AAA|BBB", "CCC")
+ end
+
+ def test_4
+ p_("AAA", "CCC") #not found
+ end
+
+ def test_5
+ p_("CCC", "BBB")
+ end
+
+ def test_6 # not pgettext.
+ _("BBB")
+ end
+
+ def with_context
+ # TRANSLATORS:please translate 'name' in the context of 'program'.
+ # Hint: the translation should NOT contain the translation of 'program'.
+ p_('program', 'name')
+ end
+end
diff --git a/vendor/gems/gettext-2.1.0/test/testlib/sgettext.rb b/vendor/gems/gettext-2.1.0/test/testlib/sgettext.rb
new file mode 100644
index 000000000..050e266bf
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/test/testlib/sgettext.rb
@@ -0,0 +1,46 @@
+require 'gettext'
+
+class TestSGetText
+ include GetText
+ bindtextdomain("sgettext", :path => "locale")
+
+ def test_1
+ s_("AAA|BBB")
+ end
+
+ def test_2
+ sgettext("AAA|BBB")
+ end
+
+ def test_3
+ s_("AAA") #not found
+ end
+
+ def test_4
+ s_("AAA|CCC") #not found
+ end
+
+ def test_5
+ s_("AAA|BBB|CCC") #not found
+ end
+
+ def test_6
+ s_("AAA$BBB", "$") #not found
+ end
+
+ def test_7
+ s_("AAA$B|BB", "$") #not found
+ end
+
+ def test_8
+ s_("AAA$B|CC", "$")
+ end
+
+ def test_9
+ s_("AAA|CCC|BBB") #not found
+ end
+
+ def setlocale(locale)
+ __setlocale(locale)
+ end
+end
diff --git a/vendor/gems/gettext-2.1.0/test/testlib/simple.rb b/vendor/gems/gettext-2.1.0/test/testlib/simple.rb
new file mode 100644
index 000000000..64339894a
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/test/testlib/simple.rb
@@ -0,0 +1,14 @@
+require 'gettext'
+
+class Simple
+ include GetText
+ bindtextdomain("test1", :path => "locale")
+
+ def test
+ _("language")
+ end
+
+ def test_formatted_string
+ _("one is %d.") % 1
+ end
+end
diff --git a/vendor/gems/gettext-2.1.0/test/tools/files/app.pot b/vendor/gems/gettext-2.1.0/test/tools/files/app.pot
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/test/tools/files/app.pot
diff --git a/vendor/gems/gettext-2.1.0/test/tools/files/de/app.po b/vendor/gems/gettext-2.1.0/test/tools/files/de/app.po
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/test/tools/files/de/app.po
diff --git a/vendor/gems/gettext-2.1.0/test/tools/files/en/app.po b/vendor/gems/gettext-2.1.0/test/tools/files/en/app.po
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/test/tools/files/en/app.po
diff --git a/vendor/gems/gettext-2.1.0/test/tools/files/en/test.po b/vendor/gems/gettext-2.1.0/test/tools/files/en/test.po
new file mode 100644
index 000000000..2226dc919
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/test/tools/files/en/test.po
@@ -0,0 +1,21 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: x\n"
+"POT-Creation-Date: 2009-02-15 09:23+0100\n"
+"PO-Revision-Date: 2009-02-15 09:23+0100\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
+
+#: tools/files/simple_translation.rb:1
+msgid "a translation"
+msgstr ""
diff --git a/vendor/gems/gettext-2.1.0/test/tools/files/simple_1.po b/vendor/gems/gettext-2.1.0/test/tools/files/simple_1.po
new file mode 100644
index 000000000..89993dcfa
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/test/tools/files/simple_1.po
@@ -0,0 +1,2 @@
+msgid "x"
+msgstr "y" \ No newline at end of file
diff --git a/vendor/gems/gettext-2.1.0/test/tools/files/simple_2.po b/vendor/gems/gettext-2.1.0/test/tools/files/simple_2.po
new file mode 100644
index 000000000..c404c0ced
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/test/tools/files/simple_2.po
@@ -0,0 +1,2 @@
+msgid "a"
+msgstr "b" \ No newline at end of file
diff --git a/vendor/gems/gettext-2.1.0/test/tools/files/simple_translation.rb b/vendor/gems/gettext-2.1.0/test/tools/files/simple_translation.rb
new file mode 100644
index 000000000..16e182a01
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/test/tools/files/simple_translation.rb
@@ -0,0 +1 @@
+_('a translation') \ No newline at end of file
diff --git a/vendor/gems/gettext-2.1.0/test/tools/files/version.po b/vendor/gems/gettext-2.1.0/test/tools/files/version.po
new file mode 100644
index 000000000..e4aaca21a
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/test/tools/files/version.po
@@ -0,0 +1,7 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: ruby-gettext 2.0.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+
+msgid "x"
+msgstr "x" \ No newline at end of file
diff --git a/vendor/gems/gettext-2.1.0/test/tools/test.pot b/vendor/gems/gettext-2.1.0/test/tools/test.pot
new file mode 100644
index 000000000..772ecc07b
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/test/tools/test.pot
@@ -0,0 +1,21 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: x\n"
+"POT-Creation-Date: 2009-02-15 09:22+0100\n"
+"PO-Revision-Date: 2009-02-15 09:22+0100\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
+
+#: tools/files/simple_translation.rb:1
+msgid "a translation"
+msgstr ""
diff --git a/vendor/gems/gettext-2.1.0/test/tools/test_tools.rb b/vendor/gems/gettext-2.1.0/test/tools/test_tools.rb
new file mode 100644
index 000000000..9f75f4e6a
--- /dev/null
+++ b/vendor/gems/gettext-2.1.0/test/tools/test_tools.rb
@@ -0,0 +1,61 @@
+require 'testlib/helper'
+
+require 'gettext/tools'
+class TestToolsTools < Test::Unit::TestCase
+ def setup
+ FileUtils.cp_r "tools/files", "tools/test_files"
+ end
+ def teardown
+ FileUtils.rm_rf "tools/test_files"
+ end
+
+ def test_msgmerge_merges_old_and_new_po_file
+ GetText.msgmerge(path('simple_1.po'),path('simple_2.po'),'X',:msgmerge=>[:sort_output,:no_location])
+ assert_equal File.read(path('simple_1.po')), <<EOF
+msgid "a"
+msgstr "b"
+
+#~ msgid "x"
+#~ msgstr "y"
+EOF
+ end
+
+ def test_msgmerge_inserts_the_new_version
+ old = backup('version.po')
+ GetText.msgmerge(old,path('version.po'),'NEW')
+ assert File.read(old) =~ /"Project-Id-Version: NEW\\n"/
+ end
+
+ def test_update_pofiles_updates_a_single_language
+ GetText.update_pofiles('app',[path('simple_translation.rb')],'x',:po_root=>path('.'),:lang=>'en',:msgmerge=>[:no_location])
+ text = <<EOF
+msgid "a translation"
+msgstr ""
+EOF
+ assert_equal text, File.read(path('app.pot'))
+ assert_equal text, File.read(path('en/app.po'))
+ assert_equal '', File.read(path('de/app.po'))
+ end
+
+ def test_update_pofiles_updates_creates_po_folder_if_missing
+ GetText.update_pofiles('app',[path('simple_translation.rb')],'x',:po_root=>path('./xx'))
+ assert File.exist?(path('xx/app.pot'))
+ end
+
+ def test_create_mofiles_generates_mo_for_each_po
+ GetText.create_mofiles(:po_root=>path('.'),:mo_root=>path('mo'))
+ assert File.exist?(path('mo/en/LC_MESSAGES/app.mo'))
+ assert File.exist?(path('mo/de/LC_MESSAGES/app.mo'))
+ end
+private
+
+ def backup(name)
+ copy = path(name+".bak")
+ FileUtils.cp path(name), copy
+ copy
+ end
+
+ def path(name)
+ File.join(File.dirname(__FILE__),'test_files',name)
+ end
+end \ No newline at end of file
diff --git a/vendor/gems/locale-2.0.5/.specification b/vendor/gems/locale-2.0.5/.specification
new file mode 100644
index 000000000..7d3263441
--- /dev/null
+++ b/vendor/gems/locale-2.0.5/.specification
@@ -0,0 +1,98 @@
+--- !ruby/object:Gem::Specification
+name: locale
+version: !ruby/object:Gem::Version
+ version: 2.0.5
+platform: ruby
+authors:
+- Masao Mutoh
+autorequire:
+bindir: bin
+cert_chain: []
+
+date: 2009-11-13 00:00:00 +00:00
+default_executable:
+dependencies: []
+
+description: Ruby-Locale is the pure ruby library which provides basic APIs for localization.
+email: mutomasa at gmail.com
+executables: []
+
+extensions: []
+
+extra_rdoc_files: []
+
+files:
+- lib/locale.rb
+- lib/locale/tag/posix.rb
+- lib/locale/tag/irregular.rb
+- lib/locale/tag/rfc.rb
+- lib/locale/tag/simple.rb
+- lib/locale/tag/cldr.rb
+- lib/locale/tag/common.rb
+- lib/locale/taglist.rb
+- lib/locale/driver/posix.rb
+- lib/locale/driver/win32.rb
+- lib/locale/driver/win32_table.rb
+- lib/locale/driver/jruby.rb
+- lib/locale/driver/env.rb
+- lib/locale/driver/cgi.rb
+- lib/locale/util/memoizable.rb
+- lib/locale/data/regions.tab.gz
+- lib/locale/data/languages.tab.gz
+- lib/locale/info/region.rb
+- lib/locale/info/language.rb
+- lib/locale/version.rb
+- lib/locale/info.rb
+- lib/locale/tag.rb
+- setup.rb
+- test/test_tag.rb
+- test/test_memoizable.rb
+- test/test_driver_jruby.rb
+- test/test_info.rb
+- test/test_driver_win32.rb
+- test/test_detect_general.rb
+- test/test_taglist.rb
+- test/test_detect_cgi.rb
+- test/test_thread.rb
+- Rakefile
+- README.rdoc
+- ChangeLog
+- COPYING
+- samples/rack/hello_rack.ru
+- samples/rack/hello_rack.rb
+- samples/rack/README
+- samples/sample_info.rb
+- samples/cgi/http.rb
+- samples/cgi/locale.css
+- samples/cgi/index.cgi
+- samples/cgi/README
+- samples/cgi/cookie.cgi
+- samples/sample_1.rb
+has_rdoc: true
+homepage: http://locale.rubyforge.org/
+post_install_message:
+rdoc_options: []
+
+require_paths:
+- lib
+required_ruby_version: !ruby/object:Gem::Requirement
+ requirements:
+ - - ">="
+ - !ruby/object:Gem::Version
+ version: "0"
+ version:
+required_rubygems_version: !ruby/object:Gem::Requirement
+ requirements:
+ - - ">="
+ - !ruby/object:Gem::Version
+ version: "0"
+ version:
+requirements: []
+
+rubyforge_project: locale
+rubygems_version: 1.2.0
+signing_key:
+specification_version: 3
+summary: Ruby-Locale is the pure ruby library which provides basic APIs for localization.
+test_files: []
+
diff --git a/vendor/gems/locale-2.0.5/COPYING b/vendor/gems/locale-2.0.5/COPYING
new file mode 100644
index 000000000..9043404a8
--- /dev/null
+++ b/vendor/gems/locale-2.0.5/COPYING
@@ -0,0 +1,56 @@
+Ruby is copyrighted free software by Yukihiro Matsumoto <matz@netlab.jp>.
+You can redistribute it and/or modify it under either the terms of the GPL
+version 2 (see the file GPL), or the conditions below:
+
+ 1. You may make and give away verbatim copies of the source form of the
+ software without restriction, provided that you duplicate all of the
+ original copyright notices and associated disclaimers.
+
+ 2. You may modify your copy of the software in any way, provided that
+ you do at least ONE of the following:
+
+ a) place your modifications in the Public Domain or otherwise
+ make them Freely Available, such as by posting said
+ modifications to Usenet or an equivalent medium, or by allowing
+ the author to include your modifications in the software.
+
+ b) use the modified software only within your corporation or
+ organization.
+
+ c) give non-standard binaries non-standard names, with
+ instructions on where to get the original software distribution.
+
+ d) make other distribution arrangements with the author.
+
+ 3. You may distribute the software in object code or binary form,
+ provided that you do at least ONE of the following:
+
+ a) distribute the binaries and library files of the software,
+ together with instructions (in the manual page or equivalent)
+ on where to get the original distribution.
+
+ b) accompany the distribution with the machine-readable source of
+ the software.
+
+ c) give non-standard binaries non-standard names, with
+ instructions on where to get the original software distribution.
+
+ d) make other distribution arrangements with the author.
+
+ 4. You may modify and include the part of the software into any other
+ software (possibly commercial). But some files in the distribution
+ are not written by the author, so that they are not under these terms.
+
+ For the list of those files and their copying conditions, see the
+ file LEGAL.
+
+ 5. The scripts and library files supplied as input to or produced as
+ output from the software do not automatically fall under the
+ copyright of the software, but belong to whomever generated them,
+ and may be sold commercially, and may be aggregated with this
+ software.
+
+ 6. THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR
+ IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ PURPOSE.
diff --git a/vendor/gems/locale-2.0.5/ChangeLog b/vendor/gems/locale-2.0.5/ChangeLog
new file mode 100644
index 000000000..851da0ccc
--- /dev/null
+++ b/vendor/gems/locale-2.0.5/ChangeLog
@@ -0,0 +1,157 @@
+= locale-2.0.5 (2009-11-11)
+ * Update license information(obiviously Ruby's and LGPL).
+ [Pointed out by Masateru Yoshikawa]
+
+= locale-2.0.4 (2009-05-22)
+ * Enhance Win32 support. [Reported by Dice]
+ * Enhance JRuby support
+ * Fixed a waring with ruby -d option.
+ * Update version.
+
+= locale-2.0.3 (2009-05-09)
+ * Update version.
+
+= locale-2.0.2 (2009-05-04)
+ * Add Locale.set_app_language_tags to restrict the target locales whole the application. [Suggested by Vladimir Dobriakov]
+ * locale/driver/cgi.rb: Add Locale.set_request.
+ * sample/rack: Add a sample for rack.
+ * Improve documents.
+ * Fix bugs
+ * Illegular -> Irregular [by Denis Defreyne]
+ * test_thread.rb doesn't work under the environment where LC_ALL is set .
+ [Reported by Hans de Graaff (Bug#24831)]
+ * Fixed Locale::Drive::CGI.charset don't work when accept_charset is nil.
+ [Reported by hallelujah (Bug#25583)]
+ * Fixed Locale::Drive::Win32.charset don't work.
+
+Thanks to:
+ Denis Defreyne, Hans de Graaff, hallelujah, Vladimir Dobriakov
+
+= locale-2.0.1 (2009-04-18)
+ * Locale::Tag::Common#extensions are shown order by the keys.[reported by
+ Dan Coutu]
+ * Enhance to support ruby-1.9.x [by OZAWA Sakuro]
+ * Reimplement memoize to be able to freeze or dup the object.
+ * Improve Locale.candidates.
+
+ Thanks to:
+ Dan Coutu, OZAWA Sakuro
+
+= locale-2.0.0 (2009-03-21)
+ * Support Rack.
+ * move to github from svn.
+
+== Older format.
+2008-12-04 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/locale/util/memoizable.rb: Modified.
+
+2008-12-03 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/locale/tag/*.rb: Add attribute writer to subtags.
+ * lib/locale/tag/*.rb: Remove tag attributes.
+ * lib/locale/tag/common.rb: Variant accept 3 or later size because of RFC3066 compatibility.
+ * test/test_tag.rb: Add tests.
+
+2008-12-01 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/locale/driver/win32.rb: Work on Win32 again.
+
+2008-11-22 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/locale.rb: Rename Locale.current_language_tags to Locale.candidates.
+ Locale.current_charset to Locale.charset.
+
+2008-11-21 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/locale/tag/simple.rb: Add Locale::Tag::Simple#to_str.
+ * lib/locale.rb: Remove set_current_charset. current_charset becomes read only.
+
+2008-11-20 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/locale/driver/cgi.rb: Accept plural lang values(query string and
+ cookies).
+
+2008-11-19 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/locale.rb: Locale.current_language_tags returns Locale::TagList.
+ * lib/tag/*.rb: Add #candidates method.
+
+2008-11-12 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/locale/util/meoizable.rb: Added.
+
+2008-11-03 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * README: Updated.
+ * Rakefile: Add package tasks. Revise RDoc task.
+ * lib/locale/driver/win32.rb, win32_table.rb, jruby.rb: Work on Windows.
+
+2008-10-29 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * samples/cgi/*.rb: Added CGI sample (Based on Ruby-GetText sample).
+
+2008-10-21 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * samples/sample1.rb: Added.
+
+2008-10-07 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/locale/*.rb: Support Ruby 1.9.
+
+2008-10-01 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/locale/*.rb: Support JRuby. Tested on JRuby 1.1.4.
+
+2008-09-26 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/locale/driver/*: Apply tags.
+ * lib/locale/taglist.rb: Added. An array of tags. Also, it behaves
+ as the first tag in the array.
+ * test/test_detect_general.rb: Added.
+
+2008-09-25 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/locale/tag.rb, lib/locale/tag/*: Added. Support rfc4646/posix/cldr
+ language tags powerfully.
+ * lib/locale/object.rb: Removed(Moved to tags).
+ * test/test_tag.rb: Added.
+
+2008-09-21 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * test/*: Added.
+
+2008-09-02 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/locale.rb: Added Locale.current_language_tags which returns
+ language tags strings as an Array order by priority.
+
+2008-08-20 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/locale/info/language.rb, region.rb: Move from
+ lib/locale/language.rb, country.rb.
+
+2008-08-18 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * lib/locale.rb: Remove Locale.codeset, .charset, .current_charset.
+ Use Locale.get.charset instead.
+ Add Locale.current_preferable_locales, supported_locales,
+ .set_supported_locales
+
+2008-08-10 Masao Mutoh <mutoh@highway.ne.jp>
+
+ * Separates this locale library from Ruby-GetText-Package-1.92.0.
+ * lib/locale/country.rb, language.rb: Merge locale-0.1 by Brian Pontarelli.
+ Reimplement Locale::Language and Locale::Country. All APIs don't have
+ backward compatibility from locale-0.1.
+ * lib/locale/data/countries.tab.gz, languages.tab.gz: Merge from locale-0.1.
+ * lib/locale/base.rb, win32.rb, win32_table.rb, posix.rb, jruby.rb, cgi.rb:
+ Move to lib/locale/driver/.
+ These classes detect the user/system locale (the language tag or
+ the charset) from the environment variables or the system APIs
+ (Win32/Java). Support POSIX, Win32, JRuby, CGI and ENV.
+
+ * lib/locale.rb: Add Locale.init.
+ * lib/locale/info.rb: Added.
+ * lib/locale.rb: Locale.set_current becomes thread safe. Each thread has
+ a current locale.
diff --git a/vendor/gems/locale-2.0.5/README.rdoc b/vendor/gems/locale-2.0.5/README.rdoc
new file mode 100644
index 000000000..381032f7e
--- /dev/null
+++ b/vendor/gems/locale-2.0.5/README.rdoc
@@ -0,0 +1,111 @@
+= Ruby-Locale
+
+Ruby-Locale is the pure ruby library which provides basic and general purpose
+APIs for localization.
+It aims to support all environments which ruby works and all kind of programs
+(GUI, WWW, library, etc), and becomes the hub of other i18n/l10n libs/apps to
+handle major locale ID standards.
+
+* Manage Locale ID(Language Tag)
+ * Each thread has a Locale ID.
+ * POSIX, CLDR, IETF(RFC4646, 3066(BCP47)), Win32 and Java language tags
+ and convert the tag string to each other.
+ * Auto detect Locale ID.
+ POSIX(Unix/Linux/*BSD), Win32, JRuby, CGI.
+
+* Resources
+ * ISO 639-3 languages
+ * ISO 3166 region(countries).
+
+* Support Ruby 1.8.7, Ruby 1.9.1, JRuby 1.1.4. Tested on Win32 and Linux.
+
+== Website
+* http://www.yotabanana.com/hiki/ruby-locale.html
+* http://locale.rubyforge.org/
+
+== Requirements
+* Ruby-1.8.7 or later <http://www.ruby-lang.org/ja/>
+* JRuby-1.1.4 or later <http://jruby.codehaus.org/>
+
+== Install
+* gem:
+ ($ su)
+ # gem install locale
+
+* tar-ball:
+ Download tar-ball from http://rubyforge.org/projects/locale/
+ De-Compress archive and enter its top directory.
+ Then type:
+ ($ su)
+ # ruby setup.rb
+
+== The simplest usage
+
+ require 'rubygems'
+ require 'locale'
+
+ p Locale.candidates
+
+== APIs
+The most important APIs are defined in Locale module.
+
+* Locale.candidates - Returns the current locale candidates.
+* Locale.current= - Sets the current locale(in a thread).
+* Locale.default= - Sets the default locale(in the whole program).
+* Locale.set_app_language_tags - Sets the locale that is supported by the App.
+
+== License
+This program is licenced under the same licence as Ruby(See COPYING) or
+LGPL(Lesser General Public License: http://www.gnu.org/licenses/lgpl-3.0.txt).
+
+* locale/language.rb, locale/region.rb,
+ locale/data/language.tab.gz, locale/data/region.tab.gz:
+ * Copyright (C) 2006 Brian Pontarelli, Antonio Terceiro
+ * Copyright (C) 2008,2009 Masao Mutoh <mutomasa at gmail.com>
+
+* setup.rb version 3.4.1
+ * Copyright (C) 2000-2005 Minero Aoki <aamine at loveruby.net>
+ * This file is released under LGPL. See the top of the setup.rb.
+
+* Others(Some files are separated from Ruby-GetText-Package-1.92.0)
+ * Copyright (C) 2008,2009 Masao Mutoh <mutoh at highwhay.ne.jp>
+
+== References
+=== Other libraries
+* langtag-0.1.0
+ * by Martin Dürst <http://rubyforge.org/projects/langtag/>
+
+* memoizable.rb
+ * from ActiveSupport-2.2.0 <http://rubyforge.org/projects/activesupport/>
+
+* Ruby-GetText-Package-1.92.0
+ * by Masao Mutoh <http://www.yotabanana.com/hiki/ruby-gettext.html>
+
+=== Documents
+* The Open Group Base Specifications Issue 6 IEEE Std 1003.1, 2004 Edition
+ Internationalization Variables
+ <http://www.opengroup.org/onlinepubs/009695399/basedefs/xbd_chap08.html>
+
+* GNU `gettext' utilities - Setting the Locale through Environment Variables
+ <http://www.gnu.org/software/gettext/manual/gettext.html#Setting-the-POSIX-Locale>
+
+* BCP47 / RFC4646, RFC3066 - Tags for Identifying Languages (Keep RFC3066 compatibility)
+ <http://www.ietf.org/rfc/rfc4646.txt>
+ <http://www.ietf.org/rfc/rfc3066.txt>
+
+* Unicode Locale Data Markup Language (LDML) 1.6.1
+ Unicode Language and Locale Identifiers
+ <http://www.unicode.org/reports/tr35/tr35-11.html#Unicode_Language_and_Locale_Identifiers>
+
+* JDK 6 Documentation - Java Supported Locales
+ <http://java.sun.com/javase/6/docs/technotes/guides/intl/locale.doc.html>
+
+* Microsoft Developer Network - Locales and Languages
+ <http://msdn.microsoft.com/en-us/library/ms776264(VS.85).aspx>
+
+* ISO 639
+
+* ISO 3166
+
+== Maintainer
+Masao Mutoh <mutomasa at gmail.com>
diff --git a/vendor/gems/locale-2.0.5/Rakefile b/vendor/gems/locale-2.0.5/Rakefile
new file mode 100644
index 000000000..28fae03f1
--- /dev/null
+++ b/vendor/gems/locale-2.0.5/Rakefile
@@ -0,0 +1,82 @@
+$:.unshift "./lib"
+
+require 'rake'
+require 'rake/testtask'
+require 'rake/rdoctask'
+require 'rake/packagetask'
+require 'rake/gempackagetask'
+
+require 'locale/version'
+
+#desc "Default Task"
+#task :default => [ :test ]
+
+PKG_VERSION = Locale::VERSION
+
+# Run the unit tests
+task :test do
+ Dir.glob("test/test_*.rb").each do |v|
+ ruby "-Ilib #{v}"
+ end
+end
+
+Rake::RDocTask.new { |rdoc|
+ begin
+ allison = `allison --path`.chop
+ rescue Exception
+ allison = ""
+ end
+ rdoc.rdoc_dir = 'doc'
+ rdoc.title = "Ruby-Locale library"
+ rdoc.options << "--line-numbers" << "--inline-source" <<
+ "--accessor" << "cattr_accessor=object" << "--charset" << "utf-8"
+ rdoc.rdoc_files.include('README.rdoc')
+ rdoc.rdoc_files.include('ChangeLog')
+ rdoc.rdoc_files.add('lib')
+ rdoc.template = allison if allison.size > 0
+}
+
+desc "Create gem and tar.gz"
+spec = Gem::Specification.new do |s|
+ s.name = 'locale'
+ s.version = PKG_VERSION
+ s.summary = 'Ruby-Locale is the pure ruby library which provides basic APIs for localization.'
+ s.author = 'Masao Mutoh'
+ s.email = 'mutomasa at gmail.com'
+ s.homepage = 'http://locale.rubyforge.org/'
+ s.rubyforge_project = "locale"
+ s.files = FileList['**/*'].to_a.select{|v| v !~ /pkg|CVS/}
+ s.require_path = 'lib'
+ s.bindir = 'bin'
+ s.has_rdoc = true
+ s.description = <<-EOF
+ Ruby-Locale is the pure ruby library which provides basic APIs for localization.
+ EOF
+end
+
+unless RUBY_PLATFORM =~ /win32/
+ Rake::PackageTask.new("ruby-locale", PKG_VERSION) do |o|
+ o.package_files = FileList['**/*'].to_a.select{|v| v !~ /pkg|CVS/}
+ o.need_tar_gz = true
+ o.need_zip = false
+ end
+end
+
+Rake::GemPackageTask.new(spec) do |p|
+ p.gem_spec = spec
+ p.need_tar_gz = false
+ p.need_zip = false
+end
+
+desc "Publish the release files to RubyForge."
+task :release => [ :package ] do
+ require 'rubyforge'
+
+ rubyforge = RubyForge.new
+ rubyforge.configure
+ rubyforge.login
+ rubyforge.add_release("locale", "locale",
+ PKG_VERSION,
+ "pkg/locale-#{PKG_VERSION}.gem",
+ "pkg/ruby-locale-#{PKG_VERSION}.tar.gz")
+end
diff --git a/vendor/gems/locale-2.0.5/lib/locale.rb b/vendor/gems/locale-2.0.5/lib/locale.rb
new file mode 100644
index 000000000..f56de3783
--- /dev/null
+++ b/vendor/gems/locale-2.0.5/lib/locale.rb
@@ -0,0 +1,329 @@
+=begin
+ locale.rb - Locale module
+
+ Copyright (C) 2002-2009 Masao Mutoh
+
+ You may redistribute it and/or modify it under the same
+ license terms as Ruby.
+
+ Original: Ruby-GetText-Package-1.92.0.
+
+ $Id: locale.rb 27 2008-12-03 15:06:50Z mutoh $
+=end
+
+require 'locale/util/memoizable'
+require 'locale/tag'
+require 'locale/taglist'
+require 'locale/version'
+
+# Locale module manages the locale informations of the application.
+# These functions are the most important APIs in this library.
+# Almost of all i18n/l10n programs use this APIs only.
+module Locale
+ @@default_tag = nil
+ @@locale_driver_module = nil
+
+ ROOT = File.dirname(__FILE__)
+
+ include Locale::Util::Memoizable
+
+ module_function
+ def require_driver(name) #:nodoc:
+ require File.join(ROOT, "locale/driver", name.to_s)
+ end
+
+ def create_language_tag(tag) #:nodoc:
+ if tag
+ if tag.kind_of? Locale::Tag::Simple
+ tag
+ else
+ Locale::Tag.parse(tag)
+ end
+ else
+ nil
+ end
+ end
+
+ # Initialize Locale library.
+ # Usually, you don't need to call this directly, because
+ # this is called when Locale's methods are called.
+ #
+ # If you use this library with CGI or the kind of CGI.
+ # You need to call Locale.init(:driver => :cgi).
+ #
+ # ==== For Framework designers/programers:
+ # If your framework is for WWW, call this once like: Locale.init(:driver => :cgi).
+ #
+ # ==== To Application programers:
+ # If your framework doesn't use ruby-locale and the application is for WWW,
+ # call this once like: Locale.init(:driver => :cgi).
+ #
+ # ==== To Library authors:
+ # Don't call this, even if your application is only for WWW.
+ #
+ # * opts: Options as a Hash.
+ # * :driver - The driver. :cgi if you use Locale module with CGI,
+ # nil if you use system locale.
+ # (ex) Locale.init(:driver => :cgi)
+ #
+ def init(opts = {})
+ if opts[:driver]
+ require_driver opts[:driver]
+ else
+ if /cygwin|mingw|win32/ =~ RUBY_PLATFORM
+ require_driver 'win32'
+ elsif /java/ =~ RUBY_PLATFORM
+ require_driver 'jruby'
+ else
+ require_driver 'posix'
+ end
+ end
+ end
+
+ # Gets the driver module.
+ #
+ # Usually you don't need to call this method.
+ #
+ # * Returns: the driver module.
+ def driver_module
+ unless @@locale_driver_module
+ Locale.init
+ end
+ @@locale_driver_module
+ end
+
+ DEFAULT_LANGUAGE_TAG = Locale::Tag::Simple.new("en") #:nodoc:
+
+ # Sets the default locale as the language tag
+ # (Locale::Tag's class or String(such as "ja_JP")).
+ #
+ # * tag: the default language_tag
+ # * Returns: self.
+ def set_default(tag)
+ Thread.list.each do |thread|
+ thread[:current_languages] = nil
+ thread[:candidates_caches] = nil
+ end
+ @@default_tag = create_language_tag(tag)
+ self
+ end
+
+ # Same as Locale.set_default.
+ #
+ # * locale: the default locale (Locale::Tag's class) or a String such as "ja-JP".
+ # * Returns: locale.
+ def default=(tag)
+ set_default(tag)
+ @@default_tag
+ end
+
+ # Gets the default locale(language tag).
+ #
+ # If the default language tag is not set, this returns nil.
+ #
+ # * Returns: the default locale (Locale::Tag's class).
+ def default
+ @@default_tag || DEFAULT_LANGUAGE_TAG
+ end
+
+ # Sets the locales of the current thread order by the priority.
+ # Each thread has a current locales.
+ # The system locale/default locale is used if the thread doesn't have current locales.
+ #
+ # * tag: Locale::Language::Tag's class or the language tag as a String. nil if you need to
+ # clear current locales.
+ # * charset: the charset (override the charset even if the locale name has charset) or nil.
+ # * Returns: self
+ #
+ # (e.g.)
+ # Locale.set_current("ja_JP.eucJP")
+ # Locale.set_current("ja-JP")
+ # Locale.set_current("en_AU", "en_US", ...)
+ # Locale.set_current(Locale::Tag::Simple.new("ja", "JP"), ...)
+ def set_current(*tags)
+ languages = nil
+ if tags[0]
+ languages = Locale::TagList.new
+ tags.each do |tag|
+ languages << create_language_tag(tag)
+ end
+ end
+ Thread.current[:current_languages] = languages
+ Thread.current[:candidates_caches] = nil
+ self
+ end
+
+ # Sets a current locale. This is a single argument version of Locale.set_current.
+ #
+ # * tag: the language tag such as "ja-JP"
+ # * Returns: an Array of the current locale (Locale::Tag's class).
+ #
+ # Locale.current = "ja-JP"
+ # Locale.current = "ja_JP.eucJP"
+ def current=(tag)
+ set_current(tag)
+ Thread.current[:current_languages]
+ end
+
+ # Gets the current locales (Locale::Tag's class).
+ # If the current locale is not set, this returns system/default locale.
+ #
+ # This method returns the current language tags even if it isn't included in app_language_tags.
+ #
+ # Usually, the programs should use Locale.candidates to find the correct locale, not this method.
+ #
+ # * Returns: an Array of the current locales (Locale::Tag's class).
+ def current
+ unless Thread.current[:current_languages]
+ loc = driver_module.locales
+ Thread.current[:current_languages] = loc ? loc : Locale::TagList.new([default])
+ end
+ Thread.current[:current_languages]
+ end
+
+ # Deprecated.
+ def get #:nodoc:
+ current
+ end
+
+ # Deprecated.
+ def set(tag) #:nodoc:
+ set_current(tag)
+ end
+
+ # Returns the language tags which are variations of the current locales order by priority.
+ #
+ # For example, if the current locales are ["fr", "ja_JP", "en_US", "en-Latn-GB-VARIANT"],
+ # then returns ["fr", "ja_JP", "en_US", "en-Latn-GB-VARIANT", "en_Latn_GB", "en_GB", "ja", "en"].
+ # "en" is the default locale(You can change it using set_default).
+ # The default locale is added at the end of the list even if it isn't exist.
+ #
+ # Usually, this method is used to find the locale data as the path(or a kind of IDs).
+ # * options: options as a Hash or nil.
+ # * :supported_language_tags -
+ # An Array of the language tags order by the priority. This option
+ # restricts the locales which are supported by the library/application.
+ # Default is nil if you don't need to restrict the locales.
+ # (e.g.1) ["fr_FR", "en_GB", "en_US", ...]
+ # * :type -
+ # The type of language tag. :common, :rfc, :cldr, :posix and
+ # :simple are available. Default value is :common
+ def candidates(options = {})
+ opts = {:supported_language_tags => nil, :current => current,
+ :type => :common}.merge(options)
+
+ if Thread.current[:candidates_caches]
+ cache = Thread.current[:candidates_caches][opts.hash]
+ return cache if cache
+ else
+ Thread.current[:candidates_caches] = {}
+ end
+ Thread.current[:candidates_caches][opts.hash] =
+ collect_candidates(opts[:type], opts[:current],
+ opts[:supported_language_tags])
+ end
+
+ # collect tag candidates and memoize it.
+ # The result is shared from all threads.
+ def collect_candidates(type, tags, supported_tags) # :nodoc:
+ candidate_tags = tags.collect{|v| v.send("to_#{type}").candidates}
+ default_tags = default.send("to_#{type}").candidates
+ if app_language_tags
+ app_tags = app_language_tags.collect{|v| v.send("to_#{type}")}.flatten.uniq
+ end
+ if supported_tags
+ supported_tags = supported_tags.collect{|v| Locale::Tag.parse(v).send("to_#{type}")}.flatten.uniq
+ end
+
+ tags = []
+ (0...candidate_tags[0].size).each {|i|
+ tags += candidate_tags.collect{|v| v[i]}
+ }
+ tags += default_tags
+ tags.uniq!
+
+ all_tags = nil
+ if app_tags
+ if supported_tags
+ all_tags = app_tags & supported_tags
+ else
+ all_tags = app_tags
+ end
+ elsif supported_tags
+ all_tags = supported_tags
+ end
+ if all_tags
+ tags &= all_tags
+ tags = default_tags.uniq if tags.size == 0
+ end
+
+ Locale::TagList.new(tags)
+ end
+ memoize :collect_candidates
+
+ # Gets the current charset.
+ #
+ # This returns the current user/system charset. This value is
+ # read only, so you can't set it by yourself.
+ #
+ # * Returns: the current charset.
+ def charset
+ driver_module.charset || "UTF-8"
+ end
+ memoize :charset
+
+ # Clear current locale.
+ # * Returns: self
+ def clear
+ Thread.current[:current_languages] = nil
+ Thread.current[:candidates_caches] = nil
+ self
+ end
+
+ # Clear all locales and charsets of all threads.
+ # This doesn't clear the default and app_language_tags.
+ # Use Locale.default = nil to unset the default locale.
+ # * Returns: self
+ def clear_all
+ Thread.list.each do |thread|
+ thread[:current_languages] = nil
+ thread[:candidates_caches] = nil
+ end
+ memoize_clear
+ self
+ end
+
+ @@app_language_tags = nil
+ # Set the language tags which is supported by the Application.
+ # This value is same with supported_language_tags in Locale.candidates
+ # to restrict the result but is the global setting.
+ # If you set a language tag, the application works as the single locale
+ # application.
+ #
+ # If the current locale is not included in app_language_tags,
+ # Locale.default value is used.
+ # Use Locale.set_default() to set correct language
+ # if "en" is not included in the language tags.
+ #
+ # Set nil if clear the value.
+ #
+ # Note that the libraries/plugins shouldn't set this value.
+ #
+ # (e.g.) Locale.set_app_language_tags("fr_FR", "en-GB", "en_US", ...)
+ def set_app_language_tags(*tags)
+ if tags[0]
+ @@app_language_tags = tags.collect{|v| Locale::Tag.parse(v)}
+ else
+ @@app_language_tags = nil
+ end
+
+ clear_all
+ self
+ end
+
+ # Returns the app_language_tags. Default is nil. See set_app_language_tags for more details.
+ def app_language_tags
+ @@app_language_tags
+ end
+
+end
diff --git a/vendor/gems/locale-2.0.5/lib/locale/data/languages.tab.gz b/vendor/gems/locale-2.0.5/lib/locale/data/languages.tab.gz
new file mode 100644
index 000000000..7658a03f0
--- /dev/null
+++ b/vendor/gems/locale-2.0.5/lib/locale/data/languages.tab.gz
Binary files differ
diff --git a/vendor/gems/locale-2.0.5/lib/locale/data/regions.tab.gz b/vendor/gems/locale-2.0.5/lib/locale/data/regions.tab.gz
new file mode 100644
index 000000000..b5ecbfbec
--- /dev/null
+++ b/vendor/gems/locale-2.0.5/lib/locale/data/regions.tab.gz
Binary files differ
diff --git a/vendor/gems/locale-2.0.5/lib/locale/driver/cgi.rb b/vendor/gems/locale-2.0.5/lib/locale/driver/cgi.rb
new file mode 100644
index 000000000..c1d1126dd
--- /dev/null
+++ b/vendor/gems/locale-2.0.5/lib/locale/driver/cgi.rb
@@ -0,0 +1,136 @@
+=begin
+ locale/driver/cgi.rb
+
+ Copyright (C) 2002-2008 Masao Mutoh
+
+ You may redistribute it and/or modify it under the same
+ license terms as Ruby.
+
+ Original: Ruby-GetText-Package-1.92.0.
+
+ $Id: cgi.rb 27 2008-12-03 15:06:50Z mutoh $
+=end
+
+module Locale
+ # Locale::Driver module for CGI.
+ # Detect the user locales and the charset from CGI parameters.
+ # This is a low-level class. Application shouldn't use this directly.
+ module Driver
+ module CGI
+ $stderr.puts self.name + " is loaded." if $DEBUG
+
+ module_function
+ # Gets required locales from CGI parameters. (Based on RFC2616)
+ #
+ # Returns: An Array of Locale::Tag's subclasses
+ # (QUERY_STRING "lang" > COOKIE "lang" > HTTP_ACCEPT_LANGUAGE > "en")
+ #
+ def locales
+ req = Thread.current[:current_request]
+ return nil unless req
+
+ locales = []
+
+ # QUERY_STRING "lang"
+ if langs = req[:query_langs]
+ langs.each do |lang|
+ locales << Locale::Tag.parse(lang)
+ end
+ end
+
+ unless locales.size > 0
+ # COOKIE "lang"
+ if langs = req[:cookie_langs]
+ langs.each do |lang|
+ locales << Locale::Tag.parse(lang) if lang.size > 0
+ end
+ end
+ end
+
+ unless locales.size > 0
+ # HTTP_ACCEPT_LANGUAGE
+ if lang = req[:accept_language] and lang.size > 0
+ locales += lang.gsub(/\s/, "").split(/,/).map{|v| v.split(";q=")}.map{|j| [j[0], j[1] ? j[1].to_f : 1.0]}.sort{|a,b| -(a[1] <=> b[1])}.map{|v| Locale::Tag.parse(v[0])}
+ end
+ end
+
+ locales.size > 0 ? Locale::TagList.new(locales.uniq) : nil
+ end
+
+ # Gets the charset from CGI parameters. (Based on RFC2616)
+ # * Returns: the charset (HTTP_ACCEPT_CHARSET or nil).
+ def charset
+ req = Thread.current[:current_request]
+ return nil unless req
+
+ charsets = req[:accept_charset]
+ if charsets and charsets.size > 0
+ num = charsets.index(',')
+ charset = num ? charsets[0, num] : charsets
+ charset = nil if charset == "*"
+ else
+ charset = nil
+ end
+ charset
+ end
+
+ # Set a request.
+ #
+ # * query_langs: An Array of QUERY_STRING value "lang".
+ # * cookie_langs: An Array of cookie value "lang".
+ # * accept_language: The value of HTTP_ACCEPT_LANGUAGE
+ # * accept_charset: The value of HTTP_ACCEPT_CHARSET
+ def set_request(query_langs, cookie_langs, accept_language, accept_charset)
+ Thread.current[:current_request] = {
+ :query_langs => query_langs,
+ :cookie_langs => cookie_langs,
+ :accept_language => accept_language,
+ :accept_charset => accept_charset
+ }
+ self
+ end
+
+ # Clear the current request.
+ def clear_current_request
+ Thread.current[:current_request] = nil
+ end
+ end
+ end
+
+ @@locale_driver_module = Driver::CGI
+
+ module_function
+ # Sets a request values for lang/charset.
+ #
+ # * query_langs: An Array of QUERY_STRING value "lang".
+ # * cookie_langs: An Array of cookie value "lang".
+ # * accept_language: The value of HTTP_ACCEPT_LANGUAGE
+ # * accept_charset: The value of HTTP_ACCEPT_CHARSET
+ def set_request(query_langs, cookie_langs, accept_language, accept_charset)
+ @@locale_driver_module.set_request(query_langs, cookie_langs, accept_language, accept_charset)
+ self
+ end
+
+ # Sets a CGI object. This is the convenient function of set_request().
+ #
+ # This method is appeared when Locale.init(:driver => :cgi) is called.
+ #
+ # * cgi: CGI object
+ # * Returns: self
+ def set_cgi(cgi)
+ set_request(cgi.params["lang"], cgi.cookies["lang"],
+ cgi.accept_language, cgi.accept_charset)
+ self
+ end
+
+ # Sets a CGI object.This is the convenient function of set_request().
+ #
+ # This method is appeared when Locale.init(:driver => :cgi) is called.
+ #
+ # * cgi: CGI object
+ # * Returns: cgi
+ def cgi=(cgi)
+ set_cgi(cgi)
+ cgi
+ end
+end
diff --git a/vendor/gems/locale-2.0.5/lib/locale/driver/env.rb b/vendor/gems/locale-2.0.5/lib/locale/driver/env.rb
new file mode 100644
index 000000000..9d0995fa2
--- /dev/null
+++ b/vendor/gems/locale-2.0.5/lib/locale/driver/env.rb
@@ -0,0 +1,64 @@
+=begin
+ locale/env.rb
+
+ Copyright (C) 2008 Masao Mutoh
+
+ You may redistribute it and/or modify it under the same
+ license terms as Ruby.
+
+ Original: Ruby-GetText-Package-1.92.0.
+
+ $Id: env.rb 27 2008-12-03 15:06:50Z mutoh $
+=end
+
+require 'locale/tag'
+require 'locale/taglist'
+
+module Locale
+ module Driver
+ # Locale::Driver::Env module.
+ # Detect the user locales and the charset.
+ # All drivers(except CGI) refer environment variables first and use it
+ # as the locale if it's defined.
+ # This is a low-level module. Application shouldn't use this directly.
+ module Env
+ module_function
+
+ # Gets the locale from environment variable. (LC_ALL > LC_MESSAGES > LANG)
+ # Returns: the locale as Locale::Tag::Posix.
+ def locale
+ # At least one environment valiables should be set on *nix system.
+ [ENV["LC_ALL"], ENV["LC_MESSAGES"], ENV["LANG"]].each do |loc|
+ if loc != nil and loc.size > 0
+ return Locale::Tag::Posix.parse(loc)
+ end
+ end
+ nil
+ end
+
+ # Gets the locales from environment variables. (LANGUAGE > LC_ALL > LC_MESSAGES > LANG)
+ # * Returns: an Array of the locale as Locale::Tag::Posix or nil.
+ def locales
+ if (locales = ENV["LANGUAGE"])
+ Locale::TagList.new(locales.split(/:/).collect{|v| Locale::Tag::Posix.parse(v)})
+ elsif (loc = locale)
+ Locale::TagList.new([loc])
+ else
+ nil
+ end
+ end
+
+ # Gets the charset from environment variable or return nil.
+ # * Returns: the system charset.
+ def charset # :nodoc:
+ if loc = locale
+ loc.charset
+ else
+ nil
+ end
+ end
+
+ end
+ end
+end
+
diff --git a/vendor/gems/locale-2.0.5/lib/locale/driver/jruby.rb b/vendor/gems/locale-2.0.5/lib/locale/driver/jruby.rb
new file mode 100644
index 000000000..d30348dbe
--- /dev/null
+++ b/vendor/gems/locale-2.0.5/lib/locale/driver/jruby.rb
@@ -0,0 +1,52 @@
+=begin
+ locale/driver/jruby.rb
+
+ Copyright (C) 2007,2008 Masao Mutoh
+
+ You may redistribute it and/or modify it under the same
+ license terms as Ruby.
+
+ Original: Ruby-GetText-Package-1.92.0.
+
+ $Id: jruby.rb 27 2008-12-03 15:06:50Z mutoh $
+=end
+
+require File.join(File.dirname(__FILE__), 'env')
+require 'java'
+
+module Locale
+ module Driver
+ # Locale::Driver::JRuby module for JRuby
+ # Detect the user locales and the charset.
+ # This is a low-level class. Application shouldn't use this directly.
+ module JRuby
+ $stderr.puts self.name + " is loaded." if $DEBUG
+
+ module_function
+ def locales #:nodoc:
+ locales = ::Locale::Driver::Env.locales
+ unless locales
+ locale = java.util.Locale.getDefault
+ variant = locale.getVariant
+ variants = []
+ if variant != nil and variant.size > 0
+ variants = [variant]
+ end
+ locales = TagList.new([Locale::Tag::Common.new(locale.getLanguage, nil,
+ locale.getCountry,
+ variants)])
+ end
+ locales
+ end
+
+ def charset #:nodoc:
+ charset = ::Locale::Driver::Env.charset
+ unless charset
+ charset = java.nio.charset.Charset.defaultCharset.name
+ end
+ charset
+ end
+ end
+ end
+ @@locale_driver_module = Driver::JRuby
+end
diff --git a/vendor/gems/locale-2.0.5/lib/locale/driver/posix.rb b/vendor/gems/locale-2.0.5/lib/locale/driver/posix.rb
new file mode 100644
index 000000000..cf918efbe
--- /dev/null
+++ b/vendor/gems/locale-2.0.5/lib/locale/driver/posix.rb
@@ -0,0 +1,49 @@
+=begin
+ locale/posix.rb
+
+ Copyright (C) 2002-2008 Masao Mutoh
+
+ You may redistribute it and/or modify it under the same
+ license terms as Ruby.
+
+ Original: Ruby-GetText-Package-1.92.0.
+
+ $Id: posix.rb 27 2008-12-03 15:06:50Z mutoh $
+=end
+
+require File.join(File.dirname(__FILE__), 'env')
+
+module Locale
+ # Locale::Driver::Posix module for Posix OS (Unix)
+ # Detect the user locales and the charset.
+ # This is a low-level class. Application shouldn't use this directly.
+ module Driver
+ module Posix
+ $stderr.puts self.name + " is loaded." if $DEBUG
+
+ module_function
+ # Gets the locales from environment variables. (LANGUAGE > LC_ALL > LC_MESSAGES > LANG)
+ # Only LANGUAGE accept plural languages such as "nl_BE;
+ # * Returns: an Array of the locale as Locale::Tag::Posix or nil.
+ def locales
+ ::Locale::Driver::Env.locales
+ end
+
+ # Gets the charset from environment variable or the result of
+ # "locale charmap" or nil.
+ # * Returns: the system charset.
+ def charset
+ charset = ::Locale::Driver::Env.charset
+ unless charset
+ charset = `locale charmap`.strip
+ unless $? && $?.success?
+ charset = nil
+ end
+ end
+ charset
+ end
+ end
+ end
+ @@locale_driver_module = Driver::Posix
+end
+
diff --git a/vendor/gems/locale-2.0.5/lib/locale/driver/win32.rb b/vendor/gems/locale-2.0.5/lib/locale/driver/win32.rb
new file mode 100644
index 000000000..2bb6fbc4c
--- /dev/null
+++ b/vendor/gems/locale-2.0.5/lib/locale/driver/win32.rb
@@ -0,0 +1,81 @@
+=begin
+ locale/win32.rb
+
+ Copyright (C) 2002-2008 Masao Mutoh
+
+ You may redistribute it and/or modify it under the same
+ license terms as Ruby.
+
+ Original: Ruby-GetText-Package-1.92.0.
+
+ $Id: win32.rb 27 2008-12-03 15:06:50Z mutoh $
+=end
+
+require File.join(File.dirname(__FILE__), 'env')
+require File.join(File.dirname(__FILE__), 'win32_table')
+require 'dl/win32'
+
+
+module Locale
+ # Locale::Driver::Win32 module for win32.
+ # Detect the user locales and the charset.
+ # This is a low-level class. Application shouldn't use this directly.
+ module Driver
+ module Win32
+ include Win32Table
+
+ $stderr.puts self.name + " is loaded." if $DEBUG
+
+ @@win32 = nil
+ @@current_locale_id = nil
+
+ module_function
+
+ # Gets the Win32 charset of the locale.
+ def charset
+ charset = ::Locale::Driver::Env.charset
+ unless charset
+ if locales
+ tag = locales[0].to_rfc.to_s
+ loc = LocaleTable.find{|v| v[1] == tag}
+ loc = LocaleTable.find{|v| v[1] =~ /^#{locales[0].language}/} unless loc
+ charset = loc ? loc[2] : nil
+ else
+ charset = "CP1252"
+ end
+ end
+ charset
+ end
+
+ def thread_locale_id #:nodoc:
+ if @@current_locale_id
+ @@current_locale_id
+ else
+ @@win32 ||= Win32API.new("kernel32.dll", "GetThreadLocale", nil, "i")
+ @@win32.call
+ end
+ end
+
+ def set_thread_locale_id(lcid) #:nodoc:
+ # for testing.
+ @@current_locale_id = lcid
+ end
+
+ def locales #:nodoc:
+ locales = ::Locale::Driver::Env.locales
+ unless locales
+ lang = LocaleTable.assoc(thread_locale_id)
+ if lang
+ ret = Locale::Tag::Common.parse(lang[1])
+ locales = Locale::TagList.new([ret])
+ else
+ locales = nil
+ end
+ end
+ locales
+ end
+ end
+ end
+ @@locale_driver_module = Driver::Win32
+end
+
diff --git a/vendor/gems/locale-2.0.5/lib/locale/driver/win32_table.rb b/vendor/gems/locale-2.0.5/lib/locale/driver/win32_table.rb
new file mode 100644
index 000000000..e1fd68a1b
--- /dev/null
+++ b/vendor/gems/locale-2.0.5/lib/locale/driver/win32_table.rb
@@ -0,0 +1,298 @@
+=begin
+ win32_table.rb - Locale table for win32
+
+ Copyright (C) 2008 Masao Mutoh <mutomasa at gmail.com>
+
+ You may redistribute it and/or modify it under the same
+ license terms as Ruby.
+
+ Original: Ruby-GetText-Package-1.92.0.
+
+ $Id: win32_table.rb 27 2008-12-03 15:06:50Z mutoh $
+=end
+
+module Locale
+ module Driver
+ module Win32Table
+
+ #http://msdn.microsoft.com/ja-jp/goglobal/bb896001(en-us).aspx
+
+ #LangID, locale name, code page
+ LocaleTable = [
+ [0x0036,"af","CP1252"],
+ [0x0436,"af-ZA","CP1252"],
+ [0x001C,"sq","CP1250"],
+ [0x041C,"sq-AL","CP1250"],
+ [0x0484,"gsw-FR","CP1252"],
+ [0x045E,"am-ET","UNICODE"],
+ [0x0001,"ar","CP1256"],
+ [0x1401,"ar-DZ","CP1256"],
+ [0x3C01,"ar-BH","CP1256"],
+ [0x0C01,"ar-EG","CP1256"],
+ [0x0801,"ar-IQ","CP1256"],
+ [0x2C01,"ar-JO","CP1256"],
+ [0x3401,"ar-KW","CP1256"],
+ [0x3001,"ar-LB","CP1256"],
+ [0x1001,"ar-LY","CP1256"],
+ [0x1801,"ar-MA","CP1256"],
+ [0x2001,"ar-OM","CP1256"],
+ [0x4001,"ar-QA","CP1256"],
+ [0x0401,"ar-SA","CP1256"],
+ [0x2801,"ar-SY","CP1256"],
+ [0x1C01,"ar-TN","CP1256"],
+ [0x3801,"ar-AE","CP1256"],
+ [0x2401,"ar-YE","CP1256"],
+ [0x002B,"hy","UNICODE"],
+ [0x042B,"hy-AM","UNICODE"],
+ [0x044D,"as-IN","UNICODE"],
+ [0x002C,"az","CP1254"],
+ [0x082C,"az-Cyrl-AZ","CP1251"],
+ [0x042C,"az-Latn-AZ","CP1254"],
+ [0x046D,"ba-RU","CP1251"],
+ [0x002D,"eu","CP1252"],
+ [0x042D,"eu-ES","CP1252"],
+ [0x0023,"be","CP1251"],
+ [0x0423,"be-BY","CP1251"],
+ [0x0845,"bn-BD","UNICODE"],
+ [0x0445,"bn-IN","UNICODE"],
+ [0x201A,"bs-Cyrl-BA","CP1251"],
+ [0x141A,"bs-Latn-BA","CP1250"],
+ [0x047E,"br-FR","CP1252"],
+ [0x0002,"bg","CP1251"],
+ [0x0402,"bg-BG","CP1251"],
+ [0x0003,"ca","CP1252"],
+ [0x0403,"ca-ES","CP1252"],
+ [0x0C04,"zh-HK","CP950"],
+ [0x1404,"zh-MO","CP950"],
+ [0x0804,"zh-CN","CP936"],
+ [0x0004,"zh-Hans","CP936"],
+ [0x1004,"zh-SG","CP936"],
+ [0x0404,"zh-TW","CP950"],
+ [0x7C04,"zh-Hant","CP950"],
+ [0x0483,"co-FR","CP1252"],
+ [0x001A,"hr","CP1250"],
+ [0x041A,"hr-HR","CP1250"],
+ [0x101A,"hr-BA","CP1250"],
+ [0x0005,"cs","CP1250"],
+ [0x0405,"cs-CZ","CP1250"],
+ [0x0006,"da","CP1252"],
+ [0x0406,"da-DK","CP1252"],
+ [0x048C,"prs-AF","CP1256"],
+ [0x0065,"div","UNICODE"],
+ [0x0465,"div-MV","UNICODE"],
+ [0x0013,"nl","CP1252"],
+ [0x0813,"nl-BE","CP1252"],
+ [0x0413,"nl-NL","CP1252"],
+ [0x0009,"en","CP1252"],
+ [0x0C09,"en-AU","CP1252"],
+ [0x2809,"en-BZ","CP1252"],
+ [0x1009,"en-CA","CP1252"],
+ [0x2409,"en-029","CP1252"],
+ [0x4009,"en-IN","CP1252"],
+ [0x1809,"en-IE","CP1252"],
+ [0x2009,"en-JM","CP1252"],
+ [0x4409,"en-MY","CP1252"],
+ [0x1409,"en-NZ","CP1252"],
+ [0x3409,"en-PH","CP1252"],
+ [0x4809,"en-SG","CP1252"],
+ [0x1C09,"en-ZA","CP1252"],
+ [0x2C09,"en-TT","CP1252"],
+ [0x0809,"en-GB","CP1252"],
+ [0x0409,"en-US","CP1252"],
+ [0x3009,"en-ZW","CP1252"],
+ [0x0025,"et","CP1257"],
+ [0x0425,"et-EE","CP1257"],
+ [0x0038,"fo","CP1252"],
+ [0x0438,"fo-FO","CP1252"],
+ [0x0464,"fil-PH","CP1252"],
+ [0x000B,"fi","CP1252"],
+ [0x040B,"fi-FI","CP1252"],
+ [0x000C,"fr","CP1252"],
+ [0x080C,"fr-BE","CP1252"],
+ [0x0C0C,"fr-CA","CP1252"],
+ [0x040C,"fr-FR","CP1252"],
+ [0x140C,"fr-LU","CP1252"],
+ [0x180C,"fr-MC","CP1252"],
+ [0x100C,"fr-CH","CP1252"],
+ [0x0462,"fy-NL","CP1252"],
+ [0x0056,"gl","CP1252"],
+ [0x0456,"gl-ES","CP1252"],
+ [0x0037,"ka","UNICODE"],
+ [0x0437,"ka-GE","UNICODE"],
+ [0x0007,"de","CP1252"],
+ [0x0C07,"de-AT","CP1252"],
+ [0x0407,"de-DE","CP1252"],
+ [0x1407,"de-LI","CP1252"],
+ [0x1007,"de-LU","CP1252"],
+ [0x0807,"de-CH","CP1252"],
+ [0x0008,"el","CP1253"],
+ [0x0408,"el-GR","CP1253"],
+ [0x046F,"kl-GL","CP1252"],
+ [0x0047,"gu","UNICODE"],
+ [0x0447,"gu-IN","UNICODE"],
+ [0x0468,"ha-Latn-NG","CP1252"],
+ [0x000D,"he","CP1255"],
+ [0x040D,"he-IL","CP1255"],
+ [0x0039,"hi","UNICODE"],
+ [0x0439,"hi-IN","UNICODE"],
+ [0x000E,"hu","CP1250"],
+ [0x040E,"hu-HU","CP1250"],
+ [0x000F,"is","CP1252"],
+ [0x040F,"is-IS","CP1252"],
+ [0x0470,"ig-NG","CP1252"],
+ [0x0021,"id","CP1252"],
+ [0x0421,"id-ID","CP1252"],
+ [0x085D,"iu-Latn-CA","CP1252"],
+ [0x045D,"iu-Cans-CA","UNICODE"],
+ [0x083C,"ga-IE","CP1252"],
+ [0x0434,"xh-ZA","CP1252"],
+ [0x0435,"zu-ZA","CP1252"],
+ [0x0010,"it","CP1252"],
+ [0x0410,"it-IT","CP1252"],
+ [0x0810,"it-CH","CP1252"],
+ [0x0011,"ja","CP932"],
+ [0x0411,"ja-JP","CP932"],
+ [0x004B,"kn","UNICODE"],
+ [0x044B,"kn-IN","UNICODE"],
+ [0x003F,"kk","CP1251"],
+ [0x043F,"kk-KZ","CP1251"],
+ [0x0453,"km-KH","UNICODE"],
+ [0x0486,"qut-GT","CP1252"],
+ [0x0487,"rw-RW","CP1252"],
+ [0x0041,"sw","CP1252"],
+ [0x0441,"sw-KE","CP1252"],
+ [0x0057,"kok","UNICODE"],
+ [0x0457,"kok-IN","UNICODE"],
+ [0x0012,"ko","CP949"],
+ [0x0412,"ko-KR","CP949"],
+ [0x0040,"ky","CP1251"],
+ [0x0440,"ky-KG","CP1251"],
+ [0x0454,"lo-LA","UNICODE"],
+ [0x0026,"lv","CP1257"],
+ [0x0426,"lv-LV","CP1257"],
+ [0x0027,"lt","CP1257"],
+ [0x0427,"lt-LT","CP1257"],
+ [0x082E,"wee-DE","CP1252"],
+ [0x046E,"lb-LU","CP1252"],
+ [0x002F,"mk","CP1251"],
+ [0x042F,"mk-MK","CP1251"],
+ [0x003E,"ms","CP1252"],
+ [0x083E,"ms-BN","CP1252"],
+ [0x043E,"ms-MY","CP1252"],
+ [0x044C,"ml-IN","UNICODE"],
+ [0x043A,"mt-MT","UNICODE"],
+ [0x0481,"mi-NZ","UNICODE"],
+ [0x047A,"arn-CL","CP1252"],
+ [0x004E,"mr","UNICODE"],
+ [0x044E,"mr-IN","UNICODE"],
+ [0x047C,"moh-CA","CP1252"],
+ [0x0050,"mn","CP1251"],
+ [0x0450,"mn-MN","CP1251"],
+ [0x0850,"mn-Mong-CN","UNICODE"],
+ [0x0461,"ne-NP","UNICODE"],
+ [0x0014,"no","CP1252"],
+ [0x0414,"nb-NO","CP1252"],
+ [0x0814,"nn-NO","CP1252"],
+ [0x0482,"oc-FR","CP1252"],
+ [0x0448,"or-IN","UNICODE"],
+ [0x0463,"ps-AF","UNICODE"],
+ [0x0029,"fa","CP1256"],
+ [0x0429,"fa-IR","CP1256"],
+ [0x0015,"pl","CP1250"],
+ [0x0415,"pl-PL","CP1250"],
+ [0x0016,"pt","CP1252"],
+ [0x0416,"pt-BR","CP1252"],
+ [0x0816,"pt-PT","CP1252"],
+ [0x0046,"pa","UNICODE"],
+ [0x0446,"pa-IN","UNICODE"],
+ [0x046B,"quz-BO","CP1252"],
+ [0x086B,"quz-EC","CP1252"],
+ [0x0C6B,"quz-PE","CP1252"],
+ [0x0018,"ro","CP1250"],
+ [0x0418,"ro-RO","CP1250"],
+ [0x0417,"rm-CH","CP1252"],
+ [0x0019,"ru","CP1251"],
+ [0x0419,"ru-RU","CP1251"],
+ [0x243B,"smn-FI","CP1252"],
+ [0x103B,"smj-NO","CP1252"],
+ [0x143B,"smj-SE","CP1252"],
+ [0x0C3B,"se-FI","CP1252"],
+ [0x043B,"se-NO","CP1252"],
+ [0x083B,"se-SE","CP1252"],
+ [0x203B,"sms-FI","CP1252"],
+ [0x183B,"sma-NO","CP1252"],
+ [0x1C3B,"sma-SE","CP1252"],
+ [0x004F,"sa","UNICODE"],
+ [0x044F,"sa-IN","UNICODE"],
+ [0x7C1A,"sr","CP1251"],
+ [0x1C1A,"sr-Cyrl-BA","CP1251"],
+ [0x0C1A,"sr-Cyrl-SP","CP1251"],
+ [0x181A,"sr-Latn-BA","CP1250"],
+ [0x081A,"sr-Latn-SP","CP1250"],
+ [0x046C,"nso-ZA","CP1252"],
+ [0x0432,"tn-ZA","CP1252"],
+ [0x045B,"si-LK","UNICODE"],
+ [0x001B,"sk","CP1250"],
+ [0x041B,"sk-SK","CP1250"],
+ [0x0024,"sl","CP1250"],
+ [0x0424,"sl-SI","CP1250"],
+ [0x000A,"es","CP1252"],
+ [0x2C0A,"es-AR","CP1252"],
+ [0x400A,"es-BO","CP1252"],
+ [0x340A,"es-CL","CP1252"],
+ [0x240A,"es-CO","CP1252"],
+ [0x140A,"es-CR","CP1252"],
+ [0x1C0A,"es-DO","CP1252"],
+ [0x300A,"es-EC","CP1252"],
+ [0x440A,"es-SV","CP1252"],
+ [0x100A,"es-GT","CP1252"],
+ [0x480A,"es-HN","CP1252"],
+ [0x080A,"es-MX","CP1252"],
+ [0x4C0A,"es-NI","CP1252"],
+ [0x180A,"es-PA","CP1252"],
+ [0x3C0A,"es-PY","CP1252"],
+ [0x280A,"es-PE","CP1252"],
+ [0x500A,"es-PR","CP1252"],
+ [0x0C0A,"es-ES","CP1252"],
+ [0x540A,"es-US","CP1252"],
+ [0x380A,"es-UY","CP1252"],
+ [0x200A,"es-VE","CP1252"],
+ [0x001D,"sv","CP1252"],
+ [0x081D,"sv-FI","CP1252"],
+ [0x041D,"sv-SE","CP1252"],
+ [0x005A,"syr","UNICODE"],
+ [0x045A,"syr-SY","UNICODE"],
+ [0x0428,"tg-Cyrl-TJ","CP1251"],
+ [0x085F,"tmz-Latn-DZ","CP1252"],
+ [0x0049,"ta","UNICODE"],
+ [0x0449,"ta-IN","UNICODE"],
+ [0x0044,"tt","CP1251"],
+ [0x0444,"tt-RU","CP1251"],
+ [0x004A,"te","UNICODE"],
+ [0x044A,"te-IN","UNICODE"],
+ [0x001E,"th","CP874"],
+ [0x041E,"th-TH","CP874"],
+ [0x0451,"bo-CN","UNICODE"],
+ [0x001F,"tr","CP1254"],
+ [0x041F,"tr-TR","CP1254"],
+ [0x0442,"tk-TM","CP1250"],
+ [0x0480,"ug-CN","CP1256"],
+ [0x0022,"uk","CP1251"],
+ [0x0422,"uk-UA","CP1251"],
+ [0x042E,"wen-DE","CP1252"],
+ [0x0020,"ur","CP1256"],
+ [0x0420,"ur-PK","CP1256"],
+ [0x0043,"uz","CP1254"],
+ [0x0843,"uz-Cyrl-UZ","CP1251"],
+ [0x0443,"uz-Latn-UZ","CP1254"],
+ [0x002A,"vi","CP1258"],
+ [0x042A,"vi-VN","CP1258"],
+ [0x0452,"cy-GB","CP1252"],
+ [0x0488,"wo-SN","CP1252"],
+ [0x0485,"sah-RU","CP1251"],
+ [0x0478,"ii-CN","UNICODE"],
+ [0x046A,"yo-NG","CP1252"],
+ ]
+ end
+ end
+end
diff --git a/vendor/gems/locale-2.0.5/lib/locale/info.rb b/vendor/gems/locale-2.0.5/lib/locale/info.rb
new file mode 100644
index 000000000..1aac39115
--- /dev/null
+++ b/vendor/gems/locale-2.0.5/lib/locale/info.rb
@@ -0,0 +1,12 @@
+=begin
+
+ info.rb - Load Locale::Info::Language and Locale::Info::Region.
+
+ Copyright (C) 2008 Masao Mutoh
+
+ $Id: info.rb 27 2008-12-03 15:06:50Z mutoh $
+=end
+
+require 'locale/info/language'
+require 'locale/info/region'
+
diff --git a/vendor/gems/locale-2.0.5/lib/locale/info/language.rb b/vendor/gems/locale-2.0.5/lib/locale/info/language.rb
new file mode 100644
index 000000000..b14752354
--- /dev/null
+++ b/vendor/gems/locale-2.0.5/lib/locale/info/language.rb
@@ -0,0 +1,135 @@
+# encoding: UTF-8
+=begin
+
+ language.rb - Locale::Info::Language class
+
+ Copyright (C) 2008 Masao Mutoh
+
+ Original Author:: Brian Pontarelli
+
+ $Id: language.rb 27 2008-12-03 15:06:50Z mutoh $
+=end
+
+require 'zlib'
+
+module Locale
+
+ module Info
+ # This class contains all the of the ISO information for the ISO 639-3
+ # languages. This class is immutable once constructed.
+ class Language
+ attr_reader :two_code, :three_code, :scope, :type, :name
+
+ #
+ # Constructs a new Language instance.
+ #
+ # * code The 2 or 3 digit ISO 639-3 language code.
+ # * scope A single character that defines the ISO scope of the language - <tt>(I)ndividual</tt>,
+ # <tt>(M)acrolanguage</tt>, or <tt>(S)pecial</tt>.
+ # * type A single character that defines the ISO type of the language - <tt>(A)ncient</tt>,
+ # <tt>(C)onstructed</tt>, <tt>(E)xtinct</tt>, <tt>(H)istorical</tt>, <tt>(L)iving</tt>,
+ # or <tt>(S)pecial</tt>.
+ # * name The name of the language.
+ #
+ def initialize(two_code, three_code, scope, type, name)
+ @two_code, @three_code, @scope, @type, @name = two_code, three_code, scope, type, name
+
+ @individual = (scope == "I")
+ @macro = (scope == "M")
+ @special = (scope == "S")
+ @constructed = (type == "C")
+ @living = (type == "L")
+ @extinct = (type == "E")
+ @ancient = (type == "A")
+ @historical = (type == "H")
+ @special_type = (type == "S")
+ end
+
+ # Returns true if the language is an individual language according to the ISO 639-3 data.
+ def individual?; @individual; end
+
+ # Returns true if the language is a macro language according to the ISO 639-3 data.
+ def macro?; @macro; end
+
+ # Returns true if the language is a special language according to the ISO 639-3 data.
+ def special?; @special; end
+
+ # Returns true if the language is a constructed language according to the ISO 639-3 data.
+ def constructed?; @constructed; end
+
+ # Returns true if the language is a living language according to the ISO 639-3 data.
+ def living?; @living; end
+
+ # Returns true if the language is an extinct language according to the ISO 639-3 data.
+ def extinct?; @extinct; end
+
+ # Returns true if the language is an ancient language according to the ISO 639-3 data.
+ def ancient?; @ancient; end
+
+ # Returns true if the language is an historical language according to the ISO 639-3 data.
+ def historical?; @historical; end
+
+ # Returns true if the language is a special type language according to the ISO 639-3 data.
+ def special_type?; @special_type; end
+
+ # Returns the two or three code.
+ def to_s
+ two_code || tree_code
+ end
+
+ # Returns this object is valid as ISO 639 data.
+ def iso_language?
+ @@lang_two_codes[two_code] != nil || @@lang_three_codes[three_code] != nil
+ end
+ end
+
+ @@lang_two_codes = Hash.new
+ @@lang_three_codes = Hash.new
+
+ Zlib::GzipReader.open(File.dirname(__FILE__) + "/../data/languages.tab.gz") do |gz|
+ gz.readlines.each do |l|
+ l.force_encoding('UTF-8') if l.respond_to?(:force_encoding)
+ unless l =~ /^\s*$/
+ parts = l.split(/\t/)
+ lang = Language.new(parts[2], parts[0], parts[3], parts[4], parts[5].strip)
+ @@lang_three_codes[parts[0]] = lang
+ @@lang_two_codes[parts[2]] = lang if parts[2].length > 0
+ end
+ end
+ end
+
+ module_function
+
+ # Returns a hash of all the ISO languages. The hash is {String, language} where
+ # the string is the 3 digit language code from the ISO 639 data. This contains
+ # all of the data from the ISO 639-3 data (7600 Languages).
+ #
+ # Need to require 'locale/info' or 'locale/language'.
+ def three_languages
+ @@lang_three_codes
+ end
+
+ # Returns a hash of all the ISO languages. The hash is {String, language} where
+ # the string is the 2 digit language code from the ISO 639-1 data. This contains
+ # all of the data from the ISO 639-1 data (186 Languages).
+ #
+ # Need to require 'locale/info' or 'locale/language'.
+ def two_languages
+ @@lang_two_codes
+ end
+
+ # Returns the language for the given 2 or 3 digit code.
+ #
+ # Need to require 'locale/info' or 'locale/language'.
+ def get_language(code)
+ @@lang_three_codes[code] || @@lang_two_codes[code]
+ end
+
+ # Returns the language code is valid.
+ #
+ # Need to require 'locale/info' or 'locale/language'.
+ def language_code?(code)
+ get_language(code) != nil
+ end
+ end
+end
diff --git a/vendor/gems/locale-2.0.5/lib/locale/info/region.rb b/vendor/gems/locale-2.0.5/lib/locale/info/region.rb
new file mode 100644
index 000000000..daf192410
--- /dev/null
+++ b/vendor/gems/locale-2.0.5/lib/locale/info/region.rb
@@ -0,0 +1,75 @@
+# encoding: UTF-8
+=begin
+
+ region.rb - Locale::Info::Region class
+
+ Copyright (C) 2008 Masao Mutoh
+
+ First Author:: Brian Pontarelli
+
+ $Id: region.rb 27 2008-12-03 15:06:50Z mutoh $
+=end
+
+require 'zlib'
+
+module Locale
+
+ module Info
+ # This class models out a region/country from the ISO 3166 standard for region codes.
+ # In ISO3166, it's called "Country" but Ruby/Locale the word "Region" instead.
+ class Region
+ attr_reader :code, :name
+
+ # code:: The 2 or 3 digit ISO 3166 region code.
+ # name:: The name of the region.
+ def initialize(code, name)
+ @code = code
+ @name = name
+ end
+
+ def iso_region?
+ @@regions[code] != nil
+ end
+
+ def to_s
+ "#{code}"
+ end
+ end
+
+ @@regions = Hash.new
+ Zlib::GzipReader.open(File.dirname(__FILE__) + "/../data/regions.tab.gz") do |gz|
+ gz.readlines.each do |l|
+ l.force_encoding('UTF-8') if l.respond_to?(:force_encoding)
+ unless l =~ /^\s*$/
+ parts = l.split(/\t/)
+ region = Region.new(parts[0], parts[1].strip)
+ @@regions[parts[0]] = region
+ end
+ end
+ end
+
+ module_function
+
+ # Returns a hash of all the ISO regions. The hash is {String, Region} where
+ # the string is the 2 digit region code from the ISO 3166 data.
+ #
+ # You need to require 'locale/info' or 'locale/region'.
+ def regions
+ @@regions
+ end
+
+ # Returns the region for the given code.
+ #
+ # You need to require 'locale/info' or 'locale/info/region'.
+ def get_region(code)
+ @@regions[code]
+ end
+
+ # Returns the region code is valid.
+ #
+ # You need to require 'locale/info' or 'locale/info/region'.
+ def valid_region_code?(code)
+ @@regions[code] != nil
+ end
+ end
+end
diff --git a/vendor/gems/locale-2.0.5/lib/locale/tag.rb b/vendor/gems/locale-2.0.5/lib/locale/tag.rb
new file mode 100644
index 000000000..f4be35ad3
--- /dev/null
+++ b/vendor/gems/locale-2.0.5/lib/locale/tag.rb
@@ -0,0 +1,39 @@
+=begin
+ tag.rb - Locale::Tag module
+
+ Copyright (C) 2008,2009 Masao Mutoh
+
+ You may redistribute it and/or modify it under the same
+ license terms as Ruby.
+=end
+
+require 'locale/tag/simple'
+require 'locale/tag/irregular'
+require 'locale/tag/common'
+require 'locale/tag/rfc'
+require 'locale/tag/cldr'
+require 'locale/tag/posix'
+require 'locale/util/memoizable'
+
+module Locale
+
+ # Language tag / locale identifiers.
+ module Tag
+ include Util::Memoizable
+ module_function
+ # Parse a language tag/locale name and return Locale::Tag
+ # object.
+ # * tag: a tag as a String. e.g.) ja-Hira-JP
+ # * Returns: a Locale::Tag subclass.
+ def parse(tag)
+ # Common is not used here.
+ [Simple, Common, Rfc, Cldr, Posix].each do |parser|
+ ret = parser.parse(tag)
+ return ret if ret
+ end
+ Locale::Tag::Irregular.new(tag)
+ end
+ memoize :parse
+ end
+end
+
diff --git a/vendor/gems/locale-2.0.5/lib/locale/tag/cldr.rb b/vendor/gems/locale-2.0.5/lib/locale/tag/cldr.rb
new file mode 100644
index 000000000..0a52d836d
--- /dev/null
+++ b/vendor/gems/locale-2.0.5/lib/locale/tag/cldr.rb
@@ -0,0 +1,99 @@
+=begin
+ locale/tag/cldr.rb - Locale::Tag::CLDR
+
+ Copyright (C) 2008,2009 Masao Mutoh
+
+ You may redistribute it and/or modify it under the same
+ license terms as Ruby.
+=end
+
+require 'locale/tag/common'
+
+module Locale
+ module Tag
+
+ # Unicode locale identifier class for CLDR-1.6.1.
+ # (Unicode Common Locale Data Repository).
+ class Cldr < Common
+
+ VARIANT = "(#{ALPHANUM}{5,8}|#{DIGIT}#{ALPHANUM}{3})"
+ EXTENSION = "#{ALPHANUM}+=[a-z0-9\-]+"
+
+ TAG_RE = /\A#{LANGUAGE}(?:[-_]#{SCRIPT})?
+ (?:[-_]#{REGION})?((?:[-_]#{VARIANT})*
+ (?:@(#{EXTENSION};?)+)*)\Z/ix
+
+ attr_reader :extensions
+
+ class << self
+ include Util::Memoizable
+ # Parse the language tag and return the new Locale::Tag::CLDR.
+ def parse(tag)
+ if tag =~ /\APOSIX\Z/ # This is the special case of POSIX locale but match this regexp.
+ nil
+ elsif tag =~ TAG_RE
+ lang, script, region, subtag = $1, $2, $3, $4
+
+ extensions = {}
+ subtag.scan(/#{EXTENSION}/i).each{|v|
+ subtag.sub!(v, "")
+ key, type = v.split("=")
+ extensions[key] = type
+ }
+ variants = subtag.scan(/#{VARIANT}/i).collect{|v| v[0].upcase}
+
+ ret = self.new(lang, script, region, variants, extensions)
+ ret.tag = tag
+ ret
+ else
+ nil
+ end
+ end
+ memoize_dup :parse
+ end
+
+ # Create Locale::Tag::Cldr.
+ #
+ # variants should be upcase.
+ def initialize(language, script = nil, region = nil,
+ variants = [], extensions = {})
+ @extensions = extensions
+ super(language, script, region, variants.map{|v| v.upcase})
+ end
+
+ # Sets the extensions as an Hash.
+ def extensions=(val)
+ clear
+ @extensions = val
+ end
+
+ private
+ def convert_to(klass) # :nodoc:
+ if klass == Cldr
+ klass.new(language, script, region, variants, extensions)
+ elsif klass == Rfc
+ exts = []
+ @extensions.to_a.sort.each do |k, v|
+ exts << "k-#{k[0,8]}-#{v[0,8]}"
+ end
+
+ klass.new(language, script, region, variants, exts)
+ else
+ super
+ end
+ end
+
+ # Returns the language tag.
+ # (e.g.) "ja_Hira_JP_VARIANT1_VARIANT2@foo1=var1;foo2=var2"
+ #
+ # This is used in internal only. Use to_s instead.
+ def to_string
+ s = super
+ if @extensions.size > 0
+ s << "@" << @extensions.to_a.sort.map{|k, v| "#{k}=#{v}"}.join(";")
+ end
+ s
+ end
+ end
+ end
+end
diff --git a/vendor/gems/locale-2.0.5/lib/locale/tag/common.rb b/vendor/gems/locale-2.0.5/lib/locale/tag/common.rb
new file mode 100644
index 000000000..ad85c18da
--- /dev/null
+++ b/vendor/gems/locale-2.0.5/lib/locale/tag/common.rb
@@ -0,0 +1,129 @@
+=begin
+ locale/tag/common.rb - Locale::Tag::Common
+
+ Copyright (C) 2008,2009 Masao Mutoh
+
+ You may redistribute it and/or modify it under the same
+ license terms as Ruby.
+=end
+
+require 'locale/tag/simple'
+
+module Locale
+ module Tag
+ # Common Language tag class for Ruby.
+ # Java and MS Windows use this format.
+ #
+ # * ja (language: RFC4646)
+ # * ja_JP (country: RFC4646(2 alpha or 3 digit))
+ # * ja-JP
+ # * ja_Hira_JP (script: 4 characters)
+ # * ja-Hira-JP
+ # * ja_Hira_JP_MOBILE (variants: more than 2 characters or 3 digit)
+ # * ja_Hira_JP_MOBILE_IPHONE (2 variants example)
+ #
+ class Common < Simple
+ LANGUAGE = "(#{ALPHA}{2,3}|#{ALPHA}{4}|#{ALPHA}{5,8})" #RFC4646 (ISO639/reserved/registered)
+ SCRIPT = "(#{ALPHA}{4})"
+ VARIANT = "(#{ALPHANUM}{3,}|#{DIGIT}#{ALPHANUM}{3})" #RFC3066 compatible
+
+ TAG_RE = /\A#{LANGUAGE}(?:[-_]#{SCRIPT})?
+ (?:[-_]#{REGION})?((?:[-_]#{VARIANT})*)\Z/ix
+
+ attr_reader :script, :variants
+
+ class << self
+ include Util::Memoizable
+ # Parse the language tag and return the new Locale::Tag::Common.
+ def parse(tag)
+ if tag =~ /\APOSIX\Z/ # This is the special case of POSIX locale but match this regexp.
+ nil
+ elsif tag =~ TAG_RE
+ lang, script, region, subtag = $1, $2, $3, $4
+ variants = subtag.scan(/(^|[-_])#{VARIANT}(?=([-_]|$))/i).collect{|v| v[1]}
+
+ ret = self.new(lang, script, region, variants)
+ ret.tag = tag
+ ret
+ else
+ nil
+ end
+ end
+ memoize_dup :parse
+ end
+
+ # Create a Locale::Tag::Common.
+ def initialize(language, script = nil, region = nil, variants = [])
+ @script, @variants = script, variants
+ @script = @script.capitalize if @script
+ super(language, region)
+ end
+
+ # Set the script (with capitalize)
+ def script=(val)
+ clear
+ @script = val
+ @script = @script.capitalize if @script
+ @script
+ end
+
+ # Set the variants as an Array.
+ def variants=(val)
+ clear
+ @variants = val
+ end
+
+ # Returns an Array of tag-candidates order by priority.
+ # Use Locale.candidates instead of this method.
+ #
+ # Locale::Tag::Rfc, Cldr don't have their own candidates,
+ # because it's meaningless to compare the extensions, privateuse, etc.
+ def candidates
+ [self.class.new(language, script, region, variants), #ja-Kana-JP-FOO
+ self.class.new(language, script, region), #ja-Kana-JP
+ self.class.new(language, nil, region, variants), #ja-JP-FOO
+ self.class.new(language, nil, region), #ja-JP
+ self.class.new(language, script, nil, variants), #ja-Kana-FOO
+ self.class.new(language, script), #ja-Kana
+ self.class.new(language, nil, nil, variants), #ja-FOO
+ self.class.new(language)] #ja
+ end
+ memoize_dup :candidates
+
+ private
+ def convert_to(klass) #:nodoc:
+ if klass == Simple
+ super
+ elsif klass == Posix
+ if variants.size > 0
+ var = variants.join("-")
+ else
+ var = nil
+ end
+ klass.new(language, region, nil, var)
+ elsif klass == Cldr
+ klass.new(language, script, region, variants.map{|v| v.upcase})
+ else
+ klass.new(language, script, region, variants)
+ end
+ end
+
+ # Returns the common language tag with "_".
+ # <language>_<Script>_<REGION>_VARIANTS1_VARIANTS2
+ # (e.g.) "ja_Hira_JP_VARIANTS1_VARIANTS2"
+ #
+ # This is used in internal only. Use to_s instead.
+ def to_string
+ s = @language.dup
+
+ s << "_" << @script if @script
+ s << "_" << @region if @region
+
+ @variants.each do |v|
+ s << "_#{v}"
+ end
+ s
+ end
+ end
+ end
+end
diff --git a/vendor/gems/locale-2.0.5/lib/locale/tag/irregular.rb b/vendor/gems/locale-2.0.5/lib/locale/tag/irregular.rb
new file mode 100644
index 000000000..ede85b600
--- /dev/null
+++ b/vendor/gems/locale-2.0.5/lib/locale/tag/irregular.rb
@@ -0,0 +1,40 @@
+=begin
+ locale/tag/irregular.rb - Locale::Tag::Irregular
+
+ Copyright (C) 2008 Masao Mutoh
+
+ You may redistribute it and/or modify it under the same
+ license terms as Ruby.
+
+ $Id: irregular.rb 27 2008-12-03 15:06:50Z mutoh $
+=end
+
+require 'locale/tag/simple'
+
+module Locale
+
+ module Tag
+ # Broken tag class.
+ class Irregular < Simple
+
+ def initialize(tag)
+ tag = "en" if tag == nil or tag == ""
+ super(tag.to_s)
+ @tag = tag
+ end
+
+ # Returns an Array of tag-candidates order by priority.
+ def candidates
+ [Irregular.new(tag)]
+ end
+ memoize :candidates
+
+ # Conver to the klass(the class of Language::Tag)
+ private
+ def convert_to(klass)
+ klass.new(tag)
+ end
+ memoize :convert_to
+ end
+ end
+end
diff --git a/vendor/gems/locale-2.0.5/lib/locale/tag/posix.rb b/vendor/gems/locale-2.0.5/lib/locale/tag/posix.rb
new file mode 100644
index 000000000..b04aa54a1
--- /dev/null
+++ b/vendor/gems/locale-2.0.5/lib/locale/tag/posix.rb
@@ -0,0 +1,97 @@
+=begin
+ locale/tag/posix.rb - Locale::Tag::Posix
+
+ Copyright (C) 2008 Masao Mutoh
+
+ You may redistribute it and/or modify it under the same
+ license terms as Ruby.
+
+ $Id: posix.rb 27 2008-12-03 15:06:50Z mutoh $
+=end
+
+module Locale
+ module Tag
+
+ # Locale tag class for POSIX locale
+ # * ja
+ # * ja_JP
+ # * ja_JP.UTF-8
+ # * ja_JP.UTF-8@Osaka
+ # * C/POSIX (-> en_US)
+ class Posix < Simple
+ LANGUAGE = "([a-z]{2,})"
+ TAG_RE = /\A#{LANGUAGE}(?:_#{REGION})?(?:\.([^@]+))?(?:@(.*))?\Z/i
+
+ attr_reader :charset, :modifier
+
+ def initialize(language, region = nil, charset = nil, modifier = nil)
+ @charset, @modifier = charset, modifier
+ super(language, region)
+ end
+
+ def self.parse(tag)
+ if tag =~ /^(C|POSIX)$/
+ ret = self.new("en", "US")
+ ret.tag = tag
+ ret
+ elsif tag =~ TAG_RE
+ ret = self.new($1, $2, $3, $4)
+ ret.tag = tag
+ ret
+ else
+ nil
+ end
+ end
+
+ # Returns the language tag.
+ # <language>_<COUNTRY>.<CHARSET>@<MODIFIER>
+ # (e.g.) "ja_JP.EUC-JP@Modifier"
+ def to_s
+ s = @language.dup
+ s << "_#{@region}" if @region
+ s << ".#{@charset}" if @charset
+ s << "@#{@modifier}" if @modifier
+ s
+ end
+
+ # Set the charset.
+ def charset=(val)
+ clear
+ @charset = val
+ end
+
+ # Set the modifier as a String
+ def modifier=(val)
+ clear
+ @modifier = val
+ end
+
+ # Returns an Array of tag-candidates order by priority.
+ # Use Locale.candidates instead of this method.
+ def candidates
+ [self.class.new(language, region, charset, modifier), #ja_JP.UTF-8@Modifier
+ self.class.new(language, region, charset), #ja_JP.UTF-8
+ self.class.new(language, region, nil, modifier), #ja_JP@Modifier
+ self.class.new(language, region, nil, nil), #ja_JP@Modifier
+ self.class.new(language, nil, charset, modifier), #ja.UTF-8@Modifier
+ self.class.new(language, nil, charset), #ja.UTF-8
+ self.class.new(language, nil, nil, modifier), #ja@Modifier
+ self.class.new(language)] #ja
+ end
+
+ # A modifier is converted to a variant.
+ # If the modifier is less than 5 characters, it is not canonical value.
+ private
+ def convert_to(klass)
+ if klass == Simple
+ super
+ elsif klass == Posix
+ klass.new(language, region, charset, modifier)
+ else
+ klass.new(language, nil, region, modifier ? [modifier] : [])
+ end
+ end
+
+ end
+ end
+end
diff --git a/vendor/gems/locale-2.0.5/lib/locale/tag/rfc.rb b/vendor/gems/locale-2.0.5/lib/locale/tag/rfc.rb
new file mode 100644
index 000000000..5a230b6e0
--- /dev/null
+++ b/vendor/gems/locale-2.0.5/lib/locale/tag/rfc.rb
@@ -0,0 +1,112 @@
+=begin
+ locale/tag/rfc.rb - Locale::Tag::Rfc
+
+ Copyright (C) 2008,2009 Masao Mutoh
+
+ You may redistribute it and/or modify it under the same
+ license terms as Ruby.
+=end
+
+require 'locale/tag/common'
+
+module Locale
+ module Tag
+
+ # Language tag class for RFC4646(BCP47).
+ class Rfc < Common
+ SINGLETON = '[a-wyz0-9]'
+ VARIANT = "(#{ALPHANUM}{5,8}|#{DIGIT}#{ALPHANUM}{3})"
+ EXTENSION = "(#{SINGLETON}(?:-#{ALPHANUM}{2,8})+)"
+ PRIVATEUSE = "(x(?:-#{ALPHANUM}{1,8})+)"
+ GRANDFATHERED = "#{ALPHA}{1,3}(?:-#{ALPHANUM}{2,8}){1,2}"
+
+ TAG_RE = /\A#{LANGUAGE}(?:-#{SCRIPT})?
+ (?:-#{REGION})?((?:-#{VARIANT})*
+ (?:-#{EXTENSION})*(?:-#{PRIVATEUSE})?)\Z/ix
+
+ attr_reader :extensions, :privateuse
+
+ class << self
+ include Util::Memoizable
+ # Parse the language tag and return the new Locale::Tag::Rfc.
+ def parse(tag)
+ if tag =~ /\APOSIX\Z/ # This is the special case of POSIX locale but match this regexp.
+ nil
+ elsif tag =~ TAG_RE
+ lang, script, region, subtag = $1, $2, $3, $4
+ extensions = []
+ variants = []
+ if subtag =~ /#{PRIVATEUSE}/
+ subtag, privateuse = $`, $1
+ # Private use for CLDR.
+ if /x-ldml(.*)/ =~ privateuse
+ p_subtag = $1
+ extensions = p_subtag.scan(/(^|-)#{EXTENSION}/i).collect{|v| p_subtag.sub!(v[1], ""); v[1]}
+ variants = p_subtag.scan(/(^|-)#{VARIANT}(?=(-|$))/i).collect{|v| v[1]}
+ end
+ end
+ extensions += subtag.scan(/(^|-)#{EXTENSION}/i).collect{|v| subtag.sub!(v[1], ""); v[1]}
+ variants += subtag.scan(/(^|-)#{VARIANT}(?=(-|$))/i).collect{|v| v[1]}
+
+ ret = self.new(lang, script, region, variants, extensions, privateuse)
+ ret.tag = tag
+ ret
+ else
+ nil
+ end
+ end
+ memoize_dup :parse
+ end
+
+ def initialize(language, script = nil, region = nil, variants = [],
+ extensions = [], privateuse = nil)
+ @extensions, @privateuse = extensions, privateuse
+ super(language, script, region, variants)
+ end
+
+ # Sets the extensions as an Array.
+ def extensions=(val)
+ clear
+ @extensions = val
+ end
+
+ # Sets the privateuse as a String
+ def privateuse=(val)
+ clear
+ @privateuse = val
+ end
+
+ private
+ def convert_to(klass)
+ if klass == Rfc
+ klass.new(language, script, region, variants, extensions, privateuse)
+ elsif klass == Cldr
+ exts = {}
+ extensions.sort.each do |v|
+ if v =~ /^k-(#{ALPHANUM}{2,})-(.*)$/i
+ exts[$1] = $2
+ end
+ end
+ klass.new(language, script, region, variants, exts)
+ else
+ super
+ end
+ end
+
+ # Returns the language tag
+ # <language>-<Script>-<REGION>-<variants>-<extensions>-<PRIVATEUSE>
+ # (e.g.) "ja-Hira-JP-variant"
+ #
+ # This is used in internal only. Use to_s instead.
+ def to_string
+ s = super.gsub(/_/, "-")
+ @extensions.sort.each do |v|
+ s << "-#{v}"
+ end
+ s << "-#{@privateuse}" if @privateuse
+ s
+ end
+
+ end
+ end
+end
diff --git a/vendor/gems/locale-2.0.5/lib/locale/tag/simple.rb b/vendor/gems/locale-2.0.5/lib/locale/tag/simple.rb
new file mode 100644
index 000000000..bf3719b88
--- /dev/null
+++ b/vendor/gems/locale-2.0.5/lib/locale/tag/simple.rb
@@ -0,0 +1,162 @@
+=begin
+ locale/tag/simple.rb - Locale::Tag::Simple
+
+ Copyright (C) 2008,2009 Masao Mutoh
+
+ You may redistribute it and/or modify it under the same
+ license terms as Ruby.
+=end
+
+require 'locale/util/memoizable'
+
+module Locale
+ module Tag
+ # Abstract language tag class.
+ # This class has <language>, <region> which
+ # all of language tag specifications have.
+ #
+ # * ja (language: ISO 639 (2 or 3 alpha))
+ # * ja_JP (country: RFC4646 (ISO3166/UN M.49) (2 alpha or 3 digit)
+ # * ja-JP
+ # * ja-392
+ class Simple
+ include Util::Memoizable
+
+ ALPHA = '[a-z]'
+ DIGIT = '[0-9]'
+ ALPHANUM = "[a-zA-Z0-9]"
+
+ LANGUAGE = "(#{ALPHA}{2,3})" # ISO 639
+ REGION = "(#{ALPHA}{2}|#{DIGIT}{3})" # RFC4646 (ISO3166/UN M.49)
+
+ TAG_RE = /\A#{LANGUAGE}(?:[_-]#{REGION})?\Z/i
+
+ include Util::Memoizable
+
+ attr_reader :language, :region
+
+ # tag is set when .parse method is called.
+ # This value is used when the program want to know the original
+ # String.
+ attr_accessor :tag
+
+ # call-seq:
+ # to_common
+ # to_posix
+ # to_rfc
+ # to_cldr
+ #
+ # Convert to each tag classes.
+ [:simple, :common, :posix, :rfc, :cldr].each do |name|
+ class_eval <<-EOS
+ def to_#{name}
+ convert_to(#{name.to_s.capitalize})
+ end
+ memoize_dup :to_#{name}
+ EOS
+ end
+
+ class << self
+ include Util::Memoizable
+ # Parse the language tag and return the new Locale::Tag::Simple.
+ def parse(tag)
+ if tag =~ TAG_RE
+ ret = self.new($1, $2)
+ ret.tag = tag
+ ret
+ else
+ nil
+ end
+ end
+ memoize_dup :parse
+ end
+
+ # Create a Locale::Tag::Simple
+ def initialize(language, region = nil)
+ raise "language can't be nil." unless language
+ @language, @region = language, region
+ @language = @language.downcase if @language
+ @region = @region.upcase if @region
+ end
+
+ # Returns the language tag as the String.
+ # <language>_<REGION>
+ # (e.g.) "ja_JP"
+ def to_s
+ to_string
+ end
+ memoize :to_s
+
+ def to_str #:nodoc:
+ to_s
+ end
+
+ def <=>(other)
+ self.to_s <=> other.to_s
+ end
+
+ def ==(other) #:nodoc:
+ other != nil and hash == other.hash
+ end
+
+ def eql?(other) #:nodoc:
+ self.==(other)
+ end
+ memoize :eql?
+
+ def hash #:nodoc:
+ "#{self.class}:#{to_s}".hash
+ end
+ memoize :hash
+
+ def inspect #:nodoc:
+ %Q[#<#{self.class}: #{to_s}>]
+ end
+ memoize :inspect
+
+ # For backward compatibility.
+ def country; region end
+
+ # Set the language (with downcase)
+ def language=(val)
+ clear
+ @language = val
+ @language = @language.downcase if @language
+ @language
+ end
+
+ # Set the region (with upcase)
+ def region=(val)
+ clear
+ @region = val
+ @region = @region.upcase if @region
+ @region
+ end
+
+ # Returns an Array of tag-candidates order by priority.
+ # Use Locale.candidates instead of this method.
+ def candidates
+ [self.class.new(language, region), self.class.new(language)]
+ end
+ memoize_dup :candidates
+
+ # Convert to the klass(the class of Language::Tag)
+ private
+ def convert_to(klass) #:nodoc:
+ if klass == Simple || klass == Posix
+ klass.new(language, region)
+ else
+ klass.new(language, nil, region)
+ end
+ end
+
+ # Return simple language tag which format is"<lanuguage>_<REGION>".
+ # This is to use internal only. Use to_s instead.
+ def to_string
+ s = @language.dup
+ s << "_" << @region if @region
+ s
+ end
+ end
+ end
+end
diff --git a/vendor/gems/locale-2.0.5/lib/locale/taglist.rb b/vendor/gems/locale-2.0.5/lib/locale/taglist.rb
new file mode 100644
index 000000000..e5d879cc3
--- /dev/null
+++ b/vendor/gems/locale-2.0.5/lib/locale/taglist.rb
@@ -0,0 +1,109 @@
+=begin
+ taglist.rb - Locale module
+
+ Copyright (C) 2008 Masao Mutoh
+
+ You may redistribute it and/or modify it under the same
+ license terms as Ruby.
+
+ $Id: taglist.rb 27 2008-12-03 15:06:50Z mutoh $
+=end
+
+require 'locale/util/memoizable'
+
+module Locale
+ # This provides the subclass of Array which behaves like
+ # the first(top priority) Locale::Tag object.
+ # "Locale.current.language" is same with "Locale.current[0].language".
+ #
+ # Locale.current returns an Array of Tag(s) now.
+ # But the old Locale.current(Ruby-GetText) and Locale.get
+ # returns Locale::Object (similier with Locale::Tag::Posix).
+ # This is the class for backward compatibility.
+ #
+ # It is recommanded to use Locale.current[0] or
+ # Locale.candidates to find the current locale instead
+ # of this function.
+ #
+ class TagList < Array
+ include Util::Memoizable
+
+ # Returns the top priority language. (simple)
+ def language
+ self[0].language
+ end
+ # Returns the top priority region/country. (simple)
+ def country
+ self[0].region
+ end
+ # Returns the top priority region/country. (simple)
+ def region
+ self[0].region
+ end
+ # Returns the top priority script. (common)
+ def script
+ self[0].script
+ end
+ # Returns the top priority charset. (posix)
+ def charset
+ if self[0].respond_to? :charset
+ self[0].charset
+ else
+ ::Locale.driver_module.charset
+ end
+ end
+ memoize :charset
+
+ # Returns the top priority modifier. (posix)
+ def modifier
+ (self[0].respond_to? :modifier) ? self[0].modifier : nil
+ end
+ memoize :modifier
+
+ # Returns the top priority variants.(common, rfc, cldr)
+ def variants
+ (self[0].respond_to? :variants) ? self[0].variants : nil
+ end
+ memoize :variants
+
+ # Returns the top priority extensions.(common, rfc, cldr)
+ def extensions
+ (self[0].respond_to? :extensions) ? self[0].extensions : nil
+ end
+ memoize :extensions
+
+ # Returns the top priority privateuse(rfc)
+ def privateuse
+ (self[0].respond_to? :privateuse) ? self[0].privateuse : nil
+ end
+ memoize :privateuse
+
+ def to_str
+ self[0].to_str
+ end
+
+ def to_s
+ self[0].to_s
+ end
+
+ def to_common
+ self[0].to_common
+ end
+
+ def to_simple
+ self[0].to_simple
+ end
+
+ def to_rfc
+ self[0].to_rfc
+ end
+
+ def to_cldr
+ self[0].to_cldr
+ end
+
+ def to_posix
+ self[0].to_posix
+ end
+ end
+end
diff --git a/vendor/gems/locale-2.0.5/lib/locale/util/memoizable.rb b/vendor/gems/locale-2.0.5/lib/locale/util/memoizable.rb
new file mode 100644
index 000000000..b26ffc86c
--- /dev/null
+++ b/vendor/gems/locale-2.0.5/lib/locale/util/memoizable.rb
@@ -0,0 +1,108 @@
+# Refer from activesupport-2.2.0.
+#
+# * Remove the dependecies to activesupport.
+# * change the key to hash value of args.
+# * Not Thread safe
+# * Add the clear method.
+module Locale
+ module Util
+ module Memoizable
+ MEMOIZED_IVAR = Proc.new do |symbol|
+ "#{symbol.to_s.sub(/\?\Z/, '_query').sub(/!\Z/, '_bang')}".to_sym
+ end
+
+ def self.included(base)
+ mod = self
+ base.class_eval do
+ extend mod
+ end
+ end
+
+ alias :freeze_without_memoizable :freeze #:nodoc:
+ def freeze #:nodoc:
+ unless frozen?
+ @_memoized_ivars = {}
+ freeze_without_memoizable
+ end
+ end
+
+ # Clear memoized values. Deprecated.
+ def clear # :nodoc:
+ @_memoized_ivars = {}
+ end
+
+ # Clear memoized values.
+ def memoize_clear
+ @_memoized_ivars = {}
+ end
+
+ # Cache the result of the methods.
+ #
+ # include Memoizable
+ # def foo
+ # ......
+ # end
+ # def bar(a, b)
+ # ......
+ # end
+ # memoize :foo, :bar(a, b)
+ #
+ # To clear cache, #clear_foo, #clear_bar is also defined.
+ #
+ # (NOTE)
+ # * Consider to use this with huge objects to avoid memory leaks.
+ # * Can't use this with super.<method> because of infinity loop.
+ def memoize(*symbols)
+ memoize_impl(false, *symbols)
+ end
+
+ # memoize with dup. A copy object is returned.
+ def memoize_dup(*symbols)
+ memoize_impl(true, *symbols)
+ end
+
+ def memoize_impl(is_dup, *symbols) #:nodoc:
+ symbols.each do |symbol|
+ original_method = "_unmemoized_#{symbol}"
+ memoized_ivar = MEMOIZED_IVAR.call(symbol)
+ dup_meth = is_dup ? "_dup" : ""
+
+ class_eval <<-EOS, __FILE__, __LINE__
+ alias #{original_method} #{symbol}
+ def #{symbol}(*args)
+ _memoize#{dup_meth}(:#{memoized_ivar}, args.hash) do
+ #{original_method}(*args)
+ end
+ end
+ EOS
+ end
+ end
+
+ def _memoize(ivar, key) #:nodoc:
+ @_memoized_ivars ||= {}
+ @_memoized_ivars[ivar] ||= {}
+
+ ret = @_memoized_ivars[ivar][key]
+ unless ret
+ ret = yield
+ ret.freeze
+ @_memoized_ivars[ivar][key] = ret
+ end
+ ret
+ end
+
+ def _memoize_dup(ivar, key) #:nodoc:
+ ret = _memoize(ivar, key) do; yield; end
+ if ret
+ if ret.kind_of? Array
+ ret.map{|v| v.dup}.dup
+ else
+ ret.dup
+ end
+ else
+ nil
+ end
+ end
+ end
+ end
+end
diff --git a/vendor/gems/locale-2.0.5/lib/locale/version.rb b/vendor/gems/locale-2.0.5/lib/locale/version.rb
new file mode 100644
index 000000000..63bb15b35
--- /dev/null
+++ b/vendor/gems/locale-2.0.5/lib/locale/version.rb
@@ -0,0 +1,12 @@
+=begin
+ version - version information of Ruby-Locale
+
+ Copyright (C) 2008 Masao Mutoh
+
+ You may redistribute it and/or modify it under the same
+ license terms as Ruby.
+=end
+module Locale
+ VERSION = "2.0.5"
+end
+
diff --git a/vendor/gems/locale-2.0.5/samples/cgi/README b/vendor/gems/locale-2.0.5/samples/cgi/README
new file mode 100644
index 000000000..e11819306
--- /dev/null
+++ b/vendor/gems/locale-2.0.5/samples/cgi/README
@@ -0,0 +1,20 @@
+Sample script for CGI/ERB and Ruby/Locale.
+
+Run the http server.
+$ ruby http.rb
+
+Access the http server from WWW browser:
+
+http://localhost:10080/
+
+or
+
+If you want to set locale(lang) forcely, then:
+
+http://localhost:10080/?lang=ja
+ #ja is a target locale in this sample.
+
+http.rb - an http server for samples using WEBrick
+index.cgi - a sample menu (CGI sample)
+cookie.cgi - Set lang to cookie value.
+locale.css - CSS file.
diff --git a/vendor/gems/locale-2.0.5/samples/cgi/cookie.cgi b/vendor/gems/locale-2.0.5/samples/cgi/cookie.cgi
new file mode 100755
index 000000000..06adbc813
--- /dev/null
+++ b/vendor/gems/locale-2.0.5/samples/cgi/cookie.cgi
@@ -0,0 +1,62 @@
+#!/usr/bin/env ruby
+=begin
+ cookie.cgi - Set a selected locale to the cookie of WWW Browser.
+
+ Set UTF-8 forcely as output charset.
+
+ Recommanded to set UTF-8 forcely because some web browser
+ doesn't send HTTP_ACCEPT_CHARSET correctly.
+
+ Copyright (C) 2008 Masao Mutoh
+
+ You may redistribute it and/or modify it under the same
+ license terms as Ruby.
+=end
+
+$:<< "../../lib"
+
+require 'locale'
+require 'cgi'
+
+# Initialization of Locale library.
+Locale.init(:driver => :cgi)
+cgi = CGI.new
+Locale.set_cgi(cgi)
+
+# Get "lang" from the query string.
+lang = cgi["lang"] or ""
+
+#
+# CGI part
+#
+print "Set-Cookie:lang=#{lang}\n"
+print "Content-type:text/html; charset=UTF-8\n\n"
+
+puts %Q[
+<html>
+<head>
+ <meta http-equiv="content-type" content="text/html; charset=UTF-8">
+ <link rel="stylesheet" type="text/css" href="locale.css" media="all">
+ <title>Sample script for CGI and Ruby/Locale</title>
+</head>
+<body>
+
+<div style="text-align:center; margin:5em;">
+]
+
+if lang.size > 0
+ puts %Q!<p><div id="result">Set [#{lang}] as the cookie of your WWW browser.</div></p>!
+else
+ puts %Q!<p><div id="result">Clear "lang" value from your WWW browser.</div></p>!
+end
+
+puts %Q!
+<p style="margin:2em;"><a href="/">Back</a></p>
+</div>
+<div style="text-align:right">
+ <p>Copyright (C) 2008 Masao Mutoh</p>
+</div>
+</body>
+</html>
+!
+
diff --git a/vendor/gems/locale-2.0.5/samples/cgi/http.rb b/vendor/gems/locale-2.0.5/samples/cgi/http.rb
new file mode 100755
index 000000000..033d451f3
--- /dev/null
+++ b/vendor/gems/locale-2.0.5/samples/cgi/http.rb
@@ -0,0 +1,52 @@
+#! /usr/bin/env ruby
+=begin
+ http.rb - An WebServer for hello locale sample.
+
+ Copyright (C) 2005-2008 Masao Mutoh
+
+ You may redistribute it and/or modify it under the same
+ license terms as Ruby.
+
+ Original: Ruby-GetText-Package 1.92.0
+
+ $Id$
+=end
+
+require 'webrick'
+require 'cgi'
+require 'rbconfig'
+
+interpreter = File.join(Config::CONFIG['bindir'], Config::CONFIG['ruby_install_name']) +
+ Config::CONFIG['EXEEXT']
+
+srv = WEBrick::HTTPServer.new({:BindAddress => '127.0.0.1',
+ :Logger => WEBrick::Log::new($stderr, WEBrick::Log::DEBUG),
+ # :CGIInterpreter => "ruby -d",
+ :Port => 10080})
+
+['INT', 'TERM'].each { |signal|
+ trap(signal){ srv.shutdown}
+}
+
+srv.mount("/", WEBrick::HTTPServlet::FileHandler, File.expand_path('.'))
+
+srv.mount_proc("/src/") do |req, res|
+ res.header["Content-Type"] = "text/html; charset=UTF-8"
+ if req.query_string
+ file = File.open(req.query_string).read
+ res.body = %Q[<html>
+ <head>
+ <title>View a source code</title>
+ <meta http-equiv="content-type" content="text/html; charset=UTF-8">
+ <link rel="stylesheet" type="text/css" href="/gettext.css" media="all">
+ </head>
+ <body><h1>#{req.query_string}</h1>
+ <pre>#{CGI.escapeHTML(file)}</pre>
+ <p><a href="/">Back</a></p>
+ </body>
+ </html>
+ ]
+ end
+end
+
+srv.start
diff --git a/vendor/gems/locale-2.0.5/samples/cgi/index.cgi b/vendor/gems/locale-2.0.5/samples/cgi/index.cgi
new file mode 100755
index 000000000..47eb45237
--- /dev/null
+++ b/vendor/gems/locale-2.0.5/samples/cgi/index.cgi
@@ -0,0 +1,90 @@
+#!/usr/bin/env ruby
+=begin
+ index.cgi - Sample script for CGI
+
+ Copyright (C) 2008 Masao Mutoh
+
+ You may redistribute it and/or modify it under the same
+ license terms as Ruby.
+=end
+$:<< "../../lib"
+
+begin
+ require 'rubygems'
+rescue LoadError
+end
+
+require 'locale'
+require 'cgi'
+
+# Initialize Locale library.
+Locale.init(:driver => :cgi)
+cgi = CGI.new
+Locale.set_cgi(cgi)
+
+
+url_base = "http://#{cgi.server_name}:#{cgi.server_port}/"
+
+sample_locales = ["en-US", "fr-FR", "ja-JP"]
+
+langs = Locale.candidates(:type => :common) #Try :rfc, :simple and others.
+
+
+#
+# CGI part
+#
+
+print "Content-type:text/html; charset=UTF-8\n\n"
+
+puts %Q[<html><head>
+ <meta http-equiv="content-type" content="text/html; charset=UTF-8">
+ <link rel="stylesheet" type="text/css" href="locale.css" media="all">
+ <title>Sample script for CGI/ERB and Ruby/Locale</title>
+</head>
+<body>
+<h1>Ruby/Locale CGI sample scripts</h1>
+<p>Requested Locales order by the priority:</p>
+<div id="result">#{CGI.escapeHTML(langs.inspect)}</div>
+
+<h2>Auto-Detect the locale from the WWW browser</h2>
+<p><a href="./">#{url_base}</a></p>
+
+<h2>Set locale as the "lang" parameter</h2>
+<ol>
+]
+sample_locales.each do |lang|
+ url = url_base + "?lang=" + lang
+ puts %Q!<li> <a href="#{url}">#{CGI.escapeHTML(url)}</a> [#{lang}]</li>!
+end
+url = url_base + "?lang=zh_CN;lang=ko_KR"
+puts %Q!<li> <a href="#{url}">#{CGI.escapeHTML(url)}</a> [Plural locales]</li>!
+
+puts "</ol>"
+puts %Q[<h2>Set "lang" as the cookie value.</h2>
+<p>Click one of the link below, and then click "Auto-Detect the locale from the WWW browser".</p>
+<ol>]
+
+sample_locales.each do |lang|
+ url = url_base + "cookie.cgi?lang=" + lang
+ puts %Q!<li><a href="#{url}">#{CGI.escapeHTML(url)}</a> [#{lang}]</li>!
+end
+puts %Q!<li><a href="cookie.cgi">Clear the cookie value</a></li>!
+
+puts "</ol>"
+puts "<h2>Source codes</h2>"
+puts "<ol>"
+
+Dir.glob("*cgi\0*rb)").sort.each do |src|
+ unless /http.rb|makemo.rb/ =~ src
+ puts %Q[<li><a href="/src/?#{src}">#{src}</a></li>]
+ end
+end
+puts %Q[</ol>
+<hr/>
+ <div class="copyright">
+ <p>Copyright (C) 2008 Masao Mutoh</p>
+ </div>
+</body>
+</html>
+]
+
diff --git a/vendor/gems/locale-2.0.5/samples/cgi/locale.css b/vendor/gems/locale-2.0.5/samples/cgi/locale.css
new file mode 100644
index 000000000..6a7f9d8da
--- /dev/null
+++ b/vendor/gems/locale-2.0.5/samples/cgi/locale.css
@@ -0,0 +1,115 @@
+/*
+ CSS for Ruby/Locale
+ by Masao Mutoh.
+*/
+
+body {
+ margin: 0px;
+ padding: 0px;
+ color: #000;
+ background-color: #fff;
+ font-size: 90%;
+ font-family: Times, Sans-Serif;
+ line-height: 1.5em;
+}
+
+h1 {
+ color: #002288;
+ text-align: left;
+ clear: both;
+ padding:0.4em;
+ font-weight: bold;
+ font-size: 1.8em;
+ padding-left:0.5em;
+ padding-right:10px;
+ margin-top: 10px;
+ margin-left: 20px;
+ margin-bottom:1em;
+ margin-right:5px;
+ border: solid thin;
+ border-left: solid;
+ border-color: #9999ff;
+ border-top-width: 0px;
+ border-right-width: 0px;
+ border-bottom-width: 1px;
+ border-left-width: 15px;
+}
+h2 {
+ margin: 0px;
+ font-size: large;
+ font-weight: bold;
+ font-size: 1.4em;
+ padding: 0.3em;
+ padding-left:0.5em;
+ padding-right:10px;
+ margin-top: 1em;
+ margin-left: 1.5em;
+ margin-right: 10px;
+ margin-bottom:0.8em;
+ border: solid thin;
+ border-left: solid;
+ border-color: #9999ff;
+ border-top-width: 0px;
+ border-right-width: 0px;
+ border-bottom-width: 1px;
+ border-left-width: 15px;
+
+}
+
+h3 {
+ margin:1em;
+ margin-bottom: 0.5em;
+ margin-top: 1.5em;
+ margin-left: 2em;
+ margin-right: 24px;
+ padding: 0.1em;
+ padding-top: 0;
+ padding-left: 0.7em;
+ font-size: 1.2em;
+ border-style: dashed;
+ border-width: 0px 0px 1px 1px;
+ border-color: #ddddff;
+}
+
+p {
+ padding-left: 1em;
+ padding-right: 1em;
+ margin-top: 0px;
+ margin-left: 1.5em;
+ margin-right: 1em;
+ margin-bottom: 0.5em;
+}
+
+ol, ul {
+ margin-top: 0.2em;
+ margin-left: 3em;
+ padding-left: 1.5em;
+}
+
+li {
+ margin-top: 0.2em;
+ margin-left: 0em;
+ padding-left: 0em;
+ line-height: 1.2em;
+}
+
+#result {
+ color: red;
+ font-weight: bold;
+ padding-left: 3em;
+ padding-right: 3em;
+}
+
+pre {
+ margin: 2em;
+ padding: 1em;
+ border-style: solid;
+ border-width: 1px 1px 1px 1px;
+ border-color: #ddddff;
+ background-color: #eeffee;
+}
+
+.copyright {
+ text-align: right;
+ padding: 2em;
+}
diff --git a/vendor/gems/locale-2.0.5/samples/rack/README b/vendor/gems/locale-2.0.5/samples/rack/README
new file mode 100644
index 000000000..9da49eeb4
--- /dev/null
+++ b/vendor/gems/locale-2.0.5/samples/rack/README
@@ -0,0 +1,10 @@
+= Install Rack:
+$ sudo gem install rack
+
+= Run rack server:
+$rackup hello_rack.ru
+
+= Access from WWW browser:
+http://localhost:9292/
+http://localhost:9292/?lang=ja
+
diff --git a/vendor/gems/locale-2.0.5/samples/rack/hello_rack.rb b/vendor/gems/locale-2.0.5/samples/rack/hello_rack.rb
new file mode 100644
index 000000000..d6cb16013
--- /dev/null
+++ b/vendor/gems/locale-2.0.5/samples/rack/hello_rack.rb
@@ -0,0 +1,17 @@
+require 'rubygems'
+require 'rack'
+require 'locale'
+
+Locale.init(:driver => :cgi)
+
+class HelloRackApp
+ def call(env)
+ req = Rack::Request.new(env)
+ Locale.set_request(req["lang"], req.cookies["lang"],
+ env["HTTP_ACCEPT_LANGUAGE"], env["HTTP_ACCEPT_CHARSET"])
+ str = "Language tag candidates of your request order by the priority:\n\n"
+ str += Locale.candidates(:type => :rfc).map{|v| v.inspect + "\n"}.join
+ [200, {"Content-Type" => "text/plain", "Content-Length" => str.length.to_s}, [str]]
+ end
+end
+
diff --git a/vendor/gems/locale-2.0.5/samples/rack/hello_rack.ru b/vendor/gems/locale-2.0.5/samples/rack/hello_rack.ru
new file mode 100644
index 000000000..a97748d05
--- /dev/null
+++ b/vendor/gems/locale-2.0.5/samples/rack/hello_rack.ru
@@ -0,0 +1,5 @@
+$LOAD_PATH.unshift "../../lib"
+
+require 'hello_rack'
+run HelloRackApp.new
+
diff --git a/vendor/gems/locale-2.0.5/samples/sample_1.rb b/vendor/gems/locale-2.0.5/samples/sample_1.rb
new file mode 100644
index 000000000..2be192fe4
--- /dev/null
+++ b/vendor/gems/locale-2.0.5/samples/sample_1.rb
@@ -0,0 +1,25 @@
+require 'rubygems'
+require 'locale'
+
+puts "Get the current locale."
+
+p Locale.current #=> Returns a language in a TagList.
+p Locale.charset
+p Locale.current.language
+p Locale.current[0].language #=> same result.
+
+ENV["LANGUAGE"] = "ja_JP.eucJP:fr_FR"
+puts "Set LANGUAGE." + ENV["LANGUAGE"]
+
+# Clear locale because the values are cached.
+Locale.clear
+
+p Locale.current #=> Return 2 languages in a TagList.
+p Locale.current[0].language
+p Locale.current[1].language
+p Locale.current.language #=> Same with Locale.current[0].language.
+p Locale.charset
+
+p "Locale.candidates"
+p Locale.current
+p Locale.candidates
diff --git a/vendor/gems/locale-2.0.5/samples/sample_info.rb b/vendor/gems/locale-2.0.5/samples/sample_info.rb
new file mode 100644
index 000000000..79681c58a
--- /dev/null
+++ b/vendor/gems/locale-2.0.5/samples/sample_info.rb
@@ -0,0 +1,6 @@
+require 'rubygems'
+require 'locale/info'
+
+p Locale::Info.get_language("ja")
+p Locale::Info.get_region("JP")
+
diff --git a/vendor/gems/locale-2.0.5/setup.rb b/vendor/gems/locale-2.0.5/setup.rb
new file mode 100644
index 000000000..424a5f37c
--- /dev/null
+++ b/vendor/gems/locale-2.0.5/setup.rb
@@ -0,0 +1,1585 @@
+#
+# setup.rb
+#
+# Copyright (c) 2000-2005 Minero Aoki
+#
+# This program is free software.
+# You can distribute/modify this program under the terms of
+# the GNU LGPL, Lesser General Public License version 2.1.
+#
+
+unless Enumerable.method_defined?(:map) # Ruby 1.4.6
+ module Enumerable
+ alias map collect
+ end
+end
+
+unless File.respond_to?(:read) # Ruby 1.6
+ def File.read(fname)
+ open(fname) {|f|
+ return f.read
+ }
+ end
+end
+
+unless Errno.const_defined?(:ENOTEMPTY) # Windows?
+ module Errno
+ class ENOTEMPTY
+ # We do not raise this exception, implementation is not needed.
+ end
+ end
+end
+
+def File.binread(fname)
+ open(fname, 'rb') {|f|
+ return f.read
+ }
+end
+
+# for corrupted Windows' stat(2)
+def File.dir?(path)
+ File.directory?((path[-1,1] == '/') ? path : path + '/')
+end
+
+
+class ConfigTable
+
+ include Enumerable
+
+ def initialize(rbconfig)
+ @rbconfig = rbconfig
+ @items = []
+ @table = {}
+ # options
+ @install_prefix = nil
+ @config_opt = nil
+ @verbose = true
+ @no_harm = false
+ end
+
+ attr_accessor :install_prefix
+ attr_accessor :config_opt
+
+ attr_writer :verbose
+
+ def verbose?
+ @verbose
+ end
+
+ attr_writer :no_harm
+
+ def no_harm?
+ @no_harm
+ end
+
+ def [](key)
+ lookup(key).resolve(self)
+ end
+
+ def []=(key, val)
+ lookup(key).set val
+ end
+
+ def names
+ @items.map {|i| i.name }
+ end
+
+ def each(&block)
+ @items.each(&block)
+ end
+
+ def key?(name)
+ @table.key?(name)
+ end
+
+ def lookup(name)
+ @table[name] or setup_rb_error "no such config item: #{name}"
+ end
+
+ def add(item)
+ @items.push item
+ @table[item.name] = item
+ end
+
+ def remove(name)
+ item = lookup(name)
+ @items.delete_if {|i| i.name == name }
+ @table.delete_if {|name, i| i.name == name }
+ item
+ end
+
+ def load_script(path, inst = nil)
+ if File.file?(path)
+ MetaConfigEnvironment.new(self, inst).instance_eval File.read(path), path
+ end
+ end
+
+ def savefile
+ '.config'
+ end
+
+ def load_savefile
+ begin
+ File.foreach(savefile()) do |line|
+ k, v = *line.split(/=/, 2)
+ self[k] = v.strip
+ end
+ rescue Errno::ENOENT
+ setup_rb_error $!.message + "\n#{File.basename($0)} config first"
+ end
+ end
+
+ def save
+ @items.each {|i| i.value }
+ File.open(savefile(), 'w') {|f|
+ @items.each do |i|
+ f.printf "%s=%s\n", i.name, i.value if i.value? and i.value
+ end
+ }
+ end
+
+ def load_standard_entries
+ standard_entries(@rbconfig).each do |ent|
+ add ent
+ end
+ end
+
+ def standard_entries(rbconfig)
+ c = rbconfig
+
+ rubypath = File.join(c['bindir'], c['ruby_install_name'] + c['EXEEXT'])
+
+ major = c['MAJOR'].to_i
+ minor = c['MINOR'].to_i
+ teeny = c['TEENY'].to_i
+ version = "#{major}.#{minor}"
+
+ # ruby ver. >= 1.4.4?
+ newpath_p = ((major >= 2) or
+ ((major == 1) and
+ ((minor >= 5) or
+ ((minor == 4) and (teeny >= 4)))))
+
+ if c['rubylibdir']
+ # V > 1.6.3
+ libruby = "#{c['prefix']}/lib/ruby"
+ librubyver = c['rubylibdir']
+ librubyverarch = c['archdir']
+ siteruby = c['sitedir']
+ siterubyver = c['sitelibdir']
+ siterubyverarch = c['sitearchdir']
+ elsif newpath_p
+ # 1.4.4 <= V <= 1.6.3
+ libruby = "#{c['prefix']}/lib/ruby"
+ librubyver = "#{c['prefix']}/lib/ruby/#{version}"
+ librubyverarch = "#{c['prefix']}/lib/ruby/#{version}/#{c['arch']}"
+ siteruby = c['sitedir']
+ siterubyver = "$siteruby/#{version}"
+ siterubyverarch = "$siterubyver/#{c['arch']}"
+ else
+ # V < 1.4.4
+ libruby = "#{c['prefix']}/lib/ruby"
+ librubyver = "#{c['prefix']}/lib/ruby/#{version}"
+ librubyverarch = "#{c['prefix']}/lib/ruby/#{version}/#{c['arch']}"
+ siteruby = "#{c['prefix']}/lib/ruby/#{version}/site_ruby"
+ siterubyver = siteruby
+ siterubyverarch = "$siterubyver/#{c['arch']}"
+ end
+ parameterize = lambda {|path|
+ path.sub(/\A#{Regexp.quote(c['prefix'])}/, '$prefix')
+ }
+
+ if arg = c['configure_args'].split.detect {|arg| /--with-make-prog=/ =~ arg }
+ makeprog = arg.sub(/'/, '').split(/=/, 2)[1]
+ else
+ makeprog = 'make'
+ end
+
+ [
+ ExecItem.new('installdirs', 'std/site/home',
+ 'std: install under libruby; site: install under site_ruby; home: install under $HOME')\
+ {|val, table|
+ case val
+ when 'std'
+ table['rbdir'] = '$librubyver'
+ table['sodir'] = '$librubyverarch'
+ when 'site'
+ table['rbdir'] = '$siterubyver'
+ table['sodir'] = '$siterubyverarch'
+ when 'home'
+ setup_rb_error '$HOME was not set' unless ENV['HOME']
+ table['prefix'] = ENV['HOME']
+ table['rbdir'] = '$libdir/ruby'
+ table['sodir'] = '$libdir/ruby'
+ end
+ },
+ PathItem.new('prefix', 'path', c['prefix'],
+ 'path prefix of target environment'),
+ PathItem.new('bindir', 'path', parameterize.call(c['bindir']),
+ 'the directory for commands'),
+ PathItem.new('libdir', 'path', parameterize.call(c['libdir']),
+ 'the directory for libraries'),
+ PathItem.new('datadir', 'path', parameterize.call(c['datadir']),
+ 'the directory for shared data'),
+ PathItem.new('mandir', 'path', parameterize.call(c['mandir']),
+ 'the directory for man pages'),
+ PathItem.new('sysconfdir', 'path', parameterize.call(c['sysconfdir']),
+ 'the directory for system configuration files'),
+ PathItem.new('localstatedir', 'path', parameterize.call(c['localstatedir']),
+ 'the directory for local state data'),
+ PathItem.new('libruby', 'path', libruby,
+ 'the directory for ruby libraries'),
+ PathItem.new('librubyver', 'path', librubyver,
+ 'the directory for standard ruby libraries'),
+ PathItem.new('librubyverarch', 'path', librubyverarch,
+ 'the directory for standard ruby extensions'),
+ PathItem.new('siteruby', 'path', siteruby,
+ 'the directory for version-independent aux ruby libraries'),
+ PathItem.new('siterubyver', 'path', siterubyver,
+ 'the directory for aux ruby libraries'),
+ PathItem.new('siterubyverarch', 'path', siterubyverarch,
+ 'the directory for aux ruby binaries'),
+ PathItem.new('rbdir', 'path', '$siterubyver',
+ 'the directory for ruby scripts'),
+ PathItem.new('sodir', 'path', '$siterubyverarch',
+ 'the directory for ruby extentions'),
+ PathItem.new('rubypath', 'path', rubypath,
+ 'the path to set to #! line'),
+ ProgramItem.new('rubyprog', 'name', rubypath,
+ 'the ruby program using for installation'),
+ ProgramItem.new('makeprog', 'name', makeprog,
+ 'the make program to compile ruby extentions'),
+ SelectItem.new('shebang', 'all/ruby/never', 'ruby',
+ 'shebang line (#!) editing mode'),
+ BoolItem.new('without-ext', 'yes/no', 'no',
+ 'does not compile/install ruby extentions')
+ ]
+ end
+ private :standard_entries
+
+ def load_multipackage_entries
+ multipackage_entries().each do |ent|
+ add ent
+ end
+ end
+
+ def multipackage_entries
+ [
+ PackageSelectionItem.new('with', 'name,name...', '', 'ALL',
+ 'package names that you want to install'),
+ PackageSelectionItem.new('without', 'name,name...', '', 'NONE',
+ 'package names that you do not want to install')
+ ]
+ end
+ private :multipackage_entries
+
+ ALIASES = {
+ 'std-ruby' => 'librubyver',
+ 'stdruby' => 'librubyver',
+ 'rubylibdir' => 'librubyver',
+ 'archdir' => 'librubyverarch',
+ 'site-ruby-common' => 'siteruby', # For backward compatibility
+ 'site-ruby' => 'siterubyver', # For backward compatibility
+ 'bin-dir' => 'bindir',
+ 'bin-dir' => 'bindir',
+ 'rb-dir' => 'rbdir',
+ 'so-dir' => 'sodir',
+ 'data-dir' => 'datadir',
+ 'ruby-path' => 'rubypath',
+ 'ruby-prog' => 'rubyprog',
+ 'ruby' => 'rubyprog',
+ 'make-prog' => 'makeprog',
+ 'make' => 'makeprog'
+ }
+
+ def fixup
+ ALIASES.each do |ali, name|
+ @table[ali] = @table[name]
+ end
+ @items.freeze
+ @table.freeze
+ @options_re = /\A--(#{@table.keys.join('|')})(?:=(.*))?\z/
+ end
+
+ def parse_opt(opt)
+ m = @options_re.match(opt) or setup_rb_error "config: unknown option #{opt}"
+ m.to_a[1,2]
+ end
+
+ def dllext
+ @rbconfig['DLEXT']
+ end
+
+ def value_config?(name)
+ lookup(name).value?
+ end
+
+ class Item
+ def initialize(name, template, default, desc)
+ @name = name.freeze
+ @template = template
+ @value = default
+ @default = default
+ @description = desc
+ end
+
+ attr_reader :name
+ attr_reader :description
+
+ attr_accessor :default
+ alias help_default default
+
+ def help_opt
+ "--#{@name}=#{@template}"
+ end
+
+ def value?
+ true
+ end
+
+ def value
+ @value
+ end
+
+ def resolve(table)
+ @value.gsub(%r<\$([^/]+)>) { table[$1] }
+ end
+
+ def set(val)
+ @value = check(val)
+ end
+
+ private
+
+ def check(val)
+ setup_rb_error "config: --#{name} requires argument" unless val
+ val
+ end
+ end
+
+ class BoolItem < Item
+ def config_type
+ 'bool'
+ end
+
+ def help_opt
+ "--#{@name}"
+ end
+
+ private
+
+ def check(val)
+ return 'yes' unless val
+ case val
+ when /\Ay(es)?\z/i, /\At(rue)?\z/i then 'yes'
+ when /\An(o)?\z/i, /\Af(alse)\z/i then 'no'
+ else
+ setup_rb_error "config: --#{@name} accepts only yes/no for argument"
+ end
+ end
+ end
+
+ class PathItem < Item
+ def config_type
+ 'path'
+ end
+
+ private
+
+ def check(path)
+ setup_rb_error "config: --#{@name} requires argument" unless path
+ path[0,1] == '$' ? path : File.expand_path(path)
+ end
+ end
+
+ class ProgramItem < Item
+ def config_type
+ 'program'
+ end
+ end
+
+ class SelectItem < Item
+ def initialize(name, selection, default, desc)
+ super
+ @ok = selection.split('/')
+ end
+
+ def config_type
+ 'select'
+ end
+
+ private
+
+ def check(val)
+ unless @ok.include?(val.strip)
+ setup_rb_error "config: use --#{@name}=#{@template} (#{val})"
+ end
+ val.strip
+ end
+ end
+
+ class ExecItem < Item
+ def initialize(name, selection, desc, &block)
+ super name, selection, nil, desc
+ @ok = selection.split('/')
+ @action = block
+ end
+
+ def config_type
+ 'exec'
+ end
+
+ def value?
+ false
+ end
+
+ def resolve(table)
+ setup_rb_error "$#{name()} wrongly used as option value"
+ end
+
+ undef set
+
+ def evaluate(val, table)
+ v = val.strip.downcase
+ unless @ok.include?(v)
+ setup_rb_error "invalid option --#{@name}=#{val} (use #{@template})"
+ end
+ @action.call v, table
+ end
+ end
+
+ class PackageSelectionItem < Item
+ def initialize(name, template, default, help_default, desc)
+ super name, template, default, desc
+ @help_default = help_default
+ end
+
+ attr_reader :help_default
+
+ def config_type
+ 'package'
+ end
+
+ private
+
+ def check(val)
+ unless File.dir?("packages/#{val}")
+ setup_rb_error "config: no such package: #{val}"
+ end
+ val
+ end
+ end
+
+ class MetaConfigEnvironment
+ def initialize(config, installer)
+ @config = config
+ @installer = installer
+ end
+
+ def config_names
+ @config.names
+ end
+
+ def config?(name)
+ @config.key?(name)
+ end
+
+ def bool_config?(name)
+ @config.lookup(name).config_type == 'bool'
+ end
+
+ def path_config?(name)
+ @config.lookup(name).config_type == 'path'
+ end
+
+ def value_config?(name)
+ @config.lookup(name).config_type != 'exec'
+ end
+
+ def add_config(item)
+ @config.add item
+ end
+
+ def add_bool_config(name, default, desc)
+ @config.add BoolItem.new(name, 'yes/no', default ? 'yes' : 'no', desc)
+ end
+
+ def add_path_config(name, default, desc)
+ @config.add PathItem.new(name, 'path', default, desc)
+ end
+
+ def set_config_default(name, default)
+ @config.lookup(name).default = default
+ end
+
+ def remove_config(name)
+ @config.remove(name)
+ end
+
+ # For only multipackage
+ def packages
+ raise '[setup.rb fatal] multi-package metaconfig API packages() called for single-package; contact application package vendor' unless @installer
+ @installer.packages
+ end
+
+ # For only multipackage
+ def declare_packages(list)
+ raise '[setup.rb fatal] multi-package metaconfig API declare_packages() called for single-package; contact application package vendor' unless @installer
+ @installer.packages = list
+ end
+ end
+
+end # class ConfigTable
+
+
+# This module requires: #verbose?, #no_harm?
+module FileOperations
+
+ def mkdir_p(dirname, prefix = nil)
+ dirname = prefix + File.expand_path(dirname) if prefix
+ $stderr.puts "mkdir -p #{dirname}" if verbose?
+ return if no_harm?
+
+ # Does not check '/', it's too abnormal.
+ dirs = File.expand_path(dirname).split(%r<(?=/)>)
+ if /\A[a-z]:\z/i =~ dirs[0]
+ disk = dirs.shift
+ dirs[0] = disk + dirs[0]
+ end
+ dirs.each_index do |idx|
+ path = dirs[0..idx].join('')
+ Dir.mkdir path unless File.dir?(path)
+ end
+ end
+
+ def rm_f(path)
+ $stderr.puts "rm -f #{path}" if verbose?
+ return if no_harm?
+ force_remove_file path
+ end
+
+ def rm_rf(path)
+ $stderr.puts "rm -rf #{path}" if verbose?
+ return if no_harm?
+ remove_tree path
+ end
+
+ def remove_tree(path)
+ if File.symlink?(path)
+ remove_file path
+ elsif File.dir?(path)
+ remove_tree0 path
+ else
+ force_remove_file path
+ end
+ end
+
+ def remove_tree0(path)
+ Dir.foreach(path) do |ent|
+ next if ent == '.'
+ next if ent == '..'
+ entpath = "#{path}/#{ent}"
+ if File.symlink?(entpath)
+ remove_file entpath
+ elsif File.dir?(entpath)
+ remove_tree0 entpath
+ else
+ force_remove_file entpath
+ end
+ end
+ begin
+ Dir.rmdir path
+ rescue Errno::ENOTEMPTY
+ # directory may not be empty
+ end
+ end
+
+ def move_file(src, dest)
+ force_remove_file dest
+ begin
+ File.rename src, dest
+ rescue
+ File.open(dest, 'wb') {|f|
+ f.write File.binread(src)
+ }
+ File.chmod File.stat(src).mode, dest
+ File.unlink src
+ end
+ end
+
+ def force_remove_file(path)
+ begin
+ remove_file path
+ rescue
+ end
+ end
+
+ def remove_file(path)
+ File.chmod 0777, path
+ File.unlink path
+ end
+
+ def install(from, dest, mode, prefix = nil)
+ $stderr.puts "install #{from} #{dest}" if verbose?
+ return if no_harm?
+
+ realdest = prefix ? prefix + File.expand_path(dest) : dest
+ realdest = File.join(realdest, File.basename(from)) if File.dir?(realdest)
+ str = File.binread(from)
+ if diff?(str, realdest)
+ verbose_off {
+ rm_f realdest if File.exist?(realdest)
+ }
+ File.open(realdest, 'wb') {|f|
+ f.write str
+ }
+ File.chmod mode, realdest
+
+ File.open("#{objdir_root()}/InstalledFiles", 'a') {|f|
+ if prefix
+ f.puts realdest.sub(prefix, '')
+ else
+ f.puts realdest
+ end
+ }
+ end
+ end
+
+ def diff?(new_content, path)
+ return true unless File.exist?(path)
+ new_content != File.binread(path)
+ end
+
+ def command(*args)
+ $stderr.puts args.join(' ') if verbose?
+ system(*args) or raise RuntimeError,
+ "system(#{args.map{|a| a.inspect }.join(' ')}) failed"
+ end
+
+ def ruby(*args)
+ command config('rubyprog'), *args
+ end
+
+ def make(task = nil)
+ command(*[config('makeprog'), task].compact)
+ end
+
+ def extdir?(dir)
+ File.exist?("#{dir}/MANIFEST") or File.exist?("#{dir}/extconf.rb")
+ end
+
+ def files_of(dir)
+ Dir.open(dir) {|d|
+ return d.select {|ent| File.file?("#{dir}/#{ent}") }
+ }
+ end
+
+ DIR_REJECT = %w( . .. CVS SCCS RCS CVS.adm .svn )
+
+ def directories_of(dir)
+ Dir.open(dir) {|d|
+ return d.select {|ent| File.dir?("#{dir}/#{ent}") } - DIR_REJECT
+ }
+ end
+
+end
+
+
+# This module requires: #srcdir_root, #objdir_root, #relpath
+module HookScriptAPI
+
+ def get_config(key)
+ @config[key]
+ end
+
+ alias config get_config
+
+ # obsolete: use metaconfig to change configuration
+ def set_config(key, val)
+ @config[key] = val
+ end
+
+ #
+ # srcdir/objdir (works only in the package directory)
+ #
+
+ def curr_srcdir
+ "#{srcdir_root()}/#{relpath()}"
+ end
+
+ def curr_objdir
+ "#{objdir_root()}/#{relpath()}"
+ end
+
+ def srcfile(path)
+ "#{curr_srcdir()}/#{path}"
+ end
+
+ def srcexist?(path)
+ File.exist?(srcfile(path))
+ end
+
+ def srcdirectory?(path)
+ File.dir?(srcfile(path))
+ end
+
+ def srcfile?(path)
+ File.file?(srcfile(path))
+ end
+
+ def srcentries(path = '.')
+ Dir.open("#{curr_srcdir()}/#{path}") {|d|
+ return d.to_a - %w(. ..)
+ }
+ end
+
+ def srcfiles(path = '.')
+ srcentries(path).select {|fname|
+ File.file?(File.join(curr_srcdir(), path, fname))
+ }
+ end
+
+ def srcdirectories(path = '.')
+ srcentries(path).select {|fname|
+ File.dir?(File.join(curr_srcdir(), path, fname))
+ }
+ end
+
+end
+
+
+class ToplevelInstaller
+
+ Version = '3.4.1'
+ Copyright = 'Copyright (c) 2000-2005 Minero Aoki'
+
+ TASKS = [
+ [ 'all', 'do config, setup, then install' ],
+ [ 'config', 'saves your configurations' ],
+ [ 'show', 'shows current configuration' ],
+ [ 'setup', 'compiles ruby extentions and others' ],
+ [ 'install', 'installs files' ],
+ [ 'test', 'run all tests in test/' ],
+ [ 'clean', "does `make clean' for each extention" ],
+ [ 'distclean',"does `make distclean' for each extention" ]
+ ]
+
+ def ToplevelInstaller.invoke
+ config = ConfigTable.new(load_rbconfig())
+ config.load_standard_entries
+ config.load_multipackage_entries if multipackage?
+ config.fixup
+ klass = (multipackage?() ? ToplevelInstallerMulti : ToplevelInstaller)
+ klass.new(File.dirname($0), config).invoke
+ end
+
+ def ToplevelInstaller.multipackage?
+ File.dir?(File.dirname($0) + '/packages')
+ end
+
+ def ToplevelInstaller.load_rbconfig
+ if arg = ARGV.detect {|arg| /\A--rbconfig=/ =~ arg }
+ ARGV.delete(arg)
+ load File.expand_path(arg.split(/=/, 2)[1])
+ $".push 'rbconfig.rb'
+ else
+ require 'rbconfig'
+ end
+ ::Config::CONFIG
+ end
+
+ def initialize(ardir_root, config)
+ @ardir = File.expand_path(ardir_root)
+ @config = config
+ # cache
+ @valid_task_re = nil
+ end
+
+ def config(key)
+ @config[key]
+ end
+
+ def inspect
+ "#<#{self.class} #{__id__()}>"
+ end
+
+ def invoke
+ run_metaconfigs
+ case task = parsearg_global()
+ when nil, 'all'
+ parsearg_config
+ init_installers
+ exec_config
+ exec_setup
+ exec_install
+ else
+ case task
+ when 'config', 'test'
+ ;
+ when 'clean', 'distclean'
+ @config.load_savefile if File.exist?(@config.savefile)
+ else
+ @config.load_savefile
+ end
+ __send__ "parsearg_#{task}"
+ init_installers
+ __send__ "exec_#{task}"
+ end
+ end
+
+ def run_metaconfigs
+ @config.load_script "#{@ardir}/metaconfig"
+ end
+
+ def init_installers
+ @installer = Installer.new(@config, @ardir, File.expand_path('.'))
+ end
+
+ #
+ # Hook Script API bases
+ #
+
+ def srcdir_root
+ @ardir
+ end
+
+ def objdir_root
+ '.'
+ end
+
+ def relpath
+ '.'
+ end
+
+ #
+ # Option Parsing
+ #
+
+ def parsearg_global
+ while arg = ARGV.shift
+ case arg
+ when /\A\w+\z/
+ setup_rb_error "invalid task: #{arg}" unless valid_task?(arg)
+ return arg
+ when '-q', '--quiet'
+ @config.verbose = false
+ when '--verbose'
+ @config.verbose = true
+ when '--help'
+ print_usage $stdout
+ exit 0
+ when '--version'
+ puts "#{File.basename($0)} version #{Version}"
+ exit 0
+ when '--copyright'
+ puts Copyright
+ exit 0
+ else
+ setup_rb_error "unknown global option '#{arg}'"
+ end
+ end
+ nil
+ end
+
+ def valid_task?(t)
+ valid_task_re() =~ t
+ end
+
+ def valid_task_re
+ @valid_task_re ||= /\A(?:#{TASKS.map {|task,desc| task }.join('|')})\z/
+ end
+
+ def parsearg_no_options
+ unless ARGV.empty?
+ task = caller(0).first.slice(%r<`parsearg_(\w+)'>, 1)
+ setup_rb_error "#{task}: unknown options: #{ARGV.join(' ')}"
+ end
+ end
+
+ alias parsearg_show parsearg_no_options
+ alias parsearg_setup parsearg_no_options
+ alias parsearg_test parsearg_no_options
+ alias parsearg_clean parsearg_no_options
+ alias parsearg_distclean parsearg_no_options
+
+ def parsearg_config
+ evalopt = []
+ set = []
+ @config.config_opt = []
+ while i = ARGV.shift
+ if /\A--?\z/ =~ i
+ @config.config_opt = ARGV.dup
+ break
+ end
+ name, value = *@config.parse_opt(i)
+ if @config.value_config?(name)
+ @config[name] = value
+ else
+ evalopt.push [name, value]
+ end
+ set.push name
+ end
+ evalopt.each do |name, value|
+ @config.lookup(name).evaluate value, @config
+ end
+ # Check if configuration is valid
+ set.each do |n|
+ @config[n] if @config.value_config?(n)
+ end
+ end
+
+ def parsearg_install
+ @config.no_harm = false
+ @config.install_prefix = ''
+ while a = ARGV.shift
+ case a
+ when '--no-harm'
+ @config.no_harm = true
+ when /\A--prefix=/
+ path = a.split(/=/, 2)[1]
+ path = File.expand_path(path) unless path[0,1] == '/'
+ @config.install_prefix = path
+ else
+ setup_rb_error "install: unknown option #{a}"
+ end
+ end
+ end
+
+ def print_usage(out)
+ out.puts 'Typical Installation Procedure:'
+ out.puts " $ ruby #{File.basename $0} config"
+ out.puts " $ ruby #{File.basename $0} setup"
+ out.puts " # ruby #{File.basename $0} install (may require root privilege)"
+ out.puts
+ out.puts 'Detailed Usage:'
+ out.puts " ruby #{File.basename $0} <global option>"
+ out.puts " ruby #{File.basename $0} [<global options>] <task> [<task options>]"
+
+ fmt = " %-24s %s\n"
+ out.puts
+ out.puts 'Global options:'
+ out.printf fmt, '-q,--quiet', 'suppress message outputs'
+ out.printf fmt, ' --verbose', 'output messages verbosely'
+ out.printf fmt, ' --help', 'print this message'
+ out.printf fmt, ' --version', 'print version and quit'
+ out.printf fmt, ' --copyright', 'print copyright and quit'
+ out.puts
+ out.puts 'Tasks:'
+ TASKS.each do |name, desc|
+ out.printf fmt, name, desc
+ end
+
+ fmt = " %-24s %s [%s]\n"
+ out.puts
+ out.puts 'Options for CONFIG or ALL:'
+ @config.each do |item|
+ out.printf fmt, item.help_opt, item.description, item.help_default
+ end
+ out.printf fmt, '--rbconfig=path', 'rbconfig.rb to load',"running ruby's"
+ out.puts
+ out.puts 'Options for INSTALL:'
+ out.printf fmt, '--no-harm', 'only display what to do if given', 'off'
+ out.printf fmt, '--prefix=path', 'install path prefix', ''
+ out.puts
+ end
+
+ #
+ # Task Handlers
+ #
+
+ def exec_config
+ @installer.exec_config
+ @config.save # must be final
+ end
+
+ def exec_setup
+ @installer.exec_setup
+ end
+
+ def exec_install
+ @installer.exec_install
+ end
+
+ def exec_test
+ @installer.exec_test
+ end
+
+ def exec_show
+ @config.each do |i|
+ printf "%-20s %s\n", i.name, i.value if i.value?
+ end
+ end
+
+ def exec_clean
+ @installer.exec_clean
+ end
+
+ def exec_distclean
+ @installer.exec_distclean
+ end
+
+end # class ToplevelInstaller
+
+
+class ToplevelInstallerMulti < ToplevelInstaller
+
+ include FileOperations
+
+ def initialize(ardir_root, config)
+ super
+ @packages = directories_of("#{@ardir}/packages")
+ raise 'no package exists' if @packages.empty?
+ @root_installer = Installer.new(@config, @ardir, File.expand_path('.'))
+ end
+
+ def run_metaconfigs
+ @config.load_script "#{@ardir}/metaconfig", self
+ @packages.each do |name|
+ @config.load_script "#{@ardir}/packages/#{name}/metaconfig"
+ end
+ end
+
+ attr_reader :packages
+
+ def packages=(list)
+ raise 'package list is empty' if list.empty?
+ list.each do |name|
+ raise "directory packages/#{name} does not exist"\
+ unless File.dir?("#{@ardir}/packages/#{name}")
+ end
+ @packages = list
+ end
+
+ def init_installers
+ @installers = {}
+ @packages.each do |pack|
+ @installers[pack] = Installer.new(@config,
+ "#{@ardir}/packages/#{pack}",
+ "packages/#{pack}")
+ end
+ with = extract_selection(config('with'))
+ without = extract_selection(config('without'))
+ @selected = @installers.keys.select {|name|
+ (with.empty? or with.include?(name)) \
+ and not without.include?(name)
+ }
+ end
+
+ def extract_selection(list)
+ a = list.split(/,/)
+ a.each do |name|
+ setup_rb_error "no such package: #{name}" unless @installers.key?(name)
+ end
+ a
+ end
+
+ def print_usage(f)
+ super
+ f.puts 'Inluded packages:'
+ f.puts ' ' + @packages.sort.join(' ')
+ f.puts
+ end
+
+ #
+ # Task Handlers
+ #
+
+ def exec_config
+ run_hook 'pre-config'
+ each_selected_installers {|inst| inst.exec_config }
+ run_hook 'post-config'
+ @config.save # must be final
+ end
+
+ def exec_setup
+ run_hook 'pre-setup'
+ each_selected_installers {|inst| inst.exec_setup }
+ run_hook 'post-setup'
+ end
+
+ def exec_install
+ run_hook 'pre-install'
+ each_selected_installers {|inst| inst.exec_install }
+ run_hook 'post-install'
+ end
+
+ def exec_test
+ run_hook 'pre-test'
+ each_selected_installers {|inst| inst.exec_test }
+ run_hook 'post-test'
+ end
+
+ def exec_clean
+ rm_f @config.savefile
+ run_hook 'pre-clean'
+ each_selected_installers {|inst| inst.exec_clean }
+ run_hook 'post-clean'
+ end
+
+ def exec_distclean
+ rm_f @config.savefile
+ run_hook 'pre-distclean'
+ each_selected_installers {|inst| inst.exec_distclean }
+ run_hook 'post-distclean'
+ end
+
+ #
+ # lib
+ #
+
+ def each_selected_installers
+ Dir.mkdir 'packages' unless File.dir?('packages')
+ @selected.each do |pack|
+ $stderr.puts "Processing the package `#{pack}' ..." if verbose?
+ Dir.mkdir "packages/#{pack}" unless File.dir?("packages/#{pack}")
+ Dir.chdir "packages/#{pack}"
+ yield @installers[pack]
+ Dir.chdir '../..'
+ end
+ end
+
+ def run_hook(id)
+ @root_installer.run_hook id
+ end
+
+ # module FileOperations requires this
+ def verbose?
+ @config.verbose?
+ end
+
+ # module FileOperations requires this
+ def no_harm?
+ @config.no_harm?
+ end
+
+end # class ToplevelInstallerMulti
+
+
+class Installer
+
+ FILETYPES = %w( bin lib ext data conf man )
+
+ include FileOperations
+ include HookScriptAPI
+
+ def initialize(config, srcroot, objroot)
+ @config = config
+ @srcdir = File.expand_path(srcroot)
+ @objdir = File.expand_path(objroot)
+ @currdir = '.'
+ end
+
+ def inspect
+ "#<#{self.class} #{File.basename(@srcdir)}>"
+ end
+
+ def noop(rel)
+ end
+
+ #
+ # Hook Script API base methods
+ #
+
+ def srcdir_root
+ @srcdir
+ end
+
+ def objdir_root
+ @objdir
+ end
+
+ def relpath
+ @currdir
+ end
+
+ #
+ # Config Access
+ #
+
+ # module FileOperations requires this
+ def verbose?
+ @config.verbose?
+ end
+
+ # module FileOperations requires this
+ def no_harm?
+ @config.no_harm?
+ end
+
+ def verbose_off
+ begin
+ save, @config.verbose = @config.verbose?, false
+ yield
+ ensure
+ @config.verbose = save
+ end
+ end
+
+ #
+ # TASK config
+ #
+
+ def exec_config
+ exec_task_traverse 'config'
+ end
+
+ alias config_dir_bin noop
+ alias config_dir_lib noop
+
+ def config_dir_ext(rel)
+ extconf if extdir?(curr_srcdir())
+ end
+
+ alias config_dir_data noop
+ alias config_dir_conf noop
+ alias config_dir_man noop
+
+ def extconf
+ ruby "#{curr_srcdir()}/extconf.rb", *@config.config_opt
+ end
+
+ #
+ # TASK setup
+ #
+
+ def exec_setup
+ exec_task_traverse 'setup'
+ end
+
+ def setup_dir_bin(rel)
+ files_of(curr_srcdir()).each do |fname|
+ update_shebang_line "#{curr_srcdir()}/#{fname}"
+ end
+ end
+
+ alias setup_dir_lib noop
+
+ def setup_dir_ext(rel)
+ make if extdir?(curr_srcdir())
+ end
+
+ alias setup_dir_data noop
+ alias setup_dir_conf noop
+ alias setup_dir_man noop
+
+ def update_shebang_line(path)
+ return if no_harm?
+ return if config('shebang') == 'never'
+ old = Shebang.load(path)
+ if old
+ $stderr.puts "warning: #{path}: Shebang line includes too many args. It is not portable and your program may not work." if old.args.size > 1
+ new = new_shebang(old)
+ return if new.to_s == old.to_s
+ else
+ return unless config('shebang') == 'all'
+ new = Shebang.new(config('rubypath'))
+ end
+ $stderr.puts "updating shebang: #{File.basename(path)}" if verbose?
+ open_atomic_writer(path) {|output|
+ File.open(path, 'rb') {|f|
+ f.gets if old # discard
+ output.puts new.to_s
+ output.print f.read
+ }
+ }
+ end
+
+ def new_shebang(old)
+ if /\Aruby/ =~ File.basename(old.cmd)
+ Shebang.new(config('rubypath'), old.args)
+ elsif File.basename(old.cmd) == 'env' and old.args.first == 'ruby'
+ Shebang.new(config('rubypath'), old.args[1..-1])
+ else
+ return old unless config('shebang') == 'all'
+ Shebang.new(config('rubypath'))
+ end
+ end
+
+ def open_atomic_writer(path, &block)
+ tmpfile = File.basename(path) + '.tmp'
+ begin
+ File.open(tmpfile, 'wb', &block)
+ File.rename tmpfile, File.basename(path)
+ ensure
+ File.unlink tmpfile if File.exist?(tmpfile)
+ end
+ end
+
+ class Shebang
+ def Shebang.load(path)
+ line = nil
+ File.open(path) {|f|
+ line = f.gets
+ }
+ return nil unless /\A#!/ =~ line
+ parse(line)
+ end
+
+ def Shebang.parse(line)
+ cmd, *args = *line.strip.sub(/\A\#!/, '').split(' ')
+ new(cmd, args)
+ end
+
+ def initialize(cmd, args = [])
+ @cmd = cmd
+ @args = args
+ end
+
+ attr_reader :cmd
+ attr_reader :args
+
+ def to_s
+ "#! #{@cmd}" + (@args.empty? ? '' : " #{@args.join(' ')}")
+ end
+ end
+
+ #
+ # TASK install
+ #
+
+ def exec_install
+ rm_f 'InstalledFiles'
+ exec_task_traverse 'install'
+ end
+
+ def install_dir_bin(rel)
+ install_files targetfiles(), "#{config('bindir')}/#{rel}", 0755
+ end
+
+ def install_dir_lib(rel)
+ install_files libfiles(), "#{config('rbdir')}/#{rel}", 0644
+ end
+
+ def install_dir_ext(rel)
+ return unless extdir?(curr_srcdir())
+ install_files rubyextentions('.'),
+ "#{config('sodir')}/#{File.dirname(rel)}",
+ 0555
+ end
+
+ def install_dir_data(rel)
+ install_files targetfiles(), "#{config('datadir')}/#{rel}", 0644
+ end
+
+ def install_dir_conf(rel)
+ # FIXME: should not remove current config files
+ # (rename previous file to .old/.org)
+ install_files targetfiles(), "#{config('sysconfdir')}/#{rel}", 0644
+ end
+
+ def install_dir_man(rel)
+ install_files targetfiles(), "#{config('mandir')}/#{rel}", 0644
+ end
+
+ def install_files(list, dest, mode)
+ mkdir_p dest, @config.install_prefix
+ list.each do |fname|
+ install fname, dest, mode, @config.install_prefix
+ end
+ end
+
+ def libfiles
+ glob_reject(%w(*.y *.output), targetfiles())
+ end
+
+ def rubyextentions(dir)
+ ents = glob_select("*.#{@config.dllext}", targetfiles())
+ if ents.empty?
+ setup_rb_error "no ruby extention exists: 'ruby #{$0} setup' first"
+ end
+ ents
+ end
+
+ def targetfiles
+ mapdir(existfiles() - hookfiles())
+ end
+
+ def mapdir(ents)
+ ents.map {|ent|
+ if File.exist?(ent)
+ then ent # objdir
+ else "#{curr_srcdir()}/#{ent}" # srcdir
+ end
+ }
+ end
+
+ # picked up many entries from cvs-1.11.1/src/ignore.c
+ JUNK_FILES = %w(
+ core RCSLOG tags TAGS .make.state
+ .nse_depinfo #* .#* cvslog.* ,* .del-* *.olb
+ *~ *.old *.bak *.BAK *.orig *.rej _$* *$
+
+ *.org *.in .*
+ )
+
+ def existfiles
+ glob_reject(JUNK_FILES, (files_of(curr_srcdir()) | files_of('.')))
+ end
+
+ def hookfiles
+ %w( pre-%s post-%s pre-%s.rb post-%s.rb ).map {|fmt|
+ %w( config setup install clean ).map {|t| sprintf(fmt, t) }
+ }.flatten
+ end
+
+ def glob_select(pat, ents)
+ re = globs2re([pat])
+ ents.select {|ent| re =~ ent }
+ end
+
+ def glob_reject(pats, ents)
+ re = globs2re(pats)
+ ents.reject {|ent| re =~ ent }
+ end
+
+ GLOB2REGEX = {
+ '.' => '\.',
+ '$' => '\$',
+ '#' => '\#',
+ '*' => '.*'
+ }
+
+ def globs2re(pats)
+ /\A(?:#{
+ pats.map {|pat| pat.gsub(/[\.\$\#\*]/) {|ch| GLOB2REGEX[ch] } }.join('|')
+ })\z/
+ end
+
+ #
+ # TASK test
+ #
+
+ TESTDIR = 'test'
+
+ def exec_test
+ unless File.directory?('test')
+ $stderr.puts 'no test in this package' if verbose?
+ return
+ end
+ $stderr.puts 'Running tests...' if verbose?
+ begin
+ require 'test/unit'
+ rescue LoadError
+ setup_rb_error 'test/unit cannot loaded. You need Ruby 1.8 or later to invoke this task.'
+ end
+ runner = Test::Unit::AutoRunner.new(true)
+ runner.to_run << TESTDIR
+ runner.run
+ end
+
+ #
+ # TASK clean
+ #
+
+ def exec_clean
+ exec_task_traverse 'clean'
+ rm_f @config.savefile
+ rm_f 'InstalledFiles'
+ end
+
+ alias clean_dir_bin noop
+ alias clean_dir_lib noop
+ alias clean_dir_data noop
+ alias clean_dir_conf noop
+ alias clean_dir_man noop
+
+ def clean_dir_ext(rel)
+ return unless extdir?(curr_srcdir())
+ make 'clean' if File.file?('Makefile')
+ end
+
+ #
+ # TASK distclean
+ #
+
+ def exec_distclean
+ exec_task_traverse 'distclean'
+ rm_f @config.savefile
+ rm_f 'InstalledFiles'
+ end
+
+ alias distclean_dir_bin noop
+ alias distclean_dir_lib noop
+
+ def distclean_dir_ext(rel)
+ return unless extdir?(curr_srcdir())
+ make 'distclean' if File.file?('Makefile')
+ end
+
+ alias distclean_dir_data noop
+ alias distclean_dir_conf noop
+ alias distclean_dir_man noop
+
+ #
+ # Traversing
+ #
+
+ def exec_task_traverse(task)
+ run_hook "pre-#{task}"
+ FILETYPES.each do |type|
+ if type == 'ext' and config('without-ext') == 'yes'
+ $stderr.puts 'skipping ext/* by user option' if verbose?
+ next
+ end
+ traverse task, type, "#{task}_dir_#{type}"
+ end
+ run_hook "post-#{task}"
+ end
+
+ def traverse(task, rel, mid)
+ dive_into(rel) {
+ run_hook "pre-#{task}"
+ __send__ mid, rel.sub(%r[\A.*?(?:/|\z)], '')
+ directories_of(curr_srcdir()).each do |d|
+ traverse task, "#{rel}/#{d}", mid
+ end
+ run_hook "post-#{task}"
+ }
+ end
+
+ def dive_into(rel)
+ return unless File.dir?("#{@srcdir}/#{rel}")
+
+ dir = File.basename(rel)
+ Dir.mkdir dir unless File.dir?(dir)
+ prevdir = Dir.pwd
+ Dir.chdir dir
+ $stderr.puts '---> ' + rel if verbose?
+ @currdir = rel
+ yield
+ Dir.chdir prevdir
+ $stderr.puts '<--- ' + rel if verbose?
+ @currdir = File.dirname(rel)
+ end
+
+ def run_hook(id)
+ path = [ "#{curr_srcdir()}/#{id}",
+ "#{curr_srcdir()}/#{id}.rb" ].detect {|cand| File.file?(cand) }
+ return unless path
+ begin
+ instance_eval File.read(path), path, 1
+ rescue
+ raise if $DEBUG
+ setup_rb_error "hook #{path} failed:\n" + $!.message
+ end
+ end
+
+end # class Installer
+
+
+class SetupError < StandardError; end
+
+def setup_rb_error(msg)
+ raise SetupError, msg
+end
+
+if $0 == __FILE__
+ begin
+ ToplevelInstaller.invoke
+ rescue SetupError
+ raise if $DEBUG
+ $stderr.puts $!.message
+ $stderr.puts "Try 'ruby #{$0} --help' for detailed usage."
+ exit 1
+ end
+end
diff --git a/vendor/gems/locale-2.0.5/test/test_detect_cgi.rb b/vendor/gems/locale-2.0.5/test/test_detect_cgi.rb
new file mode 100644
index 000000000..e2adbfc62
--- /dev/null
+++ b/vendor/gems/locale-2.0.5/test/test_detect_cgi.rb
@@ -0,0 +1,216 @@
+require 'cgi'
+require 'locale'
+require 'test/unit'
+
+class CGI
+ module QueryExtension
+ # Override this method to avoid to put warning messages.
+ module_function
+ def readlines=(str)
+ @@lines = [str]
+ end
+ def readlines
+ @@lines
+ end
+ def read_from_cmdline
+ require "shellwords"
+ string = readlines.join(' ').gsub(/\n/n, '').gsub(/\\=/n, '%3D').gsub(/\\&/n, '%26')
+
+ words = Shellwords.shellwords(string)
+
+ if words.find{|x| /=/n.match(x) }
+ words.join('&')
+ else
+ words.join('+')
+ end
+ end
+ private :read_from_cmdline
+ end
+end
+
+class TestDetectCGI < Test::Unit::TestCase
+ def setup_cgi(str)
+ CGI::QueryExtension.readlines = str
+ Locale.init(:driver => :cgi)
+ cgi = CGI.new
+ Locale.cgi = cgi
+ Locale.clear_all
+ end
+
+ def test_query_string
+ #query string
+ setup_cgi("lang=ja_JP")
+ lang = Locale.current[0]
+ assert_equal(Locale::Tag::Simple, lang.class)
+ assert_equal("ja_JP", lang.to_s)
+
+ setup_cgi("lang=ja-jp")
+ lang = Locale.current[0]
+ assert_equal(Locale::Tag::Simple, lang.class)
+ assert_equal("ja_JP", lang.to_s)
+ assert_equal("ja-JP", lang.to_rfc.to_s)
+ setup_cgi("lang=ja-jp")
+ assert_equal("ja_JP", lang.to_s)
+ assert_equal("ja-JP", lang.to_rfc.to_s)
+
+ end
+
+ def test_cookie
+ #cockie
+ setup_cgi("Set-Cookie: lang=en-us")
+ assert_equal("en_US", Locale.current.to_s)
+ end
+
+ def test_accept_language
+ ENV["HTTP_ACCEPT_LANGUAGE"] = ""
+ ENV["HTTP_ACCEPT_CHARSET"] = ""
+ setup_cgi("")
+ lang = Locale.current[0]
+ assert_equal(Locale::Tag::Simple, lang.class)
+ assert_equal("en", lang.to_s)
+ assert_equal("en", lang.to_rfc.to_s)
+
+ ENV["HTTP_ACCEPT_LANGUAGE"] = "ja,en-us;q=0.7,en;q=0.3"
+ setup_cgi("")
+ lang1, lang2, lang3 = Locale.current
+ assert_equal("ja", lang1.to_rfc.to_s)
+ assert_equal("en-US", lang2.to_rfc.to_s)
+ assert_equal("en", lang3.to_rfc.to_s)
+
+ ENV["HTTP_ACCEPT_LANGUAGE"] = "en-us,ja;q=0.7,en;q=0.3"
+ setup_cgi("")
+ lang1, lang2, lang3 = Locale.current
+ assert_equal("en-US", lang1.to_rfc.to_s)
+ assert_equal("ja", lang2.to_rfc.to_s)
+ assert_equal("en", lang3.to_rfc.to_s)
+
+ ENV["HTTP_ACCEPT_LANGUAGE"] = "en"
+ setup_cgi("")
+ lang = Locale.current[0]
+ assert_equal("en", lang.to_rfc.to_s)
+ end
+
+ def test_accept_charset
+ #accept charset
+ ENV["HTTP_ACCEPT_CHARSET"] = "Shift_JIS"
+ setup_cgi("")
+ assert_equal("Shift_JIS", Locale.charset)
+
+ ENV["HTTP_ACCEPT_CHARSET"] = "EUC-JP,*,utf-8"
+ setup_cgi("")
+ assert_equal("EUC-JP", Locale.charset)
+
+ ENV["HTTP_ACCEPT_CHARSET"] = "*"
+ setup_cgi("")
+ assert_equal("UTF-8", Locale.charset)
+
+ ENV["HTTP_ACCEPT_CHARSET"] = ""
+ setup_cgi("")
+ assert_equal("UTF-8", Locale.charset)
+ end
+
+ def test_default
+ Locale.set_default(nil)
+ Locale.set_default("ja-JP")
+ ENV["HTTP_ACCEPT_LANGUAGE"] = ""
+ ENV["HTTP_ACCEPT_CHARSET"] = ""
+ setup_cgi("")
+ assert_equal("ja-JP", Locale.default.to_rfc.to_s)
+ assert_equal("ja-JP", Locale.current.to_rfc.to_s)
+ Locale.set_default(nil)
+ end
+
+ def common(*ary)
+ ary.map{|v| Locale::Tag::Common.parse(v)}
+ end
+
+ def rfc(*ary)
+ ary.map{|v| Locale::Tag::Rfc.parse(v)}
+ end
+
+ def cldr(*ary)
+ ary.map{|v| Locale::Tag::Cldr.parse(v)}
+ end
+
+ def simple(*ary)
+ ary.map{|v| Locale::Tag::Simple.parse(v)}
+ end
+
+ def test_candidates
+
+ ENV["HTTP_ACCEPT_LANGUAGE"] = "fr-fr,zh_CN;q=0.7,zh_TW;q=0.2,ja_JP;q=0.1"
+ setup_cgi("")
+
+ assert_equal common("fr-FR", "zh-CN", "zh-TW", "ja-JP",
+ "fr", "zh", "ja", "en"), Locale.candidates
+
+ assert_equal rfc("fr-FR", "zh-CN", "zh-TW", "ja-JP", "fr",
+ "zh", "ja", "en"), Locale.candidates(:type => :rfc)
+
+ assert_equal cldr("fr_FR", "zh_CN", "zh_TW", "ja_JP", "fr",
+ "zh", "ja", "en"), Locale.candidates(:type => :cldr)
+
+ assert_equal simple("fr-FR", "zh-CN", "zh-TW", "ja-JP",
+ "fr", "zh", "ja", "en"), Locale.candidates(:type => :simple)
+
+ taglist = Locale.candidates(:type => :rfc)
+ assert_equal Locale::TagList, taglist.class
+ assert_equal "fr", taglist.language
+ assert_equal "FR", taglist.region
+
+ end
+
+ def test_candidates_with_supported_language_tags
+ ENV["HTTP_ACCEPT_LANGUAGE"] = "fr-fr,zh_CN;q=0.7,zh_TW;q=0.2,ja_JP;q=0.1"
+ setup_cgi("")
+
+ assert_equal common("fr_FR", "zh", "ja"), Locale.candidates(:type => :common,
+ :supported_language_tags => ["fr_FR", "ja", "zh"])
+
+ assert_equal simple("fr-FR", "zh", "ja"), Locale.candidates(:type => :simple,
+ :supported_language_tags => ["fr-FR", "ja", "zh"])
+ #supported_language_tags includes "pt" as not in HTTP_ACCEPT_LANGUAGE
+ assert_equal simple("fr-FR", "zh", "ja"),
+ Locale.candidates(:type => :simple,
+ :supported_language_tags => ["fr-FR", "ja", "zh", "pt"])
+
+ end
+
+ def test_candidates_with_default
+ ENV["HTTP_ACCEPT_LANGUAGE"] = "fr-fr,zh_CN;q=0.7,zh_TW;q=0.2,ja_JP;q=0.1"
+ setup_cgi("")
+
+ Locale.default = "zh_TW"
+ assert_equal simple("fr-FR", "zh", "ja"),
+ Locale.candidates(:type => :simple,
+ :supported_language_tags => ["fr-FR", "ja", "zh", "pt"])
+
+ Locale.default = "pt"
+ assert_equal simple("fr-FR", "zh", "ja", "pt"),
+ Locale.candidates(:type => :simple,
+ :supported_language_tags => ["fr-FR", "ja", "zh", "pt"])
+
+ # default value is selected even if default is not in supported_language_tags.
+ assert_equal simple("pt"), Locale.candidates(:type => :simple,
+ :supported_language_tags => ["aa"])
+ Locale.default = "en"
+ end
+
+
+ def test_candidates_with_app_language_tags
+ Locale.set_app_language_tags("fr-FR", "ja")
+
+ ENV["HTTP_ACCEPT_LANGUAGE"] = "fr-fr,zh_CN;q=0.7,zh_TW;q=0.2,ja_JP;q=0.1"
+ setup_cgi("")
+
+ assert_equal common("fr-FR", "ja"), Locale.candidates
+
+ # default value is selected if default is not in app_language_tags.
+ Locale.set_app_language_tags("no", "pt")
+ Locale.default = "zh"
+ assert_equal common("zh"), Locale.candidates
+
+ Locale.default = "en"
+ Locale.set_app_language_tags(nil)
+ end
+end
diff --git a/vendor/gems/locale-2.0.5/test/test_detect_general.rb b/vendor/gems/locale-2.0.5/test/test_detect_general.rb
new file mode 100644
index 000000000..08b912df1
--- /dev/null
+++ b/vendor/gems/locale-2.0.5/test/test_detect_general.rb
@@ -0,0 +1,164 @@
+require 'locale'
+require 'test/unit'
+
+class TestDetectGeneral < Test::Unit::TestCase
+
+ def setup
+ Locale.clear_all
+ ENV["LC_ALL"] = nil
+ ENV["LC_MESSAGES"] = nil
+ ENV["LANG"] = nil
+ ENV["LANGUAGE"] = nil
+ end
+
+ def test_lc_all
+ ENV["LC_ALL"] = "ja_JP.eucJP"
+ ENV["LC_MESSAGES"] = "zh_CN.UTF-8" #Ignored.
+ ENV["LANG"] = "ko_KR.UTF-8" #Ignored.
+ ENV["LANGUAGE"] = nil
+
+ lang = Locale.current[0]
+ assert_equal Locale::Tag::Posix, lang.class
+ assert_equal "ja", lang.language
+ assert_equal "JP", lang.region
+ assert_equal "eucJP", lang.charset
+ assert_equal Locale::Tag::Posix.new("ja", "JP", "eucJP"), lang
+
+ assert_equal "eucJP", Locale.charset
+ end
+
+ def test_lc_messages
+ ENV["LC_ALL"] = nil
+ ENV["LC_MESSAGES"] = "ja_JP.eucJP"
+ ENV["LANG"] = "ko_KR.UTF-8" #Ignored.
+ ENV["LANGUAGE"] = nil
+
+ lang = Locale.current[0]
+ assert_equal Locale::Tag::Posix, lang.class
+ assert_equal "ja", lang.language
+ assert_equal "JP", lang.region
+ assert_equal "eucJP", lang.charset
+ assert_equal Locale::Tag::Posix.new("ja", "JP", "eucJP"), lang
+
+ assert_equal "eucJP", Locale.charset
+ end
+
+ def test_lang
+ ENV["LC_ALL"] = nil
+ ENV["LC_MESSAGES"] = nil
+ ENV["LANG"] = "ja_JP.eucJP"
+ ENV["LANGUAGE"] = nil
+
+ lang = Locale.current[0]
+ assert_equal Locale::Tag::Posix, lang.class
+ assert_equal "ja", lang.language
+ assert_equal "JP", lang.region
+ assert_equal "eucJP", lang.charset
+ assert_equal Locale::Tag::Posix.new("ja", "JP", "eucJP"), lang
+
+ assert_equal "eucJP", Locale.charset
+ end
+
+ def test_lang_complex
+ ENV["LC_ALL"] = "zh_CN.UTF-8" # Ignored.
+ ENV["LC_MESSAGES"] = "ko_KR.UTF-8" #Ingored.
+ ENV["LANG"] = "en_US.UTF-8" # Ignored.
+ ENV["LANGUAGE"] ="ja_JP.eucJP:zh_CN.UTF-8"
+
+ lang = Locale.current[0]
+ assert_equal Locale::Tag::Posix, lang.class
+ assert_equal "ja", lang.language
+ assert_equal "JP", lang.region
+ assert_equal "eucJP", lang.charset
+ assert_equal Locale::Tag::Posix.new("ja", "JP", "eucJP"), lang
+
+ # Use the LANG value (locale charmap don't use LANGUAGE)
+ assert_equal "UTF-8", Locale.charset
+ end
+
+ def test_language
+ ENV["LC_ALL"] = "ja_JP.Shift_JIS"
+ ENV["LANGUAGE"] = "zh_CN.UTF-8:ja_JP"
+
+ tags = Locale.current
+ assert_equal Locale::Tag::Posix, tags[0].class
+ assert_equal Locale::Tag::Posix, tags[1].class
+
+ assert_equal "zh", tags.language
+ assert_equal "CN", tags.region
+ assert_equal "UTF-8", tags.charset
+
+ assert_equal "zh", tags[0].language
+ assert_equal "CN", tags[0].region
+ assert_equal "UTF-8", tags[0].charset
+
+ assert_equal "ja", tags[1].language
+ assert_equal "JP", tags[1].region
+ assert_equal nil, tags[1].charset
+
+ assert_equal Locale::TagList.new([Locale::Tag::Posix.new("zh", "CN", "UTF-8"),
+ Locale::Tag::Posix.new("ja", "JP")]), tags
+
+ assert_equal "Shift_JIS", Locale.charset
+ end
+
+ def test_no_charset
+ ENV["LC_ALL"] = "cs_CZ"
+
+ lang = Locale.current[0]
+ assert_equal Locale::Tag::Posix, lang.class
+
+ assert_equal "cs", lang.language
+ assert_equal "CZ", lang.region
+ assert_equal nil, lang.charset
+ assert_equal Locale::Tag::Posix.new("cs", "CZ"), lang
+
+=begin
+ This test doesn't work any environment such as Ubuntu.
+ Because this method gets the system locale via "locale -a" command.
+ if /linux|bsd/ =~ RUBY_PLATFORM
+ assert_equal "ISO-8859-2", Locale.charset
+ end
+=end
+ end
+
+ def test_default
+ return unless /linux|bsd/ =~ RUBY_PLATFORM
+ Locale.set_default("yo_NG")
+ assert_equal Locale::Tag.parse("yo_NG"), Locale.default
+ assert_equal Locale::Tag.parse("yo_NG"), Locale.current[0]
+ Locale.set_default(nil)
+
+ Locale.default = "fr"
+ assert_equal Locale::Tag.parse("fr"), Locale.default
+ assert_equal Locale::Tag.parse("fr"), Locale.current[0]
+ Locale.default = nil
+ end
+
+ def test_current
+ Locale.set_current("yo_NG")
+ assert_equal Locale::Tag.parse("yo_NG"), Locale.current[0]
+
+ Locale.current = "fr"
+ assert_equal Locale::Tag.parse("fr"), Locale.current[0]
+
+ Locale.set_default("yo_NG")
+ Locale.current = "fr"
+ assert_equal Locale::Tag.parse("yo_NG"), Locale.default
+ assert_equal Locale::Tag.parse("fr"), Locale.current[0]
+ Locale.set_default(nil)
+ end
+
+ def test_clear
+ ENV["LC_ALL"] = "ja_JP.Shift_JIS"
+ ENV["LANGUAGE"] = nil
+
+ assert_equal Locale::Tag.parse("ja_JP.Shift_JIS"), Locale.current[0]
+ Locale.clear
+ ENV["LANGUAGE"] = "zh_CN.UTF-8:ja_JP"
+ assert_equal Locale::Tag::Posix.parse("zh_CN.UTF-8"), Locale.current[0]
+ assert_equal Locale::Tag::Posix.parse("ja_JP"), Locale.current[1]
+
+ end
+
+end
diff --git a/vendor/gems/locale-2.0.5/test/test_driver_jruby.rb b/vendor/gems/locale-2.0.5/test/test_driver_jruby.rb
new file mode 100644
index 000000000..692d34029
--- /dev/null
+++ b/vendor/gems/locale-2.0.5/test/test_driver_jruby.rb
@@ -0,0 +1,43 @@
+
+begin
+ require 'locale/driver/jruby'
+ require 'test/unit'
+ class TestDiverJRuby < Test::Unit::TestCase
+
+ def setup
+ ENV["LC_ALL"] = nil
+ ENV["LC_MESSAGES"] = nil
+ ENV["LANG"] = nil
+ ENV["LANGUAGE"] = nil
+ end
+
+ def set_locale(tag)
+ java.util.Locale.setDefault(java.util.Locale.new(tag.language, tag.region, tag.variants.to_s))
+ end
+
+ def test_charset
+ # Depends on system value when jvm is started.
+ end
+
+ def test_locales
+ tag = Locale::Tag::Common.parse("ja-JP")
+ set_locale(tag)
+ assert_equal [tag], Locale::Driver::JRuby.locales
+ end
+
+ def test_locales_with_env
+ ENV["LC_ALL"] = "ja_JP.EUC-JP"
+ assert_equal Locale::Tag::Posix.parse("ja_JP.EUC-JP"), Locale::Driver::JRuby.locales[0]
+ assert_equal "EUC-JP", Locale::Driver::JRuby.charset
+
+ ENV["LC_ALL"] = "ja_JP"
+ assert_equal Locale::Tag::Posix.parse("ja_JP"), Locale::Driver::JRuby.locales[0]
+
+ ENV["LC_ALL"] = "C"
+ assert_equal Locale::Tag::Posix.parse("C"), Locale::Driver::JRuby.locales[0]
+ end
+ end
+
+rescue LoadError
+ puts "jruby test was skipped."
+end
diff --git a/vendor/gems/locale-2.0.5/test/test_driver_win32.rb b/vendor/gems/locale-2.0.5/test/test_driver_win32.rb
new file mode 100644
index 000000000..604cd6efe
--- /dev/null
+++ b/vendor/gems/locale-2.0.5/test/test_driver_win32.rb
@@ -0,0 +1,65 @@
+begin
+ require 'locale/driver/win32'
+ require 'test/unit'
+
+ class TestDiverWin32 < Test::Unit::TestCase
+
+ def setup
+ ENV["LC_ALL"] = nil
+ ENV["LC_MESSAGES"] = nil
+ ENV["LANG"] = nil
+ ENV["LANGUAGE"] = nil
+ Locale::Driver::Win32.set_thread_locale_id(nil)
+ end
+
+ def test_charset
+ Locale::Driver::Win32.set_thread_locale_id(0x0404)
+ assert_equal "CP950", Locale::Driver::Win32.charset
+
+ Locale::Driver::Win32.set_thread_locale_id(0x0411)
+ assert_equal "CP932", Locale::Driver::Win32.charset
+
+ Locale::Driver::Win32.set_thread_locale_id(0x201A)
+ assert_equal "CP1251", Locale::Driver::Win32.charset
+
+ Locale::Driver::Win32.set_thread_locale_id(0x0465)
+ assert_equal "UNICODE", Locale::Driver::Win32.charset
+
+ Locale::Driver::Win32.set_thread_locale_id(0x2222) # invalid
+ assert_equal "CP1252", Locale::Driver::Win32.charset
+ end
+
+ def test_locales
+ Locale::Driver::Win32.set_thread_locale_id(0x0404)
+ assert_equal Locale::Tag::Common.parse("zh-TW"), Locale::Driver::Win32.locales[0]
+
+ Locale::Driver::Win32.set_thread_locale_id(0x0411)
+ assert_equal Locale::Tag::Common.parse("ja-JP"), Locale::Driver::Win32.locales[0]
+
+ Locale::Driver::Win32.set_thread_locale_id(0x201A)
+ assert_equal Locale::Tag::Common.parse("bs-Cyrl-BA"), Locale::Driver::Win32.locales[0]
+
+ Locale::Driver::Win32.set_thread_locale_id(0x0465)
+ assert_equal Locale::Tag::Common.parse("div-MV"), Locale::Driver::Win32.locales[0]
+
+ Locale::Driver::Win32.set_thread_locale_id(0x2222) # invalid
+ assert_equal nil, Locale::Driver::Win32.locales
+ end
+
+ def test_locales_with_env
+ ENV["LC_ALL"] = "ja_JP.UTF-8"
+ assert_equal Locale::Tag::Posix.parse("ja_JP.UTF-8"), Locale::Driver::Win32.locales[0]
+ assert_equal "UTF-8", Locale::Driver::Win32.charset
+
+ ENV["LC_ALL"] = "ja_JP"
+ assert_equal Locale::Tag::Posix.parse("ja_JP"), Locale::Driver::Win32.locales[0]
+ assert_equal "CP932", Locale::Driver::Win32.charset
+
+ ENV["LC_ALL"] = "C"
+ assert_equal Locale::Tag::Posix.parse("C"), Locale::Driver::Win32.locales[0]
+ assert_equal "CP1252", Locale::Driver::Win32.charset
+ end
+ end
+rescue LoadError
+ puts "win32 test was skipped."
+end
diff --git a/vendor/gems/locale-2.0.5/test/test_info.rb b/vendor/gems/locale-2.0.5/test/test_info.rb
new file mode 100644
index 000000000..d34efe8fa
--- /dev/null
+++ b/vendor/gems/locale-2.0.5/test/test_info.rb
@@ -0,0 +1,28 @@
+# encoding: UTF-8
+
+require 'locale/info'
+require 'test/unit'
+
+class TestLocaleInfo < Test::Unit::TestCase
+ def test_languages
+ langs = Locale::Info.three_languages
+ assert_equal 7600, langs.length
+ assert_equal "English", langs["eng"].name
+ assert langs["eng"].living?
+ assert langs["eng"].individual?
+
+ langs = Locale::Info.two_languages
+ assert_equal 185, langs.length
+ assert_equal "English", langs["en"].name
+ assert langs["en"].living?
+ assert langs["en"].individual?
+ end
+
+ def test_regions
+ regions = Locale::Info.regions
+ assert_equal 243, regions.length
+ assert_equal "United States", regions["US"].name
+
+ assert_equal "ÅLand Islands", regions['AX'].name
+ end
+end
diff --git a/vendor/gems/locale-2.0.5/test/test_memoizable.rb b/vendor/gems/locale-2.0.5/test/test_memoizable.rb
new file mode 100644
index 000000000..6ce7092e4
--- /dev/null
+++ b/vendor/gems/locale-2.0.5/test/test_memoizable.rb
@@ -0,0 +1,133 @@
+require 'locale/util/memoizable'
+require 'test/unit'
+
+class A
+ include Locale::Util::Memoizable
+ def initialize
+ @count = 0
+ @a = ""
+ end
+ def test1(a)
+ @a += String(a)
+ @count += 1
+ end
+ memoize :test1
+ attr_reader :a
+end
+
+class B < A
+end
+
+class C < A
+ def test1(a)
+ @a = String(a) + @a
+ @count += 1
+ end
+ memoize :test1
+end
+
+class D
+ class << self
+ include Locale::Util::Memoizable
+ def init
+ @@count = 0
+ @@a = "a"
+ end
+ def test1(a)
+ @@a = @@a + "b" * a
+ @@count += 1
+ end
+ memoize :test1
+ def a
+ @@a
+ end
+ end
+end
+
+class E
+ include Locale::Util::Memoizable
+ def test2
+ "aa"
+ end
+ memoize :test2
+
+ def test2_dup
+ "bb"
+ end
+ memoize_dup :test2_dup
+end
+
+class TestMemoizable < Test::Unit::TestCase
+ def test_simple
+ t = A.new
+ assert_equal 1, t.test1(1)
+ assert_equal "1", t.a
+ assert_equal 1, t.test1(1)
+ assert_equal "1", t.a
+ assert_equal 2, t.test1(2)
+ assert_equal "12", t.a
+ assert_equal 2, t.test1(2)
+ assert_equal "12", t.a
+ assert_equal 1, t.test1(1)
+ assert_equal "12", t.a
+ end
+
+ def test_simple_inherited
+ t = B.new
+ assert_equal 1, t.test1(1)
+ assert_equal "1", t.a
+ assert_equal 1, t.test1(1)
+ assert_equal "1", t.a
+ assert_equal 2, t.test1(2)
+ assert_equal "12", t.a
+ assert_equal 2, t.test1(2)
+ assert_equal "12", t.a
+ assert_equal 1, t.test1(1)
+ assert_equal "12", t.a
+ end
+
+ def test_override
+ t = C.new
+ assert_equal 1, t.test1(1)
+ assert_equal "1", t.a
+ assert_equal 1, t.test1(1)
+ assert_equal "1", t.a
+ assert_equal 2, t.test1(2)
+ assert_equal "21", t.a
+ assert_equal 2, t.test1(2)
+ assert_equal "21", t.a
+ assert_equal 1, t.test1(1)
+ assert_equal "21", t.a
+ end
+
+ def test_class_method
+ D.init
+ assert_equal 1, D.test1(1)
+ assert_equal "ab", D.a
+ assert_equal 1, D.test1(1)
+ assert_equal "ab", D.a
+ assert_equal 2, D.test1(2)
+ assert_equal "abbb", D.a
+ assert_equal 2, D.test1(2)
+ assert_equal "abbb", D.a
+ assert_equal 1, D.test1(1)
+ assert_equal "abbb", D.a
+ end
+
+ def test_freeze_or_dup
+ t = E.new
+ assert_equal "aa", t.test2
+ # When modification attempted on frozen objects,
+ # ruby 1.9 raises RuntimeError instead of TypeError.
+ # http://redmine.ruby-lang.org/issues/show/409
+ # http://redmine.ruby-lang.org/repositories/diff/ruby-19/error.c?rev=7294
+ if RUBY_VERSION < '1.9.0'
+ assert_raise(TypeError){ t.test2 << "a" }
+ else
+ assert_raise(RuntimeError){ t.test2 << "a" }
+ end
+ assert_equal "bb", t.test2_dup
+ assert_equal "bbb", t.test2_dup << "b"
+ assert_equal "bb", t.test2_dup
+ end
+end
diff --git a/vendor/gems/locale-2.0.5/test/test_tag.rb b/vendor/gems/locale-2.0.5/test/test_tag.rb
new file mode 100644
index 000000000..ded243995
--- /dev/null
+++ b/vendor/gems/locale-2.0.5/test/test_tag.rb
@@ -0,0 +1,1233 @@
+require 'locale/tag'
+require 'test/unit'
+
+class TagTest < Test::Unit::TestCase
+
+ def test_simple_lang
+ #ja-JP, ja-392
+ lang = Locale::Tag.parse("ja")
+ assert_equal Locale::Tag::Simple, lang.class
+ assert_equal "ja", lang.language
+ assert_equal nil, lang.region
+ assert_equal [Locale::Tag::Simple.parse("ja"),
+ Locale::Tag::Simple.parse("ja")], lang.candidates
+
+ assert_equal Locale::Tag::Simple.parse("ja"), lang.to_simple
+ assert_equal Locale::Tag::Common.parse("ja"), lang.to_common
+ assert_equal Locale::Tag::Rfc.parse("ja"), lang.to_rfc
+ assert_equal Locale::Tag::Cldr.parse("ja"), lang.to_cldr
+ assert_equal Locale::Tag::Posix.parse("ja"), lang.to_posix
+
+ lang = Locale::Tag.parse("kok")
+ assert_equal Locale::Tag::Simple, lang.class
+ assert_equal "kok", lang.language
+ assert_equal nil, lang.region
+ assert_equal [Locale::Tag::Simple.parse("kok"),
+ Locale::Tag::Simple.parse("kok")], lang.candidates
+
+ assert_equal Locale::Tag::Simple.parse("kok"), lang.to_simple
+ assert_equal Locale::Tag::Common.parse("kok"), lang.to_common
+ assert_equal Locale::Tag::Rfc.parse("kok"), lang.to_rfc
+ assert_equal Locale::Tag::Cldr.parse("kok"), lang.to_cldr
+ assert_equal Locale::Tag::Posix.parse("kok"), lang.to_posix
+ end
+
+ def test_simple_lang_region
+ lang = Locale::Tag.parse("ja-JP")
+ assert_equal Locale::Tag::Simple, lang.class
+ assert_equal "ja", lang.language
+ assert_equal "JP", lang.region
+ assert_equal [Locale::Tag::Simple.parse("ja_JP"),
+ Locale::Tag::Simple.parse("ja")], lang.candidates
+
+ assert_equal Locale::Tag::Simple.parse("ja_JP"), lang.to_simple
+ assert_equal Locale::Tag::Common.parse("ja_JP"), lang.to_common
+ assert_equal Locale::Tag::Rfc.parse("ja-JP"), lang.to_rfc
+ assert_equal Locale::Tag::Cldr.parse("ja-JP"), lang.to_cldr
+ assert_equal Locale::Tag::Posix.parse("ja_JP"), lang.to_posix
+
+ lang = Locale::Tag.parse("ja_JP")
+ assert_equal Locale::Tag::Simple, lang.class
+ assert_equal "ja", lang.language
+ assert_equal "JP", lang.region
+ assert_equal [Locale::Tag::Simple.parse("ja_JP"),
+ Locale::Tag::Simple.parse("ja")], lang.candidates
+
+ assert_equal Locale::Tag::Simple.parse("ja_JP"), lang.to_simple
+ assert_equal Locale::Tag::Common.parse("ja_JP"), lang.to_common
+ assert_equal Locale::Tag::Rfc.parse("ja-JP"), lang.to_rfc
+ assert_equal Locale::Tag::Cldr.parse("ja-JP"), lang.to_cldr
+ assert_equal Locale::Tag::Posix.parse("ja_JP"), lang.to_posix
+ end
+
+ def test_simple_unm49
+ # UN_M.49(Country code)
+ lang = Locale::Tag.parse("ja-392")
+ assert_equal Locale::Tag::Simple, lang.class
+ assert_equal "ja", lang.language
+ assert_equal "392", lang.region
+ assert_equal [Locale::Tag::Simple.parse("ja_392"),
+ Locale::Tag::Simple.parse("ja")], lang.candidates
+
+ assert_equal Locale::Tag::Simple.parse("ja-392"), lang.to_simple
+ assert_equal Locale::Tag::Common.parse("ja-392"), lang.to_common
+ assert_equal Locale::Tag::Rfc.parse("ja-392"), lang.to_rfc
+ assert_equal Locale::Tag::Cldr.parse("ja-392"), lang.to_cldr
+ assert_equal Locale::Tag::Posix.parse("ja_392"), lang.to_posix
+
+ lang = Locale::Tag.parse("jpn-392")
+ assert_equal Locale::Tag::Simple, lang.class
+ assert_equal "jpn", lang.language
+ assert_equal "392", lang.region
+ assert_equal [Locale::Tag::Simple.parse("jpn-392"),
+ Locale::Tag::Simple.parse("jpn")], lang.candidates
+
+ assert_equal Locale::Tag::Simple.parse("jpn-392"), lang.to_simple
+ assert_equal Locale::Tag::Common.parse("jpn-392"), lang.to_common
+ assert_equal Locale::Tag::Rfc.parse("jpn-392"), lang.to_rfc
+ assert_equal Locale::Tag::Cldr.parse("jpn-392"), lang.to_cldr
+ assert_equal Locale::Tag::Posix.parse("jpn_392"), lang.to_posix
+
+ lang = Locale::Tag.parse("es-419")
+ assert_equal Locale::Tag::Simple, lang.class
+ assert_equal "es", lang.language
+ assert_equal "419", lang.region
+ assert_equal [Locale::Tag::Simple.parse("es-419"),
+ Locale::Tag::Simple.parse("es")], lang.candidates
+
+ assert_equal Locale::Tag::Simple.parse("es-419"), lang.to_simple
+ assert_equal Locale::Tag::Common.parse("es-419"), lang.to_common
+ assert_equal Locale::Tag::Rfc.parse("es-419"), lang.to_rfc
+ assert_equal Locale::Tag::Cldr.parse("es_419"), lang.to_cldr
+ assert_equal Locale::Tag::Posix.parse("es_419"), lang.to_posix
+ end
+
+ def test_simple_writer
+ lang = Locale::Tag.parse("ja-JP")
+ assert_equal Locale::Tag::Simple, lang.class
+ assert_equal "ja_JP", lang.to_s
+ assert_equal [Locale::Tag::Simple.parse("ja-JP"),
+ Locale::Tag::Simple.parse("ja")], lang.candidates
+ lang.language = "en"
+ assert_equal "en", lang.language
+ assert_equal "en_JP", lang.to_s
+ assert_equal [Locale::Tag::Simple.parse("en-JP"),
+ Locale::Tag::Simple.parse("en")], lang.candidates
+
+ lang.region = "US"
+ assert_equal "en", lang.language
+ assert_equal "US", lang.region
+ assert_equal "en_US", lang.to_s
+ assert_equal [Locale::Tag::Simple.parse("en-US"),
+ Locale::Tag::Simple.parse("en")], lang.candidates
+
+ end
+
+ #lang, region, script, variants
+ def test_common_lang_script
+ lang = Locale::Tag.parse("az_Arab")
+ assert_equal Locale::Tag::Common, lang.class
+ assert_equal "az", lang.language
+ assert_equal nil, lang.region
+ assert_equal "Arab", lang.script
+ assert_equal [Locale::Tag::Common.parse("az_Arab"),
+ Locale::Tag::Common.parse("az_Arab"),
+ Locale::Tag::Common.parse("az"),
+ Locale::Tag::Common.parse("az"),
+ Locale::Tag::Common.parse("az_Arab"),
+ Locale::Tag::Common.parse("az_Arab"),
+ Locale::Tag::Common.parse("az"),
+ Locale::Tag::Common.parse("az"),
+ ], lang.candidates
+
+ assert_equal Locale::Tag::Simple.parse("az"), lang.to_simple
+ assert_equal Locale::Tag::Common.parse("az_Arab"), lang.to_common
+ assert_equal Locale::Tag::Rfc.parse("az-Arab"), lang.to_rfc
+ assert_equal Locale::Tag::Cldr.parse("az_Arab"), lang.to_cldr
+ assert_equal Locale::Tag::Posix.parse("az"), lang.to_posix
+
+
+ lang = Locale::Tag.parse("uz-Cyrl")
+ assert_equal Locale::Tag::Common, lang.class
+ assert_equal "uz", lang.language
+ assert_equal nil, lang.region
+ assert_equal "Cyrl", lang.script
+ assert_equal [Locale::Tag::Common.parse("uz-Cyrl"),
+ Locale::Tag::Common.parse("uz-Cyrl"),
+ Locale::Tag::Common.parse("uz"),
+ Locale::Tag::Common.parse("uz"),
+ Locale::Tag::Common.parse("uz-Cyrl"),
+ Locale::Tag::Common.parse("uz-Cyrl"),
+ Locale::Tag::Common.parse("uz"),
+ Locale::Tag::Common.parse("uz"),
+ ], lang.candidates
+
+ assert_equal Locale::Tag::Simple.parse("uz"), lang.to_simple
+ assert_equal Locale::Tag::Common.parse("uz_Cyrl"), lang.to_common
+ assert_equal Locale::Tag::Rfc.parse("uz-Cyrl"), lang.to_rfc
+ assert_equal Locale::Tag::Cldr.parse("uz_Cyrl"), lang.to_cldr
+ assert_equal Locale::Tag::Posix.parse("uz"), lang.to_posix
+ end
+
+ def test_common_lang_script_region
+ lang = Locale::Tag.parse("ja-Kana-JP")
+ assert_equal Locale::Tag::Common, lang.class
+ assert_equal "ja", lang.language
+ assert_equal "JP", lang.region
+ assert_equal "Kana", lang.script
+ assert_equal [Locale::Tag::Common.parse("ja-Kana-JP"),
+ Locale::Tag::Common.parse("ja-Kana-JP"),
+ Locale::Tag::Common.parse("ja-JP"),
+ Locale::Tag::Common.parse("ja-JP"),
+ Locale::Tag::Common.parse("ja-Kana"),
+ Locale::Tag::Common.parse("ja-Kana"),
+ Locale::Tag::Common.parse("ja"),
+ Locale::Tag::Common.parse("ja")], lang.candidates
+
+ assert_equal Locale::Tag::Simple.parse("ja_JP"), lang.to_simple
+ assert_equal Locale::Tag::Common.parse("ja_Kana_JP"), lang.to_common
+ assert_equal Locale::Tag::Rfc.parse("ja-Kana-JP"), lang.to_rfc
+ assert_equal Locale::Tag::Cldr.parse("ja_Kana_JP"), lang.to_cldr
+ assert_equal Locale::Tag::Posix.parse("ja_JP"), lang.to_posix
+
+ # 3 char language
+ lang = Locale::Tag.parse("jpn-Hira-JP")
+ assert_equal Locale::Tag::Common, lang.class
+ assert_equal "jpn", lang.language
+ assert_equal "JP", lang.region
+ assert_equal "Hira", lang.script
+ assert_equal [Locale::Tag::Common.parse("jpn-Hira-JP"),
+ Locale::Tag::Common.parse("jpn-Hira-JP"),
+ Locale::Tag::Common.parse("jpn-JP"),
+ Locale::Tag::Common.parse("jpn-JP"),
+ Locale::Tag::Common.parse("jpn-Hira"),
+ Locale::Tag::Common.parse("jpn-Hira"),
+ Locale::Tag::Common.parse("jpn"),
+ Locale::Tag::Common.parse("jpn")], lang.candidates
+
+ assert_equal Locale::Tag::Simple.parse("jpn_JP"), lang.to_simple
+ assert_equal Locale::Tag::Common.parse("jpn_Hira_JP"), lang.to_common
+ assert_equal Locale::Tag::Rfc.parse("jpn-Hira-JP"), lang.to_rfc
+ assert_equal Locale::Tag::Cldr.parse("jpn_Hira_JP"), lang.to_cldr
+ assert_equal Locale::Tag::Posix.parse("jpn_JP"), lang.to_posix
+ end
+
+ def test_common_lang_script_unm49
+ lang = Locale::Tag.parse("jpn-Hira-392")
+ assert_equal Locale::Tag::Common, lang.class
+ assert_equal "jpn", lang.language
+ assert_equal "392", lang.region
+ assert_equal "Hira", lang.script
+ assert_equal [Locale::Tag::Common.parse("jpn_Hira_392"),
+ Locale::Tag::Common.parse("jpn_Hira_392"),
+ Locale::Tag::Common.parse("jpn_392"),
+ Locale::Tag::Common.parse("jpn_392"),
+ Locale::Tag::Common.parse("jpn_Hira"),
+ Locale::Tag::Common.parse("jpn_Hira"),
+ Locale::Tag::Common.parse("jpn"),
+ Locale::Tag::Common.parse("jpn")], lang.candidates
+
+
+ assert_equal Locale::Tag::Simple.parse("jpn_392"), lang.to_simple
+ assert_equal Locale::Tag::Common.parse("jpn_Hira_392"), lang.to_common
+ assert_equal Locale::Tag::Rfc.parse("jpn-Hira-392"), lang.to_rfc
+ assert_equal Locale::Tag::Cldr.parse("jpn_Hira_392"), lang.to_cldr
+ assert_equal Locale::Tag::Posix.parse("jpn_392"), lang.to_posix
+ end
+
+ def test_common_lang_script_region_variants
+ lang = Locale::Tag.parse("en_Latn_US_NYNORSK")
+ assert_equal Locale::Tag::Common, lang.class
+ assert_equal "en", lang.language
+ assert_equal "US", lang.region
+ assert_equal ["NYNORSK"], lang.variants
+ assert_equal [Locale::Tag::Common.parse("en_Latn_US_NYNORSK"),
+ Locale::Tag::Common.parse("en_Latn_US"),
+ Locale::Tag::Common.parse("en_US_NYNORSK"),
+ Locale::Tag::Common.parse("en_US"),
+ Locale::Tag::Common.parse("en_Latn_NYNORSK"),
+ Locale::Tag::Common.parse("en_Latn"),
+ Locale::Tag::Common.parse("en_NYNORSK"),
+ Locale::Tag::Common.parse("en")], lang.candidates
+
+
+ assert_equal Locale::Tag::Simple.parse("en-US"), lang.to_simple
+ assert_equal Locale::Tag::Common.parse("en_Latn_US_NYNORSK"), lang.to_common
+ assert_equal Locale::Tag::Rfc.parse("en-Latn-US-NYNORSK"), lang.to_rfc
+ assert_equal Locale::Tag::Cldr.parse("en_Latn_US_NYNORSK"), lang.to_cldr
+ assert_equal Locale::Tag::Posix.parse("en_US@NYNORSK"), lang.to_posix
+ end
+
+
+ def test_common_lang_variants
+ lang = Locale::Tag.parse("ja-osaka")
+ assert_equal Locale::Tag::Common, lang.class
+ assert_equal "ja", lang.language
+ assert_equal nil, lang.region
+ assert_equal nil, lang.script
+ assert_equal ["osaka"], lang.variants
+
+ assert_equal [Locale::Tag::Common.parse("ja-osaka"),
+ Locale::Tag::Common.parse("ja"),
+ Locale::Tag::Common.parse("ja-osaka"),
+ Locale::Tag::Common.parse("ja"),
+ Locale::Tag::Common.parse("ja-osaka"),
+ Locale::Tag::Common.parse("ja"),
+ Locale::Tag::Common.parse("ja-osaka"),
+ Locale::Tag::Common.parse("ja")
+ ], lang.candidates
+
+ assert_equal Locale::Tag::Simple.parse("ja"), lang.to_simple
+ assert_equal Locale::Tag::Common.parse("ja-osaka"), lang.to_common
+ assert_equal Locale::Tag::Rfc.parse("ja-osaka"), lang.to_rfc
+ assert_equal Locale::Tag::Cldr.parse("ja_OSAKA"), lang.to_cldr
+ assert_equal Locale::Tag::Posix.parse("ja@osaka"), lang.to_posix
+ end
+
+ def test_common_lang_region_variants
+ lang = Locale::Tag.parse("ja-JP-osaka")
+ assert_equal Locale::Tag::Common, lang.class
+ assert_equal "ja", lang.language
+ assert_equal "JP", lang.region
+ assert_equal nil, lang.script
+ assert_equal ["osaka"], lang.variants
+
+ assert_equal [Locale::Tag::Common.parse("ja_JP_osaka"),
+ Locale::Tag::Common.parse("ja_JP"),
+ Locale::Tag::Common.parse("ja_JP_osaka"),
+ Locale::Tag::Common.parse("ja_JP"),
+ Locale::Tag::Common.parse("ja_osaka"),
+ Locale::Tag::Common.parse("ja"),
+ Locale::Tag::Common.parse("ja_osaka"),
+ Locale::Tag::Common.parse("ja")
+ ], lang.candidates
+
+ assert_equal Locale::Tag::Simple.parse("ja_JP"), lang.to_simple
+ assert_equal Locale::Tag::Common.parse("ja_JP_osaka"), lang.to_common
+ assert_equal Locale::Tag::Rfc.parse("ja-JP-osaka"), lang.to_rfc
+ assert_equal Locale::Tag::Cldr.parse("ja_JP_OSAKA"), lang.to_cldr
+ assert_equal Locale::Tag::Posix.parse("ja_JP@osaka"), lang.to_posix
+ end
+
+ def test_common_lang_script_region_5length_variants
+ lang = Locale::Tag.parse("ja-Kana-JP-osaka")
+ assert_equal Locale::Tag::Common, lang.class
+ assert_equal "ja", lang.language
+ assert_equal "JP", lang.region
+ assert_equal "Kana", lang.script
+ assert_equal ["osaka"], lang.variants
+
+ assert_equal [Locale::Tag::Common.parse("ja-Kana-JP-osaka"),
+ Locale::Tag::Common.parse("ja-Kana-JP"),
+ Locale::Tag::Common.parse("ja-JP-osaka"),
+ Locale::Tag::Common.parse("ja-JP"),
+ Locale::Tag::Common.parse("ja-Kana-osaka"),
+ Locale::Tag::Common.parse("ja-Kana"),
+ Locale::Tag::Common.parse("ja-osaka"),
+ Locale::Tag::Common.parse("ja")
+ ], lang.candidates
+
+ assert_equal Locale::Tag::Simple.parse("ja_JP"), lang.to_simple
+ assert_equal Locale::Tag::Common.parse("ja_Kana-JP_osaka"), lang.to_common
+ assert_equal Locale::Tag::Rfc.parse("ja-Kana-JP-osaka"), lang.to_rfc
+ assert_equal Locale::Tag::Cldr.parse("ja_Kana_JP_OSAKA"), lang.to_cldr
+ assert_equal Locale::Tag::Posix.parse("ja_JP@osaka"), lang.to_posix
+ end
+
+ def test_common_lang_script_region_mid_length_variants
+ #middle length
+ lang = Locale::Tag.parse("ja-Kana-JP-aomori")
+ assert_equal Locale::Tag::Common, lang.class
+ assert_equal "ja", lang.language
+ assert_equal "JP", lang.region
+ assert_equal "Kana", lang.script
+ assert_equal ["aomori"], lang.variants
+
+ assert_equal [Locale::Tag::Common.parse("ja-Kana-JP-aomori"),
+ Locale::Tag::Common.parse("ja-Kana-JP"),
+ Locale::Tag::Common.parse("ja-JP-aomori"),
+ Locale::Tag::Common.parse("ja-JP"),
+ Locale::Tag::Common.parse("ja-Kana-aomori"),
+ Locale::Tag::Common.parse("ja-Kana"),
+ Locale::Tag::Common.parse("ja-aomori"),
+ Locale::Tag::Common.parse("ja")
+ ], lang.candidates
+
+ assert_equal Locale::Tag::Simple.parse("ja_JP"), lang.to_simple
+ assert_equal Locale::Tag::Common.parse("ja_Kana-JP_aomori"), lang.to_common
+ assert_equal Locale::Tag::Rfc.parse("ja-Kana-JP-aomori"), lang.to_rfc
+ assert_equal Locale::Tag::Cldr.parse("ja_Kana_JP_AOMORI"), lang.to_cldr
+ assert_equal Locale::Tag::Posix.parse("ja_JP@aomori"), lang.to_posix
+
+ end
+
+ def test_common_lang_script_region_8length_variants
+ #8 length
+ lang = Locale::Tag.parse("ja-Kana-JP-hokuriku")
+ assert_equal Locale::Tag::Common, lang.class
+ assert_equal "ja", lang.language
+ assert_equal "JP", lang.region
+ assert_equal "Kana", lang.script
+ assert_equal ["hokuriku"], lang.variants
+
+ assert_equal [Locale::Tag::Common.parse("ja-Kana-JP-hokuriku"),
+ Locale::Tag::Common.parse("ja-Kana-JP"),
+ Locale::Tag::Common.parse("ja-JP-hokuriku"),
+ Locale::Tag::Common.parse("ja-JP"),
+ Locale::Tag::Common.parse("ja-Kana-hokuriku"),
+ Locale::Tag::Common.parse("ja-Kana"),
+ Locale::Tag::Common.parse("ja-hokuriku"),
+ Locale::Tag::Common.parse("ja")
+ ], lang.candidates
+
+ assert_equal Locale::Tag::Simple.parse("ja_JP"), lang.to_simple
+ assert_equal Locale::Tag::Common.parse("ja_Kana-JP_hokuriku"), lang.to_common
+ assert_equal Locale::Tag::Rfc.parse("ja-Kana-JP-hokuriku"), lang.to_rfc
+ assert_equal Locale::Tag::Cldr.parse("ja_Kana_JP_HOKURIKU"), lang.to_cldr
+ assert_equal Locale::Tag::Posix.parse("ja_JP@hokuriku"), lang.to_posix
+ end
+
+ def test_common_lang_script_region_special_variants
+ #1 digit and 3 alpha
+ lang = Locale::Tag.parse("ja-Kana-JP-0abc")
+ assert_equal Locale::Tag::Common, lang.class
+ assert_equal "ja", lang.language
+ assert_equal "JP", lang.region
+ assert_equal "Kana", lang.script
+ assert_equal ["0abc"], lang.variants
+
+ assert_equal [Locale::Tag::Common.parse("ja-Kana-JP-0abc"),
+ Locale::Tag::Common.parse("ja-Kana-JP"),
+ Locale::Tag::Common.parse("ja-JP-0abc"),
+ Locale::Tag::Common.parse("ja-JP"),
+ Locale::Tag::Common.parse("ja-Kana-0abc"),
+ Locale::Tag::Common.parse("ja-Kana"),
+ Locale::Tag::Common.parse("ja-0abc"),
+ Locale::Tag::Common.parse("ja")
+ ], lang.candidates
+
+ assert_equal Locale::Tag::Simple.parse("ja_JP"), lang.to_simple
+ assert_equal Locale::Tag::Common.parse("ja_Kana-JP_0abc"), lang.to_common
+ assert_equal Locale::Tag::Rfc.parse("ja-Kana-JP-0abc"), lang.to_rfc
+ assert_equal Locale::Tag::Cldr.parse("ja_Kana_JP_0ABC"), lang.to_cldr
+ assert_equal Locale::Tag::Posix.parse("ja_JP@0abc"), lang.to_posix
+ end
+
+ def test_common_lang_region_4digits_variants
+ #4 digits
+ lang = Locale::Tag.parse("de-CH-1996")
+ assert_equal Locale::Tag::Common, lang.class
+ assert_equal "de", lang.language
+ assert_equal "CH", lang.region
+ assert_equal nil, lang.script
+ assert_equal ["1996"], lang.variants
+ assert_equal [Locale::Tag::Common.parse("de_CH_1996"),
+ Locale::Tag::Common.parse("de_CH"),
+ Locale::Tag::Common.parse("de_CH_1996"),
+ Locale::Tag::Common.parse("de_CH"),
+ Locale::Tag::Common.parse("de_1996"),
+ Locale::Tag::Common.parse("de"),
+ Locale::Tag::Common.parse("de_1996"),
+ Locale::Tag::Common.parse("de"),
+ ], lang.candidates
+
+ assert_equal Locale::Tag::Simple.parse("de-CH"), lang.to_simple
+ assert_equal Locale::Tag::Common.parse("de-CH-1996"), lang.to_common
+ assert_equal Locale::Tag::Rfc.parse("de-CH-1996"), lang.to_rfc
+ assert_equal Locale::Tag::Cldr.parse("de_CH_1996"), lang.to_cldr
+ assert_equal Locale::Tag::Posix.parse("de_CH@1996"), lang.to_posix
+ end
+
+ def test_common_lang_region_plural_variants
+ #Plural
+ lang = Locale::Tag.parse("ja-Kana-JP-hokuriku-aomori")
+ assert_equal Locale::Tag::Common, lang.class
+ assert_equal "ja", lang.language
+ assert_equal "JP", lang.region
+ assert_equal "Kana", lang.script
+ assert_equal ["hokuriku", "aomori"], lang.variants
+
+ assert_equal [Locale::Tag::Common.parse("ja-Kana-JP-hokuriku-aomori"),
+ Locale::Tag::Common.parse("ja-Kana-JP"),
+ Locale::Tag::Common.parse("ja-JP-hokuriku-aomori"),
+ Locale::Tag::Common.parse("ja-JP"),
+ Locale::Tag::Common.parse("ja-Kana-hokuriku-aomori"),
+ Locale::Tag::Common.parse("ja-Kana"),
+ Locale::Tag::Common.parse("ja-hokuriku-aomori"),
+ Locale::Tag::Common.parse("ja"),
+ ], lang.candidates
+
+ assert_equal Locale::Tag::Simple.parse("ja-JP"), lang.to_simple
+ assert_equal Locale::Tag::Common.parse("ja-Kana-JP-hokuriku-aomori"), lang.to_common
+ assert_equal Locale::Tag::Rfc.parse("ja-Kana-JP-hokuriku-aomori"), lang.to_rfc
+ assert_equal Locale::Tag::Cldr.parse("ja-Kana-JP_HOKURIKU_AOMORI"), lang.to_cldr
+ assert_equal Locale::Tag::Posix.parse("ja_JP@hokuriku-aomori"), lang.to_posix
+ end
+
+ def test_common_cases
+ #cases
+ lang = Locale::Tag.parse("mn-Cyrl-MN")
+ assert_equal Locale::Tag::Common, lang.class
+ assert_equal "mn", lang.language
+ assert_equal "MN", lang.region
+ assert_equal "Cyrl", lang.script
+
+ assert_equal [Locale::Tag::Common.parse("mn-Cyrl-MN"),
+ Locale::Tag::Common.parse("mn-Cyrl-MN"),
+ Locale::Tag::Common.parse("mn-MN"),
+ Locale::Tag::Common.parse("mn-MN"),
+ Locale::Tag::Common.parse("mn-Cyrl"),
+ Locale::Tag::Common.parse("mn-Cyrl"),
+ Locale::Tag::Common.parse("mn"),
+ Locale::Tag::Common.parse("mn"),
+ ], lang.candidates
+
+ assert_equal Locale::Tag::Simple.parse("mn_MN"), lang.to_simple
+ assert_equal Locale::Tag::Common.parse("mn_Cyrl_MN"), lang.to_common
+ assert_equal Locale::Tag::Rfc.parse("mn-Cyrl-MN"), lang.to_rfc
+ assert_equal Locale::Tag::Cldr.parse("mn-Cyrl-MN"), lang.to_cldr
+ assert_equal Locale::Tag::Posix.parse("mn_MN"), lang.to_posix
+
+ lang = Locale::Tag.parse("mN-cYrL-Mn")
+ assert_equal Locale::Tag::Common, lang.class
+ assert_equal "mn", lang.language
+ assert_equal "MN", lang.region
+ assert_equal "Cyrl", lang.script
+
+ assert_equal Locale::Tag::Simple.parse("mn_MN"), lang.to_simple
+ assert_equal Locale::Tag::Common.parse("mn_Cyrl_MN"), lang.to_common
+ assert_equal Locale::Tag::Rfc.parse("mn-Cyrl-MN"), lang.to_rfc
+ assert_equal Locale::Tag::Cldr.parse("mn-Cyrl-MN"), lang.to_cldr
+ assert_equal Locale::Tag::Posix.parse("mn_MN"), lang.to_posix
+
+ lang = Locale::Tag.parse("MN-cYRL-mn")
+ assert_equal Locale::Tag::Common, lang.class
+ assert_equal "mn", lang.language
+ assert_equal "MN", lang.region
+ assert_equal "Cyrl", lang.script
+
+ assert_equal Locale::Tag::Simple.parse("mn_MN"), lang.to_simple
+ assert_equal Locale::Tag::Common.parse("mn_Cyrl_MN"), lang.to_common
+ assert_equal Locale::Tag::Rfc.parse("mn-Cyrl-MN"), lang.to_rfc
+ assert_equal Locale::Tag::Cldr.parse("mn-Cyrl-MN"), lang.to_cldr
+ assert_equal Locale::Tag::Posix.parse("mn_MN"), lang.to_posix
+
+ lang = Locale::Tag.parse("zh-Latn-CN-variant1")
+ assert_equal Locale::Tag::Common, lang.class
+ assert_equal "zh", lang.language
+ assert_equal "CN", lang.region
+ assert_equal "Latn", lang.script
+ assert_equal ["variant1"], lang.variants
+
+ assert_equal [Locale::Tag::Common.parse("zh-Latn-CN-variant1"),
+ Locale::Tag::Common.parse("zh-Latn-CN"),
+ Locale::Tag::Common.parse("zh-CN-variant1"),
+ Locale::Tag::Common.parse("zh-CN"),
+ Locale::Tag::Common.parse("zh-Latn-variant1"),
+ Locale::Tag::Common.parse("zh-Latn"),
+ Locale::Tag::Common.parse("zh-variant1"),
+ Locale::Tag::Common.parse("zh"),
+ ], lang.candidates
+
+ assert_equal Locale::Tag::Simple.parse("zh_CN"), lang.to_simple
+ assert_equal Locale::Tag::Common.parse("zh_Latn_CN-variant1"), lang.to_common
+ assert_equal Locale::Tag::Rfc.parse("zh-Latn-CN-variant1"), lang.to_rfc
+ assert_equal Locale::Tag::Cldr.parse("zh-Latn-CN_VARIANT1"), lang.to_cldr
+ assert_equal Locale::Tag::Posix.parse("zh_CN@variant1"), lang.to_posix
+ end
+
+ def test_common_lang_region_variants_rfc3066
+ # RFC3066 compatible
+ lang = Locale::Tag.parse("ja-jp-mac")
+ assert_equal Locale::Tag::Common, lang.class
+ assert_equal "ja", lang.language
+ assert_equal "JP", lang.region
+ assert_equal ["mac"], lang.variants
+ assert_equal nil, lang.script
+ assert_equal [Locale::Tag::Common.parse("ja_JP_mac"),
+ Locale::Tag::Common.parse("ja_JP"),
+ Locale::Tag::Common.parse("ja_JP_mac"),
+ Locale::Tag::Common.parse("ja_JP"),
+ Locale::Tag::Common.parse("ja_mac"),
+ Locale::Tag::Common.parse("ja"),
+ Locale::Tag::Common.parse("ja_mac"),
+ Locale::Tag::Common.parse("ja"),
+ ], lang.candidates
+
+ end
+
+ def test_common_writer
+ lang = Locale::Tag.parse("zh-Latn-CN-variant1")
+ lang.language = "ja"
+ assert_equal "ja_Latn_CN_variant1", lang.to_s
+ lang.script = "Hira"
+ assert_equal "ja_Hira_CN_variant1", lang.to_s
+ lang.region = "JP"
+ assert_equal "ja_Hira_JP_variant1", lang.to_s
+ lang.variants = ["variant1", "variant2"]
+ assert_equal "ja_Hira_JP_variant1_variant2", lang.to_s
+
+ assert_equal [Locale::Tag::Common.parse("ja-Hira-JP-variant1-variant2"),
+ Locale::Tag::Common.parse("ja-Hira-JP"),
+ Locale::Tag::Common.parse("ja-JP-variant1-variant2"),
+ Locale::Tag::Common.parse("ja-JP"),
+ Locale::Tag::Common.parse("ja-Hira-variant1-variant2"),
+ Locale::Tag::Common.parse("ja-Hira"),
+ Locale::Tag::Common.parse("ja-variant1-variant2"),
+ Locale::Tag::Common.parse("ja"),
+ ], lang.candidates
+
+ end
+
+ def test_rfc_lang_script_region_variant_extension
+ lang = Locale::Tag.parse("zh-Latn-CN-variant1-a-extend1")
+ assert_equal Locale::Tag::Rfc, lang.class
+ assert_equal "zh", lang.language
+ assert_equal "CN", lang.region
+ assert_equal "Latn", lang.script
+ assert_equal ["variant1"], lang.variants
+ assert_equal ["a-extend1"], lang.extensions
+ assert_equal nil, lang.privateuse
+
+ assert_equal [Locale::Tag::Rfc.parse("zh-Latn-CN-variant1"),
+ Locale::Tag::Rfc.parse("zh-Latn-CN"),
+ Locale::Tag::Rfc.parse("zh-CN-variant1"),
+ Locale::Tag::Rfc.parse("zh-CN"),
+ Locale::Tag::Rfc.parse("zh-Latn-variant1"),
+ Locale::Tag::Rfc.parse("zh-Latn"),
+ Locale::Tag::Rfc.parse("zh-variant1"),
+ Locale::Tag::Rfc.parse("zh"),
+ ], lang.candidates
+
+ assert_equal Locale::Tag::Simple.parse("zh_CN"), lang.to_simple
+ assert_equal Locale::Tag::Common.parse("zh-Latn-CN_variant1"), lang.to_common
+ assert_equal Locale::Tag::Rfc.parse("zh-Latn-CN-variant1-a-extend1"), lang.to_rfc
+ assert_equal Locale::Tag::Cldr.parse("zh_Latn_CN_VARIANT1"), lang.to_cldr
+ assert_equal Locale::Tag::Posix.parse("zh_CN@variant1"), lang.to_posix
+ end
+
+ def test_rfc_lang_script_region_extensions
+ lang = Locale::Tag.parse("ja-Kana-JP-0abc-y-aa-z-bbccdd-b-nnnnnnnn")
+ assert_equal Locale::Tag::Rfc, lang.class
+ assert_equal "ja", lang.language
+ assert_equal "JP", lang.region
+ assert_equal "Kana", lang.script
+ assert_equal ["0abc"], lang.variants
+ assert_equal ["y-aa", "z-bbccdd", "b-nnnnnnnn"], lang.extensions
+
+ assert_equal [Locale::Tag::Rfc.parse("ja-Kana-JP-0abc"),
+ Locale::Tag::Rfc.parse("ja-Kana-JP"),
+ Locale::Tag::Rfc.parse("ja-JP-0abc"),
+ Locale::Tag::Rfc.parse("ja-JP"),
+ Locale::Tag::Rfc.parse("ja-Kana-0abc"),
+ Locale::Tag::Rfc.parse("ja-Kana"),
+ Locale::Tag::Rfc.parse("ja-0abc"),
+ Locale::Tag::Rfc.parse("ja"),
+ ], lang.candidates
+
+ assert_equal Locale::Tag::Simple.parse("ja_JP"), lang.to_simple
+ assert_equal Locale::Tag::Common.parse("ja-Kana-JP-0abc"), lang.to_common
+ assert_equal Locale::Tag::Rfc.parse("ja-Kana-JP-0abc-y-aa-z-bbccdd-b-nnnnnnnn"), lang.to_rfc
+ assert_equal Locale::Tag::Cldr.parse("ja_Kana_JP_0abc"), lang.to_cldr
+ assert_equal Locale::Tag::Posix.parse("ja_JP@0abc"), lang.to_posix
+ end
+
+ def test_rfc_lang_region_variants_extensions
+ lang = Locale::Tag.parse("ja-JP-0abc-y-aa-z-bbccdd-b-xxxnnnnn")
+ assert_equal Locale::Tag::Rfc, lang.class
+ assert_equal "ja", lang.language
+ assert_equal "JP", lang.region
+ assert_equal nil, lang.script
+ assert_equal ["0abc"], lang.variants
+ assert_equal ["y-aa", "z-bbccdd", "b-xxxnnnnn"], lang.extensions
+
+ assert_equal [Locale::Tag::Rfc.parse("ja-JP-0abc"),
+ Locale::Tag::Rfc.parse("ja-JP"),
+ Locale::Tag::Rfc.parse("ja-JP-0abc"),
+ Locale::Tag::Rfc.parse("ja-JP"),
+ Locale::Tag::Rfc.parse("ja-0abc"),
+ Locale::Tag::Rfc.parse("ja"),
+ Locale::Tag::Rfc.parse("ja-0abc"),
+ Locale::Tag::Rfc.parse("ja"),
+ ], lang.candidates
+
+ assert_equal Locale::Tag::Simple.parse("ja_JP"), lang.to_simple
+ assert_equal Locale::Tag::Common.parse("ja-JP-0abc"), lang.to_common
+ assert_equal Locale::Tag::Rfc.parse("ja-JP-0abc-y-aa-z-bbccdd-b-xxxnnnnn"), lang.to_rfc
+ assert_equal Locale::Tag::Cldr.parse("ja_JP_0abc"), lang.to_cldr
+ assert_equal Locale::Tag::Posix.parse("ja_JP@0abc"), lang.to_posix
+
+ end
+
+ def test_rfc_lang_extensions
+ lang = Locale::Tag.parse("ja-y-aa-z-bbccdd-b-xxnnnnn")
+ assert_equal Locale::Tag::Rfc, lang.class
+ assert_equal "ja", lang.language
+ assert_equal nil, lang.region
+ assert_equal nil, lang.script
+ assert_equal [], lang.variants
+ assert_equal ["y-aa", "z-bbccdd", "b-xxnnnnn"], lang.extensions
+
+ assert_equal [Locale::Tag::Rfc.parse("ja"),
+ Locale::Tag::Rfc.parse("ja"),
+ Locale::Tag::Rfc.parse("ja"),
+ Locale::Tag::Rfc.parse("ja"),
+ Locale::Tag::Rfc.parse("ja"),
+ Locale::Tag::Rfc.parse("ja"),
+ Locale::Tag::Rfc.parse("ja"),
+ Locale::Tag::Rfc.parse("ja"),
+ ], lang.candidates
+
+ assert_equal Locale::Tag::Simple.parse("ja"), lang.to_simple
+ assert_equal Locale::Tag::Common.parse("ja"), lang.to_common
+ assert_equal Locale::Tag::Rfc.parse("ja-y-aa-z-bbccdd-b-xxnnnnn"), lang.to_rfc
+ assert_equal Locale::Tag::Cldr.parse("ja"), lang.to_cldr
+ assert_equal Locale::Tag::Posix.parse("ja"), lang.to_posix
+ end
+
+ def test_rfc_privateuse
+ #Privateuse
+ lang = Locale::Tag.parse("zh-Latn-CN-variant1-a-extend1-x-wadegile-private1")
+ assert_equal Locale::Tag::Rfc, lang.class
+ assert_equal "zh", lang.language
+ assert_equal "CN", lang.region
+ assert_equal "Latn", lang.script
+ assert_equal ["variant1"], lang.variants
+ assert_equal ["a-extend1"], lang.extensions
+ assert_equal "x-wadegile-private1", lang.privateuse
+
+ assert_equal [Locale::Tag::Rfc.parse("zh-Latn-CN-variant1"),
+ Locale::Tag::Rfc.parse("zh-Latn-CN"),
+ Locale::Tag::Rfc.parse("zh-CN-variant1"),
+ Locale::Tag::Rfc.parse("zh-CN"),
+ Locale::Tag::Rfc.parse("zh-Latn-variant1"),
+ Locale::Tag::Rfc.parse("zh-Latn"),
+ Locale::Tag::Rfc.parse("zh-variant1"),
+ Locale::Tag::Rfc.parse("zh"),
+ ], lang.candidates
+
+ assert_equal Locale::Tag::Simple.parse("zh_CN"), lang.to_simple
+ assert_equal Locale::Tag::Common.parse("zh-Latn-CN_variant1"), lang.to_common
+ assert_equal Locale::Tag::Rfc.parse("zh-Latn-CN-variant1-a-extend1-x-wadegile-private1"), lang.to_rfc
+ assert_equal Locale::Tag::Cldr.parse("zh_Latn_CN_VARIANT1"), lang.to_cldr
+ assert_equal Locale::Tag::Posix.parse("zh_CN@variant1"), lang.to_posix
+ end
+
+ def test_rfc_cldr_conversion
+ #Privateuse with x-ldml (CLDR conversion)
+ lang = Locale::Tag.parse("en-US-x-ldml-POSIX-k-calendar-islamic-k-collatio-traditio-k-colStren-secondar")
+ assert_equal Locale::Tag::Rfc, lang.class
+ assert_equal "en", lang.language
+ assert_equal "US", lang.region
+ assert_equal ["POSIX"], lang.variants
+ assert_equal ["k-calendar-islamic", "k-collatio-traditio", "k-colStren-secondar"], lang.extensions
+ assert_equal "x-ldml-POSIX-k-calendar-islamic-k-collatio-traditio-k-colStren-secondar", lang.privateuse
+
+ assert_equal [Locale::Tag::Rfc.parse("en-US-POSIX"),
+ Locale::Tag::Rfc.parse("en-US"),
+ Locale::Tag::Rfc.parse("en-US-POSIX"),
+ Locale::Tag::Rfc.parse("en-US"),
+ Locale::Tag::Rfc.parse("en-POSIX"),
+ Locale::Tag::Rfc.parse("en"),
+ Locale::Tag::Rfc.parse("en-POSIX"),
+ Locale::Tag::Rfc.parse("en"),
+ ], lang.candidates
+
+ assert_equal Locale::Tag::Simple.parse("en_US"), lang.to_simple
+ assert_equal Locale::Tag::Common.parse("en-US_POSIX"), lang.to_common
+ assert_equal Locale::Tag::Rfc.parse("en-US-x-ldml-POSIX-k-calendar-islamic-k-collatio-traditio-k-colStren-secondar"), lang.to_rfc
+ assert_equal Locale::Tag::Cldr.parse("en_US_POSIX@calendar=islamic;collatio=traditio;colStren=secondar"), lang.to_cldr
+ assert_equal Locale::Tag::Posix.parse("en_US@POSIX"), lang.to_posix
+
+ lang = Locale::Tag.parse("en-US-x-ldml-k-calendar-islamic-k-collatio-traditio-k-colStren-secondar")
+ assert_equal Locale::Tag::Rfc, lang.class
+ assert_equal "en", lang.language
+ assert_equal "US", lang.region
+ assert_equal [], lang.variants
+ assert_equal ["k-calendar-islamic", "k-collatio-traditio", "k-colStren-secondar"], lang.extensions
+ assert_equal "x-ldml-k-calendar-islamic-k-collatio-traditio-k-colStren-secondar", lang.privateuse
+
+ assert_equal [Locale::Tag::Rfc.parse("en-US"),
+ Locale::Tag::Rfc.parse("en-US"),
+ Locale::Tag::Rfc.parse("en-US"),
+ Locale::Tag::Rfc.parse("en-US"),
+ Locale::Tag::Rfc.parse("en"),
+ Locale::Tag::Rfc.parse("en"),
+ Locale::Tag::Rfc.parse("en"),
+ Locale::Tag::Rfc.parse("en"),
+ ], lang.candidates
+
+ assert_equal Locale::Tag::Simple.parse("en_US"), lang.to_simple
+ assert_equal Locale::Tag::Common.parse("en-US"), lang.to_common
+ assert_equal Locale::Tag::Rfc.parse("en-US-x-ldml-k-calendar-islamic-k-collatio-traditio-k-colStren-secondar"), lang.to_rfc
+ assert_equal Locale::Tag::Cldr.parse("en_US@calendar=islamic;collatio=traditio;colStren=secondar"), lang.to_cldr
+ assert_equal Locale::Tag::Posix.parse("en_US"), lang.to_posix
+ end
+
+ def test_rfc_writer
+ lang = Locale::Tag.parse("zh-Latn-CN-variant1-a-extend1-x-wadegile-private1")
+ lang.language = "ja"
+ assert_equal "ja-Latn-CN-variant1-a-extend1-x-wadegile-private1", lang.to_s
+ lang.script = "Hira"
+ assert_equal "ja-Hira-CN-variant1-a-extend1-x-wadegile-private1", lang.to_s
+ lang.region = "JP"
+ assert_equal "ja-Hira-JP-variant1-a-extend1-x-wadegile-private1", lang.to_s
+ lang.variants = ["variant2"]
+ assert_equal "ja-Hira-JP-variant2-a-extend1-x-wadegile-private1", lang.to_s
+ lang.extensions = ["b-extend2"]
+ assert_equal "ja-Hira-JP-variant2-b-extend2-x-wadegile-private1", lang.to_s
+ lang.privateuse = "x-foooo"
+ assert_equal "ja-Hira-JP-variant2-b-extend2-x-foooo", lang.to_s
+
+ assert_equal [Locale::Tag::Rfc.parse("ja-Hira-JP-variant2"),
+ Locale::Tag::Rfc.parse("ja-Hira-JP"),
+ Locale::Tag::Rfc.parse("ja-JP-variant2"),
+ Locale::Tag::Rfc.parse("ja-JP"),
+ Locale::Tag::Rfc.parse("ja-Hira-variant2"),
+ Locale::Tag::Rfc.parse("ja-Hira"),
+ Locale::Tag::Rfc.parse("ja-variant2"),
+ Locale::Tag::Rfc.parse("ja"),
+ ], lang.candidates
+ end
+
+ def test_cldr_lang_extensions
+ lang = Locale::Tag.parse("de@collation=phonebook")
+ assert_equal Locale::Tag::Cldr, lang.class
+ assert_equal "de", lang.language
+ assert_equal nil, lang.region
+ assert_equal "phonebook", lang.extensions["collation"]
+
+ assert_equal [Locale::Tag::Cldr.parse("de"),
+ Locale::Tag::Cldr.parse("de"),
+ Locale::Tag::Cldr.parse("de"),
+ Locale::Tag::Cldr.parse("de"),
+ Locale::Tag::Cldr.parse("de"),
+ Locale::Tag::Cldr.parse("de"),
+ Locale::Tag::Cldr.parse("de"),
+ Locale::Tag::Cldr.parse("de"),
+ ], lang.candidates
+
+ assert_equal Locale::Tag::Simple.parse("de"), lang.to_simple
+ assert_equal Locale::Tag::Common.parse("de"), lang.to_common
+ assert_equal Locale::Tag::Rfc.parse("de-k-collatio-phoneboo"), lang.to_rfc
+ assert_equal Locale::Tag::Cldr.parse("de@collation=phonebook"), lang.to_cldr
+ assert_equal Locale::Tag::Posix.parse("de"), lang.to_posix
+ end
+
+ def test_cldr_lang_script_extension
+ lang = Locale::Tag.parse("az_Arab@collation=phonebook")
+ assert_equal Locale::Tag::Cldr, lang.class
+ assert_equal "az", lang.language
+ assert_equal nil, lang.region
+ assert_equal "Arab", lang.script
+ assert_equal "phonebook", lang.extensions["collation"]
+
+ assert_equal [Locale::Tag::Cldr.parse("az_Arab"),
+ Locale::Tag::Cldr.parse("az_Arab"),
+ Locale::Tag::Cldr.parse("az"),
+ Locale::Tag::Cldr.parse("az"),
+ Locale::Tag::Cldr.parse("az_Arab"),
+ Locale::Tag::Cldr.parse("az_Arab"),
+ Locale::Tag::Cldr.parse("az"),
+ Locale::Tag::Cldr.parse("az"),
+ ], lang.candidates
+
+ assert_equal Locale::Tag::Simple.parse("az"), lang.to_simple
+ assert_equal Locale::Tag::Common.parse("az_Arab"), lang.to_common
+ assert_equal Locale::Tag::Rfc.parse("az-Arab-k-collatio-phoneboo"), lang.to_rfc
+ assert_equal Locale::Tag::Cldr.parse("az_Arab@collation=phonebook"), lang.to_cldr
+ assert_equal Locale::Tag::Posix.parse("az"), lang.to_posix
+
+ end
+
+ def test_cldr_lang_region_extensions
+ lang = Locale::Tag.parse("de_DE@collation=phonebook;currency=DDM")
+ assert_equal Locale::Tag::Cldr, lang.class
+ assert_equal "de", lang.language
+ assert_equal "DE", lang.region
+ assert_equal "phonebook", lang.extensions["collation"]
+ assert_equal "DDM", lang.extensions["currency"]
+
+ assert_equal [Locale::Tag::Cldr.parse("de_DE"),
+ Locale::Tag::Cldr.parse("de_DE"),
+ Locale::Tag::Cldr.parse("de_DE"),
+ Locale::Tag::Cldr.parse("de_DE"),
+ Locale::Tag::Cldr.parse("de"),
+ Locale::Tag::Cldr.parse("de"),
+ Locale::Tag::Cldr.parse("de"),
+ Locale::Tag::Cldr.parse("de"),
+ ], lang.candidates
+
+ assert_equal Locale::Tag::Simple.parse("de_DE"), lang.to_simple
+ assert_equal Locale::Tag::Common.parse("de_DE"), lang.to_common
+ assert_equal Locale::Tag::Rfc.parse("de-DE-k-collatio-phoneboo-k-currency-DDM"), lang.to_rfc
+ assert_equal Locale::Tag::Cldr.parse("de_DE@collation=phonebook;currency=DDM"), lang.to_cldr
+ assert_equal Locale::Tag::Posix.parse("de_DE"), lang.to_posix
+
+ lang = Locale::Tag.parse("en_US@calendar=islamic;collation=traditional;colStrength=secondary")
+ assert_equal Locale::Tag::Cldr, lang.class
+ assert_equal "en", lang.language
+ assert_equal "US", lang.region
+ assert_equal [], lang.variants
+ assert_equal "islamic", lang.extensions["calendar"]
+ assert_equal "traditional", lang.extensions["collation"]
+ assert_equal "secondary", lang.extensions["colStrength"]
+
+ assert_equal [Locale::Tag::Cldr.parse("en_US"),
+ Locale::Tag::Cldr.parse("en_US"),
+ Locale::Tag::Cldr.parse("en_US"),
+ Locale::Tag::Cldr.parse("en_US"),
+ Locale::Tag::Cldr.parse("en"),
+ Locale::Tag::Cldr.parse("en"),
+ Locale::Tag::Cldr.parse("en"),
+ Locale::Tag::Cldr.parse("en"),
+ ], lang.candidates
+
+ assert_equal Locale::Tag::Simple.parse("en_US"), lang.to_simple
+ assert_equal Locale::Tag::Common.parse("en_US"), lang.to_common
+ assert_equal Locale::Tag::Rfc.parse("en-US-k-calendar-islamic-k-collatio-traditio-k-colStren-secondar"), lang.to_rfc
+ assert_equal Locale::Tag::Cldr.parse("en_US@calendar=islamic;collation=traditional;colStrength=secondary"), lang.to_cldr
+ assert_equal Locale::Tag::Posix.parse("en_US"), lang.to_posix
+
+ end
+
+ def test_cldr_lang_region_variants_extensions
+ lang = Locale::Tag.parse("en_US_POSIX@calendar=islamic;collation=traditional;colStrength=secondary")
+ assert_equal Locale::Tag::Cldr, lang.class
+ assert_equal "en", lang.language
+ assert_equal "US", lang.region
+ assert_equal ["POSIX"], lang.variants
+ assert_equal "islamic", lang.extensions["calendar"]
+ assert_equal "traditional", lang.extensions["collation"]
+ assert_equal "secondary", lang.extensions["colStrength"]
+
+ assert_equal [Locale::Tag::Cldr.parse("en_US_POSIX"),
+ Locale::Tag::Cldr.parse("en_US"),
+ Locale::Tag::Cldr.parse("en_US_POSIX"),
+ Locale::Tag::Cldr.parse("en_US"),
+ Locale::Tag::Cldr.parse("en_POSIX"),
+ Locale::Tag::Cldr.parse("en"),
+ Locale::Tag::Cldr.parse("en_POSIX"),
+ Locale::Tag::Cldr.parse("en"),
+ ], lang.candidates
+
+ assert_equal Locale::Tag::Simple.parse("en_US"), lang.to_simple
+ assert_equal Locale::Tag::Common.parse("en_US_POSIX"), lang.to_common
+ assert_equal Locale::Tag::Rfc.parse("en-US-POSIX-k-calendar-islamic-k-collatio-traditio-k-colStren-secondar"), lang.to_rfc
+ assert_equal Locale::Tag::Cldr.parse("en_US_POSIX@calendar=islamic;collation=traditional;colStrength=secondary"), lang.to_cldr
+ assert_equal Locale::Tag::Posix.parse("en_US@POSIX"), lang.to_posix
+ end
+
+ def test_cldr_writer
+ lang = Locale::Tag.parse("en_US@calendar=islamic;colStrength=secondary")
+ lang.language = "ja"
+ assert_equal "ja_US@calendar=islamic;colStrength=secondary", lang.to_s
+ lang.script = "Hira"
+ assert_equal "ja_Hira_US@calendar=islamic;colStrength=secondary", lang.to_s
+ lang.region = "JP"
+ assert_equal "ja_Hira_JP@calendar=islamic;colStrength=secondary", lang.to_s
+ lang.variants = ["POSIX"]
+ assert_equal "ja_Hira_JP_POSIX@calendar=islamic;colStrength=secondary", lang.to_s
+ lang.extensions = {:collation => "traditional"}
+ assert_equal "ja_Hira_JP_POSIX@collation=traditional", lang.to_s
+
+ assert_equal [Locale::Tag::Cldr.parse("ja_Hira_JP_POSIX"),
+ Locale::Tag::Cldr.parse("ja_Hira_JP"),
+ Locale::Tag::Cldr.parse("ja_JP_POSIX"),
+ Locale::Tag::Cldr.parse("ja_JP"),
+ Locale::Tag::Cldr.parse("ja_Hira_POSIX"),
+ Locale::Tag::Cldr.parse("ja_Hira"),
+ Locale::Tag::Cldr.parse("ja_POSIX"),
+ Locale::Tag::Cldr.parse("ja"),
+ ], lang.candidates
+ end
+
+ def test_posix_c_and_posix
+ lang = Locale::Tag.parse("C")
+ assert_equal Locale::Tag::Posix, lang.class
+ assert_equal "en", lang.language
+ assert_equal "US", lang.region
+ assert_equal "C", lang.tag
+
+ assert_equal [Locale::Tag::Posix.parse("en_US"),
+ Locale::Tag::Posix.parse("en_US"),
+ Locale::Tag::Posix.parse("en_US"),
+ Locale::Tag::Posix.parse("en_US"),
+ Locale::Tag::Posix.parse("en"),
+ Locale::Tag::Posix.parse("en"),
+ Locale::Tag::Posix.parse("en"),
+ Locale::Tag::Posix.parse("en"),
+ ], lang.candidates
+
+ assert_equal Locale::Tag::Simple.parse("en_US"), lang.to_simple
+ assert_equal Locale::Tag::Common.parse("en_US"), lang.to_common
+ assert_equal Locale::Tag::Rfc.parse("en-US"), lang.to_rfc
+ assert_equal Locale::Tag::Cldr.parse("en_US"), lang.to_cldr
+ assert_equal Locale::Tag::Posix.parse("en_US"), lang.to_posix
+
+ lang = Locale::Tag.parse("POSIX")
+ assert_equal Locale::Tag::Posix, lang.class
+ assert_equal "en", lang.language
+ assert_equal "US", lang.region
+ assert_equal "POSIX", lang.tag
+
+ assert_equal [Locale::Tag::Posix.parse("en_US"),
+ Locale::Tag::Posix.parse("en_US"),
+ Locale::Tag::Posix.parse("en_US"),
+ Locale::Tag::Posix.parse("en_US"),
+ Locale::Tag::Posix.parse("en"),
+ Locale::Tag::Posix.parse("en"),
+ Locale::Tag::Posix.parse("en"),
+ Locale::Tag::Posix.parse("en"),
+ ], lang.candidates
+
+ assert_equal Locale::Tag::Simple.parse("en_US"), lang.to_simple
+ assert_equal Locale::Tag::Common.parse("en_US"), lang.to_common
+ assert_equal Locale::Tag::Rfc.parse("en-US"), lang.to_rfc
+ assert_equal Locale::Tag::Cldr.parse("en_US"), lang.to_cldr
+ assert_equal Locale::Tag::Posix.parse("en_US"), lang.to_posix
+ end
+
+ def test_posix_irregular_format
+ lang = Locale::Tag.parse("japanese.euc")
+ assert_equal Locale::Tag::Posix, lang.class
+ assert_equal "japanese", lang.language
+ assert_equal nil, lang.region
+ assert_equal "euc", lang.charset
+
+ assert_equal [Locale::Tag::Posix.parse("japanese.euc"),
+ Locale::Tag::Posix.parse("japanese.euc"),
+ Locale::Tag::Posix.parse("japanese"),
+ Locale::Tag::Posix.parse("japanese"),
+ Locale::Tag::Posix.parse("japanese.euc"),
+ Locale::Tag::Posix.parse("japanese.euc"),
+ Locale::Tag::Posix.parse("japanese"),
+ Locale::Tag::Posix.parse("japanese"),
+ ], lang.candidates
+
+ lang = Locale::Tag.parse("univ.utf8")
+ assert_equal Locale::Tag::Posix, lang.class
+ assert_equal "univ", lang.language
+ assert_equal nil, lang.region
+ assert_equal "utf8", lang.charset
+
+ assert_equal [Locale::Tag::Posix.parse("univ.utf8"),
+ Locale::Tag::Posix.parse("univ.utf8"),
+ Locale::Tag::Posix.parse("univ"),
+ Locale::Tag::Posix.parse("univ"),
+ Locale::Tag::Posix.parse("univ.utf8"),
+ Locale::Tag::Posix.parse("univ.utf8"),
+ Locale::Tag::Posix.parse("univ"),
+ Locale::Tag::Posix.parse("univ"),
+ ], lang.candidates
+ end
+
+ def test_posix_lang_charset
+ lang = Locale::Tag.parse("es.iso885915")
+ assert_equal Locale::Tag::Posix, lang.class
+ assert_equal "es", lang.language
+ assert_equal nil, lang.region
+ assert_equal "iso885915", lang.charset
+ assert_equal nil, lang.modifier
+
+ assert_equal [Locale::Tag::Posix.parse("es.iso885915"),
+ Locale::Tag::Posix.parse("es.iso885915"),
+ Locale::Tag::Posix.parse("es"),
+ Locale::Tag::Posix.parse("es"),
+ Locale::Tag::Posix.parse("es.iso885915"),
+ Locale::Tag::Posix.parse("es.iso885915"),
+ Locale::Tag::Posix.parse("es"),
+ Locale::Tag::Posix.parse("es"),
+ ], lang.candidates
+
+ assert_equal Locale::Tag::Simple.parse("es"), lang.to_simple
+ assert_equal Locale::Tag::Common.parse("es"), lang.to_common
+ assert_equal Locale::Tag::Rfc.parse("es"), lang.to_rfc
+ assert_equal Locale::Tag::Cldr.parse("es"), lang.to_cldr
+ assert_equal Locale::Tag::Posix.parse("es.iso885915"), lang.to_posix
+ end
+
+ def test_posix_lang_region_charset
+ lang = Locale::Tag.parse("es_ES.iso885915")
+ assert_equal Locale::Tag::Posix, lang.class
+ assert_equal "es", lang.language
+ assert_equal "ES", lang.region
+ assert_equal "iso885915", lang.charset
+ assert_equal nil, lang.modifier
+
+ assert_equal [Locale::Tag::Posix.parse("es_ES.iso885915"),
+ Locale::Tag::Posix.parse("es_ES.iso885915"),
+ Locale::Tag::Posix.parse("es_ES"),
+ Locale::Tag::Posix.parse("es_ES"),
+ Locale::Tag::Posix.parse("es.iso885915"),
+ Locale::Tag::Posix.parse("es.iso885915"),
+ Locale::Tag::Posix.parse("es"),
+ Locale::Tag::Posix.parse("es"),
+ ], lang.candidates
+
+ assert_equal Locale::Tag::Simple.parse("es_ES"), lang.to_simple
+ assert_equal Locale::Tag::Common.parse("es_ES"), lang.to_common
+ assert_equal Locale::Tag::Rfc.parse("es-ES"), lang.to_rfc
+ assert_equal Locale::Tag::Cldr.parse("es_ES"), lang.to_cldr
+ assert_equal Locale::Tag::Posix.parse("es_ES.iso885915"), lang.to_posix
+
+ lang = Locale::Tag.parse("ja_JP.UTF-8")
+ assert_equal Locale::Tag::Posix, lang.class
+ assert_equal "ja", lang.language
+ assert_equal "JP", lang.region
+ assert_equal "UTF-8", lang.charset
+
+ assert_equal [Locale::Tag::Posix.parse("ja_JP.UTF-8"),
+ Locale::Tag::Posix.parse("ja_JP.UTF-8"),
+ Locale::Tag::Posix.parse("ja_JP"),
+ Locale::Tag::Posix.parse("ja_JP"),
+ Locale::Tag::Posix.parse("ja.UTF-8"),
+ Locale::Tag::Posix.parse("ja.UTF-8"),
+ Locale::Tag::Posix.parse("ja"),
+ Locale::Tag::Posix.parse("ja"),
+ ], lang.candidates
+
+ assert_equal Locale::Tag::Simple.parse("ja_JP"), lang.to_simple
+ assert_equal Locale::Tag::Common.parse("ja_JP"), lang.to_common
+ assert_equal Locale::Tag::Rfc.parse("ja-JP"), lang.to_rfc
+ assert_equal Locale::Tag::Cldr.parse("ja_JP"), lang.to_cldr
+ assert_equal Locale::Tag::Posix.parse("ja_JP.UTF-8"), lang.to_posix
+ end
+
+ def test_posix_lang_modifier
+ lang = Locale::Tag.parse("es@euro")
+ assert_equal Locale::Tag::Posix, lang.class
+ assert_equal "es", lang.language
+ assert_equal nil, lang.region
+ assert_equal nil, lang.charset
+ assert_equal "euro", lang.modifier
+
+ assert_equal [Locale::Tag::Posix.parse("es@euro"),
+ Locale::Tag::Posix.parse("es"),
+ Locale::Tag::Posix.parse("es@euro"),
+ Locale::Tag::Posix.parse("es"),
+ Locale::Tag::Posix.parse("es@euro"),
+ Locale::Tag::Posix.parse("es"),
+ Locale::Tag::Posix.parse("es@euro"),
+ Locale::Tag::Posix.parse("es"),
+ ], lang.candidates
+
+ # A modifier is converted to a variant.
+ # If the modifier is less than 5 characters, it is not canonical value.
+ assert_equal Locale::Tag::Simple.parse("es"), lang.to_simple
+ assert_equal Locale::Tag::Common.new("es", nil, nil, ["euro"]), lang.to_common
+ assert_equal Locale::Tag::Rfc.new("es", nil, nil, ["euro"]), lang.to_rfc
+ assert_equal Locale::Tag::Cldr.new("es", nil, nil, ["euro"]), lang.to_cldr
+ assert_equal Locale::Tag::Posix.parse("es@euro"), lang.to_posix
+ end
+
+ def test_posix_lang_region_modifier
+ lang = Locale::Tag.parse("es_ES@euro")
+ assert_equal Locale::Tag::Posix, lang.class
+ assert_equal "es", lang.language
+ assert_equal "ES", lang.region
+ assert_equal nil, lang.charset
+ assert_equal "euro", lang.modifier
+
+ assert_equal [Locale::Tag::Posix.parse("es_ES@euro"),
+ Locale::Tag::Posix.parse("es_ES"),
+ Locale::Tag::Posix.parse("es_ES@euro"),
+ Locale::Tag::Posix.parse("es_ES"),
+ Locale::Tag::Posix.parse("es@euro"),
+ Locale::Tag::Posix.parse("es"),
+ Locale::Tag::Posix.parse("es@euro"),
+ Locale::Tag::Posix.parse("es"),
+ ], lang.candidates
+
+ assert_equal Locale::Tag::Simple.parse("es_ES"), lang.to_simple
+ assert_equal Locale::Tag::Common.new("es", nil, "ES", ["euro"]), lang.to_common
+ assert_equal Locale::Tag::Rfc.new("es", nil, "ES", ["euro"]), lang.to_rfc
+ assert_equal Locale::Tag::Cldr.new("es", nil, "ES", ["EURO"]), lang.to_cldr
+ assert_equal Locale::Tag::Posix.parse("es_ES@euro"), lang.to_posix
+
+ end
+
+ def test_posix_lang_region_charset_modifier
+ lang = Locale::Tag.parse("es_ES.iso885915@euro")
+ assert_equal Locale::Tag::Posix, lang.class
+ assert_equal "es", lang.language
+ assert_equal "ES", lang.region
+ assert_equal "iso885915", lang.charset
+ assert_equal "euro", lang.modifier
+
+ assert_equal [Locale::Tag::Posix.parse("es_ES.iso885915@euro"),
+ Locale::Tag::Posix.parse("es_ES.iso885915"),
+ Locale::Tag::Posix.parse("es_ES@euro"),
+ Locale::Tag::Posix.parse("es_ES"),
+ Locale::Tag::Posix.parse("es.iso885915@euro"),
+ Locale::Tag::Posix.parse("es.iso885915"),
+ Locale::Tag::Posix.parse("es@euro"),
+ Locale::Tag::Posix.parse("es"),
+ ], lang.candidates
+
+ assert_equal Locale::Tag::Simple.parse("es_ES"), lang.to_simple
+ assert_equal Locale::Tag::Common.new("es", nil, "ES", ["euro"]), lang.to_common
+ assert_equal Locale::Tag::Rfc.new("es", nil, "ES", ["euro"]), lang.to_rfc
+ assert_equal Locale::Tag::Cldr.new("es", nil, "ES", ["EURO"]), lang.to_cldr
+ assert_equal Locale::Tag::Posix.parse("es_ES.iso885915@euro"), lang.to_posix
+
+ end
+
+ def test_posix_writer
+ lang = Locale::Tag.parse("es_ES.iso885915@euro")
+ lang.language = "ja"
+ assert_equal "ja_ES.iso885915@euro", lang.to_s
+ lang.region = "JP"
+ assert_equal "ja_JP.iso885915@euro", lang.to_s
+ lang.charset = "EUC-JP"
+ assert_equal "ja_JP.EUC-JP@euro", lang.to_s
+ lang.modifier = "osaka"
+ assert_equal "ja_JP.EUC-JP@osaka", lang.to_s
+ assert_equal [Locale::Tag::Posix.parse("ja_JP.EUC-JP@osaka"),
+ Locale::Tag::Posix.parse("ja_JP.EUC-JP"),
+ Locale::Tag::Posix.parse("ja_JP@osaka"),
+ Locale::Tag::Posix.parse("ja_JP"),
+ Locale::Tag::Posix.parse("ja.EUC-JP@osaka"),
+ Locale::Tag::Posix.parse("ja.EUC-JP"),
+ Locale::Tag::Posix.parse("ja@osaka"),
+ Locale::Tag::Posix.parse("ja"),
+ ], lang.candidates
+ end
+
+ def test_invaild
+ lang = Locale::Tag.parse("")
+ assert_equal Locale::Tag::Irregular, lang.class
+ assert_equal "en", lang.language
+ assert_equal nil, lang.region
+
+ assert_equal [Locale::Tag::Irregular.new("en"),
+ ], lang.candidates
+
+ assert_equal Locale::Tag::Simple.parse("en"), lang.to_simple
+ assert_equal Locale::Tag::Common.parse("en"), lang.to_common
+ assert_equal Locale::Tag::Rfc.parse("en"), lang.to_rfc
+ assert_equal Locale::Tag::Cldr.parse("en"), lang.to_cldr
+ assert_equal Locale::Tag::Posix.parse("en"), lang.to_posix
+
+ lang = Locale::Tag.parse(nil)
+ assert_equal Locale::Tag::Irregular, lang.class
+ assert_equal "en", lang.language
+ assert_equal nil, lang.region
+
+ assert_equal [Locale::Tag::Irregular.new("en"),
+ ], lang.candidates
+
+ assert_equal Locale::Tag::Simple.parse("en"), lang.to_simple
+ assert_equal Locale::Tag::Common.parse("en"), lang.to_common
+ assert_equal Locale::Tag::Rfc.parse("en"), lang.to_rfc
+ assert_equal Locale::Tag::Cldr.parse("en"), lang.to_cldr
+ assert_equal Locale::Tag::Posix.parse("en"), lang.to_posix
+ end
+
+ def test_raise_error
+ assert_raise(RuntimeError){
+ Locale::Tag::Simple.new(nil)
+ }
+ end
+
+end
diff --git a/vendor/gems/locale-2.0.5/test/test_taglist.rb b/vendor/gems/locale-2.0.5/test/test_taglist.rb
new file mode 100644
index 000000000..5a426a7d3
--- /dev/null
+++ b/vendor/gems/locale-2.0.5/test/test_taglist.rb
@@ -0,0 +1,34 @@
+# encoding: UTF-8
+
+require 'locale/tag'
+require 'locale/taglist'
+require 'test/unit'
+
+class TestTagList < Test::Unit::TestCase
+ def test_taglist_posix
+ list = Locale::TagList.new([Locale::Tag.parse("ja_JP.eucJP@mobile"),
+ Locale::Tag.parse("en_US.iso8859-1")])
+
+ assert_equal "ja", list.language
+ assert_equal "JP", list.region
+ assert_equal "eucJP", list.charset
+ assert_equal "mobile", list.modifier
+ assert_equal "ja_JP.eucJP@mobile", list.to_s
+ assert_equal Locale::Tag::Common.parse("ja_JP_mobile"), list.to_common
+ assert_equal Locale::Tag::Rfc.parse("ja-JP-mobile"), list.to_rfc
+ assert_equal Locale::Tag::Cldr.parse("ja_JP_mobile"), list.to_cldr
+ assert_equal Locale::Tag::Posix.parse("ja_JP.eucJP@mobile"), list.to_posix
+ assert_equal Locale::Tag::Posix.parse("en_US.iso8859-1"), list[1]
+ end
+
+ def test_taglist_rfc
+ list = Locale::TagList.new([Locale::Tag.parse("ja-Hira-JP-MOBILE-y-aaa-x-bbb"),
+ Locale::Tag.parse("en-US-mobile")])
+ assert_equal "ja", list.language
+ assert_equal "Hira", list.script
+ assert_equal "JP", list.region
+ assert_equal ["MOBILE"], list.variants
+ assert_equal ["y-aaa"], list.extensions
+ assert_equal "x-bbb", list.privateuse
+ end
+end
diff --git a/vendor/gems/locale-2.0.5/test/test_thread.rb b/vendor/gems/locale-2.0.5/test/test_thread.rb
new file mode 100644
index 000000000..43dba513e
--- /dev/null
+++ b/vendor/gems/locale-2.0.5/test/test_thread.rb
@@ -0,0 +1,37 @@
+require 'locale'
+require 'thread'
+require 'test/unit'
+
+class TestThread < Test::Unit::TestCase
+
+ def setup
+ Locale.init(:driver => :env)
+ @mutex = Mutex.new
+ end
+
+ def invoke_thread(tag, sleep_time)
+ Thread.start do
+ @mutex.synchronize {
+ ENV["LC_ALL"] = tag
+ Locale.current
+ }
+ (1..10).each do |v|
+# puts "#{tag}: locale = #{Locale.current}"
+ assert_equal tag, Locale.current.to_posix.to_s
+ print "."
+ $stdout.flush
+ sleep sleep_time
+ end
+ Locale.clear # Clear this thread only.
+ end
+ end
+
+ def test_thread
+ th1 = invoke_thread("ja_JP.eucJP", 0.3)
+ th2 = invoke_thread("zh_CN.UTF-8", 0.2)
+ th3 = invoke_thread("en", 0.1)
+ th1.join
+ th2.join
+ th3.join
+ end
+end
diff --git a/vendor/plugins/acts_as_xapian/lib/acts_as_xapian.rb b/vendor/plugins/acts_as_xapian/lib/acts_as_xapian.rb
index 047321562..d8f0adaa3 100644
--- a/vendor/plugins/acts_as_xapian/lib/acts_as_xapian.rb
+++ b/vendor/plugins/acts_as_xapian/lib/acts_as_xapian.rb
@@ -668,9 +668,34 @@ module ActsAsXapian
self.class.to_s + "-" + self.id.to_s
end
- # Extract value of a field from the model
def xapian_value(field, type = nil)
- value = self[field] || self.send(field.to_sym)
+ if self.respond_to?("translations")
+ if type == :date or type == :boolean
+ value = single_xapian_value(field, type = type)
+ else
+ values = []
+ for locale in self.translations.map{|x| x.locale}
+ self.class.with_locale(locale) do
+ values << single_xapian_value(field, type=type)
+ end
+ end
+ if values[0].kind_of?(Array)
+ values = values.flatten
+ value = values.reject{|x| x.nil?}
+ else
+ values = values.reject{|x| x.nil?}
+ value = values.join(" ")
+ end
+ end
+ else
+ value = single_xapian_value(field, type = type)
+ end
+ return value
+ end
+
+ # Extract value of a field from the model
+ def single_xapian_value(field, type = nil)
+ value = self.send(field.to_sym) || self[field]
if type == :date
if value.kind_of?(Time)
value.utc.strftime("%Y%m%d")
diff --git a/vendor/plugins/gettext_i18n_rails/lib/gettext_i18n_rails/i18n_hacks.rb b/vendor/plugins/gettext_i18n_rails/lib/gettext_i18n_rails/i18n_hacks.rb
index 3a8ee6f65..22e1b9a77 100644
--- a/vendor/plugins/gettext_i18n_rails/lib/gettext_i18n_rails/i18n_hacks.rb
+++ b/vendor/plugins/gettext_i18n_rails/lib/gettext_i18n_rails/i18n_hacks.rb
@@ -35,4 +35,6 @@ module I18n
self.locale = current_locale if tmp_locale
end
end
-end \ No newline at end of file
+
+end
+
diff --git a/vendor/plugins/gettext_i18n_rails/lib/gettext_i18n_rails/tasks.rb b/vendor/plugins/gettext_i18n_rails/lib/gettext_i18n_rails/tasks.rb
index b52157a2f..39fa4d959 100644
--- a/vendor/plugins/gettext_i18n_rails/lib/gettext_i18n_rails/tasks.rb
+++ b/vendor/plugins/gettext_i18n_rails/lib/gettext_i18n_rails/tasks.rb
@@ -61,7 +61,7 @@ namespace :gettext do
# require 'gettext_activerecord/parser'
desc "write the model attributes to <locale_path>/model_attributes.rb"
task :store_model_attributes => :environment do
- FastGettext.silence_errors
+ #FastGettext.silence_errors
require 'gettext_i18n_rails/model_attributes_finder'
require 'gettext_i18n_rails/active_record'
diff --git a/vendor/plugins/globalize2/LICENSE b/vendor/plugins/globalize2/LICENSE
new file mode 100644
index 000000000..94a6b8160
--- /dev/null
+++ b/vendor/plugins/globalize2/LICENSE
@@ -0,0 +1,21 @@
+The MIT License
+
+Copyright (c) 2008, 2009 Joshua Harvey
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE. \ No newline at end of file
diff --git a/vendor/plugins/globalize2/README.textile b/vendor/plugins/globalize2/README.textile
new file mode 100644
index 000000000..e47e9bf37
--- /dev/null
+++ b/vendor/plugins/globalize2/README.textile
@@ -0,0 +1,86 @@
+h1. Globalize2
+
+Globalize2 is the successor of Globalize for Rails.
+
+It is compatible with and builds on the new "I18n api in Ruby on Rails":http://guides.rubyonrails.org/i18n.html. and adds model translations to ActiveRecord.
+
+Globalize2 is much more lightweight and compatible than its predecessor was. Model translations in Globalize2 use default ActiveRecord features and do not limit any ActiveRecord functionality any more.
+
+h2. Requirements
+
+ActiveRecord
+I18n
+
+(or Rails > 2.2)
+
+h2. Installation
+
+To install Globalize2 with its default setup just use:
+
+<pre><code>
+script/plugin install git://github.com/joshmh/globalize2.git
+</code></pre>
+
+h2. Model translations
+
+Model translations allow you to translate your models' attribute values. E.g.
+
+<pre><code>
+class Post < ActiveRecord::Base
+ translates :title, :text
+end
+</code></pre>
+
+Allows you to values for the attributes :title and :text per locale:
+
+<pre><code>
+I18n.locale = :en
+post.title # => Globalize2 rocks!
+
+I18n.locale = :he
+post.title # => גלובאלייז2 שולט!
+</code></pre>
+
+In order to make this work, you'll need to add the appropriate translation tables. Globalize2 comes with a handy helper method to help you do this. It's called @create_translation_table!@. Here's an example:
+
+<pre><code>
+class CreatePosts < ActiveRecord::Migration
+ def self.up
+ create_table :posts do |t|
+ t.timestamps
+ end
+ Post.create_translation_table! :title => :string, :text => :text
+ end
+ def self.down
+ drop_table :posts
+ Post.drop_translation_table!
+ end
+end
+</code></pre>
+
+Note that the ActiveRecord model @Post@ must already exist and have a @translates@ directive listing the translated fields.
+
+h2. Migration from Globalize
+
+See this script by Tomasz Stachewicz: http://gist.github.com/120867
+
+h2. Changes since Globalize2 v0.1.0
+
+* The association globalize_translations has been renamed to translations.
+
+h2. Alternative Solutions
+
+* "Veger's fork":http://github.com/veger/globalize2 - uses default AR schema for the default locale, delegates to the translations table for other locales only
+* "TranslatableColumns":http://github.com/iain/translatable_columns - have multiple languages of the same attribute in a model (Iain Hecker)
+* "localized_record":http://github.com/glennpow/localized_record - allows records to have localized attributes without any modifications to the database (Glenn Powell)
+* "model_translations":http://github.com/janne/model_translations - Minimal implementation of Globalize2 style model translations (Jan Andersson)
+
+h2. Related solutions
+
+* "globalize2_versioning":http://github.com/joshmh/globalize2_versioning - acts_as_versioned style versioning for Globalize2 (Joshua Harvey)
+* "i18n_multi_locales_validations":http://github.com/ZenCocoon/i18n_multi_locales_validations - multi-locales attributes validations to validates attributes from Globalize2 translations models (Sébastien Grosjean)
+* "Globalize2 Demo App":http://github.com/svenfuchs/globalize2-demo - demo application for Globalize2 (Sven Fuchs)</li>
+* "migrate_from_globalize1":http://gist.github.com/120867 - migrate model translations from Globalize1 to Globalize2 (Tomasz Stachewicz)</li>
+* "easy_globalize2_accessors":http://github.com/astropanic/easy_globalize2_accessors - easily access (read and write) globalize2-translated fields (astropanic, Tomasz Stachewicz)</li>
+* "globalize2-easy-translate":http://github.com/bsamman/globalize2-easy-translate - adds methods to easily access or set translated attributes to your model (bsamman)</li>
+* "batch_translations":http://github.com/alvarezrilla/batch_translations - allow saving multiple Globalize2 translations in the same request (Jose Alvarez Rilla)</li>
diff --git a/vendor/plugins/globalize2/Rakefile b/vendor/plugins/globalize2/Rakefile
new file mode 100644
index 000000000..bc35dada4
--- /dev/null
+++ b/vendor/plugins/globalize2/Rakefile
@@ -0,0 +1,39 @@
+require 'rake'
+require 'rake/testtask'
+require 'rake/rdoctask'
+
+desc 'Default: run unit tests.'
+task :default => :test
+
+desc 'Test the globalize2 plugin.'
+Rake::TestTask.new(:test) do |t|
+ t.libs << 'lib'
+ t.pattern = 'test/**/*_test.rb'
+ t.verbose = true
+end
+
+desc 'Generate documentation for the globalize2 plugin.'
+Rake::RDocTask.new(:rdoc) do |rdoc|
+ rdoc.rdoc_dir = 'rdoc'
+ rdoc.title = 'Globalize2'
+ rdoc.options << '--line-numbers' << '--inline-source'
+ rdoc.rdoc_files.include('README')
+ rdoc.rdoc_files.include('lib/**/*.rb')
+end
+
+begin
+ require 'jeweler'
+ Jeweler::Tasks.new do |s|
+ s.name = "globalize2"
+ s.summary = "Rails I18n: de-facto standard library for ActiveRecord data translation"
+ s.description = "Rails I18n: de-facto standard library for ActiveRecord data translation"
+ s.email = "joshmh@gmail.com"
+ s.homepage = "http://github.com/joshmh/globalize2"
+ # s.rubyforge_project = ''
+ s.authors = ["Sven Fuchs, Joshua Harvey, Clemens Kofler, John-Paul Bader"]
+ # s.add_development_dependency ''
+ end
+ Jeweler::GemcutterTasks.new
+rescue LoadError
+ puts "Jeweler not available. Install it with: sudo gem install technicalpickles-jeweler -s http://gems.github.com"
+end
diff --git a/vendor/plugins/globalize2/VERSION b/vendor/plugins/globalize2/VERSION
new file mode 100644
index 000000000..0c62199f1
--- /dev/null
+++ b/vendor/plugins/globalize2/VERSION
@@ -0,0 +1 @@
+0.2.1
diff --git a/vendor/plugins/globalize2/generators/db_backend.rb b/vendor/plugins/globalize2/generators/db_backend.rb
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/vendor/plugins/globalize2/generators/db_backend.rb
diff --git a/vendor/plugins/globalize2/generators/templates/db_backend_migration.rb b/vendor/plugins/globalize2/generators/templates/db_backend_migration.rb
new file mode 100644
index 000000000..0f0261113
--- /dev/null
+++ b/vendor/plugins/globalize2/generators/templates/db_backend_migration.rb
@@ -0,0 +1,25 @@
+class ActsAsTaggableMigration < ActiveRecord::Migration
+ def self.up
+ create_table :globalize_translations do |t|
+ t.string :locale, :null => false
+ t.string :key, :null => false
+ t.string :translation
+ t.timestamps
+ end
+
+# TODO: FINISH DOING MIGRATION -- stopped in the middle
+
+ create_table :globalize_translations_map do |t|
+ t.string :key, :null => false
+ t.integer :translation_id, :null => false
+ end
+
+ add_index :taggings, :tag_id
+ add_index :taggings, [:taggable_id, :taggable_type]
+ end
+
+ def self.down
+ drop_table :globalize_translations
+ drop_table :tags
+ end
+end
diff --git a/vendor/plugins/globalize2/globalize2.gemspec b/vendor/plugins/globalize2/globalize2.gemspec
new file mode 100644
index 000000000..89021115e
--- /dev/null
+++ b/vendor/plugins/globalize2/globalize2.gemspec
@@ -0,0 +1,81 @@
+# Generated by jeweler
+# DO NOT EDIT THIS FILE DIRECTLY
+# Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
+# -*- encoding: utf-8 -*-
+
+Gem::Specification.new do |s|
+ s.name = %q{globalize2}
+ s.version = "0.2.0"
+
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
+ s.authors = ["Sven Fuchs, Joshua Harvey, Clemens Kofler, John-Paul Bader"]
+ s.date = %q{2010-04-22}
+ s.description = %q{Rails I18n: de-facto standard library for ActiveRecord data translation}
+ s.email = %q{joshmh@gmail.com}
+ s.extra_rdoc_files = [
+ "LICENSE",
+ "README.textile"
+ ]
+ s.files = [
+ ".gitignore",
+ "LICENSE",
+ "README.textile",
+ "Rakefile",
+ "VERSION",
+ "generators/db_backend.rb",
+ "generators/templates/db_backend_migration.rb",
+ "globalize2.gemspec",
+ "init.rb",
+ "lib/globalize.rb",
+ "lib/globalize/active_record.rb",
+ "lib/globalize/active_record/adapter.rb",
+ "lib/globalize/active_record/attributes.rb",
+ "lib/globalize/active_record/migration.rb",
+ "lib/i18n/missing_translations_log_handler.rb",
+ "lib/i18n/missing_translations_raise_handler.rb",
+ "test/active_record/fallbacks_test.rb",
+ "test/active_record/migration_test.rb",
+ "test/active_record/sti_translated_test.rb",
+ "test/active_record/translates_test.rb",
+ "test/active_record/translation_class_test.rb",
+ "test/active_record/validation_tests.rb",
+ "test/active_record_test.rb",
+ "test/all.rb",
+ "test/data/models.rb",
+ "test/data/no_globalize_schema.rb",
+ "test/data/schema.rb",
+ "test/i18n/missing_translations_test.rb",
+ "test/test_helper.rb"
+ ]
+ s.homepage = %q{http://github.com/joshmh/globalize2}
+ s.rdoc_options = ["--charset=UTF-8"]
+ s.require_paths = ["lib"]
+ s.rubygems_version = %q{1.3.6}
+ s.summary = %q{Rails I18n: de-facto standard library for ActiveRecord data translation}
+ s.test_files = [
+ "test/active_record/fallbacks_test.rb",
+ "test/active_record/migration_test.rb",
+ "test/active_record/sti_translated_test.rb",
+ "test/active_record/translates_test.rb",
+ "test/active_record/translation_class_test.rb",
+ "test/active_record/validation_tests.rb",
+ "test/active_record_test.rb",
+ "test/all.rb",
+ "test/data/models.rb",
+ "test/data/no_globalize_schema.rb",
+ "test/data/schema.rb",
+ "test/i18n/missing_translations_test.rb",
+ "test/test_helper.rb"
+ ]
+
+ if s.respond_to? :specification_version then
+ current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
+ s.specification_version = 3
+
+ if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
+ else
+ end
+ else
+ end
+end
+
diff --git a/vendor/plugins/globalize2/init.rb b/vendor/plugins/globalize2/init.rb
new file mode 100644
index 000000000..a4089251b
--- /dev/null
+++ b/vendor/plugins/globalize2/init.rb
@@ -0,0 +1 @@
+require 'globalize'
diff --git a/vendor/plugins/globalize2/lib/globalize.rb b/vendor/plugins/globalize2/lib/globalize.rb
new file mode 100644
index 000000000..67c1878ec
--- /dev/null
+++ b/vendor/plugins/globalize2/lib/globalize.rb
@@ -0,0 +1,15 @@
+module Globalize
+ autoload :ActiveRecord, 'globalize/active_record'
+
+ class << self
+ def fallbacks?
+ I18n.respond_to?(:fallbacks)
+ end
+
+ def fallbacks(locale)
+ fallbacks? ? I18n.fallbacks[locale] : [locale.to_sym]
+ end
+ end
+end
+
+ActiveRecord::Base.send(:include, Globalize::ActiveRecord)
diff --git a/vendor/plugins/globalize2/lib/globalize/active_record.rb b/vendor/plugins/globalize2/lib/globalize/active_record.rb
new file mode 100644
index 000000000..ce1c50d23
--- /dev/null
+++ b/vendor/plugins/globalize2/lib/globalize/active_record.rb
@@ -0,0 +1,232 @@
+module Globalize
+ class MigrationError < StandardError; end
+ class MigrationMissingTranslatedField < MigrationError; end
+ class BadMigrationFieldType < MigrationError; end
+
+ module ActiveRecord
+ autoload :Adapter, 'globalize/active_record/adapter'
+ autoload :Attributes, 'globalize/active_record/attributes'
+ autoload :Migration, 'globalize/active_record/migration'
+
+ def self.included(base)
+ base.extend ActMacro
+ end
+
+ class << self
+ def build_translation_class(target, options)
+ options[:table_name] ||= "#{target.table_name.singularize}_translations"
+
+ klass = target.const_defined?(:Translation) ?
+ target.const_get(:Translation) :
+ target.const_set(:Translation, Class.new(::ActiveRecord::Base))
+
+ klass.class_eval do
+ set_table_name(options[:table_name])
+ belongs_to target.name.underscore.gsub('/', '_')
+ def locale; read_attribute(:locale).to_sym; end
+ def locale=(locale); write_attribute(:locale, locale.to_s); end
+ end
+
+ klass
+ end
+ end
+
+ module ActMacro
+ def locale
+ (defined?(@@locale) && @@locale)
+ end
+
+ def locale=(locale)
+ @@locale = locale
+ end
+
+ def translates(*attr_names)
+ return if translates?
+ options = attr_names.extract_options!
+
+ class_inheritable_accessor :translation_class, :translated_attribute_names
+ class_inheritable_writer :required_attributes
+ self.translation_class = ActiveRecord.build_translation_class(self, options)
+ self.translated_attribute_names = attr_names.map(&:to_sym)
+
+ include InstanceMethods
+ extend ClassMethods, Migration
+
+ after_save :save_translations!
+ has_many :translations, :class_name => translation_class.name,
+ :foreign_key => class_name.foreign_key,
+ :dependent => :delete_all,
+ :extend => HasManyExtensions
+
+ named_scope :with_translations, lambda { |locale|
+ conditions = required_attributes.map do |attribute|
+ "#{quoted_translation_table_name}.#{attribute} IS NOT NULL"
+ end
+ conditions << "#{quoted_translation_table_name}.locale = ?"
+ { :include => :translations, :conditions => [conditions.join(' AND '), locale] }
+ }
+
+ attr_names.each { |attr_name| translated_attr_accessor(attr_name) }
+ end
+
+ def translates?
+ included_modules.include?(InstanceMethods)
+ end
+ end
+
+ module HasManyExtensions
+ def by_locale(locale)
+ first(:conditions => { :locale => locale.to_s })
+ end
+
+ def by_locales(locales)
+ all(:conditions => { :locale => locales.map(&:to_s) })
+ end
+ end
+
+ module ClassMethods
+ delegate :set_translation_table_name, :to => :translation_class
+
+ def with_locale(locale)
+ begin
+ previous_locale, self.locale = self.locale, locale
+ result = yield
+ ensure
+ self.locale = previous_locale
+ end
+ result
+ end
+
+ def translation_table_name
+ translation_class.table_name
+ end
+
+ def quoted_translation_table_name
+ translation_class.quoted_table_name
+ end
+
+ def required_attributes
+ @required_attributes ||= reflect_on_all_validations.select do |validation|
+ validation.macro == :validates_presence_of && translated_attribute_names.include?(validation.name)
+ end.map(&:name)
+ end
+
+ def respond_to?(method, *args, &block)
+ method.to_s =~ /^find_by_(\w+)$/ && translated_attribute_names.include?($1.to_sym) || super
+ end
+
+ def method_missing(method, *args)
+ if method.to_s =~ /^find_by_(\w+)$/ && translated_attribute_names.include?($1.to_sym)
+ find_first_by_translated_attr_and_locales($1, args.first)
+ elsif method.to_s =~ /^find_all_by_(\w+)$/ && translated_attribute_names.include?($1.to_sym)
+ find_all_by_translated_attr_and_locales($1, args.first)
+ else
+ super
+ end
+ end
+
+ protected
+
+ def find_first_by_translated_attr_and_locales(name, value)
+ query = "#{translated_attr_name(name)} = ? AND #{translated_attr_name('locale')} IN (?)"
+ locales = Globalize.fallbacks(locale || I18n.locale).map(&:to_s)
+ find(
+ :first,
+ :joins => :translations,
+ :conditions => [query, value, locales],
+ :readonly => false
+ )
+ end
+
+ def find_all_by_translated_attr_and_locales(name, value)
+ query = "#{translated_attr_name(name)} = ? AND #{translated_attr_name('locale')} IN (?)"
+ locales = Globalize.fallbacks(locale || I18n.locale).map(&:to_s)
+ find(
+ :all,
+ :joins => :translations,
+ :conditions => [query, value, locales],
+ :readonly => false
+ )
+ end
+
+ def translated_attr_accessor(name)
+ define_method "#{name}=", lambda { |value|
+ globalize.write(self.class.locale || I18n.locale, name, value)
+ self[name] = value
+ }
+ define_method name, lambda { |*args|
+ globalize.fetch(args.first || self.class.locale || I18n.locale, name)
+ }
+ alias_method "#{name}_before_type_cast", name
+ end
+
+ def translated_attr_name(name)
+ "#{translation_class.table_name}.#{name}"
+ end
+ end
+
+ module InstanceMethods
+ def globalize
+ @globalize ||= Adapter.new self
+ end
+
+ def attributes
+ self.attribute_names.inject({}) do |attrs, name|
+ attrs[name] = read_attribute(name) ||
+ (globalize.fetch(I18n.locale, name) rescue nil)
+ attrs
+ end
+ end
+
+ def attributes=(attributes, *args)
+ if attributes.respond_to?(:delete) && locale = attributes.delete(:locale)
+ self.class.with_locale(locale) { super }
+ else
+ super
+ end
+ end
+
+ def attribute_names
+ translated_attribute_names.map(&:to_s) + super
+ end
+
+ def available_locales
+ translations.scoped(:select => 'DISTINCT locale').map(&:locale)
+ end
+
+ def translated_locales
+ translations.map(&:locale)
+ end
+
+ def translated_attributes
+ translated_attribute_names.inject({}) do |attributes, name|
+ attributes.merge(name => send(name))
+ end
+ end
+
+ def set_translations(options)
+ options.keys.each do |locale|
+ translation = translations.find_by_locale(locale.to_s) ||
+ translations.build(:locale => locale.to_s)
+ translation.update_attributes!(options[locale])
+ end
+ end
+
+ def reload(options = nil)
+ translated_attribute_names.each { |name| @attributes.delete(name.to_s) }
+ globalize.reset
+ super(options)
+ end
+
+ protected
+
+ def save_translations!
+ globalize.save_translations!
+ end
+ end
+ end
+end
+
+def globalize_write(name, value)
+ globalize.write(self.class.locale || I18n.locale, name, value)
+end
diff --git a/vendor/plugins/globalize2/lib/globalize/active_record/adapter.rb b/vendor/plugins/globalize2/lib/globalize/active_record/adapter.rb
new file mode 100644
index 000000000..12f89ec01
--- /dev/null
+++ b/vendor/plugins/globalize2/lib/globalize/active_record/adapter.rb
@@ -0,0 +1,80 @@
+module Globalize
+ module ActiveRecord
+ class Adapter
+ # The cache caches attributes that already were looked up for read access.
+ # The stash keeps track of new or changed values that need to be saved.
+ attr_reader :record, :cache, :stash
+
+ def initialize(record)
+ @record = record
+ @cache = Attributes.new
+ @stash = Attributes.new
+ end
+
+ def fetch(locale, attr_name)
+ cache.contains?(locale, attr_name) ?
+ cache.read(locale, attr_name) :
+ cache.write(locale, attr_name, fetch_attribute(locale, attr_name))
+ end
+
+ def write(locale, attr_name, value)
+ stash.write(locale, attr_name, value)
+ cache.write(locale, attr_name, value)
+ end
+
+ def save_translations!
+ stash.each do |locale, attrs|
+ translation = record.translations.find_or_initialize_by_locale(locale.to_s)
+ attrs.each { |attr_name, value| translation[attr_name] = value }
+ translation.save!
+ end
+ stash.clear
+ end
+
+ def reset
+ cache.clear
+ # stash.clear
+ end
+
+ protected
+
+ def fetch_translation(locale)
+ locale = locale.to_sym
+ record.translations.loaded? ? record.translations.detect { |t| t.locale == locale } :
+ record.translations.by_locale(locale)
+ end
+
+ def fetch_translations(locale)
+ # only query if not already included with :include => translations
+ record.translations.loaded? ? record.translations :
+ record.translations.by_locales(Globalize.fallbacks(locale))
+ end
+
+ def fetch_attribute(locale, attr_name)
+ translations = fetch_translations(locale)
+ value, requested_locale = nil, locale
+
+ Globalize.fallbacks(locale).each do |fallback|
+ translation = translations.detect { |t| t.locale == fallback }
+ value = translation && translation.send(attr_name)
+ locale = fallback && break if value
+ end
+
+ set_metadata(value, :locale => locale, :requested_locale => requested_locale)
+ value
+ end
+
+ def set_metadata(object, metadata)
+ if object.respond_to?(:translation_metadata)
+ object.translation_metadata.merge!(meta_data)
+ end
+ end
+
+ def translation_metadata_accessor(object)
+ return if obj.respond_to?(:translation_metadata)
+ class << object; attr_accessor :translation_metadata end
+ object.translation_metadata ||= {}
+ end
+ end
+ end
+end
diff --git a/vendor/plugins/globalize2/lib/globalize/active_record/attributes.rb b/vendor/plugins/globalize2/lib/globalize/active_record/attributes.rb
new file mode 100644
index 000000000..7bd923ce2
--- /dev/null
+++ b/vendor/plugins/globalize2/lib/globalize/active_record/attributes.rb
@@ -0,0 +1,25 @@
+# Helper class for storing values per locale. Used by Globalize::Adapter
+# to stash and cache attribute values.
+module Globalize
+ module ActiveRecord
+ class Attributes < Hash
+ def [](locale)
+ locale = locale.to_sym
+ self[locale] = {} unless has_key?(locale)
+ self.fetch(locale)
+ end
+
+ def contains?(locale, attr_name)
+ self[locale].has_key?(attr_name)
+ end
+
+ def read(locale, attr_name)
+ self[locale][attr_name]
+ end
+
+ def write(locale, attr_name, value)
+ self[locale][attr_name] = value
+ end
+ end
+ end
+end
diff --git a/vendor/plugins/globalize2/lib/globalize/active_record/migration.rb b/vendor/plugins/globalize2/lib/globalize/active_record/migration.rb
new file mode 100644
index 000000000..fa63aed8c
--- /dev/null
+++ b/vendor/plugins/globalize2/lib/globalize/active_record/migration.rb
@@ -0,0 +1,44 @@
+module Globalize
+ module ActiveRecord
+ module Migration
+ def create_translation_table!(fields)
+ translated_attribute_names.each do |f|
+ raise MigrationMissingTranslatedField, "Missing translated field #{f}" unless fields[f]
+ end
+
+ fields.each do |name, type|
+ if translated_attribute_names.include?(name) && ![:string, :text].include?(type)
+ raise BadMigrationFieldType, "Bad field type for #{name}, should be :string or :text"
+ end
+ end
+
+ self.connection.create_table(translation_table_name) do |t|
+ t.references table_name.sub(/^#{table_name_prefix}/, "").singularize
+ t.string :locale
+ fields.each do |name, type|
+ t.column name, type
+ end
+ t.timestamps
+ end
+
+ self.connection.add_index(
+ translation_table_name,
+ "#{table_name.sub(/^#{table_name_prefix}/, "").singularize}_id",
+ :name => translation_index_name
+ )
+ end
+
+ def translation_index_name
+ require 'digest/sha1'
+ # FIXME what's the max size of an index name?
+ index_name = "index_#{translation_table_name}_on_#{self.table_name.singularize}_id"
+ index_name.size < 50 ? index_name : "index_#{Digest::SHA1.hexdigest(index_name)}"
+ end
+
+ def drop_translation_table!
+ self.connection.remove_index(translation_table_name, :name => translation_index_name) rescue nil
+ self.connection.drop_table(translation_table_name)
+ end
+ end
+ end
+end
diff --git a/vendor/plugins/globalize2/lib/i18n/missing_translations_log_handler.rb b/vendor/plugins/globalize2/lib/i18n/missing_translations_log_handler.rb
new file mode 100644
index 000000000..24c10890a
--- /dev/null
+++ b/vendor/plugins/globalize2/lib/i18n/missing_translations_log_handler.rb
@@ -0,0 +1,41 @@
+# A simple exception handler that behaves like the default exception handler
+# but additionally logs missing translations to a given log.
+#
+# Useful for identifying missing translations during testing.
+#
+# E.g.
+#
+# require 'globalize/i18n/missing_translations_log_handler'
+# I18n.missing_translations_logger = RAILS_DEFAULT_LOGGER
+# I18n.exception_handler = :missing_translations_log_handler
+#
+# To set up a different log file:
+#
+# logger = Logger.new("#{RAILS_ROOT}/log/missing_translations.log")
+# I18n.missing_translations_logger = logger
+
+module I18n
+ @@missing_translations_logger = nil
+
+ class << self
+ def missing_translations_logger
+ @@missing_translations_logger ||= begin
+ require 'logger' unless defined?(Logger)
+ Logger.new(STDOUT)
+ end
+ end
+
+ def missing_translations_logger=(logger)
+ @@missing_translations_logger = logger
+ end
+
+ def missing_translations_log_handler(exception, locale, key, options)
+ if MissingTranslationData === exception
+ missing_translations_logger.warn(exception.message)
+ return exception.message
+ else
+ raise exception
+ end
+ end
+ end
+end
diff --git a/vendor/plugins/globalize2/lib/i18n/missing_translations_raise_handler.rb b/vendor/plugins/globalize2/lib/i18n/missing_translations_raise_handler.rb
new file mode 100644
index 000000000..18237b151
--- /dev/null
+++ b/vendor/plugins/globalize2/lib/i18n/missing_translations_raise_handler.rb
@@ -0,0 +1,25 @@
+# A simple exception handler that behaves like the default exception handler
+# but also raises on missing translations.
+#
+# Useful for identifying missing translations during testing.
+#
+# E.g.
+#
+# require 'globalize/i18n/missing_translations_raise_handler'
+# I18n.exception_handler = :missing_translations_raise_handler
+module I18n
+ class << self
+ def missing_translations_raise_handler(exception, locale, key, options)
+ raise exception
+ end
+ end
+end
+
+I18n.exception_handler = :missing_translations_raise_handler
+
+ActionView::Helpers::TranslationHelper.module_eval do
+ def translate(key, options = {})
+ I18n.translate(key, options)
+ end
+ alias :t :translate
+end
diff --git a/vendor/plugins/globalize2/test/active_record/fallbacks_test.rb b/vendor/plugins/globalize2/test/active_record/fallbacks_test.rb
new file mode 100644
index 000000000..449ec8b2b
--- /dev/null
+++ b/vendor/plugins/globalize2/test/active_record/fallbacks_test.rb
@@ -0,0 +1,102 @@
+require File.expand_path(File.dirname(__FILE__) + '/../test_helper')
+require File.expand_path(File.dirname(__FILE__) + '/../data/models')
+
+if I18n.respond_to?(:fallbacks)
+ class TranslatedTest < ActiveSupport::TestCase
+ def setup
+ I18n.locale = :'en-US'
+ I18n.fallbacks.clear
+ reset_db!
+ ActiveRecord::Base.locale = nil
+ end
+
+ def teardown
+ I18n.fallbacks.clear
+ end
+
+ test "keeping one field in new locale when other field is changed" do
+ I18n.fallbacks.map 'de-DE' => [ 'en-US' ]
+ post = Post.create :subject => 'foo'
+ I18n.locale = 'de-DE'
+ post.content = 'bar'
+ assert_equal 'foo', post.subject
+ end
+
+ test "modifying non-required field in a new locale" do
+ I18n.fallbacks.map 'de-DE' => [ 'en-US' ]
+ post = Post.create :subject => 'foo'
+ I18n.locale = 'de-DE'
+ post.content = 'bar'
+ assert post.save
+ end
+
+ test "resolves a simple fallback" do
+ I18n.locale = 'de-DE'
+ post = Post.create :subject => 'foo'
+ I18n.locale = 'de'
+ post.subject = 'baz'
+ post.content = 'bar'
+ post.save
+ I18n.locale = 'de-DE'
+ assert_equal 'foo', post.subject
+ assert_equal 'bar', post.content
+ end
+
+ test "resolves a simple fallback without reloading" do
+ I18n.locale = 'de-DE'
+ post = Post.new :subject => 'foo'
+ I18n.locale = 'de'
+ post.subject = 'baz'
+ post.content = 'bar'
+ I18n.locale = 'de-DE'
+ assert_equal 'foo', post.subject
+ assert_equal 'bar', post.content
+ end
+
+ test "resolves a complex fallback without reloading" do
+ I18n.fallbacks.map 'de' => %w(en he)
+ I18n.locale = 'de'
+ post = Post.new
+ I18n.locale = 'en'
+ post.subject = 'foo'
+ I18n.locale = 'he'
+ post.subject = 'baz'
+ post.content = 'bar'
+ I18n.locale = 'de'
+ assert_equal 'foo', post.subject
+ assert_equal 'bar', post.content
+ end
+
+ test 'fallbacks with lots of locale switching' do
+ I18n.fallbacks.map :'de-DE' => [ :'en-US' ]
+ post = Post.create :subject => 'foo'
+
+ I18n.locale = :'de-DE'
+ assert_equal 'foo', post.subject
+
+ I18n.locale = :'en-US'
+ post.update_attribute :subject, 'bar'
+
+ I18n.locale = :'de-DE'
+ assert_equal 'bar', post.subject
+ end
+
+ test 'fallbacks with lots of locale switching' do
+ I18n.fallbacks.map :'de-DE' => [ :'en-US' ]
+ child = Child.create :content => 'foo'
+
+ I18n.locale = :'de-DE'
+ assert_equal 'foo', child.content
+
+ I18n.locale = :'en-US'
+ child.update_attribute :content, 'bar'
+
+ I18n.locale = :'de-DE'
+ assert_equal 'bar', child.content
+ end
+ end
+end
+
+# TODO should validate_presence_of take fallbacks into account? maybe we need
+# an extra validation call, or more options for validate_presence_of.
+
diff --git a/vendor/plugins/globalize2/test/active_record/migration_test.rb b/vendor/plugins/globalize2/test/active_record/migration_test.rb
new file mode 100644
index 000000000..359d811f0
--- /dev/null
+++ b/vendor/plugins/globalize2/test/active_record/migration_test.rb
@@ -0,0 +1,118 @@
+require File.expand_path(File.dirname(__FILE__) + '/../test_helper')
+require File.expand_path(File.dirname(__FILE__) + '/../data/models')
+
+class MigrationTest < ActiveSupport::TestCase
+ def setup
+ reset_db!
+ Post.drop_translation_table!
+ end
+
+ test 'globalize table added' do
+ assert !Post.connection.table_exists?(:post_translations)
+ assert !Post.connection.index_exists?(:post_translations, :post_id)
+
+ Post.create_translation_table!(:subject => :string, :content => :text)
+ assert Post.connection.table_exists?(:post_translations)
+ assert Post.connection.index_exists?(:post_translations, :post_id)
+
+ columns = Post.connection.columns(:post_translations)
+ assert locale = columns.detect { |c| c.name == 'locale' }
+ assert_equal :string, locale.type
+ assert subject = columns.detect { |c| c.name == 'subject' }
+ assert_equal :string, subject.type
+ assert content = columns.detect { |c| c.name == 'content' }
+ assert_equal :text, content.type
+ assert post_id = columns.detect { |c| c.name == 'post_id' }
+ assert_equal :integer, post_id.type
+ assert created_at = columns.detect { |c| c.name == 'created_at' }
+ assert_equal :datetime, created_at.type
+ assert updated_at = columns.detect { |c| c.name == 'updated_at' }
+ assert_equal :datetime, updated_at.type
+ end
+
+ test 'globalize table dropped' do
+ assert !Post.connection.table_exists?( :post_translations )
+ assert !Post.connection.index_exists?( :post_translations, :post_id )
+ Post.create_translation_table! :subject => :string, :content => :text
+ assert Post.connection.table_exists?( :post_translations )
+ assert Post.connection.index_exists?( :post_translations, :post_id )
+ Post.drop_translation_table!
+ assert !Post.connection.table_exists?( :post_translations )
+ assert !Post.connection.index_exists?( :post_translations, :post_id )
+ end
+
+ test 'exception on missing field inputs' do
+ assert_raise Globalize::MigrationMissingTranslatedField do
+ Post.create_translation_table! :content => :text
+ end
+ end
+
+ test 'exception on bad input type' do
+ assert_raise Globalize::BadMigrationFieldType do
+ Post.create_translation_table! :subject => :string, :content => :integer
+ end
+ end
+
+ test "exception on bad input type isn't raised for untranslated fields" do
+ assert_nothing_raised do
+ Post.create_translation_table! :subject => :string, :content => :string, :views_count => :integer
+ end
+ end
+
+ test 'create_translation_table! should not be called on non-translated models' do
+ assert_raise NoMethodError do
+ Blog.create_translation_table! :name => :string
+ end
+ end
+
+ test 'drop_translation_table! should not be called on non-translated models' do
+ assert_raise NoMethodError do
+ Blog.drop_translation_table!
+ end
+ end
+
+ test "translation_index_name returns a readable index name when it's not longer than 50 characters" do
+ assert_equal 'index_post_translations_on_post_id', Post.send(:translation_index_name)
+ end
+
+ test "translation_index_name returns a hashed index name when it's longer than 50 characters" do
+ class UltraLongModelNameWithoutProper < ActiveRecord::Base
+ translates :foo
+ end
+ name = UltraLongModelNameWithoutProper.send(:translation_index_name)
+ assert_match /^index_[a-z0-9]{40}$/, name
+ end
+
+ test 'globalize table added when table has long name' do
+ UltraLongModelNameWithoutProper.create_translation_table!(
+ :subject => :string, :content => :text
+ )
+
+ assert UltraLongModelNameWithoutProper.connection.table_exists?(
+ :ultra_long_model_name_without_proper_translations
+ )
+ assert UltraLongModelNameWithoutProper.connection.index_exists?(
+ :ultra_long_model_name_without_proper_translations,
+ :name => UltraLongModelNameWithoutProper.send(
+ :translation_index_name
+ )
+ )
+ end
+
+ test 'globalize table dropped when table has long name' do
+ UltraLongModelNameWithoutProper.drop_translation_table!
+ UltraLongModelNameWithoutProper.create_translation_table!(
+ :subject => :string, :content => :text
+ )
+ UltraLongModelNameWithoutProper.drop_translation_table!
+
+ assert !UltraLongModelNameWithoutProper.connection.table_exists?(
+ :ultra_long_model_name_without_proper_translations
+ )
+ assert !UltraLongModelNameWithoutProper.connection.index_exists?(
+ :ultra_long_model_name_without_proper_translations,
+ :ultra_long_model_name_without_proper_id
+ )
+ end
+
+end
diff --git a/vendor/plugins/globalize2/test/active_record/sti_translated_test.rb b/vendor/plugins/globalize2/test/active_record/sti_translated_test.rb
new file mode 100644
index 000000000..f529b8d6e
--- /dev/null
+++ b/vendor/plugins/globalize2/test/active_record/sti_translated_test.rb
@@ -0,0 +1,49 @@
+require File.expand_path(File.dirname(__FILE__) + '/../test_helper')
+require File.expand_path(File.dirname(__FILE__) + '/../data/models')
+
+class StiTranslatedTest < ActiveSupport::TestCase
+ def setup
+ I18n.locale = :'en-US'
+ reset_db!
+ end
+
+ test "works with simple dynamic finders" do
+ foo = Child.create :content => 'foo'
+ Child.create :content => 'bar'
+ child = Child.find_by_content('foo')
+ assert_equal foo, child
+ end
+
+ test 'change attribute on globalized model' do
+ child = Child.create :content => 'foo'
+ assert_equal [], child.changed
+ child.content = 'bar'
+ assert_equal [ 'content' ], child.changed
+ child.content = 'baz'
+ assert_member 'content', child.changed
+ end
+
+ test 'change attribute on globalized model after locale switching' do
+ child = Child.create :content => 'foo'
+ assert_equal [], child.changed
+ child.content = 'bar'
+ I18n.locale = :de
+ assert_equal [ 'content' ], child.changed
+ end
+
+ test "saves all locales, even after locale switching" do
+ child = Child.new :content => 'foo'
+ I18n.locale = 'de-DE'
+ child.content = 'bar'
+ I18n.locale = 'he-IL'
+ child.content = 'baz'
+ child.save
+ I18n.locale = 'en-US'
+ child = Child.first
+ assert_equal 'foo', child.content
+ I18n.locale = 'de-DE'
+ assert_equal 'bar', child.content
+ I18n.locale = 'he-IL'
+ assert_equal 'baz', child.content
+ end
+end
diff --git a/vendor/plugins/globalize2/test/active_record/translates_test.rb b/vendor/plugins/globalize2/test/active_record/translates_test.rb
new file mode 100644
index 000000000..1831063fb
--- /dev/null
+++ b/vendor/plugins/globalize2/test/active_record/translates_test.rb
@@ -0,0 +1,96 @@
+require File.expand_path(File.dirname(__FILE__) + '/../test_helper')
+require File.expand_path(File.dirname(__FILE__) + '/../data/models')
+
+class TranslatesTest < ActiveSupport::TestCase
+ def setup
+ I18n.locale = nil
+ ActiveRecord::Base.locale = nil
+ reset_db!
+ end
+
+ test 'defines a :locale accessors on ActiveRecord::Base' do
+ ActiveRecord::Base.locale = :de
+ assert_equal :de, ActiveRecord::Base.locale
+ end
+
+ test 'the :locale reader on ActiveRecord::Base does not default to I18n.locale (anymore)' do
+ I18n.locale = :en
+ assert_nil ActiveRecord::Base.locale
+ end
+
+ test 'ActiveRecord::Base.with_locale temporarily sets the given locale and yields the block' do
+ I18n.locale = :en
+ post = Post.with_locale(:de) do
+ Post.create!(:subject => 'Titel', :content => 'Inhalt')
+ end
+ assert_nil Post.locale
+ assert_equal :en, I18n.locale
+
+ I18n.locale = :de
+ assert_equal 'Titel', post.subject
+ end
+
+ test 'translation_class returns the Translation class' do
+ assert_equal Post::Translation, Post.translation_class
+ end
+
+ test 'defines a has_many association on the model class' do
+ assert_has_many Post, :translations
+ end
+
+ test 'defines a scope for retrieving locales that have complete translations' do
+ post = Post.create!(:subject => 'subject', :content => 'content')
+ assert_equal [:en], post.translated_locales
+ end
+
+ test 'sets the given attributes to translated_attribute_names' do
+ assert_equal [:subject, :content], Post.translated_attribute_names
+ end
+
+ test 'defines accessors for the translated attributes' do
+ post = Post.new
+ assert post.respond_to?(:subject)
+ assert post.respond_to?(:subject=)
+ end
+
+ test 'attribute reader without arguments will use the current locale on ActiveRecord::Base or I18n' do
+ post = Post.with_locale(:de) do
+ Post.create!(:subject => 'Titel', :content => 'Inhalt')
+ end
+ I18n.locale = :de
+ assert_equal 'Titel', post.subject
+
+ I18n.locale = :en
+ ActiveRecord::Base.locale = :de
+ assert_equal 'Titel', post.subject
+ end
+
+ test 'attribute reader when passed a locale will use the given locale' do
+ post = Post.with_locale(:de) do
+ Post.create!(:subject => 'Titel', :content => 'Inhalt')
+ end
+ assert_equal 'Titel', post.subject(:de)
+ end
+
+ test 'attribute reader will use the current locale on ActiveRecord::Base or I18n' do
+ post = Post.with_locale(:en) do
+ Post.create!(:subject => 'title', :content => 'content')
+ end
+ I18n.locale = :de
+ post.subject = 'Titel'
+ assert_equal 'Titel', post.subject
+
+ ActiveRecord::Base.locale = :en
+ post.subject = 'title'
+ assert_equal 'title', post.subject
+ end
+
+ test "find_by_xx records have writable attributes" do
+ Post.create :subject => "change me"
+ p = Post.find_by_subject("change me")
+ p.subject = "changed"
+ assert_nothing_raised(ActiveRecord::ReadOnlyRecord) do
+ p.save
+ end
+ end
+end
diff --git a/vendor/plugins/globalize2/test/active_record/translation_class_test.rb b/vendor/plugins/globalize2/test/active_record/translation_class_test.rb
new file mode 100644
index 000000000..1628416d7
--- /dev/null
+++ b/vendor/plugins/globalize2/test/active_record/translation_class_test.rb
@@ -0,0 +1,30 @@
+require File.expand_path(File.dirname(__FILE__) + '/../test_helper')
+require File.expand_path(File.dirname(__FILE__) + '/../data/models')
+
+class TranlationClassTest < ActiveSupport::TestCase
+ def setup
+ reset_db!
+ end
+
+ test 'defines a Translation class nested in the model class' do
+ assert Post.const_defined?(:Translation)
+ end
+
+ test 'defines a belongs_to association' do
+ assert_belongs_to Post::Translation, :post
+ end
+
+ test 'defines a reader for :locale that always returns a symbol' do
+ post = Post::Translation.new
+ post.write_attribute('locale', 'de')
+ assert_equal :de, post.locale
+ end
+
+ test 'defines a write for :locale that always writes a string' do
+ post = Post::Translation.new
+ post.locale = :de
+ assert_equal 'de', post.read_attribute('locale')
+ end
+end
+
+
diff --git a/vendor/plugins/globalize2/test/active_record/validation_tests.rb b/vendor/plugins/globalize2/test/active_record/validation_tests.rb
new file mode 100644
index 000000000..0148fa384
--- /dev/null
+++ b/vendor/plugins/globalize2/test/active_record/validation_tests.rb
@@ -0,0 +1,75 @@
+require File.expand_path(File.dirname(__FILE__) + '/../test_helper')
+require File.expand_path(File.dirname(__FILE__) + '/../data/models')
+
+class ValidationTest < ActiveSupport::TestCase
+ def setup
+ reset_db!
+ end
+
+ def teardown
+ Validatee.instance_variable_set(:@validate_callbacks, CallbackChain.new)
+ end
+
+ test "validates_presence_of" do
+ Validatee.class_eval { validates_presence_of :string }
+ assert !Validatee.new.valid?
+ assert Validatee.new(:string => 'foo').valid?
+ end
+
+ test "validates_confirmation_of" do
+ Validatee.class_eval { validates_confirmation_of :string }
+ assert !Validatee.new(:string => 'foo', :string_confirmation => 'bar').valid?
+ assert Validatee.new(:string => 'foo', :string_confirmation => 'foo').valid?
+ end
+
+ test "validates_acceptance_of" do
+ Validatee.class_eval { validates_acceptance_of :string, :accept => '1' }
+ assert !Validatee.new(:string => '0').valid?
+ assert Validatee.new(:string => '1').valid?
+ end
+
+ test "validates_length_of (:is)" do
+ Validatee.class_eval { validates_length_of :string, :is => 1 }
+ assert !Validatee.new(:string => 'aa').valid?
+ assert Validatee.new(:string => 'a').valid?
+ end
+
+ test "validates_format_of" do
+ Validatee.class_eval { validates_format_of :string, :with => /^\d+$/ }
+ assert !Validatee.new(:string => 'a').valid?
+ assert Validatee.new(:string => '1').valid?
+ end
+
+ test "validates_inclusion_of" do
+ Validatee.class_eval { validates_inclusion_of :string, :in => %(a) }
+ assert !Validatee.new(:string => 'b').valid?
+ assert Validatee.new(:string => 'a').valid?
+ end
+
+ test "validates_exclusion_of" do
+ Validatee.class_eval { validates_exclusion_of :string, :in => %(b) }
+ assert !Validatee.new(:string => 'b').valid?
+ assert Validatee.new(:string => 'a').valid?
+ end
+
+ test "validates_numericality_of" do
+ Validatee.class_eval { validates_numericality_of :string }
+ assert !Validatee.new(:string => 'a').valid?
+ assert Validatee.new(:string => '1').valid?
+ end
+
+ # This doesn't pass and Rails' validates_uniqueness_of implementation doesn't
+ # seem to be extensible easily. One can work around that by either defining
+ # a custom validation on the Validatee model itself, or by using validates_uniqueness_of
+ # on Validatee::Translation.
+ #
+ # test "validates_uniqueness_of" do
+ # Validatee.class_eval { validates_uniqueness_of :string }
+ # Validatee.create!(:string => 'a')
+ # assert !Validatee.new(:string => 'a').valid?
+ # assert Validatee.new(:string => 'b').valid?
+ # end
+
+ # test "validates_associated" do
+ # end
+end \ No newline at end of file
diff --git a/vendor/plugins/globalize2/test/active_record_test.rb b/vendor/plugins/globalize2/test/active_record_test.rb
new file mode 100644
index 000000000..38e247e17
--- /dev/null
+++ b/vendor/plugins/globalize2/test/active_record_test.rb
@@ -0,0 +1,467 @@
+require File.expand_path(File.dirname(__FILE__) + '/test_helper')
+require File.expand_path(File.dirname(__FILE__) + '/data/models')
+
+# Higher level tests.
+
+class ActiveRecordTest < ActiveSupport::TestCase
+ def setup
+ I18n.locale = :en
+ reset_db!
+ ActiveRecord::Base.locale = nil
+ end
+
+ def assert_translated(locale, record, names, expected)
+ I18n.locale = locale
+ assert_equal Array(expected), Array(names).map { |name| record.send(name) }
+ end
+
+ test "a translated record has translations" do
+ assert_equal [], Post.new.translations
+ end
+
+ test "saves a translated version of the record for each locale" do
+ post = Post.create(:subject => 'title')
+ I18n.locale = :de
+ post.update_attributes(:subject => 'Titel')
+
+ assert_equal 2, post.translations.size
+ assert_equal %w(de en), post.translations.map(&:locale).map(&:to_s).sort
+ assert_equal %w(Titel title), post.translations.map(&:subject).sort
+ end
+
+ test "a translated record has German translations" do
+ I18n.locale = :de
+ post = Post.create(:subject => 'foo')
+ assert_equal 1, post.translations.size
+ assert_equal [:de], post.translations.map { |t| t.locale }
+ end
+
+ test "modifiying translated fields while switching locales" do
+ post = Post.create(:subject => 'title', :content => 'content')
+ assert_equal %w(title content), [post.subject, post.content]
+
+ I18n.locale = :de
+ post.subject, post.content = 'Titel', 'Inhalt'
+
+ assert_translated(:de, post, [:subject, :content], %w(Titel Inhalt))
+ assert_translated(:en, post, [:subject, :content], %w(title content))
+ assert_translated(:de, post, [:subject, :content], %w(Titel Inhalt))
+
+ post.save
+ post.reload
+
+ assert_translated(:en, post, [:subject, :content], %w(title content))
+ assert_translated(:de, post, [:subject, :content], %w(Titel Inhalt))
+ end
+
+ test "attribute writers do return their argument" do
+ value = Post.new.subject = 'foo'
+ assert_equal 'foo', value
+ end
+
+ test "update_attribute succeeds with valid values" do
+ post = Post.create(:subject => 'foo', :content => 'bar')
+ post.update_attribute(:subject, 'baz')
+ assert_equal 'baz', Post.first.subject
+ end
+
+ test "update_attributes fails with invalid values" do
+ post = Post.create(:subject => 'foo', :content => 'bar')
+ assert !post.update_attributes(:subject => '')
+ assert_not_nil post.reload.attributes['subject']
+ assert_equal 'foo', post.subject
+ end
+
+ test "passing the locale to create uses the given locale" do
+ post = Post.create(:subject => 'Titel', :content => 'Inhalt', :locale => :de)
+ assert_equal :en, I18n.locale
+ assert_nil ActiveRecord::Base.locale
+
+ I18n.locale = :de
+ assert_equal 'Titel', post.subject
+ end
+
+ test "passing the locale to attributes= uses the given locale" do
+ post = Post.create(:subject => 'title', :content => 'content')
+ post.update_attributes(:subject => 'Titel', :content => 'Inhalt', :locale => :de)
+ post.reload
+
+ assert_equal :en, I18n.locale
+ assert_nil ActiveRecord::Base.locale
+
+ assert_equal 'title', post.subject
+ I18n.locale = :de
+ assert_equal 'Titel', post.subject
+ end
+
+ test 'reload works' do
+ post = Post.create(:subject => 'foo', :content => 'bar')
+ post.subject = 'baz'
+ post.reload
+ assert_equal 'foo', post.subject
+ end
+
+ test "returns nil if no translations are found (unsaved record)" do
+ post = Post.new(:subject => 'foo')
+ assert_equal 'foo', post.subject
+ assert_nil post.content
+ end
+
+ test "returns nil if no translations are found (saved record)" do
+ post = Post.create(:subject => 'foo')
+ post.reload
+ assert_equal 'foo', post.subject
+ assert_nil post.content
+ end
+
+ test "finds a German post" do
+ post = Post.create(:subject => 'foo (en)', :content => 'bar')
+ I18n.locale = :de
+ post = Post.first
+ post.subject = 'baz (de)'
+ post.save
+ assert_equal 'baz (de)', Post.first.subject
+ I18n.locale = :en
+ assert_equal 'foo (en)', Post.first.subject
+ end
+
+ test "saves an English post and loads correctly" do
+ post = Post.create(:subject => 'foo', :content => 'bar')
+ assert post.save
+ post = Post.first
+ assert_equal 'foo', post.subject
+ assert_equal 'bar', post.content
+ end
+
+ test "returns the value for the correct locale, after locale switching" do
+ post = Post.create(:subject => 'foo')
+ I18n.locale = :de
+ post.subject = 'bar'
+ post.save
+ I18n.locale = :en
+ post = Post.first
+ assert_equal 'foo', post.subject
+ I18n.locale = :de
+ assert_equal 'bar', post.subject
+ end
+
+ test "returns the value for the correct locale, after locale switching, without saving" do
+ post = Post.create :subject => 'foo'
+ I18n.locale = :de
+ post.subject = 'bar'
+ I18n.locale = :en
+ assert_equal 'foo', post.subject
+ I18n.locale = :de
+ assert_equal 'bar', post.subject
+ end
+
+ test "saves all locales, even after locale switching" do
+ post = Post.new :subject => 'foo'
+ I18n.locale = :de
+ post.subject = 'bar'
+ I18n.locale = :he
+ post.subject = 'baz'
+ post.save
+ I18n.locale = :en
+ post = Post.first
+ assert_equal 'foo', post.subject
+ I18n.locale = :de
+ assert_equal 'bar', post.subject
+ I18n.locale = :he
+ assert_equal 'baz', post.subject
+ end
+
+ test "works with associations" do
+ blog = Blog.create
+ post1 = blog.posts.create(:subject => 'foo')
+
+ I18n.locale = :de
+ post2 = blog.posts.create(:subject => 'bar')
+ assert_equal 2, blog.posts.size
+
+ I18n.locale = :en
+ assert_equal 'foo', blog.posts.first.subject
+ assert_nil blog.posts.last.subject
+
+ I18n.locale = :de
+ assert_equal 'bar', blog.posts.last.subject
+ end
+
+ test "works with simple dynamic finders" do
+ foo = Post.create(:subject => 'foo')
+ Post.create(:subject => 'bar')
+ post = Post.find_by_subject('foo')
+ assert_equal foo, post
+ end
+
+ test 'change attribute on globalized model' do
+ post = Post.create(:subject => 'foo', :content => 'bar')
+ assert_equal [], post.changed
+ post.subject = 'baz'
+ assert_equal ['subject'], post.changed
+ post.content = 'quux'
+ assert_member 'subject', post.changed
+ assert_member 'content', post.changed
+ end
+
+ test 'change attribute on globalized model after locale switching' do
+ post = Post.create(:subject => 'foo', :content => 'bar')
+ assert_equal [], post.changed
+ post.subject = 'baz'
+ I18n.locale = :de
+ assert_equal ['subject'], post.changed
+ end
+
+ test 'complex writing and stashing' do
+ post = Post.create(:subject => 'foo', :content => 'bar')
+ post.subject = nil
+ assert_nil post.subject
+ assert !post.valid?
+ post.subject = 'stashed_foo'
+ assert_equal 'stashed_foo', post.subject
+ end
+
+ test 'translated class locale setting' do
+ assert ActiveRecord::Base.respond_to?(:locale)
+ assert_equal :en, I18n.locale
+ assert_nil ActiveRecord::Base.locale
+
+ I18n.locale = :de
+ assert_equal :de, I18n.locale
+ assert_nil ActiveRecord::Base.locale
+
+ ActiveRecord::Base.locale = :es
+ assert_equal :de, I18n.locale
+ assert_equal :es, ActiveRecord::Base.locale
+
+ I18n.locale = :fr
+ assert_equal :fr, I18n.locale
+ assert_equal :es, ActiveRecord::Base.locale
+ end
+
+ test "untranslated class responds to locale" do
+ assert Blog.respond_to?(:locale)
+ end
+
+ test "to ensure locales in different classes are the same" do
+ ActiveRecord::Base.locale = :de
+ assert_equal :de, ActiveRecord::Base.locale
+ assert_equal :de, Parent.locale
+
+ Parent.locale = :es
+ assert_equal :es, ActiveRecord::Base.locale
+ assert_equal :es, Parent.locale
+ end
+
+ test "attribute saving goes by content locale and not global locale" do
+ ActiveRecord::Base.locale = :de
+ assert_equal :en, I18n.locale
+ Post.create :subject => 'foo'
+ assert_equal :de, Post.first.translations.first.locale
+ end
+
+ test "attribute loading goes by content locale and not global locale" do
+ post = Post.create(:subject => 'foo')
+ assert_nil ActiveRecord::Base.locale
+
+ ActiveRecord::Base.locale = :de
+ assert_equal :en, I18n.locale
+ post.update_attribute(:subject, 'foo [de]')
+ assert_equal 'foo [de]', Post.first.subject
+
+ ActiveRecord::Base.locale = :en
+ assert_equal 'foo', Post.first.subject
+ end
+
+ test "access content locale before setting" do
+ Globalize::ActiveRecord::ActMacro.class_eval "remove_class_variable(:@@locale)"
+ assert_nothing_raised { ActiveRecord::Base.locale }
+ end
+
+ test "available_locales" do
+ Post.locale = :de
+ post = Post.create(:subject => 'foo')
+ Post.locale = :es
+ post.update_attribute(:subject, 'bar')
+ Post.locale = :fr
+ post.update_attribute(:subject, 'baz')
+ assert_equal [:de, :es, :fr], post.available_locales
+ assert_equal [:de, :es, :fr], Post.first.available_locales
+ end
+
+ test "saving record correctly after post-save reload" do
+ reloader = Reloader.create(:content => 'foo')
+ assert_equal 'foo', reloader.content
+ end
+
+ test "including translations" do
+ I18n.locale = :de
+ Post.create(:subject => "Foo1", :content => "Bar1")
+ Post.create(:subject => "Foo2", :content => "Bar2")
+
+ class << Post
+ def translations_included
+ self.all(:include => :translations)
+ end
+ end
+
+ default = Post.all.map { |x| [x.subject, x.content] }
+ with_include = Post.translations_included.map { |x| [x.subject, x.content] }
+ assert_equal default, with_include
+ end
+
+ test "setting multiple translations at once with options hash" do
+ Post.locale = :de
+ post = Post.create(:subject => "foo1", :content => "foo1")
+ Post.locale = :en
+ post.update_attributes(:subject => "bar1", :content => "bar1")
+
+ options = { :de => {:subject => "foo2", :content => "foo2"},
+ :en => {:subject => "bar2", :content => "bar2"} }
+ post.set_translations options
+ post.reload
+
+ assert ["bar2", "bar2"], [post.subject, post.content]
+ Post.locale = :de
+ assert ["foo2", "foo2"], [post.subject, post.content]
+ end
+
+ test "setting only one translation with set_translations" do
+ Post.locale = :de
+ post = Post.create(:subject => "foo1", :content => "foo1")
+ Post.locale = :en
+ post.update_attributes(:subject => "bar1", :content => "bar1")
+
+ options = { :en => { :subject => "bar2", :content => "bar2" } }
+ post.set_translations options
+ post.reload
+
+ assert ["bar2", "bar2"], [post.subject, post.content]
+ Post.locale = :de
+ assert ["foo1", "foo1"], [post.subject, post.content]
+ end
+
+ test "setting only selected attributes with set_translations" do
+ Post.locale = :de
+ post = Post.create(:subject => "foo1", :content => "foo1")
+ Post.locale = :en
+ post.update_attributes(:subject => "bar1", :content => "bar1")
+
+ options = { :de => { :content => "foo2" }, :en => { :subject => "bar2" } }
+ post.set_translations options
+ post.reload
+
+ assert ["bar2", "bar1"], [post.subject, post.content]
+ Post.locale = :de
+ assert ["foo1", "foo2"], [post.subject, post.content]
+ end
+
+ test "setting invalid attributes raises ArgumentError" do
+ Post.locale = :de
+ post = Post.create(:subject => "foo1", :content => "foo1")
+ Post.locale = :en
+ post.update_attributes(:subject => "bar1", :content => "bar1")
+
+ options = { :de => {:fake => "foo2"} }
+ exception = assert_raise(ActiveRecord::UnknownAttributeError) do
+ post.set_translations options
+ end
+ assert_equal "unknown attribute: fake", exception.message
+ end
+
+ test "reload accepting find options" do
+ p = Post.create(:subject => "Foo", :content => "Bar")
+ assert p.reload(:readonly => true, :lock => true)
+ assert_raise(ArgumentError) { p.reload(:foo => :bar) }
+ end
+
+ test "dependent destroy of translation" do
+ p = Post.create(:subject => "Foo", :content => "Bar")
+ assert_equal 1, PostTranslation.count
+ p.destroy
+ assert_equal 0, PostTranslation.count
+ end
+
+ test "translating subclass of untranslated comment model" do
+ translated_comment = TranslatedComment.create(:post => @post)
+ assert_nothing_raised { translated_comment.translations }
+ end
+
+ test "modifiying translated comments works as expected" do
+ I18n.locale = :en
+ translated_comment = TranslatedComment.create(:post => @post, :content => 'foo')
+ assert_equal 'foo', translated_comment.content
+
+ I18n.locale = :de
+ translated_comment.content = 'bar'
+ assert translated_comment.save
+ assert_equal 'bar', translated_comment.content
+
+ I18n.locale = :en
+ assert_equal 'foo', translated_comment.content
+
+ assert_equal 2, translated_comment.translations.size
+ end
+
+ test "can create a proxy class for a namespaced model" do
+ assert_nothing_raised do
+ module Foo
+ module Bar
+ class Baz < ActiveRecord::Base
+ translates :bumm
+ end
+ end
+ end
+ end
+ end
+
+ test "attribute translated before type cast" do
+ Post.locale = :en
+ post = Post.create(:subject => 'foo', :content => 'bar')
+ Post.locale = :de
+ post.update_attribute(:subject, "German foo")
+ assert_equal 'German foo', post.subject_before_type_cast
+ Post.locale = :en
+ assert_equal 'foo', post.subject_before_type_cast
+ end
+
+ test "don't override existing translation class" do
+ assert PostTranslation.new.respond_to?(:existing_method)
+ end
+
+ test "has_many and named scopes work with globalize" do
+ blog = Blog.create
+ assert_nothing_raised { blog.posts.foobar }
+ end
+
+ test "required_attribuets don't include non-translated attributes" do
+ validations = [
+ stub(:name => :name, :macro => :validates_presence_of),
+ stub(:name => :email, :macro => :validates_presence_of)
+ ]
+ User.expects(:reflect_on_all_validations => validations)
+ assert_equal [:name], User.required_attributes
+ end
+
+ test "attribute_names returns translated and regular attribute names" do
+ Post.create :subject => "foo", :content => "bar"
+ assert_equal Post.last.attribute_names.sort, %w[blog_id content id subject]
+ end
+
+ test "attributes returns translated and regular attributes" do
+ Post.create :subject => "foo", :content => "bar"
+ assert_equal Post.last.attributes.keys.sort, %w[blog_id content id subject]
+ end
+
+ test "to_xml includes translated fields" do
+ Post.create :subject => "foo", :content => "bar"
+ assert Post.last.to_xml =~ /subject/
+ assert Post.last.to_xml =~ /content/
+ end
+end
+
+# TODO error checking for fields that exist in main table, don't exist in
+# proxy table, aren't strings or text
+#
+# TODO allow finding by translated attributes in conditions?
+# TODO generate advanced dynamic finders?
diff --git a/vendor/plugins/globalize2/test/all.rb b/vendor/plugins/globalize2/test/all.rb
new file mode 100644
index 000000000..ff467a176
--- /dev/null
+++ b/vendor/plugins/globalize2/test/all.rb
@@ -0,0 +1,2 @@
+files = Dir[File.dirname(__FILE__) + '/**/*_test.rb']
+files.each { |file| require file } \ No newline at end of file
diff --git a/vendor/plugins/globalize2/test/data/models.rb b/vendor/plugins/globalize2/test/data/models.rb
new file mode 100644
index 000000000..5408d6e23
--- /dev/null
+++ b/vendor/plugins/globalize2/test/data/models.rb
@@ -0,0 +1,56 @@
+#require 'ruby2ruby'
+#require 'parse_tree'
+#require 'parse_tree_extensions'
+#require 'pp'
+
+class PostTranslation < ActiveRecord::Base
+ def existing_method ; end
+end
+
+class Post < ActiveRecord::Base
+ translates :subject, :content
+ validates_presence_of :subject
+ named_scope :foobar, :conditions => { :title => "foobar" }
+end
+
+class Blog < ActiveRecord::Base
+ has_many :posts, :order => 'id ASC'
+end
+
+class Parent < ActiveRecord::Base
+ translates :content
+end
+
+class Child < Parent
+end
+
+class Comment < ActiveRecord::Base
+ validates_presence_of :content
+ belongs_to :post
+end
+
+class TranslatedComment < Comment
+ translates :content
+end
+
+class UltraLongModelNameWithoutProper < ActiveRecord::Base
+ translates :subject, :content
+ validates_presence_of :subject
+end
+
+class Reloader < Parent
+ after_create :do_reload
+
+ def do_reload
+ reload
+ end
+end
+
+class Validatee < ActiveRecord::Base
+ translates :string
+end
+
+class User < ActiveRecord::Base
+ translates :name
+ validates_presence_of :name, :email
+end
diff --git a/vendor/plugins/globalize2/test/data/no_globalize_schema.rb b/vendor/plugins/globalize2/test/data/no_globalize_schema.rb
new file mode 100644
index 000000000..379455ddb
--- /dev/null
+++ b/vendor/plugins/globalize2/test/data/no_globalize_schema.rb
@@ -0,0 +1,11 @@
+# This schema creates tables without columns for the translated fields
+ActiveRecord::Schema.define do
+ create_table :blogs, :force => true do |t|
+ t.string :name
+ end
+
+ create_table :posts, :force => true do |t|
+ t.references :blog
+ end
+end
+
diff --git a/vendor/plugins/globalize2/test/data/schema.rb b/vendor/plugins/globalize2/test/data/schema.rb
new file mode 100644
index 000000000..910dd0855
--- /dev/null
+++ b/vendor/plugins/globalize2/test/data/schema.rb
@@ -0,0 +1,55 @@
+ActiveRecord::Schema.define do
+ create_table :blogs, :force => true do |t|
+ t.string :description
+ end
+
+ create_table :posts, :force => true do |t|
+ t.references :blog
+ end
+
+ create_table :post_translations, :force => true do |t|
+ t.string :locale
+ t.references :post
+ t.string :subject
+ t.text :content
+ end
+
+ create_table :parents, :force => true do |t|
+ end
+
+ create_table :parent_translations, :force => true do |t|
+ t.string :locale
+ t.references :parent
+ t.text :content
+ t.string :type
+ end
+
+ create_table :comments, :force => true do |t|
+ t.references :post
+ end
+
+ create_table :comment_translations, :force => true do |t|
+ t.string :locale
+ t.references :comment
+ t.string :subject
+ t.text :content
+ end
+
+ create_table :validatees, :force => true do |t|
+ end
+
+ create_table :validatee_translations, :force => true do |t|
+ t.string :locale
+ t.references :validatee
+ t.string :string
+ end
+
+ create_table :users, :force => true do |t|
+ t.string :email
+ end
+
+ create_table :users_translations, :force => true do |t|
+ t.references :user
+ t.string :name
+ end
+end
diff --git a/vendor/plugins/globalize2/test/i18n/missing_translations_test.rb b/vendor/plugins/globalize2/test/i18n/missing_translations_test.rb
new file mode 100644
index 000000000..5d0ecd6fc
--- /dev/null
+++ b/vendor/plugins/globalize2/test/i18n/missing_translations_test.rb
@@ -0,0 +1,36 @@
+require File.dirname(__FILE__) + '/../test_helper'
+require 'i18n/missing_translations_log_handler'
+
+class MissingTranslationsTest < ActiveSupport::TestCase
+ test "defines I18n.missing_translations_logger accessor" do
+ assert I18n.respond_to?(:missing_translations_logger)
+ end
+
+ test "defines I18n.missing_translations_logger= writer" do
+ assert I18n.respond_to?(:missing_translations_logger=)
+ end
+end
+
+class TestLogger < String
+ def warn(msg) self.concat msg; end
+end
+
+class LogMissingTranslationsTest < ActiveSupport::TestCase
+ def setup
+ @locale, @key, @options = :en, :foo, {}
+ @exception = I18n::MissingTranslationData.new(@locale, @key, @options)
+
+ @logger = TestLogger.new
+ I18n.missing_translations_logger = @logger
+ end
+
+ test "still returns the exception message for MissingTranslationData exceptions" do
+ result = I18n.send(:missing_translations_log_handler, @exception, @locale, @key, @options)
+ assert_equal 'translation missing: en, foo', result
+ end
+
+ test "logs the missing translation to I18n.missing_translations_logger" do
+ I18n.send(:missing_translations_log_handler, @exception, @locale, @key, @options)
+ assert_equal 'translation missing: en, foo', @logger
+ end
+end
diff --git a/vendor/plugins/globalize2/test/test_helper.rb b/vendor/plugins/globalize2/test/test_helper.rb
new file mode 100644
index 000000000..99a5d3950
--- /dev/null
+++ b/vendor/plugins/globalize2/test/test_helper.rb
@@ -0,0 +1,76 @@
+$LOAD_PATH << File.expand_path( File.dirname(__FILE__) + '/../lib' )
+
+require 'rubygems'
+require 'test/unit'
+require 'active_record'
+require 'active_support'
+require 'active_support/test_case'
+require 'mocha'
+require 'globalize'
+# require 'validation_reflection'
+
+config = { :adapter => 'sqlite3', :database => ':memory:' }
+ActiveRecord::Base.establish_connection(config)
+
+class ActiveSupport::TestCase
+ def reset_db!(schema_path = nil)
+ schema_path ||= File.expand_path(File.dirname(__FILE__) + '/data/schema.rb')
+ ActiveRecord::Migration.verbose = false
+ ActiveRecord::Base.silence { load(schema_path) }
+ end
+
+ def assert_member(item, array)
+ assert_block "Item #{item} is not in array #{array}" do
+ array.member?(item)
+ end
+ end
+
+ def assert_belongs_to(model, associated)
+ assert model.reflect_on_all_associations(:belongs_to).detect { |association|
+ association.name.to_s == associated.to_s
+ }
+ end
+
+ def assert_has_many(model, associated)
+ assert model.reflect_on_all_associations(:has_many).detect { |association|
+ association.name.to_s == associated.to_s
+ }
+ end
+end
+
+module ActiveRecord
+ module ConnectionAdapters
+ class AbstractAdapter
+ def index_exists?(table_name, column_name)
+ indexes(table_name).any? { |index| index.name == index_name(table_name, column_name) }
+ end
+ end
+ end
+end
+
+# module ActiveRecord
+# class BaseWithoutTable < Base
+# self.abstract_class = true
+#
+# def create_or_update
+# errors.empty?
+# end
+#
+# class << self
+# def columns()
+# @columns ||= []
+# end
+#
+# def column(name, sql_type = nil, default = nil, null = true)
+# columns << ActiveRecord::ConnectionAdapters::Column.new(name.to_s, default, sql_type.to_s, null)
+# reset_column_information
+# end
+#
+# # Do not reset @columns
+# def reset_column_information
+# read_methods.each { |name| undef_method(name) }
+# @column_names = @columns_hash = @content_columns = @dynamic_methods_hash = @read_methods = nil
+# end
+# end
+# end
+# end \ No newline at end of file
diff --git a/vendor/plugins/translate_routes/.gitignore b/vendor/plugins/translate_routes/.gitignore
new file mode 100644
index 000000000..943a463d9
--- /dev/null
+++ b/vendor/plugins/translate_routes/.gitignore
@@ -0,0 +1,4 @@
+.DS_Store
+SampleApp/log/*.log
+SampleApp/tmp/**/*
+SampleApp/db/test.sqlite3 \ No newline at end of file
diff --git a/vendor/plugins/translate_routes/ChangeLog b/vendor/plugins/translate_routes/ChangeLog
new file mode 100755
index 000000000..75d0e76b1
--- /dev/null
+++ b/vendor/plugins/translate_routes/ChangeLog
@@ -0,0 +1,22 @@
+-- 0.98
+ Accepted patch from hoelmer: Updated rake task to use I18n yaml format.
+-- 0.97
+ Accepted patch from Aitor Garay-Romero: root routes with prefix now doesn't set the locale parameter.
+
+-- rails2.2 branch -> master
+
+-- branch rails2.2 v0.9 (Oct 27th 2008)
+ * Developed after Rails2.2rc1 release, with i18n support. Beta, not backward compatible with Rails < 2.2
+
+-- 0.96.1 (Aug 5th 2008)
+ * Fixed by Mathieu Fosse: helpers didn't worked as expected when locale_param_key is undefined
+
+-- 0.96 (Jun 10th 2008)
+ * Added update_yaml task, suggested by Francesc Esplugas
+
+-- 0.95 (Jan 21st 2008)
+ * Still beta version
+ * Added yaml files support for dictionaries
+
+-- 0.9 (Dec 27th 2007)
+ * Beta version
diff --git a/vendor/plugins/translate_routes/MIT-LICENSE b/vendor/plugins/translate_routes/MIT-LICENSE
new file mode 100755
index 000000000..fbce523f9
--- /dev/null
+++ b/vendor/plugins/translate_routes/MIT-LICENSE
@@ -0,0 +1,20 @@
+Copyright (c) 2007 Raul Murciano [http://raul.murciano.net], Domestika INTERNET S.L. [http://domestika.org]
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/vendor/plugins/translate_routes/README.markdown b/vendor/plugins/translate_routes/README.markdown
new file mode 100755
index 000000000..1c0d0bf25
--- /dev/null
+++ b/vendor/plugins/translate_routes/README.markdown
@@ -0,0 +1,99 @@
+TranslateRoutes
+===============
+
+This Rails plugin provides a simple way to translate your URLs to any number of languages, even on a fully working application.
+
+It works fine with all kind of routing definitions, including RESTful and named routes.
+**Your current code will remain untouched**: your current routing code, helpers and links will be translated transparently - even in your tests.
+(Un)installing it is a very clean and simple process, so why don't you give it a chance? ;)
+
+This version works only with Rails 2.2.x. You can find all available versions in [the wiki](wiki.github.com/raul/translate_routes).
+
+Sample application
+------------------
+There is a [sample application](http://github.com/raul/translate_routes_demo/tree/master) which can be very useful to see how to integrate this plugin on your Rails application. The application itself includes all the required steps: 3 lines, an optional filter and a yaml translations file were used.
+
+
+Quick start
+-----------
+
+Let's start with a tiny example. Of course you need to define your routes first, e.g:
+
+ ActionController::Routing::Routes.draw do |map|
+ map.contact 'contact', :controller => 'contact', :action => 'index'
+ end
+
+1) Download the plugin to your app's `/vendor/plugins` directory.
+
+2) Write your translations on a standard YAML file (e.g: i18n-routes.yml), including the locales and it translations pairs:
+
+ es:
+ contact: contacto
+
+
+3) Append a line to your routes.rb file to activate the translations. If you loaded the translations file with
+your other I18n translations files, the line will be:
+
+ ActionController::Routing::Translator.i18n('es')
+
+and if you want to keep the file separated (e.g: config/i18n-routes.yml), the line to append is:
+
+ ActionController::Routing::Translator.translate_from_file('config','i18n-routes.yml')
+
+You can see it working by executing `rake routes` on the shell:
+
+
+ contact_es_es_path /es-ES/contacto {:locale=>"es", :controller=>"contact", :action=>"index"}
+ contact_en_us_path /contact {:locale=>"'en'", :controller=>"contact", :action=>"index"}
+
+
+As we can see, a new spanish route has been setted up and a `locale` parameter has been added to the routes.
+
+4) Include this filter in your ApplicationController:
+
+ before_filter :set_locale_from_url
+
+Now your application recognizes the different routes and sets the `I18n.locale` value on your controllers,
+but what about the routes generation? As you can see on the previous `rake routes` execution, the
+`contact_es_es_path` and `contact_en_us_path` routing helpers have been generated and are
+available in your controllers and views. Additionally, a `contact_path` helper has been generated, which
+generates the routes according to the current request's locale. This way your link
+
+This means that if you use named routes **you don't need to modify your application links** because the routing helpers are automatically adapted to the current locale.
+
+5) Hey, but what about my tests?
+
+Of course, your functional and integration testing involves some requests.
+The plugin includes some code to add a default locale parameter so they can remain untouched.
+Append it to your `test_helper` and it will be applied.
+
+Documentation
+-------------
+You can find additional information in [the translate_routes' wiki](http://wiki.github.com/raul/translate_routes).
+
+Questions, suggestions, bug reports...
+--------------------------------------
+Feedback, questions and comments will be always welcome at raul@murciano.net
+
+Credits
+-------
+* Main development:
+ * Raul Murciano <http://raul.murciano.net> - code
+ * Domestika INTERNET S.L <http://domestika.org> - incredible support, really nice people to work with!
+
+* Contributors:
+ * Aitor Garay-Romero
+ * hoelmer (sorry mate, I can't find your real name)
+
+Rails routing resources
+-----------------------
+* David Black's 'Rails Routing' ebook rocks! - 'Ruby for Rails' too, BTW.
+* Obie Fernandez's 'The Rails Way' - the definitive RoR reference, great work Obie!
+* As a part of the impressive Rails Guides set there is an [awesome document about rails routing](http://guides.rails.info/routing_outside_in.html) by Mike Gunderloy:
+
+
+License
+-------
+ Copyright (c) 2007 Released under the MIT license (see MIT-LICENSE)
+ Raul Murciano <http://raul.murciano.net>
+ Domestika INTERNET S.L. <http://domestika.org> \ No newline at end of file
diff --git a/vendor/plugins/translate_routes/Rakefile b/vendor/plugins/translate_routes/Rakefile
new file mode 100755
index 000000000..5b0a29cf5
--- /dev/null
+++ b/vendor/plugins/translate_routes/Rakefile
@@ -0,0 +1,22 @@
+require 'rake'
+require 'rake/testtask'
+require 'rake/rdoctask'
+
+desc 'Default: run unit tests.'
+task :default => :test
+
+desc 'Test the translate_routes plugin.'
+Rake::TestTask.new(:test) do |t|
+ t.libs << 'lib'
+ t.pattern = 'test/**/*_test.rb'
+ t.verbose = true
+end
+
+desc 'Generate documentation for the translate_routes plugin.'
+Rake::RDocTask.new(:rdoc) do |rdoc|
+ rdoc.rdoc_dir = 'rdoc'
+ rdoc.title = 'TranslateRoutes'
+ rdoc.options << '--line-numbers' << '--inline-source'
+ rdoc.rdoc_files.include('README')
+ rdoc.rdoc_files.include('lib/**/*.rb')
+end
diff --git a/vendor/plugins/translate_routes/config/routes_en-US.yml b/vendor/plugins/translate_routes/config/routes_en-US.yml
new file mode 100755
index 000000000..e69de29bb
--- /dev/null
+++ b/vendor/plugins/translate_routes/config/routes_en-US.yml
diff --git a/vendor/plugins/translate_routes/config/routes_es-ES.yml b/vendor/plugins/translate_routes/config/routes_es-ES.yml
new file mode 100755
index 000000000..b0b1b80c9
--- /dev/null
+++ b/vendor/plugins/translate_routes/config/routes_es-ES.yml
@@ -0,0 +1 @@
+people: gente \ No newline at end of file
diff --git a/vendor/plugins/translate_routes/init.rb b/vendor/plugins/translate_routes/init.rb
new file mode 100755
index 000000000..9d09228c3
--- /dev/null
+++ b/vendor/plugins/translate_routes/init.rb
@@ -0,0 +1 @@
+require 'translate_routes' \ No newline at end of file
diff --git a/vendor/plugins/translate_routes/install.rb b/vendor/plugins/translate_routes/install.rb
new file mode 100755
index 000000000..f7732d379
--- /dev/null
+++ b/vendor/plugins/translate_routes/install.rb
@@ -0,0 +1 @@
+# Install hook code here
diff --git a/vendor/plugins/translate_routes/lib/translate_routes.rb b/vendor/plugins/translate_routes/lib/translate_routes.rb
new file mode 100755
index 000000000..1db92e90e
--- /dev/null
+++ b/vendor/plugins/translate_routes/lib/translate_routes.rb
@@ -0,0 +1,219 @@
+# Author: Raul Murciano [http://raul.murciano.net] for Domestika [http://domestika.org]
+# Copyright (c) 2007, Released under the MIT license (see MIT-LICENSE)
+
+module ActionController
+
+ module Routing
+
+ module Translator
+
+ mattr_accessor :prefix_on_default_locale
+ @@prefix_on_default_locale = false
+
+ mattr_accessor :locale_param_key
+ @@locale_param_key = :locale # set to :locale for params[:locale]
+
+ mattr_accessor :original_routes, :original_named_routes, :original_names, :dictionaries
+
+ def self.translate
+ init_dictionaries
+ yield @@dictionaries
+ @using_i18n = false
+ Translator.translate_current_routes
+ end
+
+ def self.translate_from_file(*path)
+ init_dictionaries
+ path = %w(locales routes.yml) if path.blank?
+ file_path = File.join(RAILS_ROOT, path)
+ yaml = YAML.load_file(file_path)
+ yaml.each_pair{ |k,v| @@dictionaries[k.to_s] = v || {} }
+ @using_i18n = false
+ Translator.translate_current_routes
+ end
+
+ def self.i18n(*locales)
+ init_dictionaries
+ locales = I18n.available_locales if locales.blank? && I18n.respond_to?(:available_locales)
+ locales.each{ |locale| @@dictionaries[locale] = {} }
+ @using_i18n = true
+ Translator.translate_current_routes
+ end
+
+ private
+
+ def self.default_locale
+ I18n.default_locale.to_s
+ end
+
+ def self.init_dictionaries
+ @@dictionaries = { default_locale => {} }
+ end
+
+ def self.available_locales
+ @@dictionaries.keys.map(&:to_s).uniq
+ end
+
+ def self.original_static_segments
+ static_segments = []
+ (@@original_routes || Routes.routes).each do |r|
+ r.segments.select do |s|
+ static_segments << s.value if s.instance_of?(ActionController::Routing::StaticSegment)
+ end
+ end
+ static_segments.uniq.sort
+ end
+
+ # code shared by translation and application helpers,
+ # it generates a suffix code for a given locale: en-US -> en_us
+ def self.locale_suffix_code
+ 'locale.to_s.underscore'
+ end
+
+ class_eval <<-FOO
+ def self.locale_suffix(locale)
+ #{self.locale_suffix_code}
+ end
+ FOO
+ def self.translate_current_routes
+
+ RAILS_DEFAULT_LOGGER.info "Translating routes (default locale: #{default_locale})" if defined? RAILS_DEFAULT_LOGGER
+
+ @@original_routes = Routes.routes.dup # Array [routeA, routeB, ...]
+ @@original_named_routes = Routes.named_routes.routes.dup # Hash {:name => :route}
+ @@original_names = @@original_named_routes.keys
+
+ Routes.clear!
+ new_routes = []
+ new_named_routes = {}
+
+ @@original_routes.each do |old_route|
+
+ old_name = @@original_named_routes.index(old_route)
+ # process and add the translated ones
+ trans_routes, trans_named_routes = translate_route(old_route, old_name)
+
+ if old_name
+ new_named_routes.merge! trans_named_routes
+ end
+
+ new_routes.concat(trans_routes)
+
+ end
+
+ Routes.routes = new_routes
+ new_named_routes.each { |name, r| Routes.named_routes.add name, r }
+
+ @@original_names.each{ |old_name| add_untranslated_helpers_to_controllers_and_views(old_name) }
+ end
+
+ # The untranslated helper (root_path instead root_en_path) redirects according to the current locale
+ def self.add_untranslated_helpers_to_controllers_and_views(old_name)
+
+ ['path', 'url'].each do |suffix|
+ new_helper_name = "#{old_name}_#{suffix}"
+ def_new_helper = <<-DEF_NEW_HELPER
+ def #{new_helper_name}(*args)
+ send("#{old_name}_\#{locale_suffix(I18n.locale)}_#{suffix}", *args)
+ end
+ DEF_NEW_HELPER
+
+ [ActionController::Base, ActionView::Base, ActionMailer::Base].each { |d| d.module_eval(def_new_helper) }
+ ActionController::Routing::Routes.named_routes.helpers << new_helper_name.to_sym
+ end
+ end
+
+ def self.add_prefix?(lang)
+ @@prefix_on_default_locale || lang != default_locale
+ end
+
+ def self.translate_static_segment(segment, locale)
+ if @using_i18n
+ tmp = I18n.locale
+ I18n.locale = locale
+ value = I18n.t segment.value, :default => segment.value.dup
+ I18n.locale = tmp
+ else
+ value = @@dictionaries[locale][segment.value] || segment.value.dup
+ end
+ StaticSegment.new(value, :raw => segment.raw, :optional => segment.optional?)
+ end
+
+ def self.locale_segments(orig, locale)
+ segments = []
+
+ if add_prefix?(locale) # initial prefix i.e: /en-US
+ divider = DividerSegment.new(orig.segments.first.value, :optional => false) # divider ('/')
+ static = StaticSegment.new(locale, :optional => false) # static ('en-US')
+ segments += [divider, static]
+ end
+
+ orig.segments.each do |s|
+ if s.instance_of?(StaticSegment)
+ new_segment = translate_static_segment(s, locale)
+ else
+ new_segment = s.dup # just reference the original
+ end
+ segments << new_segment
+ end
+ segments
+ end
+
+ def self.locale_requirements(orig, locale)
+ orig.requirements.merge(@@locale_param_key => locale)
+ end
+
+ def self.translate_route_by_locale(orig, locale, orig_name=nil)
+ segments = locale_segments(orig, locale)
+ requirements = locale_requirements(orig, locale)
+ conditions = orig.conditions
+
+ Route.new(segments, requirements, conditions).freeze
+ end
+
+ def self.root_route?(route)
+ route.segments.length == 1
+ end
+
+ def self.translate_route(route, route_name = nil)
+ new_routes = []
+ new_named_routes = {}
+
+ if root_route?(route) && prefix_on_default_locale
+ # add the root route "as is" in addition to the translated versions
+ new_routes << route
+ new_named_routes[route_name] = route
+ end
+
+ available_locales.each do |locale|
+ translated = translate_route_by_locale(route, locale, route_name)
+ new_routes << translated
+ locale_suffix = locale_suffix(locale)
+ new_named_routes["#{route_name}_#{locale_suffix}".to_sym] = translated if route_name
+ end
+ [new_routes, new_named_routes]
+ end
+
+ end
+
+ end
+end
+
+# Add set_locale_from_url to controllers
+ActionController::Base.class_eval do
+ private
+ def set_locale_from_url
+ I18n.locale = params[ActionController::Routing::Translator.locale_param_key]
+ default_url_options({ActionController::Routing::Translator => I18n.locale })
+ end
+end
+
+# Add locale_suffix to controllers, views and mailers
+[ActionController::Base, ActionView::Base, ActionMailer::Base].map do |klass|
+ klass.class_eval do
+ private
+ def locale_suffix(locale)
+ eval ActionController::Routing::Translator.locale_suffix_code
+ end
+ end
+end
diff --git a/vendor/plugins/translate_routes/lib/translate_routes_i18n_available_locales.rb b/vendor/plugins/translate_routes/lib/translate_routes_i18n_available_locales.rb
new file mode 100644
index 000000000..644483059
--- /dev/null
+++ b/vendor/plugins/translate_routes/lib/translate_routes_i18n_available_locales.rb
@@ -0,0 +1,23 @@
+# monkeypatch I18n to get the available locales
+# (not strictly needed to use translate_routes, but recommended anyway)
+module I18n
+ class << self
+ def available_locales
+ backend.available_locales
+ end
+ end
+
+ module Backend
+ class Simple
+ def available_locales
+ init_translations unless initialized?
+ translations.keys
+ end
+ end
+ end
+end
+
+# load translation files from RAILS_ROOT/locales
+[:rb, :yml].each do |format|
+ I18n.load_path = Dir[File.join(RAILS_ROOT, 'locales', '*.{rb,yml}') ]
+end \ No newline at end of file
diff --git a/vendor/plugins/translate_routes/lib/translate_routes_test_helper.rb b/vendor/plugins/translate_routes/lib/translate_routes_test_helper.rb
new file mode 100644
index 000000000..5f589de55
--- /dev/null
+++ b/vendor/plugins/translate_routes/lib/translate_routes_test_helper.rb
@@ -0,0 +1,33 @@
+# Author: Raul Murciano [http://raul.murciano.net] for Domestika [http://domestika.org]
+# Copyright (c) 2007, Released under the MIT license (see MIT-LICENSE)
+
+require 'test_help'
+
+# Include default lang on your test requests (test requests doesn't support default_url_options):
+ActionController::TestProcess.class_eval do
+ unless method_defined?(:process_without_default_language)
+ def process_with_default_language(action, parameters = nil, session = nil, flash = nil)
+ lang_pair = {:locale, I18n.default_locale.to_s}
+ parameters = lang_pair.merge(parameters) rescue lang_pair
+ process_without_default_language(action, parameters, session, flash)
+ end
+
+ alias :process_without_default_language :process
+ alias :process :process_with_default_language
+ end
+end
+
+# Add untranslated helper for named routes to integration tests
+ActionController::Integration::Session.class_eval do
+ ['path', 'url'].each do |suffix|
+ ActionController::Routing::Translator.original_names.each do |old_name|
+ new_helper_name = "#{old_name}_#{suffix}"
+ def_new_helper = <<-DEF_NEW_HELPER
+ def #{new_helper_name}(*args)
+ send("#{old_name}_#{ActionController::Routing::Translator.locale_suffix(I18n.default_locale)}_#{suffix}", *args)
+ end
+ DEF_NEW_HELPER
+ eval def_new_helper
+ end
+ end
+end
diff --git a/vendor/plugins/translate_routes/tasks/translate_routes_tasks.rake b/vendor/plugins/translate_routes/tasks/translate_routes_tasks.rake
new file mode 100755
index 000000000..f94d7c9e4
--- /dev/null
+++ b/vendor/plugins/translate_routes/tasks/translate_routes_tasks.rake
@@ -0,0 +1,38 @@
+config_path = File.expand_path(File.join(RAILS_ROOT, 'config'))
+require File.join(config_path, 'environment')
+
+namespace :translate_routes do
+
+ desc "Updates yaml translation files for the given languages"
+ task :update_yaml, :langs do |task, args|
+ segments = ActionController::Routing::Translator.original_static_segments
+
+ if args[:langs].is_a?(String)
+ langs = args[:langs] + ' ' + ActionController::Routing::Translator.default_locale
+ langs.split.uniq.each do |lang|
+
+ file_path = File.join(config_path, "routes_#{lang}.yml");
+
+ if File.exists?(file_path)
+ puts "Updating #{file_path}"
+ translations = YAML.load_file(file_path)
+ f = File.open(file_path,'w')
+ else
+ puts "Creating #{file_path}"
+ translations = {}
+ f = File.new(file_path, 'w')
+ end
+
+ f.write "#{lang}:\n"
+ segments.each do |s|
+ translation = translations[lang][s] rescue ''
+ f.write " #{s}: #{translation}\n"
+ end
+ f.close
+ end
+
+ else
+ puts 'Missing parameters, usage example: rake translate_routes:update_yaml["fr de es"]'
+ end
+ end
+end
diff --git a/vendor/plugins/translate_routes/test/locales/routes.yml b/vendor/plugins/translate_routes/test/locales/routes.yml
new file mode 100644
index 000000000..380949823
--- /dev/null
+++ b/vendor/plugins/translate_routes/test/locales/routes.yml
@@ -0,0 +1,5 @@
+es:
+ people: gente
+
+en:
+ \ No newline at end of file
diff --git a/vendor/plugins/translate_routes/test/translate_routes_test.rb b/vendor/plugins/translate_routes/test/translate_routes_test.rb
new file mode 100755
index 000000000..9b8a2dfcf
--- /dev/null
+++ b/vendor/plugins/translate_routes/test/translate_routes_test.rb
@@ -0,0 +1,323 @@
+require 'test/unit'
+require 'rubygems'
+
+%w(actionpack activesupport actionmailer).each{ |gem_lib| gem gem_lib, '2.2.2' }
+
+%w( activesupport actionpack actionmailer action_controller action_controller/test_case
+ action_controller/test_process action_controller/assertions
+ ).each{ |lib| require lib }
+
+plugin_root = File.join(File.dirname(__FILE__), '..')
+require "#{plugin_root}/lib/translate_routes"
+RAILS_ROOT = plugin_root
+
+class PeopleController < ActionController::Base; end
+
+class TranslateRoutesTest < Test::Unit::TestCase
+
+ def setup
+ @controller = ActionController::Base.new
+ @view = ActionView::Base.new
+ end
+
+
+ # Unnamed routes with prefix on default locale:
+
+ def test_unnamed_empty_route_with_prefix
+ ActionController::Routing::Routes.draw { |map| map.connect '', :controller => 'people', :action => 'index' }
+ config_default_locale_settings('en', true)
+ ActionController::Routing::Translator.translate { |t| t['en'] = {}; t['es'] = {'people' => 'gente'} }
+
+ assert_routing '/es', :controller => 'people', :action => 'index', :locale => 'es'
+ assert_routing '/en', :controller => 'people', :action => 'index', :locale => 'en'
+ end
+
+ def test_unnamed_root_route_with_prefix
+ ActionController::Routing::Routes.draw { |map| map.connect '/', :controller => 'people', :action => 'index'}
+ config_default_locale_settings('es', true)
+ ActionController::Routing::Translator.translate_from_file 'test', 'locales', 'routes.yml'
+
+ assert_routing '/', :controller => 'people', :action => 'index'
+ assert_routing '/es', :controller => 'people', :action => 'index', :locale => 'es'
+ assert_routing '/en', :controller => 'people', :action => 'index', :locale => 'en'
+ end
+
+ def test_unnamed_untranslated_route_with_prefix
+ ActionController::Routing::Routes.draw { |map| map.connect 'foo', :controller => 'people', :action => 'index' }
+ config_default_locale_settings('en', true)
+ ActionController::Routing::Translator.translate { |t| t['en'] = {}; t['es'] = {'people' => 'gente'} }
+
+ assert_routing '/es/foo', :controller => 'people', :action => 'index', :locale => 'es'
+ assert_routing '/en/foo', :controller => 'people', :action => 'index', :locale => 'en'
+ end
+
+ def test_unnamed_translated_route_on_default_locale_with_prefix
+ ActionController::Routing::Routes.draw { |map| map.people 'people', :controller => 'people', :action => 'index'}
+ config_default_locale_settings('es', true)
+ ActionController::Routing::Translator.translate { |t| t['en'] = {}; t['es'] = {'people' => 'gente'} }
+
+ assert_routing '/es/gente', :controller => 'people', :action => 'index', :locale => 'es'
+ end
+
+ def test_unnamed_translated_route_on_non_default_locale_with_prefix
+ ActionController::Routing::Routes.draw { |map| map.connect 'people', :controller => 'people', :action => 'index' }
+ config_default_locale_settings('en', true)
+ ActionController::Routing::Translator.translate { |t| t['en'] = {}; t['es'] = {'people' => 'gente'} }
+
+ assert_routing '/es/gente', :controller => 'people', :action => 'index', :locale => 'es'
+ assert_routing '/en/people', :controller => 'people', :action => 'index', :locale => 'en'
+ end
+
+
+ # Unnamed routes without prefix on default locale:
+
+ def test_unnamed_empty_route_without_prefix
+ ActionController::Routing::Routes.draw { |map| map.connect '', :controller => 'people', :action => 'index' }
+ config_default_locale_settings('en', false)
+ ActionController::Routing::Translator.translate { |t| t['en'] = {}; t['es'] = {'people' => 'gente'} }
+
+ assert_routing '/es', :controller => 'people', :action => 'index', :locale => 'es'
+ assert_routing '/', :controller => 'people', :action => 'index', :locale => 'en'
+ end
+
+ def test_unnamed_root_route_without_prefix
+ ActionController::Routing::Routes.draw { |map| map.connect '/', :controller => 'people', :action => 'index'}
+ config_default_locale_settings('es', false)
+ ActionController::Routing::Translator.translate_from_file 'test', 'locales', 'routes.yml'
+
+ assert_routing '/', :controller => 'people', :action => 'index', :locale => 'es'
+ assert_routing '/en', :controller => 'people', :action => 'index', :locale => 'en'
+ assert_unrecognized_route '/es', :controller => 'people', :action => 'index', :locale => 'es'
+ end
+
+ def test_unnamed_untranslated_route_without_prefix
+ ActionController::Routing::Routes.draw { |map| map.connect 'foo', :controller => 'people', :action => 'index'}
+ config_default_locale_settings('en', false)
+ ActionController::Routing::Translator.translate { |t| t['en'] = {}; t['es'] = {'people' => 'gente'} }
+
+ assert_routing '/es/foo', :controller => 'people', :action => 'index', :locale => 'es'
+ assert_routing '/foo', :controller => 'people', :action => 'index', :locale => 'en'
+ end
+
+ def test_unnamed_translated_route_on_default_locale_without_prefix
+ ActionController::Routing::Routes.draw { |map| map.people 'people', :controller => 'people', :action => 'index'}
+ config_default_locale_settings('es', false)
+ ActionController::Routing::Translator.translate { |t| t['en'] = {}; t['es'] = {'people' => 'gente'} }
+
+ assert_routing '/en/people', :controller => 'people', :action => 'index', :locale => 'en'
+ assert_routing 'gente', :controller => 'people', :action => 'index', :locale => 'es'
+ end
+
+ def test_unnamed_translated_route_on_non_default_locale_without_prefix
+ ActionController::Routing::Routes.draw { |map| map.people 'people', :controller => 'people', :action => 'index'}
+ config_default_locale_settings('en', false)
+ ActionController::Routing::Translator.translate { |t| t['en'] = {}; t['es'] = {'people' => 'gente'} }
+
+ assert_routing '/es/gente', :controller => 'people', :action => 'index', :locale => 'es'
+ assert_routing '/people', :controller => 'people', :action => 'index', :locale => 'en'
+ end
+
+
+ # Named routes with prefix on default locale:
+
+ def test_named_empty_route_with_prefix
+ ActionController::Routing::Routes.draw { |map| map.people '', :controller => 'people', :action => 'index' }
+ config_default_locale_settings('en', true)
+ ActionController::Routing::Translator.translate { |t| t['en'] = {}; t['es'] = {'people' => 'gente'} }
+
+ assert_routing '/es', :controller => 'people', :action => 'index', :locale => 'es'
+ assert_routing '/en', :controller => 'people', :action => 'index', :locale => 'en'
+ assert_helpers_include :people_en, :people_es, :people
+ end
+
+ def test_named_root_route_with_prefix
+ ActionController::Routing::Routes.draw { |map| map.root :controller => 'people', :action => 'index'}
+ config_default_locale_settings('es', true)
+ ActionController::Routing::Translator.translate_from_file 'test', 'locales', 'routes.yml'
+
+ assert_routing '/', :controller => 'people', :action => 'index'
+ assert_routing '/es', :controller => 'people', :action => 'index', :locale => 'es'
+ assert_routing '/en', :controller => 'people', :action => 'index', :locale => 'en'
+ end
+
+ def test_named_untranslated_route_with_prefix
+ ActionController::Routing::Routes.draw { |map| map.people 'foo', :controller => 'people', :action => 'index'}
+ config_default_locale_settings('en', true)
+ ActionController::Routing::Translator.translate { |t| t['en'] = {}; t['es'] = {'people' => 'gente'} }
+
+ assert_routing '/es/foo', :controller => 'people', :action => 'index', :locale => 'es'
+ assert_routing '/en/foo', :controller => 'people', :action => 'index', :locale => 'en'
+ assert_helpers_include :people_en, :people_es, :people
+ end
+
+ def test_named_translated_route_on_default_locale_with_prefix
+ ActionController::Routing::Routes.draw { |map| map.people 'people', :controller => 'people', :action => 'index'}
+ config_default_locale_settings('es', true)
+ ActionController::Routing::Translator.translate { |t| t['en'] = {}; t['es'] = {'people' => 'gente'} }
+
+ assert_routing '/en/people', :controller => 'people', :action => 'index', :locale => 'en'
+ assert_routing '/es/gente', :controller => 'people', :action => 'index', :locale => 'es'
+ assert_helpers_include :people_en, :people_es, :people
+ end
+
+ def test_named_translated_route_on_non_default_locale_with_prefix
+ ActionController::Routing::Routes.draw { |map| map.people 'people', :controller => 'people', :action => 'index' }
+ config_default_locale_settings('en', true)
+ ActionController::Routing::Translator.translate { |t| t['en'] = {}; t['es'] = {'people' => 'gente'} }
+
+ assert_routing '/es/gente', :controller => 'people', :action => 'index', :locale => 'es'
+ assert_routing '/en/people', :controller => 'people', :action => 'index', :locale => 'en'
+ assert_helpers_include :people_en, :people_es, :people
+ end
+
+ # Named routes without prefix on default locale:
+
+ def test_named_empty_route_without_prefix
+ ActionController::Routing::Routes.draw { |map| map.people '', :controller => 'people', :action => 'index'}
+ config_default_locale_settings('es', false)
+ ActionController::Routing::Translator.translate { |t| t['es'] = {}; t['en'] = {'people' => 'gente'}; }
+
+ assert_routing '/en', :controller => 'people', :action => 'index', :locale => 'en'
+ assert_routing '/', :controller => 'people', :action => 'index', :locale => 'es'
+ assert_routing '', :controller => 'people', :action => 'index', :locale => 'es'
+ end
+
+ def test_named_root_route_without_prefix
+ ActionController::Routing::Routes.draw { |map| map.root :controller => 'people', :action => 'index'}
+ config_default_locale_settings('es', false)
+ ActionController::Routing::Translator.translate_from_file 'test', 'locales', 'routes.yml'
+
+ assert_routing '/', :controller => 'people', :action => 'index', :locale => 'es'
+ assert_routing '/en', :controller => 'people', :action => 'index', :locale => 'en'
+ assert_unrecognized_route '/es', :controller => 'people', :action => 'index', :locale => 'es'
+ end
+
+ def test_named_untranslated_route_without_prefix
+ ActionController::Routing::Routes.draw { |map| map.people 'foo', :controller => 'people', :action => 'index'}
+ config_default_locale_settings('es', false)
+ ActionController::Routing::Translator.translate { |t| t['en'] = {}; t['es'] = {'people' => 'gente'} }
+
+ assert_routing '/en/foo', :controller => 'people', :action => 'index', :locale => 'en'
+ assert_routing 'foo', :controller => 'people', :action => 'index', :locale => 'es'
+ assert_helpers_include :people_en, :people_es, :people
+ end
+
+ def test_named_translated_route_on_default_locale_without_prefix
+ ActionController::Routing::Routes.draw { |map| map.people 'people', :controller => 'people', :action => 'index'}
+ config_default_locale_settings('es', false)
+ ActionController::Routing::Translator.translate { |t| t['en'] = {}; t['es'] = {'people' => 'gente'} }
+
+ assert_routing '/en/people', :controller => 'people', :action => 'index', :locale => 'en'
+ assert_routing 'gente', :controller => 'people', :action => 'index', :locale => 'es'
+ assert_helpers_include :people_en, :people_es, :people
+ end
+
+ def test_named_translated_route_on_non_default_locale_without_prefix
+ ActionController::Routing::Routes.draw { |map| map.people 'people', :controller => 'people', :action => 'index'}
+ config_default_locale_settings('en', false)
+ ActionController::Routing::Translator.translate { |t| t['en'] = {}; t['es'] = {'people' => 'gente'} }
+
+ assert_routing '/people', :controller => 'people', :action => 'index', :locale => 'en'
+ assert_routing '/es/gente', :controller => 'people', :action => 'index', :locale => 'es'
+ assert_helpers_include :people_en, :people_es, :people
+ end
+
+ def test_languages_load_from_file
+ ActionController::Routing::Routes.draw { |map| map.people 'people', :controller => 'people', :action => 'index'}
+ config_default_locale_settings('en', false)
+ ActionController::Routing::Translator.translate_from_file 'test', 'locales', 'routes.yml'
+
+ assert_routing '/people', :controller => 'people', :action => 'index', :locale => 'en'
+ assert_routing '/es/gente', :controller => 'people', :action => 'index', :locale => 'es'
+ assert_helpers_include :people_en, :people_es, :people
+ end
+
+ def test_languages_load_from_file_without_dictionary_for_default_locale
+ ActionController::Routing::Routes.draw { |map| map.people 'people', :controller => 'people', :action => 'index'}
+ config_default_locale_settings('fr', false)
+ ActionController::Routing::Translator.translate_from_file 'test', 'locales', 'routes.yml'
+
+ assert_routing '/people', :controller => 'people', :action => 'index', :locale => 'fr'
+ assert_routing '/en/people', :controller => 'people', :action => 'index', :locale => 'en'
+ assert_routing '/es/gente', :controller => 'people', :action => 'index', :locale => 'es'
+ assert_helpers_include :people_fr, :people_en, :people_es, :people
+ end
+
+ def test_i18n_based_translations_setting_locales
+ ActionController::Routing::Routes.draw { |map| map.people 'people', :controller => 'people', :action => 'index'}
+ config_default_locale_settings('en', false)
+ I18n.backend = StubbedI18nBackend
+ ActionController::Routing::Translator.i18n('es')
+
+ assert_routing '/people', :controller => 'people', :action => 'index', :locale => 'en'
+ assert_routing '/es/gente', :controller => 'people', :action => 'index', :locale => 'es'
+ assert_helpers_include :people_en, :people_es, :people
+ end
+
+ def test_i18n_based_translations_taking_i18n_available_locales
+ ActionController::Routing::Routes.draw { |map| map.people 'people', :controller => 'people', :action => 'index'}
+ config_default_locale_settings('en', false)
+ I18n.stubs(:available_locales).at_least_once.returns StubbedI18nBackend.available_locales
+ I18n.backend = StubbedI18nBackend
+ ActionController::Routing::Translator.i18n
+
+ assert_routing '/people', :controller => 'people', :action => 'index', :locale => 'en'
+ assert_routing '/fr/people', :controller => 'people', :action => 'index', :locale => 'fr'
+ assert_routing '/es/gente', :controller => 'people', :action => 'index', :locale => 'es'
+ assert_helpers_include :people_fr, :people_en, :people_es, :people
+ end
+
+ def test_action_controller_gets_locale_setter
+ ActionController::Base.instance_methods.include?('set_locale_from_url')
+ end
+
+ def test_action_controller_gets_locale_suffix_helper
+ ActionController::Base.instance_methods.include?('locale_suffix')
+ end
+
+ def test_action_view_gets_locale_suffix_helper
+ ActionView::Base.instance_methods.include?('locale_suffix')
+ end
+
+ private
+
+ def assert_helpers_include(*helpers)
+ helpers.each do |helper|
+ ['_url', '_path'].each do |suffix|
+ [@controller, @view].each { |obj| assert_respond_to obj, "#{helper}#{suffix}".to_sym }
+ end
+ end
+ end
+
+ def assert_unrecognized_route(route_path, options)
+ assert_raise ActionController::RoutingError do
+ assert_routing route_path, options
+ end
+ end
+
+ def config_default_locale_settings(locale, with_prefix)
+ I18n.default_locale = locale
+ ActionController::Routing::Translator.prefix_on_default_locale = with_prefix
+ end
+
+ class StubbedI18nBackend
+
+
+ @@translations = {
+ 'es' => { 'people' => 'gente'},
+ 'fr' => {} # empty on purpose to test behaviour on incompleteness scenarios
+ }
+
+ def self.translate(locale, key, options)
+ @@translations[locale][key] || options[:default]
+ rescue
+ options[:default]
+ end
+
+ def self.available_locales
+ @@translations.keys
+ end
+
+ end
+
+end
diff --git a/vendor/plugins/translate_routes/uninstall.rb b/vendor/plugins/translate_routes/uninstall.rb
new file mode 100755
index 000000000..973833346
--- /dev/null
+++ b/vendor/plugins/translate_routes/uninstall.rb
@@ -0,0 +1 @@
+# Uninstall hook code here
diff --git a/vendor/rails-locales b/vendor/rails-locales
new file mode 160000
+Subproject d0fb0563129001c6114e351ba5738655733b833