mlocati/concrete5-translation-library
A PHP library for managing Concrete CMS (concrete5) translations: extract translatable strings from core and package source code, build and update translation dictionaries, and generate the .mo files needed to localize sites and add-ons.
Consider adoption when:
Translator abstraction so a future move to Symfony Translation, Laravel's localizer, or gettext is a swap, not a rewrite.Look elsewhere when:
lang files, @lang, pluralization helpers) already covers this, and adding a second translation system creates two sources of truth. Treat this package as a replacement for the framework layer only if you have a concrete reason to bypass it.For executives: This is a small, low-cost open-source PHP component for translating user-facing text. The new release modernizes its baseline — it now requires PHP 7.2 instead of 5.3, which matches where most of our estate already sits — and adds optional support for Twig templates, so it works with more of the templating setups our customers and partners use. It reduces the amount of translation plumbing we'd otherwise build ourselves, and its limited scope keeps switching costs low. The main caveat is that it's community-maintained and not a full localization platform: no translator workflows, no advanced locale rules. Recommendation: adopt as an internal utility where we need simple message lookup, wrap it behind our own interface, and treat the PHP 7.2 floor as confirmation of — or a prompt for — our runtime baseline decision.
For engineering: Minimal dependency footprint, straightforward API, swappable translation sources. 1.11.0 is effectively two changes: a breaking runtime requirement (PHP ≥ 7.2) and an additive, optional Twig integration. Nothing else in the public surface is signposted as changed, so the upgrade risk is concentrated entirely in the PHP version — verify CI matrices drop 5.x–7.1 before bumping, and confirm the Twig adapter is opt-in (no new hard dependency). We should consume it through a thin internal adapter so the choice stays reversible.
How can I help you explore Laravel packages today?