aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--app/controllers/application_controller.rb16
1 files changed, 15 insertions, 1 deletions
diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb
index f34f6e388..239145944 100644
--- a/app/controllers/application_controller.rb
+++ b/app/controllers/application_controller.rb
@@ -14,7 +14,7 @@ class ApplicationController < ActionController::Base
# Standard headers, footers and navigation for whole site
layout "default"
include FastGettext::Translation # make functions like _, n_, N_ etc available)
-
+
# Note: a filter stops the chain if it redirects or renders something
before_filter :authentication_check
before_filter :set_gettext_locale
@@ -488,6 +488,20 @@ class ApplicationController < ActionController::Base
# Site-wide access to configuration settings
include ConfigHelper
+
+ # XXX: patch to improve usability of gettext's _(), which by default accepts only
+ # one parameter. This is normally done in a monkey patch file named 'i18n_fixes.rb'.
+ # For some reason - and only when running in production -, after adding a new controller
+ # in a theme, the monkey patch in 'i18n_fixes.rb' doesn't seem to take effect.
+ # But it works just fine in the views.
+ # It's probably related to the loading order of classes, but including the
+ # monkey patch before or after the theme makes no difference. Even more bizarrely,
+ # require'ing or load'ing the patch file here doesn't work (!?), I need to redefine
+ # the method explicitely. I'm going crazy...
+ def _(key, options = {})
+ translation = FastGettext._(key) || key
+ gettext_interpolate(translation, options)
+ end
end