De Language Detector API is een web-API aan de clientzijde die is ontworpen om de taal van een bepaalde teksttekenreeks te identificeren. Door detectie lokaal in de browser uit te voeren, wordt de privacy van de gebruiker verbeterd en is er minder behoefte aan zware externe bibliotheken of kostbare aanroepen aan de serverzijde.
Belangrijke use cases
- Voorbereiding voor vertaling: De brontaal identificeren voordat je tekst naar een vertaler stuurt.
- Veiligheid en filtering: Specifieke modellen laden voor taken zoals de detectie van schadelijke content.
- Toegankelijkheid: Content labelen met het juiste
lang-kenmerk voor schermlezers. - Lokalisatie van de UI: De interfaces van apps aanpassen op basis van de invoertaal van de gebruiker.
Hardware- en systeemvereisten
- OS: Windows 10/11, macOS 13+, Linux of Chromebook Plus.
- Opslag: 22 GB vrije ruimte (het model wordt verwijderd als de ruimte onder de 10 GB komt).
- RAM/CPU: 16 GB RAM en 4+ CPU-kernen.
- VRAM: 4 GB+ als je een GPU gebruikt.
Implementatiehandleiding
1. Modelbeheer en gebruikersactivering
Controleer de beschikbaarheid van het model voordat je de detector probeert te instantiëren of de download probeert te activeren.
VERPLICHT: De taalherkenning instantiëren of een modeldownload activeren met LanguageDetector.create() MOET worden gestart door een gebruikersgebaar (zoals een knopklik) om een NotAllowedError te voorkomen wanneer het model de status downloadable of downloading heeft.
// 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. Hardloopdetectie
De API retourneert een gerangschikte lijst met mogelijke talen met een betrouwbaarheidsscore tussen 0.0 en 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);
}
Gebruik de detector niet voor zeer korte zinnen of losse woorden, omdat de nauwkeurigheid dan aanzienlijk afneemt.
Beveiliging en omgeving
Iframes: Cross-origin iframes vereisen een expliciet rechtenbeleid om toegang te krijgen tot de API.
<iframe src="https://cross-origin.example.com/" allow="language-detector" ></iframe>Web Workers: De API is momenteel niet beschikbaar in Web Workers vanwege de complexiteit van het rechtenbeleid.
Privacy: Tijdens het detectieproces worden er geen gegevens naar Google of derden gestuurd.
Reservestrategie
Check vóór gebruik of het LanguageDetector-object beschikbaar is in het algemene bereik:
if ('LanguageDetector' in self) {
// The Language Detector API is supported.
} else {
// Execute fallback strategy
}
Als de LanguageDetector API niet wordt ondersteund of als beschikbaarheidscontroles 'unavailable' retourneren, moet je op een elegante manier terugvallen:
- Externe API-fallback: Stuur het detectieverzoek door naar een servereindpunt of een cloud-API (zoals de Vertex AI Gemini API) om de taal te identificeren.
- Graceful degradation: Zet elementen/knoppen voor taaldetectie uit en laat de gebruiker weten dat detectie aan de clientzijde op dit moment niet wordt ondersteund in deze browser. Zo voorkom je onverwerkte uitzonderingen of crashes.