Gruppenzugriff aktivieren, um Übersetzungen im Discourse-Website-Text zu ändern

Okay, ich teile die Antwort des Discourse Helpers für diejenigen, die daran interessiert sind und das Wissen dafür haben :slight_smile:

Ich denke, es ist wichtig, die UI/UX zu verbessern (unsere Foren zu modernisieren), wie den Composer, KI und die neuesten Verbesserungen, die wir gesehen haben.

Die verwendete englische Sprache ist super neutral/einfach und das macht Sinn, aber -in meinem Fall- sind die spanischen Übersetzungen standardmäßig nicht gut.

Das Bearbeiten von Zeichenketten in der Discourse-Benutzeroberfläche ist in Ordnung, aber sehr zeitaufwändig, und ich möchte diese Aufgabe einfach delegieren.

Ich verstehe, dass es nicht möglich ist, alle Zeichenketten als JSON-Datei herunterzuladen, aber die bearbeiteten Texte?

Das Herunterladen aller Sprach texte und das Bearbeiten der Datei sollte ein Workaround sein, um das gewünschte Ergebnis in 1/5 der Zeit zu erzielen.


Struktur des High-Level-Plugins

  1. Plugin-Skelett erstellen

    • Verwenden:

      rake plugin:create[custom-site-texts-group]
      
  2. Backend: Berechtigungen erweitern

    • Überschreiben Sie den relevanten Controller, z. B. Admin::SiteTextController, um Mitgliedern Ihrer benutzerdefinierten Gruppe(n) den Zugriff auf Endpunkte zur Textbearbeitung zu ermöglichen.

    • Sie könnten etwas Ähnliches verwenden:

      add_to_class(:admin_constraint, :matches?) do |request|
        user = ... # aktuellen Benutzer aus der Anfrage laden
        return true if user.admin?
        # Prüfen Sie auf die Mitgliedschaft Ihrer Gruppe
        group_id = Group.find_by(name: 'yourgroupname')&.id
        return user.group_ids.include?(group_id)
      end
      

      Dies ist nur illustrativ – Sie müssen die richtige Berechtigungsprüfung finden und sicherstellen, dass sie nur auf die Lokalisierungsbearbeitung beschränkt ist, nicht auf die vollständige Administratorfunktion.

  3. Frontend: UI für Gruppenmitglieder bereitstellen

    • Verwenden Sie PluginAPI, um UI für die Mitglieder Ihrer Gruppe einzufügen, wo Administratoren “Site-Texte anpassen” haben.

    • Blenden Sie diese UI für andere Benutzer aus.

  4. Sicherheit

    • Überprüfen Sie Berechtigungen in allen überschriebenen Controller-Aktionen und Routen erneut. Vertrauen Sie niemals clientseitigen Prüfungen.