Is your site leaking translation keys?

When a key is missing, users see cart.checkout_button instead of "Proceed to checkout". Enter a URL and we'll crawl up to 5 pages of the site looking for leaked keys, missing-translation markers and unrendered placeholders.

Public pages only, up to 5 per scan. Nothing is stored. Scans are rate-limited per visitor.

Crawling pages and analyzing rendered text — this can take up to 30 seconds…

Scanned · AI review applied

What the detector looks for

  • Dot-notation keys rendered as visible text or attributes (messages.welcome)
  • Missing-translation markers printed by i18n libraries ("translation missing: es.cart.title")
  • Unrendered template syntax reaching the page ({{ username }})
  • Translation helper calls leaking as literal text (__('auth.failed'))
  • Whole elements containing only snake_case identifiers

Frequently asked questions

What does the detector actually check?

It fetches the page you give it and looks for signs that a translation never resolved: dot-notation identifiers rendered as visible text or attributes, missing-translation markers printed by i18n libraries, and unrendered template syntax that reached the HTML.

Can I scan a page behind a login?

No. The detector requests the URL as an anonymous visitor, so it only sees publicly reachable pages. For authenticated screens, scan your own codebase instead — leaked keys almost always come from a lang file that is missing an entry rather than from the template.

Why would a translation key show up on a live site?

Because the key exists in the code but not in the target language's file. Laravel renders the key itself when a translation is missing, so the user sees cart.checkout.title instead of text. It is invisible in your source language and easy to miss in the languages you do not read.

It found nothing — does that mean my translations are complete?

It means no leaked keys are visible on that one page. Coverage gaps on other pages, in emails, or in states you have to trigger by hand will not appear here. A full coverage report per language is the reliable way to answer that question.

Does it work on sites that are not built with Laravel?

Yes. The patterns it looks for are produced by most i18n libraries across frameworks, so the detector works on any server-rendered page. The fixes it links to are Laravel-specific, but the diagnosis is not.

Catch missing translations before your users do

A leaked key on a live page means a lang file is missing an entry. LangSyncer reports coverage per language, flags what's missing, translates the gaps with AI and publishes the fix without a deploy.

We use cookies to improve your experience and analyze site traffic. Cookie Policy

Cookie Preferences

Essential

Required for the site to work

Analytics

Help us improve the site

Marketing

Personalized ads and content