ما هي أفضل طريقة لجلب (وكتابة) سلاسل نصية مخصصة للترجمات برمجياً؟

لقد استخدمت واجهة مسؤول الويب لتغيير عدد قليل من سلاسل Discourse. بدافع السرعة[1] تجاهلت الإصدارات غير الإنجليزية. هذا يعني، بالطبع، أنها غير متزامنة.

في Fedora، نستخدم Weblate للترجمات المدعومة من المجتمع. (انظر https://translate.fedoraproject.org/). أود ربط هذا، بشكل مثالي بحيث تكون هناك سير عمل تلقائي بالكامل حيث عند تحديث سلسلة باللغة الإنجليزية عبر واجهة المسؤول، يتم إرسالها إلى Weblate، وعندما تكون هناك ترجمة، تعود.

ما هي أفضل طريقة لتحقيق ذلك؟


  1. الكسل. ↩︎

إعجابَين (2)

تنفيذ تكامل باستخدام واجهة برمجة التطبيقات (API) الخاصة بنا حيث ستقوم بما يلي:

  • الاستطلاع الدوري لـ Discourse للحصول على تجاوزات جديدة (بدون خطافات ويب).
  • دفع ترجمات جديدة من Weblate إلى موقع Discourse الخاص بك.

هذا هو الملخص الأولي. نحن بصدد تحديد القيود الحالية، حيث أن واجهة برمجة التطبيقات (API) الحالية لدينا تُرجع كمية محدودة فقط من تجاوزات الترجمة. مما يعني أننا سنحتاج إلى إجراء تغييرات على نقطة النهاية هذه لواجهة برمجة التطبيقات (API) لجعلها تعمل.

إعجاب واحد (1)

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

إعجابَين (2)

لا توجد حاجة لتتبع أي شيء في موقعك. يجب أن تكون قادرًا على تنفيذه بلا حالة.

  • للاستطلاع، تحتاج إلى إرسال طلب GET إلى المسار التالي على موقعك:
    /admin/customize/site_texts.json?locale=en&overridden=true&page=0

عدّل المعلمة locale حسب احتياجاتك. تُرجع الواجهة البرمجية ما يصل إلى 50 نتيجة وتدعم تقسيم الصفحات (المعلمة page).
سيشمل JSON { "extras" : { "has_more" : true } } عندما تكون هناك نتائج إضافية.

  • تحديث تجاوز الترجمة يعمل عن طريق إرسال طلب PUT إلى المسار التالي:
    /admin/customize/site_texts/<id>

استبدل <id> بمعرف السلسلة التي تريد ترجمتها، على سبيل المثال “js.user.username.instructions”.

يجب أن تكون حمولة طلب PUT بيانات نموذج (Content-Type: application/x-www-form-urlencoded; charset=UTF-8) ويجب أن تتضمن السمات التالية:

  • site_text[value]: الترجمة
  • site_text[locale]: اللغة، على سبيل المثال “en”

بشكل أساسي، تحتاج إلى استخدام نفس استدعاءات الواجهة البرمجية التي تستخدمها واجهة إدارة Customize Text.

4 إعجابات

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.