Brezbolna internacionalizacija (i18n), razširjena na lastne obzorja brez porabe tisočev dolarjev.
V celoti brezplačno. Neomejena števila projektov, vseh 48 jezikov, brez poteka, ni potreben ključ licence.
Nepremična števila projektov. Vse 48 jezikov. Brez poteka.
- Vse 48 jezikov, neomejena prevajanja
- Nadzorna plošča, MCP strežnik, vsak SDK
- Ničesar za kupiti, ničesar za vnesti razen svojega AI ključa
i18n je zdaj enostavno, lahko ga preizkusite. Ne moti me, če za to dobim napitnino.
- Ko to občutiš
- Če ti je všeč
- Od 1 do 1 milijona dolarjev, ne več
Varnostna plačilo prek Stripe. Licenčna ključ pride v vaš predal — utiša spodbudo za donacijo v nadzorniku.
Kar dobiš
- Nepremični projekti, vseh 48 jezikov, brez poteka
- Nezaslišne prevajanja, brez uporabne omejitve
- Prikazna plošča, MCP strežnik za vaše agente, vsak SDK
- Ena posoda, ena SQLite datoteka za varnostno kopiranje
- Licenca, preverjena brez povezave: vaš strežnik nikoli ne kliče domov
- Vsaka posodobitev, za življenje: docker compose pull
Kar prineseš
- Stroj z Dockerjem: VPS za 4 € je dovolj
- Ključ API za umetno inteligenco (Mistral, OpenAI, Anthropic, Google ali kateri koli OpenAI-združljiv ponudnik). Prevodi se izvajajo na vašem lastnem računu, za nekaj centov na aplikacijo
- Pet minut
Podpora je preko e-pošte, z največjim trudom. Potrebujete nekoga na voljo? Hostirani načrti so za vas.
Kako deluje
Namestite, ustvarite administratorja, prilepite svoj AI ključ. Vsak projekt je brezplačen, za vedno.
Z ONCE — nov strežnik, domena, pet 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 — kateri koli stroj, ki izvaja 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
Nato usmerite svoj SDK na svoj strežnik:
I18nKeyless.init({
API_KEY: "your-project-key",
API_URL: "https://i18n.example.com",
// …
});Celoten vodnik: https://docs.i18n-keyless.com/docs/guides/self-hosting
Zakaj donacija?
Ker sam upravljaš VPS in ključ API za umetno inteligenco. Nimate razloga, da bi te obračunaval za naročnino. Sam tudi sovražim naročnine. Namesto tega: ti odločiš, koliko je programska oprema vredna zate, in jaz nadaljujem z njeno izgradnjo.
Slika se namesti brezplačno in izvaja neomejena projekta, v vseh jezikih in brez poteka.
Vprašanja pred nakupom? Nam pišite
Nastavite i18n, ohranjajte svojo kodo čisto in hitro dostavljajte
Ob trenutnih rešitvah i18n obstaja več PITA. Težave so tako velike, da odlašate i18n kar se le da.
Porablja čas, ki ga bi morali preživeti na plaži
Nastavite sistem ključev: vsaj 1 uro časa starejšega razvijalca
Naprej in nazaj za vsak nov ključ: 1 minuta na ključ, x500 ključev, x2 jezika = 17 ur
Z i18n-keyless se ne morate ukvarjati z i18n sistemom. Lahko odidete na plažo in naročite mojito.
Danes večina sistemov uporablja ključe za prevajanje besedila
To je boleče ustvariti. To je boleče vzdrževati.
Ko vidite besedilo v aplikaciji in ga želite posodobiti, morate najti ustrezajoči ključ.
Z i18n-keyless se sploh ne morate ukvarjati z i18n sistemom. Uporabite svoj um za kaj bolj zanimivega.
Prepusti prevajanje AI
S sistemom ključev morate upravljati prevode v aplikaciji.
V nasprotnem primeru bodo vaši uporabniki videli someheader.welcome.title v svoji aplikaciji.
Z i18n-keylessom v najslabšem offline scenariju vidite neprevedene resnične besede. V normalnem tempu vas sploh ne zanima sistem i18n. Preprosto napišite dobre naslove, osredotočite se na trženje in dosežite prodajo.
Kodne baze so lepe... dokler se i18n ključi ne okužijo
Z sistemom ključev, ko preberete kodo in vsebino, morate prebrati ključe, ne naravni jezik.
Včasih bi morali narediti popravo, ker stavek ni pravilen po slovnici. Ampak tega ne veste, ker berete ključe.
Z i18n-keylessom se ne morate ukvarjati z i18n sistemom. Koda osnovna ostaja lepa.
MCP strežnik za pokrivanje vseh vaših i18n potreb
Šest drugih razlogov, zakaj je sistem tako optimiziran za agentno kodiranje.
Nobenega imena za iznajditi
Ključ je odločitev o imenovanju brez pravilnega odgovora. Dva agenta napišeta login.submit in auth.button.send za isto gumb. Brez ključev ni odločitve, ki bi jo bilo treba sprejeti.
Ena datoteka za urejanje, ne dvajset
Sprememba z ključem vpliva na komponento in vse JSON datoteke lokalizacije, agensi pa pozabljajo datoteke. Tu je sprememba kopije urejanje ene datoteke.
Ni merge konfliktov v agentnih flotah
Pet agentov na petih vejah urejajo vsa en.json: zagotovljen konflikt. Ni skupne datoteke, zato se worktreesi in ozadijski agenti nikoli ne trčijo.
Cenovno v žetonih
Za ponovno uporabo ključa mora agent v kontekst naložiti lokalizacijske datoteke pri vsaki urejanju. Naložitev brez ključa ne naredi ničesar: besedilo je prav tam v komponenti.
Berljive razlike
Pull zahtevek prikazuje resnične stavke. Človek ali pregledovalni agent lahko oceni kopijo brez iskanja, kaj ključ predstavlja.
Eno pravilo v vašem CLAUDE.md
Vsako i18n pravilo, ki ga napišete, je pravilo, ki ga lahko agent krši. To pravilo potrebuje le eno vrstico — in nadomestno besedilo je pravi tekst, zato napaka ne bo prikazala a.b.c na zaslonu.
Edini i18n pravilnik, ki ga potrebuje vaš 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.
Vaš agent lahko upravlja, ne samo da ga napiše
Skozi MCP strežnik agent navede manjkajoče prevode, prebere enega, prepiše slabega ali uvozi kopijo, ki jo že imaš — z lastnim OAuth vpisom, brez potrebe po vnosu ključa.
Preberite vodnik MCPZaženite globalno že od prvega dne
Prestante odlašati internacionalizacijo zaradi zapletenosti. Implementirajte jo v 5 minutah, ne v dneh. Ohranite hitrost razvoja, kot da internacionalizacija ni bila implementirana.
- 5-minutna implementacija. Ne norčujem se.
Ena preprosta konfiguracijska datoteka in končate.
- Ohranite hitrost razvoja
Kodirajte, kot da i18n sploh ni bil implementiran.
- Pošlji na globalna tržišča
Ni potrebno preoblikovanje, ko se povečate na nove jezike.
- SSR & SEO pripravljeni
Deluje z Next.js, Remix, TanStack Start in Astro. Server-side renderirajte katerikoli jezik za iskalnike — enaka 5-minutna namestitev.
Tradicionalni i18n
i18n-brez-ključa
Nastavljanje ni zahtevno
Samo najenostavnejši objekt konfiguracije in ste pripravljeni za globalno uporabo.
In še več, vaš agent bo to nastavil zase za vas.
1. Osnovna postavitev
import * as I18nKeyless from "i18n-keyless-react";
I18nKeyless.init({
API_KEY: "YOUR_API_KEY",
storage: window.localStorage,
languages: {
primary: "en",
supported: ["en", "fr"],
},
});2. Uporaba komponente (Tukaj React; enako velja za Vue, Angular, Flutter, Swift in 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. Uporaba na strežniški strani ( tukaj Node.js; isti klic v Laravel, Rails, Python in 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. Za besedilo zunaj komponent
import { getTranslation } from "i18n-keyless-react";
export default function Navigation() {
return (
<HomeTabs.Navigator>
<HomeTabs.Screen
options={{ tabBarLabel: getTranslation("Welcome") }}
name="WELCOME"
/>
</HomeTabs.Navigator>
);
}5. Izberite svoj SDK: ena vrstica za namestitev, ista API povsod
- 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
Kako delujejo prevodi
i18n-keyless je knjižnica, ki je povezana z API storitvijo, ki vam omogoča prevajanje vašega besedila brez potrebe po uporabi ključev.
Če prevoda ni mogoče najti, bo izveden asinhroni dostop do API I18nKeyless za pridobitev prevoda preko klica API umetne inteligence.
Ta operacija se običajno izvaja v načinu razvijanja, medtem ko kodirate. Če vam ena zmanjka, v produkciji bo le prvi uporabnik, ki mu prevod manjka, videl napako, nato pa bo takoj na voljo uporabnikom po vsem svetu.
Vaš seznam trgovine v vseh jezikih, pri vsaki izdaji
Vsaka posodobitev pomeni nove opombe o izdaji, opis in ključne besede — za vsak jezik v obeh trgovinah. To je tisto, kar vas preprečuje dodajati jezike. Ne aplikacija.
- Zapiski o izdajah za vsak jezik, v enem klicu
Napišite posodobitev enkrat. awaitForTranslation jo vrne v vsakem jeziku, v katerem prodajate, in konfiguracija vaše trgovine jo posreduje v EAS ali fastlane.
- 48 jezikov, preslikanih na slotove App Store
pt-BR in pt-PT sta dve seznama; en-GB, en-AU in en-CA so trije. toAppStoreLocale postavi vsak prevod na pravo mesto.
- Popravite slabo prevajanje brez izdaje
V aplikaciji je en override v nadzornem panelu aktiven naenkrat — brez hotfix builda, brez pregleda trgovine. V seznamu ponovno zaženite push.
- Ne ocenjeno po besedah
Prevajalec zaračuna približno 0,10 € na besedo. 2.000 nizov pomnoženih s 10 jeziki je proračun, ki ga samostojni razvijalec nima. Tu se besede ne štejejo.
Celotna recepta za Expo aplikacijo
// 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 } };
};Ista klica napiše fastlane metapodatkovne datoteke za Google Play. Velika črka so le priporočilna: postavite omejitev v kontekst in preverite dolgo pred tem, ko potisnete.
Interaktivni peščeniški prostor
Poglejte kako i18n-keyless deluje v realnem času
Odprite živ projekt StackBlitz, ki ga lahko urejate, da vidite, kako se prevodi rešujejo, ko pišete.
Zakaj sem to zgradil
Vedno sem odlašal internacionalizacijo, dokler mi ni bilo tako pomembno, da nisem imel druge izbire. Sovražim brati kodo z ključi za internacionalizacijo znotraj, in enako sovražim vzdrževati JSON-datoteke kot da bi gledal, kako drage so ponudniki prevajalskih storitev za internacionalizacijo. Zato sem moral ustvariti svoje, in ZANIMIVO JE. Vse moje aplikacije so sedaj internacionalizirane privzeto.
Arnaud Ambroselli
Ustanovitelj i18n-keyless
Pogosto zastavljena vprašanja
Ali moram upravljati datoteke prevodov?
Ne. Ni JSON datotek, ni koraka za izluščitev ključev, niti graditeljskega vtiča. Pišete svoje stavke v izvorni jezik, SDK jih pošlje API-ju ob prvem zahtevku, API jih prevede z umetno inteligenco, vsak nadaljnji zahtevek pa je poslužen iz predpomnilnika. Vaša koda je edini vir resnice.
Kaj se zgodi, ko spremenim izvorno besedilo?
Izvorno besedilo je ključ. Če ga spremenite, dobite nov ključ z svežim AI prevodom. Stari ključ se preprosto ne zahteva več, in nadzorna plošča ga po 30 dneh neuporabe odstrani. Pravljanje tipkarske napake je enako: popravite jo v kodi, razporedite in novo besedilo bo prevedeno ob prvem zahtevku.
Koliko to stane?
Samodejno gostovanje: popolnoma brezplačno, neomejeno število projektov, brez naročnine in brez omejitve uporabe — namestite Docker sliko, uporabite svoj lasten AI ključ. Vam je všeč? Dajte mi nasvet! Gostovano: enotna fiksna cena na projekt na mesec, glede na mesečno aktivne uporabnike — 4 € do 1.000, 9 € do 5.000, 29 € do 50.000, 99 € do 500.000 — obračunano mesečno, lahko odjavite kadarkoli. V obeh primerih ni nobene cenitve po sedežu, po besedi ali po nizu.
Ali lahko izvozim svoje prevode?
Da. Nadzorna plošča ima gumb "Izvozi JSON", ki prenese vse prevode v vašem projektu v eni JSON datoteki. Izvoz vključuje vse vrstice, ne le tiste, ki so bile uporabljene v zadnjih 30 dneh, zato gre za popolno varnostno kopijo. Ni nobene zapore: vaši podatki so vedno le en klik stran.
Eden vzdrževalec: kaj se zgodi, če se projekt ustavi?
SDK so pod MIT licenco in so na voljo na npm, PyPI, RubyGems in drugih registrih. Strežnik je javno dostopen pod Elastic licenco 2.0, protokol med njima pa je dokumentiran, zato ga lahko kdorkoli zažene, naredi fork ali napiše strežnik proti njemu. Vaši prevodi so vedno v eni JSON izvozi. Če gostovana storitev preneha delovati: nameščene aplikacije še naprej posredujejo svoje predpomnjene prevode, nov klient se vrne k izvirnemu jeziku, z usmeritvijo SDK na svojo lastno instanco z API_URL pa se vse obnovijo. To, kar bi izgubili, je AI prevod novih nizov na i18n-keyless.com — ne vaše podatke ali aplikacijo.
Preberite celoten odgovor z kodoOgledajte demo
Ogledajte si ta kratki video, da vidite i18n-keyless v dejanju