Mga Script Converter
Ang mga script converter ay deterministiko, walang LLM na mga post-translation hook na nagko-convert ng teksto mula sa isang sistema ng pagsulat patungo sa iba. Pinapagana ng mga ito ang workflow na "magsalin nang isang beses, i-render sa maraming script" — nagsasalin kayo sa isang working script (karaniwang Latin), pagkatapos ay awtomatikong iko-convert sa display script.
Bakit Script Converters?
Gumagamit ang ilang wika ng maraming script para sa parehong sinasalitang wika:
- Plains Cree: SRO (Latin) para sa pag-edit → Syllabics (ᓀᐦᐃᔭᐍᐏᐣ) para sa display
- Serbian: Latin para sa pandaigdigang paggamit → Cyrillic para sa lokal na paggamit
- Klingon: Romanization para sa pagta-type → pIqaD ( ) para sa display
Lumilikha ng mga problema ang direktang pagsasalin sa mga non-Latin script: nagha-hallucinate ang mga LLM ng mga character, nagiging mahirap i-version-control ang mga JSON file, at hindi maihambing ng mga diff tool ang mga pagbabago. Nilulutas ito ng mga script converter sa pamamagitan ng pagpapanatili ng mga salin sa isang script na madaling gamitin sa version control at deterministikong pagko-convert sa sync time.
Mga Available na Converter
May kasamang limang built-in na script converter ang Champollion:
| Locale | Mula | Patungo | Uri | Kailangan ang Font? |
|---|---|---|---|---|
crk | SRO (Standard Roman Orthography) | Cree Syllabics | Deterministiko | Hindi — native Unicode |
sr | Latin | Cyrillic | Deterministiko | Hindi — native Unicode |
tlh | Romanization | pIqaD | Deterministiko | Oo — PUA U+F8D0–F8FF |
x-elvish-s | Latin | Tengwar (Mode of Beleriand) | Deterministiko | Oo — PUA U+E000–E07F |
x-kryptonian | Latin | Kryptonian | Cipher na batay sa font | Oo — PUA U+E100–E119 |
Deterministiko vs. Batay sa Font
- Ang mga deterministikong converter (Cree, Serbian, Klingon, Tengwar) ay nagsasagawa ng tunay na character-to-character mapping gamit ang mga tuntuning lingguwistiko. Naglalaman ang output ng mga aktuwal na Unicode character.
- Ang mga converter na batay sa font (Kryptonian) ay mga 1:1 substitution cipher kung saan ang output ay mga Unicode PUA character na tama lamang na nare-render kapag naka-load ang isang partikular na font.
Paano Gumagana ang mga Ito
Tumatakbo ang mga script converter pagkatapos ng pagsasalin bilang isang post-processing step. Ang pipeline ay:
Source (English) → LLM Translation → Working Script → Script Converter → Display Script
Halimbawa, Plains Cree:
"Welcome" → LLM → "tānisi" (SRO) → Converter → "ᑖᓂᓯ" (Syllabics)
Greedy Left-to-Right Matching
Gumagamit ang lahat ng converter ng parehong algorithm: sa bawat posisyon ng character, susubukan muna ang pinakamahabang posibleng match, pagkatapos ay unti-unting susubukan ang mas maiikling match. Ang mga character na hindi tumutugma sa anumang pattern (mga espasyo, bantas, numero) ay ipinapasa nang hindi binabago.
Tama nitong hinahawakan ang mga digraph at trigraph:
- Klingon:
tlh→ iisang pIqaD character (hindit+l+h) - Serbian:
nj→њ(hindiн+ј) - Cree:
twê→ iisang syllabic (hindit+w+ê)
Paggamit ng mga Script Converter
Awtomatikong naa-activate ang mga script converter kapag tumutugma ang locale code sa isang nakarehistrong converter. Walang kailangang configuration — itakda lamang ang inyong target locale:
{
"pairs": {
"en:crk": {
"method": "llm-coached",
"model": "google/gemini-2.5-pro"
}
}
}
Kapag sine-sync ng champollion ang pares na en:crk, unang ginagawa ang mga salin sa SRO, pagkatapos ay awtomatikong iko-convert sa Syllabics bago isulat sa crk.json.
Pagsuri sa Status ng Converter
npx champollion status
Ipinapakita ng status output kung aling mga pares ang may aktibong script converter at kung anong conversion ang ginagawa ng mga ito.
Mga Kinakailangan sa Web Font
Tatlong converter ang naglalabas ng mga Unicode Private Use Area (PUA) character na nangangailangan ng mga custom web font:
Klingon (pIqaD)
Mag-install ng CSUR-compatible na pIqaD font (hal., "pIqaD qolqoS" o "Klingon pIqaD HaSta"):
@font-face {
font-family: 'pIqaD';
src: url('/fonts/pIqaD.woff2') format('woff2');
unicode-range: U+F8D0-F8FF;
}
:lang(tlh) {
font-family: 'pIqaD', sans-serif;
}
Tengwar (Sindarin)
Mag-install ng CSUR-compatible na Tengwar font (hal., "Tengwar Formal CSUR", "Tengwar Annatar"):
@font-face {
font-family: 'Tengwar';
src: url('/fonts/tengwar-formal-csur.woff2') format('woff2');
unicode-range: U+E000-E07F;
}
:lang(x-elvish-s) {
font-family: 'Tengwar', serif;
}
Kryptonian
Mag-install ng Kryptonian font na naka-map sa mga PUA codepoint na U+E100–E119:
@font-face {
font-family: 'Kryptonian';
src: url('/fonts/kryptonian.woff2') format('woff2');
unicode-range: U+E100-E119;
}
:lang(x-kryptonian) {
font-family: 'Kryptonian', sans-serif;
}
:::tip Alternatibong paraan para sa Kryptonian
Dahil ang Kryptonian ay isang purong A-Z cipher, maaari ninyong laktawan nang buo ang script converter at ilapat ang font sa Latin text sa pamamagitan ng CSS. Madalas itong mas simple para sa mga web deployment — i-serve lamang ang Kryptonian font at itakda ang font-family sa mga kaugnay na elemento.
:::
Pagdaragdag ng Custom Converter
Upang magdagdag ng converter para sa isang bagong wika, i-edit ang lib/scripts.js:
- Gawin ang conversion map — isang nakaayos na array ng mga pares na
[from, to], na nauuna ang pinakamahahabang sequence - Gawin ang converter function — isang greedy left-to-right scanner (gamitin ang
sroToSyllabicsbilang template) - Irehistro ito sa object na
SCRIPT_CONVERTERSgamit ang locale code bilang key - Idagdag ang field na
scriptsa register entry ng wika saregisters.js
// Example: adding a converter for Cherokee (chr)
const LATIN_TO_CHEROKEE_MAP = [
['ga', 'Ꭶ'], ['ka', 'Ꭷ'], ['ge', 'Ꭸ'], // ...
];
function latinToCherokee(text) {
// Same greedy left-to-right pattern as other converters
}
SCRIPT_CONVERTERS['chr'] = {
from: 'Latin',
to: 'Cherokee Syllabary',
type: 'deterministic',
converter: latinToCherokee,
};
Tingnan Din
- Conlangs, Mga Script at Ortograpiya — mga PUA font, Unicode, pagdaragdag ng mga bagong converter
- Quality Gate — validation na tumatakbo bago ang script conversion
- Mga Sinusuportahang Wika — kung aling mga wika ang may mga script converter
- Suportahan ang isang Low-Resource na Wika — SRO→Syllabics sa konteksto
- Cookbook: FST-Gated Pipeline — script conversion sa isang multi-stage pipeline