Interação estranha com Discourse e Google Translate

Isso foi levantado por um de nossos membros regulares que usa um complemento do Firefox para tradução de páginas, mas isso parece ser independente dele e pode ser reproduzido com qualquer página no meta.

Passos:

  1. vá para https://translate.google.com/
  2. cole uma URL como https://meta.discourse.org/t/using-discourse-index/308031
  3. clique no ícone/botão de tradução

Você provavelmente chegará a uma página 404 do Discourse com uma URL como esta

https://meta-discourse-org.translate.goog/t/using-discourse-index/308031/t/using-discourse-index/308031?_x_tr_sl=en&_x_tr_tl=pt-PT&_x_tr_hl=en&_x_tr_pto=wapp&_x_tr_hist=true

Note que a URL tem o caminho /t/using-discourse-index/308031 duplicado nela. Remover o fragmento duplicado faz com que a tradução funcione como esperado.

Normalmente, isso seria um problema com o Google Tradutor, mas parece acontecer apenas com o Discourse (tentei em alguns outros sites) e depois que atualizamos para a versão 3.2.

2 curtidas

Desculpe por reabrir este tópico, mas acho que escolhi o título (e o ângulo) errado e ele não recebeu a atenção adequada.

Atualmente, o Discourse é incompatível com o Google Tradutor, que é provavelmente a ferramenta de tradução mais utilizada.

Qualquer URL de tópico colada no Google Tradutor sempre acaba com a página 404 sendo traduzida e não o tópico real. Funciona bem com as URLs da página inicial e das listas de tópicos – mas não com um tópico.

Talvez o Google Tradutor esteja recebendo alguma versão especial de crawler/impressão que não funciona para este propósito?

Eu uso o Google Tradutor regularmente e só vi esse comportamento com tópicos do Discourse, então pelo menos parte do problema parece estar no Discourse.

Parece que isso afeta todos os aplicativos Ember. Por exemplo, até mesmo o próprio aplicativo de documentação do Ember

Parece que o Google está atuando como proxy para o site, injetando algum Javascript e uma tag <base>. Podemos detectar as “hackers” do Google e contornar o problema do 404… mas duvido muito que um aplicativo JS complexo como o Discourse funcione bem através do proxy do Google.

Uma solução alternativa é usar a funcionalidade de tradução integrada nos navegadores (nativa ou via extensão). Estes não têm o mesmo comportamento de proxy/injeção.

1 curtida