إضافة اللغات
Lingo.dev CLI يجعل من السهل توسيع مشروعك إلى لغات جديدة عن طريق إضافة اللغات المستهدفة إلى إعدادات i18n.json وتشغيل أمر واحد.
عند إضافة لغات جديدة، ينشئ CLI ملفات ترجمة كاملة للغات الجديدة مع الحفاظ على جميع الترجمات الموجودة والحفاظ على نفس نظام بصمات المحتوى.
إضافة أول لغة جديدة
لإضافة لغة جديدة، قم بتحديث مصفوفة targets في إعدادات i18n.json:
الإعدادات الأصلية:
{
"locale": {
"source": "en",
"targets": ["es", "fr"]
},
"buckets": {
"json": {
"include": ["locales/[locale].json"]
}
}
}
الإعدادات المحدثة مع الألمانية:
{
"locale": {
"source": "en",
"targets": ["es", "fr", "de"]
},
"buckets": {
"json": {
"include": ["locales/[locale].json"]
}
}
}
تشغيل npx lingo.dev@latest run ينشئ ملف الترجمة الألماني الجديد:
locales/
en.json (source - unchanged)
es.json (existing - unchanged)
fr.json (existing - unchanged)
de.json (new - fully translated)
كيفية عمل إنشاء اللغات الجديدة
Lingo.dev CLI يتعامل مع اللغات الجديدة بشكل مختلف عن اللغات الموجودة:
- اللغات الموجودة — يتم إنشاء الترجمات المفقودة فقط
- اللغات الجديدة — يتم إنشاء ملفات ترجمة كاملة من الصفر
مثال مع ترجمات موجودة جزئية:
// locales/en.json (source)
{
"welcome": "Welcome",
"button.save": "Save",
"error.network": "Network error"
}
// locales/es.json (existing with missing translations)
{
"welcome": "Bienvenido"
}
بعد إضافة الألمانية وتشغيل CLI:
// locales/es.json (gaps filled)
{
"welcome": "Bienvenido",
"button.save": "Guardar",
"error.network": "Error de red"
}
// locales/de.json (complete new file)
{
"welcome": "Willkommen",
"button.save": "Speichern",
"error.network": "Netzwerkfehler"
}
إضافة لغات متعددة
يمكنك إضافة لغات متعددة في وقت واحد:
{
"locale": {
"source": "en",
"targets": ["es", "fr", "de", "ja", "zh"]
}
}
يعالج CLI جميع اللغات الجديدة، وينشئ ملفات ترجمة كاملة لكل لغة جديدة.
المتغيرات الإقليمية
Lingo.dev CLI يدعم المتغيرات الإقليمية للغات باستخدام علامات لغة BCP 47:
{
"locale": {
"source": "en-US",
"targets": ["en-GB", "es-ES", "es-MX", "fr-FR", "fr-CA"]
}
}
ينتج هذا ملفات ترجمة مميزة لكل متغير إقليمي، مع مراعاة الاختلافات في المصطلحات والإملاء والسياق الثقافي.
تأثير بنية الملفات
ينشئ واجهة سطر الأوامر ملفات جديدة تتبع أنماط الحاويات الخاصة بك. لتنسيقات الملفات المختلفة:
حاويات JSON:
locales/[locale].json → locales/de.json, locales/ja.json
حاويات Markdown:
content/[locale]/*.md → content/de/*.md, content/ja/*.md
البنى المتداخلة:
app/[locale]/messages.json → app/de/messages.json, app/ja/messages.json
إضافة لغة مستهدفة
يمكنك إنشاء ترجمات للغات جديدة محددة باستخدام علامة --target-locale:
npx lingo.dev@latest run --target-locale de
ينتج هذا الترجمات الألمانية فقط، مع ترك اللغات الجديدة الأخرى للمعالجة لاحقاً.
إزالة لغة
لإزالة لغة، ما عليك سوى إزالتها من مصفوفة targets. لن تحذف واجهة سطر الأوامر الملفات الموجودة، لكنها ستتوقف عن معالجة تلك اللغة:
{
"locale": {
"source": "en",
"targets": ["es", "fr"]
}
}
يمكنك حذف ملفات الترجمة المقابلة يدوياً إذا لزم الأمر.