Added
translation-handler:check— Scans backend PHP and frontend JS/TS source for translation usages (__(),trans(),trans_choice(),Lang::get(),@lang, andt()/i18next.t()) and reports keys referenced in code but not defined per locale. Returns a non-zero exit code when keys are missing, so it works as a CI gate. Supports--locale,--side,--show-keys, and--orphans. Defined keys are read from the chosen format and scoped to the configuredfileNames.check-translations-tool— MCP tool exposing the same check to AI agents via Laravel Boost. Returns a structured per-side, per-locale report withpassed/totalMissingand optional orphan keys.TranslationChecker— reusable class (andTranslationHandler::check()facade method) holding the source-scanning and missing/orphan logic shared by the command and the MCP tool.checkconfig entry — configurable scanpathsandextensionsper side. The keys ofcheckdefine the sides to scan (backend/frontendby default, renamable/extendable); the array structure is validated generically inTranslationOptions, and the command/tool derive the available sides from the config rather than a hard-coded list.- Per-side
patternsconfig — eachcheckside may declarepatterns.static/patterns.dynamicregexes to override the bundled extraction patterns without subclassing. Patterns are validated to be compilable regexes; when omitted, the built-in defaults are used. checkerClassconfig entry — for deeper customisation, swap in a subclass ofTranslationChecker.
Full Changelog: v2.3.0...v2.4.0