Ok, je partage la réponse de Discourse Helper pour ceux qui sont intéressés et qui ont les connaissances pour le faire ![]()
Je pense qu’il est essentiel d’améliorer l’UI/UX (moderniser nos forums), comme le compositeur, l’IA et les dernières améliorations que nous avons vues.
L’anglais utilisé est super neutre/plat et cela a du sens, mais -dans mon cas- les traductions espagnoles ne sont pas bonnes par défaut.
Modifier les chaînes dans l’interface utilisateur de Discourse est possible mais prend beaucoup de temps, et je veux juste déléguer cette tâche.
Je comprends qu’il n’est pas possible de télécharger toutes les chaînes sous forme de fichier JSON mais les textes modifiés ?
Télécharger tous les textes de langue et modifier le fichier devrait être une solution de contournement pour obtenir le résultat souhaité en 1/5 du temps.
Structure générale du plugin
-
Créer le squelette du plugin
-
Utiliser :
rake plugin:create[custom-site-texts-group]
-
-
Backend : Étendre les permissions
-
Remplacer le contrôleur pertinent, par exemple
Admin::SiteTextController, pour permettre aux membres de vos groupes personnalisés d’accéder aux points de terminaison d’édition de texte. -
Vous pourriez utiliser quelque chose de similaire à :
add_to_class(:admin_constraint, :matches?) do |request| user = ... # charger l'utilisateur actuel depuis la requête return true if user.admin? # Vérifier l'appartenance à votre groupe group_id = Group.find_by(name: 'votre_nom_de_groupe')&.id return user.group_ids.include?(group_id) endCeci est seulement illustratif — vous devrez localiser la vérification de permission correcte et vous assurer qu’elle est uniquement limitée à l’édition de la localisation, pas à l’administration complète.
-
-
Frontend : Exposer l’interface utilisateur aux membres du groupe
-
Utiliser PluginAPI pour injecter une interface utilisateur pour les membres de votre groupe là où les administrateurs ont “Personnaliser les textes du site”.
-
Masquer cette interface utilisateur pour les autres utilisateurs.
-
-
Sécurité
- Revérifier les permissions dans toutes les actions de contrôleur et routes remplacées. Ne jamais faire confiance aux vérifications côté client.