gettext 3.0.3 → 3.0.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 5dd7b69714925629b741151ac292ea6cdd610594
4
- data.tar.gz: d46007fce3f43d56375c311bcf13c0edbc493adb
3
+ metadata.gz: 1d86db1459c880200329b35e33e864f61379b19e
4
+ data.tar.gz: 1a5bf66f9c2635dbb6ed24381c561d8caf60f0d1
5
5
  SHA512:
6
- metadata.gz: e902eb611d9e036c68aafcd6b2f0cb462c43344b683ee841a5792e2a5061dc587f351ddf172e0234eebad4a0f0d87aa7c9ef3c563a04b129ecba94dec35e0399
7
- data.tar.gz: 57ab4f506008399e3b5b0c52a2ecdb09cbc2f1f401abdfd8005a238228b9fcbe4e90f182dfb5db4d57b7a8c14f5f9b532d74b1dd5c4d479873936311f5d63e78
6
+ metadata.gz: eec3c5b571d10f2554973fdc5250bf6349a6f9580c264609cf551c721ed5ec4be3ad43bb5fe9616c23924492b90666ea2b12630c83bc38725ded0bd1c6fa3539
7
+ data.tar.gz: 23c26b971dc36dbd92b9e3015650cae86293788bd9a3d9a5534fe15e4f6026723634f66b5c4ca5a04bb11eea0e2ff76599b7e0f92f2832910b9a4e37e690b475
data/bin/rmsgcat ADDED
@@ -0,0 +1,22 @@
1
+ #! /usr/bin/env ruby
2
+ #
3
+ # Copyright (C) 2014 Kouhei Sutou <kou@clear-code.com>
4
+ #
5
+ # License: Ruby's or LGPL
6
+ #
7
+ # This library is free software: you can redistribute it and/or modify
8
+ # it under the terms of the GNU Lesser General Public License as published by
9
+ # the Free Software Foundation, either version 3 of the License, or
10
+ # (at your option) any later version.
11
+ #
12
+ # This library is distributed in the hope that it will be useful,
13
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
14
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15
+ # GNU Lesser General Public License for more details.
16
+ #
17
+ # You should have received a copy of the GNU Lesser General Public License
18
+ # along with this program. If not, see <http://www.gnu.org/licenses/>.
19
+
20
+ require "gettext/tools/msgcat"
21
+
22
+ GetText::Tools::MsgCat.run(*ARGV)
data/doc/text/news.md CHANGED
@@ -1,5 +1,19 @@
1
1
  # News
2
2
 
3
+ ## <a id="3-0-4">3.0.4</a>: 2014-02-02
4
+
5
+ ### Improvements
6
+
7
+ * Supported `Module#prepend`. [GitHub#29] [Reported by akira yamada]
8
+ * Added {GetText::POEntry#fuzzy?}.
9
+ * Added {GetText::Tools::MsgCat}.
10
+ * Added `rmsgcat` command. [GitHub#23] [Requested by Andreas Loupasakis]
11
+
12
+ ### Thanks
13
+
14
+ * akira yamada
15
+ * Andreas Loupasakis
16
+
3
17
  ## <a id="3-0-3">3.0.3</a>: 2013-12-15
4
18
 
5
19
  ### Improvements
@@ -38,7 +38,8 @@ module GetText
38
38
  end
39
39
  analyzed_classes << klass unless analyzed_classes.include? klass
40
40
 
41
- klass.ancestors[1..-1].each do |a|
41
+ klass.ancestors.each do |a|
42
+ next if a == klass
42
43
  ret += related_classes_internal(a, all_classes, analyzed_classes)
43
44
  ret.uniq!
44
45
  end
data/lib/gettext/po.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  # -*- coding: utf-8 -*-
2
2
  #
3
- # Copyright (C) 2012-2013 Kouhei Sutou <kou@clear-code.com>
3
+ # Copyright (C) 2012-2014 Kouhei Sutou <kou@clear-code.com>
4
4
  # Copyright (C) 2012 Haruka Yoshihara <yoshihara@clear-code.com>
5
5
  #
6
6
  # License: Ruby's or LGPL
@@ -38,13 +38,20 @@ module GetText
38
38
  # @!attribute [rw] order
39
39
  # The order is used to sort PO entries(objects of {POEntry}) in
40
40
  # {#to_s}.
41
- # @param [Symbol] order the name as order by sort.
42
- # Now :reference is allowed only.
41
+ # @param [:reference, :msgid] order (:reference) The sort key.
42
+ #
43
+ # Use `:reference` for sorting by location that message is placed.
44
+ #
45
+ # Use `:msgid` for sorting by msgid alphabetical order.
46
+ #
47
+ # `:references` is deprecated since 3.0.4. It will be removed
48
+ # at 4.0.0. Use `:reference` instead.
49
+ #
43
50
  # @return [Symbol] the name as order by sort.
44
51
  attr_accessor :order
45
52
 
46
53
  def initialize(order=nil)
47
- @order = order || :references
54
+ @order = order || :reference
48
55
  @entries = {}
49
56
  end
50
57
 
@@ -214,8 +221,8 @@ module GetText
214
221
  private
215
222
  def sort(entries)
216
223
  case @order
217
- when :references
218
- sorted_entries = sort_by_references(entries)
224
+ when :reference, :references # :references is deprecated.
225
+ sorted_entries = sort_by_reference(entries)
219
226
  when :msgid
220
227
  sorted_entries = sort_by_msgid(entries)
221
228
  else
@@ -223,10 +230,10 @@ module GetText
223
230
  end
224
231
  end
225
232
 
226
- def sort_by_references(entries)
233
+ def sort_by_reference(entries)
227
234
  entries.each do |_, entry|
228
235
  entry.references = entry.references.sort do |reference, other|
229
- compare_references(reference, other)
236
+ compare_reference(reference, other)
230
237
  end
231
238
  end
232
239
 
@@ -234,11 +241,11 @@ module GetText
234
241
  # msgid_entry = [[msgctxt, msgid], POEntry]
235
242
  entry_first_reference = msgid_entry[1].references.first
236
243
  other_first_reference = other_msgid_entry[1].references.first
237
- compare_references(entry_first_reference, other_first_reference)
244
+ compare_reference(entry_first_reference, other_first_reference)
238
245
  end
239
246
  end
240
247
 
241
- def compare_references(reference, other)
248
+ def compare_reference(reference, other)
242
249
  entry_source, entry_line_number = split_reference(reference)
243
250
  other_source, other_line_number = split_reference(other)
244
251
 
@@ -1,6 +1,6 @@
1
1
  # -*- coding: utf-8 -*-
2
2
  #
3
- # Copyright (C) 2012-2013 Kouhei Sutou <kou@clear-code.com>
3
+ # Copyright (C) 2012-2014 Kouhei Sutou <kou@clear-code.com>
4
4
  # Copyright (C) 2010 masone (Christian Felder) <ema@rh-productions.ch>
5
5
  # Copyright (C) 2009 Masao Mutoh
6
6
  #
@@ -58,7 +58,9 @@ module GetText
58
58
  attr_accessor :references # ["file1:line1", "file2:line2", ...]
59
59
  attr_accessor :translator_comment
60
60
  attr_accessor :extracted_comment
61
- attr_accessor :flag
61
+ # @return [Array<String>] The flags for this PO entry.
62
+ # @since 3.0.4
63
+ attr_accessor :flags
62
64
  attr_accessor :previous
63
65
  attr_accessor :comment
64
66
 
@@ -68,7 +70,7 @@ module GetText
68
70
  @translator_comment = nil
69
71
  @extracted_comment = nil
70
72
  @references = []
71
- @flag = nil
73
+ @flags = []
72
74
  @previous = nil
73
75
  @msgctxt = nil
74
76
  @msgid = nil
@@ -87,6 +89,24 @@ module GetText
87
89
  end
88
90
  end
89
91
 
92
+ # @return [String, nil] The flag of the PO entry.
93
+ # @deprecated Since 3.0.4. Use {#flags} instead.
94
+ def flag
95
+ @flags.first
96
+ end
97
+
98
+ # Set the new flag for the PO entry.
99
+ #
100
+ # @param [String, nil] flag The new flag.
101
+ # @deprecated Since 3.0.4. Use {#flags=} instead.
102
+ def flag=(flag)
103
+ if flag.nil?
104
+ @flags = []
105
+ else
106
+ @flags = [flag]
107
+ end
108
+ end
109
+
90
110
  # Checks if the self has same attributes as other.
91
111
  def ==(other)
92
112
  not other.nil? and
@@ -99,7 +119,7 @@ module GetText
99
119
  translator_comment == other.translator_comment and
100
120
  extracted_comment == other.extracted_comment and
101
121
  references == other.references and
102
- flag == other.flag and
122
+ flags == other.flags and
103
123
  previous == other.previous and
104
124
  comment == other.comment
105
125
  end
@@ -177,6 +197,12 @@ module GetText
177
197
  @type == :normal and @msgid == :last
178
198
  end
179
199
 
200
+ # @return true if the entry is fuzzy entry, false otherwise.
201
+ # Fuzzy entry has "fuzzy" flag.
202
+ def fuzzy?
203
+ @flags.include?("fuzzy")
204
+ end
205
+
180
206
  def [](number)
181
207
  param = @param_type[number]
182
208
  raise ParseError, 'no more string parameters expected' unless param
@@ -218,8 +244,22 @@ module GetText
218
244
 
219
245
  # @param [POEntry] entry The entry to be formatted.
220
246
  # @param [Hash] options
247
+ # @option options [Bool] :include_translator_comment (true)
248
+ # Includes translator comments in formatted string if true.
249
+ # @option options [Bool] :include_extracted_comment (true)
250
+ # Includes extracted comments in formatted string if true.
221
251
  # @option options [Bool] :include_reference_comment (true)
222
252
  # Includes reference comments in formatted string if true.
253
+ # @option options [Bool] :include_flag_comment (true)
254
+ # Includes flag comments in formatted string if true.
255
+ # @option options [Bool] :include_previous_comment (true)
256
+ # Includes previous comments in formatted string if true.
257
+ # @option options [Bool] :include_all_comments (true)
258
+ # Includes all comments in formatted string if true.
259
+ # Other specific `:include_XXX` options get preference over
260
+ # this option.
261
+ # You can remove all comments by specifying this option as
262
+ # false and omitting other `:include_XXX` options.
223
263
  # @option options [Integer] :max_line_width (78)
224
264
  # Wraps long lines that is longer than the `:max_line_width`.
225
265
  # Don't break long lines if `:max_line_width` is less than 0
@@ -228,7 +268,7 @@ module GetText
228
268
  # Encodes to the specific encoding.
229
269
  def initialize(entry, options={})
230
270
  @entry = entry
231
- @options = fill_default_option_values(options)
271
+ @options = normalize_options(options)
232
272
  end
233
273
 
234
274
  def format
@@ -236,14 +276,7 @@ module GetText
236
276
  return format_obsolete_comment(@entry.comment)
237
277
  end
238
278
 
239
- str = ""
240
- str << format_translator_comment
241
- str << format_extracted_comment
242
- if @options[:include_reference_comment]
243
- str << format_reference_comment
244
- end
245
- str << format_flag_comment
246
- str << format_previous_comment
279
+ str = format_comments
247
280
 
248
281
  # msgctxt, msgid, msgstr
249
282
  if @entry.msgctxt?
@@ -285,15 +318,66 @@ module GetText
285
318
  end
286
319
 
287
320
  private
288
- def fill_default_option_values(options)
321
+ def normalize_options(options)
289
322
  options = options.dup
290
- if options[:include_reference_comment].nil?
291
- options[:include_reference_comment] = true
323
+ include_comment_keys = [
324
+ :include_translator_comment,
325
+ :include_extracted_comment,
326
+ :include_reference_comment,
327
+ :include_flag_comment,
328
+ :include_previous_comment,
329
+ ]
330
+ if options[:include_all_comments].nil?
331
+ options[:include_all_comments] = true
332
+ end
333
+ default_include_comment_value = options[:include_all_comments]
334
+ include_comment_keys.each do |key|
335
+ options[key] = default_include_comment_value if options[key].nil?
292
336
  end
293
337
  options[:max_line_width] ||= DEFAULT_MAX_LINE_WIDTH
294
338
  options
295
339
  end
296
340
 
341
+ def include_translator_comment?
342
+ @options[:include_translator_comment]
343
+ end
344
+
345
+ def include_extracted_comment?
346
+ @options[:include_extracted_comment]
347
+ end
348
+
349
+ def include_reference_comment?
350
+ @options[:include_reference_comment]
351
+ end
352
+
353
+ def include_flag_comment?
354
+ @options[:include_flag_comment]
355
+ end
356
+
357
+ def include_previous_comment?
358
+ @options[:include_previous_comment]
359
+ end
360
+
361
+ def format_comments
362
+ formatted_comment = ""
363
+ if include_translator_comment?
364
+ formatted_comment << format_translator_comment
365
+ end
366
+ if include_extracted_comment?
367
+ formatted_comment << format_extracted_comment
368
+ end
369
+ if include_reference_comment?
370
+ formatted_comment << format_reference_comment
371
+ end
372
+ if include_flag_comment?
373
+ formatted_comment << format_flag_comment
374
+ end
375
+ if include_previous_comment?
376
+ formatted_comment << format_previous_comment
377
+ end
378
+ formatted_comment
379
+ end
380
+
297
381
  def format_translator_comment
298
382
  format_comment("#", @entry.translator_comment)
299
383
  end
@@ -326,7 +410,11 @@ module GetText
326
410
  end
327
411
 
328
412
  def format_flag_comment
329
- format_comment(FLAG_MARK, @entry.flag)
413
+ formatted_flags = ""
414
+ @entry.flags.each do |flag|
415
+ formatted_flags << format_comment(FLAG_MARK, flag)
416
+ end
417
+ formatted_flags
330
418
  end
331
419
 
332
420
  def format_previous_comment
@@ -365,11 +453,16 @@ module GetText
365
453
  end
366
454
 
367
455
  def format_message(message)
368
- return "\"\"\n" if message.nil?
456
+ empty_formatted_message = "\"\"\n"
457
+ return empty_formatted_message if message.nil?
369
458
 
370
459
  chunks = wrap_message(message)
460
+ return empty_formatted_message if chunks.empty?
461
+
371
462
  formatted_message = ""
372
- formatted_message << "\"\"\n" if chunks.size > 1
463
+ if chunks.size > 1 or chunks.first.end_with?("\n")
464
+ formatted_message << empty_formatted_message
465
+ end
373
466
  chunks.each do |chunk|
374
467
  formatted_message << "\"#{escape(chunk)}\"\n"
375
468
  end
@@ -10,7 +10,7 @@
10
10
 
11
11
  #
12
12
  # DO NOT MODIFY!!!!
13
- # This file is automatically generated by Racc 1.4.9
13
+ # This file is automatically generated by Racc 1.4.11
14
14
  # from Racc grammer file "".
15
15
  #
16
16
 
@@ -64,7 +64,7 @@ module_eval(<<'...end po_parser.ry/module_eval...', 'po_parser.ry', 123)
64
64
  @translator_comments = []
65
65
  @extracted_comments = []
66
66
  @references = []
67
- @flag = []
67
+ @flags = []
68
68
  @previous = []
69
69
  @comments = []
70
70
  @data = data
@@ -139,7 +139,7 @@ module_eval(<<'...end po_parser.ry/module_eval...', 'po_parser.ry', 123)
139
139
  entry = POEntry.new(type)
140
140
  entry.translator_comment = format_comment(@translator_comments)
141
141
  entry.extracted_comment = format_comment(@extracted_comments)
142
- entry.flag = format_comment(@flag)
142
+ entry.flags = @flags
143
143
  entry.previous = format_comment(@previous)
144
144
  entry.references = @references
145
145
  entry.msgctxt = @msgctxt
@@ -159,7 +159,7 @@ module_eval(<<'...end po_parser.ry/module_eval...', 'po_parser.ry', 123)
159
159
  @translator_comments = []
160
160
  @extracted_comments = []
161
161
  @references = []
162
- @flag = []
162
+ @flags = []
163
163
  @previous = []
164
164
  @references = []
165
165
  @comments.clear
@@ -191,7 +191,7 @@ module_eval(<<'...end po_parser.ry/module_eval...', 'po_parser.ry', 123)
191
191
  when POFormat::REFERENCE_COMMENT_MARK
192
192
  @references.concat(parse_references_line(content))
193
193
  when POFormat::FLAG_MARK
194
- @flag << content
194
+ @flags.concat(parse_flags_line(content))
195
195
  when POFormat::PREVIOUS_COMMENT_MARK
196
196
  @previous << content
197
197
  else
@@ -258,6 +258,10 @@ module_eval(<<'...end po_parser.ry/module_eval...', 'po_parser.ry', 123)
258
258
  def parse_references_line(line)
259
259
  line.split(/\s+/)
260
260
  end
261
+
262
+ def parse_flags_line(line)
263
+ line.split(/\s+/)
264
+ end
261
265
  ...end po_parser.ry/module_eval...
262
266
  ##### State transition tables begin ###
263
267
 
@@ -0,0 +1,246 @@
1
+ # Copyright (C) 2014 Kouhei Sutou <kou@clear-code.com>
2
+ #
3
+ # License: Ruby's or LGPL
4
+ #
5
+ # This library is free software: you can redistribute it and/or modify
6
+ # it under the terms of the GNU Lesser General Public License as published by
7
+ # the Free Software Foundation, either version 3 of the License, or
8
+ # (at your option) any later version.
9
+ #
10
+ # This library is distributed in the hope that it will be useful,
11
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
12
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
+ # GNU Lesser General Public License for more details.
14
+ #
15
+ # You should have received a copy of the GNU Lesser General Public License
16
+ # along with this program. If not, see <http://www.gnu.org/licenses/>.
17
+
18
+ require "optparse"
19
+ require "gettext"
20
+ require "gettext/po_parser"
21
+ require "gettext/po"
22
+
23
+ module GetText
24
+ module Tools
25
+ class MsgCat
26
+ class << self
27
+ # (see #run)
28
+ #
29
+ # This method is provided just for convenience. It equals to
30
+ # `new.run(*command_line)`.
31
+ def run(*command_line)
32
+ new.run(*command_line)
33
+ end
34
+ end
35
+
36
+ # Concatenates po-files.
37
+ #
38
+ # @param [Array<String>] command_line
39
+ # The command line arguments for rmsgcat.
40
+ # @return [void]
41
+ def run(*command_line)
42
+ config = Config.new
43
+ config.parse(command_line)
44
+
45
+ parser = POParser.new
46
+ parser.report_warning = config.report_warning?
47
+ parser.ignore_fuzzy = !config.include_fuzzy?
48
+ output_po = PO.new
49
+ output_po.order = config.order
50
+ merger = Merger.new(output_po, config)
51
+ config.pos.each do |po_file_name|
52
+ po = PO.new
53
+ parser.parse_file(po_file_name, po)
54
+ merger.merge(po)
55
+ end
56
+
57
+ output_po_string = output_po.to_s(config.po_format_options)
58
+ if config.output.is_a?(String)
59
+ File.open(File.expand_path(config.output), "w") do |file|
60
+ file.print(output_po_string)
61
+ end
62
+ else
63
+ puts(output_po_string)
64
+ end
65
+ end
66
+
67
+ # @private
68
+ class Merger
69
+ def initialize(output_po, config)
70
+ @output_po = output_po
71
+ @config = config
72
+ end
73
+
74
+ def merge(po)
75
+ po.each do |entry|
76
+ id = [entry.msgctxt, entry.msgid]
77
+ if @output_po.has_key?(*id)
78
+ merged_entry = merge_entry(@output_po[*id], entry)
79
+ else
80
+ merged_entry = entry
81
+ end
82
+ @output_po[*id] = merged_entry if merged_entry
83
+ end
84
+ end
85
+
86
+ private
87
+ def merge_entry(base_entry, new_entry)
88
+ if base_entry.header?
89
+ return merge_header(base_entry, new_entry)
90
+ end
91
+
92
+ if base_entry.fuzzy?
93
+ return merge_fuzzy_entry(base_entry, new_entry)
94
+ end
95
+
96
+ base_entry
97
+ end
98
+
99
+ def merge_header(base_entry, new_entry)
100
+ base_entry
101
+ end
102
+
103
+ def merge_fuzzy_entry(base_entry, new_entry)
104
+ if new_entry.fuzzy?
105
+ base_entry
106
+ else
107
+ new_entry
108
+ end
109
+ end
110
+ end
111
+
112
+ # @private
113
+ class Config
114
+ include GetText
115
+
116
+ bindtextdomain("gettext")
117
+
118
+ # @return [Array<String>] The input PO file names.
119
+ attr_accessor :pos
120
+
121
+ # @return [String] The output file name.
122
+ attr_accessor :output
123
+
124
+ # @return [:reference, :msgid] The sort key.
125
+ attr_accessor :order
126
+
127
+ # @return [Hash] The PO format options.
128
+ # @see PO#to_s
129
+ # @see POEntry#to_s
130
+ attr_accessor :po_format_options
131
+
132
+ # (see include_fuzzy?)
133
+ attr_writer :include_fuzzy
134
+
135
+ # (see report_warning?)
136
+ attr_writer :report_warning
137
+
138
+ def initialize
139
+ @pos = []
140
+ @output = nil
141
+ @order = nil
142
+ @po_format_options = {
143
+ :max_line_width => POEntry::Formatter::DEFAULT_MAX_LINE_WIDTH,
144
+ }
145
+ @include_fuzzy = true
146
+ @report_warning = true
147
+ end
148
+
149
+ # @return [Boolean] Whether includes fuzzy entries or not.
150
+ def include_fuzzy?
151
+ @include_fuzzy
152
+ end
153
+
154
+ # @return [Boolean] Whether reports warning messages or not.
155
+ def report_warning?
156
+ @report_warning
157
+ end
158
+
159
+ def parse(command_line)
160
+ parser = create_option_parser
161
+ @pos = parser.parse(command_line)
162
+ end
163
+
164
+ private
165
+ def create_option_parser
166
+ parser = OptionParser.new
167
+ parser.version = GetText::VERSION
168
+ parser.banner = _("Usage: %s [OPTIONS] PO_FILE1 PO_FILE2 ...") % $0
169
+ parser.separator("")
170
+ parser.separator(_("Concatenates and merges PO files."))
171
+ parser.separator("")
172
+ parser.separator(_("Specific options:"))
173
+
174
+ parser.on("-o", "--output=FILE",
175
+ _("Write output to specified file"),
176
+ _("(default: the standard output)")) do |output|
177
+ @output = output
178
+ end
179
+
180
+ parser.on("--sort-by-msgid",
181
+ _("Sort output by msgid")) do
182
+ @order = :msgid
183
+ end
184
+
185
+ parser.on("--sort-by-location",
186
+ _("Sort output by location")) do
187
+ @order = :reference
188
+ end
189
+
190
+ parser.on("--sort-by-file",
191
+ _("Sort output by location"),
192
+ _("It is same as --sort-by-location"),
193
+ _("Just for GNU gettext's msgcat compatibility")) do
194
+ @order = :reference
195
+ end
196
+
197
+ parser.on("--[no-]sort-output",
198
+ _("Sort output by msgid"),
199
+ _("It is same as --sort-by-msgid"),
200
+ _("Just for GNU gettext's msgcat compatibility")) do |sort|
201
+ @order = sort ? :msgid : nil
202
+ end
203
+
204
+ parser.on("--no-location",
205
+ _("Remove location information")) do |boolean|
206
+ @po_format_options[:include_reference_comment] = boolean
207
+ end
208
+
209
+ parser.on("--no-all-comments",
210
+ _("Remove all comments")) do |boolean|
211
+ @po_format_options[:include_all_comments] = boolean
212
+ end
213
+
214
+ parser.on("--width=WIDTH", Integer,
215
+ _("Set output page width"),
216
+ "(#{@po_format_options[:max_line_width]})") do |width|
217
+ @po_format_options[:max_line_width] = width
218
+ end
219
+
220
+ parser.on("--[no-]wrap",
221
+ _("Break long message lines, longer than the output page width, into several lines"),
222
+ "(#{@po_format_options[:max_line_width] >= 0})") do |wrap|
223
+ if wrap
224
+ max_line_width = POEntry::Formatter::DEFAULT_MAX_LINE_WIDTH
225
+ else
226
+ max_line_width = -1
227
+ end
228
+ @po_format_options[:max_line_width] = max_line_width
229
+ end
230
+
231
+ parser.on("--no-fuzzy",
232
+ _("Ignore fuzzy entries")) do |include_fuzzy|
233
+ @include_fuzzy = include_fuzzy
234
+ end
235
+
236
+ parser.on("--no-report-warning",
237
+ _("Don't report warning messages")) do |report_warning|
238
+ @report_warning = report_warning
239
+ end
240
+
241
+ parser
242
+ end
243
+ end
244
+ end
245
+ end
246
+ end