gettext 3.0.3 → 3.0.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.
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