Polyglot
Le stringhe della tua app e del tuo sito in 43 lingue, tradotte dal tuo modello e verificate stringa per stringa.
- Linux or macOS
- Python 3.9+
- Local LLM
- 6 file formats

Cosa fa
Polyglot prende le stringhe in inglese che la tua app e il tuo sito hanno già e le riscrive in fino a 42 altre lingue, nei file e nelle cartelle che ogni piattaforma si aspetta, usando un modello che esegui tu stesso. Ogni stringa torna controllata: se un segnaposto, un tag o un nome che conservi va perso, o se la risposta non è nello script della lingua, la stringa viene richiesta di nuovo, e una stringa che fallisce ancora viene esclusa e segnalata invece di essere pubblicata in modo errato.
- I formati che usi. File di messaggi JSON (i18next, vue-i18n, next-intl, react-intl), ARB di Flutter, strings.xml di Android, .strings di Apple, .po di gettext e documenti Markdown, scritti in values-de, de.lproj, app_de.arb o locale/de.
- Controllata stringa per stringa. %1$s, {name}, {{count}}, tag HTML, interruzioni di riga, URL e i tuoi nomi conservati devono tornare esattamente; lo script corretto, nessuna risposta vuota o fuori controllo, nulla lasciato in inglese.
- Forme plurali reali. Il russo ha uno, pochi, molti e altro, l'arabo sei forme, il giapponese una sola forma: i plurali Android e i messaggi ICU seguono le regole proprie di ogni lingua.
- Solo ciò che è cambiato. Ogni buona traduzione viene ricordata, quindi modificare una stringa inglese invia una stringa, non l'intero file.
- Il tuo tono e i tuoi termini. Una descrizione del prodotto, un tono, nomi da non tradurre mai e un glossario vanno in ogni richiesta, e i tuoi commenti viaggiano insieme come note.
- Il tuo modello, la tua macchina. Qualsiasi server OpenAI-compatible: vLLM, llama.cpp, Ollama o LM Studio, o un'API ospitata se preferisci. Nessun costo per parola.
Testato su un modello reale
- Un modello reale, sei formati, cinque script: un'app di esempio con 70 stringhe in JSON, ARB di Flutter, Android, .strings di Apple, gettext e Markdown, in tedesco, russo, giapponese, arabo e spagnolo, con un modello open da 27 miliardi di parametri sulla nostra macchina: 346 su 350 stringhe hanno superato i controlli in entrata, in 7,5 minuti su un server condiviso occupato.
- Le quattro che non hanno superato erano errori nei nostri controlli, non del modello: un prestito dal tedesco, un indirizzo e-mail e un messaggio plurale in giapponese. Abbiamo corretto i controlli; l'esecuzione successiva ha inviato solo quelle quattro stringhe e ne ha scritte tutte e 350 in 45 secondi.
- Forme plurali corrette al primo colpo: uno, pochi, molti e altro per il russo, sei forme per l'arabo, una sola per il giapponese.
- Tutte le 42 lingue: le 22 stringhe web dell'esempio in tutte le lingue che Polyglot conosce, dall'amarico al cinese tradizionale: 924 su 924 stringhe scritte, in 15 minuti.
- E ciò che i controlli non vedono: in khmer, "You are offline" è tornato come "you are online". È un khmer perfetto, quindi ha superato il controllo. Ecco perché la documentazione chiede un madrelingua per le stringhe più importanti.
Cosa c'è dentro
Il traduttore
Batch al tuo modello, controlli, tentativi con il problema specificato, una memoria di traduzione, lingue in parallelo.
Sei formati
Lettori e scrittori che mantengono le sequenze di escape, le cartelle e le regole del plurale di ogni piattaforma.
I controlli
Utilizzabili singolarmente: controlla una traduzione che hai già rispetto alla sua fonte inglese.
Un'app di esempio
Una piccola app in tutti e sei i formati con la sua configurazione, da provare prima della tua.
Requisiti
- Linux o macOS con Python 3.9 o successivo; nulla da installare da pip.
- Un server di modelli OpenAI-compatible con un modello di istruzioni multilingue; il nostro è un modello aperto da 27 miliardi di parametri.
Da sapere
- I controlli rilevano ciò che rompe un'app, non il significato errato: fai leggere la tua scheda prodotto, il paywall e il testo legale a un madrelingua.
- Le voci del plurale gettext restano in inglese in questa versione.
- La velocità dipende dal tuo modello.
- I controlli sono gratuiti e open source: translation-checks su GitHub. Il kit aggiunge il traduttore, i sei formati, le forme del plurale, la memoria e un anno di aggiornamenti.
From our field notes
Domande
Quali lingue?
Arabo, amarico, bulgaro, ceco, tedesco, greco, spagnolo, persiano, finlandese, filippino, francese, gaelico scozzese, ebraico, creolo haitiano, ungherese, armeno, indonesiano, italiano, giapponese, khmer, kannada, coreano, macedone, malese, olandese, norvegese, oromo, punjabi, polacco, portoghese (Brasile), rumeno, russo, slovacco, sloveno, serbo, svedese, thai, turco, ucraino, vietnamita e cinese, semplificato e tradizionale, dall'inglese.
Serve una GPU?
Polyglot di per sé no; lo decide il tuo server di modelli. Un modello piccolo gira su una CPU, lentamente; una GPU rende una questione di minuti un file grande in molte lingue.
Cosa succede a una stringa che il modello sbaglia?
Viene richiesta di nuovo singolarmente, con l'indicazione del problema. Se fallisce ancora, viene esclusa dal file, così la tua app mostrerà l'inglese per quella stringa e l'esecuzione la elencherà con il motivo. Non viene scritto nulla di rotto.
Posso usare un'API hosted invece?
Sì: qualsiasi servizio con un endpoint chat OpenAI-compatible. Inserisci il suo URL base e il nome del modello in polyglot.json e la sua chiave in un file.
Aggiornato: