Godwin
8 years ago
15 changed files with 347 additions and 516 deletions
@ -1,263 +0,0 @@ |
|||
# require 'i18n/backend/active_record' |
|||
# require 'yaml' |
|||
|
|||
# if Rails.env.test? |
|||
# class DevTranslation < Translation |
|||
# self.table_name = 'translations' |
|||
# establish_connection :development |
|||
# end |
|||
# end |
|||
|
|||
# module I18n |
|||
# class MissingTranslationExceptionHandler < ExceptionHandler |
|||
# def self.lorem_ipsum(method, size) |
|||
# options = {:random => true} |
|||
# case method.to_s |
|||
# when 'c', 'char', 'character', 'characters' |
|||
# if size |
|||
# return (Forgery::LoremIpsum.characters size, options).capitalize |
|||
# end |
|||
# return Forgery::LoremIpsum.character, options |
|||
# when 'w', 'word', 'words' |
|||
# if size |
|||
# return (Forgery::LoremIpsum.words size, options).capitalize |
|||
# end |
|||
# #return'LOREM' |
|||
# return (Forgery::LoremIpsum.word options).capitalize |
|||
# when 's', 'sentence', 'sentences' |
|||
# if size |
|||
# return Forgery::LoremIpsum.sentences size, options |
|||
# end |
|||
# return (Forgery::LoremIpsum.sentence options).capitalize |
|||
# when 'p', 'paragraph', 'paragraphs' |
|||
# if size |
|||
# return Forgery::LoremIpsum.paragraphs size, options.merge({:sentences => 10}) |
|||
# end |
|||
# return Forgery::LoremIpsum.sentences 10, options |
|||
# when 't', 'title' |
|||
# return (Forgery::LoremIpsum.sentences 1, options).capitalize |
|||
# end |
|||
# return method |
|||
# end |
|||
|
|||
# def self.note(key, behavior = nil, behavior_size = nil) |
|||
# I18n.backend.needs_translation(key) |
|||
# if behavior |
|||
# if behavior.to_s == 'strict' |
|||
# return nil |
|||
# end |
|||
# return self.lorem_ipsum(behavior, behavior_size) |
|||
# end |
|||
# #key.to_s.gsub(/^world\..*\.(.+)\.name$/, '\1').gsub(/^.*\.(.+)?$/, '\1').gsub('_', ' ') |
|||
# key.to_s.gsub(/^world\.(.+)\.name$/, '\1').gsub(/^.*\.(.+)?$/, '\1').gsub('_', ' ') |
|||
# end |
|||
|
|||
# def call(exception, locale, key, options) |
|||
# if exception.is_a?(MissingTranslation) |
|||
# I18n::MissingTranslationExceptionHandler.note(key, options[:behavior] || nil, options[:behavior_size] || nil) |
|||
# else |
|||
# super |
|||
# end |
|||
# end |
|||
# end |
|||
|
|||
# module Backend |
|||
# class BikeBike < I18n::Backend::ActiveRecord |
|||
# @@needs_translation |
|||
|
|||
# @@translations_file = 'config/locales/translation-info.yml' |
|||
# @@translation_cache_file = 'config/locales/.translation-cache.yml' |
|||
# @@pluralization_rules_file = 'config/locales/pluralization-rules.yml' |
|||
# @@translation_cache |
|||
# @@testing_started = false |
|||
# @@hosts |
|||
|
|||
# def self.init_tests!(new_translations = nil) |
|||
# if Rails.env.test? |
|||
# if !@@testing_started |
|||
# @@testing_started = true |
|||
# File.open(@@translations_file, 'w+') |
|||
# File.open(@@translation_cache_file, 'w+') |
|||
# end |
|||
# if !new_translations.nil? |
|||
# record_translation(new_translations) |
|||
# end |
|||
# end |
|||
# end |
|||
|
|||
# def needs_translation(key) |
|||
# @@needs_translation ||= Array.new |
|||
# @@needs_translation << key |
|||
# end |
|||
|
|||
# def translate_control(translation) |
|||
# @@translationsOnThisPage = true |
|||
# datakeys = '' |
|||
# translation['vars'].each { |key, value| datakeys += ' data-var-' + key.to_s + '="' + value.to_s.gsub('"', '"') + '"' } |
|||
# ('<span class="translate-me ' + (translation['is_translated'] ? '' : 'un') + 'translated lang-' + (translation['lang']) + ' key--' + translation['key'].gsub('.', '--') + '" data-translate-key="' + translation['key'] + '" data-translate-untranslated="' + translation['untranslated'].gsub('"', '"') + (translation['translated'] ? '" data-translate-translated="' + translation['translated'] : '') + '" data-vars="' + (translation['vars'].length ? translation['vars'].to_json.gsub('"', '"') : '') + '" title="' + ('translate.alt_click') + '">' + (translation['html'] || translation['untranslated']) + '</span>').to_s.html_safe |
|||
# end |
|||
|
|||
# def initialized? |
|||
# begin |
|||
# super |
|||
# rescue |
|||
# return false |
|||
# end |
|||
# end |
|||
|
|||
# def initialize |
|||
# if !File.exist?(@@translation_cache_file) |
|||
# File.open(@@translation_cache_file, 'w+') |
|||
# end |
|||
# @@translation_cache = YAML.load(File.read(@@translation_cache_file)) || Hash.new |
|||
# super |
|||
# end |
|||
|
|||
# def get_translation_info() |
|||
# begin |
|||
# YAML.load_file(@@translations_file) || {} |
|||
# rescue Exception => e |
|||
# # sometimes concurrency issues cause an exception during testing |
|||
# sleep(1/2.0) |
|||
# get_translation_info() |
|||
# end |
|||
# end |
|||
|
|||
# def get_pluralization_rules(locale) |
|||
# rules = YAML.load_file(@@pluralization_rules_file) |
|||
# rules[locale.to_sym] |
|||
# end |
|||
|
|||
# def get_language_codes() |
|||
# YAML.load_file(@@pluralization_rules_file).keys |
|||
# end |
|||
|
|||
# def set_locale(host) |
|||
# @@hosts ||= Hash.new |
|||
# default = I18n.default_locale.to_s |
|||
# lang = @@hosts[host] |
|||
# if lang === false |
|||
# lang = nil |
|||
# elsif lang.nil? |
|||
# if (lang = host.gsub(/^(dev|test|www)[\-\.](.*)$/, '\2').gsub(/^(([^\.]+)\.)?[^\.]+\.[^\.]+$/, '\2')).blank? || (host == "localhost") |
|||
# lang = default |
|||
# end |
|||
# if get_language_codes().include? lang |
|||
# if !language_enabled? lang |
|||
# I18n.locale = default |
|||
# return lang |
|||
# end |
|||
# else |
|||
# lang = nil |
|||
# end |
|||
# end |
|||
# I18n.locale = default unless lang.present? |
|||
# # return nil if the language doesn exist, false if it is not enabled, or the code if it is enabled |
|||
# lang.present? ? true : false |
|||
# end |
|||
|
|||
# def get_language_completion(lang) |
|||
# total = 0 |
|||
# complete = 0 |
|||
# get_translation_info().each { |k,v| |
|||
# total += 1 |
|||
# complete += v['languages'].include?(lang.to_s) ? 1 : 0 |
|||
# } |
|||
# (total ? complete / total.to_f : 0.0) * 100.0 |
|||
# end |
|||
|
|||
# def language_enabled?(lang) |
|||
# lang.to_s == I18n.default_locale.to_s || get_language_completion(lang) > 66 |
|||
# end |
|||
|
|||
# def request_translation(key, vars, options) |
|||
# locale = options[:locale].to_s |
|||
# options[:locale] = :en |
|||
# translation = I18n.translate(key, vars, options) |
|||
# result = JSON.load(open("http://translate.google.com/translate_a/t?client=t&text=#{URI::escape(translation)}&hl=en&sl=en&tl=#{locale}&ie=UTF-8&oe=UTF-8&multires=1&otf=1&ssel=3&tsel=3&sc=1").read().gsub(/,+/, ',').gsub(/\[,+/, '[').gsub(/,+\]/, ']')) |
|||
# while result.is_a?(Array) |
|||
# result = result[0] |
|||
# end |
|||
# return result |
|||
# end |
|||
|
|||
# def record_translation(key) |
|||
# translations = get_translation_info() |
|||
# translations ||= Hash.new |
|||
|
|||
# if key.is_a(Array) |
|||
# key.each { |k| translations[k.to_s] ||= Hash.new } |
|||
# else |
|||
# translations[key.to_s] ||= Hash.new |
|||
# end |
|||
# File.open(@@translations_file, 'w') { |f| f.write translations.to_yaml } |
|||
# end |
|||
|
|||
# protected |
|||
# def lookup(locale, key, scope = [], options = {}) |
|||
# result = nil |
|||
|
|||
# if key.is_a?(String) |
|||
# key = key.gsub(/(^\[|\])/, '').gsub(/\[/, '.') |
|||
# end |
|||
|
|||
# if @@translation_cache && @@translation_cache.has_key?(locale.to_s) && @@translation_cache[locale.to_s].has_key?(key.to_s) |
|||
# result = @@translation_cache[locale.to_s][key.to_s] |
|||
# end |
|||
# if !result |
|||
# result = super(locale, key, scope, options) |
|||
|
|||
# if Rails.env.test? && options[:behavior].to_s != 'scrict' |
|||
# if result |
|||
# @@translation_cache[locale.to_s] ||= Hash.new |
|||
# @@translation_cache[locale.to_s][key.to_s] = result |
|||
# File.open(@@translation_cache_file, 'w') { |f| f.write @@translation_cache.to_yaml } |
|||
# end |
|||
|
|||
# translations = get_translation_info() |
|||
# translations ||= Hash.new |
|||
# translations[key.to_s] ||= Hash.new |
|||
# translations[key.to_s]['languages'] ||= Array.new |
|||
# translations[key.to_s]['pages'] ||= Array.new |
|||
# if options['behavior'] |
|||
# translations[key.to_s]['behavior'] ||= options['behavior'] |
|||
# end |
|||
# vars = [] |
|||
# options.each { |o,v| |
|||
# if !I18n::RESERVED_KEYS.include?(o.to_sym) && o.to_s != 'behavior' && o.to_s != 'behavior_size' |
|||
# vars << o.to_sym |
|||
# end |
|||
# } |
|||
# if vars.size() > 0 |
|||
# translations[key.to_s]['vars'] = vars |
|||
# end |
|||
# unless translations[key.to_s].has_key?('data') |
|||
# translations[key.to_s]['data'] = Array.new |
|||
# DevTranslation.where("key = '#{key.to_s}' OR key LIKE '#{key.to_s}#{I18n::Backend::Flatten::FLATTEN_SEPARATOR}%'").each { |t| |
|||
# translations[key.to_s]['data'] << ActiveSupport::JSON.encode(t.becomes(Translation)) |
|||
# unless translations[key.to_s]['languages'].include?(t.locale.to_s) |
|||
# translations[key.to_s]['languages'] << t.locale.to_s |
|||
# end |
|||
# } |
|||
# end |
|||
# path = $page_info[:path] |
|||
# route = nil |
|||
# Rails.application.routes.routes.each { |r| |
|||
# if !route && r.path.match(path) |
|||
# route = r.path.spec.to_s.gsub(/\s*\(\.:\w+\)\s*$/, '') |
|||
# end |
|||
# } |
|||
# unless translations[key.to_s]['pages'].include?(route) |
|||
# translations[key.to_s]['pages'] << route |
|||
# end |
|||
# File.open(@@translations_file, 'w') { |f| f.write translations.to_yaml } |
|||
# end |
|||
# end |
|||
|
|||
# result |
|||
# end |
|||
# end |
|||
# end |
|||
# end |
|||
|
|||
# I18n.exception_handler = I18n::MissingTranslationExceptionHandler.new |
Loading…
Reference in new issue