استبدال الترجمة القديمة يسبب فقدان الترجمة

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

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

هل يعمل النص على ملفك الشخصي هنا في ميتا؟

هل قمت بتخصيص السلسلة في الماضي؟

لقد وجدت أيضًا هذا الموضوع Turkish translation issue with share dialog ، لذا ربما تجرب إعادة البناء.

4 إعجابات

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

هل جربت متصفحًا مختلفًا أو علامة تبويب خاصة / متصفح خفي؟

شكرا لاهتمامك.
لقد جربته على 4 متصفحات مختلفة وعلى الهاتف المحمول. يمكنني القول بوضوح أنه لا يعمل.

إذًا، ربما تكون قد جربت الوضع الآمن بالفعل.

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

تستمر المشكلة في الوضع الآمن للأسف. . .

تم النقل إلى الدعم:

أرى النص بشكل صحيح هنا… هل أنت متأكد من أنك قمت بالتحديث إلى أحدث إصدار؟

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

عندما أتحقق، أرى أنه محدث.
لا أفهم ما سبب هذا.


أعتقد أن هذا يتعلق بـ

تمكنت من إعادة إنتاج المشكلة التي كانت فيها السلسلة الخاصة بالتفضيلات باللغة التركية معطلة. قمت بتخصيص js.user.preferences قبل التحديث وبعد التحديث، تعطل js.user.preferences.title الجديد.
ثم قمت بتشغيل

TranslationOverride.where(translation_key: "js.user.preferences").delete_all
TranslationOverride.send(:reload_locale!)

وهذا أصلحها :tada:

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

3 إعجابات

عند التحقق، تظهر قيمة النص بشكل صحيح.

لقد قمت بتغيير النص الافتراضي ولكنه لم ينجح، ولا تزال المشكلة قائمة.

هل من الآمن القيام بذلك في بيئة إنتاجية؟ هل يمكن لأحد أن يرشدني؟
لا يعمل تخصيص النص في المنتدى. لا ينطبق هذا على هذه المنطقة فقط.

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

TL؛DR: تجاوز الترجمة الحالي يتجاوز وقاحةً الترجمة المخصصة القديمة بالترجمة الجديدة، مما يتسبب في مشاكل في النوع. أو، هنا، فشل في تحديث تجاوز الترجمة القديم إلى “قديم”.

المشكلة

المنتدى الذي أديره لديه تجاوز للترجمة js.user.preferences. قبل هذا الالتزام، كان سلسلة نصية، لذا عمل تجاوز الترجمة بشكل جيد.

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

كيفية إعادة الإنتاج

بالنسبة للمنتديات الأحدث، يبدو أن هذا يتطلب إدراج سجل قديم يدويًا لتشغيله

INSERT INTO translation_overrides
  (locale, translation_key, value, created_at, updated_at)
VALUES 
  ('en', 'js.user.preferences', 'test', current_timestamp, current_timestamp);

ثم قم بتعديل نص موقع عشوائي لتشغيل التحديث

يبدو أنه بطريقة ما، لم يتم تحديث حالة هذا التجاوز إلى “قديم”.

[5] pry(main)> TranslationOverride.last
  TranslationOverride Load (1.2ms)  SELECT "translation_overrides".* FROM "translation_overrides" ORDER BY "translation_overrides"."id" DESC LIMIT 1
=> #<TranslationOverride:0x00007f0b20a31e20
  id: 18,
  locale: "en",
  translation_key: "js.user.preferences",
  value: "test",
  created_at: Tue, 23 Jul 2024 17:08:17.317404000 UTC +00:00,
  updated_at: Tue, 23 Jul 2024 17:08:17.317404000 UTC +00:00,
  compiled_js: nil,
  original_translation: nil,
  status: "up_to_date">
إعجابَين (2)

لقد قمت بإضافة تقريرك إلى التقارير السابقة للحفاظ على تجميعها معًا. :+1:

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

واو، لم أر أن هناك تقرير خطأ مماثل هنا ()\n\nأنا أتعقبه بالفعل، لكن الأمر غريب، أعتقد أن هذا يجب أن يعمل بشكل جيد… لا أعرف ما الذي يحدث هنا

إعجابَين (2)

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

على الرغم من أنه إذا لم تكن تخصيصات النص تعمل، فهل أنت متأكد من أن هذه هي نفس المشكلة؟

إعجابَين (2)

تم حل هذه المشكلة مع آخر تحديث. (3.4.0.beta1-dev)

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

نعم، أؤكد أيضًا أن المشكلة قد تم حلها مع التحديث الحالي.

إعجابَين (2)

لإكمال هذا الأمر، إليك طلب السحب (PR) للإصلاح: :partying_face:

إعجابَين (2)

تم إغلاق هذا الموضوع تلقائيًا بعد 14 ساعة. لم يعد يُسمح بالردود الجديدة.