Mandiri

i18n tanpa rasa sakit, diperluas ke cakrawala Anda sendiri tanpa menghabiskan ribuan dolar.

Sepenuhnya gratis. Proyek tak terbatas, semua 48 bahasa, tidak ada kadaluwarsa, tidak memerlukan kunci lisensi.

Gratis selamanya
€0selamanya

Proyek tanpa batas. Semua 48 bahasa. Tidak ada kadaluarsa.

  • Semua 48 bahasa, terjemahan tanpa batas
  • Dasbor, server MCP, setiap SDK
  • Tidak ada yang perlu dibeli, tidak ada yang perlu dimasukkan kecuali kunci AI Anda
Pasang secara gratis
Beri saya tip
Kamu suka?

i18n sekarang tidak menyulitkan, Anda bisa mengalaminya. Saya tidak keberatan mendapat tip untuk itu.

  • Ketika kamu merasakannya
  • Jika kamu mau
  • Dari 1 hingga 1 juta dolar, tidak lebih

Pembayaran aman oleh Stripe. Kunci lisensi masuk ke kotak masuk Anda — ini menonaktifkan prompt donasi di dasbor.

Apa yang kamu dapat

  • Proyek tak terbatas, semua 48 bahasa, tidak ada kadaluarsa
  • Terjemahan tanpa batas, tidak ada batasan penggunaan
  • Dasbor, server MCP untuk agen Anda, setiap SDK
  • Satu kontainer, satu file SQLite untuk pencadangan
  • Lisensi yang diperiksa secara offline: server Anda tidak pernah memanggil rumah
  • Setiap pembaruan, untuk seumur hidup: docker compose pull

Apa yang kamu bawa

  • Mesin dengan Docker: VPS seharga €4 sudah cukup
  • Kunci API AI (Mistral, OpenAI, Anthropic, Google atau penyedia apa pun yang kompatibel dengan OpenAI). Terjemahan dijalankan di akun Anda sendiri, dengan biaya beberapa sen per aplikasi
  • Lima menit

Dukungan melalui email, dengan upaya terbaik. Perlu seseorang yang siap menerima panggilan? Paket yang di-hosting adalah untuk Anda.

Bagaimana cara kerjanya

Pasang, buat admin, tempel kunci AI Anda. Setiap proyek gratis, selamanya.

Dengan ONCE — server baru, domain, lima menit

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 — mesin apa pun 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 server Anda:

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

Panduan lengkap: https://docs.i18n-keyless.com/docs/guides/self-hosting

Mengapa berdonasi?

Karena Anda menangani VPS dan kunci API AI sendiri. Tidak ada alasan bagi saya untuk mengenakan biaya langganan kepada Anda. Saya sendiri juga benci langganan. Jadi sebagai gantinya: Anda yang menentukan nilai perangkat lunak ini bagi Anda, dan saya akan terus membangunnya.

Gambar terpasang secara gratis dan menjalankan proyek tanpa batas, dengan semua bahasa dan tanpa kadaluarsa.

Pertanyaan sebelum Anda membeli? Tulis kepada kami

Atur i18n, jaga basis kode Anda tetap bersih dan kirim dengan cepat

Ada banyak PITA dengan solusi i18n saat ini. Rasa sakitnya begitu besar sehingga Anda menunda i18n sebanyak mungkin.

Ini menghabiskan waktu yang seharusnya Anda habiskan di pantai

Atur sistem kunci: setidaknya 1 jam waktu pengembang senior

Maju mundur untuk setiap kunci baru: 1 menit per kunci, x500 kunci, x2 bahasa = 17 jam

Dengan i18n-keyless, Anda tidak perlu memikirkan sistem i18n sama sekali. Anda bisa pergi ke pantai dan memesan mojito.

Hari ini sebagian besar sistem menggunakan kunci untuk menerjemahkan teks

Menyakitkan untuk dihasilkan. Menyakitkan untuk dipertahankan.

Ketika Anda melihat teks di aplikasi, dan Anda ingin memperbaruinya, Anda perlu menemukan kunci yang sesuai.

Dengan i18n-keyless, Anda tidak perlu memikirkan sistem i18n sama sekali. Gunakan otak Anda untuk sesuatu yang lebih menarik.

Biarkan terjemahan ke AI

Dengan sistem kunci, Anda perlu mengelola terjemahan di aplikasi.

Jika tidak, pengguna Anda akan melihat someheader.welcome.title di aplikasi mereka.

Dengan i18n-keyless, dalam skenario offline terburuk Anda melihat kata-kata nyata yang tidak diterjemahkan. Dengan kecepatan normal, Anda tidak peduli sama sekali tentang sistem i18n. Cukup tulis judul yang baik, fokus pada pemasaran, dan dapatkan penjualan.

Basis kode itu indah... sampai kunci i18n terinfeksi

Dengan sistem kunci, ketika Anda membaca kode dan konten, Anda harus membaca kunci, bukan bahasa alami.

Terkadang Anda harus melakukan perbaikan karena sebuah kalimat tidak benar secara tata bahasa. Tetapi Anda tidak tahu itu karena Anda membaca kunci.

Dengan i18n-keyless, Anda tidak perlu memikirkan sistem i18n sama sekali. Basis kode tetap indah.

Tambahkan i18n sejak hari pertama tanpa dampak pada kecepatan pengembangan Anda
Dibuat untuk agen pengkodean

Server MCP untuk memenuhi semua kebutuhan i18n Anda

Enam alasan lain mengapa sistem sangat dioptimalkan untuk pemrograman agen.

Tidak ada nama untuk diciptakan

Kunci adalah keputusan penamaan tanpa jawaban yang benar. Dua agen menulis login.submit dan auth.button.send untuk tombol yang sama. Tanpa kunci, tidak ada keputusan untuk dibuat.

Satu berkas untuk diedit, bukan dua puluh

Perubahan berbasis kunci memengaruhi komponen dan setiap file JSON lokalisasi, serta agen melupakan file. Di sini, perubahan salinan adalah pengeditan satu berkas.

Nol konflik penggabungan dalam armada agen

Lima agen di lima cabang semuanya mengedit en.json: konflik yang dijamin. Tidak ada file yang dibagikan, jadi worktrees dan agen latar belakang tidak pernah bertabrakan.

Murah dalam token

Untuk menggunakan kembali kunci, agen harus memuat file lokal ke dalam konteks pada setiap pengeditan. Muatan tanpa kunci tidak melakukan apa-apa: teks sudah ada di komponen.

Perbedaan yang terbaca

Permintaan tarik menunjukkan kalimat yang nyata. Manusia atau agen ulasan dapat menilai salinan tanpa menggali apa yang dimaksud oleh kunci.

Satu aturan di CLAUDE.md Anda

Setiap aturan i18n yang Anda tulis adalah aturan yang dapat dilanggar oleh agen. Aturan ini hanya membutuhkan satu baris — dan fallback adalah teks asli, sehingga kesalahan tidak akan menampilkan a.b.c di layar.

Satu-satunya aturan i18n yang dibutuhkan agen 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.

Agen Anda dapat mengoperasikannya, bukan hanya menulisnya

Melalui server MCP, agen mencantumkan terjemahan yang hilang, membaca satu, mengganti yang buruk, atau mengimpor salinan yang sudah Anda miliki — dengan login OAuth sendiri, tanpa perlu menempelkan kunci.

Baca panduan MCP
Sempurna untuk MVP

Luncurkan secara global sejak hari pertama

Berhentilah menunda i18n karena kompleksitas. Terapkan dalam 5 menit, bukan hari. Pertahankan kecepatan pengembangan Anda seolah-olah i18n tidak diimplementasikan.

  • Implementasi dalam 5 menit. Tidak bercanda.

    Satu objek konfigurasi sederhana dan Anda sudah selesai.

  • Pertahankan kecepatan pengembangan

    Kodekan seolah-olah i18n sama sekali tidak diimplementasikan.

  • Kirim ke pasar global

    Tidak perlu refaktorisasi saat Anda meningkatkan skala ke bahasa baru.

  • SSR & SEO siap

    Bekerja dengan Next.js, Remix, TanStack Start, dan Astro. Render server untuk mesin pencari dalam bahasa apa pun — pengaturan 5 menit yang sama.

Tradisional i18n

Sistem kunci setup (1 jam)
Buat file terjemahan (2 jam)
Refaktor komponen (4 jam)
Uji semua bahasa (2 jam)
Perbaiki masalah tata letak (3 jam)
12+ jam kerja

i18n-tanpa-kunci

Tambahkan paket (1 menit)
Konfigurasikan dengan kunci API (2 menit)
Bungkus komponen teks (2 menit)
5 menit kerja
Cara kerjanya

Tidak sulit untuk mengaturnya

Hanya objek konfigurasi paling sederhana dan Anda siap untuk go global.
Dan bahkan lebih, agen Anda akan mengaturnya untuk Anda.

1. Penyiapan Dasar

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 di 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 server (di sini Node.js; panggilan yang sama di 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 instalasi, API yang sama di mana saja

  • 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

Pengaturan cepat untuk masing-masing dua belas SDK

Bagaimana terjemahan bekerja

i18n-keyless adalah sebuah perpustakaan, dikombinasikan dengan layanan API, yang memungkinkan Anda menerjemahkan teks Anda tanpa perlu menggunakan kunci.

Jika terjemahan tidak ditemukan, akan dilakukan pengambilan asinkron ke API I18nKeyless untuk mendapatkan terjemahan melalui panggilan API AI.

Operasi ini biasanya dilakukan dalam mode pengembangan, saat Anda sedang coding. Jika Anda melewatkan satu, di produksi hanya pengguna pertama yang tidak memiliki terjemahan akan melihat gangguan, lalu akan segera tersedia untuk pengguna di seluruh dunia.

App Store & Google Play

Daftar toko Anda dalam setiap bahasa, pada setiap rilis

Setiap pembaruan berarti catatan rilis baru, deskripsi, dan kata kunci — untuk setiap bahasa, di kedua toko. Itulah yang menghalangi Anda untuk menambahkan bahasa. Bukan aplikasinya.

  • Catatan rilis untuk setiap bahasa, dalam satu panggilan

    Tulis sekali pembaruan. awaitForTranslation mengembalikannya dalam setiap bahasa yang Anda jual, dan konfigurasi toko Anda meneruskannya ke EAS atau fastlane.

  • 48 bahasa, dipetakan ke slot App Store

    pt-BR dan pt-PT adalah dua daftar; en-GB, en-AU, dan en-CA adalah tiga. toAppStoreLocale menempatkan setiap terjemahan di tempat yang tepat.

  • Perbaiki terjemahan buruk tanpa rilis

    Di aplikasi, satu override di dasbor aktif satu per satu — tidak ada build hotfix, tidak ada ulasan toko. Di daftar, jalankan ulang push.

  • Tidak dihargai per kata

    Penerjemah mengenakan biaya sekitar €0,10 per kata. 2.000 string dikalikan dengan 10 bahasa adalah anggaran yang tidak dimiliki oleh pengembang solo. Di sini kata-kata tidak dihitung.

Resep 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 file metadata fastlane untuk Google Play. Huruf besar bersifat anjuran: letakkan batasan dalam konteks dan periksa panjangnya sebelum Anda dorong.

Coba Sendiri

Kotak Pasir Interaktif

Lihat bagaimana i18n-keyless bekerja secara real-time

Buka proyek StackBlitz langsung yang dapat diedit untuk melihat terjemahan terpecahkan saat Anda mengetik.

Mengapa saya membangun ini

Saya selalu menunda internasionalisasi sampai klien saya menginginkannya begitu keras sehingga saya tidak punya pilihan. Saya benci membaca kode dengan kunci internasionalisasi di dalamnya, dan saya benci memelihara file JSON sama seperti melihat betapa mahalnya penyedia terjemahan internasionalisasi. Jadi saya harus membangun milik saya sendiri, dan SAYA SANGAT MENYUKAINYA. Semua aplikasi saya sekarang sudah internasionalisasi secara default.

AA

Arnaud Ambroselli

Pendiri i18n-keyless

Ingin menambahkan milikmu?

Kesaksian terhadap langganan gratis. Minta milik Anda!

Kirim kesaksian saya
Sebelum kamu bertanya

Pertanyaan yang sering diajukan

Apakah saya perlu mengelola berkas terjemahan?

Tidak. Tidak ada file JSON, tidak ada langkah ekstraksi kunci, dan tidak ada plugin build-time. Anda menulis kalimat Anda dalam bahasa sumber, SDK mengirimkannya ke API pada permintaan pertama, API menerjemahkannya dengan AI, dan setiap permintaan berikutnya dilayani dari cache. Kode Anda adalah satu-satunya sumber kebenaran.

Apa yang terjadi ketika saya mengubah teks sumber?

Teks sumber adalah kunci. Ubah dan Anda akan mendapatkan kunci baru dengan terjemahan AI yang segar. Kunci lama tidak lagi diminta, dan dasbor membersihkannya setelah 30 hari tidak digunakan. Memperbaiki kesalahan ketik juga sama: perbaiki di kode, deploy, dan teks baru akan diterjemahkan pada permintaan pertama.

Berapa harganya?

Mandiri: sepenuhnya gratis, proyek tak terbatas, tanpa langganan dan tanpa batas penggunaan — pasang gambar Docker, gunakan kunci AI Anda sendiri. Anda menyukainya? Beri saya tip! Ter-host: satu harga tetap per proyek per bulan, berdasarkan pengguna aktif bulanan — €4 hingga 1.000, €9 hingga 5.000, €29 hingga 50.000, €99 hingga 500.000 — ditagih bulanan, dapat dibatalkan kapan saja. Tidak ada penetapan harga per kursi, per kata, atau per string dalam kedua kasus.

Bisakah saya mengekspor terjemahan saya?

Ya. Dasbor memiliki tombol "Ekspor JSON" yang mengunduh setiap terjemahan di proyek Anda sebagai satu berkas JSON. Ekspor mencakup semua baris, bukan hanya yang digunakan dalam 30 hari terakhir, sehingga ini adalah cadangan lengkap. Tidak ada penguncian: data Anda selalu hanya satu klik saja.

Satu pemelihara: apa yang terjadi jika proyek berhenti?

SDK berada di bawah lisensi MIT dan tetap tersedia di npm, PyPI, RubyGems, dan registri lainnya. Server bersifat publik di bawah Lisensi Elastic 2.0 dan protokol di antara keduanya terdokumentasi, sehingga siapa pun dapat menjalankannya, mem-fork, atau menulis server terhadapnya. Terjemahan Anda tetap dalam satu ekspor JSON kapan saja. Jika layanan yang dihosting berhenti: aplikasi yang terpasang terus melayani terjemahan yang di-cache, klien baru kembali ke bahasa sumber, dan dengan mengarahkan SDK ke instans Anda sendiri dengan API_URL, semuanya dipulihkan. Yang akan Anda hilangkan adalah terjemahan AI dari string baru di i18n-keyless.com — bukan data atau aplikasi Anda.

Baca jawaban lengkapnya, dengan kode
Coba Sendiri

Tonton Demo

Tonton video singkat ini untuk melihat i18n-keyless dalam tindakan