تمكين المجموعة من تغيير الترجمات في نصوص موقع Discourse

حسنًا، أشارك رد Discourse Helper لمن يهتم ولديه المعرفة للقيام بذلك :slight_smile:

أعتقد أنه من الضروري تحسين واجهة المستخدم/تجربة المستخدم (تحديث منتدياتنا)، مثل المنشئ، والذكاء الاصطناعي، وأحدث التحسينات التي رأيناها.

اللغة الإنجليزية المستخدمة محايدة/بسيطة للغاية وهذا منطقي، ولكن -في حالتي- الترجمات الإسبانية ليست جيدة بشكل افتراضي.

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

أتفهم أنه ليس من الممكن تنزيل جميع السلاسل النصية كملف JSON ولكن النصوص المعدلة؟

تنزيل جميع نصوص اللغة وتحرير الملف يجب أن يكون حلاً بديلاً للحصول على النتيجة المرجوة في 1/5 من الوقت.


هيكل المكون الإضافي عالي المستوى

  1. إنشاء هيكل المكون الإضافي

    • استخدم:

      rake plugin:create[custom-site-texts-group]
      
  2. الواجهة الخلفية: توسيع الأذونات

    • تجاوز وحدة التحكم ذات الصلة، على سبيل المثال Admin::SiteTextController، للسماح لأعضاء مجموعتك المخصصة بالوصول إلى نقاط نهاية تحرير النصوص.

    • قد تستخدم شيئًا مشابهًا لـ:

      add_to_class(:admin_constraint, :matches?) do |request|
        user = ... # تحميل المستخدم الحالي من الطلب
        return true if user.admin?
        # التحقق من عضوية مجموعتك
        group_id = Group.find_by(name: 'yourgroupname')&.id
        return user.group_ids.include?(group_id)
      end
      

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

  3. الواجهة الأمامية: كشف واجهة المستخدم لأعضاء المجموعة

    • استخدم PluginAPI لحقن واجهة المستخدم لأعضاء مجموعتك حيث يوجد لدى المسؤولين “تخصيص نصوص الموقع”.

    • إخفاء واجهة المستخدم هذه للمستخدمين الآخرين.

  4. الأمان

    • أعد التحقق من الأذونات في أي إجراءات لوحدة تحكم أو مسارات تم تجاوزها. لا تثق أبدًا في عمليات التحقق من جانب العميل.