Module: GetText::GladeParser
- Extended by:
- GetText
- Defined in:
- lib/gettext/parser/glade.rb
Constant Summary collapse
- TARGET1 =
/<property.*translatable="yes">(.*)/
- TARGET2 =
/(.*)<\/property>/
- XML_RE =
/<\?xml/
- GLADE_RE =
/glade-2.0.dtd/
Constants included from GetText
Class Method Summary collapse
-
.add_target(val, file, line_no, targets) ⇒ Object
:nodoc:.
-
.parse(file, targets = []) ⇒ Object
:nodoc:.
-
.parse_lines(file, lines, targets) ⇒ Object
from ary of lines.
-
.target?(file) ⇒ Boolean
:nodoc:.
Methods included from GetText
N_, Nn_, bindtextdomain, bindtextdomain_to, cgi, cgi=, create_mofiles, create_mofiles_org, gettext, included, locale, msgmerge, ngettext, npgettext, nsgettext, output_charset, p_, pgettext, remove_bom, rgettext, rmsgfmt, rmsgmerge, set_cgi, set_locale, set_output_charset, sgettext, textdomain, update_pofiles, update_pofiles_org
Class Method Details
.add_target(val, file, line_no, targets) ⇒ Object
:nodoc:
80 81 82 83 84 85 86 87 88 89 90 |
# File 'lib/gettext/parser/glade.rb', line 80 def add_target(val, file, line_no, targets) # :nodoc: return unless val.size > 0 assoc_data = targets.assoc(val) val = CGI.unescapeHTML(val) if assoc_data targets[targets.index(assoc_data)] = assoc_data << "#{file}:#{line_no}" else targets << [val.gsub(/\n/, '\n'), "#{file}:#{line_no}"] end targets end |
.parse(file, targets = []) ⇒ Object
:nodoc:
24 25 26 27 |
# File 'lib/gettext/parser/glade.rb', line 24 def parse(file, targets = []) # :nodoc: lines = IO.readlines(file) parse_lines(file, lines, targets) end |
.parse_lines(file, lines, targets) ⇒ Object
from ary of lines.
30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
# File 'lib/gettext/parser/glade.rb', line 30 def parse_lines(file, lines, targets) # :nodoc: cnt = 0 target = false line_no = 0 val = nil loop do line = lines.shift break unless line cnt += 1 if TARGET1 =~ line line_no = cnt val = $1 + "\n" target = true if TARGET2 =~ $1 val = $1 add_target(val, file, line_no, targets) val = nil target = false end elsif target if TARGET2 =~ line val << $1 add_target(val, file, line_no, targets) val = nil target = false else val << line end end end targets end |
.target?(file) ⇒ Boolean
:nodoc:
68 69 70 71 72 73 74 75 76 77 78 |
# File 'lib/gettext/parser/glade.rb', line 68 def target?(file) # :nodoc: data = IO.readlines(file) if XML_RE =~ data[0] and GLADE_RE =~ data[1] true else if File.extname(file) == '.glade' raise _("`%{file}' is not glade-2.0 format.") % {:file => file} end false end end |