Permettre au groupe de modifier les traductions dans les textes du site Discourse

Je me demande s’il est possible d’autoriser la modification de texte pour les groupes autres que les administrateurs. Les modérateurs au moins ?

Nous voulons utiliser un ton différent et employer nos propres mots dans notre communauté, afin de conclure avec nos utilisateurs.

2 « J'aime »

Vous pouvez autoriser des groupes à modifier les publications des autres en modifiant le paramètre du site Edit all post groups — est-ce ce que vous recherchez ?

1 « J'aime »

Bonjour, merci pour votre réponse. Je cherche à activer les modifications de texte Discourse (également appelées localisation, chaînes de langue) :slight_smile:

Je comprends que la fonction n’est actuellement activée que pour les administrateurs, et je pense qu’elle serait plus pertinente pour les modérateurs/éditeurs.

1 « J'aime »

oh merci de clarifier, ce n’est pas possible actuellement

Ok, je partage la réponse de Discourse Helper pour ceux qui sont intéressés et qui ont les connaissances pour le faire :slight_smile:

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

  1. Créer le squelette du plugin

    • Utiliser :

      rake plugin:create[custom-site-texts-group]
      
  2. 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)
      end
      

      Ceci 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.

  3. 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.

  4. 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.