Okay, comparto la respuesta de Discourse Helper para aquellos que estén interesados y tengan el conocimiento para hacerlo ![]()
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
-
Crear Esqueleto de Plugin
-
Usar:
rake plugin:create[custom-site-texts-group]
-
-
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) endEsto 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.
-
-
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.
-
-
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.