Conlangs, Scripts et Orthographe
champollion offre un support de première classe pour les langues construites via des registres LLM et des convertisseurs de script déterministes. Ce guide couvre le fonctionnement du support des conlangs, les polices dont vous avez besoin, et comment en ajouter vos propres.
:::tip Pourquoi les conlangs sont importants Les conlangs ne sont pas qu'une curiosité — ils exercent exactement la même infrastructure utilisée pour les langues réelles mal desservies. La porte de qualité, le système de coaching et le pipeline de conversion de script fonctionnent de manière identique pour le klingon et le cri des Plaines. Si votre pipeline conlang fonctionne, votre pipeline de langue à faibles ressources fonctionnera aussi. :::
Langues Construites Supportées
| Langue | Code | Convertisseur de Script | Police Requise |
|---|---|---|---|
| Klingon | tlh | ✅ Romanisation → pIqaD | Police PUA (p. ex., pIqaD qolqoS) |
| Sindarin (Elfique Tolkien) | x-elvish-s | ✅ Latin → Tengwar | Police PUA CSUR |
| Kryptonien | x-kryptonian | ✅ Latin → Kryptonian | Police PUA |
| Anglais Pirate | x-pirate | ❌ registre uniquement | Aucune |
| Anglais Shakespearien | x-shakespeare | ❌ registre uniquement | Aucune |
| Parler Yoda | x-yoda | ❌ registre uniquement | Aucune |
Les codes conlang utilisent le préfixe x- selon la convention d'usage privé BCP-47, sauf le klingon (tlh) qui possède un code ISO 639-3 assigné par SIL International.
Unicode, PUA et Exigences de Police
La Zone d'Usage Privé
Le klingon (pIqaD), le sindarin (Tengwar) et le kryptonien utilisent des caractères Zone d'Usage Privé Unicode (PUA). La PUA est la plage U+E000–U+F8FF — ces points de code n'ont aucune assignation standard. Le Registre Unicode ConScript (CSUR) maintient des mappages convenus par la communauté pour les scripts fictifs, mais ceux-ci ne font pas partie de la norme Unicode.
Ce que cela signifie en pratique :
- Le texte PUA s'affiche sous forme de boîtes vides (□□□) sans la police correcte chargée
- Différentes polices peuvent mapper différents glyphes aux mêmes points de code PUA
- champollion ne regroupe PAS les polices PUA — vous devez les charger vous-même
- Les polices système ne rendront jamais ces caractères
Plages PUA par Script
| Script | Plage PUA | Référence CSUR |
|---|---|---|
| Klingon (pIqaD) | U+F8D0–U+F8FF | CSUR Klingon |
| Tengwar (Elfique) | U+E000–U+E07F | CSUR Tengwar |
| Kryptonien | Varie selon la police | Aucune norme CSUR |
Chargement des Polices Web PUA
champollion inclut une commande intégrée pour télécharger et gérer les polices web PUA :
# See which fonts are needed for your configured languages
champollion fonts list
# Download all needed fonts (auto-detects project type for output directory)
champollion fonts install
# Also generate a CSS snippet with @font-face declarations
champollion fonts install --css
La commande fonts install télécharge depuis des dépôts open-source vérifiés :
| Police | Script | Licence | Source |
|---|---|---|---|
| pIqaD qolqoS | Klingon | SIL Open Font License 1.1 | GitHub |
| FreeMonoTengwar | Tengwar | GNU GPL v3 (avec exception de police) | SourceForge |
| (fournie par l'utilisateur) | Kryptonien | Varie | Aucune police PUA open-source disponible |
Le répertoire de sortie est auto-détecté à partir de votre structure de projet (Docusaurus → static/fonts/, Hugo → static/fonts/, défaut → public/fonts/). Remplacez avec --dir.
Si vous préférez gérer les polices manuellement, ajoutez des règles @font-face dans votre CSS :
@font-face {
font-family: 'pIqaD';
src: url('/fonts/pIqaDqolqoS.ttf') format('truetype');
font-display: swap;
unicode-range: U+F8D0-F8FF;
}
/* Apply to Klingon text elements */
[lang="tlh"], [data-script="piqad"] {
font-family: 'pIqaD', sans-serif;
}
:::warning Le support Unicode n'est PAS garanti Le Consortium Unicode a explicitement refusé d'encoder les scripts fictifs dans la norme. Les assignations PUA sont maintenues par la communauté et peuvent entrer en conflit entre les implémentations de polices. Spécifiez toujours la police exacte que votre projet utilise, et testez le rendu sur plusieurs navigateurs. :::
Convertisseurs de Script
Comment Ils Fonctionnent
La conversion de script de champollion est un hook post-traduction :
- L'LLM traduit le texte dans un script de travail (généralement Latin ou SRO)
- La porte de qualité valide la sortie
- Le convertisseur déterministe transforme le texte validé dans le script d'affichage
- Le texte converti est écrit sur le disque
Cette approche en deux étapes fonctionne parce que les LLM produisent une meilleure sortie lorsqu'ils travaillent dans des scripts basés sur le latin. Le convertisseur déterministe garantit une sortie de script correcte sans dépendre de la connaissance du script du modèle (souvent peu fiable).
Les Cinq Convertisseurs
champollion est livré avec cinq convertisseurs de script intégrés :
Cri des Plaines : SRO → Syllabiques (crk)
Orthographe Romane Standard vers Syllabiques Autochtones Canadiennes.
Input: "tawâw"
Output: "ᑕᐚᐤ"
Les voyelles longues utilisent macron/accent circonflexe : ê, î, ô, â. Le convertisseur gère tous les diacritiques SRO et les mappe aux caractères syllabiques corrects. Voir Support a Low-Resource Language pour le pipeline cri complet.
Serbe : Latin → Cyrillique (sr)
Conversion déterministe Latin-Cyrillique pour le serbe.
Input: "zdravo"
Output: "здраво"
Cela gère le mappage complet de l'alphabet serbe incluant les digraphes (lj → љ, nj → њ, dž → џ).
Klingon : Romanisation → pIqaD (tlh)
Système de romanisation de Marc Okrand vers les caractères pIqaD PUA.
Input: "Qapla'" (romanized Klingon)
Output: [pIqaD PUA] (requires pIqaD font to render)
Sindarin : Latin → Tengwar (x-elvish-s)
Mappage Tengwar mode Sindarin de Tolkien.
Input: "elen síla" (Latin Sindarin)
Output: [Tengwar PUA] (requires Tengwar font to render)
Kryptonien : Latin → Kryptonian (x-kryptonian)
Mappage de script kryptonien du lexique fan.
Input: "Kal-El"
Output: [Kryptonian PUA] (requires Kryptonian font to render)
Déclencher un Convertisseur
Définissez le champ scripts dans votre configuration de langue. Pour les convertisseurs intégrés, ceci est auto-détecté à partir du code de langue :
{
"languages": {
"sr": { "scripts": "sr" },
"crk": {}
}
}
Le cri des Plaines (crk) auto-détecte — vous n'avez pas besoin de définir scripts explicitement.
Langues Multi-Script
Certaines langues réelles utilisent plusieurs scripts actifs :
| Langue | Scripts | Approche champollion |
|---|---|---|
| Serbe | Latin + Cyrillique | Convertisseur de script (sr) — traduire en latin, convertir en cyrillique |
| Chinois | Simplifié + Traditionnel | Codes de locale distincts (zh vs zh-TW) avec registres distincts |
Pour les langues où les deux scripts servent le même public (serbe), utilisez un convertisseur de script. Pour les langues où les scripts servent des publics différents (chinois simplifié pour la Chine continentale, traditionnel pour Taïwan/HK), utilisez des codes de locale distincts.
Notes sur l'Orthographe
Les registres ne sont pas seulement un ton — ils portent des instructions orthographiques qui orientent l'LLM vers les conventions d'écriture correctes.
Formes d'Adresse Formelle
Les registres intégrés de champollion incluent la forme d'adresse formelle culturellement appropriée pour chaque langue :
| Langue | Forme Formelle | Instruction de Registre |
|---|---|---|
| Allemand | Sie | Use Sie-form for formal address |
| Français | vous | Use vous-form |
| Russe | вы | Professional register with вы-form |
| Turc | siz | Professional register with siz-form |
| Coréen | 합쇼체 | Formal Korean (합쇼체) |
| Japonais | です/ます | Polite professional register (です/ます form) |
| Polonais | Pan/Pani | Professional register with Pan/Pani form |
Écriture Inclusive du Genre
Chaque fiche de langue a un champ gender.inclusiveGuidance avec des conseils spécifiques à la langue. Ceci est injecté dans l'invite de traduction LLM séparément du préréglage de registre, donc il s'applique de manière cohérente quel que soit le préréglage de formalité que l'utilisateur choisit :
- Français : Écriture inclusive avec notation interpunct (p. ex., « Connecté·e »)
- Allemand : Notation Doppelpunkt (p. ex., « Benutzer:innen »)
- Espagnol : Restructuration neutre du genre préférée ; notation slash (p. ex., « usuario/a ») comme solution de secours
Pour les langues sans conseils spécifiques dans leur fiche (p. ex., coréen, conlangs), le système revient à une règle générique : « préférer les formes neutres du genre ou l'option la plus inclusive disponible ».
Exigences de Script RTL
Les registres arabe, hébreu, persan et ourdou notent tous les exigences droite-à-gauche : Ensure text reads naturally in RTL layout contexts.
Remplacer N'Importe Quel Registre
Chaque registre est une valeur de configuration — remplacez-le pour correspondre à la voix de votre projet :
{
"languages": {
"fr": {
"register": "Casual French. Use tu-form. Conversational blog tone. Gender-neutral when possible."
},
"de": {
"register": "Informal German. Use du-form. Tech startup voice."
}
}
}
Voir Configuration pour la référence de configuration complète.
Ajouter un Nouveau Conlang
Étape par étape
-
Choisissez un code d'usage privé BCP-47 : Utilisez le préfixe
x-(p. ex.,x-dothraki,x-valyrian). -
Ajoutez à votre configuration :
{
"languages": {
"x-dothraki": {
"register": "Dothraki language. Use David J. Peterson's vocabulary from the Living Language Dothraki textbook. Harsh, direct tone. No articles, no verb 'to be'."
}
}
}
-
(Optionnel) Ajoutez un convertisseur de script : Si votre conlang utilise un script d'affichage non-latin, ajoutez un convertisseur dans
lib/scripts.jset enregistrez-le dansSCRIPT_CONVERTERS. -
Testez : Exécutez
champollion sync --drypour prévisualiser les traductions sans écrire les fichiers. -
Vérifiez la porte de qualité : La porte de qualité peut nécessiter un ajustement pour votre conlang — particulièrement la vérification
requireNonLatinsi votre conlang utilise des caractères PUA.
:::note La qualité du conlang dépend de la connaissance de l'LLM L'LLM ne peut traduire que dans un conlang qu'il a vu dans les données d'entraînement. Les conlangs bien documentés (klingon, sindarin, dothraki) fonctionnent bien. Les conlangs obscurs ou nouvellement inventés peuvent produire des résultats incohérents. Utilisez les données de coaching pour améliorer la qualité. :::
Voir Aussi
- Langues Supportées — tableau de langue complet avec disponibilité des méthodes
- Convertisseurs de Script — détails techniques du pipeline de conversion
- Méthodes de Traduction — comment chaque méthode de traduction fonctionne
- Configuration — référence de configuration incluant la configuration de langue et de registre
- Support a Low-Resource Language — la même infrastructure appliquée aux langues réelles mal desservies