File: extract-gettext.rb

package info (click to toggle)
pingus 0.7.6-7
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 31,672 kB
  • sloc: cpp: 42,080; xml: 2,319; lisp: 521; ruby: 455; ansic: 365; objc: 248; sh: 247; makefile: 140; python: 15
file content (43 lines) | stat: -rwxr-xr-x 1,200 bytes parent folder | download | duplicates (9)
1
2
3
4
5
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
32
33
34
35
36
37
38
39
40
41
42
43
#!/usr/bin/ruby -w

require "rexml/document"
require "rexml/xpath"

puts "# SOME DESCRIPTIVE TITLE."
puts "# Copyright (C) YEAR Free Software Foundation, Inc."
puts "# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR."
puts "#"
puts "#, fuzzy"
puts "msgid \"\""
puts "msgstr \"\""
puts "\"Project-Id-Version: PACKAGE VERSION\\n\""
puts "\"PO-Revision-Date: YEAR-MO-DA HO:MI +ZONE\\n\""
puts "\"Last-Translator: FULL NAME <EMAIL@ADDRESS>\\n\""
puts "\"Language-Team: LANGUAGE <LL@li.org>\\n\""
puts "\"MIME-Version: 1.0\\n\""
puts "\"Content-Type: text/plain; charset=UTF-8\\n\""
puts "\"Content-Transfer-Encoding: 8bit\\n\""
puts ""

lang = ARGV[0]
ARGV[1..-1].each{|arg|
  doc = REXML::Document.new(File.new(arg))

  ["/pingus-level/global/description", "/pingus-level/global/levelname"].each{|tree|
    element = REXML::XPath.match(doc, "#{tree}[@lang='en']")
    
    puts "#: #{arg.gsub(/^\.\.\/\.\.\/pingus_0_6\//, "")}"
    puts "msgid \"#{element[0].text.gsub(/\s+/, " ")}\""

    element = REXML::XPath.match(doc, "#{tree}[@lang='#{lang}']")
    if (element.length >= 1)
      puts "msgstr \"#{element[0].text.gsub(/\s+/, " ")}\""    
    else
      puts "msgstr \"\""
    end 

    puts ""
  }
}

# EOF #