Sha256: bd930cb1d3f8bd24daedcd9700d2e8d2af6a771070f939a5a8ea869c4f5a0025

Contents?: true

Size: 1.1 KB

Versions: 1

Compression:

Stored size: 1.1 KB

Contents

require "i18n_screwdriver/version"
require "i18n_screwdriver/translation"
require "i18n_screwdriver/rails"

module I18nScrewdriver
  def self.filename(locale)
    "config/locales/application.#{locale}.yml"
  end

  def self.for_key(string)
    Digest::MD5.hexdigest(string.strip)
  end

  def self.load_translations(locale)
    filename = self.filename(locale)
    raise "File #{filename} not found!" unless File.exists?(filename)
    YAML.load_file(filename)[locale]
  end

  def self.write_translations(locale, translations)
    File.open(filename(locale), "w") do |file|
      file.puts "# use rake task i18n:update to generate this file"
      file.puts
      file.puts({locale => in_utf8(translations)}.to_yaml)
      file.puts
    end
  end

  def self.grab_texts_to_be_translated(string)
    [].tap do |texts|
      texts.concat(string.scan(/_\("([^"]+)"\)/).map{ |v| v[0] })
      texts.concat(string.scan(/_\('([^']+)'\)/).map{ |v| v[0] })
    end
  end

  def self.in_utf8(hash)
    {}.tap do |result|
      hash.each do |k, v|
        result[k.encode('UTF-8')] = (v || "").encode('UTF-8')
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
i18n_screwdriver-2.0.0 lib/i18n_screwdriver.rb