lib/babelyoda.rb in babelyoda-2.1.20 vs lib/babelyoda.rb in babelyoda-2.2.0
- old
+ new
@@ -6,10 +6,12 @@
require_relative 'babelyoda/genstrings'
require_relative 'babelyoda/git'
require_relative 'babelyoda/ibtool'
require_relative 'babelyoda/keyset'
require_relative 'babelyoda/localization_key'
+require_relative 'babelyoda/length_checker'
+require_relative 'babelyoda/length_checker_params'
require_relative 'babelyoda/localization_value'
require_relative 'babelyoda/logger'
require_relative 'babelyoda/rake'
require_relative 'babelyoda/specification'
require_relative 'babelyoda/tanker'
@@ -245,21 +247,11 @@
task :pull => [:fetch_strings, :localize_xibs] do
end
desc "Verifies all local translations are present"
task :verify do
- combined_keyset = Babelyoda::Keyset.new('babelyoda.verify')
- spec.strings_files.each do |filename|
- dev_lang_strings = Babelyoda::Strings.new(filename, spec.development_language).read
- combined_keyset.merge!(dev_lang_strings)
- spec.localization_languages.each do |language|
- lang_strings = Babelyoda::Strings.new(File.localized(filename, language), language).read
- combined_keyset.merge!(lang_strings)
- end
- end
- combined_keyset.drop_empty!
-
+ combined_keyset = combined_keyset(spec, 'babelyoda.verify')
count = {}
spec.all_languages.each { |lang| count[lang.to_sym] = 0}
combined_keyset.keys.each_value do |key|
spec.all_languages.each do |lang|
@@ -279,10 +271,27 @@
all_found = false
end
end
exit 1 unless all_found
end
+
+ desc "Checks localizations length"
+ task :check_localizations_length do
+ combined_keyset = combined_keyset(spec, 'babelyoda.check_length')
+ dev_lang = spec.development_language.to_sym
+ params = spec.length_checker_params
+ checker = Babelyoda::LengthChecker.new(dev_lang, params)
+ checker.long_translations(combined_keyset).each_pair do |lang, translations|
+ $logger.warn lang.to_s
+ translations.each do |t|
+ $logger.warn "/* #{t.context} */"
+ $logger.warn "'#{t.text}' >>> '#{t.dev_text}'"
+ $logger.warn ""
+ end
+ $logger.warn ""
+ end
+ end
namespace :remote do
desc "List remote keysets"
task :list do
@@ -318,6 +327,20 @@
if keyset_name.match(/\//)
File.join(File.dirname(keyset_name), "#{lang}.lproj", "#{File.basename(keyset_name)}.strings")
else
File.join("#{lang}.lproj", "#{keyset_name}.strings")
end
+end
+
+def combined_keyset(spec, keyset_name)
+ keyset = Babelyoda::Keyset.new(keyset_name)
+ spec.strings_files.each do |filename|
+ dev_lang_strings = Babelyoda::Strings.new(filename, spec.development_language).read
+ keyset.merge!(dev_lang_strings)
+ spec.localization_languages.each do |language|
+ lang_strings = Babelyoda::Strings.new(File.localized(filename, language), language).read
+ keyset.merge!(lang_strings)
+ end
+ end
+ keyset.drop_empty!
+ keyset
end