th/translation-log-bundle
Logs every translation lookup in your Symfony app so you can spot missing keys, unused messages and other gaps in your translation files. Browse and filter the collected data from a simple backend interface to keep your locales clean and complete.
checkout.title) or silent English fallbacks, which reads as a broken product in localized markets. Any team shipping more than one locale has this defect class, and it is invisible without instrumentation. A miss log gives you a count, not an opinion.Adoption would require all of the following, which is unlikely to hold:
framework.translator.logging), which routes misses through the standard logger and makes this bundle largely redundant.Look elsewhere — or build — in essentially every other case:
To executives: "A tool exists for a genuine quality problem — users in localized markets seeing untranslated strings. However, it is a zero-adoption, unmaintained Symfony bundle that does not fit our Laravel stack. Recommendation: do not adopt. The useful capability can be replicated in one to two engineer-days and owned outright, which is cheaper than integrating, security-reviewing, and eventually forking an abandoned dependency. We keep the outcome — visibility into translation gaps — and drop the dependency risk."
To engineering: "The pattern is worth stealing even though the package is not: hook the translator's missing-key event (or decorate the translator), capture key, locale, route, and release, write to a dedicated async log channel, sample or dedupe to prevent log floods, log parameter names not values to stay PII-safe, and emit a weekly digest plus a launch-checklist query. Fail open — logging must never break a page render. Confirm first whether our framework version already logs misses via configuration — likely yes on Symfony, no on Laravel — so we do not rebuild something we get for free. Scope it as a small internal utility with tests and a named triage owner, not a vendor integration."
How can I help you explore Laravel packages today?