require 'rubygems'
require 'json'
require 'optparse'
options = {}
options[:marker] = true
OptionParser.new do |opts|
opts.banner = "Usage: example.rb [options]"
opts.on("-v", "--[no-]verbose", "Run verbosely") do |v|
options[:verbose] = v
end
opts.on("--no-marker") do |o|
options[:marker] = o
end
end.parse!
puts options
file_names = ['source.html']
translation_hash = JSON.parse(File.read('translation_master.json').force_encoding("ISO-8859-1").encode("utf-8", replace: nil))
file_names.each do |file_name|
to_translate_content = File.read(file_name)
translation_hash.each_key do |language|
if :marker
to_translate_content = to_translate_content.gsub(/localize-marker/, "lang-#{language}")
end
puts "--------------- Processing #{language}-----------"
localized_content = to_translate_content
to_translate_content.scan(/<localize[\s]+id="([\d]+)/).each do |m|
puts "Processing id #{m} for #{language}"
localized_content = localized_content.gsub(/<localize[^\d]+#{m[0]}\D.*?<\/localize>/, translation_hash[language][m[0]])
end
file_name = file_name.gsub(/([^\.]+)\.html/, '\1')
output_file = File.new("output_#{file_name}_#{language}.html", "w")
output_file.puts(localized_content)
output_file.close
end
end