[Erp5-report] r24121 - /erp5/trunk/products/ERP5Wizard/Tool/WizardTool.py

nobody at svn.erp5.org nobody at svn.erp5.org
Thu Oct 9 14:49:54 CEST 2008


Author: yusei
Date: Thu Oct  9 14:49:43 2008
New Revision: 24121

URL: http://svn.erp5.org?rev=24121&view=rev
Log:
Handle HTTP_ACCEPT_LANGUAGE correctly.

Modified:
    erp5/trunk/products/ERP5Wizard/Tool/WizardTool.py

Modified: erp5/trunk/products/ERP5Wizard/Tool/WizardTool.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Wizard/Tool/WizardTool.py?rev=24121&r1=24120&r2=24121&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Wizard/Tool/WizardTool.py (original)
+++ erp5/trunk/products/ERP5Wizard/Tool/WizardTool.py Thu Oct  9 14:49:43 2008
@@ -56,6 +56,16 @@
 
 # cookie name to store user's preferred language name
 LANGUAGE_COOKIE_NAME = 'configurator_user_preferred_language'
+
+def getAvailableLanguageFromHttpAcceptLanguage(http_accept_language,
+                                               available_language_list,
+                                               default='en'):
+  for language_set in http_accept_language.split(','):
+    language_tag = language_set.split(';')[0]
+    language = language_tag.split('-')[0]
+    if language in available_language_list:
+      return language
+  return default
 
 def _isUserAcknowledged(cookiejar):
   """ Is user authenticated to remote system through a cookie. """
@@ -445,19 +455,14 @@
 
       if configurator_user_preferred_language is None:
         # Find a preferred language from HTTP_ACCEPT_LANGUAGE
-        accept_language = REQUEST.get('HTTP_ACCEPT_LANGUAGE', 'en')
-        accept_language_tag = accept_language.split(';')[0].split(',')[0]
-        primary_language = accept_language_tag.split('-')[0]
-
-        configuration_language_list = [language_set[1]
-                                       for language_set in self.WizardTool_getConfigurationLanguageList()]
-
-        if primary_language in configuration_language_list:
-          configurator_user_preferred_language = primary_language
+        available_language_list = [i[1] for i in self.WizardTool_getConfigurationLanguageList()]
+        configurator_user_preferred_language = getAvailableLanguageFromHttpAcceptLanguage(
+          REQUEST.get('HTTP_ACCEPT_LANGUAGE', 'en'),
+          available_language_list)
 
     if configurator_user_preferred_language is None:
       configurator_user_preferred_language = 'en'
-    
+
     parameter_dict['user_preferred_language'] = configurator_user_preferred_language
 
   def _updateParameterDictWithFileUpload(self, parameter_dict):




More information about the Erp5-report mailing list