إعادة تسمية المفاتيح

تكتشف واجهة سطر أوامر Lingo.dev تلقائيًا عند إعادة تسمية مفاتيح الترجمة وتحافظ على الترجمات الموجودة، مما يتجنب إعادة الترجمة غير الضرورية عندما يتغير فقط معرّف المفتاح.

عندما تقوم بإعادة هيكلة الكود وإعادة تسمية المفاتيح للحصول على تنظيم أفضل، تتعرف واجهة سطر الأوامر على أن المحتوى هو نفسه وتطبق الترجمات الموجودة على أسماء المفاتيح الجديدة.

كيف تعمل إعادة تسمية المفاتيح

تقارن واجهة سطر أوامر Lingo.dev بصمات المحتوى، وليس أسماء المفاتيح، لتتبع الترجمات. عندما تقوم بإعادة تسمية مفتاح مع الاحتفاظ بنفس المحتوى، تكتشف واجهة سطر الأوامر هذا النمط وتحافظ على الترجمات الموجودة.

سيناريو مثال:

// locales/en.json (قبل إعادة الهيكلة)
{
  "welcome_msg": "Welcome to our platform",
  "btn_save": "Save"
}

// locales/es.json (الترجمات الموجودة)
{
  "welcome_msg": "Bienvenido a nuestra plataforma",
  "btn_save": "Guardar"
}

بعد إعادة هيكلة أسماء المفاتيح:

// locales/en.json (بعد إعادة الهيكلة)
{
  "homepage.welcome": "Welcome to our platform",
  "button.save": "Save"
}

تشغيل npx lingo.dev@latest i18n يحافظ على الترجمات الموجودة:

// locales/es.json (تم الحفاظ على الترجمات)
{
  "homepage.welcome": "Bienvenido a nuestra plataforma",
  "button.save": "Guardar"
}

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

متى يتم اكتشاف إعادة تسمية المفاتيح

تكتشف واجهة سطر أوامر Lingo.dev إعادة تسمية المفاتيح عندما:

  • يتغير اسم المفتاح (welcome_msghomepage.welcome)
  • يبقى محتوى المصدر متطابقًا ("Welcome to our platform")
  • يظهر المفتاح في نفس تكوين المجموعة

متى لا يتم اكتشاف إعادة تسمية المفاتيح

تعامل واجهة سطر الأوامر هذه الحالات كمحتوى جديد يتطلب إعادة الترجمة:

تغييرات المحتوى:

// قبل
{
  "welcome": "Welcome to our app"
}

// بعد
{
  "welcome": "Welcome to our platform"
}

تغيير كل من المفتاح والمحتوى:

// قبل
{
  "old_key": "Old content"
}

// بعد
{
  "new_key": "New content"
}

إعادة هيكلة المفاتيح الشاملة

تعمل خاصية اكتشاف إعادة تسمية المفاتيح لعمليات إعادة الهيكلة الكبيرة. يمكنك إعادة تنظيم بنية المفاتيح بالكامل وستحافظ واجهة سطر الأوامر على جميع الترجمات المتطابقة.

قبل إعادة الهيكلة:

{
  "welcome_text": "Welcome",
  "save_btn": "Save",
  "cancel_btn": "Cancel",
  "error_network": "Network error"
}

بعد إعادة الهيكلة إلى مساحات الأسماء:

{
  "homepage.welcome": "Welcome",
  "buttons.save": "Save",
  "buttons.cancel": "Cancel",
  "errors.network": "Network error"
}

يتم الحفاظ على جميع الترجمات لأن بصمات المحتوى متطابقة.

فرض إعادة الترجمة

إذا كنت ترغب في إعادة ترجمة المحتوى على الرغم من تطابق البصمات، استخدم علامة --force:

npx lingo.dev@latest i18n --force

هذا يتجاوز اكتشاف إعادة تسمية المفاتيح ويعيد ترجمة جميع المحتوى، وهو مفيد عندما ترغب في الحصول على ترجمات جديدة بعد تغيير نماذج الذكاء الاصطناعي أو التوجيهات.

لمزيد من المعلومات حول إعادة الترجمة، راجع إعادة الترجمة.