Najczęściej zadawane pytania
Wszystko, co musisz wiedzieć o i18n-keyless, zanim zaczniesz.
Czy muszę zarządzać plikami tłumaczeń?
Nie. Nie ma plików JSON, kroku ekstrakcji kluczy ani wtyczki czasu kompilacji. Piszesz swoje zdania w swoim języku źródłowym, SDK wysyła je do API przy pierwszym żądaniu, API tłumaczy je za pomocą AI, a każde kolejne żądanie jest obsługiwane z pamięci podręcznej. Twój kod jest jedynym źródłem prawdy.
Co się stanie, gdy zmienię tekst źródłowy?
Tekst źródłowy to klucz. Zmiana go spowoduje powstanie nowego klucza z nowym tłumaczeniem AI. Stary klucz przestanie być żądany, a panel sterowania usunie go po 30 dniach nieużywania. Poprawienie literówki działa tak samo: popraw ją w kodzie, wdróż, a nowy tekst zostanie przetłumaczony przy pierwszym żądaniu.
Ile to kosztuje?
Samodzielnie hostowane: całkowicie darmowe, nieograniczone projekty, bez subskrypcji i bez limitu użycia — zainstaluj obraz Docker, użyj swojego klucza AI. Podoba Ci się? Daj mi napiwek! Hostowane: jedna stała cena za projekt miesięcznie, w zależności od aktywnych użytkowników miesięcznie — 4 € do 1 000, 9 € do 5 000, 29 € do 50 000, 99 € do 500 000 — rozliczane miesięcznie, możesz anulować w dowolnym momencie. W obu przypadkach nie ma cen za miejsce, słowo ani ciąg znaków.
Czy mogę wyeksportować swoje tłumaczenia?
Tak. Panel sterowania ma przycisk „Eksportuj JSON”, który pobiera wszystkie tłumaczenia w Twoim projekcie jako pojedynczy plik JSON. Eksport obejmuje wszystkie wiersze, nie tylko te użyte w ostatnich 30 dniach, więc jest to pełna kopia zapasowa. Nie ma blokady: Twoje dane są zawsze tylko jeden klik dalej.
Jakie frameworki są obsługiwane?
React, React Native, Vue, Svelte, Vanilla JS, Node.js, Ruby on Rails, Python, Go, Swift i Kotlin. Każdy SDK działa w ten sam sposób: opakuj swój tekst w wywołaniu tłumaczenia, a API zwróci tłumaczenie dla aktualnego języka. SDK serwerowe są bezpieczne dla wątków i buforują tłumaczenia w pamięci.
Ile języków jest obsługiwanych?
48 języków, w tym regionalne warianty takie jak zh-Hans / zh-Hant, en / en-GB, fr / fr-CA, pt / pt-BR i es / es-MX. Języki arabski, hebrajski i urdu również znajdują się na liście, więc języki pisane od prawej do lewej również działają. Dodanie nowego języka do projektu to tylko jedno kliknięcie w panelu sterowania.
Czy to działa z renderowaniem po stronie serwera?
Tak. Node.js SDK używa AsyncLocalStorage, dzięki czemu Twoje loadery, funkcje head i komponenty serwerowe mogą tłumaczyć się bez konieczności użycia dostawcy React. Po stronie klienta dostawca React nawadnia na podstawie HTML wyrenderowanego po stronie serwera. W dokumentacji znajdują się przewodniki krok po kroku dla Next.js, Nuxt oraz TanStack Start.
Czy to spowalnia moją aplikację?
Za pierwszym razem, gdy żądany jest nowy ciąg znaków, API wywołuje model AI — około pół sekundy dla krótkiego ciągu interfejsu użytkownika, dłużej dla akapitu. Każde kolejne żądanie jest obsługiwane z bazy danych, co jest zwykłym trafieniem w pamięci podręcznej. SDK również lokalnie cachuje tłumaczenia, więc powracający użytkownicy nie odczuwają żadnego opóźnienia sieci. Jeśli dziesięciu użytkowników jednocześnie zażąda tego samego ciągu, wykonywane jest tylko jedno wywołanie AI.
Co się stanie, jeśli usługa przestanie działać?
Każdy SDK lokalnie cache'uje tłumaczenia — w localStorage na stronie internetowej, w AsyncStorage na urządzeniach mobilnych oraz w pamięci na serwerze. Jeśli API jest niedostępne, SDK dostarcza zapisane w pamięci podręcznej tłumaczenia. Twoi użytkownicy widzą ostatnio znane tłumaczenie, nigdy pusty ciąg znaków. Gdy API ponownie działa, SDK cicho odświeża.
Którego dostawcę AI używa?
Obsługiwanych jest pięciu dostawców: Mistral, OpenAI, Anthropic, Google oraz dowolny punkt końcowy kompatybilny z OpenAI, taki jak Ollama, Groq lub Together. Operator wybiera dostawcę i model z pulpitu nawigacyjnego lub ze środowiska. Domyślnie na i18n-keyless.com jest ustawiony Mistral. Użytkownicy samodzielnie hostujący mogą uruchamiać Ollama lokalnie i nie wysyłać niczego do strony trzeciej.
Czy mogę nadpisać tłumaczenie AI?
Tak. Kliknij dowolną komórkę w panelu sterowania, wpisz poprawny tekst i zapisz. Naprawa jest trwała: API nigdy nie nadpisuje wartości ustawionej ręcznie. Możesz również zastąpić tłumaczenia przez API lub przez serwer MCP, dzięki czemu agent kodujący AI może naprawić tłumaczenie za Ciebie.
Czy mogę migrować z i18next lub innej biblioteki?
Tak. W dokumentacji znajduje się przewodnik migracji krok po kroku dla i18next, react-intl i Lokalise. API posiada punkt końcowy migracji, który importuje istniejące tłumaczenia jedno po drugim, bez żadnego wywołania AI ani opłat. Serwer MCP posiada to samo narzędzie, więc agent AI może przeprowadzić migrację za Ciebie.
Czy jest jakiś darmowy plan?
Wersja samodzielnie hostowana jest całkowicie darmowa z nieograniczoną liczbą projektów — zainstaluj obraz Docker, użyj swojego klucza AI i przechowuj swoje dane na własnym serwerze. Bez limitu czasu, bez ograniczeń funkcjonalności. Plan hostowany zaczyna się od 4 euro miesięcznie za projekt, jeśli wolisz nie uruchamiać serwera.
Czy kod źródłowy jest dostępny?
Serwer, panel sterowania i obraz Docker są opublikowane na GitHubie na licencji Elastic 2.0. Możesz przeczytać każdą linię, uruchomić kod i go zmienić. SDK — React, Vue, Node, Rails i inne — są na licencji MIT. Jedynym ograniczeniem jest to, że nie możesz oferować oprogramowania jako hostowanej usługi stronom trzecim.
Jeden opiekun: co się stanie, jeśli projekt zostanie zatrzymany?
SDK są objęte licencją MIT i pozostają dostępne w npm, PyPI, RubyGems i innych rejestrach. Serwer jest publiczny na licencji Elastic 2.0, a protokół między nimi jest udokumentowany, więc każdy może go uruchomić, zforkować lub napisać przeciwko niemu serwer. Twoje tłumaczenia pozostają w jednej eksportowanej strukturze JSON w dowolnym momencie. Jeśli hostowana usługa przestanie działać: zainstalowane aplikacje nadal będą dostarczać zapisane w pamięci podręcznej tłumaczenia, nowy klient powróci do języka źródłowego, a skierowanie SDK do własnej instancji z API_URL przywróci wszystko. To, co stracisz, to tłumaczenia AI nowych ciągów na i18n-keyless.com — nie Twoje dane ani aplikacja.
Przeczytaj pełną odpowiedź, z kodemCzy kontekst to nie po prostu klucz w przebraniu?
Nie. Każdy ciąg wymaga klucza, który musi być unikalny i istnieje w globalnej przestrzeni nazw, którą utrzymujesz ręcznie. Kontekst jest opcjonalny i dotyczy nielicznych ciągów, których znaczenie jest niejednoznaczne — „Close” może oznaczać zamknięcie okna lub „zamknięcie” ze względu na odległość — i opisuje znaczenie, nie nazywając samego ciągu. Większość ciągów nie posiada kontekstu. Oryginalny tekst pozostaje podstawą wyszukiwania, zarówno z kontekstem, jak i bez niego; dwa identyczne teksty z dwoma kontekstami to po prostu dwa wiersze.
Przeczytaj pełną odpowiedź, z kodemCzy mogę sprawdzić kopię w pull request?
Tak. Ciąg źródłowy znajduje się w kodzie, więc każda zmiana sformułowania to różnica, którą recenzent czyta w pull requestcie w języku naturalnym zamiast nazwy klucza. To, czego nie ma w gicie, to tłumaczenia na inne języki: znajdują się one w bazie danych, podobnie jak w przypadku każdej innej platformy tłumaczeniowej, a Ty przeglądasz je w panelu sterowania, gdzie znacznik „przejrzano” w każdej komórce oddziela to, co sprawdziła osoba, od tego, co napisała AI, lub w eksportowanym pliku JSON.
Przeczytaj pełną odpowiedź, z kodemDlaczego nie Tolgee, które również jest open source?
Tolgee to platforma tłumaczeniowa oparta na kluczach, działająca na licencji Apache 2.0, oferująca edycję w kontekście, kontekst zrzutów ekranu oraz pamięć tłumaczeń. Jeśli potrzebujesz tych funkcji lub tłumaczy w procesie, to dobry wybór. i18n-keyless nie ma kluczy, nie ma plików lokalizacji, tłumaczenie AI jest domyślnie aktywne z ręcznym nadpisaniem, którego AI nigdy nie zmienia, serwer działa na licencji Elastic 2.0 z SDK MIT, a także samodzielnie hostowany obraz działający na SQLite w jednym kontenerze. Aby wprowadzić poprawkę w kontekście, zrób zrzut ekranu i przekaż go agentowi AI podłączonemu do serwera MCP: znajdzie on ciąg znaków i nadpisze tłumaczenie. Strona porównawcza w dokumentacji wyświetla ceny obok siebie.
Przeczytaj pełną odpowiedź, z kodemSamodzielne hostowanie czy subskrypcja: które?
Samodzielnie hostowane: ten sam obraz Docker na twoim własnym serwerze, całkowicie darmowy z nieograniczoną liczbą projektów, z twoim własnym kluczem AI i danymi u siebie. Podoba ci się? Daj mi napiwek! Subskrypcja: my się tym zajmujemy, aktualizacje są automatyczne, stała cena od 4 € miesięcznie za projekt. Wybierz subskrypcję, jeśli wolisz nie uruchamiać serwera.
Przeczytaj pełną odpowiedź, z kodemJak obsługiwać dynamiczne wartości, takie jak nazwy lub liczby?
Użyj opcji zastąpienia. Napisz zdanie z miejscem na wypełnienie — „Witaj {name}, masz {count} elementów” — i przekaż wartości podczas renderowania za pomocą replace: { "{name}": userName, "{count}": String(n) }. SI widzi miejsce na wypełnienie i zachowuje je w każdym tłumaczeniu. SDK zastępuje wartość w czasie wykonywania.
Jak obsługuję liczby mnogie?
Napisz jedną formę z {count}, w której umieszcza się liczbę, i przekaż liczbę jako count. API przechowuje jedną wiadomość liczby mnogiej ICU dla każdego języka z dokładnie takimi formami, jakich język potrzebuje — dwie po francusku, cztery po rosyjsku, sześć po arabsku — sprawdzane za pomocą Intl.PluralRules, a SDK wybiera odpowiednią. Dodaj liczebniki porządkowe dla rang (1st, 2nd). Nigdy nie piszesz samodzielnie gałęzi.
Przeczytaj pełną odpowiedź, z kodemJak radzę sobie z płciami?
Przekaż wartość w select — select={{ gender: "kobieta" }} — a model generuje jedną odmianę dla każdej wartości we wszystkich językach, uwzględniając potrzeby językowe. Wartości są identyfikatorami ze zbioru zamkniętego, maksymalnie 10 na zmienną i 2 zmienne na zdanie; można połączyć select i count. Otwarte wartości, takie jak imię, pozostają jako zastępstwo.
Przeczytaj pełną odpowiedź, z kodemJak formatować daty, liczby i waluty?
SDK nie formatuje ich, robi to twój runtime. Użyj Intl.DateTimeFormat i Intl.NumberFormat z aktualnym językiem z SDK, a następnie umieść wynik w zdaniu za pomocą replace. Jedno zdanie, jeden przekład, odpowiedni format w każdym języku.
Przeczytaj pełną odpowiedź, z kodemCzy mogę dostosować monit tłumaczenia?
Nie, i nie musisz tego robić. Prompt odczytuje twój kontekst dla każdego klucza: tam określane są ton, odbiorcy i znaczenie, i to sprawia, że to samo słowo tłumaczy się inaczej w dwóch miejscach. Każde tłumaczenie można ręcznie nadpisać w panelu sterowania; API nigdy nie nadpisuje tego, co napisałeś.
Przeczytaj pełną odpowiedź, z kodemCzy posiada serwer MCP dla agentów kodujących AI?
Tak. API jest również serwerem MCP z uwierzytelnianiem OAuth 2.1. Agent AI może wyświetlać tłumaczenia, tłumaczyć ciągi znaków, nadpisywać wartości, importować istniejące tłumaczenia i zarządzać członkami projektu — te same operacje, które człowiek wykonuje w panelu sterowania. Połącz się z nim przez Claude Code, Cursor, Windsurf lub dowolnego klienta zgodnego z MCP.
Czy mogę użyć go do ciągów backendowych i e-maili?
Tak. SDK Node.js, Ruby on Rails, Python i Go działają na serwerze. Przetłumacz temat wiadomości e-mail, komunikat błędu lub powiadomienie push w taki sam sposób, jak tłumaczysz ciąg interfejsu użytkownika. SDK serwerowe buforują tłumaczenia w pamięci i odświeżają je w tle, więc nie dodają opóźnienia do Twojego żądania.
Czy cały mój zespół może pracować nad tłumaczeniami?
Tak. Dodaj członków zespołu do projektu z pulpitu nawigacyjnego lub przez API. Każdy członek może przeglądać wszystkie tłumaczenia, nadpisywać dowolne wartości i dodawać języki. Administratorzy tworzą projekty i zarządzają członkami. Nie ma cennika za miejsce: dodaj tyle osób, ile potrzebujesz.
Jak mogę poprawić literówkę?
Tekst źródłowy jest kluczem. Poprawiając literówkę w tekście źródłowym, otrzymasz nowy klucz z nowym tłumaczeniem; stary ciąg znaków po prostu przestaje być żądany, a panel sterowania automatycznie go usuwa po 30 dniach nieużywania. Literówka w tłumaczeniu: edytuj komórkę w panelu sterowania, a poprawka będzie trwała.
Przeczytaj pełną odpowiedź, z kodem