تخصيص نص زر موضوع جديد

:discourse2: ملخص تخصيص زر الموضوع الجديد لكل فئة أو علامة
:eyeglasses: معاينة معاينة على منشئ سمات Discourse
:hammer_and_wrench: المستودع \u003chttps://github.com/discourse/discourse-customize-new-topic-button-text\u003e
:question: دليل التثبيت كيفية تثبيت سمة أو مكون سمة
:open_book: جديد في سمات Discourse؟ دليل المبتدئين لاستخدام سمات Discourse

تثبيت مكون السمة هذا

الميزات

يسمح لك مكون السمة هذا بتخصيص زر الموضوع الجديد في قائمة مواضيع الفئة أو العلامة، بالإضافة إلى اسم الإجراء والزر في المنشئ (مميز أدناه). إذا كان لديك فئة #bug، على سبيل المثال، يمكنك تحديث هذه النصوص لتقول “الإبلاغ عن خطأ”:

(قد تحتاج بعض الأيقونات إلى إضافتها إلى إعداد svg icon subset الخاص بك في لوحة الإدارة)

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

الإعدادات

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

هناك إعدادان، الأول هو custom new topic text:

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

هناك إعداد إضافي، ممكّن افتراضيًا، يسمى inherit parent category. عند تمكين هذا، سيتم تغيير نصوص جميع الفئات الفرعية أيضًا (ما لم يتم تحديد خلاف ذلك في الإعدادات).

\u003e:information_source: لاحظ أنه إذا قمت بإعداد علامة، فستتجاوز الفئة المحددة.

:bulb: أفكار للتحسينات المستقبلية

  • نص قابل للترجمة للغات مختلفة
  • دعم لمجموعات الفئات والعلامات، وعلامات متعددة

\u003cbr\u003e

\u003e:discourse2: مستضاف من قبلنا؟ مكونات السمة متاحة للاستخدام على خططنا القياسية، والأعمال، والمؤسسات.

27 إعجابًا

هذا جيد حقًا ، شكرًا جزيلاً لك :heart:

اليوم، كنت أعمل على نسخة أبسط بكثير من هذا باستخدام api.customizeComposerText() :sweat_smile:

هذا حل أفضل بكثير. شكراً لك @awesomerobot!

في تجاربي، لم أتمكن أبدًا من تجاوز تسمية زر Composer للفئات باستخدام المكون الإضافي discourse-post-voting. تصبح هذه مشكلة أكبر عندما يتم تمكين فئات متعددة للتصويت على المنشورات.

إذا سمح لي باقتراح؛ تمكين الدعم لتجاوز تسميات discourse-post-voting، سيكون تحسينًا رائعًا. ( :

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

هذا مكون سمة رائع! فكرة للارتقاء به إلى مستوى أعلى قد تكون هذه:

إذا كنت تعيد تسمية الزر لأنك تريد فعليًا تغيير نوع الموضوع، فيجب عليك تغيير التسمية في *الفئة بأكملها.

على سبيل المثال:
لديك فئة تسمى Events. ستقوم فعليًا بتغيير كلمة “topic” في الفئة بأكملها إلى “events”. ليس “New Topic” بل “New Event”، وبدلاً من قائمة Topics ستكون لديك قائمة Events، إلخ.

ترى هذا في أدوات أخرى عندما تقوم بتغيير حالة الاستخدام الأساسية لشيء ما. إليك ما يفعله AirTable عند إنشاء جدول جديد. تحتوي الجداول افتراضيًا على “records”.

ولكن لنفترض أنني أريد إنشاء جدول يسمى “Users”، فيمكنني تغيير كل سجل ليسمى Users:

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

وجدت مكون السمة هذا أثناء البحث، لأنني أردت تغيير هذه الكلمة من “Topic” إلى “Events”:

3 إعجابات

@awesomerobot هذا المكون الخاص بالسمة مذهل حقًا، شكرًا جزيلاً لك عليه!

ألاحظ أن هذا المكون الخاص بالسمة يبدو أنه يسبب بعض السلوك الغريب مع CSS لزر الموضوع الجديد.

مكون السمة معطل:

مكون السمة ممكّن:


لقد لاحظت أيضًا أنه بينما يغير زر “إنشاء موضوع” في المنشئ، وهو أمر رائع…

كما أنه يغير نص زر الرد إلى نفس السلسلة، وهو أمر غير مثالي لأنه لا يقوم بإنشاء تقرير خطأ آخر، بل هو رد :slight_smile:

ما هي احتمالات إضافة حقل آخر إلى المحرر لتغيير نص زر الرد (أو تركه فارغًا لتركه كـ Reply؟

4 إعجابات

عذرًا، هناك شيء أخير: يبدو أن هذا لا يحترم أيضًا الحالة التي يكون فيها لفئتين فرعيتين (لكل منهما أب مختلف) نفس الاسم المستعار. على سبيل المثال:

  • parent1
    • sub1
  • parent2
    • sub1

في هذه الحالة، لا يمكنني جعل مكون السمة يميز بين الفئتين الفرعيتين، وكلاهما يشتركان في نفس التكوين من المحرر.

3 إعجابات

شكراً على الملاحظات، لقد أجريت بعض التحديثات! FIX: action, switch category to ID, ignore replies by awesomerobot · Pull Request #5 · discourse/discourse-customize-new-topic-button-text · GitHub

لقد أهملت زر الرد تمامًا! في الوقت الحالي، أبقيته على reply، ولكن إعدادًا منفصلاً لتغيير نصه سيكون منطقيًا.

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

3 إعجابات

يبدو أن هناك خطأ جديدًا. عند تمكين هذا المكون الإضافي، فإنه ينشئ زري موضوع:

إعجابَين (2)

نعم، شكراً لإبلاغك، لقد تغيرت بعض الموصلات في Discourse — يجب أن يتم إصلاحها الآن إذا قمت بالتحديث:

إعجابَين (2)

هل من الممكن إصلاح اختلاف حجم الزر؟ (لقطة شاشة قديمة، تحديثك الأخير أصلح مشكلة الأزرار المزدوجة)

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

نعم، يجب أن يكون هذا الزر بالارتفاع الصحيح الآن

إعجاب واحد (1)
هممم، أحاول استخدام هذه المكونة بنجاح وأرى الكثير من التحذيرات في سجلاتي مثل هذه.

الرسالة (تم الإبلاغ عن 4 نسخ)

[DiscourseJsProcessor] تحذير: استخدام {{attrs}} للإشارة إلى الوسائط المسماة قد تم إيقافه. يجب تحديث {{attrs.canCreateTopic}} إلى {{@canCreateTopic}}. (‘discourse/components/custom-new-topic-button.hbs’ @ L2:C8) [معرف التحذير: attrs-arg-access] انظر Ember.js - Deprecations لمزيد من التفاصيل.
at theme-transpiler.js:3164:26752
at j. (theme-transpiler.js:3168:1693)
at j. (theme-transpiler.js:3168:161)
at j. (theme-transpiler.js:3168:1693)
at D (theme-transpiler.js:3168:1754)
at te (theme-transpiler.js:3168:1318)
at PathExpression (theme-transpiler.js:3198:21763)
at yo (theme-transpiler.js:3187:2776)
at Al (theme-transpiler.js:3187:3513)
at Ml (theme-transpiler.js:3187:3309)
at yo (theme-transpiler.js:3187:3013)
at Al (theme-transpiler.js:3187:3513)
at Ml (theme-transpiler.js:3187:3309)
at yo (theme-transpiler.js:3187:3013)
at Ml (theme-transpiler.js:3187:3350)
at yo (theme-transpiler.js:3187:3013)
at Al (theme-transpiler.js:3187:3513)
at Ml (theme-transpiler.js:3187:3309)
at yo (theme-transpiler.js:3187:3013)
at Bi (theme-transpiler.js:3187:3879)
at PA (theme-transpiler.js:3190:3002)
at Cf (theme-transpiler.js:3190:9856)
at Al (theme-transpiler.js:3176:35353)
at gf (theme-transpiler.js:3176:35600)
at D (theme-transpiler.js:3198:42250)
at Sft.o.precompile (theme-transpiler.js:3281:3078)
at dDe (theme-transpiler.js:3161:1003)
at e.CallExpression (theme-transpiler.js:3159:33796)
at h (theme-transpiler.js:10:111797)
at e.uPe [as _call] (theme-transpiler.js:59:16906)
at e.oPe [as call] (theme-transpiler.js:59:16726)
at e.lPe [as visit] (theme-transpiler.js:59:17700)
at t.visitQueue (theme-transpiler.js:59:40645)
at t.visitSingle (theme-tr…

تتبع المكدس

/var/www/discourse/lib/discourse_js_processor.rb:133:in block in create_new_context' mini_racer-0.8.0/lib/mini_racer.rb:273:in block in attach’
mini_racer-0.8.0/lib/mini_racer.rb:242:in call_unsafe' mini_racer-0.8.0/lib/mini_racer.rb:242:in block (2 levels) in call’
mini_racer-0.8.0/lib/mini_racer.rb:369:in timeout' mini_racer-0.8.0/lib/mini_racer.rb:241:in block in call’
mini_racer-0.8.0/lib/mini_racer.rb:240:in synchronize' mini_racer-0.8.0/lib/mini_racer.rb:240:in call’
/var/www/discourse/lib/discourse_js_processor.rb:168:in block in v8_call' /var/www/discourse/lib/discourse_js_processor.rb:167:in synchronize’

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

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

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

نفس الشيء هنا، لم يظهر بعد عدة محاولات.

للأسف، يبدو أن مكون السمة الرائع هذا لا يعمل بشكل جيد مع Custom Wizard Plugin 🧙
يمكن لمكون Wizard ربط زر الفئة عبر إعدادات الفئة:

عند استخدام المكون الخاص بك، يتغير اسم الزر، لكن الضغط عليه لم يعد يشغل Wizard المحدد في إعدادات الفئة. سنكون سعداء لاستخدام المكون الخاص بك في موقع إنتاج كبير، ولكننا غير قادرين الآن. نأمل أن يتم إصلاحه. لا ضغط :slight_smile:

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

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

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

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

مرحباً

أعتقد أن لدي خطأ.

لم يعد من الممكن تعديل نص زر “موضوع جديد”.
التعديل فعال للأزرار الأخرى.

الإصدار: 3.2.0.beta4-dev([4886c1fddc]

شكراً لمساعدتك (ولأجل هذه الوظائف!)

إعجابَين (2)

شكرًا على التقرير!

يبدو أن هناك تراجعًا من آخر طلب سحب (PR):

يقوم بالتحويل من صيغة this.args.<param>. إلى صيغة @<param>; ومع ذلك، فإن الصيغة الأولى مطلوبة لأننا داخل منفذ إضافي (plugin outlet).

تعديل: لقد قمت بإنشاء طلب سحب (PR) :+1:

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

شكراً على طلب السحب يا @Arkshine! يجب أن يتم إصلاح هذا في التحديث

سيتم تضمين هذا أيضًا في التحديث: FEATURE: add ability to customize "Reply" text by 3-w-c · Pull Request #7 · discourse/discourse-customize-new-topic-button-text · GitHub

لذلك الآن سيتم تضمين خيار تخصيص نص زر الرد أيضًا في المنشئ وفي المشاركات (لا يزال يعتمد على العلامة والفئة).

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