fast_gettext 0.4.16
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +2 -0
- data/CHANGELOG +6 -0
- data/README.markdown +181 -0
- data/Rakefile +42 -0
- data/VERSION +1 -0
- data/benchmark/base.rb +42 -0
- data/benchmark/baseline.rb +5 -0
- data/benchmark/fast_gettext.rb +18 -0
- data/benchmark/i18n_simple.rb +7 -0
- data/benchmark/ideal.rb +22 -0
- data/benchmark/locale/de.yml +127 -0
- data/benchmark/locale/de/LC_MESSAGES/large.mo +0 -0
- data/benchmark/misc/threadsave.rb +21 -0
- data/benchmark/namespace/fast_gettext.rb +15 -0
- data/benchmark/namespace/original.rb +14 -0
- data/benchmark/original.rb +15 -0
- data/examples/db/migration.rb +22 -0
- data/examples/missing_translation_logger.rb +13 -0
- data/fast_gettext.gemspec +114 -0
- data/lib/fast_gettext.rb +30 -0
- data/lib/fast_gettext/mo_file.rb +67 -0
- data/lib/fast_gettext/po_file.rb +14 -0
- data/lib/fast_gettext/storage.rb +188 -0
- data/lib/fast_gettext/translation.rb +53 -0
- data/lib/fast_gettext/translation_repository.rb +15 -0
- data/lib/fast_gettext/translation_repository/base.rb +49 -0
- data/lib/fast_gettext/translation_repository/chain.rb +43 -0
- data/lib/fast_gettext/translation_repository/db.rb +57 -0
- data/lib/fast_gettext/translation_repository/db_models/translation_key.rb +26 -0
- data/lib/fast_gettext/translation_repository/db_models/translation_text.rb +9 -0
- data/lib/fast_gettext/translation_repository/logger.rb +27 -0
- data/lib/fast_gettext/translation_repository/mo.rb +35 -0
- data/lib/fast_gettext/translation_repository/po.rb +18 -0
- data/spec/aa_unconfigued_spec.rb +21 -0
- data/spec/fast_gettext/mo_file_spec.rb +36 -0
- data/spec/fast_gettext/storage_spec.rb +309 -0
- data/spec/fast_gettext/translation_repository/base_spec.rb +21 -0
- data/spec/fast_gettext/translation_repository/chain_spec.rb +82 -0
- data/spec/fast_gettext/translation_repository/db_spec.rb +71 -0
- data/spec/fast_gettext/translation_repository/logger_spec.rb +41 -0
- data/spec/fast_gettext/translation_repository/mo_spec.rb +31 -0
- data/spec/fast_gettext/translation_repository/po_spec.rb +31 -0
- data/spec/fast_gettext/translation_spec.rb +152 -0
- data/spec/fast_gettext_spec.rb +44 -0
- data/spec/locale/de/LC_MESSAGES/test.mo +0 -0
- data/spec/locale/de/test.po +61 -0
- data/spec/locale/en/LC_MESSAGES/plural_test.mo +0 -0
- data/spec/locale/en/LC_MESSAGES/test.mo +0 -0
- data/spec/locale/en/plural_test.po +20 -0
- data/spec/locale/en/test.po +59 -0
- data/spec/spec_helper.rb +26 -0
- data/spec/vendor/fake_load_path/iconv.rb +2 -0
- data/spec/vendor/iconv_spec.rb +27 -0
- data/spec/vendor/string_spec.rb +67 -0
- data/vendor/README.rdoc +236 -0
- data/vendor/empty.mo +0 -0
- data/vendor/iconv.rb +107 -0
- data/vendor/mofile.rb +296 -0
- data/vendor/poparser.rb +331 -0
- data/vendor/string.rb +58 -0
- metadata +130 -0
Binary file
|
@@ -0,0 +1,61 @@
|
|
1
|
+
# SOME DESCRIPTIVE TITLE.
|
2
|
+
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
3
|
+
# This file is distributed under the same license as the PACKAGE package.
|
4
|
+
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
5
|
+
#
|
6
|
+
#, fuzzy
|
7
|
+
msgid ""
|
8
|
+
msgstr ""
|
9
|
+
"Project-Id-Version: version 0.0.1\n"
|
10
|
+
"POT-Creation-Date: 2009-02-26 19:50+0100\n"
|
11
|
+
"PO-Revision-Date: 2009-02-18 14:53+0100\n"
|
12
|
+
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
13
|
+
"Language-Team: LANGUAGE <LL@li.org>\n"
|
14
|
+
"MIME-Version: 1.0\n"
|
15
|
+
"Content-Type: text/plain; charset=UTF-8\n"
|
16
|
+
"Content-Transfer-Encoding: 8bit\n"
|
17
|
+
"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
|
18
|
+
|
19
|
+
#: app/helpers/translation_helper.rb:3
|
20
|
+
msgid "%{relative_time} ago"
|
21
|
+
msgstr "vor %{relative_time}"
|
22
|
+
|
23
|
+
#: app/views/cars/show.html.erb:5
|
24
|
+
msgid "Axis"
|
25
|
+
msgid_plural "Axis"
|
26
|
+
msgstr[0] "Achse"
|
27
|
+
msgstr[1] "Achsen"
|
28
|
+
|
29
|
+
#: app/controllers/cars_controller.rb:47
|
30
|
+
msgid "Car was successfully created."
|
31
|
+
msgstr "Auto wurde erfolgreich gespeichert"
|
32
|
+
|
33
|
+
#: app/controllers/cars_controller.rb:64
|
34
|
+
msgid "Car was successfully updated."
|
35
|
+
msgstr "Auto wurde erfolgreich aktualisiert"
|
36
|
+
|
37
|
+
#: app/views/cars/show.html.erb:1 locale/model_attributes.rb:3
|
38
|
+
msgid "Car|Model"
|
39
|
+
msgstr "Modell"
|
40
|
+
|
41
|
+
#: app/views/cars/show.html.erb:3 locale/model_attributes.rb:4
|
42
|
+
msgid "Car|Wheels count"
|
43
|
+
msgstr "Räderzahl"
|
44
|
+
|
45
|
+
#: app/views/cars/show.html.erb:7
|
46
|
+
msgid "Created"
|
47
|
+
msgstr "Erstellt"
|
48
|
+
|
49
|
+
#: app/views/cars/show.html.erb:9
|
50
|
+
msgid "Month"
|
51
|
+
msgstr "Monat"
|
52
|
+
|
53
|
+
#: locale/model_attributes.rb:2
|
54
|
+
msgid "car"
|
55
|
+
msgstr "Auto"
|
56
|
+
|
57
|
+
#: locale/testlog_phrases.rb:2
|
58
|
+
msgid "this is a dynamic translation which was found thorugh gettext_test_log!"
|
59
|
+
msgstr ""
|
60
|
+
"Dies ist eine dynamische Übersetzung, die durch gettext_test_log "
|
61
|
+
"gefunden wurde!"
|
Binary file
|
Binary file
|
@@ -0,0 +1,20 @@
|
|
1
|
+
# SOME DESCRIPTIVE TITLE.
|
2
|
+
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
3
|
+
# This file is distributed under the same license as the PACKAGE package.
|
4
|
+
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
5
|
+
#
|
6
|
+
#, fuzzy
|
7
|
+
msgid ""
|
8
|
+
msgstr ""
|
9
|
+
"Project-Id-Version: version 0.0.1\n"
|
10
|
+
"POT-Creation-Date: 2009-02-26 19:50+0100\n"
|
11
|
+
"PO-Revision-Date: 2009-02-18 15:42+0100\n"
|
12
|
+
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
13
|
+
"Language-Team: LANGUAGE <LL@li.org>\n"
|
14
|
+
"MIME-Version: 1.0\n"
|
15
|
+
"Content-Type: text/plain; charset=UTF-8\n"
|
16
|
+
"Content-Transfer-Encoding: 8bit\n"
|
17
|
+
"Plural-Forms: nplurals=2; plural=n==2?3:4;\n"
|
18
|
+
|
19
|
+
msgid "car"
|
20
|
+
msgstr "Test"
|
@@ -0,0 +1,59 @@
|
|
1
|
+
# SOME DESCRIPTIVE TITLE.
|
2
|
+
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
3
|
+
# This file is distributed under the same license as the PACKAGE package.
|
4
|
+
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
5
|
+
#
|
6
|
+
#, fuzzy
|
7
|
+
msgid ""
|
8
|
+
msgstr ""
|
9
|
+
"Project-Id-Version: version 0.0.1\n"
|
10
|
+
"POT-Creation-Date: 2009-02-26 19:50+0100\n"
|
11
|
+
"PO-Revision-Date: 2009-02-18 15:42+0100\n"
|
12
|
+
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
13
|
+
"Language-Team: LANGUAGE <LL@li.org>\n"
|
14
|
+
"MIME-Version: 1.0\n"
|
15
|
+
"Content-Type: text/plain; charset=UTF-8\n"
|
16
|
+
"Content-Transfer-Encoding: 8bit\n"
|
17
|
+
"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
|
18
|
+
|
19
|
+
#: app/helpers/translation_helper.rb:3
|
20
|
+
msgid "%{relative_time} ago"
|
21
|
+
msgstr ""
|
22
|
+
|
23
|
+
#: app/views/cars/show.html.erb:5
|
24
|
+
msgid "Axis"
|
25
|
+
msgid_plural "Axis"
|
26
|
+
msgstr[0] ""
|
27
|
+
msgstr[1] ""
|
28
|
+
|
29
|
+
#: app/controllers/cars_controller.rb:47
|
30
|
+
msgid "Car was successfully created."
|
31
|
+
msgstr ""
|
32
|
+
|
33
|
+
#: app/controllers/cars_controller.rb:64
|
34
|
+
msgid "Car was successfully updated."
|
35
|
+
msgstr ""
|
36
|
+
|
37
|
+
#: app/views/cars/show.html.erb:1 locale/model_attributes.rb:3
|
38
|
+
msgid "Car|Model"
|
39
|
+
msgstr ""
|
40
|
+
|
41
|
+
#: app/views/cars/show.html.erb:3 locale/model_attributes.rb:4
|
42
|
+
msgid "Car|Wheels count"
|
43
|
+
msgstr ""
|
44
|
+
|
45
|
+
#: app/views/cars/show.html.erb:7
|
46
|
+
msgid "Created"
|
47
|
+
msgstr ""
|
48
|
+
|
49
|
+
#: app/views/cars/show.html.erb:9
|
50
|
+
msgid "Month"
|
51
|
+
msgstr ""
|
52
|
+
|
53
|
+
#: locale/model_attributes.rb:2
|
54
|
+
msgid "car"
|
55
|
+
msgstr ""
|
56
|
+
|
57
|
+
#: locale/testlog_phrases.rb:2
|
58
|
+
msgid "this is a dynamic translation which was found thorugh gettext_test_log!"
|
59
|
+
msgstr ""
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,26 @@
|
|
1
|
+
# ---- requirements
|
2
|
+
require 'rubygems'
|
3
|
+
$LOAD_PATH.unshift File.expand_path("../lib", File.dirname(__FILE__))
|
4
|
+
require 'fast_gettext'
|
5
|
+
|
6
|
+
# ---- revert to defaults
|
7
|
+
Spec::Runner.configure do |config|
|
8
|
+
config.before :all do
|
9
|
+
FastGettext.locale = 'de'
|
10
|
+
FastGettext.available_locales = nil
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
# ---- Helpers
|
15
|
+
def pending_it(text,&block)
|
16
|
+
it text do
|
17
|
+
pending(&block)
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
def default_setup
|
22
|
+
FastGettext.add_text_domain('test',:path=>File.join(File.dirname(__FILE__),'locale'))
|
23
|
+
FastGettext.text_domain = 'test'
|
24
|
+
FastGettext.available_locales = ['en','de']
|
25
|
+
FastGettext.locale = 'de'
|
26
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
current_folder = File.dirname(__FILE__)
|
2
|
+
$LOAD_PATH.unshift File.expand_path("../../lib", current_folder)
|
3
|
+
|
4
|
+
describe 'Iconv' do
|
5
|
+
it "also works when Iconv was not found locally" do
|
6
|
+
#prepare load path
|
7
|
+
$LOAD_PATH.unshift File.join(current_folder,'fake_load_path')
|
8
|
+
test = 1
|
9
|
+
begin
|
10
|
+
require 'iconv'
|
11
|
+
rescue LoadError
|
12
|
+
test = 2
|
13
|
+
end
|
14
|
+
test.should == 2
|
15
|
+
|
16
|
+
#load fast_gettext
|
17
|
+
require 'fast_gettext'
|
18
|
+
|
19
|
+
FastGettext.add_text_domain('test',:path=>File.join(File.dirname(__FILE__),'..','locale'))
|
20
|
+
FastGettext.text_domain = 'test'
|
21
|
+
FastGettext.available_locales = ['en','de']
|
22
|
+
FastGettext.locale = 'de'
|
23
|
+
|
24
|
+
#translate
|
25
|
+
FastGettext._('car').should == 'Auto'
|
26
|
+
end
|
27
|
+
end
|
@@ -0,0 +1,67 @@
|
|
1
|
+
current_folder = File.dirname(__FILE__)
|
2
|
+
require File.join(current_folder,'..','spec_helper')
|
3
|
+
|
4
|
+
#just to make sure we did not mess up while copying...
|
5
|
+
describe String do
|
6
|
+
it "does not translate twice" do
|
7
|
+
("%{a} %{b}" % {:a=>'%{b}',:b=>'c'}).should == '%{b} c'
|
8
|
+
end
|
9
|
+
|
10
|
+
describe "old % style replacement" do
|
11
|
+
it "substitudes using % + Hash" do
|
12
|
+
"x%{name}y" %{:name=>'a'}.should == 'xay'
|
13
|
+
end
|
14
|
+
|
15
|
+
it "does not substitute after %%" do
|
16
|
+
("%%{num} oops" % {:num => 1}).should == '%{num} oops'
|
17
|
+
end
|
18
|
+
|
19
|
+
it "does not substitute when nothing could be found" do
|
20
|
+
("abc" % {:x=>1}).should == 'abc'
|
21
|
+
end
|
22
|
+
|
23
|
+
it "sustitutes strings" do
|
24
|
+
("a%{b}c" % {'b'=>1}).should == 'a1c'
|
25
|
+
end
|
26
|
+
|
27
|
+
it "sustitutes strings with -" do
|
28
|
+
("a%{b-a}c" % {'b-a'=>1}).should == 'a1c'
|
29
|
+
end
|
30
|
+
|
31
|
+
it "sustitutes string with ." do
|
32
|
+
("a%{b.a}c" % {'b.a'=>1}).should == 'a1c'
|
33
|
+
end
|
34
|
+
|
35
|
+
it "sustitutes string with number" do
|
36
|
+
("a%{1}c" % {'1'=>1}).should == 'a1c'
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
describe 'old sprintf style' do
|
41
|
+
it "substitudes using % + Array" do
|
42
|
+
("x%sy%s" % ['a','b']).should == 'xayb'
|
43
|
+
end
|
44
|
+
|
45
|
+
it "does not remove %{} style replacements" do
|
46
|
+
("%{name} x%sy%s" % ['a','b']).should == '%{name} xayb'
|
47
|
+
end
|
48
|
+
|
49
|
+
it "does not remove %<> style replacement" do
|
50
|
+
("%{name} %<num>f %s" % ['x']).should == "%{name} %<num>f x"
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
describe 'ruby 1.9 style %< replacement' do
|
55
|
+
it "does not substitute after %%" do
|
56
|
+
("%%<num> oops" % {:num => 1}).should == '%<num> oops'
|
57
|
+
end
|
58
|
+
|
59
|
+
it "subsitutes %<something>d" do
|
60
|
+
("x%<hello>dy" % {:hello=>1}).should == 'x1y'
|
61
|
+
end
|
62
|
+
|
63
|
+
it "substitutes #b" do
|
64
|
+
("%<num>#b" % {:num => 1}).should == "0b1"
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
data/vendor/README.rdoc
ADDED
@@ -0,0 +1,236 @@
|
|
1
|
+
= Ruby-GetText-Package
|
2
|
+
|
3
|
+
Ruby-GetText-Package is a Localization(L10n) library and tool
|
4
|
+
which is modeled after the GNU gettext package.
|
5
|
+
|
6
|
+
This library translates original messages to localized
|
7
|
+
messages using client-side locale information(environment
|
8
|
+
variable or CGI variable).
|
9
|
+
|
10
|
+
The tools for developers support creating, useing, and modifying
|
11
|
+
localized message files(message catalogs).
|
12
|
+
|
13
|
+
((*Rails*))
|
14
|
+
Rails support has been removed.
|
15
|
+
Rails / ActiveRecord specific code now lives in gettext_rails and gettext_activerecord.
|
16
|
+
|
17
|
+
== Website
|
18
|
+
* homepage[http://www.yotabanana.com/hiki/ruby-gettext.html]
|
19
|
+
* on rubyforge[http://gettext/rubyforge.org/]
|
20
|
+
* on github[http://github.com/gettext/]
|
21
|
+
|
22
|
+
== Features
|
23
|
+
* Simple APIs(similar to GNU gettext)
|
24
|
+
|
25
|
+
* rgettext creates po-files from
|
26
|
+
* ruby scripts
|
27
|
+
* glade-2 XML file(.glade)
|
28
|
+
* ERB file(.rhtml, .erb)
|
29
|
+
* Anything (with your own parsers)
|
30
|
+
* The po-files are compatible to GNU gettext.
|
31
|
+
|
32
|
+
* rmsgfmt creates a mo-file from a po-file.
|
33
|
+
The mo-file is compatible to GNU gettext(msgfmt).
|
34
|
+
|
35
|
+
* textdomain's scope is adapt to ruby class/module mechanism.
|
36
|
+
* A class/module can have plural textdomains.
|
37
|
+
* a message is looked up in its class/module and ancestors.
|
38
|
+
|
39
|
+
* CGI support (gettext/cgi)
|
40
|
+
* Locale is retrieved from client informations
|
41
|
+
(HTTP_ACCEPT_LANGUAGE, HTTP_ACCEPT_CHARSET, QUERY_STRING(lang), Cookies(lang)).
|
42
|
+
|
43
|
+
* String%() is extended to use named argument such as <tt>%{foo}" %{:foo => 1}</tt>.
|
44
|
+
Notes that Ruby-1.9.x supports this format by itself.
|
45
|
+
|
46
|
+
== Requirements
|
47
|
+
* {Ruby 1.8.3 or later}[http://www.ruby-lang.org]
|
48
|
+
* {Rubygems}[http://www.rubygems.org/]
|
49
|
+
* {locale gem}[http://rubyforge.org/projects/locale/]
|
50
|
+
* $ gem install locale
|
51
|
+
* (for development only)
|
52
|
+
* {GNU gettext 0.10.35 or later}[http://www.gnu.org/software/gettext/gettext.html]
|
53
|
+
* {Racc-1.4.3 or later}[http://www.ruby-lang.org/raa/list.rhtml?name=racc]
|
54
|
+
* (for compiling src/rmsgfmt.ry only)
|
55
|
+
|
56
|
+
== Install
|
57
|
+
* Uninstall old gettext if exists.
|
58
|
+
(sudo/su on POSIX system)
|
59
|
+
gem uninstall gettext
|
60
|
+
|
61
|
+
* gem
|
62
|
+
#from github (edge/unstable)
|
63
|
+
(sudo/su on POSIX system)
|
64
|
+
gem install locale
|
65
|
+
gem install mutoh-gettext -s http://gems.github.com/
|
66
|
+
|
67
|
+
#from rubyforge (stable)
|
68
|
+
(sudo/su on POSIX system)
|
69
|
+
gem install locale
|
70
|
+
gem install gettext
|
71
|
+
|
72
|
+
* download tar-ball
|
73
|
+
# De-Compress archive and enter its top directory.
|
74
|
+
(sudo/su on POSIX system)
|
75
|
+
ruby setup.rb
|
76
|
+
|
77
|
+
You can also install files in your favorite directory by
|
78
|
+
supplying setup.rb some options. Try <tt>ruby setup.rb --help</tt>.
|
79
|
+
|
80
|
+
== Usage
|
81
|
+
===Translation
|
82
|
+
- _: Basic translation method
|
83
|
+
Translates the message.
|
84
|
+
_("Hello")
|
85
|
+
|
86
|
+
The gettext methods comes in 3 combinable flavors
|
87
|
+
- n: Pluralized
|
88
|
+
Returns singular or plural form, depending on how many you have.
|
89
|
+
n_("Apple", "%{num} Apples", 3)
|
90
|
+
n_(["Apple", "%{num} Apples"], 3)
|
91
|
+
|
92
|
+
- p: context aware
|
93
|
+
A context is a prefix to your translation, usefull when one word has different meanings, depending on its context.
|
94
|
+
p_("Printer","Open") <=> p_("File","Open")
|
95
|
+
is the same as s_("Printer|Open") <=> s_("File|Open")
|
96
|
+
|
97
|
+
- s: without context
|
98
|
+
If a translation could not be found, return the msgid without context.
|
99
|
+
s_("Printer|Open") => "Öffnen" #translation found
|
100
|
+
s_("Printer|Open") => "Open" #translation not found
|
101
|
+
|
102
|
+
- combinations
|
103
|
+
np_("Fruit", "Apple", "%{num} Apples", 3)
|
104
|
+
ns_("Fruit|Apple","%{num} Apples", 3)
|
105
|
+
|
106
|
+
np_(["Fruit","Apple","%{num} Apples"], 3)
|
107
|
+
ns_(["Fruit|Apple","%{num} Apples"], 3)
|
108
|
+
|
109
|
+
- N_, Nn_: Makes dynamic translation messages readable for the gettext parser.
|
110
|
+
<tt>_(fruit)</tt> cannot be understood by the gettext parser. To help the parser find all your translations,
|
111
|
+
you can add <tt>fruit = N_("Apple")</tt> which does not translate, but tells the parser: "Apple" needs translation.
|
112
|
+
|
113
|
+
fruit = N_("Apple") # same as fruit = "Apple"
|
114
|
+
_(fruit) # does a normal translation
|
115
|
+
|
116
|
+
fruits = Nn_("Apple", "%{num} Apples")
|
117
|
+
n_(fruits, 3)
|
118
|
+
|
119
|
+
=== Locale / Domain
|
120
|
+
GetText stores the locale your are using
|
121
|
+
GetText.locale = "en_US" # translate into english from now on
|
122
|
+
GetText.locale # => en_US
|
123
|
+
Or
|
124
|
+
include GetText
|
125
|
+
set_locale "en_US"
|
126
|
+
|
127
|
+
Each locale can have different sets of translations (text domains) (e.g. Financial terms + Human-resource terms)
|
128
|
+
GetText.bindtextdomain('financial')
|
129
|
+
Or
|
130
|
+
include GetText
|
131
|
+
bindtextdomain('financial')
|
132
|
+
|
133
|
+
For more details and options, have a look at the samples folder or
|
134
|
+
consult the tutorial[http://www.yotabanana.com/hiki/ruby-gettext-howto.html].
|
135
|
+
|
136
|
+
|
137
|
+
== License
|
138
|
+
This program is licenced under the same licence as Ruby.
|
139
|
+
(See the file 'COPYING'.)
|
140
|
+
|
141
|
+
* mofile.rb
|
142
|
+
* Copyright (C) 2001-2009 Masao Mutoh <mutoh at highwhay.ne.jp>
|
143
|
+
* Copyright (C) 2001,2002 Masahiro Sakai <s01397ms at sfc.keio.ac.jp>
|
144
|
+
|
145
|
+
* gettext.rb
|
146
|
+
* Copyright (C) 2001-2009 Masao Mutoh <mutoh at highwhay.ne.jp>
|
147
|
+
* Copyright (C) 2001,2002 Masahiro Sakai <s01397ms at sfc.keio.ac.jp>
|
148
|
+
|
149
|
+
* rgettext
|
150
|
+
* Copyright (C) 2001-2009 Masao Mutoh <mutoh at highwhay.ne.jp>
|
151
|
+
* Copyright (C) 2001,2002 Yasushi Shoji <yashi at atmark-techno.com>
|
152
|
+
|
153
|
+
* setup.rb
|
154
|
+
* Copyright (C) 2000-2005 Minero Aoki <aamine at loveruby.net>
|
155
|
+
* This file is released under LGPL. See the top of the install.rb.
|
156
|
+
|
157
|
+
* Others
|
158
|
+
* Copyright (C) 2001-2009 Masao Mutoh <mutoh at highwhay.ne.jp>
|
159
|
+
|
160
|
+
|
161
|
+
== Translators
|
162
|
+
* Bosnian(bs) - Sanjin Sehic <saserr at gmail.com>
|
163
|
+
* Bulgarian(bg) - Sava Chankov <sava.chankov at gmail.com>
|
164
|
+
* Catalan(ca) - Ramon Salvadó <rsalvado at gnuine.com>
|
165
|
+
* Chinese(Simplified)(zh_CN)
|
166
|
+
* Yang Bob <bob.yang.dev at gmail.com> (current)
|
167
|
+
* Yingfeng <blogyingfeng at gmail.com>
|
168
|
+
* Chinese(Traditional)(zh_TW)
|
169
|
+
* Yang Bob <bob.yang.dev at gmail.com> (current)
|
170
|
+
* LIN CHUNG-YI <xmarsh at gmail.com>
|
171
|
+
* Croatian(hr) - Sanjin Sehic <saserr at gmail.com>
|
172
|
+
* Czech(cs) - Karel Miarka <kajism at yahoo.com>
|
173
|
+
* Dutch(nl) - Menno Jonkers <ruby-gettext at jonkers.com>
|
174
|
+
* Esperanto(eo) - Malte Milatz <malte at gmx-topmail.de>
|
175
|
+
* Estonian(et) - Erkki Eilonen <erkki at itech.ee>
|
176
|
+
* French(fr)
|
177
|
+
* Vincent Isambart <vincent.isambart at gmail.com> (current)
|
178
|
+
* David Sulc <davidsulc at gmail.com>
|
179
|
+
* Laurent Sansonetti <laurent.sansonetti at gmail.com>
|
180
|
+
* German(de)
|
181
|
+
* Patrick Lenz <patrick at limited-overload.de> (current)
|
182
|
+
* Detlef Reichl <detlef.reichl at gmx.org>
|
183
|
+
* Sven Herzberg <herzi at abi02.de>
|
184
|
+
* Sascha Ebach <se at digitale-wertschoepfung.de>
|
185
|
+
* Greek(el) - Vassilis Rizopoulos <damphyr at gmx.net>
|
186
|
+
* Hungarian(hu) - Tamás Tompa <tompata at gmail.com>
|
187
|
+
* Italian(it)
|
188
|
+
* Marco Lazzeri <marco.lazzeri at gmail.com>
|
189
|
+
* Gabriele Renzi <surrender_it at yahoo.it>
|
190
|
+
* Japanese(ja) - Masao Mutoh <mutoh at highway.ne.jp>
|
191
|
+
* Korean(ko) - Gyoung-Yoon Noh <nohmad at gmail.com>
|
192
|
+
* Latvian(lv) - Aivars Akots <aivars.akots at gmail.com>
|
193
|
+
* Norwegian(nb) - Runar Ingebrigtsen <runar at mopo.no>
|
194
|
+
* Portuguese(Brazil)(pt_BR)
|
195
|
+
* Antonio S. de A. Terceiro <terceiro at softwarelivre.org> (current)
|
196
|
+
* Joao Pedrosa <joaopedrosa at gmail.com>
|
197
|
+
* Russian(ru) - Yuri Kozlov <kozlov.y at gmail.com>
|
198
|
+
* Serbian(sr) - Slobodan Paunović" <slobodan.paunovic at gmail.com>
|
199
|
+
* Spanish(es)
|
200
|
+
* David Espada <davinci at escomposlinux.org> (current)
|
201
|
+
* David Moreno Garza <damog at damog.net>
|
202
|
+
* Swedish(sv) - Nikolai Weibull <mailing-lists.ruby-talk at rawuncut.elitemail.org>
|
203
|
+
* Ukrainian(ua) - Alex Rootoff <rootoff at pisem.net>
|
204
|
+
* Vietnamese(vi) - Ngoc Dao Thanh <ngocdaothanh at gmail.com>
|
205
|
+
|
206
|
+
== Status of translations
|
207
|
+
* Bosnian(bs) - 1.90.0 (old)
|
208
|
+
* Bulgarian(bg) - 2.0.0pre1 (new)
|
209
|
+
* Catalan(ca) - 2.0.0pre1
|
210
|
+
* Croatian(hr) - 1.90.0 (old)
|
211
|
+
* Chinese(zh_CN) - 2.0.0pre1
|
212
|
+
* Chinese(zh_TW) - 2.0.0pre1
|
213
|
+
* Czech(cs) - 1.9.0 (old)
|
214
|
+
* Dutch(nl) - 1.90.0 (old)
|
215
|
+
* English(default) - 1.90.0 (old)
|
216
|
+
* Esperanto(eo) - 2.0.0pre1
|
217
|
+
* Estonian(et) - 2.0.0pre1
|
218
|
+
* French(fr) - 2.0.0pre1
|
219
|
+
* German(de) - 2.0.0pre1
|
220
|
+
* Greek(el) - 2.0.0pre1
|
221
|
+
* Hungarian(hu) - 2.0.0pre1
|
222
|
+
* Italian(it) - 1.6.0 (old)
|
223
|
+
* Japanese(ja) - 2.0.0pre1
|
224
|
+
* Korean(ko) - 1.9.0 (old)
|
225
|
+
* Latvian(lv) - 2.0.0pre1 (new)
|
226
|
+
* Norwegian(nb) - 2.0.0pre1
|
227
|
+
* Portuguese(Brazil)(pt_BR) - 2.0.0pre1
|
228
|
+
* Russian(ru) - 2.0.0pre1
|
229
|
+
* Serbian(sr) - 1.91.0 (old)
|
230
|
+
* Spanish(es) - 2.0.0pre1
|
231
|
+
* Swedish(sv) - 0.8.0 (too much old)
|
232
|
+
* Ukrainian(ua) - 2.0.0pre1
|
233
|
+
* Vietnamese(vi) - 2.0.0pre1
|
234
|
+
|
235
|
+
== Maintainer
|
236
|
+
Masao Mutoh <mutoh at highway.ne.jp>
|