Substituição de tradução desatualizada causando tradução ausente

Olá a todos.
Com a atualização que fiz há cerca de 1 semana, surgiu um problema de exibição de botão na página do perfil do usuário, como segue. Pensei que poderia ser corrigido com a atualização a ser feita nos dias seguintes e, embora tenha feito as atualizações contínuas, não melhorou.

1 curtida

O texto funciona no seu perfil aqui na Meta?

Você personalizou a string no passado?

Eu também encontrei este tópico Turkish translation issue with share dialog, então talvez tente uma reconstrução.

4 curtidas

Não parece haver nenhum problema no meta. Mas o problema persiste no meu próprio site. Não fiz nenhuma personalização/localização.
Também tentei a solução no link que você deu e reconstruí o Discourse. Infelizmente não funcionou.

Você já tentou usar um navegador diferente ou uma janela anônima/privada?

Obrigado pela sua preocupação.
Eu tentei em 4 navegadores diferentes e no celular. Posso dizer claramente que não funciona.

Então você provavelmente já tentou o modo de segurança também.

1 curtida

O problema persiste no Modo de Segurança, infelizmente. . .

Movido para suporte:

Vendo o texto corretamente aqui… você tem certeza de que atualizou para a versão mais recente?

1 curtida

Quando verifico, vejo que está atualizado.
Não consigo entender o que causou isso.


Acho que isso está relacionado a

Consegui reproduzir o problema de que a string para preferências em turco estava quebrada. Eu personalizei js.user.preferences antes de atualizar e, após a atualização, o novo js.user.preferences.title estava quebrado.
Então executei

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

e isso corrigiu :tada:

Mas eu esperaria a confirmação de alguém com mais conhecimento antes de tentar fazer isso em um site de produção.

3 curtidas

Quando verifico, o valor do texto aparece correto.

Eu mudei o texto padrão, mas ainda não funcionou e o mesmo problema persiste.

É seguro fazer isso em um ambiente de produção? Alguém pode me orientar?
Nenhuma personalização de texto funciona no fórum. Não se aplica apenas a esta área.

1 curtida

TL;DR: A substituição de tradução existente substitui rudemente a tradução personalizada desatualizada pela nova tradução, causando problemas de tipo. Ou, aqui, falhou em atualizar a substituição de tradução desatualizada para “desatualizada”.

O problema

O fórum que gerencio tem uma substituição para a tradução js.user.preferences. Antes deste commit, era uma string, então a substituição de tradução funcionava bem.

Após este commit, a chave se torna um objeto. No entanto, a substituição de tradução não detecta o tipo da chave, mas a substitui diretamente pela string antiga definida. Isso faz com que a tradução da chave falte na interface.

Como reproduzir

Para os fóruns mais recentes, isso parece exigir a inserção manual de um registro desatualizado para acionar:

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

Em seguida, modifique um texto do site aleatoriamente para acionar a atualização:

Parece que, de alguma forma, o status desta substituição não foi atualizado para “desatualizado”.

[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 curtidas

Eu anexei seu repro aos relatórios anteriores para mantê-los agrupados. :+1:

1 curtida

Uau, eu não vi que havia um relatório de bug igual aqui ()\n\nJá estou rastreando, mas é estranho, acho que isso deveria funcionar bem… Não sei o que está acontecendo aqui

2 curtidas

Isso deve ser seguro para fazer em um site de produção. :+1: (embora, por favor, faça um backup antes de tentar fazer alterações no console do Rails, pois acidentes podem acontecer)

No entanto, se nenhuma personalização de texto estiver funcionando, você tem certeza de que este é o mesmo problema?

2 curtidas

Este problema foi resolvido com a última atualização. (3.4.0.beta1-dev)

1 curtida

Sim, também confirmo que o problema foi resolvido com a atualização atual.

2 curtidas

Para finalizar, aqui está o PR para a correção: :partying_face:

2 curtidas

Este tópico foi automaticamente fechado após 14 horas. Novas respostas não são mais permitidas.