Dividi post grandi per una traduzione efficace

Utilizzo il plugin Translator con il servizio Microsoft. Se il post è abbastanza lungo, non può essere tradotto con il seguente errore:

Questo post è troppo lungo per essere tradotto dal traduttore.

Potreste implementare una funzione per la traduzione paragrafo per paragrafo per aggirare questo problema?

2 Mi Piace

È una parte normale di Google Translate e credo che il limite di parole sia qualcosa come 500 parole.

Se ricevi regolarmente qualcosa di più grande di così, vedo alcune opzioni:

  1. Analizzare manualmente il contenuto per blocchi di testo inferiori a 500 parole (o, qual è il limite).
  2. Utilizzare un’altra API di Google che gestisce la traduzione di documenti (non sono sicuro, ma credo che ne abbiano una, devi chiedere lì).
  3. Utilizzare un altro sito che gestisce la traduzione di documenti e sperare che espongano le API.

Non dimenticare di dirci cosa ha funzionato.

Utilizzo l’API di Microsoft, non quella di Google.
Sembra che Microsoft abbia un limite di 10.000 caratteri per singola richiesta: Service limits - Translator - Foundry Tools | Microsoft Learn

Immagino che la soluzione più semplice sia suddividere il post per paragrafi (“\r\n\r\n” o

), assumendo che nessun paragrafo superi i 10.000 caratteri?

1 Mi Piace

Non ho mai usato Microsoft Translate, quindi sei avanti a me su questo punto, anche se sospetto che in teoria i metodi sarebbero gli stessi.

Mi piace la tua idea di analizzare i salti di paragrafo, anche se non sono sicuro che ogni documento abbia una fine riga CR/LF. Unix usa solo il carattere LF, Mac usa solo il carattere CR e Windows usa entrambi. Altri documenti potrebbero usare un byte nullo come carattere di fine riga.

Unicode presenta i suoi problemi, dato che ogni carattere è lungo due byte.

Possibile soluzione: Analizzare la fine riga nelle prime una o due frasi, memorizzarla come valore e poi convertire tutte le fine riga in “\n” prima di analizzare il documento. Una volta completato il documento, si potrebbe ripristinare automaticamente la fine riga corretta.

Un metodo consisterebbe nell’analizzare in avanti fino a raggiungere 10.000 parole e poi analizzare all’indietro alla ricerca di un salto di paragrafo. Posizionare un puntatore di testa all’inizio del blocco corrente, analizzare in avanti e, quando si trova l’ultimo salto di paragrafo prima delle 10.000 parole, posizionare un puntatore di coda. Ritagliare quel blocco, tradurlo, spostarlo nel documento di risultato, spostare il puntatore di testa alla posizione del puntatore di coda e continuare.

==============================

A margine, il software di traduzione può essere terribile perché spesso la traduzione è fortemente sensibile al contesto, contiene slang o utilizza gergo. Allo stesso modo, i termini tecnici o le parole specifiche di un determinato mestiere o abilità che non dovrebbero essere tradotte in molti casi vengono distorti in modo orribile. Documenti legali, medici e ingegneristici/tecnici sono classici esempi.

Ho inviato un documento medico complesso (il referto operatorio per un intervento chirurgico al cervello di qualcuno) attraverso due traduttori diversi: Google e Yandex, tentando di tradurlo in russo. Il risultato di entrambe le traduzioni era più simile a una lasagna cattiva che a un documento leggibile!

@jharris1993, immagino tu stia proponendo a me di implementare la funzionalità. Purtroppo, non ho esperienza con Ruby e ci metterei molto più tempo rispetto a una persona esperta. Certo, potrei arrangiarmi, ma non verrebbe accettato.

Nel mio forum, la traduzione più richiesta è dal russo all’inglese, di post tecnici. Microsoft fa un ottimo lavoro in questo ambito.

1 Mi Piace

Che figata!

Di che forum si tratta, per favore? Se riesce a fare dall’inglese al russo, potrei inviare il mio prossimo documento lungo e complesso!

La traduzione viene eseguita con il plugin discourse-translator. Pensavo di aver creato questo argomento nella categoria plugin, ma è rimasto senza categoria.

1 Mi Piace