gettext 3.4.1 → 3.4.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 30955d3f68dfd548513675212b0b2436aab9c105b24ebd82b02d905a24b33739
4
- data.tar.gz: 8f56bde4bf561174dadf631d7ccd434f31fe8945386b85f0fa274e544f8d4c7e
3
+ metadata.gz: 8b06a32f776c073ec316860952a830ed9941ce67ab34b0e1f111f1009ba8842d
4
+ data.tar.gz: 9736e8cf70f1faeb97daed575e020e3edd2bd76daab2f069cfaf103dbb0e51e6
5
5
  SHA512:
6
- metadata.gz: 1129a8825148863c28e8dec1ae2bcf86cc830a98836dcfa4baabeed83e45536389b2fa1e26275f4b54a7060826d6b966783a07e84cb126f1b906c0e77ee81bdf
7
- data.tar.gz: 816baa0a49fc068e0e14329828783a97b5122a3b8c6dae7cdefd67dc67f9d14ad9fefe28a90a9ee786ef69b926a80596325fb81cd683798d59dd3a8bb704de4b
6
+ metadata.gz: f3480005cc4f1a84ef2fbf53c25c5d198b871b5fed9885f4fd352a90815d78ad0bde1c76234fa5f10809c5b0c35e8f9c1518a51ec963e24d95fc7fd98b5ccecf
7
+ data.tar.gz: fc670a833c0d30e6d3c36b086e9298a39145ca105c9134a12667343f4c863a978b5820ef6c08b0dad35efd7a6a223c677d9085106d4f72241b0f8a0079196575
data/doc/text/news.md CHANGED
@@ -1,5 +1,22 @@
1
1
  # News
2
2
 
3
+ ## 3.4.2: 2022-01-11 {#version-3-4-2}
4
+
5
+ ### Improvements
6
+
7
+ * Added support for fallback for specific locale.
8
+ e.g.: `fr_BE_Foo` -> `fr_BE` -> `fr`
9
+ [GitHub#90][Patch by Michaël Hoste]
10
+
11
+ * Added support for Ruby 3.1.
12
+ [GitHub#92][Reported by ahiru]
13
+
14
+ ### Thanks
15
+
16
+ * Michaël Hoste
17
+
18
+ * ahiru
19
+
3
20
  ## 3.4.1: 2021-09-08 {#version-3-4-1}
4
21
 
5
22
  ### Improvements
data/gettext.gemspec CHANGED
@@ -30,6 +30,7 @@ So you can use GNU gettext tools for maintaining.
30
30
  s.required_ruby_version = ">= 2.5.0"
31
31
 
32
32
  s.add_runtime_dependency("locale", ">= 2.0.5")
33
+ s.add_runtime_dependency("prime")
33
34
  s.add_runtime_dependency("text", ">= 1.3.0")
34
35
  s.add_development_dependency("kramdown")
35
36
  s.add_development_dependency("racc")
data/lib/gettext/mo.rb CHANGED
@@ -3,7 +3,7 @@
3
3
  =begin
4
4
  mo.rb - A simple class for operating GNU MO file.
5
5
 
6
- Copyright (C) 2012-2017 Kouhei Sutou <kou@clear-code.com>
6
+ Copyright (C) 2012-2022 Sutou Kouhei <kou@clear-code.com>
7
7
  Copyright (C) 2003-2009 Masao Mutoh
8
8
  Copyright (C) 2002 Masahiro Sakai, Masao Mutoh
9
9
  Copyright (C) 2001 Masahiro Sakai
@@ -19,6 +19,8 @@
19
19
 
20
20
  require 'stringio'
21
21
 
22
+ require 'prime'
23
+
22
24
  module GetText
23
25
  class MO < Hash
24
26
  class InvalidFormat < RuntimeError; end;
@@ -168,19 +170,8 @@ module GetText
168
170
  ('1' * number) !~ /^1?$|^(11+?)\1+$/
169
171
  end
170
172
 
171
- begin
172
- require 'prime'
173
- def next_prime(seed)
174
- Prime.instance.find{|x| x > seed }
175
- end
176
- rescue LoadError
177
- def next_prime(seed)
178
- require 'mathn'
179
- prime = Prime.new
180
- while current = prime.succ
181
- return current if current > seed
182
- end
183
- end
173
+ def next_prime(seed)
174
+ Prime.instance.find{|x| x > seed }
184
175
  end
185
176
 
186
177
  HASHWORDBITS = 32
@@ -77,11 +77,12 @@ module GetText
77
77
  end
78
78
 
79
79
  def each_text_domains(klass) #:nodoc:
80
- lang = Locale.candidates[0]
81
- ClassInfo.related_classes(klass, @@gettext_classes).each do |target|
82
- if group = @@text_domain_group_pool[target]
83
- group.text_domains.each do |text_domain|
84
- yield text_domain, lang
80
+ Locale.candidates.each do |lang|
81
+ ClassInfo.related_classes(klass, @@gettext_classes).each do |target|
82
+ if group = @@text_domain_group_pool[target]
83
+ group.text_domains.each do |text_domain|
84
+ yield text_domain, lang
85
+ end
85
86
  end
86
87
  end
87
88
  end
@@ -9,5 +9,5 @@
9
9
  =end
10
10
 
11
11
  module GetText
12
- VERSION = "3.4.1"
12
+ VERSION = "3.4.2"
13
13
  end
@@ -19,11 +19,11 @@ msgstr ""
19
19
  "Content-Transfer-Encoding: 8bit\n"
20
20
  "Plural-Forms: nplurals=2; plural=(n != 1);\n"
21
21
 
22
- #: ../lib/gettext/text_domain_manager.rb:148
22
+ #: ../lib/gettext/text_domain_manager.rb:149
23
23
  msgid "ngettext: 3rd parmeter is wrong: value = %{number}"
24
24
  msgstr "Третият параметър е грешен: value = %{number}"
25
25
 
26
- #: ../lib/gettext/text_domain_manager.rb:154
26
+ #: ../lib/gettext/text_domain_manager.rb:155
27
27
  msgid "ngettext: 3rd parameter should be a number, not nil."
28
28
  msgstr ""
29
29
 
@@ -21,11 +21,11 @@ msgstr ""
21
21
  " && (n%100<10 || n%100>=20) ? 1 : 2;\n"
22
22
  "X-Generator: KBabel 1.11.4\n"
23
23
 
24
- #: ../lib/gettext/text_domain_manager.rb:148
24
+ #: ../lib/gettext/text_domain_manager.rb:149
25
25
  msgid "ngettext: 3rd parmeter is wrong: value = %{number}"
26
26
  msgstr ""
27
27
 
28
- #: ../lib/gettext/text_domain_manager.rb:154
28
+ #: ../lib/gettext/text_domain_manager.rb:155
29
29
  msgid "ngettext: 3rd parameter should be a number, not nil."
30
30
  msgstr ""
31
31
 
@@ -19,11 +19,11 @@ msgstr ""
19
19
  "Content-Transfer-Encoding: 8bit\n"
20
20
  "Plural-Forms: nplurals=2; plural=(n != 1);\n"
21
21
 
22
- #: ../lib/gettext/text_domain_manager.rb:148
22
+ #: ../lib/gettext/text_domain_manager.rb:149
23
23
  msgid "ngettext: 3rd parmeter is wrong: value = %{number}"
24
24
  msgstr "El tercer paràmetre es erroni: valor = %{number}"
25
25
 
26
- #: ../lib/gettext/text_domain_manager.rb:154
26
+ #: ../lib/gettext/text_domain_manager.rb:155
27
27
  msgid "ngettext: 3rd parameter should be a number, not nil."
28
28
  msgstr ""
29
29
 
@@ -22,11 +22,11 @@ msgstr ""
22
22
  "X-Poedit-Language: Czech\n"
23
23
  "X-Poedit-Bookmarks: -1,-1,-1,-1,-1,-1,-1,-1,15,-1\n"
24
24
 
25
- #: ../lib/gettext/text_domain_manager.rb:148
25
+ #: ../lib/gettext/text_domain_manager.rb:149
26
26
  msgid "ngettext: 3rd parmeter is wrong: value = %{number}"
27
27
  msgstr ""
28
28
 
29
- #: ../lib/gettext/text_domain_manager.rb:154
29
+ #: ../lib/gettext/text_domain_manager.rb:155
30
30
  msgid "ngettext: 3rd parameter should be a number, not nil."
31
31
  msgstr ""
32
32
 
@@ -23,12 +23,12 @@ msgstr ""
23
23
  "Content-Transfer-Encoding: 8bit\n"
24
24
  "Plural-Forms: nplurals=2; plural=(n != 1);\n"
25
25
 
26
- #: ../lib/gettext/text_domain_manager.rb:148
26
+ #: ../lib/gettext/text_domain_manager.rb:149
27
27
  #, fuzzy
28
28
  msgid "ngettext: 3rd parmeter is wrong: value = %{number}"
29
29
  msgstr "Der 3. Parameter ist ungültig: value = %{number}"
30
30
 
31
- #: ../lib/gettext/text_domain_manager.rb:154
31
+ #: ../lib/gettext/text_domain_manager.rb:155
32
32
  msgid "ngettext: 3rd parameter should be a number, not nil."
33
33
  msgstr ""
34
34
 
@@ -19,12 +19,12 @@ msgstr ""
19
19
  "Content-Transfer-Encoding: 8bit\n"
20
20
  "Plural-Forms: nplurals=2; plural=(n != 1);\n"
21
21
 
22
- #: ../lib/gettext/text_domain_manager.rb:148
22
+ #: ../lib/gettext/text_domain_manager.rb:149
23
23
  #, fuzzy
24
24
  msgid "ngettext: 3rd parmeter is wrong: value = %{number}"
25
25
  msgstr "Η τρίτη παράμετρος είναι λανθασμένη: value = %{number}"
26
26
 
27
- #: ../lib/gettext/text_domain_manager.rb:154
27
+ #: ../lib/gettext/text_domain_manager.rb:155
28
28
  msgid "ngettext: 3rd parameter should be a number, not nil."
29
29
  msgstr ""
30
30
 
@@ -21,12 +21,12 @@ msgstr ""
21
21
  "Plural-Forms: nplurals=2; plural=(n != 1);\n"
22
22
 
23
23
  # TODO: Should this be "parameter"?
24
- #: ../lib/gettext/text_domain_manager.rb:148
24
+ #: ../lib/gettext/text_domain_manager.rb:149
25
25
  #, fuzzy
26
26
  msgid "ngettext: 3rd parmeter is wrong: value = %{number}"
27
27
  msgstr "Malĝusta tria parametro: valoro = %{number}"
28
28
 
29
- #: ../lib/gettext/text_domain_manager.rb:154
29
+ #: ../lib/gettext/text_domain_manager.rb:155
30
30
  msgid "ngettext: 3rd parameter should be a number, not nil."
31
31
  msgstr ""
32
32
 
@@ -20,12 +20,12 @@ msgstr ""
20
20
  "Content-Transfer-Encoding: 8bit\n"
21
21
  "Plural-Forms: nplurals=2; plural=(n != 1);\n"
22
22
 
23
- #: ../lib/gettext/text_domain_manager.rb:148
23
+ #: ../lib/gettext/text_domain_manager.rb:149
24
24
  #, fuzzy
25
25
  msgid "ngettext: 3rd parmeter is wrong: value = %{number}"
26
26
  msgstr "tercer parámetro es erróneo: valor = %{número}"
27
27
 
28
- #: ../lib/gettext/text_domain_manager.rb:154
28
+ #: ../lib/gettext/text_domain_manager.rb:155
29
29
  msgid "ngettext: 3rd parameter should be a number, not nil."
30
30
  msgstr ""
31
31
 
@@ -20,12 +20,12 @@ msgstr ""
20
20
  "Content-Transfer-Encoding: 8bit\n"
21
21
  "Plural-Forms: nplurals=2; plural=n != 1;\n"
22
22
 
23
- #: ../lib/gettext/text_domain_manager.rb:148
23
+ #: ../lib/gettext/text_domain_manager.rb:149
24
24
  #, fuzzy
25
25
  msgid "ngettext: 3rd parmeter is wrong: value = %{number}"
26
26
  msgstr "Kolmas parameeter on vale: %{number}"
27
27
 
28
- #: ../lib/gettext/text_domain_manager.rb:154
28
+ #: ../lib/gettext/text_domain_manager.rb:155
29
29
  msgid "ngettext: 3rd parameter should be a number, not nil."
30
30
  msgstr ""
31
31
 
@@ -21,12 +21,12 @@ msgstr ""
21
21
  "Content-Transfer-Encoding: 8bit\n"
22
22
  "Plural-Forms: nplurals=2; plural=n == 1 ? 0 : 1;\n"
23
23
 
24
- #: ../lib/gettext/text_domain_manager.rb:148
24
+ #: ../lib/gettext/text_domain_manager.rb:149
25
25
  #, fuzzy
26
26
  msgid "ngettext: 3rd parmeter is wrong: value = %{number}"
27
27
  msgstr "Le 3ème paramètre (de valeur %{number}) est incorrect."
28
28
 
29
- #: ../lib/gettext/text_domain_manager.rb:154
29
+ #: ../lib/gettext/text_domain_manager.rb:155
30
30
  msgid "ngettext: 3rd parameter should be a number, not nil."
31
31
  msgstr ""
32
32
 
data/po/gettext.pot CHANGED
@@ -6,10 +6,10 @@
6
6
  #, fuzzy
7
7
  msgid ""
8
8
  msgstr ""
9
- "Project-Id-Version: gettext 3.4.1\n"
9
+ "Project-Id-Version: gettext 3.4.2\n"
10
10
  "Report-Msgid-Bugs-To: \n"
11
- "POT-Creation-Date: 2021-09-08 13:05+0900\n"
12
- "PO-Revision-Date: 2021-09-08 13:05+0900\n"
11
+ "POT-Creation-Date: 2022-01-11 06:23+0900\n"
12
+ "PO-Revision-Date: 2022-01-11 06:23+0900\n"
13
13
  "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
14
14
  "Language-Team: LANGUAGE <LL@li.org>\n"
15
15
  "Language: \n"
@@ -18,11 +18,11 @@ msgstr ""
18
18
  "Content-Transfer-Encoding: 8bit\n"
19
19
  "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
20
20
 
21
- #: ../lib/gettext/text_domain_manager.rb:148
21
+ #: ../lib/gettext/text_domain_manager.rb:149
22
22
  msgid "ngettext: 3rd parmeter is wrong: value = %{number}"
23
23
  msgstr ""
24
24
 
25
- #: ../lib/gettext/text_domain_manager.rb:154
25
+ #: ../lib/gettext/text_domain_manager.rb:155
26
26
  msgid "ngettext: 3rd parameter should be a number, not nil."
27
27
  msgstr ""
28
28
 
@@ -21,11 +21,11 @@ msgstr ""
21
21
  " && (n%100<10 || n%100>=20) ? 1 : 2;\n"
22
22
  "X-Generator: KBabel 1.11.4\n"
23
23
 
24
- #: ../lib/gettext/text_domain_manager.rb:148
24
+ #: ../lib/gettext/text_domain_manager.rb:149
25
25
  msgid "ngettext: 3rd parmeter is wrong: value = %{number}"
26
26
  msgstr ""
27
27
 
28
- #: ../lib/gettext/text_domain_manager.rb:154
28
+ #: ../lib/gettext/text_domain_manager.rb:155
29
29
  msgid "ngettext: 3rd parameter should be a number, not nil."
30
30
  msgstr ""
31
31
 
@@ -20,12 +20,12 @@ msgstr ""
20
20
  "Content-Transfer-Encoding: 8bit\n"
21
21
  "Plural-Forms: nplurals=2; plural=(n != 1);\n"
22
22
 
23
- #: ../lib/gettext/text_domain_manager.rb:148
23
+ #: ../lib/gettext/text_domain_manager.rb:149
24
24
  #, fuzzy
25
25
  msgid "ngettext: 3rd parmeter is wrong: value = %{number}"
26
26
  msgstr "A harmadik paraméter hibás: value = %{number}"
27
27
 
28
- #: ../lib/gettext/text_domain_manager.rb:154
28
+ #: ../lib/gettext/text_domain_manager.rb:155
29
29
  msgid "ngettext: 3rd parameter should be a number, not nil."
30
30
  msgstr ""
31
31
 
@@ -20,11 +20,11 @@ msgstr ""
20
20
  "Content-Transfer-Encoding: 8bit\n"
21
21
  "Plural-Forms: nplurals=2; plural=(n != 1);\n"
22
22
 
23
- #: ../lib/gettext/text_domain_manager.rb:148
23
+ #: ../lib/gettext/text_domain_manager.rb:149
24
24
  msgid "ngettext: 3rd parmeter is wrong: value = %{number}"
25
25
  msgstr ""
26
26
 
27
- #: ../lib/gettext/text_domain_manager.rb:154
27
+ #: ../lib/gettext/text_domain_manager.rb:155
28
28
  msgid "ngettext: 3rd parameter should be a number, not nil."
29
29
  msgstr ""
30
30
 
@@ -16,11 +16,11 @@ msgstr ""
16
16
  "Content-Transfer-Encoding: 8bit\n"
17
17
  "Plural-Forms: nplurals=1; plural=0;\n"
18
18
 
19
- #: ../lib/gettext/text_domain_manager.rb:148
19
+ #: ../lib/gettext/text_domain_manager.rb:149
20
20
  msgid "ngettext: 3rd parmeter is wrong: value = %{number}"
21
21
  msgstr "ngettext: 3番目のパラメータが不正です。: value = %{number}"
22
22
 
23
- #: ../lib/gettext/text_domain_manager.rb:154
23
+ #: ../lib/gettext/text_domain_manager.rb:155
24
24
  msgid "ngettext: 3rd parameter should be a number, not nil."
25
25
  msgstr "ngettext: 3番目のパラメータがnilです。数値にしてください。"
26
26
 
@@ -20,11 +20,11 @@ msgstr ""
20
20
  "Content-Transfer-Encoding: 8bit\n"
21
21
  "Plural-Forms: nplurals=1; plural=0;\n"
22
22
 
23
- #: ../lib/gettext/text_domain_manager.rb:148
23
+ #: ../lib/gettext/text_domain_manager.rb:149
24
24
  msgid "ngettext: 3rd parmeter is wrong: value = %{number}"
25
25
  msgstr ""
26
26
 
27
- #: ../lib/gettext/text_domain_manager.rb:154
27
+ #: ../lib/gettext/text_domain_manager.rb:155
28
28
  msgid "ngettext: 3rd parameter should be a number, not nil."
29
29
  msgstr ""
30
30
 
@@ -20,12 +20,12 @@ msgstr ""
20
20
  "Content-Transfer-Encoding: 8bit\n"
21
21
  "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);\n"
22
22
 
23
- #: ../lib/gettext/text_domain_manager.rb:148
23
+ #: ../lib/gettext/text_domain_manager.rb:149
24
24
  #, fuzzy
25
25
  msgid "ngettext: 3rd parmeter is wrong: value = %{number}"
26
26
  msgstr "trešais parametrs ir kļūdains: vērtība = %{number}"
27
27
 
28
- #: ../lib/gettext/text_domain_manager.rb:154
28
+ #: ../lib/gettext/text_domain_manager.rb:155
29
29
  msgid "ngettext: 3rd parameter should be a number, not nil."
30
30
  msgstr ""
31
31
 
@@ -20,12 +20,12 @@ msgstr ""
20
20
  "Content-Transfer-Encoding: 8bit\n"
21
21
  "Plural-Forms: nplurals=2; plural=(n != 1);\n"
22
22
 
23
- #: ../lib/gettext/text_domain_manager.rb:148
23
+ #: ../lib/gettext/text_domain_manager.rb:149
24
24
  #, fuzzy
25
25
  msgid "ngettext: 3rd parmeter is wrong: value = %{number}"
26
26
  msgstr "Tredje parameter er feil: verdi = %{number}"
27
27
 
28
- #: ../lib/gettext/text_domain_manager.rb:154
28
+ #: ../lib/gettext/text_domain_manager.rb:155
29
29
  msgid "ngettext: 3rd parameter should be a number, not nil."
30
30
  msgstr ""
31
31
 
@@ -20,11 +20,11 @@ msgstr ""
20
20
  "Content-Transfer-Encoding: 8bit\n"
21
21
  "Plural-Forms: nplurals=2; plural=n != 1;\n"
22
22
 
23
- #: ../lib/gettext/text_domain_manager.rb:148
23
+ #: ../lib/gettext/text_domain_manager.rb:149
24
24
  msgid "ngettext: 3rd parmeter is wrong: value = %{number}"
25
25
  msgstr ""
26
26
 
27
- #: ../lib/gettext/text_domain_manager.rb:154
27
+ #: ../lib/gettext/text_domain_manager.rb:155
28
28
  msgid "ngettext: 3rd parameter should be a number, not nil."
29
29
  msgstr ""
30
30
 
@@ -21,12 +21,12 @@ msgstr ""
21
21
  "Content-Transfer-Encoding: 8bit\n"
22
22
  "Plural-Forms: nplurals=2; plural=(n != 1);\n"
23
23
 
24
- #: ../lib/gettext/text_domain_manager.rb:148
24
+ #: ../lib/gettext/text_domain_manager.rb:149
25
25
  #, fuzzy
26
26
  msgid "ngettext: 3rd parmeter is wrong: value = %{number}"
27
27
  msgstr "O 3º parâmetro está errado: value = %{number}"
28
28
 
29
- #: ../lib/gettext/text_domain_manager.rb:154
29
+ #: ../lib/gettext/text_domain_manager.rb:155
30
30
  msgid "ngettext: 3rd parameter should be a number, not nil."
31
31
  msgstr ""
32
32
 
@@ -21,12 +21,12 @@ msgstr ""
21
21
  "=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
22
22
  "X-Generator: KBabel 1.11.4\n"
23
23
 
24
- #: ../lib/gettext/text_domain_manager.rb:148
24
+ #: ../lib/gettext/text_domain_manager.rb:149
25
25
  #, fuzzy
26
26
  msgid "ngettext: 3rd parmeter is wrong: value = %{number}"
27
27
  msgstr "Ошибка в третьем параметре: value = %{number}"
28
28
 
29
- #: ../lib/gettext/text_domain_manager.rb:154
29
+ #: ../lib/gettext/text_domain_manager.rb:155
30
30
  msgid "ngettext: 3rd parameter should be a number, not nil."
31
31
  msgstr ""
32
32
 
@@ -21,12 +21,12 @@ msgstr ""
21
21
  "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4"
22
22
  " && (n%100<10 || n%100>=20) ? 1 : 2;\n"
23
23
 
24
- #: ../lib/gettext/text_domain_manager.rb:148
24
+ #: ../lib/gettext/text_domain_manager.rb:149
25
25
  #, fuzzy
26
26
  msgid "ngettext: 3rd parmeter is wrong: value = %{number}"
27
27
  msgstr "3. параметар је погрешан: вредност = %{number}"
28
28
 
29
- #: ../lib/gettext/text_domain_manager.rb:154
29
+ #: ../lib/gettext/text_domain_manager.rb:155
30
30
  msgid "ngettext: 3rd parameter should be a number, not nil."
31
31
  msgstr ""
32
32
 
@@ -19,11 +19,11 @@ msgstr ""
19
19
  "Content-Type: text/plain; charset=UTF-8\n"
20
20
  "Content-Transfer-Encoding: 8bit\n"
21
21
 
22
- #: ../lib/gettext/text_domain_manager.rb:148
22
+ #: ../lib/gettext/text_domain_manager.rb:149
23
23
  msgid "ngettext: 3rd parmeter is wrong: value = %{number}"
24
24
  msgstr ""
25
25
 
26
- #: ../lib/gettext/text_domain_manager.rb:154
26
+ #: ../lib/gettext/text_domain_manager.rb:155
27
27
  msgid "ngettext: 3rd parameter should be a number, not nil."
28
28
  msgstr ""
29
29
 
@@ -24,12 +24,12 @@ msgstr ""
24
24
  "n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
25
25
  "n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
26
26
 
27
- #: ../lib/gettext/text_domain_manager.rb:148
27
+ #: ../lib/gettext/text_domain_manager.rb:149
28
28
  #, fuzzy
29
29
  msgid "ngettext: 3rd parmeter is wrong: value = %{number}"
30
30
  msgstr "Третій параметр неправильний: value = %{number}"
31
31
 
32
- #: ../lib/gettext/text_domain_manager.rb:154
32
+ #: ../lib/gettext/text_domain_manager.rb:155
33
33
  msgid "ngettext: 3rd parameter should be a number, not nil."
34
34
  msgstr ""
35
35
 
@@ -20,12 +20,12 @@ msgstr ""
20
20
  "Content-Transfer-Encoding: 8bit\n"
21
21
  "Plural-Forms: nplurals=2; plural=(n != 1);\n"
22
22
 
23
- #: ../lib/gettext/text_domain_manager.rb:148
23
+ #: ../lib/gettext/text_domain_manager.rb:149
24
24
  #, fuzzy
25
25
  msgid "ngettext: 3rd parmeter is wrong: value = %{number}"
26
26
  msgstr "Tham số thứ 3 sai: giá trị = %{number}"
27
27
 
28
- #: ../lib/gettext/text_domain_manager.rb:154
28
+ #: ../lib/gettext/text_domain_manager.rb:155
29
29
  msgid "ngettext: 3rd parameter should be a number, not nil."
30
30
  msgstr ""
31
31
 
@@ -23,12 +23,12 @@ msgstr ""
23
23
  "Plural-Forms: nplurals=1; plural=0;\n"
24
24
  "X-Generator: KBabel 1.9.1\n"
25
25
 
26
- #: ../lib/gettext/text_domain_manager.rb:148
26
+ #: ../lib/gettext/text_domain_manager.rb:149
27
27
  #, fuzzy
28
28
  msgid "ngettext: 3rd parmeter is wrong: value = %{number}"
29
29
  msgstr "第三个参数错误:value = %{number}"
30
30
 
31
- #: ../lib/gettext/text_domain_manager.rb:154
31
+ #: ../lib/gettext/text_domain_manager.rb:155
32
32
  msgid "ngettext: 3rd parameter should be a number, not nil."
33
33
  msgstr ""
34
34
 
@@ -22,12 +22,12 @@ msgstr ""
22
22
  "X-Poedit-Language: Chinese\n"
23
23
  "X-Poedit-Country: TAIWAN\n"
24
24
 
25
- #: ../lib/gettext/text_domain_manager.rb:148
25
+ #: ../lib/gettext/text_domain_manager.rb:149
26
26
  #, fuzzy
27
27
  msgid "ngettext: 3rd parmeter is wrong: value = %{number}"
28
28
  msgstr "第三个参数錯誤:value = %{number}"
29
29
 
30
- #: ../lib/gettext/text_domain_manager.rb:154
30
+ #: ../lib/gettext/text_domain_manager.rb:155
31
31
  msgid "ngettext: 3rd parameter should be a number, not nil."
32
32
  msgstr ""
33
33
 
@@ -13,4 +13,8 @@ class Simple
13
13
  def test_formatted_string
14
14
  _("one is %d.") % 1
15
15
  end
16
+
17
+ def test_plural
18
+ n_("There is an apple.", "There are %{num} apples.", 5) % {:num => 5}
19
+ end
16
20
  end
Binary file
data/test/po/fr/test1.po CHANGED
@@ -13,6 +13,7 @@ msgstr ""
13
13
  "MIME-Version: 1.0\n"
14
14
  "Content-Type: text/plain; charset=utf-8\n"
15
15
  "Content-Transfer-Encoding: ENCODING\n"
16
+ "Plural-Forms: nplurals=2; plural=n == 1 ? 0 : 1;\n"
16
17
 
17
18
  #: simple.rb:10
18
19
  msgid "language"
@@ -21,3 +22,9 @@ msgstr "french"
21
22
  #: simple.rb:14
22
23
  msgid "one is %d."
23
24
  msgstr "FRENCH:ONE IS %d."
25
+
26
+ #: simple.rb:18
27
+ msgid "There is an apple."
28
+ msgid_plural "There are %{num} apples."
29
+ msgstr[0] "FRENCH:Il y a une pomme."
30
+ msgstr[1] "FRENCH:Il y a %{num} pommes."
@@ -0,0 +1,24 @@
1
+ # SOME DESCRIPTIVE TITLE.
2
+ # Copyright (C) YEAR ORGANIZATION
3
+ # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
4
+ #
5
+ #, fuzzy
6
+ msgid ""
7
+ msgstr ""
8
+ "Project-Id-Version: PACKAGE VERSION\n"
9
+ "POT-Creation-Date: 2002-01-01 02:24:56+0900\n"
10
+ "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
11
+ "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
12
+ "Language-Team: LANGUAGE <LL@li.org>\n"
13
+ "MIME-Version: 1.0\n"
14
+ "Content-Type: text/plain; charset=utf-8\n"
15
+ "Content-Transfer-Encoding: ENCODING\n"
16
+ "Plural-Forms: nplurals=2; plural=n == 1 ? 0 : 1;\n"
17
+
18
+ #: simple.rb:10
19
+ msgid "language"
20
+ msgstr "french-Belgium"
21
+
22
+ #: simple.rb:14
23
+ msgid "one is %d."
24
+ msgstr "FRENCH-BELGIUM:ONE IS %d."
@@ -0,0 +1,20 @@
1
+ # SOME DESCRIPTIVE TITLE.
2
+ # Copyright (C) YEAR ORGANIZATION
3
+ # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
4
+ #
5
+ #, fuzzy
6
+ msgid ""
7
+ msgstr ""
8
+ "Project-Id-Version: PACKAGE VERSION\n"
9
+ "POT-Creation-Date: 2002-01-01 02:24:56+0900\n"
10
+ "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
11
+ "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
12
+ "Language-Team: LANGUAGE <LL@li.org>\n"
13
+ "MIME-Version: 1.0\n"
14
+ "Content-Type: text/plain; charset=utf-8\n"
15
+ "Content-Transfer-Encoding: ENCODING\n"
16
+ "Plural-Forms: nplurals=2; plural=n == 1 ? 0 : 1;\n"
17
+
18
+ #: simple.rb:10
19
+ msgid "language"
20
+ msgstr "french-Belgium-Foo"
data/test/test_gettext.rb CHANGED
@@ -59,6 +59,29 @@ class TestGetText < Test::Unit::TestCase
59
59
  assert_equal("nomsgstr", _("nomsgstr"))
60
60
  end
61
61
 
62
+ def test_fallbacks
63
+ bindtextdomain("test1", "locale")
64
+ test = Simple.new
65
+
66
+ # Translation present in all candidates
67
+ GetText.set_current_locale("fr_BE_Foo")
68
+ assert_equal("french-Belgium-Foo", test.test)
69
+ GetText.set_current_locale("fr_BE")
70
+ assert_equal("french-Belgium", test.test)
71
+ GetText.set_current_locale("fr")
72
+ assert_equal("french", test.test)
73
+
74
+ # Translation Missing in fr_BE_Foo (fallback to fr_BE)
75
+ GetText.set_current_locale("fr_BE_Foo")
76
+ assert_equal("FRENCH-BELGIUM:ONE IS 1.", test.test_formatted_string)
77
+
78
+ # Translation Missing in fr_BE_Foo *and* fr_BE (both languages fallback to fr)
79
+ GetText.set_current_locale("fr_BE_Foo")
80
+ assert_equal("FRENCH:Il y a 5 pommes.", test.test_plural)
81
+ GetText.set_current_locale("fr_BE")
82
+ assert_equal("FRENCH:Il y a 5 pommes.", test.test_plural)
83
+ end
84
+
62
85
  def test_empty
63
86
  bindtextdomain("test1", "locale")
64
87
  assert_equal("japanese", gettext("language"))
@@ -53,9 +53,11 @@ class TestLocalePath < Test::Unit::TestCase
53
53
  testdir = File.dirname(File.expand_path(__FILE__))
54
54
  path = GetText::LocalePath.new("test1", "#{testdir}/locale")
55
55
  assert_equal({
56
- "ja" => "#{testdir}/locale/ja/LC_MESSAGES/test1.mo",
57
- "fr" => "#{testdir}/locale/fr/LC_MESSAGES/test1.mo",
58
- "zh_Hant" => "#{testdir}/locale/zh_Hant/LC_MESSAGES/test1.mo"
56
+ "ja" => "#{testdir}/locale/ja/LC_MESSAGES/test1.mo",
57
+ "fr" => "#{testdir}/locale/fr/LC_MESSAGES/test1.mo",
58
+ "fr_BE" => "#{testdir}/locale/fr_BE/LC_MESSAGES/test1.mo",
59
+ "fr_BE_Foo" => "#{testdir}/locale/fr_BE_Foo/LC_MESSAGES/test1.mo",
60
+ "zh_Hant" => "#{testdir}/locale/zh_Hant/LC_MESSAGES/test1.mo"
59
61
  },
60
62
  path.locale_paths)
61
63
  assert_equal("#{testdir}/locale/ja/LC_MESSAGES/test1.mo",
@@ -66,6 +68,12 @@ class TestLocalePath < Test::Unit::TestCase
66
68
  path.current_path(Locale::Tag.parse("ja_JP.UTF-8")))
67
69
  assert_equal(nil,
68
70
  path.current_path(Locale::Tag.parse("en")))
71
+ assert_equal("#{testdir}/locale/fr/LC_MESSAGES/test1.mo",
72
+ path.current_path(Locale::Tag.parse("fr")))
73
+ assert_equal("#{testdir}/locale/fr_BE/LC_MESSAGES/test1.mo",
74
+ path.current_path(Locale::Tag.parse("fr-BE")))
75
+ assert_equal("#{testdir}/locale/fr_BE_Foo/LC_MESSAGES/test1.mo",
76
+ path.current_path(Locale::Tag.parse("fr-BE-Foo")))
69
77
  assert_equal("#{testdir}/locale/zh_Hant/LC_MESSAGES/test1.mo",
70
78
  path.current_path(Locale::Tag.parse("zh-Hant")))
71
79
  end
@@ -73,7 +81,7 @@ class TestLocalePath < Test::Unit::TestCase
73
81
  def test_supported_locales
74
82
  testdir = File.dirname(File.expand_path(__FILE__))
75
83
  path = GetText::LocalePath.new("test1", "#{testdir}/locale")
76
- assert_equal ["fr", "ja", "zh_Hant"], path.supported_locales
84
+ assert_equal ["fr", "fr_BE", "fr_BE_Foo", "ja", "zh_Hant"], path.supported_locales
77
85
 
78
86
  path = GetText::LocalePath.new("plural", "#{testdir}/locale")
79
87
  assert_equal ["cr", "da", "fr", "ir", "ja", "la", "li", "po", "sl"], path.supported_locales
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gettext
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.4.1
4
+ version: 3.4.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kouhei Sutou
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2021-09-08 00:00:00.000000000 Z
12
+ date: 2022-01-10 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: locale
@@ -25,6 +25,20 @@ dependencies:
25
25
  - - ">="
26
26
  - !ruby/object:Gem::Version
27
27
  version: 2.0.5
28
+ - !ruby/object:Gem::Dependency
29
+ name: prime
30
+ requirement: !ruby/object:Gem::Requirement
31
+ requirements:
32
+ - - ">="
33
+ - !ruby/object:Gem::Version
34
+ version: '0'
35
+ type: :runtime
36
+ prerelease: false
37
+ version_requirements: !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - ">="
40
+ - !ruby/object:Gem::Version
41
+ version: '0'
28
42
  - !ruby/object:Gem::Dependency
29
43
  name: text
30
44
  requirement: !ruby/object:Gem::Requirement
@@ -1563,6 +1577,8 @@ files:
1563
1577
  - test/locale/fr/LC_MESSAGES/plural_error.mo
1564
1578
  - test/locale/fr/LC_MESSAGES/test1.mo
1565
1579
  - test/locale/fr/LC_MESSAGES/test2.mo
1580
+ - test/locale/fr_BE/LC_MESSAGES/test1.mo
1581
+ - test/locale/fr_BE_Foo/LC_MESSAGES/test1.mo
1566
1582
  - test/locale/ir/LC_MESSAGES/plural.mo
1567
1583
  - test/locale/ja/LC_MESSAGES/_.mo
1568
1584
  - test/locale/ja/LC_MESSAGES/backslash.mo
@@ -1595,6 +1611,8 @@ files:
1595
1611
  - test/po/fr/plural_error.po
1596
1612
  - test/po/fr/test1.po
1597
1613
  - test/po/fr/test2.po
1614
+ - test/po/fr_BE/test1.po
1615
+ - test/po/fr_BE_Foo/test1.po
1598
1616
  - test/po/hello.pot
1599
1617
  - test/po/ir/plural.po
1600
1618
  - test/po/ja/_.edit.po
@@ -1695,7 +1713,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
1695
1713
  - !ruby/object:Gem::Version
1696
1714
  version: '0'
1697
1715
  requirements: []
1698
- rubygems_version: 3.3.0.dev
1716
+ rubygems_version: 3.4.0.dev
1699
1717
  signing_key:
1700
1718
  specification_version: 4
1701
1719
  summary: Gettext is a pure Ruby libary and tools to localize messages.