Samodzielnie hostowany

Bezbólowa internacjonalizacja (i18n), rozszerzona na twoje własne horyzonty bez wydawania tysięcy dolarów.

Całkowicie darmowe. Nieograniczone projekty, wszystkie 48 języki, brak wygaśnięcia, nie jest wymagany klucz licencji.

Darmowe na zawsze
€0na zawsze

Nieograniczone projekty. Wszystkie 48 języki. Bez wygaśnięcia.

  • Wszystkie 48 języków, nieograniczone tłumaczenia
  • Pulpit nawigacyjny, serwer MCP, każdy SDK
  • Nic do kupienia, nic do wprowadzenia poza twoim kluczem AI
Zainstaluj to za darmo
Daj mi napiwek
Podoba ci się to?

i18n jest teraz bezbolesne, możesz to wypróbować. Nie mam nic przeciwko otrzymaniu napiwku za to.

  • Kiedy to czujesz
  • Jeśli masz na to ochotę
  • Od 1 do 1 miliona dolarów, nie więcej

Bezpieczna płatność przez Stripe. Klucz licencji trafia do twojego skrzynki odbiorczej — wycisza monit o darowiznę w panelu sterowania.

To, co otrzymujesz

  • Nieograniczone projekty, wszystkie 48 języki, brak wygaśnięcia
  • Nieograniczone tłumaczenia, brak limitu użycia
  • Pulpit nawigacyjny, serwer MCP dla Twoich agentów, każdy SDK
  • Jeden kontener, jeden plik SQLite do wykonania kopii zapasowej
  • Licencja sprawdzona offline: twój serwer nigdy nie dzwoni do domu
  • Każda aktualizacja, na całe życie: docker compose pull

To, co przynosisz

  • Maszyna z Dockerem: VPS za 4 € to w zupełności wystarczy
  • Klucz API AI (Mistral, OpenAI, Anthropic, Google lub dowolny dostawca kompatybilny z OpenAI). Tłumaczenia są wykonywane na Twoim koncie, za kilka centów za aplikację
  • Pięć minut

Obsługa odbywa się poprzez e-mail, z najlepszym wysiłkiem. Potrzebujesz kogoś do odbierania połączeń? Hostowane plany są dla Ciebie.

Jak to działa

Zainstaluj, utwórz administratora, wklej swój klucz AI. Każdy projekt jest darmowy, na zawsze.

Z ONCE — świeży serwer, domena, pięć minut

curl -fsSL https://get.once.com | sh
once   # add an app: ghcr.io/ambroselli-io/i18n-keyless:latest, pick a host name
# then open it: create the admin, paste your AI key on Settings
# fully free, unlimited projects — donate if you want
# ONCE does the domain, the TLS, the updates and the backups

Z Docker Compose — każda maszyna, na której działa Docker

mkdir i18n-keyless && cd i18n-keyless
curl -fsSL https://i18n-keyless.com/self-hosted/docker-compose.yml -o docker-compose.yml
docker compose up -d
# → http://localhost:1800: create the admin, paste your AI key on Settings
# fully free, unlimited projects — donate if you want

Następnie skieruj swój SDK na swój serwer:

I18nKeyless.init({
  API_KEY: "your-project-key",
  API_URL: "https://i18n.example.com",
  // …
});

Pełny przewodnik: https://docs.i18n-keyless.com/docs/guides/self-hosting

Dlaczego darowizna?

Ponieważ sam zarządzasz VPS-em i kluczem API AI. Nie ma powodu, bym pobierał od Ciebie opłatę za subskrypcję. Ja też nienawidzę subskrypcji. Więc zamiast tego: Ty decydujesz, jaką wartość ma dla Ciebie to oprogramowanie, a ja dalej je rozwijam.

Obraz jest instalowany bezpłatnie i uruchamia nieograniczone projekty, we wszystkich językach i bez wygaśnięcia.

Pytania przed zakupem? Napisz do nas

Ustaw i18n, utrzymuj czysty kod i wysyłaj szybko

Istnieje kilka PITA z obecnymi rozwiązaniami i18n. Bóle są tak duże, że opóźniasz i18n tak długo, jak to możliwe.

Poznacza czas, który powinieneś spędzić na plaży

Ustaw system kluczy: co najmniej 1 godzina czasu seniora

Tam i z powrotem dla każdego nowego klucza: 1 minuta na klucz, x500 kluczy, x2 języki = 17 godzin

Dzięki i18n-keyless nie musisz martwić się systemem i18n. Możesz pójść na plażę i zamówić mojito.

Dziś większość systemów używa kluczy do tłumaczenia tekstu

To bolące generować. To bolące utrzymywać.

Kiedy widzisz tekst w aplikacji i chcesz go zaktualizować, musisz znaleźć odpowiedni klucz.

Z i18n-keyless nie musisz martwić się systemem i18n. Użyj swojego mózgu do czegoś bardziej interesującego.

Zostaw tłumaczenia na AI

Z systemem klucza musisz zarządzać tłumaczeniami w aplikacji.

W przeciwnym razie użytkownicy zobaczą someheader.welcome.title w swojej aplikacji.

Z i18n-keyless w najgorszym scenariuszu offline zobaczysz nieprzetłumaczone rzeczywiste słowa. W normalnym tempie w ogóle nie obchodzi Cię system i18n. Po prostu pisz dobre nagłówki, skup się na marketingu i zdobądź sprzedaż.

Bazy kodu są piękne... aż do zakażenia kluczami i18n

Z systemem kluczy, gdy czytasz kod i treść, musisz czytać klucze, a nie język naturalny.

Czasami musisz wprowadzić poprawkę, ponieważ zdanie nie jest gramatycznie poprawne. Ale nie wiesz tego, ponieważ czytasz klucze.

Dzięki i18n-keyless nie musisz się martwić o system i18n. Kod pozostaje piękny.

Dodaj i18n od pierwszego dnia bez żadnego wpływu na tempo rozwoju
Zbudowane dla agentów kodujących

Serwer MCP, aby pokryć wszystkie Twoje potrzeby dotyczące internacjonalizacji

Sześć innych powodów, dla których system jest tak zoptymalizowany pod kątem kodowania agentowego.

Brak nazwy do wymyślenia

Klucz to decyzja o nazwie bez jednoznacznej odpowiedzi. Dwa agenty zapisują login.submit i auth.button.send dla tego samego przycisku. Bez kluczy nie ma decyzji do podjęcia.

Jeden plik do edycji, nie dwadzieścia

Zmiana oparta na kluczu dotyka komponentu i każdego pliku JSON lokalizacji, a agenci zapominają pliki. Tutaj zmiana kopii to edycja pojedynczego pliku.

Brak konfliktów scalania w flotach agentów

Pięciu agentów na pięciu gałęziach edytuje wszystkie en.json: gwarantowany konflikt. Nie ma wspólnego pliku, więc worktreesy i agenci w tle nigdy się nie zderzają.

Tani w tokenach

Aby ponownie użyć klucza, agent musi ładować pliki lokalizacji do kontekstu przy każdej edycji. Ładowanie bez klucza nic nie robi: tekst znajduje się bezpośrednio w komponencie.

Czytelne różnice

Żądanie scalenia pokazuje prawdziwe zdania. Człowiek lub agent recenzji może ocenić kopię bez zagłębiania się w to, co oznacza klucz.

Jedna reguła w twoim CLAUDE.md

Każda reguła i18n, którą napiszesz, to reguła, którą agent może złamać. Ta reguła wymaga tylko jednej linii — a tekst zapasowy to rzeczywisty tekst, więc błąd nie wyświetli a.b.c na ekranie.

Jedyna zasada i18n, której potrzebuje Twój agent

# CLAUDE.md
Write the UI copy in English and wrap it in <T>…</T> from i18n-keyless-react.
That is the whole i18n setup.

Twój agent może nim sterować, nie tylko pisać

Za pośrednictwem serwera MCP agent wyświetla brakujące tłumaczenia, czyta jedno, zastępuje złe lub importuje kopię, którą już posiadasz — z własnym logowaniem OAuth, bez potrzeby wklejania klucza.

Przeczytaj przewodnik MCP
Idealny dla MVP

Globalne wprowadzenie od dnia pierwszego

Przestań opóźniać i18n z powodu złożoności. Zaimplementuj w 5 minut, a nie w dniach. Utrzymaj swoją prędkość rozwoju, jakby i18n nie było zaimplementowane.

  • 5-minutowa implementacja. Nie żartuję.

    Jeden prosty obiekt konfiguracyjny i gotowe.

  • Utrzymać tempo rozwoju

    Koduj tak, jakby i18n w ogóle nie było zaimplementowane.

  • Wysyłka na globalne rynki

    Nie wymagana jest refaktoryzacja przy skalowaniu do nowych języków.

  • Gotowy na SSR & SEO

    Działa z Next.js, Remix, TanStack Start i Astro. Renderowanie po stronie serwera w dowolnym języku dla wyszukiwarek — ta sama konfiguracja w 5 minut.

Tradycyjny i18n

Konfiguracja systemu kluczy (1 godzina)
Utwórz pliki tłumaczeń (2 godziny)
Przerabiać komponenty (4 godziny)
Testuj wszystkie języki (2 godziny)
Naprawić problemy z układem (3 godziny)
12+ godzin pracy

i18n-keyless

Dodaj pakiet (1 min)
Konfiguruj z kluczem API (2 min)
Owijanie komponentów tekstowych (2 min)
5 minut pracy
Jak to działa

To bardzo proste w konfiguracji

Najprostszy obiekt konfiguracyjny i jesteś gotowy, aby pójść globalnie.
A nawet więcej, twój agent to dla ciebie skonfiguruje.

1. Podstawowa konfiguracja

import * as I18nKeyless from "i18n-keyless-react";

I18nKeyless.init({
  API_KEY: "YOUR_API_KEY",
  storage: window.localStorage,
  languages: {
    primary: "en",
    supported: ["en", "fr"],
  },
});

2. Użycie komponentu (Tutaj React; to samo w Vue, Angular, Flutter, Swift i Kotlin)

import { I18nKeylessText } from "i18n-keyless-react";
// import { T } from "i18n-keyless-react"; // also works

// Just write in your primary language
<I18nKeylessText>
  Welcome to our website
</I18nKeylessText>

3. Użycie po stronie serwera (tutaj Node.js; ten sam wywołanie w Laravel, Rails, Python i Go)

import { awaitForTranslationOrFallbackToOriginal, type Lang } from 'i18n-keyless-node';

const title = await awaitForTranslationOrFallbackToOriginal('Come see my app!', user.lang as Lang);
const body = await awaitForTranslationOrFallbackToOriginal('So many new stuff!', user.lang as Lang);

await sendExpoPushNotification({ user, title, body });

4. Dla tekstu poza komponentami

import { getTranslation } from "i18n-keyless-react";

export default function Navigation() {
  return (
    <HomeTabs.Navigator>
      <HomeTabs.Screen
        options={{ tabBarLabel: getTranslation("Welcome") }}
        name="WELCOME"
      />
    </HomeTabs.Navigator>
  );
}

5. Wybierz swój SDK: jedna linia instalacji, ten sam interfejs API wszędzie

  • React, React Native, Expo, Next.js, Remix, TanStack Start, Astronpm install i18n-keyless-react
  • Vue, Nuxtnpm install i18n-keyless-vue
  • Angularnpm install i18n-keyless-angular
  • Plain HTML, Svelte, Alpine, htmx, one script tagnpm install i18n-keyless-browser
  • Node.jsnpm install i18n-keyless-node
  • Laravel, PHPcomposer require i18n-keyless/laravel
  • Rails, Rubybundle add i18n-keyless-rails
  • Flutter, Dartflutter pub add i18n_keyless
  • Swift, iOS, macOS, VaporSwiftPM: arnaudambro/i18n-keyless-swift
  • Kotlin, Android, Ktorio.github.arnaudambro:i18n-keyless-kotlin
  • Python, Django, Flask, FastAPIpip install i18n-keyless
  • Gogo get github.com/arnaudambro/i18n-keyless/ports/go/v3

Szybka konfiguracja dla każdego z dwunastu SDK

Jak działają tłumaczenia

i18n-keyless to biblioteka, połączona z usługą API, która pozwala przetłumaczyć tekst bez konieczności używania kluczy.

Jeśli tłumaczenie nie zostanie znalezione, zostanie wykonane asynchroniczne pobranie do API I18nKeyless, aby uzyskać tłumaczenie za pomocą wywołania API IA.

Ta operacja jest zwykle wykonywana w trybie developerskim, podczas gdy kodujesz. Jeśli pominięłaś jedną, w produkcji tylko pierwszy użytkownik, któremu brakuje tłumaczenia, zobaczy błąd, potem będzie dostępna natychmiast dla użytkowników na całym świecie.

App Store & Google Play

Twój wykaz sklepu we wszystkich językach, przy każdym wydaniu

Każda aktualizacja oznacza nowe notatki wydania, opis i słowa kluczowe — dla każdego języka w obu sklepach. To właśnie to powstrzymuje Cię przed dodawaniem języków. Nie aplikacja.

  • Notatki o wydaniach dla każdego języka, w jednym wywołaniu

    Napisz aktualizację raz. awaitForTranslation zwraca ją w każdym języku, w którym sprzedajesz, a konfiguracja Twojego sklepu przekazuje ją do EAS lub fastlane.

  • 48 języków, przypisanych do slotów App Store

    pt-BR i pt-PT to dwie listy; en-GB, en-AU i en-CA to trzy. toAppStoreLocale umieszcza każde tłumaczenie we właściwym miejscu.

  • Napraw złe tłumaczenie bez wydania

    W aplikacji jedna nadpisywana wartość w panelu sterowania jest aktywna na raz — bez buildu poprawki na gorąco, bez recenzji sklepu. W wykazie ponownie uruchom push.

  • Nie jest cenione za słowo

    Tłumacz pobiera około 0,10 € za słowo. 2 000 ciągów znaków razy 10 języków to budżet, którego nie może pozwolić sobie samodzielny programista. Tutaj słowa nie są liczone.

Pełny przepis na aplikację Expo

// store.config.js — EAS Metadata awaits an async config
const { init, awaitForTranslation, toAppStoreLocale } = require("i18n-keyless-node");

const LANGS = ["en", "fr", "de", "ja", "pt-BR"];
const DESCRIPTION = "Bibi translates your app while you sleep…";

module.exports = async () => {
  init({ API_KEY: process.env.I18N_KEYLESS_KEY, languages: { primary: "en", supported: LANGS } });
  const info = {};
  for (const lang of LANGS) {
    info[toAppStoreLocale(lang)] = {
      title: await awaitForTranslation("Bibi", lang, { context: "App Store app name, 30 characters max" }),
      subtitle: await awaitForTranslation("Keyless i18n", lang, { context: "App Store subtitle, 30 characters max" }),
      description: await awaitForTranslation(DESCRIPTION, lang, { context: "App Store description" }),
    };
  }
  return { configVersion: 0, apple: { info } };
};

To samo połączenie zapisuje pliki metadanych fastlane dla Google Play. Wielkie litery są doradcze: ustaw limit w kontekście i sprawdź długość przed wysłaniem.

Spróbuj sam

Interaktywna piaskownica

Zobacz, jak działa i18n-keyless w czasie rzeczywistym

Otwórz projekt StackBlitz na żywo i edytowalny, aby zobaczyć, jak tłumaczenia są rozwiązywane podczas pisania.

Dlaczego to zbudowałem

Zawsze odkładałem internacjonalizację, dopóki mój klient nie zapragnął jej tak bardzo, że nie miałem wyboru. Nienawidzę czytać kodu z kluczami internacjonalizacji w środku, i równie mocno nie cierpię utrzymywać plików JSON, jak i patrzeć na to, jak drodzy są dostawcy tłumaczeń i18n. Więc musiałem zbudować własne rozwiązanie i PO PROSTU JE UWIELBIAM. Teraz wszystkie moje aplikacje są internacjonalizowane domyślnie.

AA

Arnaud Ambroselli

Założyciel i18n-keyless

Chcesz dodać swoje?

Świadectwo przeciwko darmowej subskrypcji. Poproś o swoją!

Wyślij moje świadectwo
Zanim zapytasz

Najczęściej zadawane pytania

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.

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 kodem
Spróbuj sam

Obejrzyj demo

Obejrzyj ten krótki film, aby zobaczyć i18n-keyless w akcji