Multi-language 0/3 di HTML Catatan Instal Python
Cara Menambahkan Fitur Multi Bahasa di HTML
Gunakan data-i18n
untuk Menandai Elemen di html
Tandai elemen teks dengan atribut data-i18n
agar JavaScript bisa mengganti teks berdasarkan bahasa yang dipilih.
Alternatif untuk Proyek Lebih Kompleks:
- i18next (library JavaScript)
- react-i18next, Vue-i18n (untuk React/Vue)
- Rendering dari backend (PHP, Node.js, Python, dll.)
⚠️ HTML hanya menyimpan struktur, bukan logika pemilihan bahasa otomatis.
JavaScript dibutuhkan untuk mengganti bahasa saat runtime.
SEO & Aksesibilitas
Gunakan atribut lang
di tag HTML:
<html lang="id">
atau<html lang="en">
Jumlah bahasa yang didukung tidak terbatas selama menggunakan JavaScript dan struktur yang sesuai.
๐ Penjelasan:
- HTML mendukung semua bahasa jika menggunakan
<meta charset="UTF-8">
- Namun, tidak bisa mengganti bahasa otomatis tanpa JavaScript.
๐ Jumlah Bahasa Umum yang Digunakan
Jenis Proyek | Jumlah Bahasa Umum |
---|---|
Website lokal | 1–2 (contoh: Indonesia + Inggris) |
Website regional (Asia Tenggara) | 3–5 (ID, EN, MY, TH, VN) |
Website internasional | 5+ (EN, ES, FR, ZH, AR, RU, dll.) |
Proyek edukasi/global | Hingga 50–100 bahasa |
✅ 10 Bahasa Populer dan Kode ISO 639-1:
- Inggris:
en
(nama file:en.json
) - Indonesia:
id
(nama file:id.json
) - Mandarin (Cina):
zh
(nama file:zh.json
) - Arab:
ar
(nama file:ar.json
) - Spanyol:
es
(nama file:es.json
) - Prancis:
fr
(nama file:fr.json
) - Jepang:
ja
(nama file:ja.json
) - Jerman:
de
(nama file:de.json
) - Hindi:
hi
(nama file:hi.json
) - Rusia:
ru
(nama file:ru.json
)
๐ฅ Fitur Tambahan yang Bisa Ditambahkan:
- Auto-deteksi bahasa browser
- Fallback jika file JSON tidak ditemukan
- Mendukung banyak konten terjemahan
❗ Masalah Umum: fetch() Gagal di File Lokal
Alasan: CORS & keamanan di browser modern (Edge, Chrome, dll).
✅ Solusi:
1. Jalankan dengan Web Server Lokal
A. Pakai VS Code + Live Server
- Install VS Code & ekstensi Live Server
- Buka folder proyek
- Klik kanan
index.html
→ Open with Live Server
URL: http://127.0.0.1:5500/index.html
B. Pakai Python
๐ฆ Menjalankan HTML + fetch() JSON di Browser (Edge/Chrome) dengan Python
Untuk menjalankan file HTML yang menggunakan fetch("lang/en.json")
, kamu perlu menjalankan web server lokal. Cukup gunakan Python versi standar, tanpa modul tambahan, dan tidak perlu koneksi internet.
๐งพ Langkah Instalasi Python (Windows)
- Buka halaman resmi: https://www.python.org/downloads/
- ✅ Pilih: Latest Python 3 Release – Python 3.13.4
- ❌ Jangan pilih: Python install manager (masih beta, bukan Python utama)
- Jalankan installer dan centang dua opsi ini sebelum klik Install:
- ☑ Use admin privileges when installing py.exe (opsional tapi aman)
- ☑ Add python.exe to PATH ✅ WAJIB!
- Klik "Install Now"
๐ป Menjalankan Web Server Lokal
-
Buka Command Prompt:
- Tekan Windows + R
- Ketik
cmd
, lalu tekan Enter
-
Pindah ke drive D: (jika file proyek kamu ada di drive D):
D:
-
Masuk ke folder proyek bernama
10Bahasa
yang berisi fileindex.html
script.js
dan subfolderlang/
berisi file .json:cd D:\10Bahasa
-
Sekarang prompt kamu seharusnya tampil seperti ini:
D:\10Bahasa>
-
Jalankan web server Python:
python -m http.server 8000
- Jika muncul popup dari Windows untuk izin akses jaringan, klik “Allow” ✅
-
Jika berhasil, akan muncul pesan seperti ini:
Serving HTTP on :: port 8000 (http://[::]:8000/) ...
-
Buka browser (Chrome, Edge, dll), lalu masukkan salah satu URL berikut:
http://localhost:8000
Jika kamu pakai port berbeda, misalnya 8080, gunakan:
http://localhost:8080
- Enter, maka akan tampil nama file .html & .js
-
Terakhir, klik file
index.html
di daftar file browser untuk membuka halaman. Sekarangfetch()
JSON akan berfungsi normal!
๐ Struktur Folder
10Bahasa/ ├── index.html ← file utama HTML kamu ├── script.js ← file JavaScript untuk ganti bahasa └── lang/ ← folder berisi semua file bahasa ├── en.json ← bahasa Inggris └── id.json ← bahasa Indonesia
✅ Kenapa Ini Penting?
- fetch() tidak diizinkan memuat file lokal di browser seperti Chrome/Edge karena alasan keamanan (CORS)
- Dengan
http.server
, kamu membuat lingkungan web lokal yang sah - Lebih cepat daripada deploy ke internet, cocok untuk uji coba atau pengembangan offline
2. Hosting Online (GitHub Pages, Vercel, Netlify)
Unggah proyek kamu agar fetch() berjalan lancar di semua browser.
๐ซ Yang Tidak Bisa Dilakukan
- Buka langsung file
file:///C:/Users/.../index.html
→ ❌ fetch() gagal - Gunakan XMLHttpRequest → tetap gagal di mode
file://
๐ Kenapa Dibatasi?
Untuk mencegah akses sembarangan ke file lokal via JavaScript.
✅ Ringkasan
Cara Buka | fetch() JSON Berfungsi? |
---|---|
file:/// (klik langsung) | ❌ Tidak |
localhost dengan server | ✅ Ya |
Hosting online (GitHub Pages, dll) | ✅ Ya |
✅ Keunggulan Fitur Multi Bahasa
- 1 dropdown = 1 tombol pilih bahasa: Antarmuka lebih rapi dan sederhana untuk pengguna.
- Preferensi bahasa disimpan di
localStorage
: Bahasa akan otomatis dimuat ulang saat pengguna kembali membuka halaman. - Skalabilitas tinggi: Mudah dikembangkan menjadi 10, 20, atau bahkan lebih banyak bahasa tanpa ubah struktur utama.
Mau saya bantu setup server lokal atau deploy ke GitHub Pages langsung dari folder kamu? Tinggal bilang saja!
Comments
Post a Comment