Weave Code
Code Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Intl Laravel Package

symfony/intl

Symfony Intl component provides access to ICU localization data in PHP: locales, languages, scripts, regions, currencies, and more. Includes tooling to compress bundled data (with zlib) for smaller installs and faster lookups.

View on GitHub
Deep Wiki
Context7

Provides access to the localization data of the ICU library

Frequently asked questions about Intl
How do I integrate Symfony Intl with Laravel’s trans() helper for dynamic locale formatting?
Replace or extend Laravel’s `trans()` by injecting Symfony Intl’s `NumberFormatter`, `DateFormatter`, or `MessageFormatter` into your service providers. For example, use `NumberFormatter::formatCurrency()` to replace hardcoded currency symbols. Cache formatted outputs in Redis for performance-critical paths.
Does Symfony Intl support Laravel’s Carbon for localized date/time formatting?
Yes. Use Carbon’s `setLocale()` alongside Symfony Intl’s `DateFormatter` to format dates regionally. For example, `Carbon::parse('2024-01-01')->setLocale('fr_FR')->format('d MMMM')` with Intl’s `DateFormatter` ensures consistency with ICU rules. Extend Carbon macros for reusable formatting.
What’s the best way to compress ICU data for production in Laravel?
Run `php vendor/symfony/intl/Resources/bin/compress` if zlib is enabled to reduce ICU data size by ~50%. Store the compressed file in `public/data/` and load it via `Intl::loadResourceBundle()` in your `AppServiceProvider`. This avoids bloating your Composer vendor directory.
Will Symfony Intl work with Laravel 10.x or 11.x, and what PHP versions are supported?
Symfony Intl v8.0+ requires PHP 8.4+. For Laravel 10.x/11.x, use the latest stable version (e.g., `symfony/intl:^8.0`). If stuck on PHP <8.4, pin to `symfony/intl:^7.4` for LTS support, but note missing features like named arguments.
How do I handle missing locales or edge cases like Thai/Burmese scripts in Laravel?
Symfony Intl relies on ICU’s built-in fallback chain. For missing locales, set a default (e.g., `en_US`) in `config/app.php`. Test RTL languages (Arabic/Hebrew) and complex scripts (Thai/Burmese) early—use `Intl::getErrorCode()` to debug issues. Extend Laravel’s `AppServiceProvider` to log warnings for unsupported locales.
Can I use Symfony Intl for region-specific validation (e.g., Japanese postal codes, EU VAT numbers)?
Yes. Create custom Laravel validator rules using Symfony Intl’s `Region` and `Currency` classes. For example, validate Japanese postal codes with regex from `Intl::getRegionBundle()->getRegionCode('JP')`. Combine with Laravel’s `Validator::extend()` for reusable rules.
What’s the difference between `symfony/intl` and `symfony/icu` for Laravel projects?
Symfony Intl provides **localization data** (locales, currencies, scripts) via ICU, while `symfony/icu` offers **full ICU APIs** (regex, break iteration, collation). For Laravel, use `symfony/intl` for formatting/validation—it’s lighter and integrates with trans(), Carbon, and Validator. Use `symfony/icu` only if you need advanced ICU features.
How do I cache formatted outputs (e.g., currencies, dates) in Laravel to avoid performance hits?
Cache formatted strings using Laravel’s cache system. For example, cache `NumberFormatter::formatCurrency()` results with a key like `currency_{locale}_{amount}`. Use `Cache::remember()` or Redis for high-throughput apps. Avoid caching user-specific data (e.g., dynamic user locales).
Does Symfony Intl support GDPR/CCPA compliance for locale preferences in Laravel?
Yes. Store user locale preferences in the database (e.g., `users.locale`) and use middleware to set Symfony Intl’s locale context. For GDPR, log locale changes with timestamps and allow users to export/export their preferences via Laravel’s `export()` methods.
What are the alternatives to Symfony Intl for Laravel, and when should I choose them?
Alternatives include `laravel-i18n` (simpler but less ICU-compliant) or `php-intl` (native PHP extension). Use Symfony Intl if you need **ICU accuracy** (e.g., financial apps, RTL languages) or **Symfony/Laravel synergy**. For lightweight projects, `laravel-i18n` suffices, but it lacks ICU’s edge-case handling.
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
hexters/coinpayment
rjcodes/rjcms
act-training/laravel-permissions-manager
alimarchal/laravel-chart-of-accounts
babenkoivan/elastic-scout-driver
mkwebdesign/filament-watchdog-v5
renatomarinho/laravel-page-speed
zedmagdy/filament-business-hours
renatovdemoura/blade-elements-ui
devgeek/beacon-admin
benjamin-rqt/data-watcher-bundle
atriumphp/atrium
sandermuller/package-boost-laravel
sandermuller/boost-skills
redaxo/core
yusufgenc/filament-api-forge
l3aro/rating-star-for-filament
leek/filament-subtenant-scope
anil/file-picker
broqit/fields-ai