Apa itu i18n & l10n? — i18n

Pernah pake aplikasi yang tampilan-nya cuma bahasa Inggris padahal target user-nya Indonesia? Atau lihat tanggal "04/16/2026" yang bikin bingung — ini April…

Pernah pake aplikasi yang tampilan-nya cuma bahasa Inggris padahal target user-nya Indonesia? Atau lihat tanggal "04/16/2026" yang bikin bingung — ini April 16 atau 4 Oktober? Itu sign aplikasi yang **gak siap untuk audience global**. i18n = arsitektur kode supaya gampang adaptasi ke bahasa/region berbeda. l10n = proses ngedaptasi-nya (terjemahan, format lokal). Tanpa ini, scaling ke 75% user internet non-Inggris jadi mimpi buruk.

💡 "i18n" itu numeronym — "i" + 18 huruf + "n" = "internationalization". Sama "l10n" = "l" + 10 huruf + "n" = "localization". "a11y" (accessibility), "k8s" (kubernetes) = pola nama serupa di tech. Hemat ngetik untuk istilah panjang.

Apa itu i18n & l10n?

Internationalization (i18n) adalah proses merancang dan membangun software agar mudah diadaptasi ke berbagai bahasa dan region — tanpa perlu mengubah source code. Angka 18 berasal dari jumlah huruf antara "i" dan "n" dalam kata "internationalization".

Localization (l10n) adalah proses mengadaptasi software untuk bahasa, budaya, atau region tertentu — termasuk menerjemahkan teks, menyesuaikan format tanggal, mata uang, dan aturan tata bahasa lokal.

Perbedaan i18n vs l10n

Aspeki18n (Internationalization)l10n (Localization)
FokusArsitektur & infrastrukturKonten & adaptasi
SiapaDeveloperTranslator / Lokalisator
KapanSaat developmentSetelah i18n siap
ContohExtract strings, Unicode supportTerjemahkan "Hello" → "Halo"

Kenapa i18n Penting?

Contoh Sederhana

// ❌ Hard-coded string — susah diterjemahkan
const message = "Selamat datang, " + user.name + "!";

// ✅ i18n-ready — string di-extract ke file terpisah
const message = t("welcome", { name: user.name });

// en.json: { "welcome": "Welcome, {{name}}!" }
// id.json: { "welcome": "Selamat datang, {{name}}!" }
// ja.json: { "welcome": "ようこそ、{{name}}さん!" }

Scope i18n

i18n bukan hanya soal terjemahan teks. Ini mencakup:

🎭 Analogi sehari-hari

i18n = desain rumah dengan colokan listrik standar internasional. Rumah-nya didesain supaya bisa nerima colokan dari negara apa saja (UK, EU, US, Asia). l10n = nyolokin colokan yang sesuai negara saat ditempatkan. Rumah didesain sekali (i18n), adaptasi per lokasi (l10n) gampang.

⚠️ Jebakan yang sering ditemui

TL;DR: i18n = arsitektur kode siap multi-bahasa (developer task). l10n = proses adaptasi (translator task). Bukan cuma teks — termasuk format tanggal/angka/mata uang, pluralization, arah teks (LTR/RTL). 75% user internet bukan English speaker. Library: i18next (JS), next-intl (Next.js), react-intl. Wajib untuk app dengan audience internasional.

Yang akan kamu pelajari