be-interactive/laravel-translation-scanner
Scan your Laravel app for translation keys used in Blade, PHP, and JavaScript, compare them against your language files, and quickly spot missing or unused translations to keep every locale in sync.
lang/ files, so a PM can quantify "how localized are we, really?" per locale and prioritize which languages/areas to close gaps in before a market launch.__(), @lang, trans() and friends — a deceptively fiddly parser problem that no product team should own.Adopt when:
lang/ conventions (PHP arrays and/or JSON files) and isn't planning to migrate to a hosted TMS-driven workflow in the next couple of quarters.Look elsewhere when:
Note on this release: v5.6.3 is a patch-level maintenance release with no changelog detail beyond a diff link. No breaking changes, deprecations, or new capabilities are indicated; nothing here changes the adoption calculus above. Validate the diff and confirm your pinned version's compatibility with your Laravel and PHP versions before upgrading, as with any patch.
For executives: We have a low-cost, low-risk way to stop shipping untranslated and mistranslated strings to non-English users. This package audits our Laravel codebase and tells us exactly which strings are missing per language and which are dead weight we're paying translators to maintain. That's a direct quality improvement in every non-English market and a line-item reduction in translation spend — with days, not weeks, of engineering effort and no new vendor contract.
For engineering: It's a mature, focused Laravel package that statically scans our Blade and PHP for translation keys and reconciles them against lang/. We wire one or two Artisan commands into CI and get a hard gate on missing keys plus a report of unused ones. It respects standard Laravel conventions — no runtime dependency, no changes to how translations are loaded, no lock-in. The current release is a patch with no breaking changes, so the integration cost is essentially the CI configuration plus an initial triage of whatever backlog of missing and orphaned keys it surfaces — which is exactly the debt we want visible.
Ask: approve a timeboxed spike (roughly one engineer-day) to add the scanner to CI in report-only mode, triage the first output, then decide whether to promote it to a blocking gate.
How can I help you explore Laravel packages today?