Polyglot
Napisy w Twojej aplikacji i witrynie w 43 językach, przetłumaczone przez Twój własny model i sprawdzone napis po napisie.
- Linux or macOS
- Python 3.9+
- Local LLM
- 6 file formats

Co robi
Polyglot pobiera angielskie ciągi znaków, które już masz w aplikacji i witrynie, i tłumaczy je na maksymalnie 42 dodatkowe języki, zapisując je w plikach i folderach oczekiwanych przez daną platformę, przy użyciu modelu, który uruchamiasz samodzielnie. Każdy ciąg jest weryfikowany: jeśli zaginie placeholder, tag lub nazwa, którą zachowujesz, albo odpowiedź nie będzie w alfabecie danego języka, ciąg jest ponownie tłumaczony, a ten, który nadal nie przejdzie weryfikacji, jest pomijany i raportowany zamiast być wysyłany w uszkodzonej formie.
- Formaty, których używasz. Pliki komunikatów JSON (i18next, vue-i18n, next-intl, react-intl), ARB dla Fluttera, strings.xml dla Androida, pliki .strings dla Apple, gettext .po oraz dokumenty Markdown, zapisywane do values-de, de.lproj, app_de.arb lub locale/de.
- Weryfikacja ciąg po ciągu. %1$s, {name}, {{count}}, tagi HTML, znaki nowej linii, adresy URL i Twoje zachowane nazwy muszą wrócić dokładnie takie same; właściwy alfabet, brak pustych lub nadmiernie długich odpowiedzi, nic nie może pozostać w języku angielskim.
- Prawdziwe formy liczby mnogiej. Rosyjski ma formy one, few, many i other, arabski sześć form, japoński jedną formę: liczby mnogie w Androidzie i komunikaty ICU stosują się do reguł każdego języka.
- Tylko to, co się zmieniło. Każde dobre tłumaczenie jest zapamiętywane, więc edycja jednego angielskiego ciągu wysyła jeden ciąg, a nie cały plik.
- Twój ton i Twoje terminy. Opis produktu, ton, nazwy nigdy nieprzetłumaczalne i słownik trafiają do każdego żądania, a Twoje komentarze podróżują razem z nimi jako notatki.
- Twój model, Twoja maszyna. Dowolny serwer OpenAI-compatible: vLLM, llama.cpp, Ollama lub LM Studio, albo hostowane API, jeśli wybierzesz. Brak rachunku za każde słowo.
Przetestowane na prawdziwym modelu
- Prawdziwy model, sześć formatów, pięć alfabetów: przykładowa aplikacja z 70 ciągami w JSON, ARB dla Fluttera, Android, Apple .strings, gettext i Markdown, przetłumaczona na niemiecki, rosyjski, japoński, arabski i hiszpański, przy użyciu otwartego modelu z 27 miliardami parametrów na naszej własnej maszynie: 346 z 350 ciągów przeszło weryfikację przy wejściu, w 7,5 minuty na obciążonym współdzielonym serwerze.
- Cztery, które nie przeszły, były błędami w naszych weryfikacjach, a nie modelu: niemiecki wyraz zapożyczony, adres e-mail i komunikat z liczbą mnogą w języku japońskim. Poprawiliśmy weryfikacje; następne uruchomienie wysłało tylko te cztery ciągi i zapisało wszystkie 350 w 45 sekund.
- Formy liczby mnogiej poprawne za pierwszym razem: one, few, many i other dla rosyjskiego, sześć form dla arabskiego, jedna forma dla japońskiego.
- Wszystkie 42 języki: 22 ciągi tekstowe z przykładu przetłumaczone na każdy język, który zna Polyglot, od amharskiego po chiński tradycyjny: 924 z 924 ciągów zapisanych w 15 minut.
- I to, czego nie widzą sprawdzenia: w khmerskim „You are offline” wróciło jako „you are online”. To bezbłędny khmerski, więc przeszedł. Dlatego dokumentacja wymaga rodzimego użytkownika języka dla najważniejszych ciągów.
Co zawiera zestaw
Tłumacz
Partie do Twojego modelu, sprawdzenia, ponowne próby z nazwanym problemem, pamięć tłumaczeniowa, języki równolegle.
Sześć formatów
Czytniki i zapisywacze, które zachowują sekwencje ucieczki, foldery i reguły liczby mnogiej każdej platformy.
Sprawdzenia
Użyteczne samodzielnie: sprawdź tłumaczenie, które już masz, względem jego angielskiego źródła.
Przykładowa aplikacja
Jedna mała aplikacja we wszystkich sześciu formatach z jej konfiguracją, do wypróbowania przed własną.
Wymagania
- Linux lub macOS z Pythonem 3.9 lub nowszym; nic do instalacji z pip.
- Serwer modelu zgodny z OpenAI-compatible z wielojęzycznym modelem instrukcji; nasz to otwarty model z 27 miliardami parametrów.
Warto wiedzieć
- Sprawdzenia wyłapują to, co psuje aplikację, a nie błędne znaczenie: niech rodzimy użytkownik języka przeczyta Twój opis produktu, tekst płatności i teksty prawne.
- Wpisy liczby mnogiej gettext pozostają w tej wersji po angielsku.
- Prędkość zależy od Twojego modelu.
- Sprawdzenia są darmowe i open source: translation-checks na GitHubie. Zestaw dodaje tłumacza, sześć formatów, formy liczby mnogiej, pamięć i rok aktualizacji.
From our field notes
Pytania
Które języki?
Arabski, amharski, bułgarski, czeski, niemiecki, grecki, hiszpański, perski, fiński, filipiński, francuski, szkocki gaelicki, hebrajski, haitański kreolski, węgierski, ormiański, indonezyjski, włoski, japoński, khmerski, kannada, koreański, macedoński, malajski, niderlandzki, norweski, oromo, pendżabski, polski, portugalski (Brazylia), rumuński, rosyjski, słowacki, słoweński, serbski, szwedzki, tajski, turecki, ukraiński, wietnamski oraz chiński uproszczony i tradycyjny, z angielskiego.
Czy wymaga GPU?
Sam Polyglot nie; decyduje Twój serwer modelu. Mały model działa na CPU, wolno; GPU sprawia, że duży plik w wielu językach to kwestia minut.
Co się dzieje z tekstem, który model przetłumaczy źle?
Jest on ponownie przetwarzany w osobnym żądaniu, z podaniem nazwy problemu. Jeśli nadal występuje błąd, tekst ten nie trafia do pliku, więc Twoja aplikacja wyświetli angielską wersję tego jednego tekstu, a w raporcie z uruchomienia zostanie on wymieniony wraz z przyczyną. Nic uszkodzonego nie zostaje zapisane.
Czy mogę użyć hostowanego API?
Tak: dowolnej usługi z punktem końcowym czatu zgodnym z OpenAI-compatible. Wpisz jego adres URL i nazwę modelu w pliku polyglot.json, a klucz w osobnym pliku.
Zaktualizowano: