Ir al contenido principal

Lenguajes Construidos, Escrituras y Ortografía

champollion tiene soporte de primera clase para lenguajes construidos mediante registros LLM y convertidores de escritura determinísticos. Esta guía cubre cómo funciona el soporte para conlangs, qué fuentes necesita, y cómo agregar las suyas.

:::tip Por qué los conlangs importan Los conlangs no son solo una novedad — ejercitan exactamente la misma infraestructura utilizada para lenguajes reales desatendidos. La puerta de calidad, el sistema de coaching y la tubería de conversión de escritura funcionan idénticamente para Klingon y Plains Cree. Si su tubería de conlang funciona, su tubería de lenguaje de bajo recurso también lo hará. :::


Lenguajes Construidos Soportados

LenguajeCódigoConvertidor de EscrituraFuente Requerida
Klingontlh✅ Romanización → pIqaDFuente PUA (p. ej., pIqaD qolqoS)
Sindarin (Élfico Tolkien)x-elvish-s✅ Latin → TengwarFuente PUA CSUR
Kryptonianox-kryptonian✅ Latin → KryptonianFuente PUA
Pirate Englishx-pirate❌ solo registroNinguna
Shakespearean Englishx-shakespeare❌ solo registroNinguna
Yoda-speakx-yoda❌ solo registroNinguna

Los códigos de conlang utilizan el prefijo x- según la convención de uso privado BCP-47, excepto Klingon (tlh) que tiene un código ISO 639-3 asignado por SIL International.


Unicode, PUA y Requisitos de Fuentes

El Área de Uso Privado

Klingon (pIqaD), Sindarin (Tengwar) y Kryptoniano utilizan caracteres Área de Uso Privado (PUA) de Unicode. PUA es el rango U+E000–U+F8FF — estos puntos de código no tienen asignación estándar. El Registro Unicode de ConScript (CSUR) mantiene asignaciones acordadas por la comunidad para escrituras ficticias, pero estas no forman parte del estándar Unicode.

Lo que esto significa en la práctica:

  • El texto PUA se renderiza como cuadros vacíos (□□□) sin la fuente correcta cargada
  • Diferentes fuentes pueden asignar glifos diferentes a los mismos puntos de código PUA
  • champollion NO incluye fuentes PUA — debe cargarlas usted mismo
  • Las fuentes del sistema nunca renderizarán estos caracteres

Rangos PUA por Escritura

EscrituraRango PUAReferencia CSUR
Klingon (pIqaD)U+F8D0–U+F8FFCSUR Klingon
Tengwar (Élfico)U+E000–U+E07FCSUR Tengwar
KryptonianoVaría según la fuenteSin estándar CSUR

Cargando Fuentes Web PUA

champollion incluye un comando integrado para descargar y gestionar fuentes 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

El comando fonts install descarga desde repositorios de código abierto verificados:

FuenteEscrituraLicenciaFuente
pIqaD qolqoSKlingonSIL Open Font License 1.1GitHub
FreeMonoTengwarTengwarGNU GPL v3 (con excepción de fuente)SourceForge
(proporcionada por el usuario)KryptonianoVaríaSin fuente PUA de código abierto disponible

El directorio de salida se detecta automáticamente desde la estructura de su proyecto (Docusaurus → static/fonts/, Hugo → static/fonts/, predeterminado → public/fonts/). Anule con --dir.

Si prefiere gestionar fuentes manualmente, agregue reglas @font-face en su 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 El soporte de Unicode NO está garantizado El Consorcio Unicode ha rechazado explícitamente codificar escrituras ficticias en el estándar. Las asignaciones PUA se mantienen por la comunidad y pueden entrar en conflicto entre implementaciones de fuentes. Siempre especifique la fuente exacta que su proyecto utiliza, y pruebe la renderización en navegadores. :::


Convertidores de Escritura

Cómo Funcionan

La conversión de escritura de champollion es un gancho posterior a la traducción:

  1. El LLM traduce el texto a una escritura de trabajo (generalmente Latin o SRO)
  2. La puerta de calidad valida la salida
  3. El convertidor determinístico transforma el texto validado a la escritura de visualización
  4. El texto convertido se escribe en disco

Este enfoque de dos pasos funciona porque los LLM producen mejor salida cuando trabajan en escrituras basadas en Latin. El convertidor determinístico garantiza salida de escritura correcta sin depender del conocimiento de escritura del modelo (a menudo poco confiable).

Los Cinco Convertidores

champollion se envía con cinco convertidores de escritura integrados:

Plains Cree: SRO → Silábicos (crk)

Ortografía Romana Estándar a Silábicos Aborígenes Canadienses.

Input: "tawâw"
Output: "ᑕᐚᐤ"

Las vocales largas utilizan macron/circunflejo: ê, î, ô, â. El convertidor maneja todos los diacríticos SRO y los asigna a los caracteres silábicos correctos. Vea Soporte para un Lenguaje de Bajo Recurso para la tubería completa de Cree.

Serbio: Latin → Cirílico (sr)

Conversión determinística de Latin a Cirílico para Serbio.

Input: "zdravo"
Output: "здраво"

Esto maneja la asignación completa del alfabeto serbio incluyendo dígrafos (lj → љ, nj → њ, dž → џ).

Klingon: Romanización → pIqaD (tlh)

Sistema de romanización de Marc Okrand a caracteres PUA pIqaD.

Input: "Qapla'" (romanized Klingon)
Output: [pIqaD PUA] (requires pIqaD font to render)

Sindarin: Latin → Tengwar (x-elvish-s)

Asignación de Tengwar en modo Sindarin de Tolkien.

Input: "elen síla" (Latin Sindarin)
Output: [Tengwar PUA] (requires Tengwar font to render)

Kryptoniano: Latin → Kryptonian (x-kryptonian)

Asignación de escritura Kryptoniana de léxico de aficionados.

Input: "Kal-El"
Output: [Kryptonian PUA] (requires Kryptonian font to render)

Activando un Convertidor

Establezca el campo scripts en su configuración de lenguaje. Para convertidores integrados, esto se detecta automáticamente desde el código de lenguaje:

{
"languages": {
"sr": { "scripts": "sr" },
"crk": {}
}
}

Plains Cree (crk) se detecta automáticamente — no necesita establecer scripts explícitamente.


Lenguajes Multi-Escritura

Algunos lenguajes reales utilizan múltiples escrituras activas:

LenguajeEscriturasEnfoque de champollion
SerbioLatin + CirílicoConvertidor de escritura (sr) — traducir en Latin, convertir a Cirílico
ChinoSimplificado + TradicionalCódigos de locale separados (zh vs zh-TW) con registros distintos

Para lenguajes donde ambas escrituras sirven a la misma audiencia (Serbio), use un convertidor de escritura. Para lenguajes donde las escrituras sirven a audiencias diferentes (Chino Simplificado para China continental, Tradicional para Taiwán/HK), use códigos de locale separados.


Notas de Ortografía

Los registros no son solo tono — llevan instrucciones ortográficas que dirigen el LLM hacia convenciones de escritura correctas.

Formas de Dirección Formal

Los registros integrados de champollion incluyen la dirección formal culturalmente apropiada para cada lenguaje:

LenguajeForma FormalInstrucción de Registro
AlemánSieUse Sie-form for formal address
FrancésvousUse vous-form
RusoвыProfessional register with вы-form
TurcosizProfessional register with siz-form
Coreano합쇼체Formal Korean (합쇼체)
Japonésです/ますPolite professional register (です/ます form)
PolacoPan/PaniProfessional register with Pan/Pani form

Escritura Inclusiva de Género

Cada tarjeta de lenguaje tiene un campo gender.inclusiveGuidance con consejos específicos del lenguaje. Esto se inyecta en el indicador de traducción del LLM separadamente del preajuste de registro, por lo que se aplica consistentemente independientemente de qué preajuste de formalidad elija el usuario:

  • Francés: Écriture inclusive con notación de interpunto (p. ej., "Connecté·e")
  • Alemán: Notación de dos puntos (p. ej., "Benutzer:innen")
  • Español: Reestructuración neutral de género preferida; notación de barra (p. ej., "usuario/a") como alternativa

Para lenguajes sin orientación específica en su tarjeta (p. ej., Coreano, conlangs), el sistema recurre a una regla genérica: "preferir formas neutras de género u la opción más inclusiva disponible."

Requisitos de Escritura RTL

Los registros de Árabe, Hebreo, Persa y Urdu todos notan requisitos de derecha a izquierda: Ensure text reads naturally in RTL layout contexts.

Anulando Cualquier Registro

Cada registro es un valor de configuración — anúlelo para que coincida con la voz de su proyecto:

{
"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."
}
}
}

Vea Configuración para la referencia de configuración completa.


Agregando un Nuevo Conlang

Paso a paso

  1. Elija un código de uso privado BCP-47: Utilice el prefijo x- (p. ej., x-dothraki, x-valyrian).

  2. Agregue a su configuración:

{
"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'."
}
}
}
  1. (Opcional) Agregue un convertidor de escritura: Si su conlang utiliza una escritura de visualización no-Latin, agregue un convertidor en lib/scripts.js y regístrelo en SCRIPT_CONVERTERS.

  2. Pruebe: Ejecute champollion sync --dry para previsualizar traducciones sin escribir archivos.

  3. Verifique la puerta de calidad: La puerta de calidad puede necesitar ajuste para su conlang — particularmente la verificación requireNonLatin si su conlang utiliza caracteres PUA.

:::note La calidad del conlang depende del conocimiento del LLM El LLM solo puede traducir a un conlang que ha visto en datos de entrenamiento. Los conlangs bien documentados (Klingon, Sindarin, Dothraki) funcionan bien. Los conlangs oscuros o recién inventados pueden producir resultados inconsistentes. Utilice datos de coaching para mejorar la calidad. :::


Véase También