From ff956febee2306d0d5e316fad9b56d764c6e113f Mon Sep 17 00:00:00 2001 From: Yuki Date: Tue, 9 Jun 2015 23:27:32 +0530 Subject: [PATCH] Load countries --- config/application.rb | 6 ++++++ config/late_initializers/flags.rb | 28 ++++++++++++++++++++++++++++ 2 files changed, 34 insertions(+) create mode 100644 config/late_initializers/flags.rb diff --git a/config/application.rb b/config/application.rb index 9d5f6122..7857743d 100644 --- a/config/application.rb +++ b/config/application.rb @@ -35,5 +35,11 @@ module Justask # Instead, the errors will propagate normally just like in other Active Record callbacks. # fix for this warning: config.active_record.raise_in_transactional_callbacks = true + + config.after_initialize do + Dir.glob Rails.root.join('config/late_initializers/*.rb') do |f| + require f + end + end end end diff --git a/config/late_initializers/flags.rb b/config/late_initializers/flags.rb new file mode 100644 index 00000000..3b2dfd48 --- /dev/null +++ b/config/late_initializers/flags.rb @@ -0,0 +1,28 @@ +APP_LOCALES = {} +# locale_str: [language, country code] +# generate list +I18n.with_locale("") do + locale_map = YAML.load(File.open Rails.root.join("config/hl_to_cc.yml")) + flag_map = YAML.load(File.open Rails.root.join("config/flags.yml")) + Dir.glob(Rails.root.join("config/locales/*.yml")).each do |locale| + l = locale.split("/").last.split(".").first.downcase + if APP_LOCALES[l].nil? + cc = l.split("-").last + + if flag_map.index(cc).nil? + cc = locale_map[cc] + end + + unless flag_map.index(cc).nil? + begin + lang = I18n.translate("#{l}.language") + lang = '' if lang == "translation missing: #{l}.language" + APP_LOCALES[l] = [lang, cc] + rescue I18n.MissingTranslationData + APP_LOCALES[l] = ['', cc] + rescue + end + end + end + end +end