MCPcopy
hub / github.com/tornadoweb/tornado / get_browser_locale

Method get_browser_locale

tornado/web.py:1446–1471  ·  view source on GitHub ↗

Determines the user's locale from ``Accept-Language`` header. See http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.4

(self, default: str = "en_US")

Source from the content-addressed store, hash-verified

1444 return None
1445
1446 def get_browser_locale(self, default: str = "en_US") -> tornado.locale.Locale:
1447 """Determines the user's locale from ``Accept-Language`` header.
1448
1449 See http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.4
1450 """
1451 if "Accept-Language" in self.request.headers:
1452 languages = self.request.headers["Accept-Language"].split(",")
1453 locales = []
1454 for language in languages:
1455 parts = language.strip().split(";")
1456 if len(parts) > 1 and parts[1].strip().startswith("q="):
1457 try:
1458 score = float(parts[1].strip()[2:])
1459 if score < 0:
1460 raise ValueError()
1461 except (ValueError, TypeError):
1462 score = 0.0
1463 else:
1464 score = 1.0
1465 if score > 0:
1466 locales.append((parts[0], score))
1467 if locales:
1468 locales.sort(key=lambda pair: pair[1], reverse=True)
1469 codes = [loc[0] for loc in locales]
1470 return locale.get(*codes)
1471 return locale.get(default)
1472
1473 @property
1474 def current_user(self) -> Any:

Callers 2

localeMethod · 0.95
getMethod · 0.80

Calls 3

splitMethod · 0.80
appendMethod · 0.80
getMethod · 0.45

Tested by 1

getMethod · 0.64