web api static method
LanguageDetector: availability() static method
Limited availabilitySecure context
The availability() static method of the LanguageDetector interface returns an enumerated value that indicates whether the browser AI model supports a given LanguageDetector configuration.
Syntax
LanguageDetector.availability(options)
Parameters
options- : An object specifying configuration options for the
LanguageDetector. Possible values include:expectedInputLanguages- : An array of strings specifying the expected languages of the input text to have its language detected. These should be valid BCP 47 language tags. Defaults to
["en"]
- : An array of strings specifying the expected languages of the input text to have its language detected. These should be valid BCP 47 language tags. Defaults to
- : An object specifying configuration options for the
Return value
A Promise that fulfills with an enumerated value indicating whether support is available (or will be available) for a given LanguageDetector configuration, or null if support could not be determined.
Possible values include:
available- : The browser supports the given configuration and it can be used immediately.
downloadable- : The browser supports the given configuration, but it first needs to download an AI model, or some fine-tuning data for the model.
downloading- : The browser supports the given configuration, but it has to finish an ongoing download before it can proceed.
unavailable- : The browser does not support the given configuration, or the Language Detector API is blocked by a
language-detectorPermissions-Policy.
- : The browser does not support the given configuration, or the Language Detector API is blocked by a
Exceptions
InvalidStateErrorDOMException- : Thrown if the page’s
Documentis not yet active.
- : Thrown if the page’s
OperationErrorDOMException- : Thrown if initialization of the AI model failed for any reason.
UnknownErrorDOMException- : Thrown if the
availability()call failed for any other reason, or a reason the user agent did not wish to disclose.
- : Thrown if the
Examples
Basic availability() usage
In the following snippet, we start by checking the availability of the model for detecting a couple of languages using the availability() method:
- If it returns
unavailable, we print an appropriate error message to the console. - If it returns
available, we create a language detector using thecreate()method, passing it theexpectedInputLanguages. The required AI model is available, so we can use it immediately. - If it returns a different value (that is,
downloadableordownloading), we run the samecreate()method call, but this time we include amonitorthat logs the percentage of the model downloaded each time thedownloadprogressevent fires.
async function getDetector(languages) {
const availability = await LanguageDetector.availability({
expectedInputLanguages: languages,
});
if (availability === "unavailable") {
console.log(`Detection not supported; try a different set of languages.`);
return undefined;
} else if (availability === "available") {
return await LanguageDetector.create({
expectedInputLanguages: languages,
});
}
return await LanguageDetector.create({
expectedInputLanguages: languages,
monitor(monitor) {
monitor.addEventListener("downloadprogress", (e) => {
console.log(`Downloaded ${Math.floor(e.loaded * 100)}%`);
});
},
});
}
const detector = await getDetector(["en-US", "zh"]);
Detecting language support
async function langSupport(language) {
const availability = await LanguageDetector.availability({
expectedInputLanguages: [language],
});
return availability;
}
await langSupport("en");
await langSupport("pt");
await langSupport("zh");
Specifications
SpecificationsStandards references are available on the canonical MDN page.
Browser compatibility
Browser compatibilityCompatibility data is available on the canonical MDN page.