i18n tanpa sakit, diperluas ke horizon anda sendiri tanpa menghabiskan ribuan dolar.
Sepenuhnya percuma. Projek tanpa had, semua 48 bahasa, tiada tarikh luput, tiada kunci lesen diperlukan.
Projek tanpa had. Semua 48 bahasa. Tiada tarikh luput.
- Semua 48 bahasa, terjemahan tanpa had
- Papan pemuka, pelayan MCP, setiap SDK
- Tiada apa-apa untuk dibeli, tiada apa-apa untuk dimasukkan kecuali kunci AI anda
i18n kini tidak menyusahkan, anda boleh mengalaminya. Saya tidak keberatan menerima tip untuknya.
- Apabila anda merasakannya
- Jika awak nak
- Dari 1 hingga 1 juta dolar, tidak lebih
Pembayaran selamat oleh Stripe. Kunci lesen masuk ke peti masuk anda — ia menyenyapkan petunjuk derma dalam papan pemuka.
Apa yang awak dapat
- Projek tanpa had, semua 48 bahasa, tiada tarikh luput
- Terjemahan tanpa had, tiada had penggunaan
- Papan pemuka, pelayan MCP untuk ejen anda, setiap SDK
- Satu bekas, satu fail SQLite untuk sandaran
- Lesen yang diperiksa luar talian: pelayan anda tidak pernah menghubungi rumah
- Setiap kemas kini, untuk hidup: docker compose pull
Apa yang awak bawa
- Mesin dengan Docker: VPS bernilai €4 sudah mencukupi
- Kunci API AI (Mistral, OpenAI, Anthropic, Google atau mana-mana pembekal serasi OpenAI). Terjemahan dijalankan pada akaun anda sendiri, dengan kos beberapa sen setiap aplikasi
- Lima minit
Sokongan melalui e-mel, dengan usaha terbaik. Perlu seseorang untuk dihubungi? Pelan yang dihoskan adalah untuk anda.
Bagaimana ia berjalan
Pasang, cipta pentadbir, tampal kunci AI anda. Setiap projek adalah percuma, selama-lamanya.
Dengan ONCE — pelayan baharu, domain, lima minit
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
Dengan Docker Compose — mana-mana mesin yang menjalankan 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
Kemudian arahkan SDK anda ke pelayan anda:
I18nKeyless.init({
API_KEY: "your-project-key",
API_URL: "https://i18n.example.com",
// …
});Panduan penuh: https://docs.i18n-keyless.com/docs/guides/self-hosting
Kenapa derma?
Kerana anda sendiri mengurus VPS dan kunci API AI. Tiada sebab untuk saya mengenakan bayaran langganan kepada anda. Saya sendiri benci langganan. Jadi, sebagai gantinya: anda tentukan nilai perisian itu kepada anda, dan saya terus membinanya.
Imej dipasang secara percuma dan menjalankan projek tanpa had, dengan setiap bahasa dan tiada tarikh luput.
Soalan sebelum anda membeli? Tulis kepada kami
Persediaan i18n, pastikan pangkalan kod anda bersih dan hantar dengan pantas
Terdapat pelbagai PITA dengan penyelesaian i18n semasa. Kesakitan begitu besar sehingga anda menangguhkan i18n sebanyak mungkin.
Ia menghabiskan masa yang sepatutnya anda gunakan di pantai
Persediaan sistem kunci: sekurang-kurangnya 1 jam masa pembangun senior
Bolak-balik untuk setiap kunci baharu: 1 minit setiap kunci, x500 kunci, x2 bahasa = 17 jam
Dengan i18n-keyless, anda tidak perlu risau tentang sistem i18n langsung. Anda boleh pergi ke pantai dan pesan mojito.
Hari ini kebanyakan sistem menggunakan kunci untuk menterjemahkan teks
Ini menyakitkan untuk dijana. Ini menyakitkan untuk dikekalkan.
Apabila anda melihat teks dalam aplikasi, dan anda ingin mengemas kini, anda perlu mencari kunci yang sepadan.
Dengan i18n-keyless, anda tidak perlu risau tentang sistem i18n langsung. Gunakan otak anda untuk sesuatu yang lebih menarik.
Biarkan terjemahan kepada AI
Dengan sistem kunci, anda perlu mengurus terjemahan dalam aplikasi.
Jika tidak, pengguna anda akan melihat someheader.welcome.title dalam aplikasi mereka.
Dengan i18n-keyless, dalam senario luar talian terburuk anda melihat perkataan sebenar yang tidak diterjemah. Pada kadar normal, anda langsung tidak peduli tentang sistem i18n. Cukup tulis tajuk yang baik, fokus pada pemasaran, dan dapatkan jualan.
Pangkalan kod cantik... sehingga kunci i18n dijangkiti
Dengan sistem kunci, apabila anda membaca kod dan kandungan, anda perlu membaca kunci, bukan bahasa semula jadi.
Kadangkala anda perlu membuat pembetulan kerana ayat itu tidak betul dari segi tatabahasa. Tetapi anda tidak tahu perkara itu kerana anda membaca kunci.
Dengan i18n-keyless, anda tidak perlu risau tentang sistem i18n langsung. Pangkalan kod kekal cantik.
Pelayan MCP untuk memenuhi semua keperluan i18n anda
Enam sebab lagi mengapa sistem sangat dioptimumkan untuk pengekodan agen.
Tiada nama untuk dicipta
Kunci ialah keputusan penamaan tanpa jawapan yang betul. Dua ejen menulis login.submit dan auth.button.send untuk butang yang sama. Tanpa kunci, tiada keputusan untuk dibuat.
Satu fail untuk diedit, bukan dua puluh
Perubahan berasaskan kunci menjejaskan komponen dan setiap fail JSON lokalisasi, dan ejen lupa fail. Di sini, perubahan salinan ialah suntingan fail tunggal.
Tiada konflik penggabungan dalam armada ejen
Lima ejen di lima cabang semuanya edit en.json: konflik yang dijamin. Tiada fail dikongsi, jadi worktrees dan ejen latar belakang tidak akan berlanggar.
Murah dalam token
Untuk menggunakan semula kekunci, ejen mesti memuatkan fail lokal ke dalam konteks pada setiap suntingan. Muatan tanpa kekunci tidak melakukan apa-apa: teks berada terus di dalam komponen.
Perbezaan yang boleh dibaca
Permintaan tarik menunjukkan ayat sebenar. Manusia atau ejen semakan boleh menilai salinan tanpa menggali apa yang kunci itu mewakili.
Satu peraturan dalam CLAUDE.md anda
Setiap peraturan i18n yang anda tulis adalah peraturan yang boleh dipatahkan oleh ejen. Peraturan ini hanya memerlukan satu baris — dan sandaran adalah teks sebenar, jadi kesilapan tidak akan memaparkan a.b.c pada skrin.
Satu-satunya peraturan i18n yang diperlukan ejen anda
# CLAUDE.md Write the UI copy in English and wrap it in <T>…</T> from i18n-keyless-react. That is the whole i18n setup.
Ejen anda boleh mengendalikannya, bukan sekadar menulisnya
Melalui pelayan MCP, ejen menyenaraikan terjemahan yang hilang, membaca satu, mengatasi yang buruk, atau mengimport salinan yang anda sudah ada — dengan log masuk OAuth sendiri, tanpa perlu tampal kunci.
Baca panduan MCPLancarkan secara global dari hari pertama
Berhentilah menangguhkan i18n kerana kerumitan. Implemen dalam 5 minit, bukan hari. Kekalkan kelajuan pembangunan anda seolah-olah i18n tidak dilaksanakan.
- Pelaksanaan dalam 5 minit. Bukan lawak.
Satu objek konfigurasi ringkas dan awak siap.
- Pertahankan kelajuan pembangunan
Kod seolah-olah i18n tidak dilaksanakan sama sekali.
- Hantar ke pasaran global
Tiada penyusunan semula diperlukan semasa anda berskala ke bahasa baharu.
- SSR & SEO sedia
Bekerja dengan Next.js, Remix, TanStack Start dan Astro. Render pelayan dalam mana-mana bahasa untuk enjin carian — persediaan 5 minit yang sama.
Tradisional i18n
i18n-tanpa-kunci
Ia tidak susah untuk disetup
Hanya objek konfigurasi yang paling ringkas dan anda bersedia untuk pergi global.
Dan lebih lagi, ejen anda akan menyiapkannya untuk anda.
1. Persediaan Asas
import * as I18nKeyless from "i18n-keyless-react";
I18nKeyless.init({
API_KEY: "YOUR_API_KEY",
storage: window.localStorage,
languages: {
primary: "en",
supported: ["en", "fr"],
},
});2. Penggunaan Komponen (React di sini; sama dalam Vue, Angular, Flutter, Swift dan 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. Penggunaan sisi pelayan (di sini Node.js; panggilan yang sama dalam Laravel, Rails, Python dan 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. Untuk teks di luar komponen
import { getTranslation } from "i18n-keyless-react";
export default function Navigation() {
return (
<HomeTabs.Navigator>
<HomeTabs.Screen
options={{ tabBarLabel: getTranslation("Welcome") }}
name="WELCOME"
/>
</HomeTabs.Navigator>
);
}5. Pilih SDK anda: satu baris pemasangan, API yang sama di mana-mana
- 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
Bagaimana terjemahan berfungsi
i18n-keyless ialah sebuah perpustakaan, digabungkan dengan perkhidmatan API, yang membolehkan anda menterjemahkan teks anda tanpa perlu menggunakan kunci.
Jika terjemahan tidak ditemui, satu pengambilan tidak segerak akan dilakukan ke API I18nKeyless untuk mendapatkan terjemahan melalui panggilan API AI.
Operasi ini biasanya dilakukan dalam mod pembangunan, semasa anda coding. Jika anda terlepas satu, dalam pengeluaran hanya pengguna pertama yang hilang terjemahan akan melihat gangguan, kemudian ia akan tersedia dengan serta-merta kepada pengguna di seluruh dunia.
Senarai kedai anda dalam setiap bahasa, pada setiap keluaran
Setiap kemas kini bermaksud nota pelepasan baru, keterangan dan kata kunci — untuk setiap bahasa, di kedua-dua kedai. Itulah yang menghalang anda daripada menambah bahasa. Bukan aplikasinya.
- Nota pelepasan untuk setiap bahasa, dalam satu panggilan
Tulis kemas kini sekali. awaitForTranslation mengembalikannya dalam setiap bahasa yang anda jual, dan konfigurasi kedai anda menghantarnya ke EAS atau fastlane.
- 48 bahasa, dipetakan kepada slot App Store
pt-BR dan pt-PT ialah dua senarai; en-GB, en-AU dan en-CA ialah tiga. toAppStoreLocale meletakkan setiap terjemahan di tempat yang betul.
- Baiki terjemahan yang buruk tanpa pelepasan
Dalam aplikasi, satu override dalam papan pemuka aktif pada satu masa — tiada binaan hotfix, tiada ulasan kedai. Dalam senarai, jalankan semula push.
- Tidak diprincikan setiap perkataan
Penterjemah mengenakan bayaran sekitar €0.10 setiap perkataan. 2,000 rentetan dikali 10 bahasa ialah satu belanjawan yang tidak mampu dimiliki oleh pembangun solo. Di sini perkataan tidak dikira.
Resipi lengkap untuk aplikasi 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 } };
};Panggilan yang sama menulis fail metadata fastlane untuk Google Play. Huruf besar adalah nasihat: letakkan had dalam konteks dan semak panjang sebelum anda tolak.
Sandbox Interaktif
Lihat bagaimana i18n-keyless berfungsi dalam masa nyata
Buka projek StackBlitz yang boleh diedit secara langsung untuk melihat terjemahan diselesaikan semasa anda menaip.
Mengapa saya bina ini
Saya sentiasa menangguhkan penterjemahan antarabangsa sehingga pelanggan saya menginginkannya begitu sangat sehingga saya tidak mempunyai pilihan. Saya benci membaca kod dengan kunci penterjemahan antarabangsa di dalamnya, dan saya benci mengekalkan fail JSON sebanyak melihat betapa mahalnya pembekal penterjemahan antarabangsa. Jadi saya terpaksa membina sendiri, dan SAYA SANGAT MENYUKAINYA. Semua aplikasi saya kini sudah antarabangsa secara lalai.
Arnaud Ambroselli
Pengasas i18n-keyless
Ingin menambah milik anda?
Saksi terhadap langganan percuma. Mintalah milik anda!
Hantar kesaksian sayaSoalan Lazim
Adakah saya perlu mengurus fail terjemahan?
Tidak. Tiada fail JSON, tiada langkah pengekstrakan kunci, dan tiada plugin masa bina. Anda menulis ayat anda dalam bahasa sumber, SDK menghantarnya ke API pada permintaan pertama, API menterjemahkannya dengan AI, dan setiap permintaan seterusnya dilayan dari cache. Kod anda ialah satu-satunya sumber kebenaran.
Apakah yang berlaku apabila saya menukar teks sumber?
Teks sumber ialah kunci. Ubahlah, dan anda akan mendapat kunci baharu dengan terjemahan AI yang segar. Kunci lama tidak lagi diminta, dan papan pemuka membersihkannya selepas 30 hari tanpa penggunaan. Pembetulan ejaan juga sama: betulkan dalam kod, deploy, dan teks baharu akan diterjemahkan pada permintaan pertama.
Berapa harganya?
Sendiri dihos: sepenuhnya percuma, projek tanpa had, tiada langganan dan tiada had penggunaan — pasang imej Docker, gunakan kunci AI anda sendiri. Anda suka? Beri saya tip! Dihos: satu harga tetap setiap projek setiap bulan, berdasarkan pengguna aktif bulanan — €4 sehingga 1,000, €9 sehingga 5,000, €29 sehingga 50,000, €99 sehingga 500,000 — dibayar bulanan, boleh dibatalkan bila-bila masa. Tiada penetapan harga setiap tempat duduk, setiap perkataan atau setiap rentetan dalam kedua-dua kes.
Bolehkah saya eksport terjemahan saya?
Ya. Papan pemuka mempunyai butang "Eksport JSON" yang memuat turun setiap terjemahan dalam projek anda sebagai satu fail JSON. Eksport merangkumi semua baris, bukan hanya yang digunakan dalam 30 hari terakhir, jadi ia adalah sandaran penuh. Tiada penguncian: data anda sentiasa hanya satu klik sahaja.
Seorang penyelenggara: apa yang berlaku jika projek berhenti?
SDK berada di bawah lesen MIT dan kekal tersedia di npm, PyPI, RubyGems dan daftar-daftar lain. Pelayan adalah awam di bawah Lesen Elastic 2.0 dan protokol antara mereka didokumentasikan, jadi sesiapa boleh menjalankannya, fork atau menulis pelayan terhadapnya. Terjemahan anda kekal dalam satu eksport JSON pada bila-bila masa. Jika perkhidmatan yang dihoskan berhenti: aplikasi yang dipasang terus berkhidmat dengan terjemahan yang tersimpan dalam cache, pelanggan baharu kembali ke bahasa sumber, dan dengan mengarahkan SDK ke instans anda sendiri dengan API_URL, segala-galanya dipulihkan. Apa yang anda akan hilang ialah terjemahan AI bagi rentetan baharu di i18n-keyless.com — bukan data atau aplikasi anda.
Baca jawapan penuh, dengan kodTonton Demo
Tonton video pendek ini untuk melihat i18n-keyless dalam tindakan