ADR-016 — Internationalisation native et localisation progressive
🔗 EXTENSION (2026-06-30, ADR-053).
icu4xne sert pas qu’aux couches hautes (AirString,air-ui, formats) : il sous-tend aussi la libc C d’Air (ctype/locale/i18n — caractères, casse, collation, normalisation, segmentation, calendriers). La libc Air donne donc l’i18n correcte par défaut au C, sans bolt-on. Locales BCP-47 (et non POSIX) y compris au niveau libc, les noms POSIX étant mappés. Voir ADR-053.
Unicode 16+ supporté nativement. UTF-8 partout, pas de codages legacy en interne. Type AirString Unicode-aware (normalisation, casing locale-aware, segmentation par grapheme, comparaison locale-aware).
Locales identifiées par BCP 47, pas POSIX. Trois niveaux : système, utilisateur, application. Cascade de fallback macOS-style.
Socle technique : icu4x adopté comme dépendance structurante, exception explicite à la règle des 80 % du Principe d’ingénierie 6. Justification : référence Unicode mondiale, reproduction impossible, sécurité par adoption massive, modularité native.
Formats culturels via APIs air-runtime consommant icu4x. Direction du texte RTL via cosmic-text + HarfBuzz. air-ui utilise des coordonnées logiques (leading/trailing).
IME via text-input-v3 Wayland standard dans air-wm. Compatible Fcitx5 et IBus. Support IME en mode console tier-2.
Traductions : format Fluent (Mozilla). Fichiers .ftl par composant et par langue.
Polices : famille Noto comme défaut. Mécanisme de fallback automatique.
Calendriers : grégorien par défaut, autres calendriers disponibles via API AirCalendar.
Genre et inclusivité : traductions officielles en formes standard, variantes communautaires possibles. Position politiquement neutre.
Langues prioritaires initiales (9 langues) : anglais, français, allemand, espagnol, italien, portugais, chinois mandarin simplifié, arabe, japonais.
Licence du document : MPL 2.0 Statut : Document fondateur. Édition directe autorisée en phase de design pré-ouverture publique ; immuable après ouverture publique (toute évolution via RFC, cf. ADR-015).