docs.rodeo

MDN Web Docs mirror

Translator and Language Detector APIs

{{DefaultAPISidebar("Translator and Language Detector APIs")}} {{SeeCompatTable}} {{securecontext_header}} 

The Translator and Language Detector APIs provide functionality to detect the language that text is written in, and to translate text into different languages, via a browser’s own internal AI model (which may differ between browsers).

Concepts and usage

Translating a body of text is a common task on today’s web. Typical use cases include:

Detecting the language of a body of test is an important precursor for successful automated translation, but has other uses beyond direct translation. For example, it allows automatic UI configuration based on user text entry, ranging from updating UI and error strings, to automatically loading appropriate dictionaries for spell checking or curse word detection.

AI is well-suited to facilitating language detection and translation. The Translator and Language Detector APIs provide asynchronous ({{jsxref("Promise")}} -based) mechanisms for a website to detect languages and translate text via the browser’s own internal AI model. This is useful and efficient because the browser handles the service, rather than the developer having to rely on the user downloading AI models, or host or pay for a cloud-based translation service.

You can cancel a pending create(), detect(), or translate() operation using an {{domxref("AbortController")}} .

After a LanguageDetector or Translator instance has been created, you can release its assigned resources and stop any further activity by calling its {{domxref("LanguageDetector.destroy()")}} /{{domxref("Translator.destroy()")}}  method. You are encouraged to do this after you’ve finished with the object as it can consume a lot of resources.

See Using the Translator and Language Detector APIs for a walkthrough of how to use the APIs.

Interfaces

HTTP headers

Security considerations

Creation of LanguageDetector and Translator objects requires that the user has recently interacted with the page (transient user activation is required).

Access to the API is also controlled via {{httpheader("Permissions-Policy/language-detector", "language-detector")}}  and {{httpheader("Permissions-Policy/translator", "translator")}}  {{httpheader("Permissions-Policy")}}  directives.

Examples

For a full example, see Using the Translator and Language Detector APIs.

Specifications

{{Specifications}} 

Browser compatibility

{{Compat}} 

See also

In this article

View on MDN