
PolyLingo vs DeepL API: quale preserva meglio JSON e Markdown?
By Robert M
PolyLingo vs DeepL API: quale preserva meglio JSON e Markdown?
DeepL realizza un software di traduzione davvero eccellente. Il suo motore di traduzione neurale è ampiamente considerato uno dei migliori disponibili, e per la prosa semplice è difficile da battere. Se stai traducendo frasi, paragrafi o documenti scritti come testo continuo, DeepL è una scelta solida.
La domanda a cui risponde questo post è più ristretta: come si comporta l'API DeepL quando il tuo contenuto ha una struttura? Quando devi tradurre un file locale JSON senza toccare le chiavi, o un post di blog Markdown senza rompere la sintassi, o una pagina HTML senza danneggiare gli attributi? E come si confronta con PolyLingo per quel caso d'uso specifico?
Come è costruita l'API DeepL
L'API di traduzione testuale DeepL accetta testo semplice. Questo è il suo formato di input nativo. Ogni richiesta accetta fino a 50 stringhe di testo e vengono tradotte indipendentemente, senza contesto condiviso tra loro. Può essere specificata una sola lingua di destinazione per richiesta. Se ti servono cinque lingue, fai cinque richieste.
DeepL supporta la traduzione di documenti per formati come PDF, Word, PowerPoint e HTML, ma questo avviene tramite un endpoint documento separato con un flusso diverso: carica il file, controlla lo stato di completamento, scarica il risultato. È progettato per documenti d'ufficio, non per pipeline di contenuti programmatiche.
Per l'HTML in particolare, c'è un parametro tag_handling che puoi impostare su html, che dice a DeepL di trattare l'input come HTML e tentare di preservare i tag. Funziona abbastanza bene per markup semplice, ma è un flag opzionale che devi sapere di dover impostare, e non si estende a JSON o Markdown.
Per JSON, non c'è supporto nativo. L'endpoint testuale di DeepL non sa cos'è una chiave JSON. Se gli invii un oggetto JSON serializzato, tradurrà il contenuto come stringa e non c'è garanzia che chiavi, struttura o valori non stringa sopravvivano intatti. La libreria R babeldown, che incapsula DeepL per contenuti Markdown, ha documentato casi in cui DeepL confonde la punteggiatura all'interno di link e formattazioni Markdown, un limite noto del passare testo strutturato attraverso un motore di traduzione di testo semplice.
Questo non è una critica a DeepL. È una descrizione di ciò per cui l'API è stata progettata. Il caso d'uso principale di DeepL è la traduzione di alta qualità di prosa leggibile dall'uomo. È ciò per cui è ottimizzato ed è eccellente in questo.
Dove emerge la differenza nella pratica
La differenza diventa visibile nel momento in cui il tuo contenuto non è prosa semplice.
Considera un file locale Next.js standard:
{
"nav": {
"home": "Home",
"about": "About us",
"contact": "Get in touch"
},
"hero": {
"title": "Welcome to our platform",
"subtitle": "Everything you need in one place"
}
}
Per tradurre questo con l'API DeepL in cinque lingue dovresti:
- Estrarre ogni valore stringa singolarmente
- Fare una richiesta API separata per ogni lingua (cinque lingue, cinque richieste)
- Ricostruire la struttura JSON con i valori tradotti nei posti giusti
- Gestire eventuali casi in cui la traduzione ha modificato la punteggiatura o introdotto caratteri che rompono la validità JSON Questo è un quantitativo non banale di codice di collegamento. È anche fragile. Qualsiasi deviazione nell'output della traduzione rispetto a quanto si aspetta il tuo parser causerà un fallimento silenzioso o un errore a runtime nella tua applicazione.
Con PolyLingo invii l'oggetto così com'è con format: "json" e ricevi indietro una versione tradotta dell'intera struttura per ogni lingua target in una sola risposta. Le chiavi non vengono toccate. La nidificazione è preservata. I valori non stringa sono lasciati intatti. L'output si integra direttamente nel tuo progetto.
curl -sS -X POST "https://api.usepolylingo.com/v1/translate" \
-H "Authorization: Bearer $POLYLINGO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"content": "{\"nav\":{\"home\":\"Home\",\"about\":\"About us\"}}",
"format": "json",
"targets": ["fr", "de", "es", "ja", "nl"]
}'
Una richiesta. Cinque lingue. Struttura intatta.
Contenuto Markdown
Lo stesso schema si applica a Markdown. L'endpoint testuale di DeepL non ha alcun concetto di sintassi Markdown. Inviagli un post di blog e processerà tutto come una stringa. Le intestazioni possono sopravvivere. I blocchi di codice quasi certamente no, poiché il contenuto al loro interno probabilmente sarà trattato come testo traducibile. La sintassi dei link può essere danneggiata, in particolare attorno alla punteggiatura ai confini del testo del link.
Il flag di formato markdown di PolyLingo istruisce il modello a trattare la sintassi Markdown come strutturale piuttosto che traducibile. Le intestazioni rimangono intestazioni. I blocchi di codice delimitati da fence sono lasciati verbatim. Gli URL dei link non vengono alterati. Solo il contenuto della prosa cambia.
Per un sito di documentazione o un blog con contenuti tecnici, la differenza è significativa. Un blocco di codice corrotto in un tutorial non è un problema minore di presentazione, è un tutorial rotto.
La differenza tra una richiesta e una per lingua
Vale la pena soffermarsi su questo perché le implicazioni di costo sono reali.
L'API DeepL accetta solo una lingua target per richiesta. Per tradurre un contenuto in dieci lingue fai dieci chiamate API. Per un sito grande o un CMS con pubblicazioni frequenti, sono dieci volte l'overhead delle richieste, dieci volte la latenza da gestire e dieci volte i punti di possibile errore.
PolyLingo accetta un array di codici lingua target e restituisce tutte le traduzioni in una singola risposta. Trentasei lingue sono una richiesta, non trentasei.
Per progetti piccoli la differenza è gestibile. Per qualsiasi cosa su scala cambia l'architettura di come costruisci la tua pipeline di traduzione.
Modello di prezzo
DeepL addebita per carattere. Il piano API Free consente fino a 500.000 caratteri al mese, e i piani a pagamento fatturano in base al consumo di caratteri. Poiché fai una richiesta per ogni lingua, il conteggio dei caratteri per un contenuto viene moltiplicato per il numero di lingue target a cui lo invii in richieste separate.
PolyLingo addebita per token e conta l'input e l'output combinati per tutte le lingue in una singola richiesta. La fatturazione è trasparente e prevedibile: il livello gratuito include 50.000 token al mese, con piani a pagamento a partire da 9$ al mese per 600.000 token.
I due modelli non sono direttamente comparabili su base costo-per-parola perché usano unità diverse, ma l'architettura di PolyLingo con una singola richiesta per tutte le lingue significa che non moltiplichi linearmente il numero di richieste per il numero di lingue target.
Dove si adatta ciascuno
DeepL API è la scelta giusta quando:
-
Il tuo contenuto è prosa semplice senza requisiti strutturali
-
La qualità della traduzione per testo leggibile dall'uomo è la preoccupazione principale
-
Stai traducendo in un piccolo numero di lingue e il volume delle richieste è basso
-
Sei già investito nell'ecosistema DeepL e usi il loro glossario o funzionalità di formalità
-
Hai bisogno di supporto per una lingua al di fuori delle 36 attuali di PolyLingo (DeepL supporta oltre 100 lingue) PolyLingo è la scelta giusta quando:
-
Il tuo contenuto è JSON, Markdown o HTML e la struttura deve essere preservata
-
Devi tradurre in più lingue in una singola chiamata API
-
Stai costruendo un'integrazione CMS o pipeline i18n dove l'efficienza delle richieste conta
-
Vuoi un'interfaccia coerente su tutti i formati di contenuto senza soluzioni specifiche per formato
-
Vuoi una fatturazione basata su token con una quota mensile prevedibile
Riepilogo affiancato
| PolyLingo | DeepL API | |
|---|---|---|
| Supporto JSON nativo | Sì | No |
| Supporto Markdown nativo | Sì | No |
| Supporto HTML | Sì | Sì (flag tag_handling) |
| Tutte le lingue in una richiesta | Sì | No, una lingua per richiesta |
| Rilevamento automatico del formato contenuto | Sì | No |
| Lingue supportate | 36 | 100+ |
| Livello gratuito | 50.000 token/mese | 500.000 caratteri/mese |
| Unità di fatturazione | Token | Carattere |
| Traduttore web senza codice | Sì | Sì (app web) |
DeepL ha un catalogo linguistico più ampio e una storia più lunga per la qualità della traduzione di prosa. PolyLingo è costruito appositamente per flussi di lavoro di contenuti strutturati dove l'integrità del formato è imprescindibile.
Stanno risolvendo problemi adiacenti. La scelta giusta dipende da come è fatto realmente il tuo contenuto.
Prova PolyLingo
Il livello gratuito include 50.000 token al mese. Nessuna carta di credito richiesta. La documentazione completa dell'API è su usepolylingo.com/docs.
curl -sS -X POST "https://api.usepolylingo.com/v1/translate" \
-H "Authorization: Bearer $POLYLINGO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"content": "# Hello\n\nThis is **structured** content.",
"format": "markdown",
"targets": ["fr", "de", "es"]
}'