From 0a14b5951e6e80a73daa7d03485cf69513bd82dc Mon Sep 17 00:00:00 2001 From: Dan Scott Date: Tue, 18 Dec 2012 07:39:18 -0500 Subject: [PATCH] Set locale properly in Apache configuration A RewriteCond only applies to the next RewriteRule, while our config was attempting to apply multiple rules for a single condition. Fix that up by using skip (S) rules to apply blocks of rules for the condition in question. Also, use the HTTP:Accept-Language value directly, rather than relying on a backreference (which did not seem to be working as desired). These fixes enable screens like the Register Patron interface to present field labels from the IDL in the correct locale, whereas previously they would always default to en-US. Signed-off-by: Dan Scott Signed-off-by: Pasi Kallinen --- Open-ILS/examples/apache/eg_vhost.conf | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/Open-ILS/examples/apache/eg_vhost.conf b/Open-ILS/examples/apache/eg_vhost.conf index ebcc1f0cd3..0052443293 100644 --- a/Open-ILS/examples/apache/eg_vhost.conf +++ b/Open-ILS/examples/apache/eg_vhost.conf @@ -216,19 +216,17 @@ RewriteRule ^/opac/[a-z]{2}-[A-Z]{2}/extras/slimpac/(.*)$ /opac/%1/extras/slimpa # ---------------------------------------------------------------------------------- # Run server-side XUL and XHTML through xmlent to load the correct XML entities # ---------------------------------------------------------------------------------- -RewriteCond %{HTTP:Accept-Language} ([a-z]{2}-[A-Z]{2}) -RewriteRule ^/xul/ - [E=locale:%1] -RewriteRule ^/reports/ - [E=locale:%1] - +RewriteCond %{HTTP:Accept-Language} ^([a-z]{2}-[A-Z]{2})$ # Default to en-US if we haven't matched a locale of the form xx-YY -RewriteCond %{HTTP:Accept-Language} !([a-z]{2}-[A-Z]{2}) -RewriteRule ^/xul/ - [E=locale:en-US] -RewriteRule ^/reports/ - [E=locale:en-US] - -# Default to en-US if we are just given en -RewriteCond %{ENV:locale} ^$ [OR] -RewriteCond %{ENV:locale} ^en$ -RewriteRule . - [E=locale:en-US] +RewriteRule .? - [S=4] +RewriteRule ^/xul/ - [E=locale:en-US] +RewriteRule ^/reports/ - [E=locale:en-US] +RewriteRule .? - [E=locale:en-US] +RewriteRule .? - [S=3] +# Otherwise, set our real locale +RewriteRule ^/xul/ - [E=locale:%{HTTP:Accept-Language}] +RewriteRule ^/reports/ - [E=locale:%{HTTP:Accept-Language}] +RewriteRule .? - [E=locale:%{HTTP:Accept-Language}] Options +Includes -- 2.11.0