Skip to content

utils

Utility functions for keeping track of languages.

find_iso_name

find_iso_name(common_name: str) -> list[str]

Find codes by matching the human name. Returns ISO or Glottolog language and dialect codes.

Matches against Language.name and Dialect.name (case-insensitive substring).

Source code in cltk/languages/utils.py
def find_iso_name(common_name: str) -> list[str]:
    """Find codes by matching the human name. Returns ISO or Glottolog language and dialect codes.

    Matches against Language.name and Dialect.name (case-insensitive substring).
    """
    q = common_name.lower()
    codes: list[str] = []
    # Match language names
    for iso_key, language_obj in LANGUAGES.items():
        if q in language_obj.name.lower():
            codes.append(f'{language_obj.name} ("{iso_key}")')
    # Match dialect names (return dialect codes, e.g., 'egy-dem')
    for iso_key, language_obj in LANGUAGES.items():
        for d in language_obj.dialects or []:
            if q in d.name.lower():
                if d.language_code:
                    codes.append(f'{d.name} ("{d.language_code}")')
    return codes