Proper API for reloading translations

This commit is contained in:
David Heinemeier Hansson
2008-10-29 10:51:56 +01:00
parent 4ad5aa9a39
commit 4dbfe18b37
5 changed files with 16 additions and 4 deletions

View File

@@ -28,6 +28,10 @@ module ActionController
end
after_dispatch :flush_logger if Base.logger && Base.logger.respond_to?(:flush)
to_prepare do
I18n.reload!
end
end
# Backward-compatible class method takes CGI-specific args. Deprecated

View File

@@ -10,8 +10,8 @@ class TranslationHelperTest < Test::Unit::TestCase
end
def test_delegates_to_i18n_setting_the_raise_option
I18n.expects(:translate).with(:foo, 'en-US', :raise => true)
translate :foo, 'en-US'
I18n.expects(:translate).with(:foo, :locale => 'en-US', :raise => true)
translate :foo, :locale => 'en-US'
end
def test_returns_missing_translation_message_wrapped_into_span

View File

@@ -1,6 +1,6 @@
*2.2.1 [RC2 or 2.2 final]*
* Make I18n::Backend::Simple reload its translations in development mode [DHH]
* Make I18n::Backend::Simple reload its translations in development mode [DHH/Sven Fuchs]
*2.2.0 [RC1] (October 24th, 2008)*

View File

@@ -67,6 +67,13 @@ module I18n
def load_path=(load_path)
@@load_path = load_path
end
# Tells the backend to reload translations. Used in situations like the
# Rails development environment. Backends can implement whatever strategy
# is useful.
def reload!
backend.reload!
end
# Translates, pluralizes and interpolates a given key using a given locale,
# scope, and default, as well as interpolation values.

View File

@@ -69,8 +69,9 @@ module I18n
@initialized ||= false
end
def reload
def reload!
@initialized = false
@translations = nil
end
protected