سلسلة ترجمة غير جيدة في محلي عميل hebrew تسبب خطأ قاتل في الموقع

حدث هذا قبل حوالي 3 أيام بعد ترقية عبر واجهة المستخدم الرسومية على الويب. الموقع عمره حوالي شهرين، وبه حوالي 500 مستخدم، وقد عمل بشكل جيد حتى الآن.

حاولت إعادة التشغيل، ثم إعادة البناء، ثم مسح ذاكرة التخزين المؤقت لـ Redis. ما زلت أحصل على تلك الشاشة البيضاء.

ماذا أجرب بعد ذلك؟ البدء بدون إضافات؟ البدء من الصفر واستعادة النسخة الاحتياطية؟

السجلات ذات الصلة:

rails/production_errors: فارغ

rails/production:
  Started GET "/" for 147.234.130.218 at 2024-07-21 08:38:13 +0000
  Processing by ListController#unread as HTML
  Rendered layout layouts/application.html.erb (Duration: 114.3ms | Allocations: 34494)
  Completed 500 Internal Server Error in 264ms (ActiveRecord: 0.0ms | Allocations: 88191)

ربما جربت هذا بالفعل، ولكن من باب الاحتياط: هل سيفشل الوضع الآمن أيضًا؟

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

حسنًا، بالنسبة لي، فإن Rails… حسنًا، أكثر من مجرد صعب.

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

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

ولكن هذا يستغرق الكثير من الوقت. ربما تكون خطوة أكثر حكمة هي الانتظار حتى يتدخل شخص يعرف بالفعل.

يمكن أن يكشف النظر في /logs غالبًا عن بعض التفاصيل الإضافية، أو التحقق من وحدة تحكم المتصفح عند محاولة تحميل الصفحة.

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

لا يوجد شيء غريب في وحدة تحكم المتصفح (Firefox) والسطر الوحيد للسجل الذي أراه تم إنشاؤه عند الطلب تم نشره في الموضوع الأصلي أعلاه.

ما هي خطوتي التالية؟ ./launcher bootstrap واستعادة من النسخ الاحتياطي؟

أعتقد أن Jammy يقصد سجلات Discourse. هل يمكنك تسجيل الدخول كمسؤول؟

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

أنا المسؤول، وعندما أسجل الدخول، تكون المعلومات قليلة، لذلك استفسرت داخليًا…

نعم، كنت أشير إلى صفحة YourSite/logs. أليس هناك أي شيء مسجل هناك للخطأ؟

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

يا إلهي… هل عدم ترجمة اللغة هو سبب إرجاع خطأ 500؟!

تحرير: بما أن هذا أصبح تقرير خطأ - لا أعتقد أن المشكلة تكمن في ملفات اللغة بحد ذاتها (نظرًا لأن نسخ ملفات *.en.yml إلى he.yml لم يساعد) أقترح أن مثل هذه المشاكل يجب أن تفشل بلطف على الأقل وتعود إلى اللغة الإنجليزية.

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

لست متأكدًا تمامًا من أن الأمر يتعلق فقط بافتقاد إعدادات اللغة في مكان ما. من خلال هذه اللقطة، تبدو إعدادات MaxMind لديك خاطئة أيضًا.

تخميني البحت هو أن هناك شيئًا آخر معطلاً وأن الباقي معطل أيضًا. سأقوم بتشغيل /.launcher rebuild app ومحاولة معرفة ما إذا كان هناك أي شيء غريب يظهر.

ما هي اللغة التي تستخدمها كإعدادات محلية أساسية؟

العبرية

وقد أعدت البناء عدة مرات، لا أخبار.

I would try to enter rails console and set SiteSetting.default_locale='en'

Alternatively: User.find_by(username: 'my-username').update(locale: 'en')

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

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

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

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

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

أريد أولاً تشغيل الموقع. إذا كان الترجمة معطلة من crowdin، فلا توجد لدي طريقة لإصلاحها.