INNER CODE UNIT · Python
normalize_locale
OpenChemistry/avogadrolibs · scripts/copy-default.py:252
def normalize_locale(name):
"""Turn 'en-GB' or 'en_gb' into 'en_GB'; return None if not a locale."""
if not name:
return None
parts = re.split(r'[-_]', name.strip())
if len(parts) != 2:
return None
return parts[0].lower() + '_' + parts[1].upper()
def detect_locale(path, po, override):
"""Work out the locale: --locale, then file name, then PO header."""
if override:
return normalize_locale(override) or override
from_name = normalize_locale(path.stem)
if from_name in SUPPORTED_LOCALES:
return from_name
from_header = normalize_locale(po.metadata.get('Language', ''))