gettext 3.4.2 → 3.4.4

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 (141) hide show
  1. checksums.yaml +4 -4
  2. data/Rakefile +1 -3
  3. data/doc/text/news.md +18 -0
  4. data/gettext.gemspec +2 -1
  5. data/lib/gettext/po_parser.rb +13 -13
  6. data/lib/gettext/tools/parser/erubi.rb +88 -0
  7. data/lib/gettext/tools/xgettext.rb +6 -0
  8. data/lib/gettext/version.rb +2 -2
  9. data/locale/ja/LC_MESSAGES/gettext.mo +0 -0
  10. data/po/bg/gettext.edit.po +11 -10
  11. data/po/bg/gettext.po +3 -0
  12. data/po/bs/gettext.edit.po +11 -10
  13. data/po/bs/gettext.po +3 -0
  14. data/po/ca/gettext.edit.po +11 -10
  15. data/po/ca/gettext.po +3 -0
  16. data/po/cs/gettext.edit.po +11 -10
  17. data/po/cs/gettext.po +3 -0
  18. data/po/de/gettext.edit.po +11 -10
  19. data/po/de/gettext.po +3 -0
  20. data/po/el/gettext.edit.po +11 -10
  21. data/po/el/gettext.po +3 -0
  22. data/po/eo/gettext.edit.po +11 -10
  23. data/po/eo/gettext.po +3 -0
  24. data/po/es/gettext.edit.po +11 -10
  25. data/po/es/gettext.po +3 -0
  26. data/po/et/gettext.edit.po +11 -10
  27. data/po/et/gettext.po +3 -0
  28. data/po/fr/gettext.edit.po +11 -10
  29. data/po/fr/gettext.po +3 -0
  30. data/po/gettext.pot +14 -10
  31. data/po/hr/gettext.edit.po +11 -10
  32. data/po/hr/gettext.po +3 -0
  33. data/po/hu/gettext.edit.po +11 -10
  34. data/po/hu/gettext.po +3 -0
  35. data/po/it/gettext.edit.po +11 -10
  36. data/po/it/gettext.po +3 -0
  37. data/po/ja/gettext.edit.po +12 -11
  38. data/po/ja/gettext.po +4 -1
  39. data/po/ko/gettext.edit.po +11 -10
  40. data/po/ko/gettext.po +3 -0
  41. data/po/lv/gettext.edit.po +11 -10
  42. data/po/lv/gettext.po +3 -0
  43. data/po/nb/gettext.edit.po +11 -10
  44. data/po/nb/gettext.po +3 -0
  45. data/po/nl/gettext.edit.po +11 -10
  46. data/po/nl/gettext.po +3 -0
  47. data/po/pt_BR/gettext.edit.po +11 -10
  48. data/po/pt_BR/gettext.po +3 -0
  49. data/po/ru/gettext.edit.po +11 -10
  50. data/po/ru/gettext.po +3 -0
  51. data/po/sr/gettext.edit.po +11 -10
  52. data/po/sr/gettext.po +3 -0
  53. data/po/sv/gettext.edit.po +11 -7
  54. data/po/sv/gettext.po +3 -0
  55. data/po/uk/gettext.edit.po +11 -10
  56. data/po/uk/gettext.po +3 -0
  57. data/po/vi/gettext.edit.po +11 -10
  58. data/po/vi/gettext.po +3 -0
  59. data/po/zh/gettext.edit.po +11 -10
  60. data/po/zh/gettext.po +3 -0
  61. data/po/zh_TW/gettext.edit.po +11 -10
  62. data/po/zh_TW/gettext.po +3 -0
  63. data/samples/cgi/po/helloerb1.pot +3 -3
  64. data/samples/cgi/po/helloerb2.pot +3 -3
  65. data/samples/cgi/po/hellolib.pot +3 -3
  66. data/samples/cgi/po/main.pot +3 -3
  67. data/samples/po/bg/hello_gtk_builder.edit.po +15 -0
  68. data/samples/po/bg/hello_gtk_builder.po +12 -0
  69. data/samples/po/bs/hello_gtk_builder.edit.po +15 -0
  70. data/samples/po/bs/hello_gtk_builder.po +12 -0
  71. data/samples/po/ca/hello_gtk_builder.edit.po +15 -0
  72. data/samples/po/ca/hello_gtk_builder.po +12 -0
  73. data/samples/po/cs/hello_gtk_builder.edit.po +15 -0
  74. data/samples/po/cs/hello_gtk_builder.po +12 -0
  75. data/samples/po/de/hello_gtk_builder.edit.po +15 -0
  76. data/samples/po/de/hello_gtk_builder.po +12 -0
  77. data/samples/po/el/hello_gtk_builder.edit.po +15 -0
  78. data/samples/po/el/hello_gtk_builder.po +12 -0
  79. data/samples/po/eo/hello_gtk_builder.edit.po +15 -0
  80. data/samples/po/eo/hello_gtk_builder.po +12 -0
  81. data/samples/po/es/hello_gtk_builder.edit.po +15 -0
  82. data/samples/po/es/hello_gtk_builder.po +12 -0
  83. data/samples/po/fr/hello_gtk_builder.edit.po +15 -0
  84. data/samples/po/fr/hello_gtk_builder.po +12 -0
  85. data/samples/po/hello.pot +3 -3
  86. data/samples/po/hello2.pot +4 -4
  87. data/samples/po/hello_glade2.pot +8 -5
  88. data/samples/po/hello_gtk2.pot +4 -4
  89. data/samples/po/hello_gtk_builder.pot +18 -4
  90. data/samples/po/hello_noop.pot +4 -4
  91. data/samples/po/hello_plural.pot +4 -4
  92. data/samples/po/hello_tk.pot +4 -4
  93. data/samples/po/hr/hello_gtk_builder.edit.po +15 -0
  94. data/samples/po/hr/hello_gtk_builder.po +12 -0
  95. data/samples/po/hu/hello_gtk_builder.edit.po +15 -0
  96. data/samples/po/hu/hello_gtk_builder.po +12 -0
  97. data/samples/po/it/hello_gtk_builder.edit.po +15 -0
  98. data/samples/po/it/hello_gtk_builder.po +12 -0
  99. data/samples/po/ja/hello_gtk_builder.edit.po +15 -0
  100. data/samples/po/ja/hello_gtk_builder.po +12 -0
  101. data/samples/po/ko/hello_gtk_builder.edit.po +15 -0
  102. data/samples/po/ko/hello_gtk_builder.po +12 -0
  103. data/samples/po/lv/hello_gtk_builder.edit.po +15 -0
  104. data/samples/po/lv/hello_gtk_builder.po +12 -0
  105. data/samples/po/nb/hello_gtk_builder.edit.po +15 -0
  106. data/samples/po/nb/hello_gtk_builder.po +12 -0
  107. data/samples/po/nl/hello_gtk_builder.edit.po +15 -0
  108. data/samples/po/nl/hello_gtk_builder.po +12 -0
  109. data/samples/po/pt_BR/hello_gtk_builder.edit.po +15 -0
  110. data/samples/po/pt_BR/hello_gtk_builder.po +12 -0
  111. data/samples/po/ru/hello_gtk_builder.edit.po +15 -0
  112. data/samples/po/ru/hello_gtk_builder.po +12 -0
  113. data/samples/po/sr/hello_gtk_builder.edit.po +15 -0
  114. data/samples/po/sr/hello_gtk_builder.po +12 -0
  115. data/samples/po/sv/hello_gtk_builder.edit.po +15 -0
  116. data/samples/po/sv/hello_gtk_builder.po +12 -0
  117. data/samples/po/uk/hello_gtk_builder.edit.po +15 -0
  118. data/samples/po/uk/hello_gtk_builder.po +12 -0
  119. data/samples/po/vi/hello_gtk_builder.edit.po +15 -0
  120. data/samples/po/vi/hello_gtk_builder.po +12 -0
  121. data/samples/po/zh/hello_gtk_builder.edit.po +15 -0
  122. data/samples/po/zh/hello_gtk_builder.po +12 -0
  123. data/samples/po/zh_TW/hello_gtk_builder.edit.po +15 -0
  124. data/samples/po/zh_TW/hello_gtk_builder.po +12 -0
  125. data/test/fixtures/erb/case.rhtml +16 -0
  126. data/test/po/_.pot +3 -3
  127. data/test/po/backslash.pot +6 -4
  128. data/test/po/hello.pot +3 -3
  129. data/test/po/ja/_.po +15 -0
  130. data/test/po/ja/hello.edit.po +0 -1
  131. data/test/po/non_ascii.pot +4 -4
  132. data/test/po/np_.pot +3 -3
  133. data/test/po/ns_.pot +3 -3
  134. data/test/po/p_.pot +3 -3
  135. data/test/po/s_.pot +3 -3
  136. data/test/po/untranslated.pot +4 -4
  137. data/test/test_parser.rb +62 -0
  138. data/test/tools/test_msginit.rb +2 -2
  139. data/test/tools/test_xgettext.rb +85 -0
  140. metadata +30 -15
  141. data/test/fixtures/gtk_builder_ui_definitions.ui~ +0 -68
data/test/po/_.pot CHANGED
@@ -6,10 +6,10 @@
6
6
  #, fuzzy
7
7
  msgid ""
8
8
  msgstr ""
9
- "Project-Id-Version: _ 3.3.8\n"
9
+ "Project-Id-Version: _ 3.4.4\n"
10
10
  "Report-Msgid-Bugs-To: \n"
11
- "POT-Creation-Date: 2021-06-09 11:31+0900\n"
12
- "PO-Revision-Date: 2021-06-09 11:31+0900\n"
11
+ "POT-Creation-Date: 2023-06-11 06:20+0900\n"
12
+ "PO-Revision-Date: 2023-06-11 06:20+0900\n"
13
13
  "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
14
14
  "Language-Team: LANGUAGE <LL@li.org>\n"
15
15
  "Language: \n"
@@ -1,16 +1,18 @@
1
1
  # SOME DESCRIPTIVE TITLE.
2
2
  # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
3
- # This file is distributed under the same license as the PACKAGE package.
3
+ # This file is distributed under the same license as the backslash package.
4
4
  # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
5
5
  #
6
6
  #, fuzzy
7
7
  msgid ""
8
8
  msgstr ""
9
- "Project-Id-Version: PACKAGE VERSION\n"
10
- "POT-Creation-Date: 2012-08-19 22:58+0900\n"
11
- "PO-Revision-Date: 2012-08-19 22:58+0900\n"
9
+ "Project-Id-Version: backslash 3.4.4\n"
10
+ "Report-Msgid-Bugs-To: \n"
11
+ "POT-Creation-Date: 2023-06-11 06:20+0900\n"
12
+ "PO-Revision-Date: 2023-06-11 06:20+0900\n"
12
13
  "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13
14
  "Language-Team: LANGUAGE <LL@li.org>\n"
15
+ "Language: \n"
14
16
  "MIME-Version: 1.0\n"
15
17
  "Content-Type: text/plain; charset=UTF-8\n"
16
18
  "Content-Transfer-Encoding: 8bit\n"
data/test/po/hello.pot CHANGED
@@ -6,10 +6,10 @@
6
6
  #, fuzzy
7
7
  msgid ""
8
8
  msgstr ""
9
- "Project-Id-Version: hello 3.1.7\n"
9
+ "Project-Id-Version: hello 3.4.4\n"
10
10
  "Report-Msgid-Bugs-To: \n"
11
- "POT-Creation-Date: 2015-09-22 14:05+0900\n"
12
- "PO-Revision-Date: 2015-09-22 14:05+0900\n"
11
+ "POT-Creation-Date: 2023-06-11 06:20+0900\n"
12
+ "PO-Revision-Date: 2023-06-11 06:20+0900\n"
13
13
  "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
14
14
  "Language-Team: LANGUAGE <LL@li.org>\n"
15
15
  "Language: \n"
data/test/po/ja/_.po CHANGED
@@ -133,3 +133,18 @@ msgstr "ONE LINE"
133
133
  msgid ""
134
134
  "one new line\n"
135
135
  msgstr ""
136
+
137
+ msgid "in_symbol_array"
138
+ msgstr ""
139
+
140
+ msgid "hello world"
141
+ msgstr ""
142
+
143
+ msgid "in_string_array"
144
+ msgstr ""
145
+
146
+ msgid "Hello"
147
+ msgstr ""
148
+
149
+ msgid "World"
150
+ msgstr ""
@@ -7,7 +7,6 @@ msgid ""
7
7
  msgstr ""
8
8
  "Project-Id-Version: hello 3.1.7\n"
9
9
  "Report-Msgid-Bugs-To: \n"
10
- "POT-Creation-Date: 2015-09-22 14:05+0900\n"
11
10
  "PO-Revision-Date: 2015-09-22 14:06+0900\n"
12
11
  "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13
12
  "Language-Team: Japanese\n"
@@ -1,15 +1,15 @@
1
1
  # SOME DESCRIPTIVE TITLE.
2
2
  # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
3
- # This file is distributed under the same license as the gettext package.
3
+ # This file is distributed under the same license as the non_ascii package.
4
4
  # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
5
5
  #
6
6
  #, fuzzy
7
7
  msgid ""
8
8
  msgstr ""
9
- "Project-Id-Version: gettext 3.0.0\n"
9
+ "Project-Id-Version: non_ascii 3.4.4\n"
10
10
  "Report-Msgid-Bugs-To: \n"
11
- "POT-Creation-Date: 2013-08-30 22:00+0900\n"
12
- "PO-Revision-Date: 2013-08-30 22:00+0900\n"
11
+ "POT-Creation-Date: 2023-06-11 06:20+0900\n"
12
+ "PO-Revision-Date: 2023-06-11 06:20+0900\n"
13
13
  "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
14
14
  "Language-Team: LANGUAGE <LL@li.org>\n"
15
15
  "Language: \n"
data/test/po/np_.pot CHANGED
@@ -6,10 +6,10 @@
6
6
  #, fuzzy
7
7
  msgid ""
8
8
  msgstr ""
9
- "Project-Id-Version: np_ 3.3.8\n"
9
+ "Project-Id-Version: np_ 3.4.4\n"
10
10
  "Report-Msgid-Bugs-To: \n"
11
- "POT-Creation-Date: 2021-06-09 11:31+0900\n"
12
- "PO-Revision-Date: 2021-06-09 11:31+0900\n"
11
+ "POT-Creation-Date: 2023-06-11 06:20+0900\n"
12
+ "PO-Revision-Date: 2023-06-11 06:20+0900\n"
13
13
  "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
14
14
  "Language-Team: LANGUAGE <LL@li.org>\n"
15
15
  "Language: \n"
data/test/po/ns_.pot CHANGED
@@ -6,10 +6,10 @@
6
6
  #, fuzzy
7
7
  msgid ""
8
8
  msgstr ""
9
- "Project-Id-Version: ns_ 3.3.8\n"
9
+ "Project-Id-Version: ns_ 3.4.4\n"
10
10
  "Report-Msgid-Bugs-To: \n"
11
- "POT-Creation-Date: 2021-06-09 11:31+0900\n"
12
- "PO-Revision-Date: 2021-06-09 11:31+0900\n"
11
+ "POT-Creation-Date: 2023-06-11 06:20+0900\n"
12
+ "PO-Revision-Date: 2023-06-11 06:20+0900\n"
13
13
  "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
14
14
  "Language-Team: LANGUAGE <LL@li.org>\n"
15
15
  "Language: \n"
data/test/po/p_.pot CHANGED
@@ -6,10 +6,10 @@
6
6
  #, fuzzy
7
7
  msgid ""
8
8
  msgstr ""
9
- "Project-Id-Version: p_ 3.3.8\n"
9
+ "Project-Id-Version: p_ 3.4.4\n"
10
10
  "Report-Msgid-Bugs-To: \n"
11
- "POT-Creation-Date: 2021-06-09 11:31+0900\n"
12
- "PO-Revision-Date: 2021-06-09 11:31+0900\n"
11
+ "POT-Creation-Date: 2023-06-11 06:20+0900\n"
12
+ "PO-Revision-Date: 2023-06-11 06:20+0900\n"
13
13
  "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
14
14
  "Language-Team: LANGUAGE <LL@li.org>\n"
15
15
  "Language: \n"
data/test/po/s_.pot CHANGED
@@ -6,10 +6,10 @@
6
6
  #, fuzzy
7
7
  msgid ""
8
8
  msgstr ""
9
- "Project-Id-Version: s_ 3.3.8\n"
9
+ "Project-Id-Version: s_ 3.4.4\n"
10
10
  "Report-Msgid-Bugs-To: \n"
11
- "POT-Creation-Date: 2021-06-09 11:31+0900\n"
12
- "PO-Revision-Date: 2021-06-09 11:31+0900\n"
11
+ "POT-Creation-Date: 2023-06-11 06:20+0900\n"
12
+ "PO-Revision-Date: 2023-06-11 06:20+0900\n"
13
13
  "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
14
14
  "Language-Team: LANGUAGE <LL@li.org>\n"
15
15
  "Language: \n"
@@ -1,15 +1,15 @@
1
1
  # SOME DESCRIPTIVE TITLE.
2
2
  # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
3
- # This file is distributed under the same license as the gettext package.
3
+ # This file is distributed under the same license as the untranslated package.
4
4
  # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
5
5
  #
6
6
  #, fuzzy
7
7
  msgid ""
8
8
  msgstr ""
9
- "Project-Id-Version: gettext 3.0.0\n"
9
+ "Project-Id-Version: untranslated 3.4.4\n"
10
10
  "Report-Msgid-Bugs-To: \n"
11
- "POT-Creation-Date: 2013-08-30 22:00+0900\n"
12
- "PO-Revision-Date: 2013-08-30 22:00+0900\n"
11
+ "POT-Creation-Date: 2023-06-11 06:20+0900\n"
12
+ "PO-Revision-Date: 2023-06-11 06:20+0900\n"
13
13
  "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
14
14
  "Language-Team: LANGUAGE <LL@li.org>\n"
15
15
  "Language: \n"
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
@@ -1,5 +1,5 @@
1
1
  # Copyright (C) 2012 Haruka Yoshihara <yoshihara@clear-code.com>
2
- # Copyright (C) 2012-2021 Sutou Kouhei <kou@clear-code.com>
2
+ # Copyright (C) 2012-2023 Sutou Kouhei <kou@clear-code.com>
3
3
  #
4
4
  # License: Ruby's or LGPL
5
5
  #
@@ -364,7 +364,7 @@ EOF
364
364
  def test_ro
365
365
  assert_equal("nplurals=3; " +
366
366
  "plural=(n == 1) ? 0 : " +
367
- "(n == 0) || ((n % 100) >= 2 && (n % 100) <= 19) ? 1 : 2;",
367
+ "(n == 0) || (n != 1) && ((n % 100) >= 1 && (n % 100) <= 19) ? 1 : 2;",
368
368
  @msginit.__send__(:plural_forms, "ro"))
369
369
  end
370
370
 
@@ -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,16 +1,30 @@
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.4
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: 2022-01-10 00:00:00.000000000 Z
12
+ date: 2023-06-10 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
@@ -40,35 +54,35 @@ dependencies:
40
54
  - !ruby/object:Gem::Version
41
55
  version: '0'
42
56
  - !ruby/object:Gem::Dependency
43
- name: text
57
+ name: racc
44
58
  requirement: !ruby/object:Gem::Requirement
45
59
  requirements:
46
60
  - - ">="
47
61
  - !ruby/object:Gem::Version
48
- version: 1.3.0
62
+ version: '0'
49
63
  type: :runtime
50
64
  prerelease: false
51
65
  version_requirements: !ruby/object:Gem::Requirement
52
66
  requirements:
53
67
  - - ">="
54
68
  - !ruby/object:Gem::Version
55
- version: 1.3.0
69
+ version: '0'
56
70
  - !ruby/object:Gem::Dependency
57
- name: kramdown
71
+ name: text
58
72
  requirement: !ruby/object:Gem::Requirement
59
73
  requirements:
60
74
  - - ">="
61
75
  - !ruby/object:Gem::Version
62
- version: '0'
63
- type: :development
76
+ version: 1.3.0
77
+ type: :runtime
64
78
  prerelease: false
65
79
  version_requirements: !ruby/object:Gem::Requirement
66
80
  requirements:
67
81
  - - ">="
68
82
  - !ruby/object:Gem::Version
69
- version: '0'
83
+ version: 1.3.0
70
84
  - !ruby/object:Gem::Dependency
71
- name: racc
85
+ name: kramdown
72
86
  requirement: !ruby/object:Gem::Requirement
73
87
  requirements:
74
88
  - - ">="
@@ -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,12 +1560,12 @@ 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
1551
1567
  - test/fixtures/glade/3.glade
1552
1568
  - test/fixtures/gtk_builder_ui_definitions.ui
1553
- - test/fixtures/gtk_builder_ui_definitions.ui~
1554
1569
  - test/fixtures/hello.rb
1555
1570
  - test/fixtures/lower_n_.rb
1556
1571
  - test/fixtures/multi_text_domain.rb
@@ -1698,7 +1713,7 @@ licenses:
1698
1713
  - Ruby
1699
1714
  - LGPL-3.0+
1700
1715
  metadata: {}
1701
- post_install_message:
1716
+ post_install_message:
1702
1717
  rdoc_options: []
1703
1718
  require_paths:
1704
1719
  - lib
@@ -1713,8 +1728,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
1713
1728
  - !ruby/object:Gem::Version
1714
1729
  version: '0'
1715
1730
  requirements: []
1716
- rubygems_version: 3.4.0.dev
1717
- signing_key:
1731
+ rubygems_version: 3.5.0.dev
1732
+ signing_key:
1718
1733
  specification_version: 4
1719
1734
  summary: Gettext is a pure Ruby libary and tools to localize messages.
1720
1735
  test_files:
@@ -1,68 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <!-- Generated with glade 3.22.1 -->
3
- <interface>
4
- <requires lib="gtk+" version="3.20"/>
5
- <object class="GtkWindow">
6
- <property name="can_focus">False</property>
7
- <child>
8
- <placeholder/>
9
- </child>
10
- <child>
11
- <object class="GtkBox">
12
- <property name="visible">True</property>
13
- <property name="can_focus">False</property>
14
- <property name="orientation">vertical</property>
15
- <child>
16
- <object class="GtkLabel">
17
- <property name="visible">True</property>
18
- <property name="can_focus">False</property>
19
- <property name="label" translatable="yes" context="context" comments="comment">label with context</property>
20
- </object>
21
- <packing>
22
- <property name="expand">False</property>
23
- <property name="fill">True</property>
24
- <property name="position">0</property>
25
- </packing>
26
- </child>
27
- <child>
28
- <object class="GtkLabel">
29
- <property name="visible">True</property>
30
- <property name="can_focus">False</property>
31
- <property name="label" translatable="yes">label simple</property>
32
- </object>
33
- <packing>
34
- <property name="expand">False</property>
35
- <property name="fill">True</property>
36
- <property name="position">1</property>
37
- </packing>
38
- </child>
39
- <child>
40
- <object class="GtkLabel">
41
- <property name="visible">True</property>
42
- <property name="can_focus">False</property>
43
- <property name="label">not trnanslatable label</property>
44
- </object>
45
- <packing>
46
- <property name="expand">False</property>
47
- <property name="fill">True</property>
48
- <property name="position">2</property>
49
- </packing>
50
- </child>
51
- <child>
52
- <object class="GtkLabel">
53
- <property name="visible">True</property>
54
- <property name="can_focus">False</property>
55
- <property name="label" translatable="yes">multiple
56
- lines
57
- label</property>
58
- </object>
59
- <packing>
60
- <property name="expand">False</property>
61
- <property name="fill">True</property>
62
- <property name="position">3</property>
63
- </packing>
64
- </child>
65
- </object>
66
- </child>
67
- </object>
68
- </interface>