i18n fără durere, extins la orizonturile tale fără a cheltui mii de dolari.
Total gratuit. Proiecte nelimitate, toate cele 48 de limbi, fără expirare, nu este necesară cheia de licență.
Proiecte nelimitate. Toate cele 48 de limbi. Fără expirare.
- Toate cele 48 de limbi, traduceri nelimitate
- Tabloul de bord, serverul MCP, fiecare SDK
- Nimic de cumpărat, nimic de introdus decât cheia ta de AI
i18n nu mai este dificil, poți să îl experimentezi. Nu mă deranjează să primesc un bacșiș pentru asta.
- Când îl simți
- Dacă ai chef
- De la 1 la 1 milion de dolari, nu mai mult
Plată securizată prin Stripe. O cheie de licență ajunge în căsuța dvs. de primire — aceasta elimină promptul de donație din tabloul de bord.
Ce obții
- Proiecte nelimitate, toate cele 48 de limbi, fără expirare
- Traduceri nelimitate, fără limită de utilizare
- Tabloul de bord, serverul MCP pentru agenții dvs., fiecare SDK
- Un container, un fișier SQLite pentru backup
- O licență verificată offline: serverul dvs. nu apelează niciodată acasă
- Fiecare actualizare, pentru viață: docker compose pull
Ce aduci
- O mașină cu Docker: un VPS de 4 € este suficient
- O cheie API de AI (Mistral, OpenAI, Anthropic, Google sau orice furnizor compatibil cu OpenAI). Traducerile rulează pe contul dvs., pentru câteva cenți pe aplicație
- Cinci minute
Suportul se realizează prin e-mail, cu cel mai bun efort posibil. Aveți nevoie de cineva disponibil? Planurile găzduite sunt pentru dvs.
Cum funcționează
Instalați, creați administratorul, lipiți cheia dvs. AI. Fiecare proiect este gratuit, pentru totdeauna.
Cu ONCE — un server nou, un domeniu, cinci minute
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
Cu Docker Compose — orice mașină care rulează 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
Apoi, îndreptați SDK-ul către serverul dvs.:
I18nKeyless.init({
API_KEY: "your-project-key",
API_URL: "https://i18n.example.com",
// …
});Ghidul complet: https://docs.i18n-keyless.com/docs/guides/self-hosting
De ce o donație?
Pentru că tu gestionezi singur VPS-ul și cheia API a AI-ului. Nu am niciun motiv să te taxez pentru un abonament. Eu însumi urăsc abonamentele. Așa că în schimb: tu decizi cât valorează software-ul pentru tine, iar eu continui să-l dezvolt.
Imaginea se instalează gratuit și rulează proiecte nelimitate, în toate limbile și fără expirare.
Întrebări înainte de a cumpăra? Scrieți-ne
Configurare i18n, păstrați codul curat și livrați rapid
Există mai multe PITA cu soluțiile actuale de i18n. Durerile sunt atât de mari încât amânați i18n cât mai mult posibil.
Consumă timpul pe care ar trebui să-l petreci la plajă
Configurare sistemul de chei: cel puțin 1 oră de timp de dezvoltator senior
Înapoi și înapoi pentru fiecare cheie nouă: 1 minut pe cheie, x500 chei, x2 limbi = 17 ore
Cu i18n-keyless, nu te îngrijorezi deloc de sistemul i18n. Poți merge la plajă și să ceri un mojito.
Astăzi, majoritatea sistemelor utilizează chei pentru a traduce textul
Asta doare să se genereze. Asta doare să se mențină.
Când vezi un text în aplicație și vrei să-l actualizezi, trebuie să găsești cheia corespunzătoare.
Cu i18n-keyless, nu te îngrijorezi deloc de sistemul i18n. Folosește creierul pentru ceva mai interesant.
Lăsați traducerile la IA
Cu sistemul de cheie, trebuie să gestionezi traducerile în aplicație.
Altfel, utilizatorii dvs. vor vedea someheader.welcome.title în aplicația lor.
Cu i18n-keyless, în cel mai rău scenariu offline, veți vedea cuvinte reale netraduse. La un ritm normal, nu vă pasă deloc de sistemul i18n. Doar scrieți titluri bune, concentrați-vă pe marketing și obțineți vânzări.
Bazele de cod sunt frumoase... până la infecția cheilor i18n
Cu sistemul de chei, când citești codul și conținutul, trebuie să citești cheile, nu limba naturală.
Uneori trebuie să faci o corectare pentru că o propoziție nu este gramatical corectă. Dar nu știi asta pentru că citești cheile.
Cu i18n-keyless, nu te îngrijorezi deloc de sistemul i18n. Baza de cod rămâne frumoasă.
Server MCP pentru a acoperi toate nevoile tale de internaționalizare
Șase alte motive pentru care sistemul este atât de optimizat pentru codarea agentică.
Niciun nume de inventat
O cheie este o decizie de denumire fără un răspuns corect. Doi agenți scriu login.submit și auth.button.send pentru același buton. Fără chei, nu există nicio decizie de luat.
Un singur fișier de editat, nu douăzeci
O schimbare bazată pe cheie afectează componenta și fiecare fișier JSON de localizare, iar agenții uită fișierele. Aici, o schimbare de copie este o editare a unui singur fișier.
Zero conflicte de fuziune în flotele de agenți
Cinci agenți pe cinci ramuri editează toți en.json: un conflict garantat. Nu există un fișier partajat, astfel încât worktrees și agenții din fundal nu se vor ciocni niciodată.
Ieftin în tokeni
Pentru a reutiliza o cheie, un agent trebuie să încarce fișierele de localizare în context la fiecare editare. Încărcările fără cheie nu fac nimic: textul este chiar acolo în componentă.
Diferențe lizibile
Cererea de pull request afișează propoziții reale. O persoană sau un agent de revizuire poate evalua copia fără a aprofunda ce reprezintă o cheie.
O regulă în CLAUDE.md-ul tău
Orice regulă i18n pe care o scrii este o regulă pe care agentul o poate încălca. Aceasta are nevoie doar de o singură linie — iar textul de rezervă este textul real, astfel încât o greșeală nu va afișa a.b.c pe ecran.
Singura regulă i18n de care are nevoie agentul tău
# CLAUDE.md Write the UI copy in English and wrap it in <T>…</T> from i18n-keyless-react. That is the whole i18n setup.
Agentul tău poate să îl opereze, nu doar să îl scrie
Prin intermediul serverului MCP, agentul listează traduceri lipsă, citește una, suprascrie una greșită sau importă copia pe care o ai deja — cu autentificarea OAuth proprie, fără a fi nevoie să lipsești vreo cheie.
Citiți ghidul MCPLansare globală din ziua întâi
Opriți întârzierea i18n din cauza complexității. Implementați în 5 minute, nu în zile. Mențineți viteza de dezvoltare ca și cum i18n nu ar fi fost implementată.
- Implementare în 5 minute. Nu bat joc.
Un singur obiect de configurare simplu și gata.
- Menține viteza de dezvoltare
Scrie cod ca și dacă i18n nu ar fi implementat deloc.
- Livrare pe piețele globale
Nu este necesară refactorizarea la scalarea la noi limbi.
- Pregătit pentru SSR & SEO
Funcționează cu Next.js, Remix, TanStack Start și Astro. Randare pe server în orice limbă pentru motoarele de căutare — aceeași configurare în 5 minute.
Traditional i18n
i18n-keyless
Este foarte ușor de configurat
Doar cel mai simplu obiect de configurare și ești gata să mergi global.
Și chiar mai mult, agentul tău îl va configura pentru tine.
1. Configurare de bază
import * as I18nKeyless from "i18n-keyless-react";
I18nKeyless.init({
API_KEY: "YOUR_API_KEY",
storage: window.localStorage,
languages: {
primary: "en",
supported: ["en", "fr"],
},
});2. Utilizarea componentelor (Aici React; același lucru în 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. Utilizare pe partea serverului (aici Node.js; aceeași apelare în 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. Pentru textul în afara componentelor
import { getTranslation } from "i18n-keyless-react";
export default function Navigation() {
return (
<HomeTabs.Navigator>
<HomeTabs.Screen
options={{ tabBarLabel: getTranslation("Welcome") }}
name="WELCOME"
/>
</HomeTabs.Navigator>
);
}5. Alegeți SDK-ul dvs.: o linie de instalare, aceeași API peste tot
- 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
Configurare rapidă pentru fiecare dintre cele douăsprezece SDK-uri
Cum funcționează traducerile
i18n-keyless este o bibliotecă, combinată cu un serviciu API, care vă permite să traduceți textul fără a avea nevoie de chei.
Dacă traducerea nu este găsită, va exista o recuperare asincronă la API-ul I18nKeyless pentru a obține traducerea printr-o apelare de API IA.
Această operațiune se face de obicei în modul de dezvoltare, în timp ce codifici. Dacă ai ratat una, în producție doar primul utilizator care îi lipsește traducerea va vedea un glitch, apoi va fi disponibil instantaneu pentru utilizatorii de pe tot globul.
Lista magazinului dvs. în fiecare limbă, la fiecare lansare
Fiecare actualizare înseamnă note noi de lansare, o descriere și cuvinte-cheie — pentru fiecare limbă, pe ambele magazine. Asta este ceea ce te împiedică să adaugi limbi. Nu aplicația.
- Notele de lansare pentru fiecare limbă, într-un apel
Scrieți actualizarea o dată. awaitForTranslation o returnează în fiecare limbă în care vindeți, iar configurația magazinului dvs. o transmite către EAS sau fastlane.
- 48 de limbi, mapate la sloturile App Store
pt-BR și pt-PT sunt două liste; en-GB, en-AU și en-CA sunt trei. toAppStoreLocale pune fiecare traducere la locul potrivit.
- Corectați o traducere proastă fără o lansare
În aplicație, un override în tabloul de bord este activ câte unul la un moment dat — fără build de hotfix, fără recenzie de magazin. În listă, reporniți push-ul.
- Nu este prețuit pe cuvânt
Un traducător percepe aproximativ 0,10 € pe cuvânt. 2.000 de șiruri de caractere înmulțite cu 10 limbi reprezintă un buget pe care un dezvoltator solo nu și-l poate permite. Aici cuvintele nu sunt numărate.
Rețeta completă pentru o aplicație 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 } };
};Același apel scrie fișierele de metadate fastlane pentru Google Play. Literele mari sunt consultative: puneți limita în context și verificați lungimea înainte de a împinge.
Cutie de nisip interactivă
Vedeți cum funcționează i18n-keyless în timp real
Deschideți un proiect StackBlitz în timp real și editabil pentru a vedea cum se rezolvă traducerile pe măsură ce tastați.
De ce am construit asta
Am totdeauna amânat internaționalizarea până când clientul meu a dorit-o atât de mult încât nu am mai avut de ales. Urăsc să citesc cod cu chei de internaționalizare înăuntru și urăsc la fel de mult să întrețin fișiere JSON precum și să văd cât de scumpi sunt furnizorii de traduceri pentru internaționalizare. Așa că am trebuit să-mi fac propriul meu sistem, și ÎL IUBESC. Toate aplicațiile mele sunt acum internaționalizate implicit.
Arnaud Ambroselli
Fondatorul i18n-keyless
Vrei să adaugi al tău?
O mărturie împotriva unui abonament gratuit. Cereți-vă pe al vostru!
Trimite mărturia meaÎntrebări frecvente
Trebuie să gestionez fișierele de traducere?
Nu. Nu există fișiere JSON, niciun pas de extragere a cheilor și niciun plugin de build-time. Scrieți propozițiile în limba sursă, SDK le trimite API-ului la prima cerere, API-ul le traduce cu AI, iar fiecare cerere ulterioară este servită din cache. Codul dvs. este singura sursă de adevăr.
Ce se întâmplă când schimb textul sursă?
Textul sursă este cheia. Dacă îl modificați, veți obține o nouă cheie cu o traducere AI proaspătă. Cheia veche pur și simplu nu mai este cerută, iar tabloul de bord o curăță după 30 de zile fără utilizare. Corectarea unei greșeli de tipar funcționează la fel: corectați-o în cod, implementați și noul text va fi tradus la prima cerere.
Cât costă?
Auto-gazduit: complet gratuit, proiecte nelimitate, fără abonament și fără limită de utilizare — instalați imaginea Docker, folosiți-vă propria cheie AI. Vă place? Dați-mi un sfat! Gazduit: un preț fix pe proiect pe lună, în funcție de utilizatorii activi lunar — 4 € până la 1.000, 9 € până la 5.000, 29 € până la 50.000, 99 € până la 500.000 — facturat lunar, poate fi anulat în orice moment. Nu există tarifare pe loc, pe cuvânt sau pe șir în niciunul dintre cazuri.
Pot să export traducerile mele?
Da. Panoul de control are un buton „Exportă JSON” care descarcă toate traducerile din proiectul tău ca un singur fișier JSON. Exportul include toate rândurile, nu doar cele folosite în ultimele 30 de zile, așa că este o copie de siguranță completă. Nu există niciun fel de restricție: datele tale sunt mereu la un clic distanță.
Un întreținător: ce se întâmplă dacă proiectul se oprește?
SDK-urile sunt sub licență MIT și rămân disponibile pe npm, PyPI, RubyGems și alte registre. Serverul este public sub licența Elastic 2.0, iar protocolul dintre ele este documentat, astfel încât oricine poate să îl ruleze, să îl facă fork sau să scrie un server împotriva lui. Traducerile tale rămân într-o singură exportare JSON în orice moment. Dacă serviciul găzduit se oprește: aplicațiile instalate continuă să servească traducerile lor din cache, un client nou revine la limba sursă, iar prin direcționarea SDK-ului către propria ta instanță cu API_URL totul este restaurat. Ce ai pierde este traducerea AI a noilor șiruri de caractere de pe i18n-keyless.com — nu datele tale sau aplicația ta.
Citiți răspunsul complet, cu codulUită-te la demo
Uită-te la acest scurt videoclip pentru a vedea i18n-keyless în acțiune