module I18n::Backend::Weeler::Exporter::ClassMethods
Public Instance Methods
as_xlsx_package()
click to toggle source
Prepare xlsx package from current scope Stores all translations in translations worksheet.
# File lib/i18n/backend/weeler/exporter.rb, line 31 def as_xlsx_package package = Axlsx::Package.new package.use_shared_strings = true sheet = package.workbook.add_worksheet(name: "translations") locales = I18n.available_locales sheet.add_row(Translation.title_row(locales)) types = [] (locales.size + 1).times { types << :string } included_keys = [] self.current_scope.each do |translation| unless included_keys.include? translation.key sheet.add_row(Translation.translation_row_by_key_and_locales(translation.key, locales), types: types) included_keys << translation.key end end return package end
title_row(locales)
click to toggle source
# File lib/i18n/backend/weeler/exporter.rb, line 54 def title_row locales row = [ 'Key' ] locales.each do |locale| row.push(locale.capitalize) end row end
translation_row_by_key_and_locales(key, locales)
click to toggle source
# File lib/i18n/backend/weeler/exporter.rb, line 62 def translation_row_by_key_and_locales key, locales row = [ key ] locales.each do |locale| result = Translation.locale(locale).lookup(key).load if result.first.present? row.push(result.first.value) else row.push("") end end row end