Chrome's Translator API: Add Free, Private Translation to Your Extension

AppBooster Team · · 5 min read
Globe with digital connections representing language translation

The Chrome Translator API is a game-changer for extension developers. Shipping in Chrome 138, this built-in, on-device AI translation engine powered by Gemini Nano lets you add translation to any extension — no API keys, no per-request costs, no data leaving the user’s device.

If you build extensions for a global audience, the Chrome Translator API is the most impactful browser API released in years.


Why the Chrome Translator API Matters for Extension Developers

Most extensions that need translation today rely on Google Translate API, DeepL, or similar services. That means:

  • API costs that scale with usage
  • Privacy concerns — user text sent to third-party servers
  • Network dependency — no internet, no translation
  • Rate limits that break UX at scale

The Chrome Translator API eliminates all four. Translation runs locally on the user’s machine using Chrome’s built-in AI model. Your extension gets free, private, offline-capable translation out of the box.


Quick Start: 5 Minutes to Translation

1. Check Availability

if ('Translator' in self) {
  // API available — Chrome 138+
}

2. Create a Translator Instance

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

3. Translate Text

const result = await translator.translate('Hello, world!');
console.log(result); // "こんにちは、世界!"

That’s it. Three steps. No credentials, no billing dashboard, no SDK to install.


Handling Model Downloads

The translation model needs to download before first use (~varies by language pair). Handle this gracefully:

const translator = await Translator.create({
  sourceLanguage: 'en',
  targetLanguage: 'fr',
  monitor(m) {
    m.addEventListener('downloadprogress', (e) => {
      console.log(`Download: ${Math.round(e.loaded * 100)}%`);
    });
  },
});

Pro tip: Check language pair availability before showing translation UI:

const canTranslate = await Translator.availability({
  sourceLanguage: 'en',
  targetLanguage: 'de',
});
// Returns: 'available', 'downloadable', or 'unavailable'

Streaming Translation for Long Content

For longer texts — articles, emails, documentation — use streaming to show results progressively:

const stream = translator.translateStreaming(longArticleText);
let translated = '';

for await (const chunk of stream) {
  translated = chunk; // Each chunk contains full translation so far
  updateUI(translated);
}

This keeps your extension responsive. Users see translation progress instead of staring at a spinner.


Real Extension Use Cases

Here’s where this API shines for extension developers:

Use CaseBefore (External API)After (Translator API)
Review translator$20+/mo API costsFree
Email composerPrivacy policy headachesZero data transmitted
Content readerFails offlineWorks anywhere
Social media toolRate-limited at scaleNo limits
Accessibility helperComplex OAuth setupZero config

Example: Translate Selected Text

A common extension pattern — user selects text, extension translates it:

// content-script.js
document.addEventListener('mouseup', async () => {
  const selected = window.getSelection().toString().trim();
  if (!selected || !('Translator' in self)) return;

  const translator = await Translator.create({
    sourceLanguage: 'en',
    targetLanguage: navigator.language.split('-')[0],
  });

  const translated = await translator.translate(selected);
  showTooltip(translated);
});

Requirements and Limitations

Be transparent with your users about system requirements:

  • Chrome 138+ (desktop only — Windows, macOS, Linux, ChromeOS)
  • Hardware: 4GB+ VRAM (GPU) or 16GB+ RAM with 4+ CPU cores
  • Storage: Initial model download requires unmetered connection
  • 50+ languages supported via BCP 47 codes
  • Not available in Web Workers or on mobile (yet)

Graceful Fallback Pattern

Always include a fallback for unsupported browsers:

async function translateText(text, targetLang) {
  if ('Translator' in self) {
    const availability = await Translator.availability({
      sourceLanguage: 'en',
      targetLanguage: targetLang,
    });

    if (availability !== 'unavailable') {
      const translator = await Translator.create({
        sourceLanguage: 'en',
        targetLanguage: targetLang,
      });
      return translator.translate(text);
    }
  }

  // Fallback to your existing translation service
  return fallbackTranslate(text, targetLang);
}

SEO Impact: Why Multilingual Extensions Win

Extensions that support multiple languages see measurably better outcomes:

  • Broader reach: 75% of internet users don’t speak English natively
  • Higher ratings: Localized extensions average 0.3–0.5 stars higher on Chrome Web Store
  • More installs: Multilingual listings appear in more regional search results
  • Better retention: Users stay longer when the experience speaks their language

The Translator API makes it trivial to add this capability. No translation budget. No managing language files. Real-time, on-demand translation powered by Chrome itself.


What’s Next

The Translator API is part of Chrome’s broader Built-in AI initiative, being standardized through the W3C WebML Working Group. Expect:

  • Mobile support in future Chrome releases
  • More language pairs
  • Other browsers adopting the standard
  • Integration with the Language Detector API for auto-detection

Start building now. Extensions that adopt the Chrome Translator API early will have a competitive edge as browser AI becomes the norm. If you’re new to extension development, check out our Chrome extension development fundamentals guide. Already building? Make sure your listing is optimized with our Chrome Web Store listing optimization guide.


Get More Installs for Your Extension

Building a great extension is step one. Getting it discovered is step two. AppBooster helps Chrome extension developers grow through peer reviews, visibility tools, and a community of builders. Get started free →

Share this article

Build better extensions with free tools

Icon generator, MV3 converter, review exporter, and more — no signup needed.

Related Articles