autoload server/client locales in plugins
This commit is contained in:
parent
f9e8d57acf
commit
291acca4fa
|
@ -57,7 +57,6 @@ module Discourse
|
||||||
|
|
||||||
config.assets.precompile += ['common.css', 'desktop.css', 'mobile.css', 'admin.js', 'admin.css', 'shiny/shiny.css', 'preload_store.js']
|
config.assets.precompile += ['common.css', 'desktop.css', 'mobile.css', 'admin.js', 'admin.css', 'shiny/shiny.css', 'preload_store.js']
|
||||||
|
|
||||||
|
|
||||||
# Precompile all defer
|
# Precompile all defer
|
||||||
Dir.glob("#{config.root}/app/assets/javascripts/defer/*.js").each do |file|
|
Dir.glob("#{config.root}/app/assets/javascripts/defer/*.js").each do |file|
|
||||||
config.assets.precompile << "defer/#{File.basename(file)}"
|
config.assets.precompile << "defer/#{File.basename(file)}"
|
||||||
|
@ -80,9 +79,8 @@ module Discourse
|
||||||
# Run "rake -D time" for a list of tasks for finding time zone names. Default is UTC.
|
# Run "rake -D time" for a list of tasks for finding time zone names. Default is UTC.
|
||||||
config.time_zone = 'Eastern Time (US & Canada)'
|
config.time_zone = 'Eastern Time (US & Canada)'
|
||||||
|
|
||||||
# The default locale is :en and all translations from config/locales/*.rb,yml are auto loaded.
|
# auto-load server locale in plugins
|
||||||
# config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s]
|
config.i18n.load_path += Dir["#{Rails.root}/plugins/*/config/locales/server.*.yml"]
|
||||||
# config.i18n.default_locale = :de
|
|
||||||
|
|
||||||
# Configure the default encoding used in templates for Ruby 1.9.
|
# Configure the default encoding used in templates for Ruby 1.9.
|
||||||
config.encoding = 'utf-8'
|
config.encoding = 'utf-8'
|
||||||
|
|
|
@ -9,11 +9,6 @@ class DiscoursePluginRegistry
|
||||||
attr_accessor :stylesheets
|
attr_accessor :stylesheets
|
||||||
|
|
||||||
# Default accessor values
|
# Default accessor values
|
||||||
#
|
|
||||||
def stylesheets
|
|
||||||
@stylesheets ||= Set.new
|
|
||||||
end
|
|
||||||
|
|
||||||
def javascripts
|
def javascripts
|
||||||
@javascripts ||= Set.new
|
@javascripts ||= Set.new
|
||||||
end
|
end
|
||||||
|
@ -21,13 +16,15 @@ class DiscoursePluginRegistry
|
||||||
def server_side_javascripts
|
def server_side_javascripts
|
||||||
@server_side_javascripts ||= Set.new
|
@server_side_javascripts ||= Set.new
|
||||||
end
|
end
|
||||||
end
|
|
||||||
|
|
||||||
|
def stylesheets
|
||||||
|
@stylesheets ||= Set.new
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
def register_js(filename, options={})
|
def register_js(filename, options={})
|
||||||
# If we have a server side option, add that too.
|
# If we have a server side option, add that too.
|
||||||
self.class.server_side_javascripts << options[:server_side] if options[:server_side].present?
|
self.class.server_side_javascripts << options[:server_side] if options[:server_side].present?
|
||||||
|
|
||||||
self.class.javascripts << filename
|
self.class.javascripts << filename
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -35,26 +32,26 @@ class DiscoursePluginRegistry
|
||||||
self.class.stylesheets << filename
|
self.class.stylesheets << filename
|
||||||
end
|
end
|
||||||
|
|
||||||
def stylesheets
|
|
||||||
self.class.stylesheets
|
|
||||||
end
|
|
||||||
|
|
||||||
def register_archetype(name, options={})
|
def register_archetype(name, options={})
|
||||||
Archetype.register(name, options)
|
Archetype.register(name, options)
|
||||||
end
|
end
|
||||||
|
|
||||||
def server_side_javascripts
|
|
||||||
self.class.javascripts
|
|
||||||
end
|
|
||||||
|
|
||||||
def javascripts
|
def javascripts
|
||||||
self.class.javascripts
|
self.class.javascripts
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def server_side_javascripts
|
||||||
|
self.class.server_side_javascripts
|
||||||
|
end
|
||||||
|
|
||||||
|
def stylesheets
|
||||||
|
self.class.stylesheets
|
||||||
|
end
|
||||||
|
|
||||||
def self.clear
|
def self.clear
|
||||||
self.stylesheets = nil
|
|
||||||
self.server_side_javascripts = nil
|
|
||||||
self.javascripts = nil
|
self.javascripts = nil
|
||||||
|
self.server_side_javascripts = nil
|
||||||
|
self.stylesheets = nil
|
||||||
end
|
end
|
||||||
|
|
||||||
def self.setup(plugin_class)
|
def self.setup(plugin_class)
|
||||||
|
|
|
@ -1,10 +1,17 @@
|
||||||
module JsLocaleHelper
|
module JsLocaleHelper
|
||||||
|
|
||||||
def self.output_locale(locale, translations = nil)
|
def self.output_locale(locale, translations = nil)
|
||||||
|
|
||||||
locale_str = locale.to_s
|
locale_str = locale.to_s
|
||||||
|
|
||||||
|
# load default translations
|
||||||
translations ||= YAML::load(File.open("#{Rails.root}/config/locales/client.#{locale_str}.yml"))
|
translations ||= YAML::load(File.open("#{Rails.root}/config/locales/client.#{locale_str}.yml"))
|
||||||
|
# load plugins translations
|
||||||
|
plugin_translations = {}
|
||||||
|
Dir["#{Rails.root}/plugins/*/config/locales/client.#{locale_str}.yml"].each do |file|
|
||||||
|
plugin_translations.merge! YAML::load(File.open(file))
|
||||||
|
end
|
||||||
|
# merge translations (plugin translations overwrite default translations)
|
||||||
|
translations[locale_str]['js'].merge!(plugin_translations[locale_str]['js'])
|
||||||
|
|
||||||
# We used to split the admin versus the client side, but it's much simpler to just
|
# We used to split the admin versus the client side, but it's much simpler to just
|
||||||
# include both for now due to the small size of the admin section.
|
# include both for now due to the small size of the admin section.
|
||||||
|
|
Loading…
Reference in New Issue