ofm_gettext 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/ChangeLog +78 -0
- data/README.rdoc +245 -0
- data/Rakefile +234 -0
- data/bin/rgettext +23 -0
- data/bin/rmsgfmt +22 -0
- data/bin/rmsgmerge +22 -0
- data/gettext.gemspec +40 -0
- data/lib/gettext/cgi.rb +39 -0
- data/lib/gettext/core_ext/iconv.rb +110 -0
- data/lib/gettext/core_ext/string.rb +86 -0
- data/lib/gettext/parser/erb.rb +5 -0
- data/lib/gettext/parser/glade.rb +5 -0
- data/lib/gettext/parser/ruby.rb +172 -0
- data/lib/gettext/tools/rgettext.rb +251 -0
- data/lib/gettext/tools/rmsgfmt.rb +86 -0
- data/lib/gettext/tools/rmsgmerge.rb +500 -0
- data/lib/gettext/tools.rb +197 -0
- data/lib/gettext/utils.rb +39 -0
- data/lib/gettext/version.rb +12 -0
- data/lib/gettext.rb +312 -0
- data/po/bg/rgettext.po +139 -0
- data/po/bs/rgettext.po +139 -0
- data/po/ca/rgettext.po +138 -0
- data/po/cs/rgettext.po +140 -0
- data/po/de/rgettext.po +146 -0
- data/po/el/rgettext.po +137 -0
- data/po/eo/rgettext.po +138 -0
- data/po/es/rgettext.po +139 -0
- data/po/et/rgettext.po +136 -0
- data/po/fr/rgettext.po +142 -0
- data/po/hr/rgettext.po +139 -0
- data/po/hu/rgettext.po +138 -0
- data/po/it/rgettext.po +138 -0
- data/po/ja/rgettext.po +140 -0
- data/po/ko/rgettext.po +137 -0
- data/po/lv/rgettext.po +139 -0
- data/po/nb/rgettext.po +140 -0
- data/po/nl/rgettext.po +138 -0
- data/po/pt_BR/rgettext.po +141 -0
- data/po/rgettext.pot +129 -0
- data/po/ru/rgettext.po +140 -0
- data/po/sr/rgettext.po +139 -0
- data/po/sv/rgettext.po +131 -0
- data/po/vi/rgettext.po +137 -0
- data/po/zh/rgettext.po +138 -0
- data/po/zh_TW/rgettext.po +137 -0
- data/samples/README +16 -0
- data/samples/cgi/README +43 -0
- data/samples/cgi/Rakefile +27 -0
- data/samples/cgi/cookie.cgi +64 -0
- data/samples/cgi/gettext.css +116 -0
- data/samples/cgi/helloerb.rhtml +28 -0
- data/samples/cgi/helloerb1.cgi +58 -0
- data/samples/cgi/helloerb2.cgi +51 -0
- data/samples/cgi/hellolib.rb +18 -0
- data/samples/cgi/http.rb +49 -0
- data/samples/cgi/index.cgi +111 -0
- data/samples/cgi/other.rhtml +20 -0
- data/samples/cgi/po/bg/helloerb1.po +59 -0
- data/samples/cgi/po/bg/helloerb2.po +51 -0
- data/samples/cgi/po/bg/hellolib.po +23 -0
- data/samples/cgi/po/bg/main.po +83 -0
- data/samples/cgi/po/bs/helloerb1.po +59 -0
- data/samples/cgi/po/bs/helloerb2.po +51 -0
- data/samples/cgi/po/bs/hellolib.po +23 -0
- data/samples/cgi/po/bs/main.po +83 -0
- data/samples/cgi/po/ca/helloerb1.po +59 -0
- data/samples/cgi/po/ca/helloerb2.po +51 -0
- data/samples/cgi/po/ca/hellolib.po +23 -0
- data/samples/cgi/po/ca/main.po +83 -0
- data/samples/cgi/po/cs/helloerb1.po +61 -0
- data/samples/cgi/po/cs/helloerb2.po +52 -0
- data/samples/cgi/po/cs/hellolib.po +25 -0
- data/samples/cgi/po/cs/main.po +85 -0
- data/samples/cgi/po/de/helloerb1.po +61 -0
- data/samples/cgi/po/de/helloerb2.po +52 -0
- data/samples/cgi/po/de/hellolib.po +24 -0
- data/samples/cgi/po/de/main.po +86 -0
- data/samples/cgi/po/el/helloerb1.po +60 -0
- data/samples/cgi/po/el/helloerb2.po +51 -0
- data/samples/cgi/po/el/hellolib.po +23 -0
- data/samples/cgi/po/el/main.po +84 -0
- data/samples/cgi/po/eo/helloerb1.po +60 -0
- data/samples/cgi/po/eo/helloerb2.po +52 -0
- data/samples/cgi/po/eo/hellolib.po +24 -0
- data/samples/cgi/po/eo/main.po +84 -0
- data/samples/cgi/po/es/helloerb1.po +59 -0
- data/samples/cgi/po/es/helloerb2.po +50 -0
- data/samples/cgi/po/es/hellolib.po +22 -0
- data/samples/cgi/po/es/main.po +83 -0
- data/samples/cgi/po/fr/helloerb1.po +59 -0
- data/samples/cgi/po/fr/helloerb2.po +51 -0
- data/samples/cgi/po/fr/hellolib.po +22 -0
- data/samples/cgi/po/fr/main.po +85 -0
- data/samples/cgi/po/helloerb1.pot +60 -0
- data/samples/cgi/po/helloerb2.pot +52 -0
- data/samples/cgi/po/hellolib.pot +24 -0
- data/samples/cgi/po/hr/helloerb1.po +59 -0
- data/samples/cgi/po/hr/helloerb2.po +51 -0
- data/samples/cgi/po/hr/hellolib.po +23 -0
- data/samples/cgi/po/hr/main.po +83 -0
- data/samples/cgi/po/hu/helloerb1.po +59 -0
- data/samples/cgi/po/hu/helloerb2.po +51 -0
- data/samples/cgi/po/hu/hellolib.po +23 -0
- data/samples/cgi/po/hu/main.po +82 -0
- data/samples/cgi/po/it/helloerb1.po +60 -0
- data/samples/cgi/po/it/helloerb2.po +52 -0
- data/samples/cgi/po/it/hellolib.po +24 -0
- data/samples/cgi/po/it/main.po +84 -0
- data/samples/cgi/po/ja/helloerb1.po +60 -0
- data/samples/cgi/po/ja/helloerb2.po +52 -0
- data/samples/cgi/po/ja/hellolib.po +24 -0
- data/samples/cgi/po/ja/main.po +85 -0
- data/samples/cgi/po/ko/helloerb1.po +59 -0
- data/samples/cgi/po/ko/helloerb2.po +51 -0
- data/samples/cgi/po/ko/hellolib.po +23 -0
- data/samples/cgi/po/ko/main.po +84 -0
- data/samples/cgi/po/lv/helloerb1.po +65 -0
- data/samples/cgi/po/lv/helloerb2.po +52 -0
- data/samples/cgi/po/lv/hellolib.po +24 -0
- data/samples/cgi/po/lv/main.po +77 -0
- data/samples/cgi/po/main.pot +80 -0
- data/samples/cgi/po/nb/helloerb1.po +60 -0
- data/samples/cgi/po/nb/helloerb2.po +52 -0
- data/samples/cgi/po/nb/hellolib.po +24 -0
- data/samples/cgi/po/nb/main.po +84 -0
- data/samples/cgi/po/nl/helloerb1.po +61 -0
- data/samples/cgi/po/nl/helloerb2.po +52 -0
- data/samples/cgi/po/nl/hellolib.po +24 -0
- data/samples/cgi/po/nl/main.po +86 -0
- data/samples/cgi/po/pt_BR/helloerb1.po +59 -0
- data/samples/cgi/po/pt_BR/helloerb2.po +51 -0
- data/samples/cgi/po/pt_BR/hellolib.po +23 -0
- data/samples/cgi/po/pt_BR/main.po +84 -0
- data/samples/cgi/po/ru/helloerb1.po +58 -0
- data/samples/cgi/po/ru/helloerb2.po +50 -0
- data/samples/cgi/po/ru/hellolib.po +22 -0
- data/samples/cgi/po/ru/main.po +82 -0
- data/samples/cgi/po/sr/helloerb1.po +60 -0
- data/samples/cgi/po/sr/helloerb2.po +52 -0
- data/samples/cgi/po/sr/hellolib.po +24 -0
- data/samples/cgi/po/sr/main.po +80 -0
- data/samples/cgi/po/vi/helloerb1.po +65 -0
- data/samples/cgi/po/vi/helloerb2.po +52 -0
- data/samples/cgi/po/vi/hellolib.po +24 -0
- data/samples/cgi/po/vi/main.po +77 -0
- data/samples/cgi/po/zh/helloerb1.po +60 -0
- data/samples/cgi/po/zh/helloerb2.po +52 -0
- data/samples/cgi/po/zh/hellolib.po +24 -0
- data/samples/cgi/po/zh/main.po +80 -0
- data/samples/cgi/po/zh_TW/helloerb1.po +67 -0
- data/samples/cgi/po/zh_TW/helloerb2.po +54 -0
- data/samples/cgi/po/zh_TW/hellolib.po +26 -0
- data/samples/cgi/po/zh_TW/main.po +79 -0
- data/samples/hello.rb +36 -0
- data/samples/hello2.rb +23 -0
- data/samples/hello_glade2.glade +70 -0
- data/samples/hello_glade2.rb +25 -0
- data/samples/hello_gtk2.rb +27 -0
- data/samples/hello_noop.rb +31 -0
- data/samples/hello_plural.rb +26 -0
- data/samples/hello_tk.rb +19 -0
- data/samples/makemo.rb +6 -0
- data/samples/po/bg/hello.po +24 -0
- data/samples/po/bg/hello2.po +31 -0
- data/samples/po/bg/hello_glade2.po +31 -0
- data/samples/po/bg/hello_gtk.po +23 -0
- data/samples/po/bg/hello_noop.po +27 -0
- data/samples/po/bg/hello_plural.po +25 -0
- data/samples/po/bg/hello_tk.po +23 -0
- data/samples/po/bs/hello.po +23 -0
- data/samples/po/bs/hello2.po +31 -0
- data/samples/po/bs/hello_glade2.po +31 -0
- data/samples/po/bs/hello_gtk.po +23 -0
- data/samples/po/bs/hello_noop.po +27 -0
- data/samples/po/bs/hello_plural.po +26 -0
- data/samples/po/bs/hello_tk.po +23 -0
- data/samples/po/ca/hello.po +23 -0
- data/samples/po/ca/hello2.po +31 -0
- data/samples/po/ca/hello_glade2.po +31 -0
- data/samples/po/ca/hello_gtk.po +23 -0
- data/samples/po/ca/hello_noop.po +27 -0
- data/samples/po/ca/hello_plural.po +25 -0
- data/samples/po/ca/hello_tk.po +23 -0
- data/samples/po/cs/hello.po +23 -0
- data/samples/po/cs/hello2.po +31 -0
- data/samples/po/cs/hello_glade2.po +37 -0
- data/samples/po/cs/hello_gtk.po +23 -0
- data/samples/po/cs/hello_noop.po +27 -0
- data/samples/po/cs/hello_plural.po +26 -0
- data/samples/po/cs/hello_tk.po +23 -0
- data/samples/po/de/hello.po +20 -0
- data/samples/po/de/hello2.po +28 -0
- data/samples/po/de/hello_glade2.po +27 -0
- data/samples/po/de/hello_gtk.po +20 -0
- data/samples/po/de/hello_noop.po +24 -0
- data/samples/po/de/hello_plural.po +25 -0
- data/samples/po/de/hello_tk.po +20 -0
- data/samples/po/el/hello.po +23 -0
- data/samples/po/el/hello2.po +31 -0
- data/samples/po/el/hello_glade2.po +31 -0
- data/samples/po/el/hello_gtk.po +22 -0
- data/samples/po/el/hello_noop.po +27 -0
- data/samples/po/el/hello_plural.po +25 -0
- data/samples/po/el/hello_tk.po +23 -0
- data/samples/po/eo/hello.po +23 -0
- data/samples/po/eo/hello2.po +31 -0
- data/samples/po/eo/hello_glade2.po +32 -0
- data/samples/po/eo/hello_gtk.po +23 -0
- data/samples/po/eo/hello_noop.po +27 -0
- data/samples/po/eo/hello_plural.po +26 -0
- data/samples/po/eo/hello_tk.po +24 -0
- data/samples/po/es/hello.po +21 -0
- data/samples/po/es/hello2.po +28 -0
- data/samples/po/es/hello_glade2.po +28 -0
- data/samples/po/es/hello_gtk.po +20 -0
- data/samples/po/es/hello_noop.po +24 -0
- data/samples/po/es/hello_plural.po +23 -0
- data/samples/po/es/hello_tk.po +20 -0
- data/samples/po/fr/hello.po +18 -0
- data/samples/po/fr/hello2.po +26 -0
- data/samples/po/fr/hello_glade2.po +27 -0
- data/samples/po/fr/hello_gtk.po +18 -0
- data/samples/po/fr/hello_noop.po +22 -0
- data/samples/po/fr/hello_plural.po +21 -0
- data/samples/po/fr/hello_tk.po +18 -0
- data/samples/po/hello.pot +23 -0
- data/samples/po/hello2.pot +31 -0
- data/samples/po/hello_glade2.pot +32 -0
- data/samples/po/hello_gtk.pot +23 -0
- data/samples/po/hello_noop.pot +27 -0
- data/samples/po/hello_plural.pot +26 -0
- data/samples/po/hello_tk.pot +24 -0
- data/samples/po/hr/hello.po +23 -0
- data/samples/po/hr/hello2.po +31 -0
- data/samples/po/hr/hello_glade2.po +31 -0
- data/samples/po/hr/hello_gtk.po +23 -0
- data/samples/po/hr/hello_noop.po +27 -0
- data/samples/po/hr/hello_plural.po +26 -0
- data/samples/po/hr/hello_tk.po +23 -0
- data/samples/po/hu/hello.po +22 -0
- data/samples/po/hu/hello2.po +30 -0
- data/samples/po/hu/hello_glade2.po +31 -0
- data/samples/po/hu/hello_gtk.po +22 -0
- data/samples/po/hu/hello_noop.po +26 -0
- data/samples/po/hu/hello_plural.po +25 -0
- data/samples/po/hu/hello_tk.po +23 -0
- data/samples/po/it/hello.po +20 -0
- data/samples/po/it/hello2.po +28 -0
- data/samples/po/it/hello_glade2.po +28 -0
- data/samples/po/it/hello_gtk.po +21 -0
- data/samples/po/it/hello_noop.po +24 -0
- data/samples/po/it/hello_plural.po +23 -0
- data/samples/po/it/hello_tk.po +21 -0
- data/samples/po/ja/hello.po +20 -0
- data/samples/po/ja/hello2.po +28 -0
- data/samples/po/ja/hello_glade2.po +26 -0
- data/samples/po/ja/hello_gtk.po +19 -0
- data/samples/po/ja/hello_noop.po +23 -0
- data/samples/po/ja/hello_plural.po +21 -0
- data/samples/po/ja/hello_tk.po +19 -0
- data/samples/po/ko/hello.po +18 -0
- data/samples/po/ko/hello2.po +26 -0
- data/samples/po/ko/hello_glade2.po +29 -0
- data/samples/po/ko/hello_gtk.po +18 -0
- data/samples/po/ko/hello_noop.po +22 -0
- data/samples/po/ko/hello_plural.po +25 -0
- data/samples/po/ko/hello_tk.po +19 -0
- data/samples/po/lv/hello.po +24 -0
- data/samples/po/lv/hello2.po +32 -0
- data/samples/po/lv/hello_glade2.po +38 -0
- data/samples/po/lv/hello_gtk.po +24 -0
- data/samples/po/lv/hello_noop.po +28 -0
- data/samples/po/lv/hello_plural.po +26 -0
- data/samples/po/lv/hello_tk.po +24 -0
- data/samples/po/nb/hello.po +23 -0
- data/samples/po/nb/hello2.po +31 -0
- data/samples/po/nb/hello_glade2.po +31 -0
- data/samples/po/nb/hello_gtk.po +23 -0
- data/samples/po/nb/hello_noop.po +27 -0
- data/samples/po/nb/hello_plural.po +26 -0
- data/samples/po/nb/hello_tk.po +24 -0
- data/samples/po/nl/hello.po +24 -0
- data/samples/po/nl/hello2.po +32 -0
- data/samples/po/nl/hello_glade2.po +31 -0
- data/samples/po/nl/hello_gtk.po +24 -0
- data/samples/po/nl/hello_noop.po +28 -0
- data/samples/po/nl/hello_plural.po +25 -0
- data/samples/po/nl/hello_tk.po +24 -0
- data/samples/po/pt_BR/hello.po +21 -0
- data/samples/po/pt_BR/hello2.po +29 -0
- data/samples/po/pt_BR/hello_glade2.po +29 -0
- data/samples/po/pt_BR/hello_gtk.po +21 -0
- data/samples/po/pt_BR/hello_noop.po +25 -0
- data/samples/po/pt_BR/hello_plural.po +23 -0
- data/samples/po/pt_BR/hello_tk.po +21 -0
- data/samples/po/ru/hello.po +22 -0
- data/samples/po/ru/hello2.po +30 -0
- data/samples/po/ru/hello_glade2.po +30 -0
- data/samples/po/ru/hello_gtk.po +22 -0
- data/samples/po/ru/hello_noop.po +26 -0
- data/samples/po/ru/hello_plural.po +28 -0
- data/samples/po/ru/hello_tk.po +22 -0
- data/samples/po/sr/hello.po +22 -0
- data/samples/po/sr/hello2.po +30 -0
- data/samples/po/sr/hello_glade2.po +32 -0
- data/samples/po/sr/hello_gtk.po +22 -0
- data/samples/po/sr/hello_noop.po +26 -0
- data/samples/po/sr/hello_plural.po +26 -0
- data/samples/po/sr/hello_tk.po +24 -0
- data/samples/po/sv/hello.po +20 -0
- data/samples/po/sv/hello2.po +28 -0
- data/samples/po/sv/hello_glade2.po +28 -0
- data/samples/po/sv/hello_gtk.po +20 -0
- data/samples/po/sv/hello_noop.po +24 -0
- data/samples/po/sv/hello_plural.po +23 -0
- data/samples/po/sv/hello_tk.po +20 -0
- data/samples/po/test.rb +13 -0
- data/samples/po/vi/hello.po +23 -0
- data/samples/po/vi/hello2.po +31 -0
- data/samples/po/vi/hello_glade2.po +38 -0
- data/samples/po/vi/hello_gtk.po +23 -0
- data/samples/po/vi/hello_noop.po +27 -0
- data/samples/po/vi/hello_plural.po +26 -0
- data/samples/po/vi/hello_tk.po +24 -0
- data/samples/po/zh/hello.po +23 -0
- data/samples/po/zh/hello2.po +31 -0
- data/samples/po/zh/hello_glade2.po +31 -0
- data/samples/po/zh/hello_gtk.po +23 -0
- data/samples/po/zh/hello_noop.po +27 -0
- data/samples/po/zh/hello_plural.po +25 -0
- data/samples/po/zh/hello_tk.po +23 -0
- data/samples/po/zh_TW/hello.po +26 -0
- data/samples/po/zh_TW/hello2.po +34 -0
- data/samples/po/zh_TW/hello_glade2.po +40 -0
- data/samples/po/zh_TW/hello_gtk.po +25 -0
- data/samples/po/zh_TW/hello_noop.po +30 -0
- data/samples/po/zh_TW/hello_plural.po +28 -0
- data/samples/po/zh_TW/hello_tk.po +26 -0
- data/src/poparser.ry +217 -0
- data/test/README +1 -0
- data/test/Rakefile +17 -0
- data/test/po/cr/plural.po +23 -0
- data/test/po/da/plural.po +22 -0
- data/test/po/da/plural_error.po +22 -0
- data/test/po/fr/plural.po +28 -0
- data/test/po/fr/plural_error.po +20 -0
- data/test/po/fr/test1.po +23 -0
- data/test/po/fr/test2.po +19 -0
- data/test/po/ir/plural.po +23 -0
- data/test/po/ja/npgettext.po +46 -0
- data/test/po/ja/nsgettext.po +65 -0
- data/test/po/ja/pgettext.po +41 -0
- data/test/po/ja/plural.po +28 -0
- data/test/po/ja/plural_error.po +20 -0
- data/test/po/ja/rubyparser.po +43 -0
- data/test/po/ja/sgettext.po +47 -0
- data/test/po/ja/test1.po +23 -0
- data/test/po/ja/test2.po +19 -0
- data/test/po/la/plural.po +23 -0
- data/test/po/la/plural_error.po +21 -0
- data/test/po/li/plural.po +23 -0
- data/test/po/po/plural.po +23 -0
- data/test/po/sl/plural.po +24 -0
- data/test/test_class_info.rb +88 -0
- data/test/test_gettext.rb +322 -0
- data/test/test_parser.rb +160 -0
- data/test/test_string.rb +67 -0
- data/test/test_textdomain_multi.rb +82 -0
- data/test/test_textdomain_toplevel.rb +44 -0
- data/test/testlib/N_.rb +68 -0
- data/test/testlib/erb.rhtml +15 -0
- data/test/testlib/erb.rxml +16 -0
- data/test/testlib/gettext.rb +115 -0
- data/test/testlib/gladeparser.glade +183 -0
- data/test/testlib/helper.rb +13 -0
- data/test/testlib/multi_textdomain.rb +133 -0
- data/test/testlib/ngettext.rb +81 -0
- data/test/testlib/npgettext.rb +33 -0
- data/test/testlib/nsgettext.rb +44 -0
- data/test/testlib/pgettext.rb +38 -0
- data/test/testlib/sgettext.rb +48 -0
- data/test/testlib/simple.rb +16 -0
- metadata +475 -0
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
|
|
3
|
+
=begin
|
|
4
|
+
utils.rb - Utility functions
|
|
5
|
+
|
|
6
|
+
Copyright (C) 2005,2006 Masao Mutoh
|
|
7
|
+
|
|
8
|
+
You may redistribute it and/or modify it under the same
|
|
9
|
+
license terms as Ruby or LGPL.
|
|
10
|
+
=end
|
|
11
|
+
|
|
12
|
+
require 'gettext/tools'
|
|
13
|
+
|
|
14
|
+
warn "'gettext/utils.rb' is deprecated. Use gettext/tools.rb."
|
|
15
|
+
|
|
16
|
+
module GetText
|
|
17
|
+
|
|
18
|
+
alias :create_mofiles_org :create_mofiles #:nodoc:
|
|
19
|
+
alias :update_pofiles_org :update_pofiles #:nodoc:
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
# Deprecated. Use gettext/tools instead.
|
|
23
|
+
def create_mofiles(verbose = false,
|
|
24
|
+
podir = "./po", targetdir = "./data/locale",
|
|
25
|
+
targetpath_rule = "%s/LC_MESSAGES") # :nodoc:
|
|
26
|
+
warn "'gettext/utils.rb' is deprecated. Use gettext/tools.rb."
|
|
27
|
+
create_mofiles_org(:verbose => verbose,
|
|
28
|
+
:po_root => podir,
|
|
29
|
+
:mo_root => targetdir,
|
|
30
|
+
:mo_root_rule => targetpath_rule)
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
# Deprecated. Use gettext/tools instead.
|
|
34
|
+
def update_pofiles(textdomain, files, app_version, po_root = "po", refpot = "tmp.pot") # :nodoc:
|
|
35
|
+
warn "'gettext/utils.rb' is deprecated. Use gettext/tools.rb."
|
|
36
|
+
options = {:po_root => po_root}
|
|
37
|
+
update_pofiles_org(textdomain, files, app_version, options)
|
|
38
|
+
end
|
|
39
|
+
end
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
#! /usr/bin/ruby
|
|
2
|
+
=begin
|
|
3
|
+
version - version information of Ruby-GetText-Package
|
|
4
|
+
|
|
5
|
+
Copyright (C) 2005-2009 Masao Mutoh
|
|
6
|
+
|
|
7
|
+
You may redistribute it and/or modify it under the same
|
|
8
|
+
license terms as Ruby or LGPL.
|
|
9
|
+
=end
|
|
10
|
+
module GetText
|
|
11
|
+
VERSION = "2.1.0"
|
|
12
|
+
end
|
data/lib/gettext.rb
ADDED
|
@@ -0,0 +1,312 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
|
|
3
|
+
=begin
|
|
4
|
+
gettext.rb - GetText module
|
|
5
|
+
|
|
6
|
+
Copyright (C) 2001-2010 Masao Mutoh
|
|
7
|
+
Copyright (C) 2001-2003 Masahiro Sakai
|
|
8
|
+
|
|
9
|
+
Masao Mutoh <mutomasa at gmail.com>
|
|
10
|
+
Masahiro Sakai <s01397ms@sfc.keio.ac.jp>
|
|
11
|
+
|
|
12
|
+
You may redistribute it and/or modify it under the same
|
|
13
|
+
license terms as Ruby or LGPL.
|
|
14
|
+
=end
|
|
15
|
+
|
|
16
|
+
if Object.constants.include? "Gem"
|
|
17
|
+
begin
|
|
18
|
+
begin
|
|
19
|
+
gem 'locale', '>=2.0.5'
|
|
20
|
+
rescue Gem::LoadError
|
|
21
|
+
end
|
|
22
|
+
rescue NoMethodError
|
|
23
|
+
else LoadError
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
require 'locale'
|
|
28
|
+
raise "Install locale as gem or uninstall old gettext" unless Locale.respond_to? :candidates
|
|
29
|
+
|
|
30
|
+
require 'gettext/version'
|
|
31
|
+
require 'gettext/runtime/textdomain_manager'
|
|
32
|
+
|
|
33
|
+
module GetText
|
|
34
|
+
# If the textdomain isn't bound when calling GetText.textdomain, this error is raised.
|
|
35
|
+
class NoboundTextDomainError < RuntimeError
|
|
36
|
+
def initialize(domainname)
|
|
37
|
+
@domainname = domainname
|
|
38
|
+
end
|
|
39
|
+
def message
|
|
40
|
+
"#{@domainname} is not bound."
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
extend self
|
|
45
|
+
|
|
46
|
+
def self.included(mod) #:nodoc:
|
|
47
|
+
mod.extend self
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
# bindtextdomain(domainname, options = {})
|
|
51
|
+
#
|
|
52
|
+
# Bind a textdomain(%{path}/%{locale}/LC_MESSAGES/%{domainname}.mo) to
|
|
53
|
+
# your program.
|
|
54
|
+
# Normally, the texdomain scope becomes the class/module(and parent
|
|
55
|
+
# classes/included modules).
|
|
56
|
+
#
|
|
57
|
+
# * domainname: the textdomain name.
|
|
58
|
+
# * options: options as an Hash.
|
|
59
|
+
# * :path - the path to the mo-files. When the value is nil, it will search default paths such as
|
|
60
|
+
# /usr/share/locale, /usr/local/share/locale)
|
|
61
|
+
# * :output_charset - The output charset. Same with GetText.set_output_charset. Usually, L10n
|
|
62
|
+
# library doesn't use this option. Application may use this once.
|
|
63
|
+
# * Returns: the GetText::TextDomainManager.
|
|
64
|
+
#
|
|
65
|
+
def bindtextdomain(domainname, *options)
|
|
66
|
+
bindtextdomain_to(self, domainname, *options)
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
# Includes GetText module and bind a textdomain to a class.
|
|
70
|
+
# * klass: the target ruby class.
|
|
71
|
+
# * domainname: the textdomain name.
|
|
72
|
+
# * options: options as an Hash. See GetText.bindtextdomain.
|
|
73
|
+
def bindtextdomain_to(klass, domainname, *options)
|
|
74
|
+
if options[0].kind_of? Hash
|
|
75
|
+
opts = options[0]
|
|
76
|
+
else
|
|
77
|
+
# for backward compatibility.
|
|
78
|
+
opts = {}
|
|
79
|
+
opts[:path] = options[0] if options[0]
|
|
80
|
+
opts[:output_charset] = options[2] if options[2]
|
|
81
|
+
end
|
|
82
|
+
unless (klass.kind_of? GetText or klass.include? GetText)
|
|
83
|
+
klass.__send__(:include, GetText)
|
|
84
|
+
end
|
|
85
|
+
TextDomainManager.bind_to(klass, domainname, opts)
|
|
86
|
+
end
|
|
87
|
+
|
|
88
|
+
# Binds a existed textdomain to your program.
|
|
89
|
+
# This is the same function with GetText.bindtextdomain but simpler(and faster) than bindtextdomain.
|
|
90
|
+
# Note that you need to call GetText.bindtextdomain first. If the domainname hasn't bound yet,
|
|
91
|
+
# raises GetText::NoboundTextDomainError.
|
|
92
|
+
# * domainname: a textdomain name.
|
|
93
|
+
# * Returns: the GetText::TextDomainManager.
|
|
94
|
+
def textdomain(domainname) #:nodoc:
|
|
95
|
+
textdomain_to(self, domainname)
|
|
96
|
+
end
|
|
97
|
+
|
|
98
|
+
# Includes GetText module and bind an exsited textdomain to a class.
|
|
99
|
+
# See textdomain for more detail.
|
|
100
|
+
# * klass: the target ruby class.
|
|
101
|
+
# * domainname: the textdomain name.
|
|
102
|
+
|
|
103
|
+
def textdomain_to(klass, domainname) #:nodoc:
|
|
104
|
+
domain = TextDomainManager.textdomain_pool(domainname)
|
|
105
|
+
raise NoboundTextDomainError.new(domainname) unless domain
|
|
106
|
+
bindtextdomain_to(klass, domainname)
|
|
107
|
+
end
|
|
108
|
+
|
|
109
|
+
# call-seq:
|
|
110
|
+
# gettext(msgid)
|
|
111
|
+
# _(msgid)
|
|
112
|
+
#
|
|
113
|
+
# Translates msgid and return the message.
|
|
114
|
+
# This doesn't make a copy of the message.
|
|
115
|
+
#
|
|
116
|
+
# You need to use String#dup if you want to modify the return value
|
|
117
|
+
# with destructive functions.
|
|
118
|
+
#
|
|
119
|
+
# (e.g.1) _("Hello ").dup << "world"
|
|
120
|
+
#
|
|
121
|
+
# But e.g.1 should be rewrite to:
|
|
122
|
+
#
|
|
123
|
+
# (e.g.2) _("Hello %{val}") % {:val => "world"}
|
|
124
|
+
#
|
|
125
|
+
# Because the translator may want to change the position of "world".
|
|
126
|
+
#
|
|
127
|
+
# * msgid: the message id.
|
|
128
|
+
# * Returns: localized text by msgid. If there are not binded mo-file, it will return msgid.
|
|
129
|
+
def gettext(msgid)
|
|
130
|
+
TextDomainManager.translate_singluar_message(self, msgid)
|
|
131
|
+
end
|
|
132
|
+
|
|
133
|
+
# call-seq:
|
|
134
|
+
# sgettext(msgid, div = '|')
|
|
135
|
+
# s_(msgid, div = '|')
|
|
136
|
+
#
|
|
137
|
+
# Translates msgid, but if there are no localized text,
|
|
138
|
+
# it returns a last part of msgid separeted "div".
|
|
139
|
+
#
|
|
140
|
+
# * msgid: the message id.
|
|
141
|
+
# * separator: separator or nil for no seperation.
|
|
142
|
+
# * Returns: the localized text by msgid. If there are no localized text,
|
|
143
|
+
# it returns a last part of the msgid separeted by "seperator".
|
|
144
|
+
# <tt>Movie|Location -> Location</tt>
|
|
145
|
+
# See: http://www.gnu.org/software/gettext/manual/html_mono/gettext.html#SEC151
|
|
146
|
+
def sgettext(msgid, seperator = "|")
|
|
147
|
+
TextDomainManager.translate_singluar_message(self, msgid, seperator)
|
|
148
|
+
end
|
|
149
|
+
|
|
150
|
+
# call-seq:
|
|
151
|
+
# pgettext(msgctxt, msgid)
|
|
152
|
+
# p_(msgctxt, msgid)
|
|
153
|
+
#
|
|
154
|
+
# Translates msgid with msgctxt. This methods is similer with s_().
|
|
155
|
+
# e.g.) p_("File", "New") == s_("File|New")
|
|
156
|
+
# p_("File", "Open") == s_("File|Open")
|
|
157
|
+
#
|
|
158
|
+
# * msgctxt: the message context.
|
|
159
|
+
# * msgid: the message id.
|
|
160
|
+
# * Returns: the localized text by msgid. If there are no localized text,
|
|
161
|
+
# it returns msgid.
|
|
162
|
+
# See: http://www.gnu.org/software/autoconf/manual/gettext/Contexts.html
|
|
163
|
+
def pgettext(msgctxt, msgid)
|
|
164
|
+
TextDomainManager.translate_singluar_message(self, "#{msgctxt}\004#{msgid}", "\004")
|
|
165
|
+
end
|
|
166
|
+
|
|
167
|
+
# call-seq:
|
|
168
|
+
# ngettext(msgid, msgid_plural, n)
|
|
169
|
+
# ngettext(msgids, n) # msgids = [msgid, msgid_plural]
|
|
170
|
+
# n_(msgid, msgid_plural, n)
|
|
171
|
+
# n_(msgids, n) # msgids = [msgid, msgid_plural]
|
|
172
|
+
#
|
|
173
|
+
# The ngettext is similar to the gettext function as it finds the message catalogs in the same way.
|
|
174
|
+
# But it takes two extra arguments for plural form.
|
|
175
|
+
#
|
|
176
|
+
# * msgid: the singular form.
|
|
177
|
+
# * msgid_plural: the plural form.
|
|
178
|
+
# * n: a number used to determine the plural form.
|
|
179
|
+
# * Returns: the localized text which key is msgid_plural if n is plural(follow plural-rule) or msgid.
|
|
180
|
+
# "plural-rule" is defined in po-file.
|
|
181
|
+
def ngettext(msgid, msgid_plural, n = nil)
|
|
182
|
+
TextDomainManager.translate_plural_message(self, msgid, msgid_plural, n)
|
|
183
|
+
end
|
|
184
|
+
|
|
185
|
+
# call-seq:
|
|
186
|
+
# nsgettext(msgid, msgid_plural, n, div = "|")
|
|
187
|
+
# nsgettext(msgids, n, div = "|") # msgids = [msgid, msgid_plural]
|
|
188
|
+
# ns_(msgid, msgid_plural, n, div = "|")
|
|
189
|
+
# ns_(msgids, n, div = "|") # msgids = [msgid, msgid_plural]
|
|
190
|
+
#
|
|
191
|
+
# The nsgettext is similar to the ngettext.
|
|
192
|
+
# But if there are no localized text,
|
|
193
|
+
# it returns a last part of msgid separeted "div".
|
|
194
|
+
#
|
|
195
|
+
# * msgid: the singular form with "div". (e.g. "Special|An apple")
|
|
196
|
+
# * msgid_plural: the plural form. (e.g. "%{num} Apples")
|
|
197
|
+
# * n: a number used to determine the plural form.
|
|
198
|
+
# * Returns: the localized text which key is msgid_plural if n is plural(follow plural-rule) or msgid.
|
|
199
|
+
# "plural-rule" is defined in po-file.
|
|
200
|
+
def nsgettext(msgid, msgid_plural, n="|", seperator = "|")
|
|
201
|
+
TextDomainManager.translate_plural_message(self, msgid, msgid_plural, n, seperator)
|
|
202
|
+
end
|
|
203
|
+
|
|
204
|
+
# call-seq:
|
|
205
|
+
# npgettext(msgctxt, msgid, msgid_plural, n)
|
|
206
|
+
# npgettext(msgctxt, msgids, n) # msgids = [msgid, msgid_plural]
|
|
207
|
+
# np_(msgctxt, msgid, msgid_plural, n)
|
|
208
|
+
# np_(msgctxt, msgids, n) # msgids = [msgid, msgid_plural]
|
|
209
|
+
#
|
|
210
|
+
# The npgettext is similar to the nsgettext function.
|
|
211
|
+
# e.g.) np_("Special", "An apple", "%{num} Apples", num) == ns_("Special|An apple", "%{num} Apples", num)
|
|
212
|
+
# * msgctxt: the message context.
|
|
213
|
+
# * msgid: the singular form.
|
|
214
|
+
# * msgid_plural: the plural form.
|
|
215
|
+
# * n: a number used to determine the plural form.
|
|
216
|
+
# * Returns: the localized text which key is msgid_plural if n is plural(follow plural-rule) or msgid.
|
|
217
|
+
# "plural-rule" is defined in po-file.
|
|
218
|
+
def npgettext(msgctxt, msgids, arg2 = nil, arg3 = nil)
|
|
219
|
+
if msgids.kind_of?(Array)
|
|
220
|
+
msgid = msgids[0]
|
|
221
|
+
msgid_ctxt = "#{msgctxt}\004#{msgid}"
|
|
222
|
+
msgid_plural = msgids[1]
|
|
223
|
+
opt1 = arg2
|
|
224
|
+
opt2 = arg3
|
|
225
|
+
else
|
|
226
|
+
msgid = msgids
|
|
227
|
+
msgid_ctxt = "#{msgctxt}\004#{msgid}"
|
|
228
|
+
msgid_plural = arg2
|
|
229
|
+
opt1 = arg3
|
|
230
|
+
opt2 = nil
|
|
231
|
+
end
|
|
232
|
+
|
|
233
|
+
msgstr = TextDomainManager.translate_plural_message(self, msgid_ctxt, msgid_plural, opt1, opt2)
|
|
234
|
+
if msgstr == msgid_ctxt
|
|
235
|
+
msgid
|
|
236
|
+
else
|
|
237
|
+
msgstr
|
|
238
|
+
end
|
|
239
|
+
end
|
|
240
|
+
|
|
241
|
+
# makes dynamic translation messages readable for the gettext parser.
|
|
242
|
+
# <tt>_(fruit)</tt> cannot be understood by the gettext parser. To help the parser find all your translations,
|
|
243
|
+
# you can add <tt>fruit = N_("Apple")</tt> which does not translate, but tells the parser: "Apple" needs translation.
|
|
244
|
+
# * msgid: the message id.
|
|
245
|
+
# * Returns: msgid.
|
|
246
|
+
def N_(msgid)
|
|
247
|
+
msgid
|
|
248
|
+
end
|
|
249
|
+
|
|
250
|
+
# This is same function as N_ but for ngettext.
|
|
251
|
+
# * msgid: the message id.
|
|
252
|
+
# * msgid_plural: the plural message id.
|
|
253
|
+
# * Returns: msgid.
|
|
254
|
+
def Nn_(msgid, msgid_plural)
|
|
255
|
+
[msgid, msgid_plural]
|
|
256
|
+
end
|
|
257
|
+
|
|
258
|
+
# Sets charset(String) such as "euc-jp", "sjis", "CP932", "utf-8", ...
|
|
259
|
+
# You shouldn't use this in your own Libraries.
|
|
260
|
+
# * charset: an output_charset
|
|
261
|
+
# * Returns: self
|
|
262
|
+
def set_output_charset(charset)
|
|
263
|
+
TextDomainManager.output_charset = charset
|
|
264
|
+
self
|
|
265
|
+
end
|
|
266
|
+
|
|
267
|
+
# Gets the current output_charset which is set using GetText.set_output_charset.
|
|
268
|
+
# * Returns: output_charset.
|
|
269
|
+
def output_charset
|
|
270
|
+
TextDomainManager.output_charset
|
|
271
|
+
end
|
|
272
|
+
|
|
273
|
+
# Set the locale. This value forces the locale whole the programs.
|
|
274
|
+
# This method calls Locale.set_app_language_tags, Locale.default, Locale.current.
|
|
275
|
+
# Use Locale methods if you need to handle locales more flexible.
|
|
276
|
+
def set_locale(lang)
|
|
277
|
+
Locale.set_app_language_tags(lang)
|
|
278
|
+
Locale.default = lang
|
|
279
|
+
Locale.current = lang
|
|
280
|
+
end
|
|
281
|
+
|
|
282
|
+
# Set the locale to the current thread.
|
|
283
|
+
# Note that if #set_locale is set, this value is ignored.
|
|
284
|
+
# If you need, set_locale(nil); set_current_locale(lang)
|
|
285
|
+
def set_current_locale(lang)
|
|
286
|
+
Locale.current = lang
|
|
287
|
+
end
|
|
288
|
+
|
|
289
|
+
def locale
|
|
290
|
+
Locale.current[0]
|
|
291
|
+
end
|
|
292
|
+
|
|
293
|
+
alias :locale= :set_locale #:nodoc:
|
|
294
|
+
alias :current_locale= :set_current_locale #:nodoc:
|
|
295
|
+
alias :_ :gettext #:nodoc:
|
|
296
|
+
alias :n_ :ngettext #:nodoc:
|
|
297
|
+
alias :s_ :sgettext #:nodoc:
|
|
298
|
+
alias :ns_ :nsgettext #:nodoc:
|
|
299
|
+
alias :np_ :npgettext #:nodoc:
|
|
300
|
+
|
|
301
|
+
alias :output_charset= :set_output_charset #:nodoc:
|
|
302
|
+
|
|
303
|
+
unless defined? XX
|
|
304
|
+
# This is the workaround to conflict p_ methods with the xx("double x") library.
|
|
305
|
+
# http://rubyforge.org/projects/codeforpeople/
|
|
306
|
+
alias :p_ :pgettext #:nodoc:
|
|
307
|
+
end
|
|
308
|
+
|
|
309
|
+
# for backward compatibility
|
|
310
|
+
alias :set_locale_all :set_locale #:nodoc:
|
|
311
|
+
alias :setlocale :set_locale #:nodoc:
|
|
312
|
+
end
|
data/po/bg/rgettext.po
ADDED
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
#
|
|
2
|
+
# a po-file for Ruby-GetText-Package
|
|
3
|
+
#
|
|
4
|
+
# Copyright (C) 2004-2006 Masao Mutoh
|
|
5
|
+
# This file is distributed under the same license as the Ruby-GetText-Package.
|
|
6
|
+
#
|
|
7
|
+
# Georgi Stoimenov <georgistoimenov@abv.bg>, 2008
|
|
8
|
+
#
|
|
9
|
+
msgid ""
|
|
10
|
+
msgstr ""
|
|
11
|
+
"Project-Id-Version: ruby-gettext 2.1.0\n"
|
|
12
|
+
"POT-Creation-Date: 2010-06-25 01:16+0900\n"
|
|
13
|
+
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
|
14
|
+
"Last-Translator: Sava Chankov <sava.chankov@gmail.com>\n"
|
|
15
|
+
"Language-Team: Bulgarian <ruby-on-rails-bulgaria@googlegroups.com>\n"
|
|
16
|
+
"MIME-Version: 1.0\n"
|
|
17
|
+
"Content-Type: text/plain; charset=UTF-8\n"
|
|
18
|
+
"Content-Transfer-Encoding: 8bit\n"
|
|
19
|
+
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
|
20
|
+
|
|
21
|
+
#: lib/gettext/tools/rmsgmerge.rb:402
|
|
22
|
+
msgid "Usage: %s def.po ref.pot [-o output.pot]"
|
|
23
|
+
msgstr "Употреба: %s def.po ref.pot [-o output.pot]"
|
|
24
|
+
|
|
25
|
+
#: lib/gettext/tools/rmsgmerge.rb:405
|
|
26
|
+
msgid ""
|
|
27
|
+
"Merges two Uniforum style .po files together. The def.po file is an existing "
|
|
28
|
+
"PO file with translations. The ref.pot file is the last created PO file with "
|
|
29
|
+
"up-to-date source references. ref.pot is generally created by rgettext."
|
|
30
|
+
msgstr ""
|
|
31
|
+
"Слива два Uniforum .pо файла. def.po е съществуващ PO файл с преводи. ref."
|
|
32
|
+
"pot е пресен PO файл с актуални референции към кода. ref.pot обикновено е "
|
|
33
|
+
"създаден от rgettext."
|
|
34
|
+
|
|
35
|
+
#: lib/gettext/tools/rmsgmerge.rb:407 lib/gettext/tools/rgettext.rb:176
|
|
36
|
+
#: lib/gettext/tools/rmsgfmt.rb:50
|
|
37
|
+
msgid "Specific options:"
|
|
38
|
+
msgstr "Специфични опции:"
|
|
39
|
+
|
|
40
|
+
#: lib/gettext/tools/rmsgmerge.rb:409 lib/gettext/tools/rgettext.rb:178
|
|
41
|
+
#: lib/gettext/tools/rmsgfmt.rb:52
|
|
42
|
+
msgid "write output to specified file"
|
|
43
|
+
msgstr "изходът беше записан в зададения файл"
|
|
44
|
+
|
|
45
|
+
#: lib/gettext/tools/rmsgmerge.rb:420 lib/gettext/tools/rgettext.rb:195
|
|
46
|
+
#: lib/gettext/tools/rmsgfmt.rb:56
|
|
47
|
+
msgid "display version information and exit"
|
|
48
|
+
msgstr "показване на версията и изход"
|
|
49
|
+
|
|
50
|
+
#: lib/gettext/tools/rmsgmerge.rb:446
|
|
51
|
+
msgid "definition po is not given."
|
|
52
|
+
msgstr "съществуващия po не е зададен."
|
|
53
|
+
|
|
54
|
+
#: lib/gettext/tools/rmsgmerge.rb:448
|
|
55
|
+
msgid "reference pot is not given."
|
|
56
|
+
msgstr "pot с референциите не е зададен."
|
|
57
|
+
|
|
58
|
+
#: lib/gettext/tools/parser/glade.rb:73
|
|
59
|
+
msgid "`%{file}' is not glade-2.0 format."
|
|
60
|
+
msgstr "`%{file}' не е във формат glade-2.0."
|
|
61
|
+
|
|
62
|
+
#: lib/gettext/tools/rgettext.rb:40
|
|
63
|
+
msgid "'%{klass}' is ignored."
|
|
64
|
+
msgstr "'%{klass}' беше игнориран."
|
|
65
|
+
|
|
66
|
+
#: lib/gettext/tools/rgettext.rb:161
|
|
67
|
+
msgid "Error parsing %{path}"
|
|
68
|
+
msgstr ""
|
|
69
|
+
|
|
70
|
+
#: lib/gettext/tools/rgettext.rb:172
|
|
71
|
+
msgid "Usage: %s input.rb [-r parser.rb] [-o output.pot]"
|
|
72
|
+
msgstr "Употреба: %s input.rb [-r parser.rb] [-o output.pot] "
|
|
73
|
+
|
|
74
|
+
#: lib/gettext/tools/rgettext.rb:174
|
|
75
|
+
msgid "Extract translatable strings from given input files."
|
|
76
|
+
msgstr "Извличане на преводните низове от зададените файлове."
|
|
77
|
+
|
|
78
|
+
#: lib/gettext/tools/rgettext.rb:182
|
|
79
|
+
msgid "File '%s' already exists."
|
|
80
|
+
msgstr "Файлът '%s' съществува."
|
|
81
|
+
|
|
82
|
+
#: lib/gettext/tools/rgettext.rb:187
|
|
83
|
+
msgid "require the library before executing rgettext"
|
|
84
|
+
msgstr "заредете библиотеката с require преди да изпълните rgettext"
|
|
85
|
+
|
|
86
|
+
#: lib/gettext/tools/rgettext.rb:191
|
|
87
|
+
msgid "run in debugging mode"
|
|
88
|
+
msgstr "изпълнение в режим на дебъгване"
|
|
89
|
+
|
|
90
|
+
#: lib/gettext/tools/rgettext.rb:218 lib/gettext/tools/rmsgfmt.rb:29
|
|
91
|
+
msgid "no input files"
|
|
92
|
+
msgstr "няма зададени файлове"
|
|
93
|
+
|
|
94
|
+
#: lib/gettext/tools/rmsgfmt.rb:46
|
|
95
|
+
msgid "Usage: %s input.po [-o output.mo]"
|
|
96
|
+
msgstr "Употреба: %s input.po [-o output.mo]"
|
|
97
|
+
|
|
98
|
+
#: lib/gettext/tools/rmsgfmt.rb:48
|
|
99
|
+
msgid "Generate binary message catalog from textual translation description."
|
|
100
|
+
msgstr "Генериране на двоични файлове с преводите от текстовите описания."
|
|
101
|
+
|
|
102
|
+
#: lib/gettext/tools.rb:68
|
|
103
|
+
msgid "Failed to merge with %{defpo}"
|
|
104
|
+
msgstr "Пропадна сливането с %{defpo}"
|
|
105
|
+
|
|
106
|
+
#: lib/gettext/tools.rb:69
|
|
107
|
+
msgid "New .pot was copied to %{failed_filename}"
|
|
108
|
+
msgstr "Новия .pot беше копиран като %{failed_filename}"
|
|
109
|
+
|
|
110
|
+
#: lib/gettext/tools.rb:70
|
|
111
|
+
msgid "Check these po/pot-files. It may have syntax errors or something wrong."
|
|
112
|
+
msgstr ""
|
|
113
|
+
"Проверете тези po/pot файлове. Може да имат синтактични грешки или нещо "
|
|
114
|
+
"друго."
|
|
115
|
+
|
|
116
|
+
#: lib/gettext/tools.rb:173
|
|
117
|
+
msgid ""
|
|
118
|
+
"`%{cmd}' can not be found. \n"
|
|
119
|
+
"Install GNU Gettext then set PATH or MSGMERGE_PATH correctly."
|
|
120
|
+
msgstr ""
|
|
121
|
+
|
|
122
|
+
#: lib/gettext/runtime/textdomain_manager.rb:147
|
|
123
|
+
#, fuzzy
|
|
124
|
+
msgid "ngettext: 3rd parmeter is wrong: value = %{number}"
|
|
125
|
+
msgstr "Третият параметър е грешен: value = %{number}"
|
|
126
|
+
|
|
127
|
+
#: lib/gettext/runtime/textdomain_manager.rb:153
|
|
128
|
+
msgid "ngettext: 3rd parameter should be a number, not nil."
|
|
129
|
+
msgstr ""
|
|
130
|
+
|
|
131
|
+
#: src/poparser.ry:38 src/poparser.ry:55
|
|
132
|
+
msgid "Warning: fuzzy message was ignored.\n"
|
|
133
|
+
msgstr "Предупреждение: беше игнорирано неточно съобщение"
|
|
134
|
+
|
|
135
|
+
#: src/poparser.ry:148
|
|
136
|
+
msgid "Warning: obsolete msgid exists.\n"
|
|
137
|
+
msgstr ""
|
|
138
|
+
"Предупреждение: има несъществуващи вече msgid\n"
|
|
139
|
+
"."
|
data/po/bs/rgettext.po
ADDED
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
# translation of rgettext.po to Bosnian
|
|
2
|
+
#
|
|
3
|
+
# a po-file for Ruby-GetText-Package
|
|
4
|
+
#
|
|
5
|
+
# Copyright (C) 2004-2006 Masao Mutoh
|
|
6
|
+
# This file is distributed under the same license as the Ruby-GetText-Package.
|
|
7
|
+
#
|
|
8
|
+
# Sanjin Sehic <saserr@gmail.com>, 2007.
|
|
9
|
+
msgid ""
|
|
10
|
+
msgstr ""
|
|
11
|
+
"Project-Id-Version: ruby-gettext 2.1.0\n"
|
|
12
|
+
"POT-Creation-Date: 2010-06-25 01:16+0900\n"
|
|
13
|
+
"PO-Revision-Date: 2007-03-17 16:19+0100\n"
|
|
14
|
+
"Last-Translator: Sanjin Sehic <saserr@gmail.com>\n"
|
|
15
|
+
"Language-Team: Bosnian <saserr@gmail.com>\n"
|
|
16
|
+
"MIME-Version: 1.0\n"
|
|
17
|
+
"Content-Type: text/plain; charset=UTF-8\n"
|
|
18
|
+
"Content-Transfer-Encoding: 8bit\n"
|
|
19
|
+
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%"
|
|
20
|
+
"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
|
|
21
|
+
"X-Generator: KBabel 1.11.4\n"
|
|
22
|
+
|
|
23
|
+
#: lib/gettext/tools/rmsgmerge.rb:402
|
|
24
|
+
msgid "Usage: %s def.po ref.pot [-o output.pot]"
|
|
25
|
+
msgstr "Korištenje: %s def.po ref.pot [-o izlaz.pot]"
|
|
26
|
+
|
|
27
|
+
#: lib/gettext/tools/rmsgmerge.rb:405
|
|
28
|
+
msgid ""
|
|
29
|
+
"Merges two Uniforum style .po files together. The def.po file is an existing "
|
|
30
|
+
"PO file with translations. The ref.pot file is the last created PO file with "
|
|
31
|
+
"up-to-date source references. ref.pot is generally created by rgettext."
|
|
32
|
+
msgstr ""
|
|
33
|
+
"Spaja dvije Uniforum style .po datoteke skupa. def.po datoteka je već "
|
|
34
|
+
"postojeća PO datoteka sa prevodima. ref.pot je zadnja napravljena PO "
|
|
35
|
+
"datoteka sa najnovijim referencama koda. ref.pot je najčešće napravljen sa "
|
|
36
|
+
"rgettext."
|
|
37
|
+
|
|
38
|
+
#: lib/gettext/tools/rmsgmerge.rb:407 lib/gettext/tools/rgettext.rb:176
|
|
39
|
+
#: lib/gettext/tools/rmsgfmt.rb:50
|
|
40
|
+
msgid "Specific options:"
|
|
41
|
+
msgstr "Specifične opcije:"
|
|
42
|
+
|
|
43
|
+
#: lib/gettext/tools/rmsgmerge.rb:409 lib/gettext/tools/rgettext.rb:178
|
|
44
|
+
#: lib/gettext/tools/rmsgfmt.rb:52
|
|
45
|
+
msgid "write output to specified file"
|
|
46
|
+
msgstr "zapiši izlaz u specifičnu datoteku"
|
|
47
|
+
|
|
48
|
+
#: lib/gettext/tools/rmsgmerge.rb:420 lib/gettext/tools/rgettext.rb:195
|
|
49
|
+
#: lib/gettext/tools/rmsgfmt.rb:56
|
|
50
|
+
msgid "display version information and exit"
|
|
51
|
+
msgstr "prikaži informaciju o verziji i završi"
|
|
52
|
+
|
|
53
|
+
#: lib/gettext/tools/rmsgmerge.rb:446
|
|
54
|
+
msgid "definition po is not given."
|
|
55
|
+
msgstr "definicijski po nije dat."
|
|
56
|
+
|
|
57
|
+
#: lib/gettext/tools/rmsgmerge.rb:448
|
|
58
|
+
msgid "reference pot is not given."
|
|
59
|
+
msgstr "referencni po nije dat."
|
|
60
|
+
|
|
61
|
+
#: lib/gettext/tools/parser/glade.rb:73
|
|
62
|
+
msgid "`%{file}' is not glade-2.0 format."
|
|
63
|
+
msgstr "'%{file}' nije glade-2.0 format."
|
|
64
|
+
|
|
65
|
+
#: lib/gettext/tools/rgettext.rb:40
|
|
66
|
+
msgid "'%{klass}' is ignored."
|
|
67
|
+
msgstr "%{klass} je ignorisan."
|
|
68
|
+
|
|
69
|
+
#: lib/gettext/tools/rgettext.rb:161
|
|
70
|
+
msgid "Error parsing %{path}"
|
|
71
|
+
msgstr ""
|
|
72
|
+
|
|
73
|
+
#: lib/gettext/tools/rgettext.rb:172
|
|
74
|
+
msgid "Usage: %s input.rb [-r parser.rb] [-o output.pot]"
|
|
75
|
+
msgstr "Korištenje: %s ulaz.rb [-r parser.rb] [-o izlaz.pot]"
|
|
76
|
+
|
|
77
|
+
#: lib/gettext/tools/rgettext.rb:174
|
|
78
|
+
msgid "Extract translatable strings from given input files."
|
|
79
|
+
msgstr "Izvadi niske za prevođenje iz date ulazne datoteke."
|
|
80
|
+
|
|
81
|
+
#: lib/gettext/tools/rgettext.rb:182
|
|
82
|
+
msgid "File '%s' already exists."
|
|
83
|
+
msgstr "Datoteka '%s' već postoji."
|
|
84
|
+
|
|
85
|
+
#: lib/gettext/tools/rgettext.rb:187
|
|
86
|
+
msgid "require the library before executing rgettext"
|
|
87
|
+
msgstr "zahtjevaj biblioteku prije izvršavanja rgettext-a"
|
|
88
|
+
|
|
89
|
+
#: lib/gettext/tools/rgettext.rb:191
|
|
90
|
+
msgid "run in debugging mode"
|
|
91
|
+
msgstr "pokreni u modu za nalaženje grešaka"
|
|
92
|
+
|
|
93
|
+
#: lib/gettext/tools/rgettext.rb:218 lib/gettext/tools/rmsgfmt.rb:29
|
|
94
|
+
msgid "no input files"
|
|
95
|
+
msgstr "nema ulaznih datoteka"
|
|
96
|
+
|
|
97
|
+
#: lib/gettext/tools/rmsgfmt.rb:46
|
|
98
|
+
msgid "Usage: %s input.po [-o output.mo]"
|
|
99
|
+
msgstr "Korištenje: %s ulaz.po [-o izlaz.mo]"
|
|
100
|
+
|
|
101
|
+
#: lib/gettext/tools/rmsgfmt.rb:48
|
|
102
|
+
msgid "Generate binary message catalog from textual translation description."
|
|
103
|
+
msgstr "Generiši binarni katalog poruka iz tekstualnog opisa prevoda"
|
|
104
|
+
|
|
105
|
+
#: lib/gettext/tools.rb:68
|
|
106
|
+
#, fuzzy
|
|
107
|
+
msgid "Failed to merge with %{defpo}"
|
|
108
|
+
msgstr "Spajanje sa %{defpo} nije uspjelo - nastavljam dalje!"
|
|
109
|
+
|
|
110
|
+
#: lib/gettext/tools.rb:69
|
|
111
|
+
#, fuzzy
|
|
112
|
+
msgid "New .pot was copied to %{failed_filename}"
|
|
113
|
+
msgstr "Molim da provjerite novi .pot u %{failed_filename}"
|
|
114
|
+
|
|
115
|
+
#: lib/gettext/tools.rb:70
|
|
116
|
+
msgid "Check these po/pot-files. It may have syntax errors or something wrong."
|
|
117
|
+
msgstr ""
|
|
118
|
+
|
|
119
|
+
#: lib/gettext/tools.rb:173
|
|
120
|
+
msgid ""
|
|
121
|
+
"`%{cmd}' can not be found. \n"
|
|
122
|
+
"Install GNU Gettext then set PATH or MSGMERGE_PATH correctly."
|
|
123
|
+
msgstr ""
|
|
124
|
+
|
|
125
|
+
#: lib/gettext/runtime/textdomain_manager.rb:147
|
|
126
|
+
msgid "ngettext: 3rd parmeter is wrong: value = %{number}"
|
|
127
|
+
msgstr ""
|
|
128
|
+
|
|
129
|
+
#: lib/gettext/runtime/textdomain_manager.rb:153
|
|
130
|
+
msgid "ngettext: 3rd parameter should be a number, not nil."
|
|
131
|
+
msgstr ""
|
|
132
|
+
|
|
133
|
+
#: src/poparser.ry:38 src/poparser.ry:55
|
|
134
|
+
msgid "Warning: fuzzy message was ignored.\n"
|
|
135
|
+
msgstr "Upozorenje: čudna poruka je ignorisana.\n"
|
|
136
|
+
|
|
137
|
+
#: src/poparser.ry:148
|
|
138
|
+
msgid "Warning: obsolete msgid exists.\n"
|
|
139
|
+
msgstr "Upozorenje: nekorišteni msgid postoji.\n"
|