| 1 | # Matriks Lokalisasi (Localization Matrix) |
| 2 | |
| 3 | Dokumen pelacakan kanonik untuk setiap bahasa yang didukung, sedang dibangun, direncanakan, atau ditunda oleh Codewhale. |
| 4 | |
| 5 | > **Catatan Cakupan (diperbarui 2026-07-29):** Matriks ini mencakup tiga permukaan utama — paket bahasa TUI (`crates/tui/locales/`), README terjemahan (root repositori), dan situs web (`web/`). Ketiganya rilis pada ritme yang berbeda, sehingga suatu bahasa bisa berstatus **shipped** di satu permukaan dan **planned** di permukaan lain. |
| 6 | |
| 7 | --- |
| 8 | |
| 9 | ## Keterangan Status |
| 10 | |
| 11 | | Status | Arti | |
| 12 | |--------|------| |
| 13 | | **shipped** | Aktif di codewhale.net dan/atau diterbitkan sebagai README mandiri / paket TUI | |
| 14 | | **partial** | Rilis tetapi belum mencakup seluruh bagian; dalam proses pengisian | |
| 15 | | **planned** | Diprioritaskan secara eksplisit untuk gelombang rilis berikutnya | |
| 16 | | **deferred** | Diakui tetapi belum dijadwalkan; memerlukan pengujian tata letak, dukungan jembatan, atau kontributor komunitas | |
| 17 | |
| 18 | --- |
| 19 | |
| 20 | ## Paket Bahasa TUI |
| 21 | |
| 22 | Paket TUI di bawah `crates/tui/locales/` adalah permukaan terjemahan terbesar di repositori. `en.json` adalah acuan utama; sebuah paket dianggap **lengkap** (complete) jika memiliki paritas kunci persis dengannya, yang ditegakkan oleh `scripts/check-tui-locale-parity.py` (CI) dan pengujian paritas di `crates/tui/src/localization.rs`. |
| 23 | |
| 24 | | Bahasa | Berkas | Kunci vs `en.json` (1248) | Status | Catatan | |
| 25 | |--------|------|--------------------------|--------|-------| |
| 26 | | Bahasa Inggris | `en.json` | 1248/1248 | **shipped** | Paket acuan utama. | |
| 27 | | Bahasa Indonesia | `id.json` | 1248/1248 | **shipped** | Lengkap (100% paritas kunci). | |
| 28 | | Bahasa Jepang | `ja.json` | 1248/1248 | **shipped** | Lengkap. | |
| 29 | | Bahasa Mandarin Sederhana | `zh-Hans.json` | 1248/1248 | **shipped** | Lengkap. | |
| 30 | | Bahasa Mandarin Tradisional | `zh-Hant.json` | 499/1248 | **partial** | Hanya inti pengaturan; kunci yang hilang menggunakan fallback Bahasa Inggris. | |
| 31 | | Bahasa Portugis Brasil | `pt-BR.json` | 1248/1248 | **shipped** | Lengkap. | |
| 32 | | Bahasa Spanyol Amerika Latin | `es-419.json` | 1248/1248 | **shipped** | Lengkap. | |
| 33 | | Bahasa Vietnam | `vi.json` | 1248/1248 | **shipped** | Lengkap. | |
| 34 | | Bahasa Korea | `ko.json` | 1248/1248 | **shipped** | Lengkap. | |
| 35 | | Bahasa Katalan | `ca.json` | 1248/1248 | **shipped** | Lengkap; menunggu tinjauan penutur asli. | |
| 36 | | Bahasa Jerman | `de.json` | 1248/1248 | **shipped** | Lengkap; menunggu tinjauan penutur asli. | |
| 37 | | Bahasa Prancis | `fr.json` | 1248/1248 | **shipped** | Lengkap; menunggu tinjauan penutur asli. | |
| 38 | | Bahasa Hindi | `hi.json` | 1248/1248 | **shipped** | Lengkap; QA visual terminal masih terbuka. | |
| 39 | | Bahasa Rusia | `ru.json` | 1248/1248 | **shipped** | Lengkap; menunggu tinjauan penutur asli. | |
| 40 | | Bahasa Ukraina | `uk.json` | 1248/1248 | **shipped** | Lengkap; menunggu tinjauan penutur asli. | |
| 41 | |
| 42 | --- |
| 43 | |
| 44 | ## README Terjemahan |
| 45 | |
| 46 | | Bahasa | Berkas | Status | Catatan | |
| 47 | |--------|------|--------|---------| |
| 48 | | Bahasa Inggris | `README.md` | **shipped** | Sumber utama kanonik | |
| 49 | | Bahasa Indonesia | `README.id.md` | **shipped** | Ditinjau per rilis (#4789) | |
| 50 | | Bahasa Mandarin Sederhana | `README.zh-CN.md` | **shipped** | Ditinjau per rilis | |
| 51 | | Bahasa Jepang | `README.ja-JP.md` | **shipped** | Ditinjau per rilis | |
| 52 | | Bahasa Vietnam | `README.vi.md` | **shipped** | Ditinjau per rilis | |
| 53 | | Bahasa Korea | `README.ko-KR.md` | **shipped** | Ditinjau per rilis | |
| 54 | | Bahasa Spanyol | `README.es-419.md` | **shipped** | Ditinjau per rilis | |
| 55 | | Bahasa Portugis Brasil | `README.pt-BR.md` | **shipped** | Ditinjau per rilis | |
| 56 | | Bahasa Rusia | `README.ru.md` | **shipped** | Ditinjau per rilis | |
| 57 | | Bahasa Ukraina | `README.uk.md` | **shipped** | Ditinjau per rilis | |
| 58 | |
| 59 | --- |
| 60 | |
| 61 | ## Cara Menambahkan Paket Bahasa Baru |
| 62 | |
| 63 | 1. **Paket TUI**: |
| 64 | - Buat berkas `crates/tui/locales/<tag>.json` berisi seluruh kunci di `en.json`. |
| 65 | - Tambahkan varian `Locale` pada `crates/tui/src/localization.rs` dan daftarkan di `config_ui.rs`. |
| 66 | - Jalankan `python3 scripts/check-tui-locale-parity.py` dan `cargo test -p codewhale-tui localization`. |
| 67 | |
| 68 | 2. **README**: |
| 69 | - Terjemahkan `README.md` menjadi `README.<tag>.md`. |
| 70 | - Perbarui stempel sumber sha256 dan jalankan `python3 scripts/check-readme-translations.py`. |
| 71 |