Language Detector API adalah API web sisi klien yang dirancang untuk mengidentifikasi bahasa string teks tertentu. Dengan melakukan deteksi secara lokal di browser, privasi pengguna akan meningkat dan kebutuhan akan library eksternal yang berat atau panggilan sisi server yang mahal akan berkurang.
Kasus Penggunaan Utama
- Persiapan Terjemahan: Mengidentifikasi bahasa sumber sebelum mengirim teks ke penerjemah.
- Keamanan & Pemfilteran: Memuat model tertentu untuk tugas seperti deteksi toksisitas.
- Aksesibilitas: Memberi label pada konten dengan atribut
langyang benar untuk pembaca layar. - Pelokalan UI: Menyesuaikan antarmuka aplikasi berdasarkan bahasa input pengguna.
Persyaratan Hardware & Sistem
- OS: Windows 10/11, macOS 13+, Linux, atau Chromebook Plus.
- Penyimpanan: Ruang kosong 22 GB (model akan dihapus jika ruang penyimpanan turun di bawah 10 GB).
- RAM/CPU: RAM 16 GB dan 4+ core CPU.
- VRAM: 4 GB+ jika menggunakan GPU.
Panduan Penerapan
1. Pengelolaan Model & Aktivasi Pengguna
Periksa ketersediaan model sebelum mencoba membuat instance detektor atau memicu download.
WAJIB: Membuat instance pendeteksi bahasa atau memicu download model dengan LanguageDetector.create() HARUS dimulai oleh gestur pengguna (seperti klik tombol) untuk mencegah NotAllowedError saat model dalam status downloadable atau downloading.
// Check if the model is available or downloadable
const availability = await LanguageDetector.availability();
if (availability !== 'unavailable') {
button.addEventListener('click', async () => {
const detector = await LanguageDetector.create({
monitor(m) {
m.addEventListener('downloadprogress', (e) => {
console.log(`Downloaded ${e.loaded * 100}%`);
});
},
});
});
}
2. Deteksi Berlari
API akan menampilkan daftar peringkat bahasa yang berpotensi dengan skor keyakinan antara 0.0 dan 1.0.
const someUserText = 'Hallo und herzlich willkommen!';
const results = await detector.detect(someUserText);
for (const result of results) {
// result.detectedLanguage (e.g., 'de')
// result.confidence (e.g., 0.999)
console.log(result.detectedLanguage, result.confidence);
}
Hindari penggunaan detektor pada frasa yang sangat pendek atau kata tunggal, karena akurasinya akan menurun secara signifikan.
Keamanan dan Lingkungan
Iframe: Iframe lintas origin memerlukan Kebijakan Izin eksplisit untuk mengakses API.
<iframe src="https://cross-origin.example.com/" allow="language-detector" ></iframe>Web Worker: API saat ini tidak tersedia di Web Worker karena kompleksitas Kebijakan Izin.
Privasi: Tidak ada data yang dikirim ke Google atau pihak ketiga selama proses deteksi.
Strategi Penggantian
Sebelum digunakan, periksa apakah objek LanguageDetector tersedia dalam cakupan global:
if ('LanguageDetector' in self) {
// The Language Detector API is supported.
} else {
// Execute fallback strategy
}
Jika LanguageDetector API tidak didukung atau pemeriksaan ketersediaan menampilkan 'unavailable', Anda harus melakukan penggantian dengan baik:
- Pengalihan ke Remote API: Mengalihkan permintaan deteksi ke endpoint server atau API cloud (seperti Vertex AI Gemini API) untuk mengidentifikasi bahasa.
- Degradasi Halus: Nonaktifkan elemen/tombol deteksi bahasa dan beri tahu pengguna bahwa deteksi sisi klien saat ini tidak didukung di browser ini, sehingga mencegah pengecualian atau error yang tidak tertangani.