Class | MessageService |
In: |
lib/design_api.rb
|
Parent: | DesignSubService |
book として与えられるデータで po_messages および po_translations を置き換える。
# File lib/design_api.rb, line 751 751: def export(book) 752: hash = Language.to_h 753: mids = [] 754: tids = [] 755: book.main_sheet.messages.each do |message| 756: msgid = message.message_msgid 757: po_message = PoMessageSingular.find_by_msgctxt_and_msgid("Application|", msgid) 758: unless po_message 759: # added newly msgid. 760: po_message = PoMessageSingular.create!(:domain_id => book.client_identifier_y, 761: :msgctxt => "Application|", 762: :msgid => msgid) 763: end 764: mids << po_message.id 765: # update po_messages. 766: message.message_values.each do |value| 767: klass = "PoTranslation#{hash[value.language_id].to_s.camelize}".constantize 768: if po_translation = klass.find_by_po_message_id(po_message.id) 769: # update the existing msgstr. 770: po_translation.msgstr = value.message_value 771: po_translation.save! 772: else 773: # added newly msgstr. 774: po_translation = klass.create!(:domain_id => book.client_identifier_y, 775: :po_message_id => po_message.id, 776: :msgstr => value.message_value) 777: end 778: tids << po_translation.id 779: end 780: end 781: emids = PoMessageSingular.find(:all, :conditions => {:msgctxt => "Application|"}, :order => "id").map(&:id) 782: PoMessageSingular.delete(emids - mids) 783: etids = PoTranslation.find(:all, :conditions => {:po_message_id => emids}, :order => "id").map(&:id) 784: PoTranslation.delete(etids - tids) 785: return PoMessageSingular.to_book.succeed 786: end