class GetText::Tools::MsgMerge

Public Class Methods

run(*command_line) click to toggle source

(see run)

This method is provided just for convenience. It equals to `new.run(*command_line)`.

# File lib/gettext/tools/msgmerge.rb, line 36
def run(*command_line)
  new.run(*command_line)
end

Public Instance Methods

run(*command_line) click to toggle source

Merge a po-file inluding translated messages and a new pot-file.

@param [Array<String>] command_line

command line arguments for rmsgmerge.

@return [void]

# File lib/gettext/tools/msgmerge.rb, line 46
def run(*command_line)
  config = Config.new
  config.parse(command_line)

  parser = POParser.new
  parser.ignore_fuzzy = false
  definition_po = PO.new
  reference_pot = PO.new
  parser.parse_file(config.definition_po, definition_po)
  parser.parse_file(config.reference_pot, reference_pot)

  merger = Merger.new(reference_pot, definition_po, config)
  result = merger.merge
  result.order = config.order
  p result if $DEBUG
  print result.generate_po if $DEBUG

  if config.output.is_a?(String)
    File.open(File.expand_path(config.output), "w+") do |file|
      file.write(result.to_s(config.po_format_options))
    end
  else
    puts(result.to_s(config.po_format_options))
  end
end