انتقل إلى المحتوى

خطة مشروع تُرجمان

مشروع تُرجمان مازال تحت التطوير المبكر, لذلك قد تتغير بنية المشروع اسرع من تحديث هذه الصفحة

مشروع ترجمان هو مشروع يمكن المستخدمين من التَّرْجَمَةً من داخل منصتهم المفضلة, سواء منصة محادثة مثل Telegram او Matrix او حتى منصة أخرى. فالمشروع مقسم لنواة وإضافات. وعبر جعل التَّرْجَمَةً متوفر للجميع بشكل أسهل, هذا يزيد من وتيرة التَّرْجَمَةً بسرعة, بحيث يصبح مديرين فريق التَّرْجَمَةً يشرفون على الترجمات بدلا من التَّرْجَمَةً بنفسهم. وهذا سوف يسرع من عملية التَّرْجَمَةً بشكل كبير.

الأهداف

  • تسهيل طريقة التَّرْجَمَةً، عبر توفير واجهات على المنصات المفضلة للمستخدم العادي.
  • توفير برمجيات أو أدوات واجهات تسهل من عملية التَّرْجَمَةً
  • دعم اللغات الأخرى بالإضافة للغة العربية عن طريق استخدام معيار عالمي مثل i18n
  • توثيق مشاركات المستخدم وإظهارها في قائمة المترجمين
  • توجيه المستخدم لترجمة أي مشروع عبر نفس الواجهة, فترجمان هو المسؤول عن استخراج الكلمات من اي مشروع. المستخدم سوف يستقبل الكلمة دون ان يلاحظ اي فرق بطريقة التَّرْجَمَةً

طريقة عمل مشروع تُرجمان

نواة تُرجمان

نواة ترجمان هي نواة المشروع, هي الجزء الأساسي من المشروع. النواة سوف تحدد الكلمات, وترسلها للإضافة المسؤولة عن المنصة المدعومة, النواة لا تتعامل مع المستخدمين, الإضافات هي الواجهات التي يتعامل معها المستخدمين.

عمل النواة

أستيراد ملف JSON, وتكوين قاعدة بيانات "JSON Extracted Cache"

القرائة من قاعدة البيانات اسرع واسهل برمجيا من ملف نفسة, لذلك سيتم تكوين قاعدة بيانات تسمى "JSON Extracted Cach" هي عبارة عن المصدر بصيغة SQL.

مزامنة ملف JSON المصدر ((Upstream syncing)

ستستقبل النواة لطلبات Webhook من المستودع الاساسي. الطلبات المهمه هي:

  • Git Commit

في حالة وجود تعديل جديد, يجب التاكد انه على ملف JSON التي تستخدمة نواة, واذا كان فعلا عليه, يجب تنزيل الملف مرة اخرى واعادة تكوين قاعدة بيانات "JSON Extracted Cache"

التاكد من التغييرات, وحذف اي كلمات تم وضعها كتم ترجمتها/مراجعتها, و اضافة كلمات تم سحب حالة تم الترجمة/المراجعة منها او كلمات جديدة

  • Pull Request Merged

نفس خطوات Git commit, لكن بدون التاكد من ان ملف المصدر(JSON) متاثر او لا.

  • Pull Request Closed

يتم حذف كل الترجمات المسجلة و المعلومات للكلمة التي تم رفضها, ويتم بدء ترجمتها من جديد.

  • PR replace translation command by moderator

يتم استدعاء الترجمات الاخرى لنفس الكلمة, ثم استخارج الترجمة ذات الترتيب المطلوب في الامر, وتعديل طلب الدمج لاستخدام هذه الترجمة.

مثال:

/replace 2

تم طلب تغيير الترجمة الى الترجمة ذات المركز الثاني بالشهره.

  • PR remove translation command by moderator

في حالة كان ترجمان في وضع عدة ترجمات(المعجم يقبل عدة ترجمات لكلمة واحده, لكن البرنامج عادي يقبل ترجمة واحده فقط). فيمكن للمشرف طلب حذف احد الكلمات المضمنه.

الترجمة: تثبيت, تنزيل, تثبيط الامر:

/remove 2

سيتم حذف كلمة تنزيل.

أنشاء معرف ترجمان(Torjoman ID) لتحديد المستخدمين

النواة مسؤوله عن انشاء معرفات عشوائية جديدة لكل مستخدم, تستخدم لتسجيل الاشتراكات ومواعيد الارسال وكمية الكلمات, و الكلمات التي تم ترجمتها من نفس المستخدم.

المعرفات تمكن من انتقال من منصة الى اخرى, او استخدامة لعدة منصات بنفس الوقت.

يجب على النواة تسجيل الهُوِيَّة, وإنشاء قائمة تحدد اشهر المترجمين ومن اي إضافة(منصة) المترجم. تسجيل الهوية ايضا يمكن النواة من عدم ارسال كلمات تم ترجمتها سابقا من نفس الشخص, بل ترسل كلمات جديدة.

المعرف سيكون مكتوب بصيغة UUID.

تسجيل الاشتراكات وارسال طلبات الترجمه في الموعد المحدد للمستخدم

النواة مسوؤلة عن تسجيل الاشتراكات القادمة من المستخدمين, وارسال الكلمات التي لم يترجمها المستخدم الى الاضافة المسؤولة عن المنصة, عدد الكلمات و وقت الارسال يتم تحديده من قبل المستخدم, والاشتراك مربوط بمعرف ترجمان(Torjoman ID)

تحويل معرف ترجمان(Torjoman ID) الى معرف المنصة و ارسال الرساله نفسها هو مسؤولية الاضافة.

تحديد الكلمات التي لم يتم ترجمتها

وتحديد الكلمات التي لم يتم تدقيقها سيكون هناك علامة واضحه بملف JSON للترجمة لتحديد الكلمات التي لم يتم مراجعتها. وهذا سوف يساعد في اول استخدام للمشروع, وهو تنقيح معجم أسس. وأيضا يمكن للنواة التعرف على الكلمات التي لم يتم ترجمتها عند عدم وجود تَرْجَمَة.

قد يتم دعم صيغ اخرى لاحقا.

واجهة برمجية(API) لللإضافات

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

دمج الترجمات المتشابهة

أي تَرْجَمَة متشابهة, فيه خطأ كتابي او تستخدم حرف مشابه مثلا "ه" بدلا من "ة" تدمج كترجمة واحدة

تجميع أشهر الترجمات لكلمة معينة

عند اختيار الكلمة للترجمة, قد يترجم المستخدمين ترجمات مختلفة. النواة مسؤولة عن تجميع هذه الترجمات المختلفة, في حالة لم تكن متشابهة حتى يتم تقديمها كخيارات بديلة

رفع التغييرات كطلب دمج للمستودع الأساسي

ترجمان طريقة عملة تعتمد على Git, سيكون هناك مستودع يحتوى على مِلَفّ التَّرْجَمَةً, تقرأه النواة, وتستخرج منه الكلمات التي يجب ترجمتها. عند الانتهاء من التَّرْجَمَةً, يتم رفع طلب دمج مع التعديل على المِلَفّ باستخدام أشهر تَرْجَمَة, مع توفير خيارات بديلة بناءا على ترجمات اقل شهرة

يرفع طلب الدمج عند تجميع عدد معين من الترجمات, مثلا 15 لكلمة معينة, ثم يبدء المشرفين بمراجعة التَّرْجَمَةً, وإذا احتاجوا اختيار احد خيارات الترجمات البديلة.

إضافات تُرجمان

إضافات ترجمان هي المسؤولة عن دعم المنصات. نواة ترجمان فقط مسؤولة عن الأشياء العامة لكل المنصات. الإضافة هي المسؤولة عن التعامل مع المنصة, واستقبال طلبات تسجيل الدخول او تسجيل حسابات جديدة, وربط معرف ترجمان(Torjoman ID) بالمستخدم على المنصة. أيضا الاضافة تقوم باستلام الكلمات التي يجب ترجمتها من النواة, وتترجم معرف ترجمان الى معرف المنصة وتقوم بترتيب رساله طلب الترجمة بما يناسب المنصة وترسلها.

ثم تقوم باستقبال الرد وإرسال التَّرْجَمَةً للنواة مع ترجمة معرف المنصة الى معرف ترجمان(Torjoman ID). الإضافة لا تقوم بتنقيح المدخل غير استخراج التَّرْجَمَةً نفسها, وغير مسؤولة عن اليه ترجمان والترجمة, الاضافات هي جسر للمنصات بشكل أساسي.

Torjoman-Matrix

اضافة مشروع تُرجمان لدعم شبكة Matrix الفدرالية

الاهداف

  • دعم استخراج تحديد هوية المترجم من خلال ال MXID
  • دعم تسجيل دخول او تسجيل معرف ترجمان(Torjoman ID) جديد, وربطة بمعرف المنصة(Registeration flow)
  • تكوين طلب ترجمة يناسب المنصة, بنائا على الكلمات القادمة من النواة
  • استقبال طلبات انشاء اشتراكات, وتسجيل الاشتراكات لدى النواة

Torjoman-Telegram

اضافة مشروع تُرجمان لمنصة Telegram للمحادثة

الاهداف

  • دعم استخراج هوية المترجم من خلال ال telegram ID
  • دعم تسجيل دخول او تسجيل معرف ترجمان(Torjoman ID) جديد, وربطة بمعرف المنصة(Registeration flow)
  • تكوين طلب ترجمة يناسب المنصة, بنائا على الكلمات القادمة من النواة
  • استقبال طلبات انشاء اشتراكات, وتسجيل الاشتراكات لدى النواة

Torjoman-Web

اضافة مشروع تُرجمان لتكوين موقع منفصل, لا يعتمد على اي منصة اخرى لترجمة الكلمات.

صور بسيطة للتصميم المقترح للموقع.

image

الاهداف

  • قبول معرف ترجمان(Torjoman ID) (Registeration flow)
  • عرض اول كلمات لم يتم ترجمتها من المستخدم, بنائا على معرفة
  • تخزين معرف ترجمان عبر cookies, اذا لم توجد Cookies يطلب منه تسجيل الدخول او انشاء معرف جديد.
  • اظهار اشهر المترجمين على الموقع, بنائا على معلومات النواة, واستخدام الاسم الذي حدده المستخدم عند تسجيل معرفة في ترجمان.

اخر تحديث: 2023-02-21