تخطَّ إلى المحتوى الرئيسي
مشروع احترافي
  • الذكاء الاصطناعي وRAG
  • الأتمتة
  • Backend
  • نظام جامعي

Odoo 18 Website Auto-Translation

نظام ترجمة آلية مستضاف محليًا لموقع جامعي على Odoo 18. طوّرت خدمة عميل Ollama قابلة لإعادة الاستخدام، ومنصة لمهام الترجمة مع التتبّع والتحليلات، ومسار تقسيم HTML يعيد تجميع المحتوى المترجَم مع حفظ بنية الصفحة، وصفحات لإعدادات التهيئة والأمان، وهندسة الـ Prompt، وتحديد معدل الطلبات، ودعمًا متعدد اللغات، إلى جانب الاختبارات والتوثيق التقني.

الدور
مساهم ضمن فريق التطوير الجامعي
الفترة
August 2025 – July 2026
الحالة
مشروع احترافي
الجهة
OSTİM Technical University

01نظرة عامة

أضاف هذا المشروع ترجمة آلية إلى موقع جامعي على Odoo 18، تعمل بالكامل على نماذج ذكاء اصطناعي مستضافة محليًا عبر Ollama بدل واجهة API تجارية للترجمة.

ترجمة موقع ليست المشكلة نفسها التي هي ترجمة نص. فمحتوى الصفحة HTML: يحمل بنية وروابط وتنسيقًا وسمات يجب أن تنجو من الرحلة سليمة. وكان جوهر العمل مسارًا يقسّم HTML إلى Chunks قابلة للترجمة، ويترجمها، ثم يعيد تجميع النتائج دون الإضرار بالصفحة.

ساهمت بعميل النموذج القابل لإعادة الاستخدام، ومنصة المهام المحيطة به، ومسار التقسيم وإعادة التجميع، وواجهات التهيئة الإدارية، وهندسة الـ Prompt وتحديد معدل الطلبات اللذين جعلا النظام صالحًا للاستعمال عمليًا.

02السياق

يخدم موقع الجامعة جمهورًا لا تجمعه لغة واحدة. وإبقاء موقع متعدد اللغات محدّثًا يدويًا يعني أن كل تغيير في المحتوى يصبح عدة تغييرات، وأن الترجمات تتقادم بين التحديثات.

كان مكتب تنسيق التحول الرقمي يدير موقع الجامعة على Odoo 18. وكان الهدف أن تصبح الترجمة شيئًا تؤديه المنصة بنفسها، على بنية الجامعة التحتية.

03المشكلة

محتوى الموقع HTML مبنيّ، والنماذج اللغوية تعمل على النص. وإرسال صفحة كاملة إلى نموذج يعيد ترميزًا متضررًا؛ وإرسالها شذرات يفقد السياق اللازم للترجمة الجيدة. وكان على النظام أن يوفّق بين هاتين الحقيقتين، وأن يفعل ذلك تكرارًا وبصورة قابلة للمراقبة.

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

04دوري في المشروع

دوري في المشروع

طوّرت خدمة عميل Ollama قابلة لإعادة الاستخدام وبنيت فوقها منصة لمهام الترجمة، مع تتبّع للمهام وتحليلات. طوّرت مسار تقسيم HTML الذي يقسّم محتوى الصفحة إلى وحدات قابلة للترجمة، وخطوة إعادة التجميع التي تعيد ضمّ الأقسام المترجَمة مع حفظ بنية الصفحة. أنشأت صفحات إعدادات التهيئة والأمان، وطبّقت هندسة الـ Prompt على طلبات الترجمة، ونفّذت تحديد معدل الطلبات، وأضفت دعمًا متعدد اللغات. كما ساهمت بالاختبارات والتوثيق التقني.

05سياق الفريق

سياق الفريق

طُوّر هذا النظام داخل فريق تطوير البرمجيات بالجامعة في مكتب تنسيق التحول الرقمي، وفق معايير Scrum وCMMI نفسها المتبعة في مشاريع المكتب الأخرى. ساهمت بالمكوّنات الموصوفة هنا؛ أما موقع Odoo المحيط بها ونشره ومحتواه فمسؤولية الجامعة والفريق الأوسع.

06المسؤوليات

تكامل النموذج

  • تطوير خدمة عميل Ollama قابلة لإعادة الاستخدام.
  • تطبيق هندسة الـ Prompt على طلبات الترجمة.
  • تنفيذ تحديد معدل الطلبات على طلبات النموذج.

مسار الترجمة

  • تطوير مسار لتقسيم HTML.
  • إعادة تجميع HTML المترجَم مع حفظ بنية الصفحة.
  • إضافة دعم متعدد اللغات.

منصة المهام

  • بناء منصة لمهام الترجمة.
  • إضافة تتبّع للمهام وتحليلات.

الإدارة

  • إنشاء صفحات لإعدادات التهيئة والأمان.

الجودة

  • المساهمة بالاختبارات والتوثيق التقني.

07المنهج التقني

يتعامل المسار مع صفحة HTML بوصفها بنية بداخلها محتوى قابل للترجمة، لا كتلة نص. فتُحفظ البنية في الذهاب وتُستعاد في الإياب، ويُدار عمل النموذج البطيء بينهما بوصفه مهام متتبَّعة.

  1. 01تغليف الوصول إلى النموذج في خدمة عميل Ollama قابلة لإعادة الاستخدام، ليخاطب كل جزء من النظام النموذجَ بطريقة واحدة.
  2. 02تقسيم HTML الصفحة إلى Chunks بحجم يناسب طلب نموذج واحد مع إبقاء سياق محيط كافٍ للترجمة على نحو سليم.
  3. 03إرسال كل Chunk عبر العميل مع Prompts مصمّمة للمهمة — ترجمة المحتوى وترك الترميز كما هو.
  4. 04إعادة تجميع الـ Chunks المترجَمة في البنية الأصلية، لتحتفظ الصفحة الناتجة بترميزها وروابطها وتنسيقها.
  5. 05تشغيل التسلسل كله بوصفه مهمة متتبَّعة، لأن ترجمة موقع عمل طويل التنفيذ يجب أن يكون قابلًا للمراقبة والاستئناف لا طلبًا واحدًا.
  6. 06تسجيل تتبّع المهام والتحليلات ليرى المسؤولون ما جرى تشغيله وما حدث.
  7. 07إتاحة صفحات لإعدادات التهيئة والأمان ليُعدَّل السلوك دون تغيير في الشيفرة.
  8. 08تطبيق تحديد معدل الطلبات ليبقى الطلب ضمن ما تستطيع سعة النموذج المحلي خدمته.

08البنية التقنية

يدخل HTML الصفحة مسارَ تقسيم يقسّمه إلى وحدات قابلة للترجمة. وتُرسَل كل وحدة عبر خدمة عميل Ollama قابلة لإعادة الاستخدام إلى نموذج مستضاف محليًا، باستخدام Prompts مكتوبة لترجمة المحتوى مع ترك الترميز دون مساس، مع تطبيق تحديد المعدل بين المنصة والنموذج. ثم تُعاد الوحدات المترجَمة إلى بنية الصفحة الأصلية. ويجري التسلسل كله بوصفه مهمة متتبَّعة، مع تغذية تتبّع المهام والتحليلات للشاشات الإدارية، وتحكّم صفحات إعدادات التهيئة والأمان في السلوك.

المسارالنموذجالتحكمHTML الصفحةOdoo 18تقسيمالبنية محفوظةإعادة تجميعالترميز سليمالصفحة المترجَمةعميل Ollamaخدمة قابلة لإعادة الاستخداممنصة المهامتتبّع · تحليلاتالتهيئةأمان · حدود
  1. 01الإدخال: يُؤخذ HTML الصفحة من موقع Odoo 18.
  2. 02التقسيم: يقسّم مسار HTML المحتوى إلى وحدات قابلة للترجمة تناسب طلب نموذج واحد.
  3. 03العميل: تُرسَل كل وحدة عبر خدمة عميل Ollama القابلة لإعادة الاستخدام.
  4. 04تحديد المعدل: يُضبط حجم الطلبات الموجَّهة إلى النموذج المحلي.
  5. 05الترجمة: يترجم النموذج المستضاف محليًا الوحدة باستخدام Prompts خاصة بالمهمة.
  6. 06إعادة التجميع: تُعاد الوحدات المترجَمة إلى بنية الصفحة الأصلية.
  7. 07المهام: يجري التسلسل بوصفه مهمة ترجمة متتبَّعة.
  8. 08التحليلات: يسجّل تتبّع المهام ما جرى تشغيله وكيف اكتمل.
  9. 09الإدارة: تتحكم صفحات إعدادات التهيئة والأمان في سلوك النظام.

09الميزات

  • عميل Ollama قابل لإعادة الاستخدام

    خدمة واحدة يخاطب عبرها كل جزء من النظام النموذجَ المحلي.

  • مسار تقسيم HTML

    يقسّم محتوى الصفحة إلى وحدات تناسب طلب النموذج دون فقدان السياق.

  • إعادة تجميع تحفظ البنية

    تُعاد الأقسام المترجَمة مع بقاء ترميز الصفحة وتنسيقها سليمين.

  • منصة مهام الترجمة

    يُدار عمل الترجمة الطويل بوصفه مهام لا طلبات.

  • تتبّع المهام والتحليلات

    يستطيع المسؤولون رؤية ما جرى تشغيله وما حدث حينها.

  • إعدادات التهيئة والأمان

    يُعدَّل السلوك من صفحات إدارية لا في الشيفرة.

  • تحديد معدل الطلبات

    يبقى حجم الطلبات ضمن ما تستطيع سعة النموذج المحلي خدمته.

  • دعم متعدد اللغات

    يتعامل المسار مع أكثر من لغة هدف واحدة.

10الأمان والموثوقية

ضوابط الأمان

  • تحديد معدل الطلبات الموجَّهة إلى النموذج المحلي.
  • صفحة إعدادات أمان مخصّصة للتحكم الإداري.
  • تجري الترجمة بالكامل على بنية تحتية مستضافة محليًا، فلا يُرسَل محتوى الصفحة إلى خدمة طرف ثالث إطلاقًا.

الموثوقية والرصد

  • ترجمة تُدار بوصفها مهام متتبَّعة لا طلبات لمرة واحدة.
  • تتبّع للمهام وتحليلات لأغراض الوضوح التشغيلي.
  • تهيئة معروضة في صفحات إدارية لا مضمَّنة في الشيفرة.
  • اختبارات وتوثيق تقني قُدِّما بالتوازي مع التنفيذ.

11التحديات

  • تمرير صفحات HTML كاملة عبر نموذج لغوي يعيد ترميزًا متضررًا — وسوم ساقطة وسمات معاد كتابتها وبنية متبدّلة.

    بنيت المسار ليقسّم HTML إلى Chunks ويعيد تجميع النتائج المترجَمة في البنية الأصلية، وصمّمت الـ Prompts بحيث تكون مهمة النموذج ترجمة المحتوى لا إعادة إنتاج الترميز.

  • الإفراط في التقسيم ينزع السياق الذي يحتاجه المترجم؛ والتقليل منه يتجاوز ما يحتمله طلب واحد.

    اختيرت حدود الـ Chunks لتناسب طلب النموذج مع إبقاء الوحدات متماسكة بما يكفي لترجمة سليمة، وهو توازن لا قاعدة ثابتة.

  • ترجمة موقع كامل عمل بطيء وطويل التنفيذ لا يناسب شكل الطلب والاستجابة.

    بنيت منصة مهام حول مسار الترجمة، مع تتبّع وتحليلات، ليصبح بالإمكان بدء العمل ومراقبته وتحليله بعد وقوعه.

  • سعة النموذج المحلي محدودة، والطلب غير المضبوط يُضعف كل ما يتشارك تلك السعة.

    نفّذت تحديد معدل الطلبات بين المنصة والنموذج، وأظهرت الإعدادات ذات الصلة في صفحة تهيئة ليُضبط الحد دون تغيير في الشيفرة.

12القرارات والمفاضلات

القرارالبديل المطروحالمبرر
استخدام نماذج مستضافة محليًا عبر Ollama.واجهة API تجارية للترجمة.يبقى محتوى الموقع على بنية الجامعة التحتية، ولا توجد تكلفة لكل كلمة، ولا تبعية خارجية على النظام. والمقابل أن الإنتاجية وخيار النموذج محكومان بالعتاد المحلي — وهو تحديدًا سبب الحاجة إلى تحديد المعدل.
تقسيم HTML وإعادة تجميعه بدل ترجمة صفحات كاملة.إرسال صفحات كاملة إلى النموذج.يضيف التقسيم خطوة إعادة تجميع وحالاتٍ حديّة خاصة به، لكنه ما يُبقي بنية الصفحة سليمة ويُبقي كل طلب ضمن ما يحتمله النموذج بموثوقية.
إدارة الترجمة بوصفها مهام متتبَّعة.الترجمة تزامنيًا عند الطلب.تضيف المهام منصة يجب بناؤها وصيانتها، لكن العمل الطويل يحتاج أن يكون قابلًا للمراقبة والمراجعة بعد انتهائه. والطلب التزامني لا يمنحك أيًّا منهما.
تغليف الوصول إلى النموذج في خدمة عميل واحدة قابلة لإعادة الاستخدام.استدعاء النموذج مباشرة من كل مستدعٍ.العميل الواحد هو الموضع الذي يعيش فيه تحديد المعدل ومعالجة الـ Prompt وسلوك الأخطاء مرة واحدة. أما الاستدعاءات المباشرة فكانت ستنشر الثلاثة عبر قاعدة الشيفرة.

13النتيجة

صار موقع Odoo 18 قادرًا على ترجمة محتواه بنماذج مستضافة محليًا، مع حفظ بنية الصفحة عبر مسار التقسيم وإعادة التجميع.

ويجري عمل الترجمة بوصفه مهام متتبَّعة مع تحليلات، فيرى المسؤولون ما تُرجم وكيف اكتمل التشغيل.

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

وقُدِّمت الاختبارات والتوثيق التقني بالتوازي مع التنفيذ.

14الدروس المستفادة

  1. 01ترجمة المحتوى المبنيّ مشكلة بنية قبل أن تكون مشكلة لغة. فمعظم الهندسة ذهب إلى حفظ HTML لا إلى الترجمة نفسها.
  2. 02هندسة الـ Prompt أشد فاعلية حين تضيّق مهمة النموذج. فمطالبته بترجمة المحتوى وترك الترميز أجدى من مطالبته بالتعامل مع الاثنين.
  3. 03العمل الطويل يحتاج نموذج مهام مبكرًا. وإضافته لاحقًا إلى مسار تزامني أشد إرباكًا بكثير من البدء به.
  4. 04العميل الواحد القابل لإعادة الاستخدام لتبعية خارجية يسدّد ثمنه أول مرة يلزم فيها تغيير تحديد المعدل أو معالجة الأخطاء.
  5. 05النماذج المحلية تجعل السعة قيدًا تصميميًا لا بندًا في فاتورة، وهذا يغيّر ما يجب أن يفعله النظام المحيط.

15حزمة التقنيات

اللغة

  • Python

المنصة

  • Odoo 18

الذكاء الاصطناعي والاسترجاع

  • Ollama
  • Local LLM
  • Prompt engineering
  • HTML chunking

Backend

  • Job platform
  • Rate limiting
  • Configuration pages

الممارسات

  • Testing
  • Technical documentation
  • Scrum
  • CMMI

16لقطات الشاشة

ستُضاف لقطات الشاشة لاحقًا

لنتحدث عن مشروعك

هل لديك مشروع برمجي أو ذكاء اصطناعي أو RAG أو تطبيق ويب؟ لنتحدث عمّا تحتاجه ونحدد المنهج التقني المناسب.