翻译者:measureInputUsage() 方法

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

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

Translator 接口的 measureInputUsage() 方法用于报告给定文本输入通过翻译操作会使用多少输入配额。

语法

js
measureInputUsage(input)
measureInputUsage(input, options)

参数

input

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

options 可选

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

signal

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

返回值

一个 Promise,它会以一个数字兑现,该数字指定给定输入文本的 inputQuota 用量。

这个数字取决于实现;如果它小于 inputQuota,则字符串可以被翻译。

异常

NotAllowedError DOMException

如果 translator Permissions-Policy 阻止了 Translator API 的使用,则抛出此错误。

NotReadableError DOMException

如果用户代理过滤了输出翻译,例如因为检测到其有害、不准确或无意义,则抛出此错误。

UnknownError DOMException

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

示例

检查配额是否足够

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

然后,我们测试该字符串的单个输入使用量是否大于总可用配额。如果是,则抛出相应的错误;如果不是,则使用 translate() 开始翻译字符串。

js
const translator = await Translator.create({
  sourceLanguage: "en",
  targetLanguage: "ja",
});

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

if (inputUsage > totalInputQuota) {
  throw new Error("Insufficient quota to translate.");
} else {
  console.log("Quota available to translate.");
  const translation = await translator.translate(myTextString);
  // ...
}

规范

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

浏览器兼容性

另见