Module: GetText::GladeParser
- Extended by:
- GetText, GladeParser
- Included in:
- GladeParser
- Defined in:
- lib/gettext/tools/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
Instance 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, pgettext, remove_bom, rgettext, rmsgfmt, rmsgmerge, set_cgi, set_current_locale, set_locale, set_output_charset, sgettext, textdomain, textdomain_to, update_pofiles, update_pofiles_org
Instance Method Details
#add_target(val, file, line_no, targets) ⇒ Object
:nodoc:
81 82 83 84 85 86 87 88 89 90 91 |
# File 'lib/gettext/tools/parser/glade.rb', line 81 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:
25 26 27 28 |
# File 'lib/gettext/tools/parser/glade.rb', line 25 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.
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 64 |
# File 'lib/gettext/tools/parser/glade.rb', line 31 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:
69 70 71 72 73 74 75 76 77 78 79 |
# File 'lib/gettext/tools/parser/glade.rb', line 69 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 |