إعادة تسمية المفاتيح
Lingo.dev CLI يكتشف تلقائيًا عند إعادة تسمية مفاتيح الترجمة ويحافظ على الترجمات الموجودة، مما يتجنب إعادة الترجمة غير الضرورية عندما يتغير معرّف المفتاح فقط.
عند إعادة هيكلة الكود وإعادة تسمية المفاتيح لتحسين التنظيم، يتعرف CLI على أن المحتوى هو نفسه ويطبق الترجمات الموجودة على أسماء المفاتيح الجديدة.
كيفية عمل إعادة تسمية المفاتيح
Lingo.dev CLI يقارن بصمات المحتوى، وليس أسماء المفاتيح، لتتبع الترجمات. عند إعادة تسمية مفتاح مع الحفاظ على نفس المحتوى، يكتشف CLI هذا النمط ويحافظ على الترجمات الموجودة.
مثال توضيحي:
// locales/en.json (before refactoring)
{
"welcome_msg": "Welcome to our platform",
"btn_save": "Save"
}
// locales/es.json (existing translations)
{
"welcome_msg": "Bienvenido a nuestra plataforma",
"btn_save": "Guardar"
}
بعد إعادة هيكلة أسماء المفاتيح:
// locales/en.json (after refactoring)
{
"homepage.welcome": "Welcome to our platform",
"button.save": "Save"
}
تشغيل npx lingo.dev@latest run يحافظ على الترجمات الموجودة:
// locales/es.json (translations preserved)
{
"homepage.welcome": "Bienvenido a nuestra plataforma",
"button.save": "Guardar"
}
يتعرف CLI على أن المحتوى متطابق ويطبق الترجمات الموجودة على هيكل المفاتيح الجديد.
متى يتم اكتشاف إعادة تسمية المفاتيح
Lingo.dev CLI يكتشف إعادة تسمية المفاتيح عندما:
- يتغير اسم المفتاح (
welcome_msg←homepage.welcome) - يبقى محتوى المصدر متطابقًا (
"Welcome to our platform") - يظهر المفتاح في نفس إعدادات الحاوية
متى لا يتم اكتشاف إعادة تسمية المفاتيح
يتعامل CLI مع هذه الحالات كمحتوى جديد يتطلب إعادة ترجمة:
تغييرات المحتوى:
// Before
{
"welcome": "Welcome to our app"
}
// After
{
"welcome": "Welcome to our platform"
}
تغيير المفتاح والمحتوى معًا:
// Before
{
"old_key": "Old content"
}
// After
{
"new_key": "New content"
}
إعادة هيكلة المفاتيح بشكل جماعي
اكتشاف إعادة تسمية المفاتيح يعمل مع عمليات إعادة الهيكلة الكبيرة. يمكنك إعادة تنظيم هيكل المفاتيح بالكامل وسيحافظ CLI على جميع الترجمات المطابقة.
قبل إعادة الهيكلة:
{
"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 run --force
يتجاوز هذا اكتشاف إعادة تسمية المفاتيح ويعيد ترجمة جميع المحتوى، وهو مفيد عندما تريد ترجمات جديدة بعد تغيير نماذج الذكاء الاصطناعي أو المطالبات.
لمزيد من المعلومات حول إعادة الترجمة، راجع إعادة الترجمة.