Permitir que el grupo cambie las traducciones en los textos del sitio Discourse

Me pregunto si es posible habilitar la edición de texto en grupos más allá de los administradores. ¿Moderadores al menos?

Queremos usar un tono diferente y usar nuestras propias palabras en nuestra comunidad, para obtener un cierre con nuestros usuarios.

2 Me gusta

Puedes dar permiso a grupos para editar publicaciones hechas por otros cambiando la configuración del sitio Grupos de edición de todas las publicaciones, ¿es esto lo que buscas?

1 me gusta

Hola, gracias por tu respuesta. Estoy buscando habilitar las ediciones de texto de Discourse (también conocidas como localización, cadenas de idioma) :slight_smile:

Entiendo que actualmente solo está habilitado para administradores, y creo que es una función más factible para moderadores/editores.

1 me gusta

oh gracias por aclarar, esto no es posible actualmente

Okay, comparto la respuesta de Discourse Helper para aquellos que estén interesados y tengan el conocimiento para hacerlo :slight_smile:

Creo que es esencial mejorar la UI/UX (modernizar nuestros foros), como el composer, la IA y las últimas mejoras que hemos visto.

El inglés utilizado es súper neutral/plano y tiene sentido, pero -en mi caso- las traducciones al español no son buenas por defecto.

Editar cadenas en la UI de Discourse está bien, pero lleva mucho tiempo, y solo quiero delegar esta tarea.

Entiendo que no es posible descargar todas las cadenas como un archivo JSON, pero ¿los textos editados?

Descargar todos los textos del idioma y editar el archivo debería ser una solución alternativa para obtener el resultado deseado en 1/5 del tiempo.


Estructura de Plugin de Alto Nivel

  1. Crear Esqueleto de Plugin

    • Usar:

      rake plugin:create[custom-site-texts-group]
      
  2. Backend: Extender Permisos

    • Sobrescribir el controlador relevante, por ejemplo, Admin::SiteTextController, para permitir que los miembros de tu grupo personalizado accedan a los puntos finales de edición de texto.

    • Podrías usar algo similar a:

      add_to_class(:admin_constraint, :matches?) do |request|
        user = ... # cargar usuario actual de la solicitud
        return true if user.admin?
        # Comprobar la membresía de tu grupo
        group_id = Group.find_by(name: 'tu_nombre_de_grupo')&.id
        return user.group_ids.include?(group_id)
      end
      

      Esto es solo ilustrativo — necesitarás localizar la verificación de permisos correcta y asegurarte de que solo esté limitada a la edición de localización, no a la administración completa.

  3. Frontend: Exponer UI a los Miembros del Grupo

    • Usar PluginAPI para inyectar UI para los miembros de tu grupo donde los administradores tienen “Personalizar Textos del Sitio”.

    • Ocultar esta UI para otros usuarios.

  4. Seguridad

    • Volver a verificar los permisos en cualquier acción de controlador y ruta sobrescrita. Nunca confíes en las verificaciones del lado del cliente.