Skip to content

Commit

Permalink
Merge commit 'sven/i18n'
Browse files Browse the repository at this point in the history
Conflicts:
	activesupport/lib/active_support.rb
  • Loading branch information
jeremy committed Aug 27, 2008
2 parents 87fafe4 + cba83ed commit 657898c
Show file tree
Hide file tree
Showing 6 changed files with 14 additions and 41 deletions.
4 changes: 1 addition & 3 deletions actionpack/lib/action_view.rb
Expand Up @@ -43,9 +43,7 @@
require 'action_view/partials'
require 'action_view/template_error'

I18n.backend.populate do
I18n.load_translations "#{File.dirname(__FILE__)}/action_view/locale/en-US.yml"
end
I18n.load_translations "#{File.dirname(__FILE__)}/action_view/locale/en-US.yml"

require 'action_view/helpers'

Expand Down
4 changes: 1 addition & 3 deletions activerecord/lib/active_record.rb
Expand Up @@ -77,7 +77,5 @@

require 'active_record/schema_dumper'

I18n.backend.populate do
I18n.load_translations File.dirname(__FILE__) + '/active_record/locale/en-US.yml'
end
I18n.load_translations File.dirname(__FILE__) + '/active_record/locale/en-US.yml'

19 changes: 7 additions & 12 deletions activerecord/test/cases/i18n_test.rb
Expand Up @@ -5,42 +5,37 @@
class ActiveRecordI18nTests < Test::Unit::TestCase

def setup
reset_translations
I18n.backend = I18n::Backend::Simple.new
end

def test_translated_model_attributes
I18n.store_translations 'en-US', :activerecord => {:attributes => {:topic => {:title => 'topic title attribute'} } }
I18n.backend.store_translations 'en-US', :activerecord => {:attributes => {:topic => {:title => 'topic title attribute'} } }
assert_equal 'topic title attribute', Topic.human_attribute_name('title')
end

def test_translated_model_attributes_with_sti
I18n.store_translations 'en-US', :activerecord => {:attributes => {:reply => {:title => 'reply title attribute'} } }
I18n.backend.store_translations 'en-US', :activerecord => {:attributes => {:reply => {:title => 'reply title attribute'} } }
assert_equal 'reply title attribute', Reply.human_attribute_name('title')
end

def test_translated_model_attributes_with_sti_fallback
I18n.store_translations 'en-US', :activerecord => {:attributes => {:topic => {:title => 'topic title attribute'} } }
I18n.backend.store_translations 'en-US', :activerecord => {:attributes => {:topic => {:title => 'topic title attribute'} } }
assert_equal 'topic title attribute', Reply.human_attribute_name('title')
end

def test_translated_model_names
I18n.store_translations 'en-US', :activerecord => {:models => {:topic => 'topic model'} }
I18n.backend.store_translations 'en-US', :activerecord => {:models => {:topic => 'topic model'} }
assert_equal 'topic model', Topic.human_name
end

def test_translated_model_names_with_sti
I18n.store_translations 'en-US', :activerecord => {:models => {:reply => 'reply model'} }
I18n.backend.store_translations 'en-US', :activerecord => {:models => {:reply => 'reply model'} }
assert_equal 'reply model', Reply.human_name
end

def test_translated_model_names_with_sti_fallback
I18n.store_translations 'en-US', :activerecord => {:models => {:topic => 'topic model'} }
I18n.backend.store_translations 'en-US', :activerecord => {:models => {:topic => 'topic model'} }
assert_equal 'topic model', Reply.human_name
end

private
def reset_translations
I18n.backend = I18n::Backend::Simple.new
end
end

4 changes: 1 addition & 3 deletions activesupport/lib/active_support.rb
Expand Up @@ -56,9 +56,7 @@

require 'active_support/secure_random'

I18n.populate do
I18n.load_translations File.dirname(__FILE__) + '/active_support/locale/en-US.yml'
end
I18n.load_translations File.dirname(__FILE__) + '/active_support/locale/en-US.yml'

Inflector = ActiveSupport::Deprecation::DeprecatedConstantProxy.new('Inflector', 'ActiveSupport::Inflector')
Dependencies = ActiveSupport::Deprecation::DeprecatedConstantProxy.new('Dependencies', 'ActiveSupport::Dependencies')
Expand Down
12 changes: 0 additions & 12 deletions activesupport/lib/active_support/vendor/i18n-0.0.1/i18n.rb
Expand Up @@ -49,13 +49,6 @@ def exception_handler=(exception_handler)
@@exception_handler = exception_handler
end

# Allow client libraries to pass a block that populates the translation
# storage. Decoupled for backends like a db backend that persist their
# translations, so the backend can decide whether/when to yield or not.
def populate(&block)
backend.populate(&block)
end

# Allows client libraries to pass arguments that specify a source for
# translation data to be loaded by the backend. The backend defines
# acceptable sources.
Expand All @@ -66,11 +59,6 @@ def load_translations(*args)
backend.load_translations(*args)
end

# Stores translations for the given locale in the backend.
def store_translations(locale, data)
backend.store_translations locale, data
end

# Translates, pluralizes and interpolates a given key using a given locale,
# scope, and default, as well as interpolation values.
#
Expand Down
Expand Up @@ -3,13 +3,6 @@
module I18n
module Backend
class Simple
# Allow client libraries to pass a block that populates the translation
# storage. Decoupled for backends like a db backend that persist their
# translations, so the backend can decide whether/when to yield or not.
def populate(&block)
yield
end

# Accepts a list of paths to translation files. Loads translations from
# plain Ruby (*.rb) or YAML files (*.yml). See #load_rb and #load_yml
# for details.
Expand Down Expand Up @@ -47,12 +40,15 @@ def localize(locale, object, format = :default)
raise ArgumentError, "Object must be a Date, DateTime or Time object. #{object.inspect} given." unless object.respond_to?(:strftime)

type = object.respond_to?(:sec) ? 'time' : 'date'
# TODO only translate these if format is a String?
formats = translate(locale, :"#{type}.formats")
format = formats[format.to_sym] if formats && formats[format.to_sym]
# TODO raise exception unless format found?
format = format.to_s.dup

format.gsub!(/%a/, translate(locale, :"date.abbr_day_names")[object.wday])
# TODO only translate these if the format string is actually present
# TODO check which format strings are present, then bulk translate then, then replace them
format.gsub!(/%a/, translate(locale, :"date.abbr_day_names")[object.wday])
format.gsub!(/%A/, translate(locale, :"date.day_names")[object.wday])
format.gsub!(/%b/, translate(locale, :"date.abbr_month_names")[object.mon])
format.gsub!(/%B/, translate(locale, :"date.month_names")[object.mon])
Expand Down

0 comments on commit 657898c

Please sign in to comment.