require 'nokogiri'

module Konjak
  class Parser
    attr_accessor :gtt

    def initialize(gtt: false)
      @gtt = gtt
    end

    def parse(xml)
      if gtt
        # FIXME
        xml = xml.gsub(/&amp;(#\d+|#x[0-9a-fA-F]+|[0-9a-zA-Z]+);/) { "&#{$1};" }
      end
      doc = Nokogiri::XML.parse(xml)
      Tmx.new doc
    end
  end
end

require 'nokogiri'

module Konjak
  class Parser
    attr_accessor :gtt

    def initialize(gtt: false)
      @gtt = gtt
    end

    def parse(xml)
      if gtt
        # FIXME GTT's tmx store &copy; as &amp;copy;
        xml = xml.gsub(/&amp;(#\d+|#x[0-9a-fA-F]+|[0-9a-zA-Z]+);/) { "&#{$1};" }
        # FIXME GTT's tmx store leading space(\u0020) as non-breaking space(\u00A0)
        xml = xml.gsub("\u00A0", ' ')
      end
      doc = Nokogiri::XML.parse(xml)
      Tmx.new doc
    end
  end
end

Replace \u00A0 -> \u0020 before parse gtt tmx
Replace \u00A0 -> \u0020 before parse gtt tmx

GTTのtmxはsegmentのleading spaceをnon-breaking spaceとして記録しているよ
うだった。本来はseg要素のtext nodeのみを置き換えるべきだが、
通常の文章でnon-breaking spaceが出てくることはなさそうなので、
XMLをパースする前に置き換えてしまう。
