lib/bisu.rb in bisu-1.0.2 vs lib/bisu.rb in bisu-1.1.0

- old
+ new

@@ -2,20 +2,39 @@ require 'bisu/config' require 'bisu/knowledge_base' require 'bisu/translator' module Bisu - def self.run + extend self + + def run if config = Bisu::Config.parse("translatable.yml") kbase = Bisu::GoogleDriveKB.new(config[:sheet_id], config[:keys_column]) - trans = Bisu::Translator.new(kbase, config[:type]) + translator = Bisu::Translator.new(kbase, config[:type]) config[:in].each do |in_path| config[:out].each do |out| - trans.translate(out[:language], in_path, out[:folder]) + localize(translator, out[:locale], out[:kb_language], in_path, out[:path] || config[:out_path]) end end end Bisu::Logger.print_summary end + + private + + def localize(translator, locale, language, in_path, out_path) + in_name = File.basename(in_path) + out_name = in_name.gsub(/\.translatable$/, "") + + unless in_name.match /\.translatable$/ + Logger.error("Expected .translatable file. Got '#{in_name}'") + return false + end + + out_path = out_path % { locale: locale, out_name: out_name } + + translator.translate(language, locale, in_path, out_path) + end + end