gettext 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- data/COPYING +55 -0
- data/COPYING.ja +51 -0
- data/ChangeLog +492 -0
- data/NEWS +99 -0
- data/README +112 -0
- data/README.ja +115 -0
- data/Rakefile +170 -0
- data/bin/rgettext +22 -0
- data/bin/rmsgfmt +22 -0
- data/data/locale/de/LC_MESSAGES/rgettext.mo +0 -0
- data/data/locale/de/LC_MESSAGES/rmsgfmt.mo +0 -0
- data/data/locale/es/LC_MESSAGES/rgettext.mo +0 -0
- data/data/locale/es/LC_MESSAGES/rmsgfmt.mo +0 -0
- data/data/locale/fr/LC_MESSAGES/rgettext.mo +0 -0
- data/data/locale/fr/LC_MESSAGES/rmsgfmt.mo +0 -0
- data/data/locale/it/LC_MESSAGES/rgettext.mo +0 -0
- data/data/locale/it/LC_MESSAGES/rmsgfmt.mo +0 -0
- data/data/locale/ja/LC_MESSAGES/rgettext.mo +0 -0
- data/data/locale/ja/LC_MESSAGES/rmsgfmt.mo +0 -0
- data/data/locale/ko/LC_MESSAGES/rgettext.mo +0 -0
- data/data/locale/ko/LC_MESSAGES/rmsgfmt.mo +0 -0
- data/data/locale/pt_BR/LC_MESSAGES/rgettext.mo +0 -0
- data/data/locale/pt_BR/LC_MESSAGES/rmsgfmt.mo +0 -0
- data/data/locale/sv/LC_MESSAGES/rgettext.mo +0 -0
- data/data/locale/sv/LC_MESSAGES/rmsgfmt.mo +0 -0
- data/ext/gettext/gettext/MANIFEST +3 -0
- data/ext/gettext/gettext/_locale.c +86 -0
- data/ext/gettext/gettext/extconf.rb +20 -0
- data/lib/gettext.rb +127 -0
- data/lib/gettext/cgi.rb +83 -0
- data/lib/gettext/container.rb +30 -0
- data/lib/gettext/erb.rb +28 -0
- data/lib/gettext/iconv.rb +80 -0
- data/lib/gettext/locale.rb +71 -0
- data/lib/gettext/locale_default.rb +35 -0
- data/lib/gettext/locale_table_win32.rb +192 -0
- data/lib/gettext/locale_win32.rb +35 -0
- data/lib/gettext/mo.rb +262 -0
- data/lib/gettext/parser/erb.rb +34 -0
- data/lib/gettext/parser/glade.rb +98 -0
- data/lib/gettext/parser/ruby.rb +211 -0
- data/lib/gettext/rails.rb +40 -0
- data/lib/gettext/rgettext.rb +181 -0
- data/lib/gettext/rmsgfmt.rb +363 -0
- data/lib/gettext/textdomain.rb +168 -0
- data/lib/gettext/version.rb +12 -0
- data/po/de/rgettext.po +49 -0
- data/po/de/rmsgfmt.po +45 -0
- data/po/es/rgettext.po +47 -0
- data/po/es/rmsgfmt.po +43 -0
- data/po/fr/rgettext.po +47 -0
- data/po/fr/rmsgfmt.po +43 -0
- data/po/it/rgettext.po +47 -0
- data/po/it/rmsgfmt.po +44 -0
- data/po/ja/rgettext.po +49 -0
- data/po/ja/rmsgfmt.po +43 -0
- data/po/ko/rgettext.po +46 -0
- data/po/ko/rmsgfmt.po +40 -0
- data/po/pt_BR/rgettext.po +47 -0
- data/po/pt_BR/rmsgfmt.po +42 -0
- data/po/rgettext.pot +45 -0
- data/po/rmsgfmt.pot +40 -0
- data/po/sv/rgettext.po +48 -0
- data/po/sv/rmsgfmt.po +43 -0
- data/post-setup.rb +12 -0
- data/pre-setup.rb +12 -0
- data/samples/README +20 -0
- data/samples/cgi/README +43 -0
- data/samples/cgi/Rakefile +9 -0
- data/samples/cgi/cookie.cgi +57 -0
- data/samples/cgi/gettext.css +116 -0
- data/samples/cgi/helloerb.rhtml +27 -0
- data/samples/cgi/helloerb1.cgi +47 -0
- data/samples/cgi/helloerb2.cgi +41 -0
- data/samples/cgi/hellolib.rb +21 -0
- data/samples/cgi/http.rb +54 -0
- data/samples/cgi/index.cgi +104 -0
- data/samples/cgi/locale/de/LC_MESSAGES/helloerb1.mo +0 -0
- data/samples/cgi/locale/de/LC_MESSAGES/helloerb2.mo +0 -0
- data/samples/cgi/locale/de/LC_MESSAGES/hellolib.mo +0 -0
- data/samples/cgi/locale/de/LC_MESSAGES/main.mo +0 -0
- data/samples/cgi/locale/es/LC_MESSAGES/helloerb1.mo +0 -0
- data/samples/cgi/locale/es/LC_MESSAGES/helloerb2.mo +0 -0
- data/samples/cgi/locale/es/LC_MESSAGES/hellolib.mo +0 -0
- data/samples/cgi/locale/es/LC_MESSAGES/main.mo +0 -0
- data/samples/cgi/locale/fr/LC_MESSAGES/helloerb1.mo +0 -0
- data/samples/cgi/locale/fr/LC_MESSAGES/helloerb2.mo +0 -0
- data/samples/cgi/locale/fr/LC_MESSAGES/hellolib.mo +0 -0
- data/samples/cgi/locale/fr/LC_MESSAGES/main.mo +0 -0
- data/samples/cgi/locale/it/LC_MESSAGES/helloerb1.mo +0 -0
- data/samples/cgi/locale/it/LC_MESSAGES/helloerb2.mo +0 -0
- data/samples/cgi/locale/it/LC_MESSAGES/hellolib.mo +0 -0
- data/samples/cgi/locale/it/LC_MESSAGES/main.mo +0 -0
- data/samples/cgi/locale/ja/LC_MESSAGES/helloerb1.mo +0 -0
- data/samples/cgi/locale/ja/LC_MESSAGES/helloerb2.mo +0 -0
- data/samples/cgi/locale/ja/LC_MESSAGES/hellolib.mo +0 -0
- data/samples/cgi/locale/ja/LC_MESSAGES/main.mo +0 -0
- data/samples/cgi/locale/ko/LC_MESSAGES/helloerb1.mo +0 -0
- data/samples/cgi/locale/ko/LC_MESSAGES/helloerb2.mo +0 -0
- data/samples/cgi/locale/ko/LC_MESSAGES/hellolib.mo +0 -0
- data/samples/cgi/locale/ko/LC_MESSAGES/main.mo +0 -0
- data/samples/cgi/other.rhtml +20 -0
- data/samples/cgi/po/de/helloerb1.po +60 -0
- data/samples/cgi/po/de/helloerb2.po +52 -0
- data/samples/cgi/po/de/hellolib.po +23 -0
- data/samples/cgi/po/de/main.po +76 -0
- data/samples/cgi/po/es/helloerb1.po +59 -0
- data/samples/cgi/po/es/helloerb2.po +50 -0
- data/samples/cgi/po/es/hellolib.po +22 -0
- data/samples/cgi/po/es/main.po +74 -0
- data/samples/cgi/po/fr/helloerb1.po +59 -0
- data/samples/cgi/po/fr/helloerb2.po +51 -0
- data/samples/cgi/po/fr/hellolib.po +22 -0
- data/samples/cgi/po/fr/main.po +75 -0
- data/samples/cgi/po/helloerb1.pot +60 -0
- data/samples/cgi/po/helloerb2.pot +52 -0
- data/samples/cgi/po/hellolib.pot +23 -0
- data/samples/cgi/po/it/helloerb1.po +61 -0
- data/samples/cgi/po/it/helloerb2.po +52 -0
- data/samples/cgi/po/it/hellolib.po +24 -0
- data/samples/cgi/po/it/main.po +76 -0
- data/samples/cgi/po/ja/helloerb1.po +59 -0
- data/samples/cgi/po/ja/helloerb2.po +52 -0
- data/samples/cgi/po/ja/hellolib.po +23 -0
- data/samples/cgi/po/ja/main.po +76 -0
- data/samples/cgi/po/ko/helloerb1.po +58 -0
- data/samples/cgi/po/ko/helloerb2.po +52 -0
- data/samples/cgi/po/ko/hellolib.po +22 -0
- data/samples/cgi/po/ko/main.po +74 -0
- data/samples/cgi/po/main.pot +76 -0
- data/samples/cgi/ruby.bat +4 -0
- data/samples/hello.rb +12 -0
- data/samples/hello2.rb +15 -0
- data/samples/hello_noop.rb +18 -0
- data/samples/hello_plural.rb +15 -0
- data/samples/hello_textdomain.rb +12 -0
- data/samples/helloglade2.glade +70 -0
- data/samples/helloglade2.rb +24 -0
- data/samples/hellogtk.rb +26 -0
- data/samples/hellogtk2.rb +28 -0
- data/samples/hellotk.rb +18 -0
- data/samples/locale/de/LC_MESSAGES/hello.mo +0 -0
- data/samples/locale/de/LC_MESSAGES/hello2.mo +0 -0
- data/samples/locale/de/LC_MESSAGES/hello_noop.mo +0 -0
- data/samples/locale/de/LC_MESSAGES/hello_plural.mo +0 -0
- data/samples/locale/de/LC_MESSAGES/helloglade2.mo +0 -0
- data/samples/locale/de/LC_MESSAGES/hellogtk.mo +0 -0
- data/samples/locale/de/LC_MESSAGES/hellotk.mo +0 -0
- data/samples/locale/es/LC_MESSAGES/hello.mo +0 -0
- data/samples/locale/es/LC_MESSAGES/hello2.mo +0 -0
- data/samples/locale/es/LC_MESSAGES/hello_noop.mo +0 -0
- data/samples/locale/es/LC_MESSAGES/hello_plural.mo +0 -0
- data/samples/locale/es/LC_MESSAGES/helloglade2.mo +0 -0
- data/samples/locale/es/LC_MESSAGES/hellogtk.mo +0 -0
- data/samples/locale/es/LC_MESSAGES/hellotk.mo +0 -0
- data/samples/locale/fr/LC_MESSAGES/hello.mo +0 -0
- data/samples/locale/fr/LC_MESSAGES/hello2.mo +0 -0
- data/samples/locale/fr/LC_MESSAGES/hello_noop.mo +0 -0
- data/samples/locale/fr/LC_MESSAGES/hello_plural.mo +0 -0
- data/samples/locale/fr/LC_MESSAGES/helloglade2.mo +0 -0
- data/samples/locale/fr/LC_MESSAGES/hellogtk.mo +0 -0
- data/samples/locale/fr/LC_MESSAGES/hellotk.mo +0 -0
- data/samples/locale/it/LC_MESSAGES/hello.mo +0 -0
- data/samples/locale/it/LC_MESSAGES/hello2.mo +0 -0
- data/samples/locale/it/LC_MESSAGES/hello_noop.mo +0 -0
- data/samples/locale/it/LC_MESSAGES/hello_plural.mo +0 -0
- data/samples/locale/it/LC_MESSAGES/helloglade2.mo +0 -0
- data/samples/locale/it/LC_MESSAGES/hellogtk.mo +0 -0
- data/samples/locale/it/LC_MESSAGES/hellotk.mo +0 -0
- data/samples/locale/ja/LC_MESSAGES/hello.mo +0 -0
- data/samples/locale/ja/LC_MESSAGES/hello2.mo +0 -0
- data/samples/locale/ja/LC_MESSAGES/hello_noop.mo +0 -0
- data/samples/locale/ja/LC_MESSAGES/hello_plural.mo +0 -0
- data/samples/locale/ja/LC_MESSAGES/helloglade2.mo +0 -0
- data/samples/locale/ja/LC_MESSAGES/hellogtk.mo +0 -0
- data/samples/locale/ja/LC_MESSAGES/hellotk.mo +0 -0
- data/samples/locale/ko/LC_MESSAGES/hello.mo +0 -0
- data/samples/locale/ko/LC_MESSAGES/hello2.mo +0 -0
- data/samples/locale/ko/LC_MESSAGES/hello_noop.mo +0 -0
- data/samples/locale/ko/LC_MESSAGES/hello_plural.mo +0 -0
- data/samples/locale/ko/LC_MESSAGES/helloglade2.mo +0 -0
- data/samples/locale/ko/LC_MESSAGES/hellogtk.mo +0 -0
- data/samples/locale/ko/LC_MESSAGES/hellotk.mo +0 -0
- data/samples/locale/pt_BR/LC_MESSAGES/hello.mo +0 -0
- data/samples/locale/pt_BR/LC_MESSAGES/hello2.mo +0 -0
- data/samples/locale/pt_BR/LC_MESSAGES/hello_noop.mo +0 -0
- data/samples/locale/pt_BR/LC_MESSAGES/hello_plural.mo +0 -0
- data/samples/locale/pt_BR/LC_MESSAGES/helloglade2.mo +0 -0
- data/samples/locale/pt_BR/LC_MESSAGES/hellogtk.mo +0 -0
- data/samples/locale/pt_BR/LC_MESSAGES/hellotk.mo +0 -0
- data/samples/locale/sv/LC_MESSAGES/hello.mo +0 -0
- data/samples/locale/sv/LC_MESSAGES/hello2.mo +0 -0
- data/samples/locale/sv/LC_MESSAGES/hello_noop.mo +0 -0
- data/samples/locale/sv/LC_MESSAGES/hello_plural.mo +0 -0
- data/samples/locale/sv/LC_MESSAGES/helloglade2.mo +0 -0
- data/samples/locale/sv/LC_MESSAGES/hellogtk.mo +0 -0
- data/samples/locale/sv/LC_MESSAGES/hellotk.mo +0 -0
- data/samples/makemo.rb +3 -0
- data/samples/po/de/hello.po +20 -0
- data/samples/po/de/hello2.po +28 -0
- data/samples/po/de/hello_noop.po +24 -0
- data/samples/po/de/hello_plural.po +22 -0
- data/samples/po/de/helloglade2.po +27 -0
- data/samples/po/de/hellogtk.po +20 -0
- data/samples/po/de/hellotk.po +20 -0
- data/samples/po/es/hello.po +21 -0
- data/samples/po/es/hello2.po +28 -0
- data/samples/po/es/hello_noop.po +24 -0
- data/samples/po/es/hello_plural.po +23 -0
- data/samples/po/es/helloglade2.po +28 -0
- data/samples/po/es/hellogtk.po +20 -0
- data/samples/po/es/hellotk.po +20 -0
- data/samples/po/fr/hello.po +18 -0
- data/samples/po/fr/hello2.po +26 -0
- data/samples/po/fr/hello_noop.po +22 -0
- data/samples/po/fr/hello_plural.po +21 -0
- data/samples/po/fr/helloglade2.po +27 -0
- data/samples/po/fr/hellogtk.po +18 -0
- data/samples/po/fr/hellotk.po +18 -0
- data/samples/po/hello.pot +20 -0
- data/samples/po/hello2.pot +28 -0
- data/samples/po/hello_noop.pot +24 -0
- data/samples/po/hello_plural.pot +22 -0
- data/samples/po/helloglade2.pot +27 -0
- data/samples/po/hellogtk.pot +20 -0
- data/samples/po/hellotk.pot +20 -0
- data/samples/po/it/hello.po +20 -0
- data/samples/po/it/hello2.po +28 -0
- data/samples/po/it/hello_noop.po +24 -0
- data/samples/po/it/hello_plural.po +24 -0
- data/samples/po/it/helloglade2.po +28 -0
- data/samples/po/it/hellogtk.po +21 -0
- data/samples/po/it/hellotk.po +21 -0
- data/samples/po/ja/hello.po +20 -0
- data/samples/po/ja/hello2.po +28 -0
- data/samples/po/ja/hello_noop.po +23 -0
- data/samples/po/ja/hello_plural.po +22 -0
- data/samples/po/ja/helloglade2.po +26 -0
- data/samples/po/ja/hellogtk.po +19 -0
- data/samples/po/ja/hellotk.po +19 -0
- data/samples/po/ko/hello.po +19 -0
- data/samples/po/ko/hello2.po +27 -0
- data/samples/po/ko/hello_noop.po +23 -0
- data/samples/po/ko/hello_plural.po +23 -0
- data/samples/po/ko/helloglade2.po +29 -0
- data/samples/po/ko/hellogtk.po +19 -0
- data/samples/po/ko/hellotk.po +20 -0
- data/samples/po/pt_BR/hello.po +20 -0
- data/samples/po/pt_BR/hello2.po +28 -0
- data/samples/po/pt_BR/hello_noop.po +24 -0
- data/samples/po/pt_BR/hello_plural.po +23 -0
- data/samples/po/pt_BR/helloglade2.po +28 -0
- data/samples/po/pt_BR/hellogtk.po +20 -0
- data/samples/po/pt_BR/hellotk.po +20 -0
- data/samples/po/sv/hello.po +20 -0
- data/samples/po/sv/hello2.po +28 -0
- data/samples/po/sv/hello_noop.po +24 -0
- data/samples/po/sv/hello_plural.po +23 -0
- data/samples/po/sv/helloglade2.po +28 -0
- data/samples/po/sv/hellogtk.po +20 -0
- data/samples/po/sv/hellotk.po +20 -0
- data/samples/rails/README +79 -0
- data/samples/rails/Rakefile +212 -0
- data/samples/rails/app/controllers/application.rb +37 -0
- data/samples/rails/app/controllers/blog_controller.rb +62 -0
- data/samples/rails/app/helpers/application_helper.rb +3 -0
- data/samples/rails/app/helpers/blog_helper.rb +61 -0
- data/samples/rails/app/models/article.rb +2 -0
- data/samples/rails/app/views/blog/_form.rhtml +25 -0
- data/samples/rails/app/views/blog/edit.rhtml +22 -0
- data/samples/rails/app/views/blog/list.rhtml +30 -0
- data/samples/rails/app/views/blog/new.rhtml +21 -0
- data/samples/rails/app/views/blog/show.rhtml +18 -0
- data/samples/rails/app/views/layouts/blog.rhtml +36 -0
- data/samples/rails/config/database.yml +32 -0
- data/samples/rails/config/environment.rb +88 -0
- data/samples/rails/config/environments/development.rb +14 -0
- data/samples/rails/config/environments/production.rb +8 -0
- data/samples/rails/config/environments/test.rb +17 -0
- data/samples/rails/config/routes.rb +19 -0
- data/samples/rails/db/mysql.sql +8 -0
- data/samples/rails/db/postgresql.sql +7 -0
- data/samples/rails/locale/de/LC_MESSAGES/blog.mo +0 -0
- data/samples/rails/locale/de/LC_MESSAGES/lang_helper.mo +0 -0
- data/samples/rails/locale/es/LC_MESSAGES/blog.mo +0 -0
- data/samples/rails/locale/es/LC_MESSAGES/lang_helper.mo +0 -0
- data/samples/rails/locale/fr/LC_MESSAGES/blog.mo +0 -0
- data/samples/rails/locale/fr/LC_MESSAGES/lang_helper.mo +0 -0
- data/samples/rails/locale/ja/LC_MESSAGES/blog.mo +0 -0
- data/samples/rails/locale/ja/LC_MESSAGES/lang_helper.mo +0 -0
- data/samples/rails/locale/ko/LC_MESSAGES/blog.mo +0 -0
- data/samples/rails/locale/ko/LC_MESSAGES/lang_helper.mo +0 -0
- data/samples/rails/po/blog.pot +90 -0
- data/samples/rails/po/de/blog.po +91 -0
- data/samples/rails/po/de/lang_helper.po +28 -0
- data/samples/rails/po/es/blog.po +90 -0
- data/samples/rails/po/es/lang_helper.po +28 -0
- data/samples/rails/po/fr/blog.po +89 -0
- data/samples/rails/po/fr/lang_helper.po +27 -0
- data/samples/rails/po/ja/blog.po +89 -0
- data/samples/rails/po/ja/lang_helper.po +28 -0
- data/samples/rails/po/ko/blog.po +87 -0
- data/samples/rails/po/ko/lang_helper.po +26 -0
- data/samples/rails/po/lang_helper.pot +28 -0
- data/samples/rails/public/404.html +8 -0
- data/samples/rails/public/500.html +8 -0
- data/samples/rails/public/dispatch.cgi +10 -0
- data/samples/rails/public/dispatch.fcgi +24 -0
- data/samples/rails/public/dispatch.rb +10 -0
- data/samples/rails/public/favicon.ico +0 -0
- data/samples/rails/public/index.html +78 -0
- data/samples/rails/public/javascripts/controls.js +446 -0
- data/samples/rails/public/javascripts/dragdrop.js +537 -0
- data/samples/rails/public/javascripts/effects.js +612 -0
- data/samples/rails/public/javascripts/prototype.js +1038 -0
- data/samples/rails/public/stylesheets/blog.css +132 -0
- data/samples/rails/public/stylesheets/scaffold.css +74 -0
- data/samples/rails/script/benchmarker +19 -0
- data/samples/rails/script/breakpointer +4 -0
- data/samples/rails/script/console +23 -0
- data/samples/rails/script/destroy +7 -0
- data/samples/rails/script/generate +7 -0
- data/samples/rails/script/profiler +34 -0
- data/samples/rails/script/runner +29 -0
- data/samples/rails/script/server +49 -0
- data/samples/rails/test/fixtures/articles.yml +5 -0
- data/samples/rails/test/functional/blog_controller_test.rb +88 -0
- data/samples/rails/test/test_helper.rb +26 -0
- data/samples/rails/test/unit/article_test.rb +14 -0
- data/samples/rails/vendor/lang_helper.rb +49 -0
- data/setup.rb +1360 -0
- data/src/rmsgfmt.ry +233 -0
- data/test/README +10 -0
- data/test/gettext_runner.rb +18 -0
- data/test/gettext_test.rb +202 -0
- data/test/gettext_test_parser.rb +80 -0
- data/test/locale/cr/LC_MESSAGES/plural.mo +0 -0
- data/test/locale/da/LC_MESSAGES/plural.mo +0 -0
- data/test/locale/da/LC_MESSAGES/plural_error.mo +0 -0
- data/test/locale/fr/LC_MESSAGES/plural.mo +0 -0
- data/test/locale/fr/LC_MESSAGES/plural_error.mo +0 -0
- data/test/locale/fr/LC_MESSAGES/test1.mo +0 -0
- data/test/locale/fr/LC_MESSAGES/test2.mo +0 -0
- data/test/locale/ir/LC_MESSAGES/plural.mo +0 -0
- data/test/locale/ja/LC_MESSAGES/plural.mo +0 -0
- data/test/locale/ja/LC_MESSAGES/plural_error.mo +0 -0
- data/test/locale/ja/LC_MESSAGES/test1.mo +0 -0
- data/test/locale/ja/LC_MESSAGES/test2.mo +0 -0
- data/test/locale/ja/LC_MESSAGES/test_rubyparser.mo +0 -0
- data/test/locale/ja/LC_MESSAGES/test_sgettext.mo +0 -0
- data/test/locale/la/LC_MESSAGES/plural.mo +0 -0
- data/test/locale/li/LC_MESSAGES/plural.mo +0 -0
- data/test/locale/po/LC_MESSAGES/plural.mo +0 -0
- data/test/locale/sl/LC_MESSAGES/plural.mo +0 -0
- data/test/po/cr/plural.po +23 -0
- data/test/po/da/plural.po +22 -0
- data/test/po/da/plural_error.po +20 -0
- data/test/po/fr/plural.po +22 -0
- data/test/po/fr/plural_error.po +19 -0
- data/test/po/fr/test1.po +23 -0
- data/test/po/fr/test2.po +19 -0
- data/test/po/ir/plural.po +23 -0
- data/test/po/ja/plural.po +22 -0
- data/test/po/ja/plural_error.po +20 -0
- data/test/po/ja/test1.po +23 -0
- data/test/po/ja/test2.po +19 -0
- data/test/po/ja/test_rubyparser.po +43 -0
- data/test/po/ja/test_sgettext.po +47 -0
- data/test/po/la/plural.po +23 -0
- data/test/po/li/plural.po +23 -0
- data/test/po/po/plural.po +23 -0
- data/test/po/sl/plural.po +24 -0
- data/test/test.sh +7 -0
- data/test/test_erb.rhtml +15 -0
- data/test/test_gladeparser.glade +183 -0
- data/test/test_rubyparser.rb +77 -0
- data/test/test_rubyparser_N.rb +66 -0
- data/test/test_rubyparser_n.rb +64 -0
- data/test/test_sgettext.rb +48 -0
- data/test/testlib1.rb +20 -0
- data/test/testlib2.rb +11 -0
- data/test/testlib3.rb +12 -0
- data/test/testlib4.rb +11 -0
- metadata +580 -0
@@ -0,0 +1,37 @@
|
|
1
|
+
# application.rb - a sample script for Ruby on Rails
|
2
|
+
#
|
3
|
+
# Copyright (C) 2005 Masao Mutoh
|
4
|
+
#
|
5
|
+
# This file is distributed under the same license as Ruby-GetText-Package.
|
6
|
+
|
7
|
+
# Require 'gettext/rails' first.
|
8
|
+
require 'gettext/rails'
|
9
|
+
|
10
|
+
# lang_helper is sample helper. It has its own textdomain(lang_helper).
|
11
|
+
# (See vendor/lang_helper.rb).
|
12
|
+
require 'lang_helper'
|
13
|
+
|
14
|
+
class ApplicationController < ActionController::Base
|
15
|
+
# for lang_helper.
|
16
|
+
helper LangHelper
|
17
|
+
include LangHelper
|
18
|
+
|
19
|
+
# Initialize GetText and Content-Type.
|
20
|
+
# You need to call this once a request from WWW browser.
|
21
|
+
# You can select the scope of the textdomain.
|
22
|
+
# 1. If you call bindtextdomain in ApplicationControler,
|
23
|
+
# The textdomain apply whole your application.
|
24
|
+
# 2. If you call bindtextdomain in each controllers
|
25
|
+
# (In this sample, blog_controller.rb is applicable)
|
26
|
+
# The textdomains are applied to each controllers/views.
|
27
|
+
before_filter :init_gettext
|
28
|
+
def init_gettext
|
29
|
+
# The locale is set automatically or use Cookie value, parameter "lang".
|
30
|
+
bindtextdomain("blog", request.cgi) #You need to pass CGI object first.
|
31
|
+
|
32
|
+
# Or set locale forcely.
|
33
|
+
#bindtextdomain("blog", request.cgi, "ja")
|
34
|
+
|
35
|
+
@headers["Content-Type"] = "text/html; charset=UTF-8"
|
36
|
+
end
|
37
|
+
end
|
@@ -0,0 +1,62 @@
|
|
1
|
+
# blog_controller.rb - a sample script for Ruby on Rails
|
2
|
+
#
|
3
|
+
# Copyright (C) 2005 Masao Mutoh
|
4
|
+
#
|
5
|
+
# This file is distributed under the same license as Ruby-GetText-Package.
|
6
|
+
|
7
|
+
class BlogController < ApplicationController
|
8
|
+
# If you want to have textdomains each as controllers.
|
9
|
+
# You need to bind textdomain here.
|
10
|
+
|
11
|
+
#before_filter :init_gettext
|
12
|
+
#def init_gettext
|
13
|
+
# bindtextdomain("blog", request.cgi) #You need to pass CGI object first.
|
14
|
+
# @headers["Content-Type"] = "text/html; charset=UTF-8"
|
15
|
+
#end
|
16
|
+
|
17
|
+
def index
|
18
|
+
list
|
19
|
+
render :action => 'list'
|
20
|
+
end
|
21
|
+
|
22
|
+
def list
|
23
|
+
@articles = Article.find(:all, :order => 'lastupdate desc, id desc')
|
24
|
+
end
|
25
|
+
|
26
|
+
def show
|
27
|
+
@article = Article.find(params[:id])
|
28
|
+
end
|
29
|
+
|
30
|
+
def new
|
31
|
+
@article = Article.new
|
32
|
+
end
|
33
|
+
|
34
|
+
def create
|
35
|
+
@article = Article.new(params[:article])
|
36
|
+
if @article.save
|
37
|
+
flash[:notice] = _('Article was successfully created.')
|
38
|
+
redirect_to :action => 'list'
|
39
|
+
else
|
40
|
+
render :action => 'new'
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
def edit
|
45
|
+
@article = Article.find(params[:id])
|
46
|
+
end
|
47
|
+
|
48
|
+
def update
|
49
|
+
@article = Article.find(params[:id])
|
50
|
+
if @article.update_attributes(params[:article])
|
51
|
+
flash[:notice] = _('Article was successfully updated.')
|
52
|
+
redirect_to :action => 'show', :id => @article
|
53
|
+
else
|
54
|
+
render :action => 'edit'
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
def destroy
|
59
|
+
Article.find(params[:id]).destroy
|
60
|
+
redirect_to :action => 'list'
|
61
|
+
end
|
62
|
+
end
|
@@ -0,0 +1,61 @@
|
|
1
|
+
# blog_helper.rb - a sample script for Ruby on Rails
|
2
|
+
#
|
3
|
+
# Copyright (C) 2005 Masao Mutoh
|
4
|
+
#
|
5
|
+
# This file is distributed under the same license as Ruby-GetText-Package.
|
6
|
+
|
7
|
+
#
|
8
|
+
# BlogHelper is bound a textdomain which is bound in application.rb or
|
9
|
+
# blog_controller.rb.
|
10
|
+
# So you don't need to call bindtextdomain here.
|
11
|
+
#
|
12
|
+
|
13
|
+
module BlogHelper
|
14
|
+
def show_article(article, show_link = true)
|
15
|
+
ret = %Q[
|
16
|
+
<h2>#{article["title"]} (#{article["lastupdate"]})</h2>
|
17
|
+
<pre>#{article["description"]}</pre>
|
18
|
+
]
|
19
|
+
if show_link
|
20
|
+
ret += %Q[<p style="text-align:right;margin-right:3em">#{link_to(_("Show"), :action => 'show', :id => article)}</p>]
|
21
|
+
end
|
22
|
+
ret
|
23
|
+
end
|
24
|
+
|
25
|
+
def show_list(articles)
|
26
|
+
ret = ""
|
27
|
+
articles.each_with_index do |article, index|
|
28
|
+
ret << %Q[<li>#{article["lastupdate"]}: #{link_to((h article["title"]), :action => 'show', :id => article)}</li>]
|
29
|
+
break if index > 9
|
30
|
+
end
|
31
|
+
ret
|
32
|
+
end
|
33
|
+
|
34
|
+
def show_navigation
|
35
|
+
articles = BlogController.new.list
|
36
|
+
%Q[
|
37
|
+
<div class="navigation">
|
38
|
+
<img src="http://web.rubyonrails.com/images/rails_logo_remix.gif" />
|
39
|
+
<div class="window">
|
40
|
+
#{show_language}
|
41
|
+
</div>
|
42
|
+
<div class="window">
|
43
|
+
<h4>] + _("Ruby Links") + %Q[</h4>
|
44
|
+
<dl>
|
45
|
+
<li><a href="http://www.ruby-lang.org/">Ruby</a></li>
|
46
|
+
<li><a href="http://rubyforge.org/projects/gettext/">Ruby-GetText-Package</a></li>
|
47
|
+
<li><a href="http://wiki.rubyonrails.com/">Ruby on Rails Wiki</a></li>
|
48
|
+
</dl>
|
49
|
+
</div>
|
50
|
+
<div class="window">
|
51
|
+
<h4>] + _("Old articles") + %Q[</h4>
|
52
|
+
<p>
|
53
|
+
<dl>
|
54
|
+
#{show_list(articles)}
|
55
|
+
</dl>
|
56
|
+
</p>
|
57
|
+
</div>
|
58
|
+
</div>
|
59
|
+
]
|
60
|
+
end
|
61
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
<%
|
2
|
+
# _form.rhtml - a sample script for Ruby on Rails
|
3
|
+
#
|
4
|
+
# Copyright (C) 2005 Masao Mutoh
|
5
|
+
#
|
6
|
+
# This file is distributed under the same license as Ruby-GetText-Package.
|
7
|
+
|
8
|
+
# Views are bound a textdomain which is bound in application.rb or
|
9
|
+
# blog_controller.rb.
|
10
|
+
# So you don't need to call bindtextdomain here.
|
11
|
+
%>
|
12
|
+
|
13
|
+
<%= error_messages_for 'article' %>
|
14
|
+
|
15
|
+
<!--[form:article]-->
|
16
|
+
<p><label for="article_lastupdate"><%= _("Lastupdate") %></label><br/>
|
17
|
+
<%= date_select 'article', 'lastupdate', :use_month_numbers => true %></p>
|
18
|
+
<p><label for="article_title"><%= _("Title") %></label><br/>
|
19
|
+
<%= text_field 'article', 'title' %></p>
|
20
|
+
|
21
|
+
<p><label for="article_description"><%= _("Description") %></label><br/>
|
22
|
+
<%= text_area 'article', 'description' %></p>
|
23
|
+
|
24
|
+
<!--[eoform:article]-->
|
25
|
+
|
@@ -0,0 +1,22 @@
|
|
1
|
+
<%
|
2
|
+
# edit.rhtml - a sample script for Ruby on Rails
|
3
|
+
#
|
4
|
+
# Copyright (C) 2005 Masao Mutoh
|
5
|
+
#
|
6
|
+
# This file is distributed under the same license as Ruby-GetText-Package.
|
7
|
+
|
8
|
+
# Views are bound a textdomain which is bound in application.rb or
|
9
|
+
# blog_controller.rb.
|
10
|
+
# So you don't need to call bindtextdomain here.
|
11
|
+
%>
|
12
|
+
<h1><%= _('Editing article') %></h1>
|
13
|
+
|
14
|
+
<%= start_form_tag :action => 'update', :id => @article %>
|
15
|
+
<%= render_partial 'form' %>
|
16
|
+
<p><%= submit_tag _('Edit') %></p>
|
17
|
+
<%= end_form_tag %>
|
18
|
+
<p>
|
19
|
+
<%= link_to _('Show'), :action => 'show', :id => @article %> |
|
20
|
+
<%= link_to _('Destroy'), {:action => 'destroy', :id => @article}, :confirm => _('Are you sure?') %> |
|
21
|
+
<%= link_to _('Back'), :action => 'list' %>
|
22
|
+
</p>
|
@@ -0,0 +1,30 @@
|
|
1
|
+
<%
|
2
|
+
# list.rhtml - a sample script for Ruby on Rails
|
3
|
+
#
|
4
|
+
# Copyright (C) 2005 Masao Mutoh
|
5
|
+
#
|
6
|
+
# This file is distributed under the same license as Ruby-GetText-Package.
|
7
|
+
|
8
|
+
# Views are bound a textdomain which is bound in application.rb or
|
9
|
+
# blog_controller.rb.
|
10
|
+
# So you don't need to call bindtextdomain here.
|
11
|
+
%>
|
12
|
+
|
13
|
+
<h1><%= _("GetText Sample Blog on RoR") %></h1>
|
14
|
+
<p style="text-align:right">
|
15
|
+
<%= link_to _('New article'), :action => 'new' %>
|
16
|
+
</p>
|
17
|
+
<% if @articles.size == 0 %>
|
18
|
+
<p><%= _("No articles were found.") %></p>
|
19
|
+
<% else %>
|
20
|
+
<%
|
21
|
+
@articles.each_with_index do |article, index|
|
22
|
+
%>
|
23
|
+
<%= show_article(article) %>
|
24
|
+
<%
|
25
|
+
break if index > 1
|
26
|
+
end
|
27
|
+
%>
|
28
|
+
<% end %>
|
29
|
+
|
30
|
+
|
@@ -0,0 +1,21 @@
|
|
1
|
+
<%
|
2
|
+
# new.rhtml - a sample script for Ruby on Rails
|
3
|
+
#
|
4
|
+
# Copyright (C) 2005 Masao Mutoh
|
5
|
+
#
|
6
|
+
# This file is distributed under the same license as Ruby-GetText-Package.
|
7
|
+
|
8
|
+
# Views are bound a textdomain which is bound in application.rb or
|
9
|
+
# blog_controller.rb.
|
10
|
+
# So you don't need to call bindtextdomain here.
|
11
|
+
%>
|
12
|
+
|
13
|
+
<h1><%= _('New article') %></h1>
|
14
|
+
|
15
|
+
<%= start_form_tag :action => 'create' %>
|
16
|
+
<%= render_partial 'form' %>
|
17
|
+
<p><%= submit_tag _('Create') %></p>
|
18
|
+
<%= end_form_tag %>
|
19
|
+
<p>
|
20
|
+
<%= link_to _('Back'), :action => 'list' %>
|
21
|
+
</p>
|
@@ -0,0 +1,18 @@
|
|
1
|
+
<%
|
2
|
+
# show.rhtml - a sample script for Ruby on Rails
|
3
|
+
#
|
4
|
+
# Copyright (C) 2005 Masao Mutoh
|
5
|
+
#
|
6
|
+
# This file is distributed under the same license as Ruby-GetText-Package.
|
7
|
+
|
8
|
+
# Views are bound a textdomain which is bound in application.rb or
|
9
|
+
# blog_controller.rb.
|
10
|
+
# So you don't need to call bindtextdomain here.
|
11
|
+
%>
|
12
|
+
|
13
|
+
<h1><%= _("GetText Sample Blog on RoR") %></h1>
|
14
|
+
<%= show_article(@article, false) %>
|
15
|
+
<p>
|
16
|
+
<%= link_to _('Edit'), :action => 'edit', :id => @article %> |
|
17
|
+
<%= link_to _('Back'), :action => 'list' %>
|
18
|
+
</p>
|
@@ -0,0 +1,36 @@
|
|
1
|
+
<%
|
2
|
+
# blog.rhtml - a sample script for Ruby on Rails
|
3
|
+
#
|
4
|
+
# Copyright (C) 2005 Masao Mutoh
|
5
|
+
#
|
6
|
+
# This file is distributed under the same license as Ruby-GetText-Package.
|
7
|
+
|
8
|
+
# Views are bound a textdomain which is bound in application.rb or
|
9
|
+
# blog_controller.rb.
|
10
|
+
# So you don't need to call bindtextdomain here.
|
11
|
+
%>
|
12
|
+
<html>
|
13
|
+
<head>
|
14
|
+
<title><%= _('GetText Sample Blog on RoR') %></title>
|
15
|
+
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
|
16
|
+
<%= stylesheet_link_tag 'scaffold' %>
|
17
|
+
<%= stylesheet_link_tag 'blog' %>
|
18
|
+
</head>
|
19
|
+
<body>
|
20
|
+
<div class="main">
|
21
|
+
<% if flash[:notice] %>
|
22
|
+
<p class="notice"><%= flash[:notice] %></p>
|
23
|
+
<% end %>
|
24
|
+
|
25
|
+
<%= @content_for_layout %>
|
26
|
+
|
27
|
+
<div class="copyright">
|
28
|
+
Copyright (C) 2005 Masao Mutoh
|
29
|
+
</div>
|
30
|
+
|
31
|
+
</div>
|
32
|
+
|
33
|
+
<%= show_navigation %>
|
34
|
+
|
35
|
+
</body>
|
36
|
+
</html>
|
@@ -0,0 +1,32 @@
|
|
1
|
+
development:
|
2
|
+
adapter: mysql
|
3
|
+
socket: /var/lib/mysql/mysql.sock
|
4
|
+
# socket: /tmp/mysql.sock
|
5
|
+
database: blog
|
6
|
+
host: localhost
|
7
|
+
username: root
|
8
|
+
password:
|
9
|
+
|
10
|
+
#development:
|
11
|
+
# adapter: postgresql
|
12
|
+
# database: blog
|
13
|
+
# host: localhost
|
14
|
+
# username: mutoh
|
15
|
+
# password:
|
16
|
+
|
17
|
+
# Warning: The database defined as 'test' will be erased and
|
18
|
+
# re-generated from your development database when you run 'rake'.
|
19
|
+
# Do not set this db to the same as development or production.
|
20
|
+
test:
|
21
|
+
adapter: mysql
|
22
|
+
database: rails_test
|
23
|
+
host: localhost
|
24
|
+
username: root
|
25
|
+
password:
|
26
|
+
|
27
|
+
production:
|
28
|
+
adapter: mysql
|
29
|
+
database: rails_production
|
30
|
+
host: localhost
|
31
|
+
username: root
|
32
|
+
password:
|
@@ -0,0 +1,88 @@
|
|
1
|
+
# Load the Rails framework and configure your application.
|
2
|
+
# You can include your own configuration at the end of this file.
|
3
|
+
#
|
4
|
+
# Be sure to restart your webserver when you modify this file.
|
5
|
+
|
6
|
+
$KCODE = "u"
|
7
|
+
|
8
|
+
# The path to the root directory of your application.
|
9
|
+
RAILS_ROOT = File.join(File.dirname(__FILE__), '..')
|
10
|
+
|
11
|
+
# The environment your application is currently running. Don't set
|
12
|
+
# this here; put it in your webserver's configuration as the RAILS_ENV
|
13
|
+
# environment variable instead.
|
14
|
+
#
|
15
|
+
# See config/environments/*.rb for environment-specific configuration.
|
16
|
+
RAILS_ENV = ENV['RAILS_ENV'] || 'development'
|
17
|
+
|
18
|
+
|
19
|
+
# Load the Rails framework. Mock classes for testing come first.
|
20
|
+
ADDITIONAL_LOAD_PATHS = ["#{RAILS_ROOT}/test/mocks/#{RAILS_ENV}"]
|
21
|
+
|
22
|
+
# Then model subdirectories.
|
23
|
+
ADDITIONAL_LOAD_PATHS.concat(Dir["#{RAILS_ROOT}/app/models/[_a-z]*"])
|
24
|
+
ADDITIONAL_LOAD_PATHS.concat(Dir["#{RAILS_ROOT}/components/[_a-z]*"])
|
25
|
+
|
26
|
+
# Followed by the standard includes.
|
27
|
+
ADDITIONAL_LOAD_PATHS.concat %w(
|
28
|
+
app
|
29
|
+
app/models
|
30
|
+
app/controllers
|
31
|
+
app/helpers
|
32
|
+
app/apis
|
33
|
+
components
|
34
|
+
config
|
35
|
+
lib
|
36
|
+
vendor
|
37
|
+
vendor/rails/railties
|
38
|
+
vendor/rails/railties/lib
|
39
|
+
vendor/rails/actionpack/lib
|
40
|
+
vendor/rails/activesupport/lib
|
41
|
+
vendor/rails/activerecord/lib
|
42
|
+
vendor/rails/actionmailer/lib
|
43
|
+
vendor/rails/actionwebservice/lib
|
44
|
+
).map { |dir| "#{RAILS_ROOT}/#{dir}" }.select { |dir| File.directory?(dir) }
|
45
|
+
|
46
|
+
# Prepend to $LOAD_PATH
|
47
|
+
ADDITIONAL_LOAD_PATHS.reverse.each { |dir| $:.unshift(dir) if File.directory?(dir) }
|
48
|
+
|
49
|
+
# Require Rails libraries.
|
50
|
+
require 'rubygems' unless File.directory?("#{RAILS_ROOT}/vendor/rails")
|
51
|
+
|
52
|
+
require 'active_support'
|
53
|
+
require 'active_record'
|
54
|
+
require 'action_controller'
|
55
|
+
require 'action_mailer'
|
56
|
+
require 'action_web_service'
|
57
|
+
|
58
|
+
# Environment-specific configuration.
|
59
|
+
require_dependency "environments/#{RAILS_ENV}"
|
60
|
+
ActiveRecord::Base.configurations = File.open("#{RAILS_ROOT}/config/database.yml") { |f| YAML::load(f) }
|
61
|
+
ActiveRecord::Base.establish_connection
|
62
|
+
|
63
|
+
|
64
|
+
# Configure defaults if the included environment did not.
|
65
|
+
begin
|
66
|
+
RAILS_DEFAULT_LOGGER = Logger.new("#{RAILS_ROOT}/log/#{RAILS_ENV}.log")
|
67
|
+
RAILS_DEFAULT_LOGGER.level = (RAILS_ENV == 'production' ? Logger::INFO : Logger::DEBUG)
|
68
|
+
rescue StandardError
|
69
|
+
RAILS_DEFAULT_LOGGER = Logger.new(STDERR)
|
70
|
+
RAILS_DEFAULT_LOGGER.level = Logger::WARN
|
71
|
+
RAILS_DEFAULT_LOGGER.warn(
|
72
|
+
"Rails Error: Unable to access log file. Please ensure that log/#{RAILS_ENV}.log exists and is chmod 0666. " +
|
73
|
+
"The log level has been raised to WARN and the output directed to STDERR until the problem is fixed."
|
74
|
+
)
|
75
|
+
end
|
76
|
+
|
77
|
+
[ActiveRecord, ActionController, ActionMailer].each { |mod| mod::Base.logger ||= RAILS_DEFAULT_LOGGER }
|
78
|
+
[ActionController, ActionMailer].each { |mod| mod::Base.template_root ||= "#{RAILS_ROOT}/app/views/" }
|
79
|
+
|
80
|
+
# Set up routes.
|
81
|
+
ActionController::Routing::Routes.reload
|
82
|
+
|
83
|
+
Controllers = Dependencies::LoadingModule.root(
|
84
|
+
File.join(RAILS_ROOT, 'app', 'controllers'),
|
85
|
+
File.join(RAILS_ROOT, 'components')
|
86
|
+
)
|
87
|
+
|
88
|
+
# Include your app's configuration here:
|