gettext 3.4.6 → 3.4.7
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/doc/text/news.md +22 -0
- data/lib/gettext/po_parser.rb +26 -26
- data/lib/gettext/tools/task.rb +3 -5
- data/lib/gettext/version.rb +1 -1
- data/po/gettext.pot +3 -3
- data/src/po_parser.ry +22 -22
- data/test/test_po_parser.rb +28 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fa1902916e0f5d7d7e6f55abac75be8b7766b42ce209b7a1a166e146554994ba
|
4
|
+
data.tar.gz: 295926d043977eb7001e89215848f16d527e6141e0d7c23d29db147d635b732a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 79cdda51880bc12d8d3c02bfcf07a8776f0dc18e6b3ee8daa5e3654786cc0fc4116c0d839f36a6cb7803b927e0f34cc37de32b447e906e11575f668dcf06a371
|
7
|
+
data.tar.gz: ca5da85ee4a5fe13032229c95d41e8d12d258e2809f85a3cd268a8e4b7752c637b764d5a0d6bec466ceb68ba09005fb026815fff884178b5900bbdd64aa3329e
|
data/doc/text/news.md
CHANGED
@@ -1,5 +1,27 @@
|
|
1
1
|
# News
|
2
2
|
|
3
|
+
## 3.4.7: 2023-08-17 {#version-3-4-7}
|
4
|
+
|
5
|
+
### Fixes
|
6
|
+
|
7
|
+
* po: Fixed a parser bug that it may add a `fuzzy` flag to non-fuzzy
|
8
|
+
entry with `ignore_fuzzy: true`.
|
9
|
+
|
10
|
+
Example PO:
|
11
|
+
|
12
|
+
```po
|
13
|
+
#, fuzzy
|
14
|
+
#: file.rb:10
|
15
|
+
msgid "hello"
|
16
|
+
msgstr "bonjour"
|
17
|
+
|
18
|
+
msgid "non-fuzzy"
|
19
|
+
msgstr "non-fuzzy string"
|
20
|
+
```
|
21
|
+
|
22
|
+
`hello` entry is ignored because `ignore_fuzzy` is `true`. The
|
23
|
+
`fuzzy` flag in the `hello` entry is added to `non-fuzzy` entry.
|
24
|
+
|
3
25
|
## 3.4.6: 2023-07-12 {#version-3-4-6}
|
4
26
|
|
5
27
|
### Fixes
|
data/lib/gettext/po_parser.rb
CHANGED
@@ -19,7 +19,7 @@ require "gettext/po"
|
|
19
19
|
module GetText
|
20
20
|
class POParser < Racc::Parser
|
21
21
|
|
22
|
-
module_eval(<<'...end po_parser.ry/module_eval...', 'po_parser.ry',
|
22
|
+
module_eval(<<'...end po_parser.ry/module_eval...', 'po_parser.ry', 126)
|
23
23
|
if GetText.respond_to?(:bindtextdomain)
|
24
24
|
include GetText
|
25
25
|
GetText.bindtextdomain("gettext")
|
@@ -62,16 +62,8 @@ module_eval(<<'...end po_parser.ry/module_eval...', 'po_parser.ry', 122)
|
|
62
62
|
private :unescape
|
63
63
|
|
64
64
|
def parse(str, data)
|
65
|
-
|
66
|
-
@extracted_comments = []
|
67
|
-
@references = []
|
68
|
-
@flags = []
|
69
|
-
@previous = []
|
70
|
-
@comments = []
|
65
|
+
clear
|
71
66
|
@data = data
|
72
|
-
@fuzzy = false
|
73
|
-
@msgctxt = nil
|
74
|
-
@msgid_plural = nil
|
75
67
|
|
76
68
|
str = str.strip
|
77
69
|
@q = []
|
@@ -157,15 +149,7 @@ module_eval(<<'...end po_parser.ry/module_eval...', 'po_parser.ry', 122)
|
|
157
149
|
@data.set_comment(msgid, format_comment(@comments))
|
158
150
|
end
|
159
151
|
|
160
|
-
|
161
|
-
@extracted_comments = []
|
162
|
-
@references = []
|
163
|
-
@flags = []
|
164
|
-
@previous = []
|
165
|
-
@references = []
|
166
|
-
@comments.clear
|
167
|
-
@msgctxt = nil
|
168
|
-
@msgid_plural = nil
|
152
|
+
clear
|
169
153
|
end
|
170
154
|
|
171
155
|
def format_comment(comments)
|
@@ -263,6 +247,18 @@ module_eval(<<'...end po_parser.ry/module_eval...', 'po_parser.ry', 122)
|
|
263
247
|
def parse_flags_line(line)
|
264
248
|
line.split(/\s+/)
|
265
249
|
end
|
250
|
+
|
251
|
+
def clear
|
252
|
+
@translator_comments = []
|
253
|
+
@extracted_comments = []
|
254
|
+
@references = []
|
255
|
+
@flags = []
|
256
|
+
@previous = []
|
257
|
+
@references = []
|
258
|
+
@comments = []
|
259
|
+
@msgctxt = nil
|
260
|
+
@msgid_plural = nil
|
261
|
+
end
|
266
262
|
...end po_parser.ry/module_eval...
|
267
263
|
##### State transition tables begin ###
|
268
264
|
|
@@ -417,14 +413,18 @@ module_eval(<<'.,.,', 'po_parser.ry', 38)
|
|
417
413
|
end
|
418
414
|
end
|
419
415
|
@fuzzy = false
|
420
|
-
|
416
|
+
if use_message_p
|
417
|
+
on_message(msgid, msgstr)
|
418
|
+
else
|
419
|
+
clear
|
420
|
+
end
|
421
421
|
result = ""
|
422
422
|
|
423
423
|
result
|
424
424
|
end
|
425
425
|
.,.,
|
426
426
|
|
427
|
-
module_eval(<<'.,.,', 'po_parser.ry',
|
427
|
+
module_eval(<<'.,.,', 'po_parser.ry', 64)
|
428
428
|
def _reduce_9(val, _values, result)
|
429
429
|
if @fuzzy and ignore_fuzzy?
|
430
430
|
if val[1] != ""
|
@@ -446,7 +446,7 @@ module_eval(<<'.,.,', 'po_parser.ry', 60)
|
|
446
446
|
end
|
447
447
|
.,.,
|
448
448
|
|
449
|
-
module_eval(<<'.,.,', 'po_parser.ry',
|
449
|
+
module_eval(<<'.,.,', 'po_parser.ry', 85)
|
450
450
|
def _reduce_10(val, _values, result)
|
451
451
|
if val[0].size > 0
|
452
452
|
result = val[0] + "\000" + val[1]
|
@@ -460,7 +460,7 @@ module_eval(<<'.,.,', 'po_parser.ry', 81)
|
|
460
460
|
|
461
461
|
# reduce 11 omitted
|
462
462
|
|
463
|
-
module_eval(<<'.,.,', 'po_parser.ry',
|
463
|
+
module_eval(<<'.,.,', 'po_parser.ry', 97)
|
464
464
|
def _reduce_12(val, _values, result)
|
465
465
|
result = val[2]
|
466
466
|
|
@@ -468,7 +468,7 @@ module_eval(<<'.,.,', 'po_parser.ry', 93)
|
|
468
468
|
end
|
469
469
|
.,.,
|
470
470
|
|
471
|
-
module_eval(<<'.,.,', 'po_parser.ry',
|
471
|
+
module_eval(<<'.,.,', 'po_parser.ry', 104)
|
472
472
|
def _reduce_13(val, _values, result)
|
473
473
|
on_comment(val[0])
|
474
474
|
|
@@ -476,7 +476,7 @@ module_eval(<<'.,.,', 'po_parser.ry', 100)
|
|
476
476
|
end
|
477
477
|
.,.,
|
478
478
|
|
479
|
-
module_eval(<<'.,.,', 'po_parser.ry',
|
479
|
+
module_eval(<<'.,.,', 'po_parser.ry', 112)
|
480
480
|
def _reduce_14(val, _values, result)
|
481
481
|
result = val.delete_if{|item| item == ""}.join
|
482
482
|
|
@@ -484,7 +484,7 @@ module_eval(<<'.,.,', 'po_parser.ry', 108)
|
|
484
484
|
end
|
485
485
|
.,.,
|
486
486
|
|
487
|
-
module_eval(<<'.,.,', 'po_parser.ry',
|
487
|
+
module_eval(<<'.,.,', 'po_parser.ry', 116)
|
488
488
|
def _reduce_15(val, _values, result)
|
489
489
|
result = val[0]
|
490
490
|
|
data/lib/gettext/tools/task.rb
CHANGED
@@ -1,6 +1,4 @@
|
|
1
|
-
#
|
2
|
-
#
|
3
|
-
# Copyright (C) 2012-2014 Kouhei Sutou <kou@clear-code.com>
|
1
|
+
# Copyright (C) 2012-2023 Sutou Kouhei <kou@clear-code.com>
|
4
2
|
#
|
5
3
|
# License: Ruby's or LGPL
|
6
4
|
#
|
@@ -452,8 +450,8 @@ module GetText
|
|
452
450
|
locale = args.locale || ENV["LOCALE"]
|
453
451
|
if locale.nil?
|
454
452
|
raise "specify locale name by " +
|
455
|
-
|
456
|
-
|
453
|
+
"rake '#{_task.name}[${LOCALE}]' or " +
|
454
|
+
"rake #{_task.name} LOCALE=${LOCALE}'"
|
457
455
|
end
|
458
456
|
define_edit_po_file_task(locale)
|
459
457
|
define_po_file_task(locale)
|
data/lib/gettext/version.rb
CHANGED
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.
|
9
|
+
"Project-Id-Version: gettext 3.4.7\n"
|
10
10
|
"Report-Msgid-Bugs-To: \n"
|
11
|
-
"POT-Creation-Date: 2023-
|
12
|
-
"PO-Revision-Date: 2023-
|
11
|
+
"POT-Creation-Date: 2023-08-17 17:02+0900\n"
|
12
|
+
"PO-Revision-Date: 2023-08-17 17:02+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/src/po_parser.ry
CHANGED
@@ -2,9 +2,9 @@
|
|
2
2
|
#
|
3
3
|
# po_parser.ry - ruby version of msgfmt
|
4
4
|
#
|
5
|
-
# Copyright (C) 2002-2008
|
6
|
-
# Copyright (C) 2012-
|
7
|
-
# Copyright (C) 2012-2013
|
5
|
+
# Copyright (C) 2002-2008 Masao Mutoh <mutomasa at gmail.com>
|
6
|
+
# Copyright (C) 2012-2023 Sutou Kouhei <kou@clear-code.com>
|
7
|
+
# Copyright (C) 2012-2013 Haruka Yoshihara <yoshihara@clear-code.com>
|
8
8
|
#
|
9
9
|
# You may redistribute it and/or modify it under the same
|
10
10
|
# license terms as Ruby or LGPL.
|
@@ -51,7 +51,11 @@ class GetText::POParser
|
|
51
51
|
end
|
52
52
|
end
|
53
53
|
@fuzzy = false
|
54
|
-
|
54
|
+
if use_message_p
|
55
|
+
on_message(msgid, msgstr)
|
56
|
+
else
|
57
|
+
clear
|
58
|
+
end
|
55
59
|
result = ""
|
56
60
|
}
|
57
61
|
|
@@ -161,16 +165,8 @@ require "gettext/po"
|
|
161
165
|
private :unescape
|
162
166
|
|
163
167
|
def parse(str, data)
|
164
|
-
|
165
|
-
@extracted_comments = []
|
166
|
-
@references = []
|
167
|
-
@flags = []
|
168
|
-
@previous = []
|
169
|
-
@comments = []
|
168
|
+
clear
|
170
169
|
@data = data
|
171
|
-
@fuzzy = false
|
172
|
-
@msgctxt = nil
|
173
|
-
@msgid_plural = nil
|
174
170
|
|
175
171
|
str = str.strip
|
176
172
|
@q = []
|
@@ -256,15 +252,7 @@ require "gettext/po"
|
|
256
252
|
@data.set_comment(msgid, format_comment(@comments))
|
257
253
|
end
|
258
254
|
|
259
|
-
|
260
|
-
@extracted_comments = []
|
261
|
-
@references = []
|
262
|
-
@flags = []
|
263
|
-
@previous = []
|
264
|
-
@references = []
|
265
|
-
@comments.clear
|
266
|
-
@msgctxt = nil
|
267
|
-
@msgid_plural = nil
|
255
|
+
clear
|
268
256
|
end
|
269
257
|
|
270
258
|
def format_comment(comments)
|
@@ -362,5 +350,17 @@ require "gettext/po"
|
|
362
350
|
def parse_flags_line(line)
|
363
351
|
line.split(/\s+/)
|
364
352
|
end
|
353
|
+
|
354
|
+
def clear
|
355
|
+
@translator_comments = []
|
356
|
+
@extracted_comments = []
|
357
|
+
@references = []
|
358
|
+
@flags = []
|
359
|
+
@previous = []
|
360
|
+
@references = []
|
361
|
+
@comments = []
|
362
|
+
@msgctxt = nil
|
363
|
+
@msgid_plural = nil
|
364
|
+
end
|
365
365
|
---- footer
|
366
366
|
|
data/test/test_po_parser.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright (C) 2012-
|
1
|
+
# Copyright (C) 2012-2023 Sutou Kouhei <kou@clear-code.com>
|
2
2
|
# Copyright (C) 2012 Haruka Yoshihara <yoshihara@clear-code.com>
|
3
3
|
#
|
4
4
|
# License: Ruby's or LGPL
|
@@ -238,6 +238,33 @@ EOP
|
|
238
238
|
assert_equal("fuzzy", entries["hello"].flag)
|
239
239
|
end
|
240
240
|
|
241
|
+
def test_fuzzy_ignore
|
242
|
+
po_file = create_po_file(<<-PO)
|
243
|
+
#, fuzzy
|
244
|
+
#: file.rb:10
|
245
|
+
msgid "hello"
|
246
|
+
msgstr "bonjour"
|
247
|
+
|
248
|
+
msgid "non-fuzzy"
|
249
|
+
msgstr "non-fuzzy string"
|
250
|
+
PO
|
251
|
+
entries = suppress_warning do
|
252
|
+
parse_po_file(po_file)
|
253
|
+
end
|
254
|
+
|
255
|
+
actual = entries.collect do |entry|
|
256
|
+
[
|
257
|
+
entry.msgid,
|
258
|
+
entry.msgstr,
|
259
|
+
entry.flags,
|
260
|
+
]
|
261
|
+
end
|
262
|
+
assert_equal([
|
263
|
+
["non-fuzzy", "non-fuzzy string", []],
|
264
|
+
],
|
265
|
+
actual)
|
266
|
+
end
|
267
|
+
|
241
268
|
private
|
242
269
|
def parse_po_file(po_file, options={:ignore_fuzzy => true})
|
243
270
|
ignore_fuzzy = options[:ignore_fuzzy]
|
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.
|
4
|
+
version: 3.4.7
|
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: 2023-
|
12
|
+
date: 2023-08-17 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: erubi
|