gettext 3.2.9 → 3.4.9
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.
- checksums.yaml +4 -4
- data/README.md +276 -198
- data/Rakefile +7 -4
- data/doc/text/news.md +451 -0
- data/gettext.gemspec +10 -7
- data/lib/gettext/locale_path.rb +17 -9
- data/lib/gettext/mo.rb +12 -19
- data/lib/gettext/po.rb +4 -4
- data/lib/gettext/po_entry.rb +47 -27
- data/lib/gettext/po_parser.rb +65 -59
- data/lib/gettext/text_domain.rb +1 -1
- data/lib/gettext/text_domain_manager.rb +6 -5
- data/lib/gettext/tools/msgcat.rb +9 -2
- data/lib/gettext/tools/msginit.rb +226 -54
- data/lib/gettext/tools/msgmerge.rb +24 -6
- data/lib/gettext/tools/parser/erb.rb +9 -1
- data/lib/gettext/tools/parser/erubi.rb +88 -0
- data/lib/gettext/tools/parser/glade.rb +38 -40
- data/lib/gettext/tools/parser/gtk_builder_ui_definitions.rb +129 -0
- data/lib/gettext/tools/parser/ruby.rb +288 -221
- data/lib/gettext/tools/task.rb +4 -5
- data/lib/gettext/tools/xgettext.rb +21 -10
- data/lib/gettext/version.rb +3 -3
- data/locale/bg/LC_MESSAGES/gettext.mo +0 -0
- data/locale/bs/LC_MESSAGES/gettext.mo +0 -0
- data/locale/ca/LC_MESSAGES/gettext.mo +0 -0
- data/locale/cs/LC_MESSAGES/gettext.mo +0 -0
- data/locale/de/LC_MESSAGES/gettext.mo +0 -0
- data/locale/el/LC_MESSAGES/gettext.mo +0 -0
- data/locale/eo/LC_MESSAGES/gettext.mo +0 -0
- data/locale/es/LC_MESSAGES/gettext.mo +0 -0
- data/locale/et/LC_MESSAGES/gettext.mo +0 -0
- data/locale/fr/LC_MESSAGES/gettext.mo +0 -0
- data/locale/hr/LC_MESSAGES/gettext.mo +0 -0
- data/locale/hu/LC_MESSAGES/gettext.mo +0 -0
- data/locale/it/LC_MESSAGES/gettext.mo +0 -0
- data/locale/ja/LC_MESSAGES/gettext.mo +0 -0
- data/locale/ko/LC_MESSAGES/gettext.mo +0 -0
- data/locale/lv/LC_MESSAGES/gettext.mo +0 -0
- data/locale/nb/LC_MESSAGES/gettext.mo +0 -0
- data/locale/nl/LC_MESSAGES/gettext.mo +0 -0
- data/locale/pt_BR/LC_MESSAGES/gettext.mo +0 -0
- data/locale/ru/LC_MESSAGES/gettext.mo +0 -0
- data/locale/sr/LC_MESSAGES/gettext.mo +0 -0
- data/locale/uk/LC_MESSAGES/gettext.mo +0 -0
- data/locale/vi/LC_MESSAGES/gettext.mo +0 -0
- data/locale/zh/LC_MESSAGES/gettext.mo +0 -0
- data/locale/zh_TW/LC_MESSAGES/gettext.mo +0 -0
- data/po/bg/gettext.edit.po +81 -572
- data/po/bg/gettext.po +7 -409
- data/po/bs/gettext.edit.po +81 -572
- data/po/bs/gettext.po +7 -409
- data/po/ca/gettext.edit.po +81 -572
- data/po/ca/gettext.po +7 -409
- data/po/cs/gettext.edit.po +81 -572
- data/po/cs/gettext.po +7 -409
- data/po/de/gettext.edit.po +81 -572
- data/po/de/gettext.po +7 -409
- data/po/el/gettext.edit.po +81 -572
- data/po/el/gettext.po +7 -409
- data/po/eo/gettext.edit.po +81 -572
- data/po/eo/gettext.po +7 -409
- data/po/es/gettext.edit.po +81 -572
- data/po/es/gettext.po +7 -409
- data/po/et/gettext.edit.po +81 -572
- data/po/et/gettext.po +7 -409
- data/po/fr/gettext.edit.po +81 -572
- data/po/fr/gettext.po +7 -409
- data/po/gettext.pot +93 -645
- data/po/hr/gettext.edit.po +81 -572
- data/po/hr/gettext.po +7 -409
- data/po/hu/gettext.edit.po +81 -572
- data/po/hu/gettext.po +7 -409
- data/po/it/gettext.edit.po +81 -572
- data/po/it/gettext.po +7 -409
- data/po/ja/gettext.edit.po +83 -574
- data/po/ja/gettext.po +9 -411
- data/po/ko/gettext.edit.po +81 -572
- data/po/ko/gettext.po +7 -409
- data/po/lv/gettext.edit.po +81 -572
- data/po/lv/gettext.po +7 -409
- data/po/nb/gettext.edit.po +81 -572
- data/po/nb/gettext.po +7 -409
- data/po/nl/gettext.edit.po +81 -572
- data/po/nl/gettext.po +7 -409
- data/po/pt_BR/gettext.edit.po +81 -572
- data/po/pt_BR/gettext.po +7 -409
- data/po/ru/gettext.edit.po +81 -572
- data/po/ru/gettext.po +7 -409
- data/po/sr/gettext.edit.po +81 -572
- data/po/sr/gettext.po +7 -409
- data/po/sv/gettext.edit.po +81 -572
- data/po/sv/gettext.po +7 -409
- data/po/uk/gettext.edit.po +81 -572
- data/po/uk/gettext.po +7 -409
- data/po/vi/gettext.edit.po +81 -572
- data/po/vi/gettext.po +7 -409
- data/po/zh/gettext.edit.po +81 -572
- data/po/zh/gettext.po +7 -409
- data/po/zh_TW/gettext.edit.po +81 -572
- data/po/zh_TW/gettext.po +7 -409
- data/samples/cgi/po/helloerb1.pot +3 -3
- data/samples/cgi/po/helloerb2.pot +3 -3
- data/samples/cgi/po/hellolib.pot +3 -3
- data/samples/cgi/po/main.pot +3 -3
- data/samples/po/bg/hello_gtk_builder.edit.po +15 -0
- data/samples/po/bg/hello_gtk_builder.po +12 -0
- data/samples/po/bs/hello_gtk_builder.edit.po +15 -0
- data/samples/po/bs/hello_gtk_builder.po +12 -0
- data/samples/po/ca/hello_gtk_builder.edit.po +15 -0
- data/samples/po/ca/hello_gtk_builder.po +12 -0
- data/samples/po/cs/hello_gtk_builder.edit.po +15 -0
- data/samples/po/cs/hello_gtk_builder.po +12 -0
- data/samples/po/de/hello_gtk_builder.edit.po +15 -0
- data/samples/po/de/hello_gtk_builder.po +12 -0
- data/samples/po/el/hello_gtk_builder.edit.po +15 -0
- data/samples/po/el/hello_gtk_builder.po +12 -0
- data/samples/po/eo/hello_gtk_builder.edit.po +15 -0
- data/samples/po/eo/hello_gtk_builder.po +12 -0
- data/samples/po/es/hello_gtk_builder.edit.po +15 -0
- data/samples/po/es/hello_gtk_builder.po +12 -0
- data/samples/po/fr/hello_gtk_builder.edit.po +15 -0
- data/samples/po/fr/hello_gtk_builder.po +12 -0
- data/samples/po/hello.pot +3 -3
- data/samples/po/hello2.pot +4 -4
- data/samples/po/hello_glade2.pot +8 -5
- data/samples/po/hello_gtk2.pot +4 -4
- data/samples/po/hello_gtk_builder.pot +18 -4
- data/samples/po/hello_noop.pot +4 -4
- data/samples/po/hello_plural.pot +4 -4
- data/samples/po/hello_tk.pot +4 -4
- data/samples/po/hr/hello_gtk_builder.edit.po +15 -0
- data/samples/po/hr/hello_gtk_builder.po +12 -0
- data/samples/po/hu/hello_gtk_builder.edit.po +15 -0
- data/samples/po/hu/hello_gtk_builder.po +12 -0
- data/samples/po/it/hello_gtk_builder.edit.po +15 -0
- data/samples/po/it/hello_gtk_builder.po +12 -0
- data/samples/po/ja/hello_gtk_builder.edit.po +15 -0
- data/samples/po/ja/hello_gtk_builder.po +12 -0
- data/samples/po/ko/hello_gtk_builder.edit.po +15 -0
- data/samples/po/ko/hello_gtk_builder.po +12 -0
- data/samples/po/lv/hello_gtk_builder.edit.po +15 -0
- data/samples/po/lv/hello_gtk_builder.po +12 -0
- data/samples/po/nb/hello_gtk_builder.edit.po +15 -0
- data/samples/po/nb/hello_gtk_builder.po +12 -0
- data/samples/po/nl/hello_gtk_builder.edit.po +15 -0
- data/samples/po/nl/hello_gtk_builder.po +12 -0
- data/samples/po/pt_BR/hello_gtk_builder.edit.po +15 -0
- data/samples/po/pt_BR/hello_gtk_builder.po +12 -0
- data/samples/po/ru/hello_gtk_builder.edit.po +15 -0
- data/samples/po/ru/hello_gtk_builder.po +12 -0
- data/samples/po/sr/hello_gtk_builder.edit.po +15 -0
- data/samples/po/sr/hello_gtk_builder.po +12 -0
- data/samples/po/sv/hello_gtk_builder.edit.po +15 -0
- data/samples/po/sv/hello_gtk_builder.po +12 -0
- data/samples/po/uk/hello_gtk_builder.edit.po +15 -0
- data/samples/po/uk/hello_gtk_builder.po +12 -0
- data/samples/po/vi/hello_gtk_builder.edit.po +15 -0
- data/samples/po/vi/hello_gtk_builder.po +12 -0
- data/samples/po/zh/hello_gtk_builder.edit.po +15 -0
- data/samples/po/zh/hello_gtk_builder.po +12 -0
- data/samples/po/zh_TW/hello_gtk_builder.edit.po +15 -0
- data/samples/po/zh_TW/hello_gtk_builder.po +12 -0
- data/src/po_parser.ry +48 -42
- data/test/fixtures/_/backtick.rb +30 -0
- data/test/fixtures/_/block_parameter.rb +2 -2
- data/test/fixtures/_/double_quote_in_double_quote.rb +2 -2
- data/test/fixtures/_/double_quote_in_single_quote.rb +2 -2
- data/test/fixtures/_/literal_concatenation_with_continuation_line.rb +2 -2
- data/test/fixtures/_/middle_new_line.rb +2 -2
- data/test/fixtures/_/multiple_lines_literal.rb +2 -2
- data/test/fixtures/_/multiple_messages_in_same_line.rb +2 -2
- data/test/fixtures/_/multiple_same_messages.rb +2 -2
- data/test/fixtures/_/one_line.rb +2 -2
- data/test/fixtures/_/one_new_line.rb +2 -2
- data/test/fixtures/_/percent_strings.rb +55 -0
- data/test/fixtures/_/pipe.rb +32 -0
- data/test/{gettext-test-utils.rb → fixtures/_/quoted_symbol.rb} +13 -23
- data/test/fixtures/_.rb +10 -1
- data/test/fixtures/erb/case.rhtml +16 -0
- data/test/fixtures/erb/minus.rhtml +12 -0
- data/test/fixtures/erb/non_ascii.rhtml +1 -0
- data/test/fixtures/glade/3.glade +63 -0
- data/test/fixtures/gtk_builder_ui_definitions.ui +68 -0
- data/test/fixtures/multi_text_domain.rb +12 -12
- data/test/fixtures/np_.rb +1 -1
- data/test/fixtures/ns_/custom.rb +2 -2
- data/test/fixtures/ns_.rb +1 -1
- data/test/fixtures/p_.rb +1 -1
- data/test/fixtures/ruby/percent_lower_i.rb +1 -0
- data/test/fixtures/ruby/percent_lower_w.rb +1 -0
- data/test/fixtures/ruby/percent_upper_i.rb +1 -0
- data/test/fixtures/ruby/percent_upper_w.rb +1 -0
- data/test/fixtures/s_/custom.rb +2 -2
- data/test/fixtures/s_.rb +1 -1
- data/test/fixtures/simple.rb +5 -1
- data/test/fixtures/upper_nn_.rb +77 -0
- data/test/helper.rb +99 -0
- data/test/locale/fr/LC_MESSAGES/plural_error.mo +0 -0
- data/test/locale/fr/LC_MESSAGES/test1.mo +0 -0
- data/test/locale/fr_BE/LC_MESSAGES/test1.mo +0 -0
- data/test/locale/fr_BE_Foo/LC_MESSAGES/test1.mo +0 -0
- data/test/locale/ja/LC_MESSAGES/_.mo +0 -0
- data/test/po/_.pot +28 -4
- data/test/po/backslash.pot +6 -4
- data/test/po/fr/plural_error.po +7 -0
- data/test/po/fr/test1.po +7 -0
- data/test/po/fr_BE/test1.po +24 -0
- data/test/po/fr_BE_Foo/test1.po +20 -0
- data/test/po/hello.pot +3 -3
- data/test/po/ja/_.edit.po +27 -3
- data/test/po/ja/_.po +20 -2
- data/test/po/ja/hello.edit.po +0 -1
- data/test/po/non_ascii.pot +4 -4
- data/test/po/np_.pot +8 -5
- data/test/po/ns_.pot +6 -4
- data/test/po/p_.pot +3 -3
- data/test/po/s_.pot +6 -4
- data/test/po/untranslated.pot +4 -4
- data/test/run-test.rb +2 -3
- data/test/test_class_info.rb +8 -9
- data/test/test_gettext.rb +30 -1
- data/test/test_locale_path.rb +12 -4
- data/test/test_parser.rb +113 -25
- data/test/test_po_entry.rb +21 -17
- data/test/test_po_parser.rb +49 -4
- data/test/test_string.rb +9 -5
- data/test/tools/parser/test_glade.rb +91 -0
- data/test/tools/parser/test_gtk_builder_ui_definitions.rb +63 -0
- data/test/tools/parser/test_ruby.rb +76 -39
- data/test/tools/test_msgcat.rb +21 -1
- data/test/tools/test_msginit.rb +82 -3
- data/test/tools/test_msgmerge.rb +81 -6
- data/test/tools/test_xgettext.rb +106 -5
- metadata +82 -34
- data/lib/gettext/tools/parser/haml.rb +0 -61
- /data/test/fixtures/{gladeparser.glade → glade/2.glade} +0 -0
data/test/tools/test_msgcat.rb
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Copyright (C) 2014-
|
|
1
|
+
# Copyright (C) 2014-2023 Sutou Kouhei <kou@clear-code.com>
|
|
2
2
|
#
|
|
3
3
|
# License: Ruby's or LGPL
|
|
4
4
|
#
|
|
@@ -243,6 +243,7 @@ msgstr ""
|
|
|
243
243
|
@po = <<-PO
|
|
244
244
|
# translator comment
|
|
245
245
|
#: a.rb:1
|
|
246
|
+
#: a.rb:2
|
|
246
247
|
msgid "Hello"
|
|
247
248
|
msgstr ""
|
|
248
249
|
PO
|
|
@@ -252,6 +253,25 @@ msgstr ""
|
|
|
252
253
|
assert_equal(<<-PO, run_msgcat([@po], "--no-location"))
|
|
253
254
|
# translator comment
|
|
254
255
|
msgid "Hello"
|
|
256
|
+
msgstr ""
|
|
257
|
+
PO
|
|
258
|
+
end
|
|
259
|
+
|
|
260
|
+
def test_wrap
|
|
261
|
+
assert_equal(<<-PO, run_msgcat([@po], "--wrap"))
|
|
262
|
+
# translator comment
|
|
263
|
+
#: a.rb:1 a.rb:2
|
|
264
|
+
msgid "Hello"
|
|
265
|
+
msgstr ""
|
|
266
|
+
PO
|
|
267
|
+
end
|
|
268
|
+
|
|
269
|
+
def test_use_one_line_per_reference
|
|
270
|
+
assert_equal(<<-PO, run_msgcat([@po], "--wrap", "--use-one-line-per-reference"))
|
|
271
|
+
# translator comment
|
|
272
|
+
#: a.rb:1
|
|
273
|
+
#: a.rb:2
|
|
274
|
+
msgid "Hello"
|
|
255
275
|
msgstr ""
|
|
256
276
|
PO
|
|
257
277
|
end
|
data/test/tools/test_msginit.rb
CHANGED
|
@@ -1,7 +1,5 @@
|
|
|
1
|
-
# -*- coding: utf-8 -*-
|
|
2
|
-
#
|
|
3
1
|
# Copyright (C) 2012 Haruka Yoshihara <yoshihara@clear-code.com>
|
|
4
|
-
# Copyright (C) 2012-
|
|
2
|
+
# Copyright (C) 2012-2023 Sutou Kouhei <kou@clear-code.com>
|
|
5
3
|
#
|
|
6
4
|
# License: Ruby's or LGPL
|
|
7
5
|
#
|
|
@@ -314,6 +312,11 @@ EOF
|
|
|
314
312
|
end
|
|
315
313
|
|
|
316
314
|
class TestPluralForms < self
|
|
315
|
+
def setup
|
|
316
|
+
super
|
|
317
|
+
omit("Red Datasets is required") unless defined?(Datasets::CLDRPlurals)
|
|
318
|
+
end
|
|
319
|
+
|
|
317
320
|
def run_msginit(pot_header_options={})
|
|
318
321
|
create_pot_file("test.pot", pot_header_options)
|
|
319
322
|
po_file_path = "output.po"
|
|
@@ -327,5 +330,81 @@ EOF
|
|
|
327
330
|
run_msginit(:have_plural_forms => false))
|
|
328
331
|
end
|
|
329
332
|
end
|
|
333
|
+
|
|
334
|
+
def test_ja
|
|
335
|
+
assert_equal("nplurals=1; plural=0;",
|
|
336
|
+
@msginit.__send__(:plural_forms, "ja"))
|
|
337
|
+
end
|
|
338
|
+
|
|
339
|
+
def test_en
|
|
340
|
+
assert_equal("nplurals=2; plural=n != 1;",
|
|
341
|
+
@msginit.__send__(:plural_forms, "en"))
|
|
342
|
+
end
|
|
343
|
+
|
|
344
|
+
def test_fr
|
|
345
|
+
assert_equal("nplurals=2; plural=n > 1;",
|
|
346
|
+
@msginit.__send__(:plural_forms, "fr"))
|
|
347
|
+
end
|
|
348
|
+
|
|
349
|
+
def test_lv
|
|
350
|
+
assert_equal("nplurals=3; " +
|
|
351
|
+
"plural=((n % 10) == 1) && ((n % 100) != 11) ? 0 : " +
|
|
352
|
+
"((n % 10) == 0) || ((n % 100) >= 11 && (n % 100) <= 19) " +
|
|
353
|
+
"? 1 : 2;",
|
|
354
|
+
@msginit.__send__(:plural_forms, "lv"))
|
|
355
|
+
end
|
|
356
|
+
|
|
357
|
+
def test_ga
|
|
358
|
+
assert_equal("nplurals=5; " +
|
|
359
|
+
"plural=(n == 1) ? 0 : (n == 2) ? 1 : " +
|
|
360
|
+
"(n >= 3 && n <= 6) ? 2 : (n >= 7 && n <= 10) ? 3 : 4;",
|
|
361
|
+
@msginit.__send__(:plural_forms, "ga"))
|
|
362
|
+
end
|
|
363
|
+
|
|
364
|
+
def test_ro
|
|
365
|
+
assert_equal("nplurals=3; " +
|
|
366
|
+
"plural=(n == 1) ? 0 : " +
|
|
367
|
+
"(n == 0) || (n != 1) && ((n % 100) >= 1 && (n % 100) <= 19) ? 1 : 2;",
|
|
368
|
+
@msginit.__send__(:plural_forms, "ro"))
|
|
369
|
+
end
|
|
370
|
+
|
|
371
|
+
def test_lt
|
|
372
|
+
assert_equal("nplurals=3; " +
|
|
373
|
+
"plural=((n % 10) == 1) && " +
|
|
374
|
+
"((n % 100) < 11 || (n % 100) > 19) ? 0 : " +
|
|
375
|
+
"((n % 10) >= 2 && (n % 10) <= 9) && " +
|
|
376
|
+
"((n % 100) < 11 || (n % 100) > 19) ? 1 : 2;",
|
|
377
|
+
@msginit.__send__(:plural_forms, "lt"))
|
|
378
|
+
end
|
|
379
|
+
|
|
380
|
+
def test_ru
|
|
381
|
+
assert_equal("nplurals=3; " +
|
|
382
|
+
"plural=((n % 10) == 1) && ((n % 100) != 11) ? 0 : " +
|
|
383
|
+
"((n % 10) >= 2 && (n % 10) <= 4) && " +
|
|
384
|
+
"((n % 100) < 12 || (n % 100) > 14) ? 1 : 2;",
|
|
385
|
+
@msginit.__send__(:plural_forms, "ru"))
|
|
386
|
+
end
|
|
387
|
+
|
|
388
|
+
def test_cs
|
|
389
|
+
assert_equal("nplurals=3; " +
|
|
390
|
+
"plural=(n == 1) ? 0 : (n >= 2 && n <= 4) ? 1 : 2;",
|
|
391
|
+
@msginit.__send__(:plural_forms, "cs"))
|
|
392
|
+
end
|
|
393
|
+
|
|
394
|
+
def test_pl
|
|
395
|
+
assert_equal("nplurals=3; " +
|
|
396
|
+
"plural=(n == 1) ? 0 : " +
|
|
397
|
+
"((n % 10) >= 2 && (n % 10) <= 4) && " +
|
|
398
|
+
"((n % 100) < 12 || (n % 100) > 14) ? 1 : 2;",
|
|
399
|
+
@msginit.__send__(:plural_forms, "pl"))
|
|
400
|
+
end
|
|
401
|
+
|
|
402
|
+
def test_sl
|
|
403
|
+
assert_equal("nplurals=4; " +
|
|
404
|
+
"plural=((n % 100) == 1) ? 0 : " +
|
|
405
|
+
"((n % 100) == 2) ? 1 : " +
|
|
406
|
+
"((n % 100) >= 3 && (n % 100) <= 4) ? 2 : 3;",
|
|
407
|
+
@msginit.__send__(:plural_forms, "sl"))
|
|
408
|
+
end
|
|
330
409
|
end
|
|
331
410
|
end
|
data/test/tools/test_msgmerge.rb
CHANGED
|
@@ -1,6 +1,4 @@
|
|
|
1
|
-
#
|
|
2
|
-
#
|
|
3
|
-
# Copyright (C) 2012-2015 Kouhei Sutou <kou@clear-code.com>
|
|
1
|
+
# Copyright (C) 2012-2023 Sutou Kouhei <kou@clear-code.com>
|
|
4
2
|
# Copyright (C) 2010 Eddie Lau <tatonlto@gmail.com>
|
|
5
3
|
#
|
|
6
4
|
# License: Ruby's or LGPL
|
|
@@ -292,7 +290,6 @@ msgstr "bonjour"
|
|
|
292
290
|
@pot[new_msgid] = ""
|
|
293
291
|
merged_po = merge
|
|
294
292
|
|
|
295
|
-
puts merged_po
|
|
296
293
|
assert_equal("bonjour", merged_po[new_msgid].msgstr)
|
|
297
294
|
assert_equal("fuzzy", merged_po[new_msgid].flag)
|
|
298
295
|
end
|
|
@@ -364,7 +361,7 @@ EOC
|
|
|
364
361
|
end
|
|
365
362
|
|
|
366
363
|
class TestCommand < self
|
|
367
|
-
include
|
|
364
|
+
include Helper::Tmpdir
|
|
368
365
|
|
|
369
366
|
def setup
|
|
370
367
|
@msgmerge = GetText::Tools::MsgMerge.new
|
|
@@ -481,6 +478,8 @@ EOP
|
|
|
481
478
|
end
|
|
482
479
|
|
|
483
480
|
class TestMessage < self
|
|
481
|
+
include Helper::Warning
|
|
482
|
+
|
|
484
483
|
def po_content
|
|
485
484
|
<<-PO
|
|
486
485
|
#{po_header(@po_formatted_time, @po_formatted_time)}
|
|
@@ -492,7 +491,9 @@ msgstr "Translated World"
|
|
|
492
491
|
end
|
|
493
492
|
|
|
494
493
|
def test_merge_metadata
|
|
495
|
-
|
|
494
|
+
suppress_warning do
|
|
495
|
+
@msgmerge.run("--update", @po_file_path, @pot_file_path)
|
|
496
|
+
end
|
|
496
497
|
assert_equal(<<-PO, File.read(@po_file_path))
|
|
497
498
|
#{po_header(@pot_formatted_time, @po_formatted_time)}
|
|
498
499
|
#: hello.rb:1
|
|
@@ -651,6 +652,46 @@ msgstr ""
|
|
|
651
652
|
end
|
|
652
653
|
end
|
|
653
654
|
|
|
655
|
+
class TestUseOneLinePerReference < self
|
|
656
|
+
def pot_content
|
|
657
|
+
super + <<-POT
|
|
658
|
+
|
|
659
|
+
#: hello.rb:10
|
|
660
|
+
#: hello.rb:20
|
|
661
|
+
#: hello.rb:30
|
|
662
|
+
msgid "Good morning"
|
|
663
|
+
msgstr ""
|
|
664
|
+
POT
|
|
665
|
+
end
|
|
666
|
+
|
|
667
|
+
def test_with_wrap
|
|
668
|
+
@msgmerge.run("--update",
|
|
669
|
+
"--wrap",
|
|
670
|
+
"--use-one-line-per-reference",
|
|
671
|
+
@po_file_path, @pot_file_path)
|
|
672
|
+
assert_equal(<<-PO, File.read(@po_file_path))
|
|
673
|
+
#{po_header(@pot_formatted_time, @po_formatted_time)}
|
|
674
|
+
#: hello.rb:1
|
|
675
|
+
msgid "Hello"
|
|
676
|
+
msgstr ""
|
|
677
|
+
|
|
678
|
+
#: hello.rb:2
|
|
679
|
+
msgid "World"
|
|
680
|
+
msgstr "Translated World"
|
|
681
|
+
|
|
682
|
+
#: hello.rb:3
|
|
683
|
+
msgid "Good-bye"
|
|
684
|
+
msgstr ""
|
|
685
|
+
|
|
686
|
+
#: hello.rb:10
|
|
687
|
+
#: hello.rb:20
|
|
688
|
+
#: hello.rb:30
|
|
689
|
+
msgid "Good morning"
|
|
690
|
+
msgstr ""
|
|
691
|
+
PO
|
|
692
|
+
end
|
|
693
|
+
end
|
|
694
|
+
|
|
654
695
|
class TestWidth < self
|
|
655
696
|
def pot_content
|
|
656
697
|
<<-POT
|
|
@@ -781,6 +822,40 @@ msgstr ""
|
|
|
781
822
|
end
|
|
782
823
|
end
|
|
783
824
|
|
|
825
|
+
class TestWarning < self
|
|
826
|
+
def pot_content
|
|
827
|
+
<<-POT
|
|
828
|
+
msgid "Hello"
|
|
829
|
+
msgstr ""
|
|
830
|
+
POT
|
|
831
|
+
end
|
|
832
|
+
|
|
833
|
+
def po_content
|
|
834
|
+
<<-PO
|
|
835
|
+
#, fuzzy
|
|
836
|
+
msgid "Hello!"
|
|
837
|
+
msgstr "Bonjour!"
|
|
838
|
+
PO
|
|
839
|
+
end
|
|
840
|
+
|
|
841
|
+
def test_default
|
|
842
|
+
_stdout, stderr = capture_output do
|
|
843
|
+
@msgmerge.run(@po_file_path, @pot_file_path)
|
|
844
|
+
end
|
|
845
|
+
assert_equal(<<-STDERR, stderr)
|
|
846
|
+
Warning: fuzzy message was used.
|
|
847
|
+
#{@po_file_path}: msgid 'Hello!'
|
|
848
|
+
STDERR
|
|
849
|
+
end
|
|
850
|
+
|
|
851
|
+
def test_no_report_warning
|
|
852
|
+
_stdout, stderr = capture_output do
|
|
853
|
+
@msgmerge.run("--no-report-warning", @po_file_path, @pot_file_path)
|
|
854
|
+
end
|
|
855
|
+
assert_equal("", stderr)
|
|
856
|
+
end
|
|
857
|
+
end
|
|
858
|
+
|
|
784
859
|
class TestObsoleteEntries < self
|
|
785
860
|
def pot_content
|
|
786
861
|
<<-POT
|
data/test/tools/test_xgettext.rb
CHANGED
|
@@ -1,6 +1,4 @@
|
|
|
1
|
-
#
|
|
2
|
-
#
|
|
3
|
-
# Copyright (C) 2012-2013 Kouhei Sutou <kou@clear-code.com>
|
|
1
|
+
# Copyright (C) 2012-2023 Sutou Kouhei <kou@clear-code.com>
|
|
4
2
|
# Copyright (C) 2012 Haruka Yoshihara <yoshihara@clear-code.com>
|
|
5
3
|
#
|
|
6
4
|
# License: Ruby's or LGPL
|
|
@@ -22,7 +20,7 @@ require "locale"
|
|
|
22
20
|
require "gettext/tools/xgettext"
|
|
23
21
|
|
|
24
22
|
class TestToolsXGetText < Test::Unit::TestCase
|
|
25
|
-
include
|
|
23
|
+
include Helper::Tmpdir
|
|
26
24
|
|
|
27
25
|
def setup
|
|
28
26
|
@xgettext = GetText::Tools::XGetText.new
|
|
@@ -116,6 +114,105 @@ msgid "Hello"
|
|
|
116
114
|
msgstr ""
|
|
117
115
|
EOP
|
|
118
116
|
end
|
|
117
|
+
|
|
118
|
+
def test_use_one_line_per_reference
|
|
119
|
+
pot_content = generate(<<-RUBY, "--use-one-line-per-reference")
|
|
120
|
+
_("Hello")
|
|
121
|
+
_("Hello")
|
|
122
|
+
RUBY
|
|
123
|
+
assert_equal(<<-POT, pot_content)
|
|
124
|
+
#{header}
|
|
125
|
+
#: ../lib/xgettext.rb:1
|
|
126
|
+
#: ../lib/xgettext.rb:2
|
|
127
|
+
msgid "Hello"
|
|
128
|
+
msgstr ""
|
|
129
|
+
POT
|
|
130
|
+
end
|
|
131
|
+
end
|
|
132
|
+
|
|
133
|
+
class TestParser < self
|
|
134
|
+
# Default ERB parser (don't find anything after "case")
|
|
135
|
+
def test_erb
|
|
136
|
+
rhtml = <<-EOR
|
|
137
|
+
<div>
|
|
138
|
+
<%= _('Hello') %>
|
|
139
|
+
<% case 1 %>
|
|
140
|
+
<% end %>
|
|
141
|
+
<%= _('World') %>
|
|
142
|
+
</div>
|
|
143
|
+
EOR
|
|
144
|
+
|
|
145
|
+
File.open(@rhtml_file_path, "w") do |rhtml_file|
|
|
146
|
+
rhtml_file.puts(rhtml)
|
|
147
|
+
end
|
|
148
|
+
|
|
149
|
+
@xgettext.run(
|
|
150
|
+
"--output", @pot_file_path,
|
|
151
|
+
@rhtml_file_path
|
|
152
|
+
)
|
|
153
|
+
|
|
154
|
+
pot_content = File.read(@pot_file_path)
|
|
155
|
+
|
|
156
|
+
if Gem::Version.new(RUBY_VERSION) >= Gem::Version.new('3.0.0')
|
|
157
|
+
expected_content = <<-EOP
|
|
158
|
+
#{header}
|
|
159
|
+
#: ../templates/xgettext.rhtml:2
|
|
160
|
+
msgid "Hello"
|
|
161
|
+
msgstr ""
|
|
162
|
+
|
|
163
|
+
#: ../templates/xgettext.rhtml:5
|
|
164
|
+
msgid "World"
|
|
165
|
+
msgstr ""
|
|
166
|
+
EOP
|
|
167
|
+
else
|
|
168
|
+
# "World" not detected. see PR #91
|
|
169
|
+
expected_content = <<-EOP
|
|
170
|
+
#{header}
|
|
171
|
+
#: ../templates/xgettext.rhtml:2
|
|
172
|
+
msgid "Hello"
|
|
173
|
+
msgstr ""
|
|
174
|
+
EOP
|
|
175
|
+
end
|
|
176
|
+
|
|
177
|
+
assert_equal(expected_content, pot_content)
|
|
178
|
+
end
|
|
179
|
+
|
|
180
|
+
# Optional Erubi parser (find text after "case")
|
|
181
|
+
def test_erubi
|
|
182
|
+
rhtml = <<-EOR
|
|
183
|
+
<div>
|
|
184
|
+
<%= _('Hello') %>
|
|
185
|
+
<% case 1 %>
|
|
186
|
+
<% end %>
|
|
187
|
+
<%= _('World') %>
|
|
188
|
+
</div>
|
|
189
|
+
EOR
|
|
190
|
+
|
|
191
|
+
File.open(@rhtml_file_path, "w") do |rhtml_file|
|
|
192
|
+
rhtml_file.puts(rhtml)
|
|
193
|
+
end
|
|
194
|
+
|
|
195
|
+
@xgettext.run(
|
|
196
|
+
"--output", @pot_file_path,
|
|
197
|
+
'--require', 'gettext/tools/parser/erubi',
|
|
198
|
+
'--parser', 'GetText::ErubiParser',
|
|
199
|
+
@rhtml_file_path
|
|
200
|
+
)
|
|
201
|
+
|
|
202
|
+
pot_content = File.read(@pot_file_path)
|
|
203
|
+
expected_content = <<-EOP
|
|
204
|
+
#{header}
|
|
205
|
+
#: ../templates/xgettext.rhtml:2
|
|
206
|
+
msgid "Hello"
|
|
207
|
+
msgstr ""
|
|
208
|
+
|
|
209
|
+
#: ../templates/xgettext.rhtml:5
|
|
210
|
+
msgid "World"
|
|
211
|
+
msgstr ""
|
|
212
|
+
EOP
|
|
213
|
+
|
|
214
|
+
assert_equal(expected_content, pot_content)
|
|
215
|
+
end
|
|
119
216
|
end
|
|
120
217
|
|
|
121
218
|
class TestEncoding < self
|
|
@@ -414,6 +511,7 @@ msgid "World"
|
|
|
414
511
|
msgstr ""
|
|
415
512
|
|
|
416
513
|
#: ../lib/xgettext.rb:2
|
|
514
|
+
msgctxt "context"
|
|
417
515
|
msgid "Hello"
|
|
418
516
|
msgstr ""
|
|
419
517
|
|
|
@@ -443,6 +541,7 @@ msgid "World"
|
|
|
443
541
|
msgstr ""
|
|
444
542
|
|
|
445
543
|
#: ../lib/xgettext.rb:2
|
|
544
|
+
msgctxt "context"
|
|
446
545
|
msgid "Hello"
|
|
447
546
|
msgstr ""
|
|
448
547
|
POT
|
|
@@ -456,6 +555,7 @@ msgid "World"
|
|
|
456
555
|
msgstr ""
|
|
457
556
|
|
|
458
557
|
#: ../lib/xgettext.rb:2
|
|
558
|
+
msgctxt "context"
|
|
459
559
|
msgid "Hello"
|
|
460
560
|
msgstr ""
|
|
461
561
|
|
|
@@ -481,6 +581,7 @@ msgid "ABC"
|
|
|
481
581
|
msgstr ""
|
|
482
582
|
|
|
483
583
|
#: ../lib/xgettext.rb:2
|
|
584
|
+
msgctxt "context"
|
|
484
585
|
msgid "Hello"
|
|
485
586
|
msgstr ""
|
|
486
587
|
|
|
@@ -502,7 +603,7 @@ msgstr ""
|
|
|
502
603
|
File.open(@rb_file_path, "w") do |rb_file|
|
|
503
604
|
rb_file.puts(<<-RUBY)
|
|
504
605
|
_('World')
|
|
505
|
-
|
|
606
|
+
p_('context', 'Hello')
|
|
506
607
|
RUBY
|
|
507
608
|
end
|
|
508
609
|
|
metadata
CHANGED
|
@@ -1,16 +1,30 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: gettext
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 3.
|
|
4
|
+
version: 3.4.9
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Kouhei Sutou
|
|
8
8
|
- Masao Mutoh
|
|
9
|
-
autorequire:
|
|
9
|
+
autorequire:
|
|
10
10
|
bindir: bin
|
|
11
11
|
cert_chain: []
|
|
12
|
-
date:
|
|
12
|
+
date: 2023-10-21 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
|
|
@@ -26,27 +40,27 @@ dependencies:
|
|
|
26
40
|
- !ruby/object:Gem::Version
|
|
27
41
|
version: 2.0.5
|
|
28
42
|
- !ruby/object:Gem::Dependency
|
|
29
|
-
name:
|
|
43
|
+
name: prime
|
|
30
44
|
requirement: !ruby/object:Gem::Requirement
|
|
31
45
|
requirements:
|
|
32
46
|
- - ">="
|
|
33
47
|
- !ruby/object:Gem::Version
|
|
34
|
-
version:
|
|
48
|
+
version: '0'
|
|
35
49
|
type: :runtime
|
|
36
50
|
prerelease: false
|
|
37
51
|
version_requirements: !ruby/object:Gem::Requirement
|
|
38
52
|
requirements:
|
|
39
53
|
- - ">="
|
|
40
54
|
- !ruby/object:Gem::Version
|
|
41
|
-
version:
|
|
55
|
+
version: '0'
|
|
42
56
|
- !ruby/object:Gem::Dependency
|
|
43
|
-
name:
|
|
57
|
+
name: racc
|
|
44
58
|
requirement: !ruby/object:Gem::Requirement
|
|
45
59
|
requirements:
|
|
46
60
|
- - ">="
|
|
47
61
|
- !ruby/object:Gem::Version
|
|
48
62
|
version: '0'
|
|
49
|
-
type: :
|
|
63
|
+
type: :runtime
|
|
50
64
|
prerelease: false
|
|
51
65
|
version_requirements: !ruby/object:Gem::Requirement
|
|
52
66
|
requirements:
|
|
@@ -54,7 +68,21 @@ dependencies:
|
|
|
54
68
|
- !ruby/object:Gem::Version
|
|
55
69
|
version: '0'
|
|
56
70
|
- !ruby/object:Gem::Dependency
|
|
57
|
-
name:
|
|
71
|
+
name: text
|
|
72
|
+
requirement: !ruby/object:Gem::Requirement
|
|
73
|
+
requirements:
|
|
74
|
+
- - ">="
|
|
75
|
+
- !ruby/object:Gem::Version
|
|
76
|
+
version: 1.3.0
|
|
77
|
+
type: :runtime
|
|
78
|
+
prerelease: false
|
|
79
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
80
|
+
requirements:
|
|
81
|
+
- - ">="
|
|
82
|
+
- !ruby/object:Gem::Version
|
|
83
|
+
version: 1.3.0
|
|
84
|
+
- !ruby/object:Gem::Dependency
|
|
85
|
+
name: kramdown
|
|
58
86
|
requirement: !ruby/object:Gem::Requirement
|
|
59
87
|
requirements:
|
|
60
88
|
- - ">="
|
|
@@ -68,7 +96,7 @@ dependencies:
|
|
|
68
96
|
- !ruby/object:Gem::Version
|
|
69
97
|
version: '0'
|
|
70
98
|
- !ruby/object:Gem::Dependency
|
|
71
|
-
name:
|
|
99
|
+
name: rake
|
|
72
100
|
requirement: !ruby/object:Gem::Requirement
|
|
73
101
|
requirements:
|
|
74
102
|
- - ">="
|
|
@@ -82,7 +110,7 @@ dependencies:
|
|
|
82
110
|
- !ruby/object:Gem::Version
|
|
83
111
|
version: '0'
|
|
84
112
|
- !ruby/object:Gem::Dependency
|
|
85
|
-
name:
|
|
113
|
+
name: red-datasets
|
|
86
114
|
requirement: !ruby/object:Gem::Requirement
|
|
87
115
|
requirements:
|
|
88
116
|
- - ">="
|
|
@@ -110,7 +138,7 @@ dependencies:
|
|
|
110
138
|
- !ruby/object:Gem::Version
|
|
111
139
|
version: '0'
|
|
112
140
|
- !ruby/object:Gem::Dependency
|
|
113
|
-
name: test-unit-
|
|
141
|
+
name: test-unit-rr
|
|
114
142
|
requirement: !ruby/object:Gem::Requirement
|
|
115
143
|
requirements:
|
|
116
144
|
- - ">="
|
|
@@ -124,7 +152,7 @@ dependencies:
|
|
|
124
152
|
- !ruby/object:Gem::Version
|
|
125
153
|
version: '0'
|
|
126
154
|
- !ruby/object:Gem::Dependency
|
|
127
|
-
name:
|
|
155
|
+
name: yard
|
|
128
156
|
requirement: !ruby/object:Gem::Requirement
|
|
129
157
|
requirements:
|
|
130
158
|
- - ">="
|
|
@@ -145,11 +173,11 @@ email:
|
|
|
145
173
|
- kou@clear-code.com
|
|
146
174
|
- mutomasa at gmail.com
|
|
147
175
|
executables:
|
|
148
|
-
- rmsginit
|
|
149
|
-
- rmsgfmt
|
|
150
176
|
- rmsgcat
|
|
151
|
-
-
|
|
177
|
+
- rmsgfmt
|
|
178
|
+
- rmsginit
|
|
152
179
|
- rmsgmerge
|
|
180
|
+
- rxgettext
|
|
153
181
|
extensions: []
|
|
154
182
|
extra_rdoc_files: []
|
|
155
183
|
files:
|
|
@@ -184,8 +212,9 @@ files:
|
|
|
184
212
|
- lib/gettext/tools/msginit.rb
|
|
185
213
|
- lib/gettext/tools/msgmerge.rb
|
|
186
214
|
- lib/gettext/tools/parser/erb.rb
|
|
215
|
+
- lib/gettext/tools/parser/erubi.rb
|
|
187
216
|
- lib/gettext/tools/parser/glade.rb
|
|
188
|
-
- lib/gettext/tools/parser/
|
|
217
|
+
- lib/gettext/tools/parser/gtk_builder_ui_definitions.rb
|
|
189
218
|
- lib/gettext/tools/parser/ruby.rb
|
|
190
219
|
- lib/gettext/tools/task.rb
|
|
191
220
|
- lib/gettext/tools/xgettext.rb
|
|
@@ -1514,6 +1543,7 @@ files:
|
|
|
1514
1543
|
- samples/po/zh_TW/hello_tk.po.time_stamp
|
|
1515
1544
|
- src/po_parser.ry
|
|
1516
1545
|
- test/fixtures/_.rb
|
|
1546
|
+
- test/fixtures/_/backtick.rb
|
|
1517
1547
|
- test/fixtures/_/block_parameter.rb
|
|
1518
1548
|
- test/fixtures/_/double_quote_in_double_quote.rb
|
|
1519
1549
|
- test/fixtures/_/double_quote_in_single_quote.rb
|
|
@@ -1524,11 +1554,18 @@ files:
|
|
|
1524
1554
|
- test/fixtures/_/multiple_same_messages.rb
|
|
1525
1555
|
- test/fixtures/_/one_line.rb
|
|
1526
1556
|
- test/fixtures/_/one_new_line.rb
|
|
1557
|
+
- test/fixtures/_/percent_strings.rb
|
|
1558
|
+
- test/fixtures/_/pipe.rb
|
|
1559
|
+
- test/fixtures/_/quoted_symbol.rb
|
|
1527
1560
|
- test/fixtures/backslash.rb
|
|
1528
1561
|
- test/fixtures/erb/ascii.rhtml
|
|
1529
1562
|
- test/fixtures/erb/ascii.rxml
|
|
1563
|
+
- test/fixtures/erb/case.rhtml
|
|
1564
|
+
- test/fixtures/erb/minus.rhtml
|
|
1530
1565
|
- test/fixtures/erb/non_ascii.rhtml
|
|
1531
|
-
- test/fixtures/
|
|
1566
|
+
- test/fixtures/glade/2.glade
|
|
1567
|
+
- test/fixtures/glade/3.glade
|
|
1568
|
+
- test/fixtures/gtk_builder_ui_definitions.ui
|
|
1532
1569
|
- test/fixtures/hello.rb
|
|
1533
1570
|
- test/fixtures/lower_n_.rb
|
|
1534
1571
|
- test/fixtures/multi_text_domain.rb
|
|
@@ -1537,12 +1574,17 @@ files:
|
|
|
1537
1574
|
- test/fixtures/ns_.rb
|
|
1538
1575
|
- test/fixtures/ns_/custom.rb
|
|
1539
1576
|
- test/fixtures/p_.rb
|
|
1577
|
+
- test/fixtures/ruby/percent_lower_i.rb
|
|
1578
|
+
- test/fixtures/ruby/percent_lower_w.rb
|
|
1579
|
+
- test/fixtures/ruby/percent_upper_i.rb
|
|
1580
|
+
- test/fixtures/ruby/percent_upper_w.rb
|
|
1540
1581
|
- test/fixtures/s_.rb
|
|
1541
1582
|
- test/fixtures/s_/custom.rb
|
|
1542
1583
|
- test/fixtures/simple.rb
|
|
1543
1584
|
- test/fixtures/untranslated.rb
|
|
1544
1585
|
- test/fixtures/upper_n_.rb
|
|
1545
|
-
- test/
|
|
1586
|
+
- test/fixtures/upper_nn_.rb
|
|
1587
|
+
- test/helper.rb
|
|
1546
1588
|
- test/locale/cr/LC_MESSAGES/plural.mo
|
|
1547
1589
|
- test/locale/da/LC_MESSAGES/plural.mo
|
|
1548
1590
|
- test/locale/da/LC_MESSAGES/plural_error.mo
|
|
@@ -1550,6 +1592,8 @@ files:
|
|
|
1550
1592
|
- test/locale/fr/LC_MESSAGES/plural_error.mo
|
|
1551
1593
|
- test/locale/fr/LC_MESSAGES/test1.mo
|
|
1552
1594
|
- test/locale/fr/LC_MESSAGES/test2.mo
|
|
1595
|
+
- test/locale/fr_BE/LC_MESSAGES/test1.mo
|
|
1596
|
+
- test/locale/fr_BE_Foo/LC_MESSAGES/test1.mo
|
|
1553
1597
|
- test/locale/ir/LC_MESSAGES/plural.mo
|
|
1554
1598
|
- test/locale/ja/LC_MESSAGES/_.mo
|
|
1555
1599
|
- test/locale/ja/LC_MESSAGES/backslash.mo
|
|
@@ -1582,6 +1626,8 @@ files:
|
|
|
1582
1626
|
- test/po/fr/plural_error.po
|
|
1583
1627
|
- test/po/fr/test1.po
|
|
1584
1628
|
- test/po/fr/test2.po
|
|
1629
|
+
- test/po/fr_BE/test1.po
|
|
1630
|
+
- test/po/fr_BE_Foo/test1.po
|
|
1585
1631
|
- test/po/hello.pot
|
|
1586
1632
|
- test/po/ir/plural.po
|
|
1587
1633
|
- test/po/ja/_.edit.po
|
|
@@ -1653,6 +1699,8 @@ files:
|
|
|
1653
1699
|
- test/tools/files/simple_2.po
|
|
1654
1700
|
- test/tools/files/simple_translation.rb
|
|
1655
1701
|
- test/tools/files/version.po
|
|
1702
|
+
- test/tools/parser/test_glade.rb
|
|
1703
|
+
- test/tools/parser/test_gtk_builder_ui_definitions.rb
|
|
1656
1704
|
- test/tools/parser/test_ruby.rb
|
|
1657
1705
|
- test/tools/test.pot
|
|
1658
1706
|
- test/tools/test_msgcat.rb
|
|
@@ -1660,11 +1708,12 @@ files:
|
|
|
1660
1708
|
- test/tools/test_msgmerge.rb
|
|
1661
1709
|
- test/tools/test_task.rb
|
|
1662
1710
|
- test/tools/test_xgettext.rb
|
|
1663
|
-
homepage:
|
|
1711
|
+
homepage: https://ruby-gettext.github.io/
|
|
1664
1712
|
licenses:
|
|
1665
|
-
- Ruby
|
|
1713
|
+
- Ruby
|
|
1714
|
+
- LGPL-3.0+
|
|
1666
1715
|
metadata: {}
|
|
1667
|
-
post_install_message:
|
|
1716
|
+
post_install_message:
|
|
1668
1717
|
rdoc_options: []
|
|
1669
1718
|
require_paths:
|
|
1670
1719
|
- lib
|
|
@@ -1672,30 +1721,29 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
1672
1721
|
requirements:
|
|
1673
1722
|
- - ">="
|
|
1674
1723
|
- !ruby/object:Gem::Version
|
|
1675
|
-
version:
|
|
1724
|
+
version: 2.5.0
|
|
1676
1725
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
1677
1726
|
requirements:
|
|
1678
1727
|
- - ">="
|
|
1679
1728
|
- !ruby/object:Gem::Version
|
|
1680
1729
|
version: '0'
|
|
1681
1730
|
requirements: []
|
|
1682
|
-
|
|
1683
|
-
|
|
1684
|
-
signing_key:
|
|
1731
|
+
rubygems_version: 3.5.0.dev
|
|
1732
|
+
signing_key:
|
|
1685
1733
|
specification_version: 4
|
|
1686
1734
|
summary: Gettext is a pure Ruby libary and tools to localize messages.
|
|
1687
1735
|
test_files:
|
|
1736
|
+
- test/test_class_info.rb
|
|
1737
|
+
- test/test_gettext.rb
|
|
1688
1738
|
- test/test_locale_path.rb
|
|
1739
|
+
- test/test_mo.rb
|
|
1689
1740
|
- test/test_parser.rb
|
|
1690
|
-
- test/
|
|
1691
|
-
- test/test_text_domain_toplevel.rb
|
|
1741
|
+
- test/test_po.rb
|
|
1692
1742
|
- test/test_po_entry.rb
|
|
1693
|
-
- test/
|
|
1694
|
-
- test/test_mo.rb
|
|
1743
|
+
- test/test_po_parser.rb
|
|
1695
1744
|
- test/test_string.rb
|
|
1696
|
-
- test/
|
|
1697
|
-
- test/test_gettext.rb
|
|
1745
|
+
- test/test_text_domain.rb
|
|
1698
1746
|
- test/test_text_domain_bind.rb
|
|
1699
|
-
- test/test_thread.rb
|
|
1700
1747
|
- test/test_text_domain_multi.rb
|
|
1701
|
-
- test/
|
|
1748
|
+
- test/test_text_domain_toplevel.rb
|
|
1749
|
+
- test/test_thread.rb
|