aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristopher Allan Webber <cwebber@dustycloud.org>2011-10-15 16:57:45 -0500
committerChristopher Allan Webber <cwebber@dustycloud.org>2011-10-15 16:57:45 -0500
commit471509197034e8aa3a2f4d3fa41e86212b543082 (patch)
tree3b0dfb7d00f59da76c052f38ab1626924be60337
parented594264664f0e0aca00de4f962d267750b21fd1 (diff)
downloadmediagoblin-471509197034e8aa3a2f4d3fa41e86212b543082.tar.lz
mediagoblin-471509197034e8aa3a2f4d3fa41e86212b543082.tar.xz
mediagoblin-471509197034e8aa3a2f4d3fa41e86212b543082.zip
Support for older webobs and newer webobs both in accept language mess :)
-rw-r--r--mediagoblin/tools/translate.py13
1 files changed, 11 insertions, 2 deletions
diff --git a/mediagoblin/tools/translate.py b/mediagoblin/tools/translate.py
index f2990867..b99c4aa4 100644
--- a/mediagoblin/tools/translate.py
+++ b/mediagoblin/tools/translate.py
@@ -74,8 +74,17 @@ def get_locale_from_request(request):
target_lang = request.session['target_lang']
# Pull the first acceptable language or English
else:
- target_lang = request.accept.best_match(
- request.accept_language, 'en')
+ # WebOb recently changed how it handles determining best language.
+ # Here's a compromise commit that handles either/or...
+ if hasattr(request.accept_language, "best_matches"):
+ accept_lang_matches = request.accept_language.best_matches()
+ if accept_lang_matches:
+ target_lang = accept_lang_matches[0]
+ else:
+ target_lang = 'en'
+ else:
+ target_lang = request.accept.best_match(
+ request.accept_language, 'en')
return locale_to_lower_upper(target_lang)