Sha256: a1987473b4506d0af776380b2edf416bea3726e326b3862471303af59dbac591
Contents?: true
Size: 1.81 KB
Versions: 1
Compression:
Stored size: 1.81 KB
Contents
module I18nAdminUtils class SearchTranslation #Regex that match plain text in html HTML_PLAIN_TEXT_REGEX = /(?<=>)(([^><])+)(?=<)/ def self.search results = find_translation check_results(results) end def self.find_translation results = SearchResult.new dirs = I18nAdminUtils::Config.search_folders dirs.each do |dir| Dir.glob("#{dir}/**/*.*").each do |filename| i = 1 File.open(filename).each_line do |line| line.scan(/t\(("(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*')\)/).each do |result| key = result[0][1...-1] results << {:key => key, :filename => filename, :line => i} end i += 1 end end end results end def self.check_results(results) output = SearchResult.new results.each do |result| key = result[:key] I18nAdminUtils::Config.locales.each do |locale| if I18n.t(key, :locale => locale, :default => 'empty') == 'empty' copy_result = result.clone copy_result[:locale] = locale output << copy_result end end end output end def self.find_plain_text results = SearchResult.new dirs = I18nAdminUtils::Config.search_folders dirs.each do |dir| Dir.glob("#{dir}/**/*.*").each do |filename| results += find_plain_text_in_file(filename) end end results end def self.find_plain_text_in_file(filename) results = SearchResult.new File.open(filename).read.scan(HTML_PLAIN_TEXT_REGEX).each do |result| results << {:key => result[0], :filename => filename} unless result[0].blank? end results end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
i18n_admin_utils-1.0.0 | lib/i18n_admin_utils/search_translation.rb |