PHPackages                             senseexception/intl-bundle - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Localization &amp; i18n](/categories/localization)
4. /
5. senseexception/intl-bundle

ActiveSymfony-bundle[Localization &amp; i18n](/categories/localization)

senseexception/intl-bundle
==========================

Improved and simple Intl implementations for Symfony

1.2.0(4mo ago)02MITPHPPHP ^8.2CI passing

Since Apr 27Pushed 1mo ago1 watchersCompare

[ Source](https://github.com/SenseException/IntlBundle)[ Packagist](https://packagist.org/packages/senseexception/intl-bundle)[ RSS](/packages/senseexception-intl-bundle/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (1)Dependencies (14)Versions (5)Used By (0)

IntlBundle
==========

[](#intlbundle)

Improved and simple Intl implementations for Symfony.

[![Latest Stable Version](https://camo.githubusercontent.com/09143f8e58e324ae441e30966e16142f671c5773401c76f16284e257e905630b/687474703a2f2f706f7365722e707567782e6f72672f73656e7365657863657074696f6e2f696e746c2d62756e646c652f76)](https://packagist.org/packages/senseexception/intl-bundle)[![PHP from Packagist](https://camo.githubusercontent.com/3fb8291fdbbf84c10848babde5dea05c1dbe351ca266fec74590b95d699d2995/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f7068702d762f73656e7365657863657074696f6e2f696e746c2d62756e646c652e737667)](https://packagist.org/packages/senseexception/intl-bundle)[![Tests](https://github.com/SenseException/IntlBundle/actions/workflows/tests.yml/badge.svg)](https://github.com/SenseException/IntlBundle/actions/workflows/tests.yml)[![Static Analysis](https://github.com/SenseException/IntlBundle/actions/workflows/static-analysis.yml/badge.svg)](https://github.com/SenseException/IntlBundle/actions/workflows/static-analysis.yml)[![License](https://camo.githubusercontent.com/0c9d3ab757f722ebd5d0d987ba5b8710b85529b8e3b12da80ee9bb79721f9a6d/687474703a2f2f706f7365722e707567782e6f72672f73656e7365657863657074696f6e2f696e746c2d62756e646c652f6c6963656e7365)](https://packagist.org/packages/senseexception/intl-bundle)

Installation
------------

[](#installation)

You can install it with [Composer](https://getcomposer.org/).

```
composer require senseexception/intl-bundle

```

If the composer installation with symfony/flex didn't already register the bundle, you need to register it into your bundles.php manually:

```
return [
    // ...
    Budgegeria\Bundle\IntlBundle\BudgegeriaIntlBundle::class => ['all' => true],
    // ...
];
```

Configuration
-------------

[](#configuration)

By default a configuration doesn't need to be added if the needed locale is `en_US` and `USD` the currency. For any other locale or currency you can add the following configuration to your project and configure the needed locale and currency values:

```
budgegeria_intl:
  locale: 'de_DE'
  currency: 'EUR'
```

Usage
-----

[](#usage)

### Formatter

[](#formatter)

The [formatter](https://senseexception.github.io/intl-format/#predefined-formats) can be used in two different ways: With a filter and a function

#### Filters

[](#filters)

Internationalization text formatting:

```
{{ "This is the %ordinal time that the number %integer appears"|intl_format(4, 6000) }}
{# This is the 4th time that the number 6.000 appears #}
```

#### Functions

[](#functions)

Internationalization text formatting:

```
{{ intl_format("This is the %ordinal time that the number %integer appears", 4, 6000) }}
{# This is the 4th time that the number 6.000 appears #}
```

Currency symbol of configured locale:

```
{{ currency_symbol() }}
{# € #}
```

### Sorter

[](#sorter)

Example for configuring a sorter:

```
budgegeria_intl:
  locale: 'de_DE'
  currency: 'EUR'
  sorter:
    sorter_wo_locale:
      order_by_desc: ~
    my_sorter:
      order_by_desc: ~
      locale: 'de_DE'
```

`my_sorter` and `sorter_wo_locale` are free choosable keys that will be used to create new service ids `budgegeria_intl_bundle.sorter.my_sorter` and `budgegeria_intl_bundle.sorter.sorter_wo_locale` which can be used as dependencies.

```
class Foo
{
    /**
     * Injecting services "budgegeria_intl_bundle.sorter.my_sorter" or
     * "budgegeria_intl_bundle.sorter.sorter_wo_locale"
     */
    public function __construct(private Budgegeria\IntlSort\Sorter\Sorter $sorter)
    {
    }

    public function bar(): void
    {
        $sortedArray = $this->sorter->sort(['a', 'y', 'ä']);
    }
}
```

If a local is omitted like in `budgegeria_intl_bundle.sorter.sorter_wo_locale`, it uses the default locale set in the bundles configuration.

```
budgegeria_intl:
  locale: 'de_DE'
```

#### Available Configurations

[](#available-configurations)

Available are the method names of the `Budgegeria\IntlSort\Sorter\Sorter` class as underscore values.

- enable\_french\_collation
- disable\_french\_collation
- lower\_case\_first
- upper\_case\_first
- remove\_case\_first
- enable\_normalization\_mode
- disable\_normalization\_mode
- enable\_numeric\_collation
- disable\_numeric\_collation
- enable\_case\_level
- disable\_case\_level
- non\_ignorable\_alternate\_handling
- shifted\_alternate\_handling
- primary\_strength
- secondary\_strength
- tertiary\_strength
- quaternary\_strength
- identical\_strength
- keep\_keys
- omit\_keys
- order\_by\_asc
- order\_by\_desc
- order\_by\_keys
- order\_by\_values
- null\_first
- null\_last
- remove\_null\_position

It's possible that you're using an older version of Intl-Sort where methods didn't existed yet. Read more about the methods in the [Sorter documentation](https://senseexception.github.io/intl-sort/sorter-builder.html).

###  Health Score

42

—

FairBetter than 90% of packages

Maintenance83

Actively maintained with recent releases

Popularity2

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity64

Established project with proven stability

 Bus Factor1

Top contributor holds 95.8% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~672 days

Total

3

Last Release

136d ago

PHP version history (3 changes)1.0.0PHP ^8.0

1.1.0PHP ^8.1

1.2.0PHP ^8.2

### Community

Maintainers

![](https://www.gravatar.com/avatar/1313ebcff68bc6cca3b8a1921c3ba13f83351212f707c15a5506880371371c47?d=identicon)[SenseException](/maintainers/SenseException)

---

Top Contributors

[![SenseException](https://avatars.githubusercontent.com/u/859964?v=4)](https://github.com/SenseException "SenseException (137 commits)")[![dependabot[bot]](https://avatars.githubusercontent.com/in/29110?v=4)](https://github.com/dependabot[bot] "dependabot[bot] (6 commits)")

---

Tags

formattersymfonybundleintlinternationalizationi18nicusortmessagessprintfCollator

###  Code Quality

TestsPHPUnit

Static AnalysisPHPStan

Code StylePHP\_CodeSniffer

Type Coverage Yes

### Embed Badge

![Health badge](/badges/senseexception-intl-bundle/health.svg)

```
[![Health](https://phpackages.com/badges/senseexception-intl-bundle/health.svg)](https://phpackages.com/packages/senseexception-intl-bundle)
```

###  Alternatives

[sulu/sulu

Core framework that implements the functionality of the Sulu content management system

1.3k1.3M152](/packages/sulu-sulu)[a2lix/translation-form-bundle

Translate your doctrine objects easily with some helpers

3376.9M38](/packages/a2lix-translation-form-bundle)[pentatrion/vite-bundle

Vite integration for your Symfony app

2725.3M13](/packages/pentatrion-vite-bundle)[scheb/2fa

Two-factor authentication for Symfony applications (please use scheb/2fa-bundle to install)

578630.7k1](/packages/scheb-2fa)[scheb/2fa-bundle

A generic interface to implement two-factor authentication in Symfony applications

6914.0M62](/packages/scheb-2fa-bundle)[senseexception/intl-format

A wrapper library for PHP to format and internationalize values in messages like sprintf

123.2k2](/packages/senseexception-intl-format)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
