الانتقال إلى المحتوى الرئيسي

اللغات المصطنعة والكتابات وقواعد الإملاء

يوفّر champollion دعمًا متكاملًا للغات المصطنعة (conlangs) عبر سجلات LLM ومحوّلات كتابة حتمية. يشرح هذا الدليل كيفية عمل دعم اللغات المصطنعة، والخطوط التي تحتاجها، وكيفية إضافة لغتك الخاصة.

:::tip لماذا تهم اللغات المصطنعة اللغات المصطنعة ليست مجرد طرافة — فهي تختبر البنية التحتية نفسها تمامًا المستخدمة للغات الحقيقية قليلة الموارد. تعمل بوابة الجودة ونظام التدريب وخط أنابيب تحويل الكتابة بشكل متطابق مع لغة الكلينغون ولغة Plains Cree. إذا كان خط أنابيب لغتك المصطنعة يعمل، فسيعمل خط أنابيب لغتك قليلة الموارد أيضًا. :::


اللغات المصطنعة المدعومة

اللغةالرمزمحوّل الكتابةالخط المطلوب
الكلينغونtlh✅ الكتابة اللاتينية ← pIqaDخط PUA (مثل pIqaD qolqoS)
السندارين (لغة الجان عند Tolkien)x-elvish-s✅ اللاتينية ← Tengwarخط CSUR PUA
الكريبتونيةx-kryptonian✅ اللاتينية ← الكريبتونيةخط PUA
الإنجليزية بلهجة القراصنةx-pirate❌ سجل فقطلا شيء
الإنجليزية الشكسبيريةx-shakespeare❌ سجل فقطلا شيء
أسلوب Yodax-yoda❌ سجل فقطلا شيء

تستخدم رموز اللغات المصطنعة البادئة x- وفقًا لاتفاقية الاستخدام الخاص في BCP-47، باستثناء الكلينغون (tlh) التي لديها رمز ISO 639-3 مخصص من قِبل SIL International.


Unicode ومنطقة PUA ومتطلبات الخطوط

منطقة الاستخدام الخاص (Private Use Area)

تستخدم الكلينغون (pIqaD) والسندارين (Tengwar) والكريبتونية محارف منطقة الاستخدام الخاص (PUA) في Unicode. تمتد منطقة PUA على النطاق U+E000–U+F8FF — وهذه النقاط الترميزية ليس لها تعيين قياسي. يحافظ سجل ConScript Unicode‏ (CSUR) على تعيينات متفق عليها مجتمعيًا للكتابات الخيالية، لكنها ليست جزءًا من معيار Unicode.

ما يعنيه هذا عمليًا:

  • يظهر نص PUA على شكل مربعات فارغة (□□□) من دون تحميل الخط الصحيح
  • قد تعيّن خطوط مختلفة محارف مختلفة لنفس النقاط الترميزية في PUA
  • لا يتضمن champollion خطوط PUA — يجب عليك تحميلها بنفسك
  • لن تعرض خطوط النظام هذه المحارف أبدًا

نطاقات PUA حسب الكتابة

الكتابةنطاق PUAمرجع CSUR
الكلينغون (pIqaD)U+F8D0–U+F8FFCSUR Klingon
Tengwar (لغة الجان)U+E000–U+E07FCSUR Tengwar
الكريبتونيةيختلف حسب الخطلا يوجد معيار CSUR

تحميل خطوط الويب لمنطقة PUA

يتضمن champollion أمرًا مدمجًا لتنزيل خطوط الويب الخاصة بمنطقة 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

ينزّل الأمر fonts install من مستودعات مفتوحة المصدر موثوقة:

الخطالكتابةالترخيصالمصدر
pIqaD qolqoSالكلينغونSIL Open Font License 1.1GitHub
FreeMonoTengwarTengwarGNU GPL v3 (مع استثناء الخطوط)SourceForge
(يوفره المستخدم)الكريبتونيةمتفاوتلا يتوفر خط PUA مفتوح المصدر

يتم اكتشاف دليل الإخراج تلقائيًا من بنية مشروعك (Docusaurus ← static/fonts/، Hugo ← static/fonts/، الافتراضي ← public/fonts/). يمكنك التجاوز باستخدام --dir.

إذا كنت تفضّل إدارة الخطوط يدويًا، أضف قواعد @font-face في ملف 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 دعم Unicode غير مضمون رفض اتحاد Unicode صراحةً ترميز الكتابات الخيالية في المعيار. تعيينات PUA يحافظ عليها المجتمع وقد تتعارض بين تطبيقات الخطوط المختلفة. حدّد دائمًا الخط الدقيق الذي يستخدمه مشروعك، واختبر العرض عبر المتصفحات. :::


محوّلات الكتابة

كيف تعمل

تحويل الكتابة في champollion هو خطوة لاحقة للترجمة (post-translation hook):

  1. يترجم نموذج LLM النص إلى كتابة عمل (عادةً اللاتينية أو SRO)
  2. تتحقق بوابة الجودة من صحة المخرجات
  3. يحوّل المحوّل الحتمي النص المُتحقَّق منه إلى كتابة العرض
  4. يُكتب النص المحوَّل على القرص

ينجح هذا النهج ذو الخطوتين لأن نماذج LLM تنتج مخرجات أفضل عند العمل بالكتابات المبنية على اللاتينية. ويضمن المحوّل الحتمي إخراج الكتابة الصحيحة دون الاعتماد على معرفة النموذج بالكتابة (وهي غالبًا غير موثوقة).

المحوّلات الخمسة جميعها

يأتي champollion مزوّدًا بخمسة محوّلات كتابة مدمجة:

Plains Cree: ‏SRO ← المقطعية (crk)

من الكتابة الرومانية القياسية (Standard Roman Orthography) إلى المقطعية الكندية للشعوب الأصلية (Canadian Aboriginal Syllabics).

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

تستخدم حروف العلة الطويلة علامة الماكرون أو القبعة: ê وî وô وâ. يتعامل المحوّل مع جميع علامات التشكيل في SRO ويعيّنها إلى المحارف المقطعية الصحيحة. راجع دعم لغة قليلة الموارد للاطلاع على خط أنابيب لغة Cree الكامل.

الصربية: اللاتينية ← السيريلية (sr)

تحويل حتمي من اللاتينية إلى السيريلية للغة الصربية.

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

يتعامل هذا مع التعيين الكامل للأبجدية الصربية بما في ذلك الحروف المزدوجة (lj ← љ، nj ← њ، dž ← џ).

الكلينغون: الكتابة اللاتينية ← pIqaD (tlh)

من نظام الكتابة اللاتينية الذي وضعه Marc Okrand إلى محارف pIqaD في منطقة PUA.

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

السندارين: اللاتينية ← Tengwar (x-elvish-s)

تعيين Tengwar بنمط السندارين الذي وضعه Tolkien.

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

الكريبتونية: اللاتينية ← الكريبتونية (x-kryptonian)

تعيين كتابة الكريبتونية المستند إلى معجم المعجبين.

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

تفعيل محوّل

عيّن الحقل scripts في إعدادات اللغة الخاصة بك. بالنسبة للمحوّلات المدمجة، يُكتشف هذا تلقائيًا من رمز اللغة:

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

تُكتشف لغة Plains Cree ‏(crk) تلقائيًا — لا تحتاج إلى تعيين scripts صراحةً.


اللغات متعددة الكتابات

تستخدم بعض اللغات الحقيقية أكثر من كتابة نشطة:

اللغةالكتاباتنهج champollion
الصربيةاللاتينية + السيريليةمحوّل كتابة (sr) — الترجمة باللاتينية ثم التحويل إلى السيريلية
الصينيةالمبسّطة + التقليديةرموز لغة منفصلة (zh مقابل zh-TW) مع سجلات مميزة

بالنسبة للغات التي تخدم فيها الكتابتان الجمهور نفسه (الصربية)، استخدم محوّل كتابة. أما اللغات التي تخدم فيها الكتابتان جمهورين مختلفين (الصينية المبسّطة للصين القارية، والتقليدية لتايوان/هونغ كونغ)، فاستخدم رموز لغة منفصلة.


ملاحظات حول قواعد الإملاء

السجلات ليست مجرد نبرة — فهي تحمل تعليمات إملائية توجّه نموذج LLM نحو اصطلاحات الكتابة الصحيحة.

صيغ المخاطبة الرسمية

تتضمن سجلات champollion المدمجة صيغة المخاطبة الرسمية المناسبة ثقافيًا لكل لغة:

اللغةالصيغة الرسميةتعليمات السجل
الألمانيةSieUse Sie-form for formal address
الفرنسيةvousUse vous-form
الروسيةвыProfessional register with вы-form
التركيةsizProfessional register with siz-form
الكورية합쇼체Formal Korean (합쇼체)
اليابانيةです/ますPolite professional register (です/ます form)
البولنديةPan/PaniProfessional register with Pan/Pani form

الكتابة الشاملة للجنسين

تحتوي بطاقة كل لغة على حقل gender.inclusiveGuidance يتضمن إرشادات خاصة بكل لغة. يُدرَج هذا الحقل في موجّه ترجمة LLM بشكل منفصل عن الإعداد المسبق للسجل، بحيث يُطبَّق باتساق بغض النظر عن إعداد الرسمية المسبق الذي يختاره المستخدم:

  • الفرنسية: الكتابة الشاملة (Écriture inclusive) باستخدام النقطة الوسطى (مثل "Connecté·e")
  • الألمانية: ترميز النقطتين الرأسيتين (Doppelpunkt) (مثل "Benutzer:innen")
  • الإسبانية: يُفضَّل إعادة الصياغة بصيغ محايدة للجنس؛ ويُستخدم ترميز الشرطة المائلة (مثل "usuario/a") كبديل احتياطي

بالنسبة للغات التي لا توجد إرشادات محددة في بطاقتها (مثل الكورية واللغات المصطنعة)، يلجأ النظام إلى قاعدة عامة: "فضّل الصيغ المحايدة للجنس أو الخيار الأكثر شمولًا المتاح."

متطلبات الكتابات من اليمين إلى اليسار (RTL)

تشير سجلات العربية والعبرية والفارسية والأردية جميعها إلى متطلبات الكتابة من اليمين إلى اليسار: Ensure text reads naturally in RTL layout contexts.

تجاوز أي سجل

كل سجل هو قيمة في الإعدادات — يمكنك تجاوزه ليطابق أسلوب مشروعك:

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

راجع الإعدادات للاطلاع على مرجع الإعدادات الكامل.


إضافة لغة مصطنعة جديدة

خطوة بخطوة

  1. اختر رمز استخدام خاص وفق BCP-47: استخدم البادئة x- (مثل x-dothraki وx-valyrian).

  2. أضفها إلى إعداداتك:

{
"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. (اختياري) أضف محوّل كتابة: إذا كانت لغتك المصطنعة تستخدم كتابة عرض غير لاتينية، أضف محوّلًا في lib/scripts.js وسجّله في SCRIPT_CONVERTERS.

  2. اختبر: شغّل champollion sync --dry لمعاينة الترجمات دون كتابة ملفات.

  3. تحقق من بوابة الجودة: قد تحتاج بوابة الجودة إلى ضبط للغتك المصطنعة — لا سيما فحص requireNonLatin إذا كانت لغتك المصطنعة تستخدم محارف PUA.

:::note جودة اللغة المصطنعة تعتمد على معرفة نموذج LLM لا يستطيع نموذج LLM الترجمة إلا إلى لغة مصطنعة رآها في بيانات التدريب. اللغات المصطنعة الموثّقة جيدًا (الكلينغون، السندارين، الدوثراكية) تعمل بشكل جيد. أما اللغات المصطنعة الغامضة أو المخترعة حديثًا فقد تنتج نتائج غير متسقة. استخدم بيانات التدريب لتحسين الجودة. :::


انظر أيضًا