class Lokale::Importer::Diff

Attributes

lang[RW]
lstrings[RW]
name[RW]

Public Class Methods

from_file(xliff_path) click to toggle source
# File lib/lokale/agent.rb, line 338
def self.from_file(xliff_path)
  begin
    xliff = XLIFFer::XLIFF.new(File.open(xliff_path))  
  rescue Exception => e
    puts "Failed to parse `#{xliff_path}` file."
  end

  diffs = []

  xliff.files.each do |f|
    next if f.target_language == Config.get.main_lang
    next if f.source_language != Config.get.main_lang 

    diff = Diff.new
    diff.name = f.original
    diff.lang = f.target_language
    diff.lstrings = f.strings
      .map { |s| LString.from_xliff_string(s, f.target_language) }
      .delete_if { |ls| ls.target.nil? }
    next if diff.lstrings.empty?

    diffs << diff
  end
  diffs
end