Publicación multilingüe de Discourse

discourse-multilingual-post

Un plugin de Discourse que permite múltiples versiones localizadas del contenido de los mensajes.

Este plugin es un concepto de prueba: sin la posibilidad de localizar los títulos de los temas, no es muy útil.

Cómo usarlo

En un mensaje, utiliza bloques [lang=xx]:

[lang=en]
Hello World!
[/lang]
[lang=fr]
Bonjour monde !
[/lang]
[lang=de]
Hallo Welt !
[/lang]

Resultado:

Hallo Welt !

Los códigos de país deben tener 2 letras (las regiones no son compatibles).

Cómo funciona

Al renderizar un mensaje, el plugin busca un bloque [lang=xx] para mostrar. Dejará de buscar una vez que encuentre:

  1. el bloque establecido para el idioma del usuario (según la selección de Discourse)
  2. el bloque establecido para el idioma predeterminado de la instancia de Discourse
  3. el primer bloque

Repositorio

https://github.com/sylque/discourse-multilingual-post

13 Me gusta

Equipo de Discourse, ¿tienen alguna idea de cómo podría localizar los títulos de los temas?

Lo que me gustaría hacer es lo siguiente:

  • Definir un orden de idiomas, por ejemplo “en,fr,de”
  • Permitir que los usuarios escriban títulos de temas así: Hello World#Bonjour monde#Hallo Welt
  • Cuando Discourse muestre un título de tema, modificarlo para que solo conserve el idioma correcto

Sin embargo, no he encontrado ningún hook en el lado del cliente para modificar el título. ¿Alguna idea?

6 Me gusta

¿Has considerado manejar los títulos en Rails? El idioma predeterminado es el existente, mientras que los títulos adicionales son campos personalizados del tema. Luego, modificas los serializadores para enviar el título del idioma seleccionado en el payload.

8 Me gusta

¡Buen trabajo!

Yo también apoyaría esta idea. Creo que la mejor opción para los títulos es hacerlo del lado del servidor.

De hecho, estoy en proceso de desarrollar un plugin multilingüe (casi terminado) que permite traducciones de:

  1. Etiquetas
  2. Nombres de categorías
  3. Descripciones de categorías

Además, incluye un panel de administración para gestionar idiomas y configuraciones regionales, así como otras funcionalidades como filtros de contenido específicos por idioma para cada usuario.

Podría haber espacio para unir fuerzas en este proyecto.

14 Me gusta

¡Hola! Me encanta este plugin y lo sencillo que es, y creo que sería aún más útil si admitiera la personalización de las páginas de Discourse (Preguntas frecuentes/Normas, Términos de servicio, Política de privacidad), ya que los títulos se traducen de todos modos. He intentado bifurcarlo y ampliarlo yo mismo, pero para ser honesto, soy un principiante absoluto. Aunque tengo la sensación de que debe reescribirse en torno a decorateWidget() en lugar de decorateCooked().

1 me gusta

Decorar una página estática de Discourse (Preguntas frecuentes/Lineamientos, TOS, Política de privacidad) sería una buena función. Sin embargo, no estoy seguro de que decorateWidget tenga un gancho para páginas estáticas. ¿Alguien tiene alguna pista sobre esto?