Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
desired_complete = fill_likely_values(desired)
supported_complete = fill_likely_values(supported)
desired_reduced = _searchable_form(desired_complete)
supported_reduced = _searchable_form(supported_complete)
# if the languages match after we normalize them, that's very good
if desired_reduced == supported_reduced:
return 99
# CLDR doesn't tell us how to combine the data in 'parentLocales' with
# that in 'languageMatching', so here's a heuristic that seems to fit.
desired_tag = meaning_to_tag(desired_reduced)
supported_tag = meaning_to_tag(supported_reduced)
if PARENT_LOCALES.get(desired_tag) == supported_tag:
return 98
if PARENT_LOCALES.get(supported_tag) == desired_tag:
return 97
if desired_complete['script'] == supported_complete['script']:
# When the scripts match, we can check for mutually intelligible
# languages.
dlang, slang = desired_complete['language'], supported_complete['language']
if (dlang, slang) in LANGUAGE_MATCHING:
return LANGUAGE_MATCHING[(dlang, slang)]
if desired_complete['language'] == supported_complete['language']:
if desired_complete['script'] == supported_complete['script']:
return 96
else:
# When the scripts don't match, check for mutually intelligible scripts.
dlang_script = meaning_to_tag(_filter_keys(desired_complete, {'language', 'script'}))
return 100
desired_complete = fill_likely_values(desired)
supported_complete = fill_likely_values(supported)
desired_reduced = _searchable_form(desired_complete)
supported_reduced = _searchable_form(supported_complete)
# if the languages match after we normalize them, that's very good
if desired_reduced == supported_reduced:
return 99
# CLDR doesn't tell us how to combine the data in 'parentLocales' with
# that in 'languageMatching', so here's a heuristic that seems to fit.
desired_tag = meaning_to_tag(desired_reduced)
supported_tag = meaning_to_tag(supported_reduced)
if PARENT_LOCALES.get(desired_tag) == supported_tag:
return 98
if PARENT_LOCALES.get(supported_tag) == desired_tag:
return 97
if desired_complete['script'] == supported_complete['script']:
# When the scripts match, we can check for mutually intelligible
# languages.
dlang, slang = desired_complete['language'], supported_complete['language']
if (dlang, slang) in LANGUAGE_MATCHING:
return LANGUAGE_MATCHING[(dlang, slang)]
if desired_complete['language'] == supported_complete['language']:
if desired_complete['script'] == supported_complete['script']:
return 96
else: