اللغات المصطنعة والكتابات وقواعد الإملاء
يوفّر 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 | ❌ سجل فقط | لا شيء |
| أسلوب Yoda | x-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+F8FF | CSUR Klingon |
| Tengwar (لغة الجان) | U+E000–U+E07F | CSUR 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.1 | GitHub |
| FreeMonoTengwar | Tengwar | GNU 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):
- يترجم نموذج LLM النص إلى كتابة عمل (عادةً اللاتينية أو SRO)
- تتحقق بوابة الجودة من صحة المخرجات
- يحوّل المحوّل الحتمي النص المُتحقَّق منه إلى كتابة العرض
- يُكتب النص المحوَّل على القرص
ينجح هذا النهج ذو الخطوتين لأن نماذج 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 المدمجة صيغة المخاطبة الرسمية المناسبة ثقافيًا لكل لغة:
| اللغة | الصيغة الرسمية | تعليمات السجل |
|---|---|---|
| الألمانية | Sie | Use Sie-form for formal address |
| الفرنسية | vous | Use vous-form |
| الروسية | вы | Professional register with вы-form |
| التركية | siz | Professional register with siz-form |
| الكورية | 합쇼체 | Formal Korean (합쇼체) |
| اليابانية | です/ます | Polite professional register (です/ます form) |
| البولندية | Pan/Pani | Professional 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."
}
}
}
راجع الإعدادات للاطلاع على مرجع الإعدادات الكامل.
إضافة لغة مصطنعة جديدة
خطوة بخطوة
-
اختر رمز استخدام خاص وفق BCP-47: استخدم البادئة
x-(مثلx-dothrakiوx-valyrian). -
أضفها إلى إعداداتك:
{
"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'."
}
}
}
-
(اختياري) أضف محوّل كتابة: إذا كانت لغتك المصطنعة تستخدم كتابة عرض غير لاتينية، أضف محوّلًا في
lib/scripts.jsوسجّله فيSCRIPT_CONVERTERS. -
اختبر: شغّل
champollion sync --dryلمعاينة الترجمات دون كتابة ملفات. -
تحقق من بوابة الجودة: قد تحتاج بوابة الجودة إلى ضبط للغتك المصطنعة — لا سيما فحص
requireNonLatinإذا كانت لغتك المصطنعة تستخدم محارف PUA.
:::note جودة اللغة المصطنعة تعتمد على معرفة نموذج LLM لا يستطيع نموذج LLM الترجمة إلا إلى لغة مصطنعة رآها في بيانات التدريب. اللغات المصطنعة الموثّقة جيدًا (الكلينغون، السندارين، الدوثراكية) تعمل بشكل جيد. أما اللغات المصطنعة الغامضة أو المخترعة حديثًا فقد تنتج نتائج غير متسقة. استخدم بيانات التدريب لتحسين الجودة. :::
انظر أيضًا
- اللغات المدعومة — جدول اللغات الكامل مع توفر الطرق
- محوّلات الكتابة — التفاصيل التقنية لخط أنابيب التحويل
- طرق الترجمة — كيف تعمل كل طريقة من طرق الترجمة
- الإعدادات — مرجع الإعدادات بما في ذلك إعداد اللغات والسجلات
- دعم لغة قليلة الموارد — البنية التحتية نفسها مطبّقة على لغات حقيقية قليلة الموارد