Find hardcoded strings in your Blade templates
Paste a Blade template or PHP snippet below. The scanner finds user-facing text that isn't going
through __(),
suggests a translation key for each string and generates a ready-to-paste lang file.
Nothing you paste is stored.
hardcoded found
| Line | Text | Type | Replace with |
|---|---|---|---|
Generated lang file (lang/en/messages.php)
This is the lite version. The full LangSyncer Code Scanner walks your whole repository, understands controllers and mail templates, batch-converts strings with review, and translates the new keys with one AI click.
See how the full scanner works →Frequently asked questions
What counts as a hardcoded string?
Any user-facing text rendered from your template instead of coming from a translation file: headings, paragraphs, button labels, and attributes such as placeholder, title and alt. Code that users never read — CSS classes, route names, log messages, HTML comments — is not flagged.
Is the code I paste stored anywhere?
No. The snippet is sent to the scanner, analysed in memory and returned with the findings. Nothing is written to a database or a log, and you do not need an account to use the tool.
How is this different from running the scanner on my whole project?
This page scans one snippet at a time so you can try the detection without installing anything. The LangSyncer Code Scanner runs over your entire codebase with `php artisan translator:scan`, scores every candidate by confidence, lets you approve or edit suggestions in a review queue, and then rewrites your source files to use __() for you.
How are the suggested translation keys generated?
The key is derived from the text itself and the element it sits in — a heading becomes a headings.* key, a button becomes an actions.* key, and so on. Inside the product you can additionally use AI suggestions, which produce semantic key names and turn dynamic values such as names or dates into :placeholders.
Does it handle Blade directives and PHP as well as HTML?
Yes. It reads text nodes and translatable attributes in Blade markup, plus string literals in plain PHP such as exception messages and validation strings. Text already wrapped in __() or @lang() is treated as done and skipped.
Other free tools
Untranslated Key Detector
Scan any website for leaked i18n keys: dot-notation identifiers, missing-translation markers and unrendered placeholders your users can see.
Pluralization Tester
Pick a language, type a number, see which CLDR plural category applies — live, via your browser's Intl.PluralRules.
AI Translation Cost Calculator
Keys × languages = quota units. Estimate the initial run and the monthly churn for your project.
Lang File Converters
Convert between Laravel PHP arrays, JSON, YAML and CSV — nesting, placeholders and plural pipes preserved.
Scan the whole repository, not one file
LangSyncer keeps your Laravel translations in one place: import your existing lang files, fill the gaps with AI, review them, and publish to a global CDN in seconds — no deploy, no pipeline.