DEV Community

Cover image for اختبار سريع لخط سير الترجمة
Yusuf Khalidd
Yusuf Khalidd

Posted on • Originally published at apidog.com

اختبار سريع لخط سير الترجمة

هذا منشور اختبار قصير يُستخدم للتحقق من ثلاثة سلوكيات في سير عمل ترجمة n8n: نسخ الفئة من المنشور المصدر، ترجمة المقتطف لكل لغة، وإعادة كتابة روابط المدونة الداخلية بحيث تشير كل نسخة مترجمة إلى مسارها المحلي بدل النسخة الإنجليزية الأصلية. إذا ظهر هذا المنشور على المدونة المباشرة، فاحذفه بعد اكتمال التحقق.

جرّب Apidog اليوم

لماذا يوجد هذا المنشور

كان سير عمل الترجمة في n8n يتجاهل سابقًا شارة الفئة وحقل المقتطف في المنشورات المترجمة. مثال ذلك أن النسخة البرتغالية من أحد دروس LLM لم تكن تحتوي على أي منهما.

كانت هناك مشكلة أخرى في الروابط الداخلية داخل المقالات المترجمة: بقيت تشير إلى عناوين URL الإنجليزية، مما يضعف مجموعات hreflang ويوجه القراء في اللغات الأخرى إلى الشروحات الإنجليزية بدل النسخ المحلية.

تم إصلاح السلوكين في آخر مراجعة لسير العمل. هذا المنشور يعمل كاختبار دخان للتأكد من أن الإصلاح يعمل فعليًا داخل Ghost.

ما الذي يجب أن يتحقق منه الاختبار

بعد نشر هذا المنشور، يجب أن يعمل مترجم n8n مرة واحدة وينتج 11 نسخة مترجمة في Ghost، سواء كمسودات أو منشورات منشورة.

تحقق من كل نسخة مترجمة وفق القائمة التالية:

  1. حقل custom_excerpt يحتوي على ترجمة للمقتطف الإنجليزي، ولا يكون فارغًا.
  2. حقل category يحمل الفئة Tutorials كما هي من المنشور المصدر.
  3. الروابط الداخلية داخل المحتوى تُعاد كتابتها إلى مسار اللغة المحلية.

مثال متوقع:

النسخة اليابانية:
https://apidog.com/jp/blog/free-cursor-ai/

وليس:
https://apidog.com/blog/free-cursor-ai/
Enter fullscreen mode Exit fullscreen mode

روابط لاختبار إعادة الكتابة

يستخدم هذا المنشور شكلين من الروابط عمدًا، لأن تعبير regex الخاص بإعادة الكتابة يجب أن يتعامل مع النمطين.

روابط مطلقة

روابط نسبية للجذر

إذا كانت عملية الترجمة سليمة، فيجب أن تعيد النسخة اليابانية كتابة الروابط الأربعة إلى هذا الشكل:

/jp/blog/{slug}/
Enter fullscreen mode Exit fullscreen mode

ويجب أن تصل النسخة الإندونيسية تحديدًا إلى:

/id/blog/{slug}/
Enter fullscreen mode Exit fullscreen mode

وليس:

/ig/blog/{slug}/
Enter fullscreen mode Exit fullscreen mode

كما يجب أن يتم إنشاء المنشور نفسه في Ghost باستخدام:

slug: …-id
tag: 1Locale ID
Enter fullscreen mode Exit fullscreen mode

هذا الجزء الأخير مرتبط بمتابعة الطلب 6.

أوامر تحقق سريعة بعد النشر

استخدم curl للتأكد من أن النسخة المترجمة متاحة وتعرض المحتوى المتوقع:

curl -I https://apidog.com/jp/blog/translation-pipeline-smoke-test/
Enter fullscreen mode Exit fullscreen mode

النتيجة المتوقعة:

HTTP/2 200
Enter fullscreen mode Exit fullscreen mode

بعد ذلك افتح الصفحة وتحقق يدويًا من الآتي:

  • ظهور شارة الفئة Tutorials
  • ظهور مقتطف ياباني تحت العنوان
  • إعادة كتابة الروابط الداخلية إلى /jp/blog/...
  • عدم بقاء الروابط الداخلية على مسار /blog/... الإنجليزي

يمكنك أيضًا فحص الروابط داخل الصفحة باستخدام:

curl -s https://apidog.com/jp/blog/translation-pipeline-smoke-test/ \
  | grep -o 'href="[^"]*"' \
  | grep 'apidog.com\|/jp/blog'
Enter fullscreen mode Exit fullscreen mode

قائمة تحقق عملية

قبل حذف منشور الاختبار، راجع هذه النقاط لكل نسخة مترجمة:

[ ] تم إنشاء النسخة في Ghost
[ ] custom_excerpt غير فارغ
[ ] category = Tutorials
[ ] الروابط الداخلية تشير إلى مسار اللغة الصحيح
[ ] النسخة الإندونيسية تستخدم /id/blog/
[ ] slug النسخة الإندونيسية ينتهي بـ -id
[ ] الوسم 1Locale ID موجود عند الحاجة
Enter fullscreen mode Exit fullscreen mode

التنظيف بعد التحقق

إذا كانت النسخ المترجمة الـ 11 صحيحة، فاحذف هذا المنشور وجميع ترجماته من Ghost، لأنها لا تملك قيمة إنتاجية.

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

Top comments (0)