Class: Any2Tmx::TmxWriter

Inherits:
Object
  • Object
show all
Defined in:
lib/any2tmx/tmx_writer.rb

Class Method Summary collapse

Class Method Details

.write(trans_map, source_locale, target_locale, io) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/any2tmx/tmx_writer.rb', line 6

def write(trans_map, source_locale, target_locale, io)
  writer = XmlWriteStream.from_stream(io)
  writer.open_tag('tmx', version: '1.4')
  writer.open_single_line_tag('header', srclang: source_locale, datatype: 'plaintext', segtype: 'paragraph')
  writer.close_tag

  writer.open_tag('body')

  trans_map.each_pair do |source_phrase, target_phrase|
    writer.open_tag('tu')
    writer.open_tag('tuv', 'xml:lang' => source_locale)
    writer.open_single_line_tag('seg')
    writer.write_text(source_phrase)
    writer.close_tag  # seg
    writer.close_tag  # tuv

    writer.open_tag('tuv', 'xml:lang' => target_locale)
    writer.open_single_line_tag('seg')
    writer.write_text(target_phrase)
    writer.close_tag  # seg
    writer.close_tag  # tuv
    writer.close_tag  # tu
  end

  writer.close
end