تجاهل المفاتيح
يتيح لك Lingo.dev CLI تجاهل مفاتيح ترجمة محددة بحيث يتم استبعادها تمامًا من معالجة الترجمة. لا يتم نسخ المفاتيح المتجاهلة إلى الملفات المستهدفة وتظل دون تغيير أثناء عمليات CLI.
عند تجاهل المفاتيح، يتخطاها CLI بالكامل أثناء اكتشاف المحتوى وإنشاء الترجمة.
إعداد تجاهل المفاتيح
أضف 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 CLI بـ:
- تحديد المفاتيح المتجاهلة من التكوين الخاص بك
- استبعادها من اكتشاف المحتوى — لا تتم معالجة المفاتيح المتجاهلة أبدًا
- تخطيها في الملفات المستهدفة — لا تظهر المفاتيح المتجاهلة في الترجمات المُنشأة
- الحفاظ على الفصل بين محتوى التطوير والإنتاج
مثال على سير العمل:
// locales/en.json (source)
{
"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 (generated)
{
"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"
]
}
يعمل هذا التدوين مع الهياكل المتداخلة المعقدة:
// Source structure
{
"development": {
"logging": {
"level": "verbose"
}
}
}
يستبعد المسار development/logging/level هذا التكوين من الترجمة.
المفاتيح التي تحتوي على نقاط
يتعامل تدوين الشرطة المائلة للأمام مع المفاتيح التي تحتوي على نقاط في أسمائها:
// Source with dotted key names
{
"dev": {
"api.mock": "Mock API enabled",
"cache.clear": "Clear cache on startup"
}
}
تجاهل هذه المفاتيح باستخدام:
{
"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):
- يتم تضمين المفاتيح في معالجة الترجمة لكن القيم تظل دون تغيير
- تظهر المفاتيح المقفلة في الملفات المستهدفة بنفس قيم المصدر
- تُستخدم للمعرفات التقنية أو أسماء المكونات أو القيم التي يجب أن تبقى متسقة
مثال للمقارنة:
// Source file
{
"welcome": "Welcome",
"system": {
"component": "Lingo.dev Engine"
},
"internal": {
"debug": "Debug enabled"
}
}
// Configuration
{
"lockedKeys": ["system/component"],
"ignoredKeys": ["internal/debug"]
}
// Generated target file
{
"welcome": "Bienvenido",
"system": {
"component": "Lingo.dev Engine"
}
// internal/debug is completely missing
}