Initial import

This commit is contained in:
2008-03-02 16:04:34 -03:00
commit 5e4951fa47
798 changed files with 59730 additions and 0 deletions

View File

@@ -0,0 +1,10 @@
require 'gibberish/localize'
require 'gibberish/string_ext'
require 'gibberish/activerecord_ext'
String.send :include, Gibberish::StringExt
module Gibberish
extend Localize
end

View File

@@ -0,0 +1,20 @@
module ActiveRecord
class Errors
def full_messages
full_messages = []
@errors.each_key do |attr|
@errors[attr].each do |msg|
next if msg.nil?
if attr == "base"
full_messages << msg
else
full_messages << @base.class.human_attribute_name(attr.send("[]")) + " " + msg
end
end
end
full_messages
end
end
end

View File

@@ -0,0 +1,70 @@
module Gibberish
module Localize
@@default_language = :en
mattr_reader :default_language
@@reserved_keys = [ :limit ]
mattr_reader :reserved_keys
def add_reserved_key(*key)
(@@reserved_keys += key.flatten).uniq!
end
alias :add_reserved_keys :add_reserved_key
@@languages = {}
def languages
@@languages.keys
end
@@current_language = nil
def current_language
@@current_language || default_language
end
def current_language=(language)
load_languages! if defined? RAILS_ENV && RAILS_ENV == 'development'
language = language.to_sym if language.respond_to? :to_sym
@@current_language = @@languages[language] ? language : nil
end
def use_language(language)
start_language = current_language
self.current_language = language
yield
self.current_language = start_language
end
def default_language?
current_language == default_language
end
def translations
@@languages[current_language] || {}
end
def translate(string, key, *args)
return if reserved_keys.include? key
File.open("#{RAILS_ROOT}/lang/tmp_keys", "a").puts key if ENV['GIBBERISH_EXPORT']
target = translations[key] || string
interpolate_string(target.dup, *args.dup)
end
def load_languages!
language_files.each do |file|
key = File.basename(file, '.*').to_sym
@@languages[key] = YAML.load_file(file).symbolize_keys
end
languages
end
private
def interpolate_string(string, *args)
string.gsub(/\{\w+\}/) { args.shift }
end
def language_files
Dir[File.join(RAILS_ROOT, 'lang', '*.{yml,yaml}')]
end
end
end

View File

@@ -0,0 +1,17 @@
module Gibberish
module StringExt
def brackets_with_translation(*args)
args = [underscore.tr(' ', '_').to_sym] if args.empty?
return brackets_without_translation(*args) unless args.first.is_a? Symbol
Gibberish.translate(self, args.shift, *args)
end
def self.included(base)
base.class_eval do
alias :brackets :[]
alias_method_chain :brackets, :translation
alias :[] :brackets
end
end
end
end