aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--config/application.rb1
-rw-r--r--config/initializers/alaveteli.rb1
-rw-r--r--lib/alaveteli_localization.rb1
-rw-r--r--lib/routing_filters.rb8
4 files changed, 10 insertions, 1 deletions
diff --git a/config/application.rb b/config/application.rb
index a514daf3a..ed4f07819 100644
--- a/config/application.rb
+++ b/config/application.rb
@@ -61,7 +61,6 @@ module Alaveteli
config.action_dispatch.rack_cache = nil
config.after_initialize do |app|
- require 'routing_filters.rb'
# Add a catch-all route to force routing errors to be handled by the application,
# rather than by middleware.
app.routes.append{ match '*path', :to => 'general#not_found' }
diff --git a/config/initializers/alaveteli.rb b/config/initializers/alaveteli.rb
index 9a151e3e8..3a1220326 100644
--- a/config/initializers/alaveteli.rb
+++ b/config/initializers/alaveteli.rb
@@ -55,6 +55,7 @@ require 'date_quarter'
require 'public_body_csv'
require 'category_and_heading_migrator'
require 'public_body_categories'
+require 'routing_filters'
AlaveteliLocalization.set_locales(AlaveteliConfiguration::available_locales,
AlaveteliConfiguration::default_locale)
diff --git a/lib/alaveteli_localization.rb b/lib/alaveteli_localization.rb
index 6daab124a..2b6978c92 100644
--- a/lib/alaveteli_localization.rb
+++ b/lib/alaveteli_localization.rb
@@ -7,6 +7,7 @@ class AlaveteliLocalization
I18n.locale = default_locale
I18n.available_locales = available_locales.map { |locale_name| locale_name.to_sym }
I18n.default_locale = default_locale
+ RoutingFilter::Conditionallyprependlocale.locales = available_locales
end
def set_default_text_domain(name, path)
diff --git a/lib/routing_filters.rb b/lib/routing_filters.rb
index a9a62b8db..5b5da6870 100644
--- a/lib/routing_filters.rb
+++ b/lib/routing_filters.rb
@@ -22,5 +22,13 @@ module RoutingFilter
prepend_segment!(result, locale) if prepend_locale?(locale)
end
end
+
+ # Reset the locale pattern when the locales are set.
+ class << self
+ def locales=(locales)
+ @@locales_pattern = nil
+ @@locales = locales.map(&:to_sym)
+ end
+ end
end
end