Interazione insolita tra Discourse e Google Translate

Questo è stato sollevato da uno dei nostri membri abituali che utilizza un add-on di Firefox per la traduzione delle pagine, ma questo sembra essere indipendente da esso e può essere riprodotto con qualsiasi pagina in meta.

Passaggi:

  1. vai su https://translate.google.com/
  2. incolla un URL come https://meta.discourse.org/t/using-discourse-index/308031
  3. premi l’icona/pulsante di traduzione

Probabilmente atterrerai su una pagina 404 di Discourse con un URL come questo

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

Nota che l’URL ha il percorso /t/using-discourse-index/308031 duplicato. La rimozione del frammento duplicato fa funzionare la traduzione come previsto.

Normalmente questo sarebbe un problema con Google Translate, ma sembra accadere solo con Discourse (ho provato alcuni altri siti web) e dopo che abbiamo aggiornato alla versione 3.2.

2 Mi Piace

Mi dispiace riproporre questo argomento, ma penso di aver scelto il titolo (e l’angolazione) sbagliati e non ha ricevuto la giusta attenzione.

Al momento, Discourse è incompatibile con Google Traduttore, che è probabilmente lo strumento di traduzione più utilizzato.

Qualsiasi URL di argomento incollato in Google Traduttore finisce sempre per tradurre la pagina 404 e non l’argomento effettivo. Funziona bene con gli URL della home page e degli elenchi di argomenti, ma non con un argomento.

Forse Google Traduttore riceve una versione speciale per crawler/stampa che non funziona per questo scopo?

Uso regolarmente Google Traduttore e ho visto questo comportamento solo con gli argomenti di Discourse, quindi almeno parte del problema sembra essere in Discourse.

Sembra che questo influenzi tutte le app Ember. Ad esempio, anche la documentazione di Ember stessa

Sembra che Google stia facendo da proxy al sito, iniettando del Javascript e un tag <base>. Potremmo essere in grado di rilevare gli hack di Google e aggirare il problema del 404… ma dubito molto che un’app JS complessa come Discourse funzioni bene tramite il proxy di Google.

Una soluzione alternativa è utilizzare la funzionalità di traduzione integrata nei browser (nativa o tramite un’estensione). Queste non presentano lo stesso comportamento di proxy/iniezione.

1 Mi Piace