First stage of i18n. Some migrations and extra plugins.
This commit is contained in:
parent
6ac7f91734
commit
53b4d645d8
82 changed files with 6876 additions and 18 deletions
89
vendor/plugins/rails-i18n/test/lib/key_structure.rb
vendored
Normal file
89
vendor/plugins/rails-i18n/test/lib/key_structure.rb
vendored
Normal file
|
@ -0,0 +1,89 @@
|
|||
$KCODE = 'u'
|
||||
|
||||
require 'rubygems'
|
||||
require 'i18n'
|
||||
|
||||
module I18n
|
||||
module Backend
|
||||
class Simple
|
||||
public :translations, :init_translations
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
class KeyStructure
|
||||
attr_reader :result
|
||||
|
||||
def initialize(locale)
|
||||
@locale = locale.to_sym
|
||||
init_backend
|
||||
|
||||
@reference = I18n.backend.translations[:'en']
|
||||
@data = I18n.backend.translations[@locale]
|
||||
|
||||
@result = {:bogus => [], :missing => [], :pluralization => []}
|
||||
@key_stack = []
|
||||
end
|
||||
|
||||
def run
|
||||
compare :missing, @reference, @data
|
||||
compare :bogus, @data, @reference
|
||||
end
|
||||
|
||||
def output
|
||||
[:missing, :bogus, :pluralization].each do |direction|
|
||||
next unless result[direction].size > 0
|
||||
case direction
|
||||
when :pluralization
|
||||
puts "\nThe following pluralization keys seem to differ:"
|
||||
else
|
||||
puts "\nThe following keys seem to be #{direction} for #{@locale.inspect}:"
|
||||
end
|
||||
puts ' ' + result[direction].join("\n ")
|
||||
end
|
||||
if result.map{|k, v| v.size == 0}.uniq == [true]
|
||||
puts "No inconsistencies found."
|
||||
end
|
||||
puts "\n"
|
||||
end
|
||||
|
||||
protected
|
||||
|
||||
def compare(direction, reference, data)
|
||||
reference.each do |key, value|
|
||||
if data.has_key?(key)
|
||||
@key_stack << key
|
||||
if namespace?(value)
|
||||
compare direction, value, (namespace?(data[key]) ? data[key] : {})
|
||||
elsif pluralization?(value)
|
||||
compare :pluralization, value, (pluralization?(data[key]) ? data[key] : {})
|
||||
end
|
||||
@key_stack.pop
|
||||
else
|
||||
@result[direction] << current_key(key)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def current_key(key)
|
||||
(@key_stack.dup << key).join('.')
|
||||
end
|
||||
|
||||
def namespace?(hash)
|
||||
Hash === hash and !pluralization?(hash)
|
||||
end
|
||||
|
||||
def pluralization?(hash)
|
||||
Hash === hash and hash.has_key?(:one) and hash.has_key?(:other)
|
||||
end
|
||||
|
||||
def init_backend
|
||||
I18n.load_path = %W(
|
||||
rails/action_view.yml
|
||||
rails/active_record.yml
|
||||
rails/active_support.yml
|
||||
)
|
||||
I18n.load_path += Dir["locale/#{@locale}.{rb,yml}"]
|
||||
I18n.backend.init_translations
|
||||
end
|
||||
end
|
Loading…
Add table
Add a link
Reference in a new issue