Para tu información, es posible realizar una traducción completa de Discourse, incluyendo las publicaciones

Para cualquiera que esté interesado en sitios de Discourse multilingües, quería compartir información sobre un producto que recientemente pude integrar en mi sitio alojado. No estoy asociado con esta empresa de ninguna manera, más allá de ser cliente, y no recibo ninguna compensación. Simplemente estoy impresionado con esta tecnología y quiero compartirla porque la traducción es muy difícil y esto la hace muy fácil.

El producto se llama Linguise. Puedes ver cómo se configura para trabajar con Discourse (o tecnología similar) en este video.

Básicamente, creas una cuenta (gratis por 30 días) y te guía a través de la configuración de algunos CNAME de DNS para el dominio principal de tu sitio que incluyen un prefijo de idioma de 2 letras. Por ejemplo, fr.misitio.com, es.misitio.com, uno para cada idioma que quieras hacer disponible.

Luego te dan un elemento <script> personalizado que necesitas incluir en el sitio de Discourse. La forma más fácil de hacerlo es crear un nuevo componente de tema, luego colocar su comando de script en la sección <Head>.

Eso es todo lo que se necesita. Ahora aparece un selector de idioma en tu sitio (puedes ajustar su ubicación y otras características fácilmente).

Haz clic en ese selector y elige otro idioma y la página se actualizará. Verás que la mayoría de los elementos de la pantalla se desenfocan por uno o dos segundos, luego toda la página se traducirá automáticamente.

Esto incluye menús, encabezados, nombres de categorías, nombres de publicaciones, contenido de publicaciones, etc. Incluso las pantallas de administración y configuración se traducen.

Es asombroso. Tienes 85 idiomas para elegir, y el precio se basa en cuántas palabras se traducen, no le importa qué idiomas se utilicen. Comienza alrededor de $15 por mes y llega a un máximo de $45 por mes para uso ilimitado.

Esta tecnología también funciona en casi cualquier sitio. Soportan directamente Wordpress, Joomla, Squarespace, Wix, Drupal y muchos sitios de comercio electrónico, etc. Pero la forma en que esto funciona para Discourse es una especie de mecanismo general que puede traducir cualquier sitio, incluso aquellos para los que no tienes código fuente o acceso de back-end, siempre y cuando tengas una forma de incluir esa etiqueta <script>.

6 Me gusta

¿Compartirías tu componente de tema?

¿Es posible personalizar las traducciones (nombres de categorías, títulos de temas…)?

3 Me gusta

La guía en video de Linguise no es suficiente para permitirme traducir mi sitio de Discourse.

En el primer paso, donde necesitamos elegir nuestra Plataforma, ‘Discourse’ no es una opción allí, y el video de YouTube está en silencio sobre qué elegir de esa lista si estamos en un sitio de Discourse (y no podemos avanzar a menos que hagamos una elección correcta allí).

Hola Bathinda. Elegiste “Otro CMS alojado en la nube”.

2 Me gusta

Hola Thomas:

Puedes crear fácilmente tu propio componente de tema vacío yendo a Administración/Temas/Componentes.

Haz clic en Instalar y, en el cuadro de diálogo que aparece, haz clic en Crear nuevo:

En el siguiente cuadro de diálogo, asígnale un nombre:

Esto crea un componente vacío. Ahora, todo lo que necesitas hacer es hacer clic en Editar CSS/HTML:

Ve a la pestaña llamada Head. Allí pegarás la etiqueta de script personalizada que Linguise te proporciona cuando configuras las cosas en su sitio web:

En mi imagen, incluí algunos comentarios, pero normalmente solo obtendrías una lista en blanco en la que pegarías tu URL personalizada de Linguise.

Ten en cuenta que, trabajando con el soporte técnico de Linguise, descubrimos que la etiqueta de script necesitaba modificarse ligeramente porque a veces la página requería una actualización manual al cambiar de idioma.

Si cambias el principio de la etiqueta para que comience <script defer src=… esto soluciona el problema de la actualización manual.

Como nota al margen, estos componentes personalizados simples se pueden usar como una forma segura y elegante de realizar cualquier modificación en el tema que estés utilizando y afectar a muchos elementos de la pantalla.

Por ejemplo, en mi sitio he deshabilitado una serie de elementos de pantalla que sentí que solo confundirían a mi población de usuarios. Para hacerlo, en la pestaña CSS agregué algunos selectores CSS con la propiedad display: none.

Por ejemplo, esto suprime el botón Add Section en la barra lateral:

.sidebar-wrapper .sidebar-footer-wrapper .btn-flat.add-section {
    display: none;
}

La parte complicada es averiguar los selectores CSS (es decir, la parte anterior al corchete de apertura), pero si usas las herramientas de desarrollador de tu navegador web, generalmente puedes encontrar los elementos de la pantalla y copiar sus selectores.

¡Buena suerte!

3 Me gusta

Esta es una explicación muy buena y detallada.
Gracias por eso.

1 me gusta

Quería hacer un seguimiento con algunos detalles adicionales de nuestra experiencia al hacer que Linguise funcione bien con Discourse.

Primero, en nuestro sitio usamos el plugin Discourse SAML para autenticar usuarios contra un almacén de usuarios diferente. Descubrimos que había un problema de cookies en ese caso particular.

Afortunadamente, la gente de Communiteq (https://www.communiteq.com/), que es una excelente empresa de alojamiento para Discourse, pudo analizar el problema y crear una pequeña solución en forma de plugin para resolverlo. Pero para la mayoría de la gente no será necesario.

Hay una limitación que debe tener en cuenta; Linguise no realiza traducciones cuando se ejecuta en su idioma predeterminado, en nuestro caso, inglés.

Normalmente esto no es un problema, pero hay un caso en el que sí lo es: las publicaciones escritas en otro idioma, digamos español, aparecen en español cuando Linguise está configurado en inglés. En cualquier otro idioma, se traducirían, pero no en el idioma predeterminado.

Linguise puede mejorar esto en el futuro, pero no hay ningún compromiso.

La solución para esto es hacer uso también del plugin Discourse Translator. Necesita configurar el acceso a la API de una de las empresas de traducción (Google, Yandex, Microsoft, etc.) y luego configurar esas credenciales en el plugin.

Una vez que lo haga, si está en inglés y lee una publicación creada por alguien en español, verá un pequeño ícono de globo terráqueo

Al hacer clic en él, aparecerá una traducción debajo de la original.

Entre los dos, cubren todos los casos, aunque no tan elegantemente como hubiera deseado.

Usamos una cuenta de Google Cloud que nos da las primeras 500.000 palabras cada mes de forma gratuita, y rara vez superamos ese límite. Creo que otros proveedores tienen ofertas similares.

Espero que esto sea útil para alguien.

3 Me gusta