Polyglot
Dina app- och webbplatssträngar på 43 språk, översatta av din egen modell och kontrollerade sträng för sträng.
- Linux or macOS
- Python 3.9+
- Local LLM
- 6 file formats

Vad det gör
Polyglot tar de engelska strängarna som din app och din webbplats redan har och skriver dem på upp till 42 fler språk, i de filer och mappar som varje plattform förväntar sig, med hjälp av en modell som du kör själv. Varje sträng kommer tillbaka kontrollerad: om en platshållare, en tagg eller ett namn du behåller tappas bort, eller om svaret inte är i språkets skrift, ombeds strängen på nytt, och en sträng som fortfarande misslyckas lämnas ut och rapporteras istället för att skickas ut trasig.
- Formaten du använder. JSON-meddelandefiler (i18next, vue-i18n, next-intl, react-intl), Flutter ARB, Android strings.xml, Apple .strings, gettext .po och Markdown-dokument, skrivna till values-de, de.lproj, app_de.arb eller locale/de.
- Kontrollerad sträng för sträng. %1$s, {name}, {{count}}, HTML-taggar, radbrytningar, URL:er och dina behållna namn måste komma tillbaka exakt; rätt skrift, inga tomma eller löpande svar, ingenting kvar på engelska.
- Riktiga pluralformer. Ryska får one, few, many och other, arabiska sex former, japanska en enda form: Android-pluraler och ICU-meddelanden följer varje språks egna regler.
- Bara det som ändrats. Varje bra översättning kommer ihåg, så att redigering av en engelsk sträng skickar en sträng, inte hela filen.
- Din ton och dina termer. En produktbeskrivning, en ton, namn som aldrig ska översättas och en ordlista skickas med i varje förfrågan, och dina kommentarer följer med som anteckningar.
- Din modell, din maskin. Valfri OpenAI-kompatibel server: vLLM, llama.cpp, Ollama eller LM Studio, eller en värd-API om du väljer det. Ingen räkning per ord.
Testad på en riktig modell
- En riktig modell, sex format, fem skriftspråk: en exempelapp med 70 strängar i JSON, Flutter ARB, Android, Apple .strings, gettext och Markdown, till tyska, ryska, japanska, arabiska och spanska, med en öppen modell på 27 miljarder parametrar på vår egen maskin: 346 av 350 strängar klarade sina kontroller på vägen in, på 7,5 minuter på en upptagen delad server.
- De fyra som inte gjorde det var fel i våra kontroller, inte modellens: ett tyskt lånord, en e-postadress och ett japanskt pluralmeddelande. Vi rättade till kontrollerna; nästa körning skickade bara de fyra strängarna och skrev alla 350 på 45 sekunder.
- Pluralformer korrekta direkt: one, few, many och other för ryska, sex former för arabiska, en enda för japanska.
- Alla 42 språken: de 22 websträngarna i exemplet till alla språk Polyglot kan, från amhariska till traditionell kinesiska: 924 av 924 strängar skrivna, på 15 minuter.
- Och det kontrollerna inte ser: på khmer kom "You are offline" tillbaka som "you are online". Det är felfri khmer, så det godkändes. Därför ber dokumentationen om en modersmålstalare för de strängar som betyder mest.
Vad ingår
Översättaren
Batchar till din modell, kontrollerar, försöker igen med problemet namngivet, en översättningsminne, språk parallellt.
Six format
Läsare och skrivare som behåller varje plattforms escape-sekvenser, mappar och pluralregler.
Kontrollerna
Användbara på egen hand: kontrollera en översättning du redan har mot dess engelska källa.
En exempelapp
En liten app i alla sex format med sin konfiguration, att prova innan din egen.
Krav
- Linux eller macOS med Python 3.9 eller nyare; inget att installera från pip.
- En OpenAI-kompatibel modellserver med en flerspråkig instruktionsmodell; vår är en öppen modell med 27 miljarder parametrar.
Bra att veta
- Kontrollerna fångar det som bryter en app, inte felaktig mening: låt en modersmålstalare läsa din produktbeskrivning, betalvägg och juridiska text.
- gettext-pluralposter förblir på engelska i denna version.
- Hastigheten är din modells.
- Kontrollerna är fria och open source: translation-checks på GitHub. Verktygspaketet lägger till översättaren, de sex formaten, pluralformer, minnet och ett års uppdateringar.
From our field notes
Frågor
Vilka språk?
Arabiska, amhariska, bulgariska, tjeckiska, tyska, grekiska, spanska, persiska, finska, filippinska, franska, skotsk gaeliska, hebreiska, haitisk kreol, ungerska, armeniska, indonesiska, italienska, japanska, khmer, kannada, koreanska, makedonska, malajiska, nederländska, norska, oromo, punjabi, polska, portugisiska (Brasilien), rumänska, ryska, slovakiska, slovenska, serbiska, svenska, thailändska, turkiska, ukrainska, vietnamesiska och kinesiska, förenklad och traditionell, från engelska.
Krävs ett GPU?
Polyglot självt kräver inte det; din modellserver avgör. En liten modell kör på en CPU, långsamt; ett GPU gör en stor fil på många språk till en fråga om minuter.
Vad händer med en sträng som modellen gör fel?
Den begärs på nytt separat, med problemet namngivet. Om den fortfarande misslyckas utelämnas den från filen, så att din app visar engelskan för just den strängen, och körningen listar den med orsaken. Inget trasigt skrivs.
Kan jag använda en hostad API istället?
Ja: vilken tjänst som helst med en OpenAI-kompatibel chat-endpoint. Ange dess bas-URL och modellnamn i polyglot.json och dess nyckel i en fil.
Uppdaterad: