Weglot

بناء زاحف موقعنا الإلكتروني: نظرة خاطفة على تقنية Weglot

بناء زاحف موقعنا الإلكتروني: نظرة خاطفة على تقنية Weglot
إتيان
بقلم
إتيان
تمت المراجعة من قبل
تم التحديث في
19 يونيو 2023
26 مايو 2025

يحب العديد Weglot لكي جميع عناوين URL لموقعهم الإلكتروني مترجمة بدقة (بعد الطبقة الأولى من الترجمة الآلية التي يقدمها Weglot). بالنسبة للكثيرين، إذا كنت تمتلك موقعًا إلكترونيًا كبيرًا مترجمًا إلى العديد من اللغات، فقد يستغرق ذلك وقتًا طويلاً.

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

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

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

مؤخرًا، تم نقل هذه الميزة من قائمة الترجمة لكي إدارة الترجمة الجديدة عن طريق عنوان URL، حيث أصبحت أكثر وقوة، لذا رأينا لكي الوقت قد حان لكي كيف تم لكي هذه الميزة.

Golang لكي الإنقاذ

في بداية عام 2020، أتاح لي الإغلاق لكي أخيرًا الفرصة لكي لغة البرمجة Golang التي كنت لكي لكي الوقت.

لغة Golang (أو اختصارًا Go) هي لغة من صنع Google التي اكتسبت الكثير من الجاذبية في السنوات القليلة الماضية.

جولانج

إنها لغة برمجة مجمعة بشكل ثابت تم تصميمها لكي المطورين لكي كتابة أكواد سريعة وقوية ومتزامنة. تسمح بساطتها بكتابة وصيانة برامج كبيرة ومعقدة دون التضحية بالأداء: يمكن اعتبار Golang الطفل غير المتوقع لـ Python و C: (سهلة) لكي وسريعة لكي .

في رأيي، أفضل طريقة لكي لغة برمجة جديدة (أو إطار عمل جديد أو أي شيء آخر) هي لكي مشروع جيد لكي ما عمليًا. هذه ليست مهمة سهلة: إذا كان المطورون يقرؤون هذا، فهم يعرفون مدى صعوبة ذلك

يجب أن يستوفي المشروع الجانبي الجيد بعض المواصفات:

  • يجب أن يكون النطاق واسعًا بما يكفي حتى يتمكن المطور من تعلم ما يكفي من التكنولوجيا التي يتعلمها أثناء بناء البرنامج: نادرًا ما يكفي طباعة "Hello world" في وحدة التحكم لكي لغة جديدة.
  • يجب ألا يكون النطاق ضخمًا جدًا لدرجة أن المطور ربما يستسلم قبل إكمال المشروع (لقد مررنا جميعًا بهذا الموقف).
  • أخيرًا وليس آخرًا، يجب أن يكون الأمر لكي إن برمجة قائمة لكي للمرة الـ 200 لن لكي ممتعًا للغاية، ومن المحتمل أنك ستستسلم بمجرد أن تضع تصورًا لكي 
  • نقطة إضافية: من المثالي أن يحل المشروع الجانبي مشكلة حقيقية، فهذا يساعد لكي على المهمة.

فلماذا أذكر هذا؟ بينما كنت أفكر في ما جانبي ما لكي تعلم لغة Golang، خطر لكي أن متتبع الويب ما يتناسب تمامًا مع الوصف أعلاه ويمكنه أيضًا حل بعض المشكلات التي كنا نبحث لكي Weglot .

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

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

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

كنا نبحث أيضًا عن طريقة جديدة لكي ترجمات. ملاحظة جانبية لمن ليسوا على دراية بـ Weglot... " Weglotترجمات" يعني أن عناوين URL (والمحتوى الموجود فيها) تظهر في قائمة Weglot ، لكي يتيح لك لكي تعديلات يدوية لكي .

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

سرعان ما بدأت فكرة استخدام متتبع الويب لكي هذه المهمة لكي كحل مثالي، وستكون حالة استخدام مثالية لميزات البرمجة المتزامنة في Golang!

لذلك في يناير 2020، بدأت في تصميم نموذج أولي لبرنامج زحف الويب بينما كنت أتعلم أساسيات لغة Golang، وسرعان ما أصبح لدي شيء يمكنني عرضه لكي مدير التكنولوجيا Weglot. 

لم يكن الأمر كثيرًا، كان برنامجًا بسيطًا يأخذ عنوان URL كمدخل ويبدأ في الزحف إلى الموقع الإلكتروني، ويزور كل رابط نطاق يجده، لكنه كان سريعًا وفعالًا.

بعد عرض سريع، أبدى رمي حماسه للحل المقدم، لكي الوقت اللازم للبحث والتطوير لكي إثبات المفهوم (POC)، ثم التفكير في كيفية استضافة الحل لاستخدامه في الإنتاج المستقبلي.

POC
نسخة متأخرة أكثر من نموذج الإثبات الذي عرضته لكي

بصفتي مهندس برمجيات، أشعر بسعادة غامرة عندما على شيء بمفردي ثم أحصل على الوقت لكي منتجي لكي . إنه شعور رائع بالتقدير، ويحفزني على المضي قدماً حتى نحصل على منتج جاهز للإنتاج (وهو ما كان لا يزال بعيد لكي ). 

مشكلة الاستضافة

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

كانت فكرتي الأولى لكي الحل الكلاسيكي والمجرب: تشغيل مثيل حاسوبي على AWS وعرض الروبوت خلف خادم ويب. بدت الفكرة جيدة، ولكن أكثر فيها أكثر بشأن عدة مشكلات.

أولاً، لم يكن لدي أي فكرة عن الحمل لكي الخادم وعدد المستخدمين لكي سيستخدمون هذه الميزة في نفس الوقت. ما كانت السعة المتوفرة كافية ولكن فجأة أصبح لديك العديد من المستخدمين الذين يتصفحون مواقع ويب كبيرة جدًا في نفس الوقت؟

نظرًا لعدم وجود خبرة سابقة لدي في استضافة برنامج Go، كان لكي الصعب لكي ما (وحدة المعالجة المركزية، ذاكرة الوصول العشوائي...) ما ستكون كافية لكي تجربة مستخدم رائعة.

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

بالتفكير في الأمر، بدأ الأمر لكي كحالة استخدام مثالية للاستضافة بدون خادم.

بالنسبة لأولئك الذين فاتتهم صيحة "بلا خادم" منذ بضع سنوات، سألخص لكم سريعاً كيف تعمل هذه الصيحة:

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

يأتي نموذج الاستضافة هذا على الفور بميزتين رئيسيتين:

  • لا يتعين لكي المطورين لكي البنية التحتية، فكل ذلك يتم بواسطة المزود. ما يعنيه ما هو أنك لا لكي بشأن أمان الخادم أو تكوينه.
  • والأهم من ذلك أنها قابلة للتطوير حسب التصميم! 

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

إذن، هل كل شيء للأفضل في أفضل الحالات الممكنة؟ حسناً، تقريباً!

في عام 2020، كانت الحوسبة بدون خادم محدودة لكي دقائق(على الأقل بالنسبة لـ AWS، ليس لدي خبرة في الاستضافة بدون خادم على Google Cloud Platform أو Microsoft Azure). وهذا منطقي تمامًا لأن نموذج الاستضافة هذا تم تصميمه لمهام قصيرة مثل إنشاء ملف pdf أو قص الصور على مثل. 

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

كنت على لكي عن الخدمة بدون خادم عندما أعلنت عندما في أوائل عام 2020 أنها ستزيد دقائق 5 دقائق لكي دقائق! 

لسوء الحظ، كما هو الحال غالبًا مع AWS، لا تقدم الشركة الكثير من المعلومات حول عندما الجديدة عندما ، فقد تم تمديد المهلة الزمنية ولكن لم يتم تقديم أي توضيحات حول لكي عليها.

سأوفر عليك الكثير من التجارب والخطأ والبحث لكي قمت به لكي لكي الحد لكي دقائق دعني أؤكد لك أن الأمر لم يكن سهلاً 🙂

كان دقائق الـ 5 دقائق في الواقع حدًا مفروضًا على مستوى البنية التحتية، حيث لا تحافظ AWS على اتصال HTTP أكثر 5 دقائق خدماتها المختلفة، وكان الحل لكي عدم تشغيل الكود الخالي من الخادم باستدعاء HTTP، وهناك العديد من الطرق الأخرى، وفي حالتنا قمنا بإعداد تشغيل باستخدام SQS: خدمة طابور الرسائل من AWS.

توصيل النتائج

بمجرد حل مشكلة الاستضافة، كان هناك أكثر واحدة أكثر لكي قبل أن ننهي عملنا لهذا اليوم. 

حتى الآن، كان لدينا روبوت يعمل، مستضاف بطريقة قابلة للتطوير وفعالة من حيث التكلفة، وآخر ما كنا بحاجة لكي البيانات التي أنتجها الروبوت لكي .

نظرًا لأنني أردت لكي ميزة لكي تفاعلية قدر الإمكان، فقد اخترت الاتصالات في الوقت الفعلي بين الروبوت Weglot .

الوقت الفعلي ليس إلزاميًا لهذا النوع من الميزات، يمكنك دائمًا الاكتفاء بحل أبسط مثل الاستقصاء الطويل، لكنني أردت لكي مستخدمينا سيتلقون ردودًا فور بدء برنامج الزحف عمله، ولنكن صادقين، كانت هذه أيضًا طريقة لكي البوت وإظهار إمكاناته 🙂

نظرًا لأننا لم نكن نملك أي شيء لكي الاتصالات في الوقت الفعلي في ذلك الوقت (لم يكن لدينا حاجة لذلك)، قررنا لكي حلاً مجربًا، فكتبنا خادم ويب سوكيت بسيط في nodejs واستضفناه على مثيل EC2 AWS.

بعد القيام ببعض الأعمال على الروبوت لكي الاتصال بخادم websocket لكي النشر، أصبحنا أخيرًا جاهزين لكي إلى مرحلة الاختبار قبل الإصدار لكي .

ما كمشروع جانبي انتهى به الأمر إلى أن أصبح جزءًا من لوحة التحكم. 

لقد استمتعت كثيراً بكتابة الزاحف وحل المشاكل العديدة التي واجهتها. وفي النهاية، تعلمت أيضاً الكثير: لغة برمجة جديدة ومهارات جديدة في نظام AWS البيئي.

Go هي بالتأكيد لغة سأستخدمها مرة أخرى، فهي تبرز بشكل كبير في مهام الشبكات والبرمجة التعاونية. كما أنها لغة جيدة جدًا لكي بالحوسبة بدون خادم لكي المنخفض للذاكرة لكي مثل Js و PHP و Python.

نظرًا لأن البوت فتح لنا آفاقًا جديدة، لدينا بعض الخطط للمستقبل. نحن نخطط لكي أداة حساب عدد الكلمات لكي أكثر وأداءً، ويمكننا أيضًا استخدامها لكي ذاكرة التخزين المؤقت (تعبئتها بالبيانات).

آمل أن تكونوا قد استمتعتم بهذه النظرة على تقنية Weglotبقدر ما استمتعت أنا بكتابة هذا المقال، فلا تترددوا لكي الروبوت بأنفسكم!

أيقونة اتجاه
اكتشف Weglot

انضم إلى أكثر من 110,000 علامة تجارية بترجم مواقعها بالفعل مع Weglot

ترجم موقعك فوراً باستخدام الذكاء الاصطناعي، و قم بتعدّيله بلمسة بشرية، وإجعله جاهز في دقائق.

في هذه المقالة، سنتاول:
رمز الصاروخ

هل أنت مستعد للبدء؟

أفضل طريقة لكي قوة Weglot لكي بنفسك. جربها مجانًا وبدون أي التزام.

أفضل طريقة لكي قوة Weglot لكي بنفسك. جربها مجانًا وبدون أي التزام.

يتوفر موقع ويب تجريبي في لوحة التحكم الخاصة بك إذا لم تكن مستعدًا لكي موقع الويب الخاص بك بعد.

اقرأ مقالات قد تعجبك إيضاً

لم يتم العثور على أي عناصر.
أيقونة الأسئلة الشائعة

الأسئلة الشائعة

لم يتم العثور على أي عناصر.

سهم أزرق

سهم أزرق

سهم أزرق