From 928fe1298f06f971ac03028d335fac7d1943075e 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 81903c93c1..b797832571 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