تجاهل المفاتيح

تتيح لك واجهة سطر أوامر Lingo.dev تجاهل مفاتيح ترجمة محددة بحيث يتم استبعادها تمامًا من عملية الترجمة. لا يتم نسخ المفاتيح المتجاهلة إلى الملفات المستهدفة وتبقى دون تغيير أثناء عمليات واجهة سطر الأوامر.

عندما تتجاهل المفاتيح، تتخطاها واجهة سطر الأوامر تمامًا أثناء اكتشاف المحتوى وإنشاء الترجمة.

إعداد تجاهل المفاتيح

أضف ignoredKeys إلى تكوين الحاوية في ملف i18n.json:

{
  "locale": {
    "source": "en",
    "targets": ["es", "fr", "de"]
  },
  "buckets": {
    "json": {
      "include": ["locales/[locale].json"],
      "ignoredKeys": ["internal/debug", "dev/settings", "temp/cache"]
    }
  }
}

تستخدم مصفوفة ignoredKeys ترميز الشرطة المائلة للأمام (/) لتحديد المفاتيح المتداخلة.

كيفية عمل تجاهل المفاتيح

أثناء معالجة الترجمة، تقوم واجهة سطر أوامر Lingo.dev:

  1. بتحديد المفاتيح المتجاهلة من التكوين الخاص بك
  2. استبعادها من اكتشاف المحتوى — لا تتم معالجة المفاتيح المتجاهلة أبدًا
  3. تخطيها في الملفات المستهدفة — لا تظهر المفاتيح المتجاهلة في الترجمات المُنشأة
  4. الحفاظ على الفصل بين محتوى التطوير والإنتاج

مثال لسير العمل:

// locales/en.json (المصدر)
{
  "welcome": "Welcome to our platform",
  "system": {
    "component": "Lingo.dev CLI",
    "version": "1.0.0"
  },
  "internal": {
    "debug": "Debug mode enabled",
    "testData": "Sample test content"
  }
}

مع تكوين المفاتيح المتجاهلة:

{
  "ignoredKeys": ["internal/debug", "internal/testData"]
}

الترجمة الإسبانية المُنشأة:

// locales/es.json (المُنشأة)
{
  "welcome": "Bienvenido a nuestra plataforma",
  "system": {
    "component": "Lingo.dev CLI",
    "version": "1.0.0"
  }
}

تتم ترجمة المفاتيح غير المتجاهلة فقط. يتم استبعاد قسم internal بالكامل من الملفات المستهدفة.

مسارات المفاتيح المتداخلة

استخدم ترميز الشرطة المائلة للأمام (/) لتجاهل المفاتيح على أي عمق:

{
  "ignoredKeys": [
    "development/logging/level",
    "testing/mock/data",
    "admin/internal/config"
  ]
}

يعمل هذا الترميز مع الهياكل المتداخلة المعقدة:

// هيكل المصدر
{
  "development": {
    "logging": {
      "level": "verbose"
    }
  }
}

المسار development/logging/level يستبعد هذا التكوين من الترجمة.

المفاتيح التي تحتوي على نقاط

تتعامل طريقة الترميز بالشرطة المائلة للأمام مع المفاتيح التي تحتوي على نقاط في أسمائها:

// المصدر بأسماء مفاتيح منقطة
{
  "dev": {
    "api.mock": "تم تمكين واجهة برمجة التطبيقات الوهمية",
    "cache.clear": "مسح ذاكرة التخزين المؤقت عند بدء التشغيل"
  }
}

تجاهل هذه المفاتيح باستخدام:

{
  "ignoredKeys": ["dev/api.mock", "dev/cache.clear"]
}

أنواع متعددة من الحاويات

يمكن أن تحتوي تنسيقات الملفات المختلفة على مفاتيح متجاهلة مختلفة:

{
  "buckets": {
    "json": {
      "include": ["locales/[locale].json"],
      "ignoredKeys": ["internal/debug", "dev/settings"]
    },
    "yaml": {
      "include": ["translations/[locale].yml"],
      "ignoredKeys": ["test/data", "admin/config"]
    }
  }
}

يحتفظ كل نوع من أنواع الحاويات بقائمة المفاتيح المتجاهلة الخاصة به بناءً على هيكل المحتوى.

تجاهل المفاتيح مقابل قفل المفاتيح

تجاهل المفاتيح (ignoredKeys) وقفل المفاتيح (lockedKeys) يخدمان أغراضًا مختلفة:

تجاهل المفاتيح (ignoredKeys):

  • يتم استبعاد المفاتيح تمامًا من معالجة الترجمة
  • لا تظهر المفاتيح المتجاهلة في الملفات المستهدفة على الإطلاق
  • تُستخدم للتطوير أو الاختبار أو المحتوى الداخلي الذي لا ينبغي ترجمته

قفل المفاتيح (lockedKeys):

  • يتم تضمين المفاتيح في معالجة الترجمة ولكن تظل القيم دون تغيير
  • تظهر المفاتيح المقفلة في الملفات المستهدفة بقيم مصدر متطابقة
  • تُستخدم للمعرفات التقنية أو أسماء المكونات أو القيم التي يجب أن تظل متسقة

مثال للمقارنة:

// ملف المصدر
{
  "welcome": "Welcome",
  "system": {
    "component": "Lingo.dev Engine"
  },
  "internal": {
    "debug": "Debug enabled"
  }
}

// التكوين
{
  "lockedKeys": ["system/component"],
  "ignoredKeys": ["internal/debug"]
}

// ملف الهدف المُنشأ
{
  "welcome": "Bienvenido",
  "system": {
    "component": "Lingo.dev Engine"
  }
  // internal/debug مفقود تمامًا
}