Abilita il gruppo a modificare le traduzioni nei testi del sito Discourse

Mi chiedo se sia possibile abilitare la modifica del testo sui gruppi più che sugli amministratori. Almeno i moderatori?

Vogliamo usare un tono diverso e usare le nostre parole nella nostra community, al fine di ottenere una chiusura con i nostri utenti.

2 Mi Piace

Puoi concedere ai gruppi l’autorizzazione a modificare i post creati da altri modificando l’impostazione del sito Edit all post groups — è questo che stai cercando?

1 Mi Piace

Ciao, grazie per la tua risposta. Sto cercando di abilitare le modifiche al testo di Discourse (aka localizzazione, stringhe di lingua) :)\n\nCapisco che attualmente sia abilitato solo per gli amministratori, e penso che sia una funzione più fattibile per moderatori/editor.

1 Mi Piace

oh grazie per aver chiarito, al momento non è possibile

Ok, condivido la risposta di Discourse Helper per chi è interessato e ha le conoscenze per farlo :slight_smile:

Penso sia essenziale migliorare l’UI/UX (modernizzare i nostri forum), come il composer, l’AI e i recenti miglioramenti che abbiamo visto.

L’inglese usato è super neutro/piano e ha senso, ma -nel mio caso- le traduzioni in spagnolo non sono buone di default.

Modificare le stringhe nell’UI di Discourse va bene ma richiede molto tempo, e voglio solo delegare questo compito.

Capisco che non sia possibile scaricare tutte le stringhe come file JSON ma i testi modificati?

Scaricare tutti i testi della lingua e modificare il file dovrebbe essere una soluzione alternativa per ottenere il risultato desiderato in 1/5 del tempo.


Struttura del Plugin di Alto Livello

  1. Crea Scheletro Plugin

    • Usa:

      rake plugin:create[custom-site-texts-group]
      
  2. Backend: Estendi Permessi

    • Sovrascrivi il controller pertinente, ad esempio Admin::SiteTextController, per consentire ai membri del tuo gruppo personalizzato di accedere agli endpoint di modifica del testo.

    • Potresti usare qualcosa di simile a:

      add_to_class(:admin_constraint, :matches?) do |request|
        user = ... # carica l'utente corrente dalla richiesta
        return true if user.admin?
        # Controlla l'appartenenza al tuo gruppo
        group_id = Group.find_by(name: 'tuogrupponome')&.id
        return user.group_ids.include?(group_id)
      end
      

      Questo è solo illustrativo—dovrai individuare il controllo dei permessi corretto e assicurarti che sia limitato solo alla modifica della localizzazione, non all’amministrazione completa.

  3. Frontend: Esponi UI ai Membri del Gruppo

    • Usa PluginAPI per iniettare l’UI per i membri del tuo gruppo dove gli amministratori hanno “Personalizza Testi del Sito”.

    • Nascondi questa UI per gli altri utenti.

  4. Sicurezza

    • Ricontrolla i permessi in qualsiasi azione del controller e route sovrascritta. Non fidarti mai dei controlli lato client.