Sha256: e1ee8d0a80a564d8051902247f5436064a6b6cb5b535327f401c073baa2c560f

Contents?: true

Size: 1.63 KB

Versions: 11

Compression:

Stored size: 1.63 KB

Contents

namespace :globalite do
  namespace :localization do

    # Returns a hash with the missing localizations compared to the original locale 
    def missing_localizations(org_base='en-US')
      @langs = {}
      @missing_localizations = {}
      @l_files = Dir[File.join( RAILS_ROOT, '/lang/ui', '*.yml')]
      @l_files.each do |file| 
        if YAML.load_file(file)
          @langs[File.basename(file, '.*')] = YAML.load_file(file).symbolize_keys  
        else
          p "error with the following file: #{file}, the file might be empty"
        end
      end
      @base_keys = @langs[org_base]
      unless @base_keys.blank?
        @langs.each_key do |@lang|
          @base_keys.each_key do |key|
            unless @langs[@lang].include?(key)
              @missing_localizations[@lang] ||= {}
              @missing_localizations[@lang] = @missing_localizations[@lang].merge({key.to_sym => @base_keys[key]})
            end
          end
        end
      else
        p "your #{org_base} file seems empty"
      end
      @missing_localizations
    end

    desc "returns the status of localizations compared to a base locale - rake globalite:localization:status BASE_LOCALE='fr-FR'"
    task :status => :environment do
      @org_base     = ENV['BASE_LOCALE'] || 'en-US'

      @missing_localizations =  missing_localizations(@org_base)
      if @missing_localizations.blank?
        p 'all localization files are up to date'
      else  
        @missing_localizations.each_key do |lang|
          p "#{@missing_localizations[lang].length} translations missing in #{lang}" if @missing_localizations[lang].length > 0
        end  
      end  
    end

  end
end

Version data entries

11 entries across 11 versions & 2 rubygems

Version Path
picolena-0.0.99 app_generators/picolena/templates/vendor/plugins/globalite/tasks/globalite_tasks.rake
picolena-0.1.0 rails_plugins/globalite/tasks/globalite_tasks.rake
picolena-0.1.1 rails_plugins/globalite/tasks/globalite_tasks.rake
picolena-0.1.4 rails_plugins/globalite/tasks/globalite_tasks.rake
picolena-0.1.2 rails_plugins/globalite/tasks/globalite_tasks.rake
picolena-0.1.3 rails_plugins/globalite/tasks/globalite_tasks.rake
picolena-0.1.5 rails_plugins/globalite/tasks/globalite_tasks.rake
spree-0.4.0 vendor/plugins/globalite/tasks/globalite_tasks.rake
spree-0.4.1 vendor/plugins/globalite/tasks/globalite_tasks.rake
spree-0.5.0 vendor/plugins/globalite/tasks/globalite_tasks.rake
spree-0.5.1 vendor/plugins/globalite/tasks/globalite_tasks.rake