gettext 3.4.2 → 3.4.3

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.
Files changed (65) hide show
  1. checksums.yaml +4 -4
  2. data/doc/text/news.md +11 -0
  3. data/gettext.gemspec +1 -0
  4. data/lib/gettext/tools/parser/erubi.rb +88 -0
  5. data/lib/gettext/tools/xgettext.rb +6 -0
  6. data/lib/gettext/version.rb +2 -2
  7. data/locale/ja/LC_MESSAGES/gettext.mo +0 -0
  8. data/po/bg/gettext.edit.po +11 -7
  9. data/po/bg/gettext.po +3 -0
  10. data/po/bs/gettext.edit.po +11 -7
  11. data/po/bs/gettext.po +3 -0
  12. data/po/ca/gettext.edit.po +11 -7
  13. data/po/ca/gettext.po +3 -0
  14. data/po/cs/gettext.edit.po +11 -7
  15. data/po/cs/gettext.po +3 -0
  16. data/po/de/gettext.edit.po +11 -7
  17. data/po/de/gettext.po +3 -0
  18. data/po/el/gettext.edit.po +11 -7
  19. data/po/el/gettext.po +3 -0
  20. data/po/eo/gettext.edit.po +11 -7
  21. data/po/eo/gettext.po +3 -0
  22. data/po/es/gettext.edit.po +11 -7
  23. data/po/es/gettext.po +3 -0
  24. data/po/et/gettext.edit.po +11 -7
  25. data/po/et/gettext.po +3 -0
  26. data/po/fr/gettext.edit.po +11 -7
  27. data/po/fr/gettext.po +3 -0
  28. data/po/gettext.pot +14 -10
  29. data/po/hr/gettext.edit.po +11 -7
  30. data/po/hr/gettext.po +3 -0
  31. data/po/hu/gettext.edit.po +11 -7
  32. data/po/hu/gettext.po +3 -0
  33. data/po/it/gettext.edit.po +11 -7
  34. data/po/it/gettext.po +3 -0
  35. data/po/ja/gettext.edit.po +12 -8
  36. data/po/ja/gettext.po +4 -1
  37. data/po/ko/gettext.edit.po +11 -7
  38. data/po/ko/gettext.po +3 -0
  39. data/po/lv/gettext.edit.po +11 -7
  40. data/po/lv/gettext.po +3 -0
  41. data/po/nb/gettext.edit.po +11 -7
  42. data/po/nb/gettext.po +3 -0
  43. data/po/nl/gettext.edit.po +11 -7
  44. data/po/nl/gettext.po +3 -0
  45. data/po/pt_BR/gettext.edit.po +11 -7
  46. data/po/pt_BR/gettext.po +3 -0
  47. data/po/ru/gettext.edit.po +11 -7
  48. data/po/ru/gettext.po +3 -0
  49. data/po/sr/gettext.edit.po +11 -7
  50. data/po/sr/gettext.po +3 -0
  51. data/po/sv/gettext.edit.po +11 -7
  52. data/po/sv/gettext.po +3 -0
  53. data/po/uk/gettext.edit.po +11 -7
  54. data/po/uk/gettext.po +3 -0
  55. data/po/vi/gettext.edit.po +11 -7
  56. data/po/vi/gettext.po +3 -0
  57. data/po/zh/gettext.edit.po +11 -7
  58. data/po/zh/gettext.po +3 -0
  59. data/po/zh_TW/gettext.edit.po +11 -7
  60. data/po/zh_TW/gettext.po +3 -0
  61. data/test/fixtures/erb/case.rhtml +16 -0
  62. data/test/po/ja/_.po +15 -0
  63. data/test/test_parser.rb +62 -0
  64. data/test/tools/test_xgettext.rb +85 -0
  65. metadata +18 -2
data/test/test_parser.rb CHANGED
@@ -24,6 +24,7 @@
24
24
  require "tempfile"
25
25
  require "gettext/tools/parser/ruby"
26
26
  require "gettext/tools/parser/erb"
27
+ require "gettext/tools/parser/erubi"
27
28
 
28
29
  require "gettext/tools/xgettext"
29
30
 
@@ -215,6 +216,67 @@ class TestGetTextParser < Test::Unit::TestCase
215
216
 
216
217
  assert_target("Hello", ["#{path}:8"])
217
218
  end
219
+
220
+ def test_case
221
+ path = fixture_path("erb", "case.rhtml")
222
+ @ary = GetText::ErbParser.parse(path)
223
+
224
+ if Gem::Version.new(RUBY_VERSION) >= Gem::Version.new('3.0.0')
225
+ assert_target("Hello", ["#{path}:11"])
226
+ assert_target("World", ["#{path}:14"])
227
+ else
228
+ assert_target("Hello", ["#{path}:11"])
229
+ assert_nil(@ary.detect {|elem| elem.msgid == 'World'}) # Not detected. see PR #91
230
+ end
231
+ end
232
+ end
233
+
234
+ class TestErubiParser < self
235
+ include Helper::Path
236
+
237
+ def test_detect_encoding
238
+ euc_file = Tempfile.new("euc-jp.rhtml")
239
+ euc_file.open
240
+ euc_file.puts("<%#-*- coding: euc-jp -*-%>")
241
+ euc_file.close
242
+
243
+ euc_file_content = File.read(euc_file.path)
244
+ encoding = GetText::ErubiParser.new(euc_file.path).detect_encoding(euc_file_content)
245
+
246
+ assert_equal("EUC-JP", encoding)
247
+ end
248
+
249
+ def test_ascii
250
+ path = fixture_path("erb", "ascii.rhtml")
251
+ @ary = GetText::ErubiParser.parse(path)
252
+
253
+ assert_target 'aaa', ["#{path}:8"]
254
+ assert_target "aaa\n", ["#{path}:11"]
255
+ assert_target 'bbb', ["#{path}:12"]
256
+ assert_plural_target "ccc1", "ccc2", ["#{path}:13"]
257
+ end
258
+
259
+ def test_non_ascii
260
+ path = fixture_path("erb", "non_ascii.rhtml")
261
+ @ary = GetText::ErubiParser.parse(path)
262
+
263
+ assert_target('わたし', ["#{path}:12"])
264
+ end
265
+
266
+ def test_minus
267
+ path = fixture_path("erb", "minus.rhtml")
268
+ @ary = GetText::ErubiParser.parse(path)
269
+
270
+ assert_target("Hello", ["#{path}:8"])
271
+ end
272
+
273
+ def test_case
274
+ path = fixture_path("erb", "case.rhtml")
275
+ @ary = GetText::ErubiParser.parse(path)
276
+
277
+ assert_target("Hello", ["#{path}:11"])
278
+ assert_target("World", ["#{path}:14"]) # Detected with Erubi
279
+ end
218
280
  end
219
281
 
220
282
  def test_xgettext_parse
@@ -118,6 +118,91 @@ EOP
118
118
  end
119
119
  end
120
120
 
121
+ class TestParser < self
122
+ # Default ERB parser (don't find anything after "case")
123
+ def test_erb
124
+ rhtml = <<-EOR
125
+ <div>
126
+ <%= _('Hello') %>
127
+ <% case 1 %>
128
+ <% end %>
129
+ <%= _('World') %>
130
+ </div>
131
+ EOR
132
+
133
+ File.open(@rhtml_file_path, "w") do |rhtml_file|
134
+ rhtml_file.puts(rhtml)
135
+ end
136
+
137
+ @xgettext.run(
138
+ "--output", @pot_file_path,
139
+ @rhtml_file_path
140
+ )
141
+
142
+ pot_content = File.read(@pot_file_path)
143
+
144
+ if Gem::Version.new(RUBY_VERSION) >= Gem::Version.new('3.0.0')
145
+ expected_content = <<-EOP
146
+ #{header}
147
+ #: ../templates/xgettext.rhtml:2
148
+ msgid "Hello"
149
+ msgstr ""
150
+
151
+ #: ../templates/xgettext.rhtml:5
152
+ msgid "World"
153
+ msgstr ""
154
+ EOP
155
+ else
156
+ # "World" not detected. see PR #91
157
+ expected_content = <<-EOP
158
+ #{header}
159
+ #: ../templates/xgettext.rhtml:2
160
+ msgid "Hello"
161
+ msgstr ""
162
+ EOP
163
+ end
164
+
165
+ assert_equal(expected_content, pot_content)
166
+ end
167
+
168
+ # Optional Erubi parser (find text after "case")
169
+ def test_erubi
170
+ rhtml = <<-EOR
171
+ <div>
172
+ <%= _('Hello') %>
173
+ <% case 1 %>
174
+ <% end %>
175
+ <%= _('World') %>
176
+ </div>
177
+ EOR
178
+
179
+ File.open(@rhtml_file_path, "w") do |rhtml_file|
180
+ rhtml_file.puts(rhtml)
181
+ end
182
+
183
+ @xgettext.run(
184
+ "--output", @pot_file_path,
185
+ '--require', 'gettext/tools/parser/erubi',
186
+ '--parser', 'GetText::ErubiParser',
187
+ @rhtml_file_path
188
+ )
189
+
190
+ pot_content = File.read(@pot_file_path)
191
+ expected_content = <<-EOP
192
+ #{header}
193
+ #: ../templates/xgettext.rhtml:2
194
+ msgid "Hello"
195
+ msgstr ""
196
+
197
+ #: ../templates/xgettext.rhtml:5
198
+ msgid "World"
199
+ msgstr ""
200
+ EOP
201
+
202
+ assert_equal(expected_content, pot_content)
203
+ end
204
+ end
205
+
121
206
  class TestEncoding < self
122
207
  def test_different_encoding_from_current_locale
123
208
  rhtml = <<-EOR
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.2
4
+ version: 3.4.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kouhei Sutou
@@ -9,8 +9,22 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2022-01-10 00:00:00.000000000 Z
12
+ date: 2022-05-20 00:00:00.000000000 Z
13
13
  dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: erubi
16
+ requirement: !ruby/object:Gem::Requirement
17
+ requirements:
18
+ - - ">="
19
+ - !ruby/object:Gem::Version
20
+ version: '0'
21
+ type: :runtime
22
+ prerelease: false
23
+ version_requirements: !ruby/object:Gem::Requirement
24
+ requirements:
25
+ - - ">="
26
+ - !ruby/object:Gem::Version
27
+ version: '0'
14
28
  - !ruby/object:Gem::Dependency
15
29
  name: locale
16
30
  requirement: !ruby/object:Gem::Requirement
@@ -198,6 +212,7 @@ files:
198
212
  - lib/gettext/tools/msginit.rb
199
213
  - lib/gettext/tools/msgmerge.rb
200
214
  - lib/gettext/tools/parser/erb.rb
215
+ - lib/gettext/tools/parser/erubi.rb
201
216
  - lib/gettext/tools/parser/glade.rb
202
217
  - lib/gettext/tools/parser/gtk_builder_ui_definitions.rb
203
218
  - lib/gettext/tools/parser/ruby.rb
@@ -1545,6 +1560,7 @@ files:
1545
1560
  - test/fixtures/backslash.rb
1546
1561
  - test/fixtures/erb/ascii.rhtml
1547
1562
  - test/fixtures/erb/ascii.rxml
1563
+ - test/fixtures/erb/case.rhtml
1548
1564
  - test/fixtures/erb/minus.rhtml
1549
1565
  - test/fixtures/erb/non_ascii.rhtml
1550
1566
  - test/fixtures/glade/2.glade