LanguageDetector: measureInputUsage() 方法

实验性: 这是一项实验性技术
在生产中使用此技术之前,请仔细检查浏览器兼容性表格

安全上下文: 此功能仅在安全上下文(HTTPS)中可用,且支持此功能的浏览器数量有限。

LanguageDetector 接口的 measureInputUsage() 方法报告对给定文本输入执行语言检测操作将使用多少输入配额。

语法

js
measureInputUsage(input)
measureInputUsage(input, options)

参数

input

一个字符串,表示您想要为其输入使用情况进行测量的输入文本。

options 可选

一个对象,指定 measureInputUsage() 操作的配置选项。可能的值包括

signal

一个 AbortSignal 对象实例,它允许通过关联的 AbortController 中止 measureInputUsage() 操作。

返回值

一个 Promise,它会以一个指定给定输入文本的 inputQuota 使用量的数字来 fulfilled。

此数字依赖于实现;如果它小于 inputQuota,则可以检测该字符串的语言。

异常

NotAllowedError DOMException

如果 `LanguageDetector` API 的使用被 language-detector Permissions-Policy 阻止,则抛出此错误。

UnknownError DOMException

如果 measureInputUsage() 调用因任何其他原因失败,或用户代理不希望披露的原因而失败,则抛出此异常。

示例

检查配额是否足够

在下面的代码片段中,我们使用 create() 创建一个新的 `LanguageDetector` 实例,然后通过 inputQuota 返回总输入配额,并通过 `measureInputUsage()` 返回检测特定文本字符串语言的输入配额使用量。

然后,我们测试该字符串的单个输入使用量是否大于可用总配额。如果是,我们则抛出一个适当的错误;如果不是,我们则使用 detect() 开始检测该字符串的语言。

js
const detector = await LanguageDetector.create({
  expectedInputLanguages: ["en-US", "zh"],
});

const totalInputQuota = detector.inputQuota;
const inputUsage = await detector.measureInputUsage(myTextString);

if (inputUsage > totalInputQuota) {
  throw new Error("Insufficient quota to detect languages.");
} else {
  console.log("Quota available to detect languages.");
  const results = await detector.detect(myTextString);
  // ...
}

规范

规范
翻译器和语言检测器 API
# dom-languagedetector-measureinputusage

浏览器兼容性

另见