Reemplazo de traducción obsoleta que causa falta de traducción

Hola a todos.
Con la actualización que hice hace aproximadamente 1 semana, apareció un problema de visualización de botones en la página del perfil de usuario como el siguiente. Pensé que podría solucionarse con la actualización que se haría en los próximos días, y aunque hice las actualizaciones en curso, no mejoró.

1 me gusta

¿Funciona el texto en tu perfil aquí en Meta?

¿Has personalizado la cadena en el pasado?

También encontré este tema Turkish translation issue with share dialog, así que tal vez intenta una reconstrucción.

4 Me gusta

No parece haber ningún problema en meta. Pero el problema persiste en mi propio sitio. No he realizado ninguna personalización/localización.
También probé la solución del enlace que me diste y reconstruí Discourse. Desafortunadamente, no funcionó.

¿Has probado con un navegador diferente o una pestaña de navegación privada / incógnito?

Gracias por tu preocupación.
Lo probé en 4 navegadores diferentes y en el móvil. Puedo decir claramente que no funciona.

Entonces probablemente ya también has probado el modo seguro.

1 me gusta

El problema persiste en el modo seguro, desafortunadamente. . .

Movido a soporte:

… Veo el texto correctamente aquí… ¿estás seguro de que actualizaste a la última versión?

1 me gusta

Cuando reviso, puedo ver que está actualizado.
No entiendo qué causó esto.


Creo que esto está relacionado con

Pude reproducir el problema de que la cadena de preferencias en turco estaba rota. Personalicé js.user.preferences antes de actualizar y, después de la actualización, el nuevo js.user.preferences.title se rompió.
Luego ejecuté

TranslationOverride.where(translation_key: "js.user.preferences").delete_all
TranslationOverride.send(:reload_locale!)

y esto lo arregló :tada:

Pero esperaría la confirmación de alguien con más conocimiento antes de intentar hacer esto yo mismo en un sitio de producción.

3 Me gusta

Cuando reviso, el valor del texto parece correcto.

Cambié el texto predeterminado pero aún así no funcionó y el mismo problema persiste.

¿Es seguro hacer esto en un entorno de producción? ¿Alguien puede guiar?
La personalización de texto no funciona en el foro. No se aplica solo a esta área.

1 me gusta

TL;DR: La anulación de traducción existente anula groseramente la anulación de traducción personalizada obsoleta con la nueva traducción, causando problemas de tipo. O, aquí, no se pudo actualizar la anulación de traducción obsoleta a “obsoleta”.

El problema

El foro que administro tiene una anulación para la traducción js.user.preferences. Antes de este commit, era una cadena, por lo que la anulación de traducción funcionaba bien.

Después de este commit, la clave se convierte en un objeto. Sin embargo, la anulación de traducción no detecta el tipo de clave, sino que la anula directamente a la cadena definida anteriormente. Esto provoca que la traducción de la clave falte en la interfaz.

Cómo reproducir

Para los foros más recientes, esto parece requerir la inserción manual de un registro obsoleto para activarlo.

INSERT INTO translation_overrides
  (locale, translation_key, value, created_at, updated_at)
VALUES 
  ('en', 'js.user.preferences', 'test', current_timestamp, current_timestamp);

Luego, modifique un texto del sitio al azar para activar la actualización.

Parece que, de alguna manera, el estado de esta anulación no se actualizó a “obsoleto”.

[5] pry(main)> TranslationOverride.last
  TranslationOverride Load (1.2ms)  SELECT "translation_overrides".* FROM "translation_overrides" ORDER BY "translation_overrides"."id" DESC LIMIT 1
=> #<TranslationOverride:0x00007f0b20a31e20
  id: 18,
  locale: "en",
  translation_key: "js.user.preferences",
  value: "test",
  created_at: Tue, 23 Jul 2024 17:08:17.317404000 UTC +00:00,
  updated_at: Tue, 23 Jul 2024 17:08:17.317404000 UTC +00:00,
  compiled_js: nil,
  original_translation: nil,
  status: "up_to_date">
2 Me gusta

He movido tu repro a los informes anteriores para mantenerlos agrupados. :+1:

1 me gusta

Vaya, no vi que hubiera un informe de error similar aquí ( )

Ya lo estoy rastreando, pero es extraño, creo que esto debería funcionar bien… No sé qué está pasando aquí.

2 Me gusta

Esto debería ser seguro hacerlo en un sitio de producción. :+1: (aunque por favor haz una copia de seguridad antes de intentar cambios en la consola de rails, ya que pueden ocurrir accidentes)

Sin embargo, si ninguna personalización de texto funciona, ¿estás seguro de que es el mismo problema?

2 Me gusta

Este problema se ha resuelto con la última actualización. (3.4.0.beta1-dev)

1 me gusta

Sí, también confirmo que el problema se ha resuelto con la actualización actual.

2 Me gusta

Para completar esto, aquí está la PR para la corrección: :partying_face:

2 Me gusta

Este tema se cerró automáticamente después de 14 horas. Ya no se permiten nuevas respuestas.