MCPcopy Create free account
hub / github.com/EasyIME/PIME / get_browser_locale

Method get_browser_locale

python/python3/tornado/web.py:1285–1310  ·  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

1283 return None
1284
1285 def get_browser_locale(self, default: str = "en_US") -> tornado.locale.Locale:
1286 """Determines the user's locale from ``Accept-Language`` header.
1287
1288 See http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.4
1289 """
1290 if "Accept-Language" in self.request.headers:
1291 languages = self.request.headers["Accept-Language"].split(",")
1292 locales = []
1293 for language in languages:
1294 parts = language.strip().split(";")
1295 if len(parts) > 1 and parts[1].strip().startswith("q="):
1296 try:
1297 score = float(parts[1].strip()[2:])
1298 if score < 0:
1299 raise ValueError()
1300 except (ValueError, TypeError):
1301 score = 0.0
1302 else:
1303 score = 1.0
1304 if score > 0:
1305 locales.append((parts[0], score))
1306 if locales:
1307 locales.sort(key=lambda pair: pair[1], reverse=True)
1308 codes = [loc[0] for loc in locales]
1309 return locale.get(*codes)
1310 return locale.get(default)
1311
1312 @property
1313 def current_user(self) -> Any:

Callers 2

localeMethod · 0.95
getMethod · 0.80

Calls 3

splitMethod · 0.80
appendMethod · 0.45
getMethod · 0.45

Tested by 1

getMethod · 0.64