Gráfico del progreso de la traducción por IA

Activé las traducciones con IA en mi servidor autoalojado de Discourse ayer. Todo va bien… bueno, más o menos.

El gráfico de progreso de las traducciones no se actualiza o es inexacto. Esto es lo que estoy viendo:

Esto indicaría que estoy al 99% en todas las publicaciones desde el 23 de febrero de 2026.

Esto no es exacto. Tengo aproximadamente 3.000 publicaciones en este período. Según los registros de traducción, actualmente está trabajando en publicaciones de hace unos 6 días.

Entonces, ¿alguien sabe:

  • ¿Cuál es la frecuencia de actualización de este gráfico?
  • ¿La consulta del Explorador de datos para las publicaciones pendientes de traducir?
  • ¿La consulta del Explorador de datos para las publicaciones traducidas?
  • ¿La consulta del Explorador de datos para las publicaciones que se intentaron traducir pero fallaron debido a algún error o razón?

Gracias de antemano.

Tuvimos que almacenar esta página en caché porque se agotaba el tiempo de espera en sitios grandes.

La traducción tiene básicamente dos pasos:

  1. Detectar el idioma original de la publicación
  2. Traducir a todos los demás idiomas

Al principio, tu sitio se quedará principalmente atascado en el paso 1, que inicialmente mostramos en esta página de progreso de traducción, pero luego lo eliminamos porque los comentarios indicaron que era “demasiada información”.

Dicho esto, este es un buen comentario. El caché de la página de progreso y la falta de información sobre la detección de la configuración regional están haciendo que la experiencia sea terrible al principio del proceso.

Por último, establecimos la tasa de relleno hacia atrás de manera muy conservadora; es posible que quieras aumentarla según tu presupuesto.

Sugeriría considerar un enfoque de informes más sencillo.

Según mi comprensión, el proceso de traducción funciona en dos etapas:

  1. Traducir los datos de temas elegibles.
  2. Traducir los datos de publicaciones elegibles.

Desde una perspectiva administrativa y de informes, me interesa menos lo que está actualmente en proceso y más el progreso general respecto a la carga de trabajo elegible. Preferiría ver informes basados en las reglas de elegibilidad de traducción configuradas.

Por ejemplo:

Estado

La configuración de relleno está ajustada para traducir todo el contenido creado después del 23 de febrero de 2026.

Área Total Elegible Traducido Completado
Temas 25,000 540 450 83%
Publicac. 400,000 3,700 800 22%

Traducciones fallidas

ID de publicación Motivo
34543 Caracteres malformados en la línea xxxx

El gráfico actual parece mostrar la actividad operativa, lo cual es ciertamente útil. Sin embargo, lo que realmente quiero entender es cuánto del trabajo elegible se ha completado.

Personalmente, no me interesan mucho los porcentajes de finalización por idioma. Un tema o una publicación está traducido o no lo está. La pregunta clave para mí es cuánto del fondo de trabajo configurado se ha procesado con éxito.

Este enfoque también parece más amigable para la base de datos, ya que se centra en conteos agregados en lugar de rastrear el progreso en cada combinación de idiomas.

Si los informes específicos por idioma siguen siendo valiosos, quizás podrían exponerse a través de un filtro. Un administrador podría seleccionar un idioma y ver la misma tabla de progreso solo para ese idioma.

Solo son algunas ideas.

p.d.

¿Cuál es el plazo actual de la caché?

He estado trabajando en el SQL del explorador de datos para crear el informe que aparece arriba. No soy un experto en SQL, pero estas consultas funcionan. Las consultas a continuación proporcionarán este nivel de información.

Informe de estado de traducción

Área Elegible Traducido Por traducir
Temas 540 450 90
Mensajes 3,700 800 2900

Temas:

-- Configuración:
-- Actualiza el SQL con tu configuración de traducción
-- Días a rellenar - Interval 'xxx'
-- Categoría a ignorar - Category_id NOT IN ()
-- Tipo de tema - Regular o private_message
--
-- Estado de traducción:
--  Total de temas a traducir: comenta ambas sentencias 'and topics.locale'
--  Temas no traducidos: descomenta solo - topics.locale is null
--  Temas traducidos: descomenta solo - topics.local = 'en'

SELECT count(distinct topics.id)
     FROM topics
     JOIN posts  ON topics.id  = posts.topic_id
    WHERE posts.created_at >= NOW() - INTERVAL '100 days' 
     AND  posts.user_id > 0
     AND  topics.category_id NOT IN (22,3)
     AND  topics.archetype = 'regular'
--   AND  topics.locale = 'en'
--   AND  topics.locale is null

Mensajes:

-- Configuración:
-- Actualiza el SQL con tu configuración de traducción
-- Días a rellenar - Interval 'xxx'
-- Categoría a ignorar - Category_id NOT IN ()
-- Tipo de tema - Regular o private_message
--
-- Estado de traducción:
--  Total de mensajes a traducir: comenta ambas sentencias 'and posts.locale'
--  Mensajes no traducidos: descomenta solo - posts.locale is null
--  Mensajes traducidos: descomenta solo - posts.locale = 'en'

SELECT count(*)
     FROM posts
     JOIN topics  ON topics.id  = posts.topic_id
    WHERE posts.created_at >= NOW() - INTERVAL '100 days' 
     AND  posts.user_id > 0
     AND  topics.category_id NOT IN (22,3)
     AND  topics.archetype = 'regular'
--     AND  posts.locale = 'en'
--     AND  posts.locale is null

Muchas gracias por los comentarios, @LotusJeff

Estoy tomando nota de algunos de tus puntos y realizaré las mejoras pronto™ (probablemente en julio).

En cuanto a las consultas en alemán, te responderé mañana con una versión más precisa.