提交 78677cf6 编写于 作者: S Sven Fuchs

update activesupport/vendor i18n gem

上级 aae9f916
...@@ -56,8 +56,14 @@ def populate(&block) ...@@ -56,8 +56,14 @@ def populate(&block)
backend.populate(&block) backend.populate(&block)
end end
def load_translations(filename) # Allows client libraries to pass arguments that specify a source for
backend.load_translations filename # translation data to be loaded by the backend. The backend defines
# acceptable sources.
# E.g. the provided SimpleBackend accepts a list of paths to translation
# files which are either named *.rb and contain plain Ruby Hashes or are
# named *.yml and contain YAML data.)
def load_translations(*args)
backend.load_translations *args
end end
# Stores translations for the given locale in the backend. # Stores translations for the given locale in the backend.
......
...@@ -12,7 +12,10 @@ class << self ...@@ -12,7 +12,10 @@ class << self
def populate(&block) def populate(&block)
yield yield
end 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.
def load_translations(*filenames) def load_translations(*filenames)
filenames.each {|filename| load_file filename } filenames.each {|filename| load_file filename }
end end
...@@ -135,6 +138,10 @@ def interpolate(locale, string, values = {}) ...@@ -135,6 +138,10 @@ def interpolate(locale, string, values = {})
s.string s.string
end end
# Loads a single translations file by delegating to #load_rb or
# #load_yml depending on the file extension and directly merges the
# data to the existing translations. Raises I18n::UnknownFileType
# for all other file extensions.
def load_file(filename) def load_file(filename)
type = File.extname(filename).tr('.', '').downcase type = File.extname(filename).tr('.', '').downcase
raise UnknownFileType.new(type, filename) unless respond_to? :"load_#{type}" raise UnknownFileType.new(type, filename) unless respond_to? :"load_#{type}"
...@@ -144,10 +151,14 @@ def load_file(filename) ...@@ -144,10 +151,14 @@ def load_file(filename)
end end
end end
# Loads a plain Ruby translations file. eval'ing the file must yield
# a Hash containing translation data with locales as toplevel keys.
def load_rb(filename) def load_rb(filename)
eval IO.read(filename), binding, filename eval IO.read(filename), binding, filename
end end
# Loads a YAML translations file. The data must have locales as
# toplevel keys.
def load_yml(filename) def load_yml(filename)
YAML::load IO.read(filename) YAML::load IO.read(filename)
end end
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册