Metadata-Version: 2.4
Name: ihub-aether-lang-pack
Version: 1.0.0
Summary: Complete ISO 639 language registry: all 7,927 registered languages with official English and French names, CLDR native names, status, scope, macrolanguage links, legacy aliases, and a defined fallback chain for every code.
Author: iHub Aether
License-Expression: MIT
Project-URL: Homepage, https://4m1wp03rd34yk.aiforce.cloud/app/app_17e3evgsy6q
Keywords: iso639,language,i18n,locale,langpack,iso-639-3,internationalization
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Software Development :: Internationalization
Requires-Python: >=3.9
Description-Content-Type: text/markdown

# iHub Aether Lang Pack

The complete ISO 639 language registry as a zero-dependency Python package.

Every registered language code (ISO 639-1 / 639-2 / 639-3) with:

- official English and French names (ISO / IANA)
- native names from Unicode CLDR where they exist
- status: living / extinct / historical / constructed / special
- scope: individual / macrolanguage / special
- macrolanguage links (e.g. `cmn` -> `zh`)
- legacy aliases (e.g. `iw` -> `he`, `in` -> `id`, `sh` -> `sr`)
- a defined fallback chain on **every** code, so no lookup ever breaks

## Install

```bash
pip install ihub-aether-lang-pack
```

## Usage

```python
from langpack import langpack

len(langpack)                       # 7927 registered languages
langpack.counts["living"]           # 7082 spoken (living) tongues

langpack.get("zh")
# {'iso6393': 'zho', 'iso6391': 'zh', 'name': 'Chinese', 'native': '中文', ...}

langpack.resolve("iw")              # 'he'  (legacy alias -> canonical)
langpack.resolve("zh-Hans")         # 'zh'  (BCP-47 tag -> base code)

langpack.fallback_chain("yue")      # ['yue', 'zh', 'en']
langpack.fallback("cmn")            # 'zh'

langpack.search("cantonese")        # [{... 'yue' ...}]
langpack.native_name("ja")          # '日本語'
```

Command line:

```bash
python -m langpack          # summary
python -m langpack chinese  # search
```

## Fallback rule

- non-living codes -> `en`
- macrolanguages -> `en`
- individual under a macrolanguage -> that macrolanguage -> `en`
- everything else -> `en`

The chain is always `[code, fallback, en]` (deduplicated).

## Coverage and dialects

The registry contains all **7,927 codes registered by ISO 639**, which includes
the local varieties that have official codes: Chinese "dialects" (Mandarin,
Cantonese, Wu, Hakka, Min Nan...), Arabic regional varieties, German dialects
and so on. Sub-dialects that ISO does not register cannot be in any real pack;
script variants (zh-Hans / zh-Hant) are handled on top via BCP-47 tags, which
`resolve()` already accepts.

## Data sources

- ISO 639-3 official code tables (SIL International)
- IANA Language Subtag Registry
- Unicode CLDR language names

## License

MIT (code). Data compiled from the public ISO 639 / IANA / CLDR registries.
