class RDoc::Generator::POT::POEntry
PO 中的一个 PO 条目
属性
extracted_comment[R]
从源文件中提取的注释内容
flags[R]
PO 条目的标志
msgid[R]
msgid 内容
msgstr[R]
msgstr 内容
references[R]
提取 PO 条目的位置
translator_comment[R]
翻译人员(PO 编辑器)创建的注释内容
公共类方法
new(msgid, options = {}) 点击以切换源代码
为 msgid
创建一个 PO 条目。其他值可以通过 options
指定。
# File rdoc/generator/pot/po_entry.rb, line 29 def initialize msgid, options = {} @msgid = msgid @msgstr = options[:msgstr] || "" @translator_comment = options[:translator_comment] @extracted_comment = options[:extracted_comment] @references = options[:references] || [] @flags = options[:flags] || [] end
公共实例方法
merge(other_entry) 点击以切换源代码
将 PO 条目与 other_entry
合并。
# File rdoc/generator/pot/po_entry.rb, line 56 def merge other_entry options = { :extracted_comment => merge_string(@extracted_comment, other_entry.extracted_comment), :translator_comment => merge_string(@translator_comment, other_entry.translator_comment), :references => merge_array(@references, other_entry.references), :flags => merge_array(@flags, other_entry.flags), } self.class.new(@msgid, options) end
to_s() 点击以切换源代码
以 PO 格式返回 PO 条目。
# File rdoc/generator/pot/po_entry.rb, line 41 def to_s entry = '' entry += format_translator_comment entry += format_extracted_comment entry += format_references entry += format_flags entry += <<-ENTRY msgid #{format_message(@msgid)} msgstr #{format_message(@msgstr)} ENTRY end
私有实例方法
escape(string) 点击以切换源代码
# File rdoc/generator/pot/po_entry.rb, line 120 def escape string string.gsub(/["\\\t\n]/) do |special_character| case special_character when "\t" "\\t" when "\n" "\\n" else "\\#{special_character}" end end end
format_comment(mark, comment) 点击以切换源代码
# File rdoc/generator/pot/po_entry.rb, line 72 def format_comment mark, comment return '' unless comment return '' if comment.empty? formatted_comment = '' comment.each_line do |line| formatted_comment += "#{mark} #{line}" end formatted_comment += "\n" unless formatted_comment.end_with?("\n") formatted_comment end
format_extracted_comment() 点击以切换源代码
# File rdoc/generator/pot/po_entry.rb, line 88 def format_extracted_comment format_comment('#.', @extracted_comment) end
format_flags() 点击以切换源代码
# File rdoc/generator/pot/po_entry.rb, line 102 def format_flags return '' if @flags.empty? formatted_flags = flags.join(",") "\#, #{formatted_flags}\n" end
format_message(message) 点击以切换源代码
# File rdoc/generator/pot/po_entry.rb, line 109 def format_message message return "\"#{escape(message)}\"" unless message.include?("\n") formatted_message = '""' message.each_line do |line| formatted_message += "\n" formatted_message += "\"#{escape(line)}\"" end formatted_message end
format_references() 点击以切换源代码
# File rdoc/generator/pot/po_entry.rb, line 92 def format_references return '' if @references.empty? formatted_references = '' @references.sort.each do |file, line| formatted_references += "\#: #{file}:#{line}\n" end formatted_references end
format_translator_comment() 点击以切换源代码
# File rdoc/generator/pot/po_entry.rb, line 84 def format_translator_comment format_comment('#', @translator_comment) end
merge_array(array1, array2) 点击以切换源代码
# File rdoc/generator/pot/po_entry.rb, line 137 def merge_array array1, array2 (array1 + array2).uniq end
merge_string(string1, string2) 点击以切换源代码
# File rdoc/generator/pot/po_entry.rb, line 133 def merge_string string1, string2 [string1, string2].compact.join("\n") end