الموقع بأكمله بخمس لغات في 12 دقيقة، من سطر الأوامر

هذا الموقع مكتوب باللغة الإنجليزية. وقد تمت ترجمة النسخ الألمانية والفرنسية والكرواتية والإسبانية والعربية — بما في ذلك 54 صفحة من الوثائق — باستخدام برنامج SwiftLing Pro من سطر الأوامر، بالاعتماد على OpenAI ومفتاحي الخاص. وفيما يلي ما قمت بتشغيله، والمدة التي استغرقها الأمر، وما قمت به يدويًّا.

الإعداد

تم تفعيل كل من SwiftLing وSwiftLing Pro، وأُضيفت اللغات الخمس في شاشة «اللغات»، كما تم حفظ مفتاح OpenAI في شاشة «خدمة الترجمة». اخترت OpenAI كخدمة الترجمة ونموذج gpt-6-sol. قمت أولًا بترجمة الصفحة الرئيسية باستخدام DeepL ثم ترجمة الموقع بأكمله باستخدامه، لكنني وجدت أن ترجمة OpenAI أفضل، لذا قمت باستبدالها.

الأمر

wp swiftling translate --all --kind=post --lang=de --again=machine --user=admin

--all تأخذ كل صفحة من نوعها، --lang واللغة (هنا الألمانية)، و --again=machine تترجم مرة أخرى النصوص التي سبق أن ترجمتها الآلة، وهذه هي الطريقة التي تم بها استبدال تمريرة DeepL. وبدون --again هذا الأمر، يتم ملء النصوص التي لم تُترجم بعد فقط. تُفتح كل صفحة على الخادم أولاً، بحيث يرى SwiftLing النصوص التي يراها الزائر، ثم تُرسل نصوصه إلى الخدمة.

ما قمت بتنفيذه فعليًّا هو هذا الأمر مع قائمة من الصفحات بدلاً من --all، لأنني استبعدت صفحتي الشروط القانونية عن قصد: لا ينبغي ترجمة النص القانوني آليًا دون مراجعته من قبل شخص ما. قمت بتشغيله لجميع اللغات الخمس في آن واحد، بعملية واحدة لكل لغة، لذا فإن الوقت الفعلي هو وقت العملية الأبطأ.

الأرقام

Languages5 (German, French, Croatian, Spanish, Arabic)
Pages54, plus the categories
Texts5,870
Characters sent622,050
Modelgpt-6-sol
Total time12 min 33 s
Fastest language (French)9 min 47 s
Slowest language (Croatian)12 min 33 s

لم أقم بترجمة اللغات واحدة تلو الأخرى. بل بدأت خمس عمليات في آن واحد، عملية لكل لغة، وعملت هذه العمليات جنبًا إلى جنب. لذا فإن المدة الإجمالية هي مدة العملية الأبطأ، وهي الترجمة إلى الكرواتية. لو تمت الترجمة واحدة تلو الأخرى، لكانت العمليات الخمس قد استغرقت حوالي 55 دقيقة (بجمع المدة لكل عملية). أرسلت تجربة ترجمة صفحة واحدة إلى لغتين 3,810 حرفًا واستغرقت 25 ثانية، واستخدمت هذه النتائج لتخطيط عملية الترجمة.

ما هي التكلفة؟

تقوم OpenAI بفوترة «الرموز» (tokens)، وليس «الأحرف». وتُظهر صفحة الاستخدام الخاصة بها مبلغًا إجماليًّا قدره 4.67 دولارًا لذلك اليوم: 437 طلبًا و353,000 رمز إدخال. هذا الرقم يشمل كل ما قمت به باستخدام المفتاح في ذلك اليوم، وليس هذه الجلسة فقط. فهو يشمل اختباراتي السابقة على نموذج أكثر تكلفة، وهو gpt-6-astra، لذا فإن تشغيل الموقع بالكامل على gpt-6-sol كلف أقل من 4.67 دولار. لم أفصل بين الاثنين، وأقدر تكلفة التشغيل للموقع بأكمله بنحو 3 دولارات. أظهر عداد SwiftLing نفسه رقمًا أقل بكثير، لأنه فقد بعض القراءات عندما قامت خمس عمليات بالكتابة عليه في وقت واحد.

ما قمت به يدويًّا

  • لقد اخترت الخدمة والنموذج من شاشة «خدمة الترجمة».
  • كان هناك نوعان من النصوص لا يتألفان من كلمات، لذا تركتهما SwiftLing كما هما أو طلبتُ منها الاحتفاظ بالنص الأصلي: عناوين الصور وعينة من الكود.
  • يُعرض النص العربي من اليمين إلى اليسار، وهو ما يتطلب استخدام حزمة اللغة العربية الخاصة بـ WordPress.
  • تمت ترجمة الصفحة الرئيسية، وكذلك العنوان العلوي والتذييل، في وقت سابق باستخدام DeepL ولم يتم إعادة ترجمتها.

ما الذي حدث، وما الذي لا يعنيه ذلك

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

إذا أردت تجربته، فالأوامر موجودة في وثائق WP-CLI. وإذا حدث خطأ ما، أخبرني على GitHub.