LanguageDetector: availability() 静态方法
LanguageDetector
接口的 availability()
静态方法返回一个枚举值,该值指示浏览器 AI 模型是否支持给定的 LanguageDetector
配置。
语法
js
LanguageDetector.availability(options)
参数
options
-
一个指定
LanguageDetector
配置选项的对象。可能的值包括expectedInputLanguages
-
一个字符串数组,指定要检测其语言的输入文本的预期语言。这些应该是有效的 BCP 47 语言标记。默认为
["en"]
返回值
一个 Promise
,该 Promise 会fulfilled(解析)为一个枚举值,指示对给定的 LanguageDetector
配置是否可用(或将可用)支持,如果无法确定支持,则为 null
。
可能的值包括:
available
-
浏览器支持给定的配置,并且可以立即使用。
downloadable
-
浏览器支持给定的配置,但需要先下载 AI 模型或模型的某些微调数据。
downloading
-
浏览器支持给定的配置,但必须先完成正在进行的下载才能继续。
-
浏览器不支持给定的配置。
异常
InvalidStateError
DOMException
-
如果页面的
Document
尚未激活,则抛出此异常。 OperationError
DOMException
-
如果 AI 模型初始化因任何原因失败,则抛出此错误。
UnknownError
DOMException
-
如果
availability()
调用因任何其他原因或用户代理不愿披露的原因而失败,则抛出此错误。
如果方法的用法被 language-detector
Permissions-Policy
阻止,则 Promise 会以 unavailable
的值被拒绝。
示例
基本的 availability()
用法
在以下代码片段中,我们首先使用 availability()
方法检查模型检测几种语言的可用性
- 如果返回
unavailable
,我们会向控制台打印一条适当的错误消息。 - 如果返回
available
,我们使用create()
方法创建一个语言检测器,并将expectedInputLanguages
传递给它。所需的 AI 模型可用,因此我们可以立即使用它。 - 如果返回不同的值(即
downloadable
或downloading
),我们运行相同的create()
方法调用,但这次我们包含一个monitor
,它会在每次触发downloadprogress
事件时记录模型下载的百分比。
js
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"]);
检测语言支持
js
async function langSupport(language) {
const availability = await LanguageDetector.availability({
expectedInputLanguages: [language],
});
return availability;
}
await langSupport("en");
await langSupport("pt");
await langSupport("zh");
规范
规范 |
---|
翻译器和语言检测器 API # dom-languagedetector-availability |
浏览器兼容性
加载中…