Rilevamento della lingua

Funzionalità web: Rilevatore di lingua

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 lang corretto 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:

  1. 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.
  2. 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.