def []=(*arguments)
case arguments.size
when 2
msgctxt = nil
msgid = arguments[0]
value = arguments[1]
when 3
msgctxt = arguments[0]
msgid = arguments[1]
value = arguments[2]
else
raise(ArgumentError,
"[]=: wrong number of arguments(#{arguments.size} for 2..3)")
end
id = [msgctxt, msgid]
if value.instance_of?(POEntry)
@entries[id] = value
return(value)
end
msgstr = value
if @entries.has_key?(id)
entry = @entries[id]
else
if msgctxt.nil?
entry = POEntry.new(:normal)
else
entry = POEntry.new(:msgctxt)
end
@entries[id] = entry
end
entry.msgctxt = msgctxt
entry.msgid = msgid
entry.msgstr = msgstr
entry
end