Translator:availability() 静态方法
Translator
接口的 availability()
静态方法返回一个枚举值,该值指示对于给定的 Translator
配置,AI 模型是否可用。
语法
js
Translator.availability(options)
参数
options
-
一个指定
Translator
配置选项的对象。可能的值包括sourceLanguage
-
一个指定待翻译文本语言的字符串,应为有效的 BCP 47 语言标签。
targetLanguage
-
一个指定待翻译文本将翻译成何种语言的字符串,应为有效的 BCP 47 语言标签。
返回值
一个 Promise
,它会解析为一个枚举值,指示给定 Translator
配置是否可用(或将可用),或者在无法确定支持时返回 null
。
可能的值包括:
available
-
浏览器支持给定配置,并且可以立即使用。
downloadable
-
浏览器支持给定的配置,但需要先下载 AI 模型或模型的某些微调数据。
downloading
-
浏览器支持给定配置,但必须完成正在进行的下载才能继续。
-
浏览器不支持给定配置。如果指定的
sourceLanguage
和targetLanguage
相同,也会返回此值。
异常
InvalidStateError
DOMException
-
如果页面的
Document
尚未激活,则抛出此异常。 OperationError
DOMException
-
如果 AI 模型初始化因任何原因失败,则抛出此异常。
UnknownError
DOMException
-
如果
availability()
调用因任何其他原因失败,或因用户代理不愿披露的原因而失败,则抛出此异常。
如果方法的用法被 translator
Permissions-Policy
阻止,则 Promise 会以 unavailable
的值拒绝。
示例
基本的 availability()
用法
在以下代码片段中,我们首先使用 availability()
方法检查模型在两种语言之间进行翻译的可用性。
- 如果返回
unavailable
,我们会在控制台中打印一条适当的错误消息。 - 如果返回
available
,我们使用create()
方法创建一个翻译器,并将源语言和目标语言传递给它。所需的 AI 模型可用,因此我们可以立即使用它。 - 如果返回其他值(即
downloadable
或downloading
),我们运行相同的create()
方法调用,但这次我们包含一个monitor
,它会在每次downloadprogress
事件触发时记录模型下载的百分比。
js
async function getTranslator(languages) {
const availability = await Translator.availability(languages);
if (availability === "unavailable") {
console.log(
`Translation not supported; try a different language combination.`,
);
return undefined;
} else if (availability === "available") {
return await Translator.create(languages);
}
return await Translator.create({
...languages,
monitor(monitor) {
monitor.addEventListener("downloadprogress", (e) => {
console.log(`Downloaded ${Math.floor(e.loaded * 100)}%`);
});
},
});
}
const translator = await getTranslator({
sourceLanguage: "en",
targetLanguage: "ja",
});
检测语言支持
js
async function langSupport(source, target) {
const availability = await Translator.availability({
sourceLanguage: source,
targetLanguage: target,
});
return availability;
}
await langSupport("en", "fr");
await langSupport("en", "pt");
await langSupport("en", "zh");
规范
规范 |
---|
翻译器和语言检测器 API # dom-translator-availability |
浏览器兼容性
加载中…