Contact emails

[email protected]

Explainer

https://github.com/webmachinelearning/translation-api

Specification

https://webmachinelearning.github.io/translation-api/#language-detector-api

Summary

Exposes the LanguageDetector JavaScript Web API on Chrome for Android
(Clank). This allows web applications to detect text languages locally on
mobile devices using fast, privacy-preserving, and offline-capable
on-device machine learning models.

Blink component

Blink > AI > Translator & Language Detector
<https://issues.chromium.org/issues?q=customfield1222907:%22Blink%20%3E%20AI%20%3E%20Translator%20%26%20Language%20Detector%22>

Web Feature ID

languagedetector <https://webstatus.dev/features/languagedetector>

Motivation

Exposing the Language Detector API on Chrome for Android allows web
applications to perform fast, privacy-preserving, and offline-capable
language identification directly on-device.

Risks

Interoperability and Compatibility

Low. This brings Chrome for Android to parity with Chrome Desktop (shipped
in M138) using the exact same WebIDL surface and Blink implementation.
Microsoft Edge also supports the API
<https://learn.microsoft.com/en-us/microsoft-edge/web-platform/languagedetector-api>
with an independently-developed model and inference stack.

Gecko: Negative (https://github.com/mozilla/standards-positions/issues/1015)

WebKit: No signal (https://github.com/WebKit/standards-positions/issues/339)

Web developers: Positive

Usage & Momentum: The Language Detector API is one of the most widely used
Built-in AI APIs, often used prior to translation, summarization, or
content routing.

   -

   Since shipping on desktop in M138, LanguageDetector_Detect is called on
   ~0.23% of Chrome page loads
   
<https://chromestatus.com/metrics/feature/timeline/popularity/5403>—comparable
   to established APIs like navigator.canShare (~0.23%) and approaching the
   Badging API (~0.31%).
   -

   Received positive feedback in the WebML CG
   <https://github.com/webmachinelearning/translation-api/issues/36> and
   WICG <https://github.com/WICG/proposals/issues/147>.

Production Adoption: Telemetry and open-source codebases show active usage
across several areas:

   -

   E-Commerce & Enterprise: Used by large storefronts and merchant plugins
   to detect the language of user reviews, search queries, and seller content.
   It is also used in customer support and CRM tools (e.g., hospitality, real
   estate, and delivery dispatch) to help agents triage and reply to
   multilingual inquiries in real time.
   -

   Browser Extensions: Adopted by popular translation extensions to handle
   live chats, social feeds, and sites built on frameworks incompatible with
   Chrome's built-in page translation. Running detection on-device lets
   extensions identify languages per paragraph or comment without network
   latency or API costs, serving as a web-standard alternative to
   chrome.i18n.detectLanguage.
   -

   Open Source: Over 140 public references on GitHub (including SAP UI5,
   PWAFire, and Phanpy), typically used as a fast, zero-cost check before
   triggering heavier tasks.


Other signals:

Ergonomics

Inference is typically quite fast, and existing browser feature usage of
the same model and inference stack does not pose performance concerns on
mobile. Real-world telemetry shows developer inputs are heavily skewed
toward short strings (median ~12 characters), making inference lightweight
for mobile CPU and battery budgets. This API is frequently used in concert
with the Translator API, and work is in progress to bring the Translator
API to Android as well (https://chromestatus.com/feature/5106126157905920).

Activation

Developers can use LanguageDetector.availability() for feature detection
and fall back to cloud services or WebAssembly/WebGPU polyfills when
unavailable.

Security

No new security or privacy risks beyond Desktop (M138). Chrome for Android
reuses the existing TFLite model already loaded in renderer processes for
built-in page translation. Inference is stateless across calls and runs
entirely locally inside the sandboxed renderer process over a read-only
model file, so partial site isolation on Android does not introduce
cross-origin state leakage.

Mobile fit

   -

   Our telemetry shows that real-world developer queries are heavily
   concentrated on short strings (p50 median: ~12 characters, p75: ~28–37
   characters).
   -

   These input sizes are compatible with typical mobile web patterns:
   search queries, virtual keyboard inputs, live stream chat, and short
   messaging threads.
   -

   Built-in AI support for Android comes up regularly in our discussions
   with partners and the community, especially with regards to the Language
   Detector and Translator APIs.
   -

   While desktop users frequently rely on browser extensions for
   cross-lingual assistance, extension support is missing on many mobile
   browsers; exposing this API on Android is therefore critical in that it
   allows mobile web apps to deliver on-device linguistic accessibility at no
   extra cost.


WebView application risks

Does this intent deprecate or change behavior of existing APIs, such that
it has potentially high risk for Android WebView-based applications?

No. blink::features::kLanguageDetectionAPI is explicitly disabled in
Android WebView (aw_field_trials.cc) because WebView does not bundle or
fetch the Optimization Guide language detection model.

Debuggability

Standard DevTools JavaScript debugging suffices: developers can call and
inspect LanguageDetector.availability(), create(), detect(),
downloadprogress events, and DOMExceptions directly in the Console and
Sources panel, matching the Desktop launch.

Will this feature be supported on all six Blink platforms (Windows, Mac,
Linux, ChromeOS, Android, and Android WebView)?

No — Supported on Windows, Mac, Linux, ChromeOS (shipped in M138) and
Chrome for Android (shipping in M157). Not supported on Android WebView.

Is this feature fully tested by web-platform-tests
<https://chromium.googlesource.com/chromium/src/+/main/docs/testing/web_platform_tests.md>
?

Yes — Covered by existing WPTs under external/wpt/ai/language_detection/ as
well as cross-platform LanguageDetectionModelServiceBrowserTest.

Finch feature name

LanguageDetectionAPI

Rollout plan

Will ship enabled for all users

Requires code in //chrome?

Yes, //chrome/browser/language_detection/ wires
ChromeContentBrowserClient::BindLanguageDetectionDriver and
OptimizationGuideKeyedService to deliver the language detection model to
the renderer.

Tracking bug

https://crbug.com/549896512

Launch bug

https://launch.corp.google.com/launch/4508966

Measurement

WebFeature::kLanguageDetector_Create,
WebFeature::kLanguageDetector_Availability,
WebFeature::kLanguageDetector_Detect,
AI.LanguageDetector.AvailabilityV2,
AI.Session.LanguageDetector.PromptResponseStatus,
AI.Session.LanguageDetector.ResponseCompleteTime,
AI.Session.LanguageDetector.PromptRequestSize

Availability expectation

Available in Chrome on Desktop (M138+) and Chrome for Android (M157+).

Adoption plan

Update Chrome developer documentation (
https://developer.chrome.com/docs/ai/language-detection) and MDN browser
compatibility data to reflect Chrome for Android support in M157.

Non-OSS dependencies

This feature depends on a language detection model provided to the
open-source implementation via //components/optimization_guide.

Estimated milestones

Platform

Milestone

Shipping on Android

157

Anticipated spec changes

None

Link to entry on the Chrome Platform Status

https://chromestatus.com/feature/5087964794322944

Links to previous Intent discussions

Intent to Prototype (Android):
https://groups.google.com/a/chromium.org/g/blink-dev/c/saJHYqHHPSY

Intent to Ship (Desktop M138):
https://groups.google.com/a/chromium.org/g/blink-dev/c/sWcHBe9wpbo

-- 
You received this message because you are subscribed to the Google Groups 
"blink-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion visit 
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CANA9qLJXBxFgrd_Mw%3Dy1EyjcBzafkNpkU5d%3DuhHQ44vOXeaieA%40mail.gmail.com.

Reply via email to