propaganistas/laravel-intl
Laravel Intl adds convenient internationalization helpers to Laravel: format numbers, currencies, percentages, dates and phone numbers using the intl extension, with Blade directives, validation rules and locale-aware formatting throughout your app.
ext-intl (ICU) and libphonenumber, instead of a bespoke NumberFormatter helper set.Intl::currency()/Intl::number() for display, with correct grouping and symbol placement per locale.Intl::phoneNumber() for parsing, formatting, and validating numbers against a region.ext-intl being present in every runtime (local, CI, containers, serverless). That is a platform decision, not just a library choice.Adopt when:
ext-intl is already available or trivially installable in your deployment targets.Look elsewhere or build thin yourself when:
brick/money, moneyphp/money) and treat this package as display-only.libphonenumber-for-php directly is a smaller surface.ext-intl painful (some minimal container images, certain serverless builds), or you have hard dependency-governance requirements. Verify maintenance activity, release cadence, and issue responsiveness directly — the supplied metadata shows no stars or dependents, and a lightly-adopted, single-maintainer wrapper is a real sustainability consideration for a long-lived product surface.For executives (one paragraph): Localizing for a new market usually means re-doing how prices, numbers, dates, and phone numbers are displayed. Getting that wrong is cheap to ship and expensive to fix — mistyped prices and rejected phone numbers show up directly in conversion. This package lets the team deliver those conventions using the same standards-based formatting engine that browsers and operating systems use, instead of writing and maintaining custom formatting code. The cost is one small dependency and a runtime requirement (ext-intl) our platform team should confirm. It is a low-cost enabler for market expansion, not a differentiator on its own — the decision is really "are we localizing this quarter, and do we want this to be a two-day task or a two-week one."
For engineering (summary): A Laravel facade over ext-intl/ICU plus libphonenumber, offering number, currency, percentage, ordinal, spellout, country-name, and phone-number formatting. It removes hand-rolled formatters and their test suites from our codebase. Integration is small: composer require, confirm ext-intl in every environment, pin the version, and add snapshot tests for our target locales. Guardrails to agree up front: use it for display only, never for money arithmetic or persistence; keep one formatting layer per surface (don't mirror this in the frontend); and check ICU version parity between dev, CI, and production, since output can differ across ICU releases. We should also do a short health check on the upstream project — activity, open issues, and release history — before treating it as long-term infrastructure, and be prepared to fall back on direct NumberFormatter/IntlDateFormatter calls if it stalls, which is a contained migration because the API is thin.
How can I help you explore Laravel packages today?