Polyglot
Strengene i appen og nettstedet ditt på 43 språk, oversatt av din egen modell og kontrollert streng for streng.
- Linux or macOS
- Python 3.9+
- Local LLM
- 6 file formats

Hva den gjør
Polyglot tar de engelske strengene appen og nettstedet ditt allerede har, og skriver dem på opptil 42 flere språk, i de filene og mappene hver plattform forventer, ved hjelp av en modell du kjører selv. Hver streng kommer tilbake kontrollert: Hvis en plassholder, en tagg eller et navn du beholder, går tapt, eller svaret ikke er i språkets skriftsystem, blir strengen bedt om på nytt, og en streng som fortsatt feiler, utelates og rapporteres i stedet for å sendes ut ødelagt.
- Formatene du bruker. JSON-meldingsfiler (i18next, vue-i18n, next-intl, react-intl), Flutter ARB, Android strings.xml, Apple .strings, gettext .po og Markdown-dokumenter, skrevet til values-de, de.lproj, app_de.arb eller locale/de.
- Kontrollert streng for streng. %1$s, {name}, {{count}}, HTML-tagger, linjeskift, URL-er og navnene dine som skal beholdes, må komme tilbake nøyaktig; riktig skriftsystem, ingen tomme eller løpske svar, ingenting igjen på engelsk.
- Reelle flertallsformer. Russisk får one, few, many og other, arabisk seks former, japansk én form: Android-flertall og ICU-meldinger følger hvert språks egne regler.
- Bare det som endret seg. Hver god oversettelse huskes, så redigering av én engelsk streng sender én streng, ikke hele filen.
- Din tone og dine termer. En produktbeskrivelse, en tone, navn som aldri skal oversettes og en ordliste legges ved hver forespørsel, og kommentarene dine følger med som notater.
- Din modell, din maskin. Alle OpenAI-kompatible servere: vLLM, llama.cpp, Ollama eller LM Studio, eller en vertstjeneste-API hvis du ønsker det. Ingen fakturering per ord.
Testet på en ekte modell
- En ekte modell, seks formater, fem skriftsystemer: en eksempelapp på 70 strenger i JSON, Flutter ARB, Android, Apple .strings, gettext og Markdown, til tysk, russisk, japansk, arabisk og spansk, med en åpen modell på 27 milliarder parametere på vår egen maskin: 346 av 350 strenger bestod kontrollene på vei inn, på 7,5 minutter på en travel delt server.
- De fire som ikke gjorde det var feil i kontrollene våre, ikke modellens: et tysk lånord, en e-postadresse og en japansk flertallsmelding. Vi fikset kontrollene; neste kjøring sendte bare de fire strengene og skrev alle 350 på 45 sekunder.
- Flertallsformer riktig første gang: one, few, many og other for russisk, seks former for arabisk, én for japansk.
- Alle 42 språk: de 22 nettstrengene i eksempelet til alle språk Polyglot kan, fra amharisk til tradisjonell kinesisk: 924 av 924 strenger skrevet, på 15 minutter.
- Og det sjekkene ikke ser: på khmer kom "You are offline" tilbake som "you are online". Det er feilfri khmer, så den besto. Derfor ber dokumentasjonen om en morsmålsbruker for de strengene som betyr mest.
Hva som er inkludert
Oversetteren
Batcher til modellen din, sjekker, forsøker på nytt med problemet navngitt, en oversettelsesminne, språk parallelt.
Seks formater
Lesere og skrivere som beholder hver plattforms escape-tegn, mapper og flertallsregler.
Sjekkene
Kan brukes alene: sjekk en oversettelse du allerede har mot den engelske kilden.
Et eksempelapp
En liten app i alle seks formater med konfigurasjonen sin, for å prøve før din egen.
Krav
- Linux eller macOS med Python 3.9 eller nyere; ingenting å installere fra pip.
- En OpenAI-kompatibel modellserver med en flerspråklig instruksjonsmodell; vår er en åpen modell med 27 milliarder parametere.
Bra å vite
- Sjekkene fanger opp det som knekker en app, ikke feil mening: la en morsmålsbruker lese produktbeskrivelsen, betalingsveggen og juridisk tekst.
- gettext-flertallsinnlegg forblir på engelsk i denne versjonen.
- Farten er din modells.
- Sjekkene er gratis og åpen kildekode: translation-checks på GitHub. Kitet legger til oversetteren, de seks formatene, flertallsformer, minnet og ett år med oppdateringer.
From our field notes
Spørsmål
Hvilke språk?
Arabisk, amharisk, bulgarsk, tsjekkisk, tysk, gresk, spansk, persisk, finsk, filippinsk, fransk, skotsk-gælisk, hebraisk, haitisk kreolsk, ungarsk, armensk, indonesisk, italiensk, japansk, khmer, kannada, koreansk, makedonsk, malayisk, nederlandsk, norsk, oromo, punjabi, polsk, portugisisk (Brasil), rumensk, russisk, slovakisk, slovensk, serbisk, svensk, thai, tyrkisk, ukrainsk, vietnamesisk og kinesisk, forenklet og tradisjonell, fra engelsk.
Trenger den GPU?
Polyglot selv gjør det ikke; modellserveren din bestemmer. En liten modell kjører på en CPU, sakte; en GPU gjør en stor fil på mange språk til et spørsmål om minutter.
Hva skjer med en streng som modellen gjør feil på?
Den blir bedt om på nytt alene, med problemet navngitt. Hvis den fortsatt feiler, utelates den fra filen, slik at appen din viser den engelske teksten for den ene strengen, og kjøringen lister den opp med årsaken. Inget ødelagt blir skrevet.
Kan jeg bruke et vertstjeneste-API i stedet?
Ja: enhver tjeneste med et OpenAI-kompatibelt chat-endepunkt. Sett inn base-URL-en og modellnavnet i polyglot.json og nøkkelen i en fil.
Oppdatert: