Class: GetText::POEntry
- Inherits:
-
Object
- Object
- GetText::POEntry
- Includes:
- POEntryForRubyParser
- Defined in:
- lib/gettext/po_entry.rb,
lib/gettext/tools/parser/ruby.rb
Overview
Contains data related to the expression or sentence that is to be translated.
Defined Under Namespace
Classes: Formatter, InvalidTypeError, NoMsgctxtError, NoMsgidError, NoMsgidPluralError
Constant Summary collapse
- PARAMS =
{ :normal => [:msgid, :separator, :msgstr], :plural => [:msgid, :msgid_plural, :separator, :msgstr], :msgctxt => [:msgctxt, :msgid, :msgstr], :msgctxt_plural => [:msgctxt, :msgid, :msgid_plural, :msgstr] }
Instance Attribute Summary collapse
-
#comment ⇒ Object
Returns the value of attribute comment.
-
#extracted_comment ⇒ Object
Returns the value of attribute extracted_comment.
-
#flag ⇒ Object
Returns the value of attribute flag.
-
#msgctxt ⇒ Object
Returns the value of attribute msgctxt.
-
#msgid ⇒ Object
Returns the value of attribute msgid.
-
#msgid_plural ⇒ Object
Options.
-
#msgstr ⇒ Object
Returns the value of attribute msgstr.
-
#previous ⇒ Object
Returns the value of attribute previous.
-
#references ⇒ Object
["file1:line1", "file2:line2", ...].
-
#separator ⇒ Object
Returns the value of attribute separator.
-
#translator_comment ⇒ Object
Returns the value of attribute translator_comment.
-
#type ⇒ Object
Required.
Instance Method Summary collapse
-
#==(other) ⇒ Object
Checks if the self has same attributes as other.
- #[](number) ⇒ Object
-
#add_comment(new_comment) ⇒ void
Support for extracted comments.
-
#header? ⇒ Boolean
True if the entry is header entry, false otherwise.
-
#initialize(type) ⇒ POEntry
constructor
Create the object.
-
#initialize_old ⇒ POEntry
Create the object.
-
#merge(other) ⇒ Object
Merges two translation targets with the same msgid and returns the merged result.
-
#mergeable?(other) ⇒ Boolean
Checks if the other translation target is mergeable with the current one.
-
#msgctxt? ⇒ Boolean
Returns true if the type is kind of msgctxt.
-
#obsolete? ⇒ Boolean
True if the entry is obsolete entry, false otherwise.
-
#plural? ⇒ Boolean
Returns true if the type is kind of plural.
-
#to_s(options = {}) ⇒ Object
Format the po entry in PO format.
Methods included from POEntryForRubyParser
#advance_to_next_attribute, #init_param, #set_current_attribute
Constructor Details
#initialize(type) ⇒ POEntry
Create the object. +type+ should be :normal, :plural, :msgctxt or :msgctxt_plural.
66 67 68 69 70 71 72 73 74 75 76 77 |
# File 'lib/gettext/po_entry.rb', line 66 def initialize(type) self.type = type @translator_comment = nil @extracted_comment = nil @references = [] @flag = nil @previous = nil @msgctxt = nil @msgid = nil @msgid_plural = nil @msgstr = nil end |
Instance Attribute Details
#comment ⇒ Object
Returns the value of attribute comment.
63 64 65 |
# File 'lib/gettext/po_entry.rb', line 63 def comment @comment end |
#extracted_comment ⇒ Object
Returns the value of attribute extracted_comment.
60 61 62 |
# File 'lib/gettext/po_entry.rb', line 60 def extracted_comment @extracted_comment end |
#flag ⇒ Object
Returns the value of attribute flag.
61 62 63 |
# File 'lib/gettext/po_entry.rb', line 61 def flag @flag end |
#msgctxt ⇒ Object
Returns the value of attribute msgctxt.
57 58 59 |
# File 'lib/gettext/po_entry.rb', line 57 def msgctxt @msgctxt end |
#msgid ⇒ Object
Returns the value of attribute msgid.
52 53 54 |
# File 'lib/gettext/po_entry.rb', line 52 def msgid @msgid end |
#msgid_plural ⇒ Object
Options
55 56 57 |
# File 'lib/gettext/po_entry.rb', line 55 def msgid_plural @msgid_plural end |
#msgstr ⇒ Object
Returns the value of attribute msgstr.
53 54 55 |
# File 'lib/gettext/po_entry.rb', line 53 def msgstr @msgstr end |
#previous ⇒ Object
Returns the value of attribute previous.
62 63 64 |
# File 'lib/gettext/po_entry.rb', line 62 def previous @previous end |
#references ⇒ Object
["file1:line1", "file2:line2", ...]
58 59 60 |
# File 'lib/gettext/po_entry.rb', line 58 def references @references end |
#separator ⇒ Object
Returns the value of attribute separator.
56 57 58 |
# File 'lib/gettext/po_entry.rb', line 56 def separator @separator end |
#translator_comment ⇒ Object
Returns the value of attribute translator_comment.
59 60 61 |
# File 'lib/gettext/po_entry.rb', line 59 def translator_comment @translator_comment end |
#type ⇒ Object
Required
51 52 53 |
# File 'lib/gettext/po_entry.rb', line 51 def type @type end |
Instance Method Details
#==(other) ⇒ Object
Checks if the self has same attributes as other.
91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 |
# File 'lib/gettext/po_entry.rb', line 91 def ==(other) not other.nil? and type == other.type and msgid == other.msgid and msgstr == other.msgstr and msgid_plural == other.msgid_plural and separator == other.separator and msgctxt == other.msgctxt and translator_comment == other.translator_comment and extracted_comment == other.extracted_comment and references == other.references and flag == other.flag and previous == other.previous and comment == other.comment end |
#[](number) ⇒ Object
180 181 182 183 184 |
# File 'lib/gettext/po_entry.rb', line 180 def [](number) param = @param_type[number] raise ParseError, 'no more string parameters expected' unless param send param end |
#add_comment(new_comment) ⇒ void
This method returns an undefined value.
Support for extracted comments. Explanation s. http://www.gnu.org/software/gettext/manual/gettext.html#Names
82 83 84 85 86 87 88 |
# File 'lib/gettext/po_entry.rb', line 82 def add_comment(new_comment) if (new_comment and ! new_comment.empty?) @extracted_comment ||= "" @extracted_comment << "\n" unless @extracted_comment.empty? @extracted_comment << new_comment end end |
#header? ⇒ Boolean
Returns true if the entry is header entry, false otherwise. Header entry is normal type and has empty msgid.
170 171 172 |
# File 'lib/gettext/po_entry.rb', line 170 def header? @type == :normal and @msgid == "" end |
#initialize_old ⇒ POEntry
Create the object. +type+ should be :normal, :plural, :msgctxt or :msgctxt_plural.
104 105 106 107 108 109 110 111 112 113 114 115 |
# File 'lib/gettext/tools/parser/ruby.rb', line 104 def initialize(type) self.type = type @translator_comment = nil @extracted_comment = nil @references = [] @flag = nil @previous = nil @msgctxt = nil @msgid = nil @msgid_plural = nil @msgstr = nil end |
#merge(other) ⇒ Object
Merges two translation targets with the same msgid and returns the merged result. If one is declared as plural and the other not, then the one with the plural wins.
124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 |
# File 'lib/gettext/po_entry.rb', line 124 def merge(other) return self unless other unless mergeable?(other) = "Translation targets do not match: \n" + " self: #{self.inspect}\n other: '#{other.inspect}'" raise ParseError, end if other.msgid_plural && !msgid_plural res = other unless res.references.include?(references[0]) res.references += references res.add_comment(extracted_comment) end else res = self unless res.references.include?(other.references[0]) res.references += other.references res.add_comment(other.extracted_comment) end end res end |
#mergeable?(other) ⇒ Boolean
Checks if the other translation target is mergeable with the current one. Relevant are msgid and translation context (msgctxt).
117 118 119 |
# File 'lib/gettext/po_entry.rb', line 117 def mergeable?(other) other && other.msgid == self.msgid && other.msgctxt == self.msgctxt end |
#msgctxt? ⇒ Boolean
Returns true if the type is kind of msgctxt.
159 160 161 |
# File 'lib/gettext/po_entry.rb', line 159 def msgctxt? [:msgctxt, :msgctxt_plural].include?(@type) end |
#obsolete? ⇒ Boolean
Returns true if the entry is obsolete entry, false otherwise. Obsolete entry is normal type and has :last msgid.
176 177 178 |
# File 'lib/gettext/po_entry.rb', line 176 def obsolete? @type == :normal and @msgid == :last end |
#plural? ⇒ Boolean
Returns true if the type is kind of plural.
164 165 166 |
# File 'lib/gettext/po_entry.rb', line 164 def plural? [:plural, :msgctxt_plural].include?(@type) end |
#to_s(options = {}) ⇒ Object
Format the po entry in PO format.
151 152 153 154 155 156 |
# File 'lib/gettext/po_entry.rb', line 151 def to_s(={}) raise(NoMsgidError, "msgid is nil.") unless @msgid formatter = Formatter.new(self, ) formatter.format end |