gettext 3.4.2 → 3.4.3

Sign up to get free protection for your applications and to get access to all the features.
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