Okay, ich teile die Antwort des Discourse Helpers für diejenigen, die daran interessiert sind und das Wissen dafür haben ![]()
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
-
Plugin-Skelett erstellen
-
Verwenden:
rake plugin:create[custom-site-texts-group]
-
-
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) endDies 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.
-
-
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.
-
-
Sicherheit
- Überprüfen Sie Berechtigungen in allen überschriebenen Controller-Aktionen und Routen erneut. Vertrauen Sie niemals clientseitigen Prüfungen.