وقت خاطئ عند استخدام منتقي التاريخ: خطأ؟

مرحبًا،

تم تكوين نظام discourse (الإصدار 2.6.0.beta4) الخاص بي باستخدام Europe/Paris كتوقيت افتراضي لتواريخ discourse المحلية، ولكن عند محاولة تحديد وقت، يظهر الوقت بشكل خاطئ، كما هو موضح في لقطة الشاشة التالية:

حتى لو كتبت “20:00:00”، فإن الوقت المعروض هو “اليوم، 22:00”. دالة moment.tz.guess() التي تم تنفيذها في متصفحي تُرجع “Europe/Paris”، لذا لا أستطيع تخمين ما الذي أقوم به خطأ.

هل لديك أي فكرة؟

شكرًا لك،

3 إعجابات

@j.jaffeux هل لديك أي أفكار حول ما قد يسبب هذا؟

إعجابَين (2)

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

https://meta.discourse.org/t/locale-date-timezone-cooking-error-with-french-localization/161532

3 إعجابات

أزيل علامات الاقتباس عن tz، ليست حلاً طويل الأمد، لكن… إنه يعمل :grin:

إعجابَين (2)

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

لقد اعتمدت هذا الإصلاح:

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

4 إعجابات

لا أعتقد أن الأمر يعمل، قد يكون هناك أيضًا شيء متعلق بسطر الشرط 99 في discourse-local-dates.js.es6

if (config.timezone && moment.tz.names().includes(config.timezone))

والذي ليس صحيحًا (لكنه يجب أن يكون كذلك).

تعديل
لقد أدركت للتو أن الإصلاح قد تم تضمينه في فرع آخر، سأعود :sweat_smile:
… لذا لا، لقد تحققت،

[date=2020-12-20 time=15:00:00 timezone=„Europe/Paris“]
[date=2020-12-20 time=15:00:00 timezone=Europe/Paris]
[date=2020-12-20 time=15:00:00 timezone="Europe/Paris"]
[date=2020-12-20 time=15:00:00 timezone=«Europe/Paris»]

هي صحيحة، صحيحة، خاطئة، خاطئة

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

وأيضًا، على لوحة المفاتيح الفرنسية من نوع AZERTY الخاصة بي، فإن علامات الاقتباس هي في الواقع ". لا أعرف حتى كيف أُنتج « أو » دون نسخ ولصق، وهو أمر ربما طبيعي :thinking:

بالتأكيد لا ألوم أي شيء “خاطئ”:

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

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

من الغريب أن لدي 16:00 لآخر اثنين

بما أنك تستطيع تكرار المشكلة، هل يمكنك إضافة سجل هنا: https://github.com/discourse/discourse/blob/master/plugins/discourse-local-dates/assets/javascripts/lib/discourse-markdown/discourse-local-dates.js.es6#L15

console.log(matches[1]);

وأرسل لي بالضبط ما تحصل عليه.

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

بالتأكيد! لكنك أوقفتني هناك :smile: أفترض أنك تريد سجل رايلز؟ لست خبيرًا حقًا، بل مجرد متحمس قليلًا!
وعذراً، قرأت خمسة بدلاً من ستة أو لا أدري، الثالث فقط لا يعمل، خطأ مني، الرابع لا يعمل في المعاينة لكنه صحيح في المنشور النهائي :crazy_face:

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

لقد دفعت طلب سحب آخر، ربما من الأفضل الانتظار قبل أن تبدأ في البحث.

إعجابَين (2)

ما تمكّنت من رؤيته هو أن السمة “data-timezone” مفقودة (عندما لا يعمل شيء ما)

Message

  Post Update (1.1ms)  UPDATE "posts" SET "raw" = '[date=2020-12-20 time=12:00:00 timezone=Europe/Paris]
[date=2020-12-20 time=12:00:00 timezone="Europe/Paris"]', "self_edits" = 3, "cooked" = '<p><span data-date="2020-12-20" data-time="12:00:00" class="discourse-local-date" data-timezone="Europe/Paris" data-email-preview="2020-12-20T11:00:00Z UTC">2020-12-20T11:00:00Z</span><br>
<span data-date="2020-12-20" data-time="12:00:00" class="discourse-local-date" data-email-preview="2020-12-20T12:00:00Z UTC">2020-12-20T12:00:00Z</span></p>', "baked_at" = '2020-10-21 15:25:53.050518', "updated_at" = '2020-10-21 15:25:53.050721' WHERE "posts"."id" = 1954
إعجاب واحد (1)

نعم، لأنه لا يفهم علامات الاقتباس المحولة، وهذا هو السبب في أنني أحاول إجبارها على أن تكون في حالة معروفة.

إعجابَين (2)

أعتذر عن السؤال، سأتركك تعمل بعد ذلك. لقد كنتُ أظن أن ; في \&laquo; هي التي تسببت في فشل \u0026\u0026 moment.tz.names().includes(config.timezone). هل يمكن أن يكون config.timezone مُشفَّرًا بصيغة HTML؟

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

لا تقلق، قد أكون مخطئًا تمامًا :smiley:

إذن ما تسأل عنه هو في الأساس ما أفعله، لكن ليس في الوقت الذي تتوقعه، وقد يكون ذلك ممكنًا أيضًا. لذا، على سبيل المثال، قبل إصلاحي، شيء مثل:

[date=2020-12-20 time=15:00:00 timezone=«Europe/Paris»]

كان يعطي هذه السمات في تنسيق Markdown المُحلَّل:

{"date"=>"2020-12-20", "time"=>"15:00:00", "timezone"=>"«Europe/Paris»"}

وهو ما يجعل المشكلة واضحة.

بعد إصلاحي، نحصل على:

{"date"=>"2020-12-20", "time"=>"15:00:00", "timezone"=>"Europe/Paris"}

أعتقد فقط أنني لم أتعامل مع جميع حالات علامات الاقتباس من قبل. هل جربت الإصدار الثاني من التعديل الذي قمت به؟

إعجابَين (2)

نعم…

لكن بما أن النص الخام ليس

[date=2020-12-20 time=15:00:00 timezone=«Europe/Paris»]

بل هو بالفعل

[date=2020-12-20 time=15:00:00 timezone="Europe/Paris"]

أعتقد أن هناك شيئًا يحدث “أبعد من ذلك” :thinking:، في الواقع لا أعرف أين. يتم إدخال \&laquo; و \&raquo;.
آه نعم! يمكنني رؤيتها في معاينة المؤلّف
[date=2020-12-15 time=14:00:00 timezone="Europe/Paris"
تُنتج
[date=2020-12-15 time=14:00:00 timezone=« Europe/Paris »

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

نعم، ربما هناك مشكلتان، واحدة في الواجهة الأمامية والأخرى في الخلفية، لأن الإصلاح السابق حسّن بالتأكيد حالة اللغة الألمانية. أعتقد أنني يمكنني ببساطة تطبيق نفس التعبير النمطي (regex) على الواجهة الأمامية. تمنيت لو استطعت إعادة إنتاج هذه المشكلة :sweat_smile:

سأقوم بذلك غدًا.

5 إعجابات

@Benjamin_D / @j.jaffeux هل لا تزال هذه مشكلة؟

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

أعتقد ذلك، لكنني متأخر قليلاً، فأنا ما زلت عند الإصدار 2.6.0 beta5 :flushed: مع ذلك، لم أرَ أي التزام يتعلق بهذه المشكلة منذ أكتوبر.