L'API Language Detector è un'API web lato client progettata per identificare la lingua di una determinata stringa di testo. Eseguendo il rilevamento localmente nel browser, migliora la privacy dell'utente e riduce la necessità di librerie esterne pesanti o di costose chiamate lato server.
Casi d'uso principali
- Preparazione alla traduzione: identificazione della lingua di origine prima di inviare il testo a un traduttore.
- Sicurezza e filtri: caricamento di modelli specifici per attività come il rilevamento della tossicità.
- Accessibilità: etichettatura dei contenuti con l'attributo
langcorretto per gli screen reader. - Localizzazione dell'interfaccia utente: regolazione delle interfacce delle applicazioni in base alla lingua di input dell'utente.
Requisiti hardware e di sistema
- Sistema operativo: Windows 10/11, macOS 13 o versioni successive, Linux o Chromebook Plus.
- Spazio di archiviazione: 22 GB di spazio libero (il modello viene rimosso se lo spazio scende al di sotto di 10 GB).
- RAM/CPU: 16 GB di RAM e almeno 4 core della CPU.
- VRAM: almeno 4 GB se utilizzi una GPU.
Guida all'implementazione
1. Gestione dei modelli e attivazione degli utenti
Controlla la disponibilità del modello prima di tentare di creare un'istanza del rilevatore o di attivare il download.
OBBLIGATORIO: l'inizializzazione del rilevatore di lingua o l'attivazione del download di un modello con LanguageDetector.create() DEVE essere avviata da un'attivazione dall'utente (ad esempio un clic su un pulsante) per evitare un NotAllowedError quando il modello è in stato downloadable o 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. Rilevamento corsa
L'API restituisce un elenco classificato di potenziali lingue con un punteggio di affidabilità compreso tra 0.0 e 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);
}
Evita di utilizzare il rilevatore su frasi molto brevi o singole parole, poiché l'accuratezza diminuisce in modo significativo.
Sicurezza e ambiente
Iframe: gli iframe multiorigine richiedono una policy sulle autorizzazioni esplicita per accedere all'API.
<iframe src="https://cross-origin.example.com/" allow="language-detector" ></iframe>Web worker: l'API non è attualmente disponibile nei web worker a causa delle complessità delle policy relative alle autorizzazioni.
Privacy: durante il processo di rilevamento, non vengono inviati dati a Google o a terze parti.
Strategia di riserva
Prima dell'uso, verifica se l'oggetto LanguageDetector è disponibile nell'ambito globale:
if ('LanguageDetector' in self) {
// The Language Detector API is supported.
} else {
// Execute fallback strategy
}
Se l'API LanguageDetector non è supportata o i controlli di disponibilità restituiscono 'unavailable', devi eseguire un graceful fallback:
- Fallback API remota: reindirizza la richiesta di rilevamento a un endpoint server o a un'API cloud (come l'API Vertex AI Gemini) per identificare la lingua.
- Riduzione controllata: disattiva gli elementi/pulsanti di rilevamento della lingua e informa l'utente che il rilevamento lato client non è attualmente supportato in questo browser, evitando eccezioni o arresti anomali non gestiti.