PHPackages                             pmaxs/silex-locale - 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. pmaxs/silex-locale

ActiveLibrary[Localization &amp; i18n](/categories/localization)

pmaxs/silex-locale
==================

Silex service provider to adjust locale/language via url

2.1.0(9y ago)474.7k↓20%1[1 issues](https://github.com/pmaxs/silex-locale/issues)MITPHPPHP &gt;=5.4.0

Since Sep 25Pushed 9y ago1 watchersCompare

[ Source](https://github.com/pmaxs/silex-locale)[ Packagist](https://packagist.org/packages/pmaxs/silex-locale)[ Docs](https://github.com/pmaxs/silex-locale)[ RSS](/packages/pmaxs-silex-locale/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (4)Dependencies (1)Versions (8)Used By (0)

Silex-locale
============

[](#silex-locale)

Silex service provider to adjust locale/language via url.

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

[](#installation)

```
composer require pmaxs/silex-locale "^1.0" # for silex v1.x
composer require pmaxs/silex-locale "^2.0" # for silex v2.x

```

Options
-------

[](#options)

- locale.locales - available locales
- locale.default\_locale - default locale
- locale.resolve\_by\_host - resolve locale from host name
- locale.exclude\_routes - routes that should be excluded (service routes)

Urls
----

[](#urls)

- locale.resolve\_by\_host = 0
- default locale: scheme://host/...
- not default locale: scheme://host/{{locale}}/...
- locale.resolve\_by\_host = 1
- default locale: scheme://host/...
- not default locale: scheme://{{locale}}.host/...

Loading provider
----------------

[](#loading-provider)

silex v1.x

```
$app->register(new Pmaxs\Silex\Locale\Provider\LocaleServiceProvider(), [
    'locale.locales' => ['en', 'ru', 'es'],
    'locale.default_locale' => 'en',
    'locale.resolve_by_host' => false,
    'locale.exclude_routes' => ['^_'],
]);
```

silex v2.x

```
$app->register(new Pmaxs\Silex\Locale\Provider\LocaleServiceProvider(), [
    'locale.locales' => ['en', 'ru', 'es'],
    'locale.default_locale' => 'en',
    'locale.resolve_by_host' => false,
    'locale.exclude_routes' => ['^_'],
]);

$app->register(new Silex\Provider\LocaleServiceProvider(), [
]);
```

Usage
-----

[](#usage)

```
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;

require '../vendor/autoload.php';

$app = new \Silex\Application();

$app->register(new \Silex\Provider\LocaleServiceProvider());
$app->register(new \Silex\Provider\TranslationServiceProvider());
$app->register(new \Pmaxs\Silex\Locale\Provider\LocaleServiceProvider(), [
    'locale.locales' => ['en', 'ru', 'es'],
    'locale.default_locale' => 'en',
    'locale.resolve_by_host' => false,
    'locale.exclude_routes' => ['^_']
]);

// will be accessible by urls `/`, `/en/`, `/ru/`, `/es/`
$app->get('/', function (Request $request) use ($app) {
    return new Response('index ' . $request->getLocale());
})->bind('index');

// will be accessible by urls `/test/123`, `/en/test/123`, `/ru/test/123`, `/es/test/123`
$app->get('/test/{var}', function(Request $request) use ($app) {
    return new Response('test ' . $request->getLocale() . ' ' . $request->get('var'));
})->bind('test');

```

Url generation
--------------

[](#url-generation)

- Index url
    - Current locale
        - php: `$app['locale.url_generator']->getIndexUrl()`
        - twig: `locale_get_index_url()`
    - Any locale
        - php: `$app['locale.url_generator']->getIndexUrlForLocale('es')`
        - twig: `locale_get_index_url_for_locale('es')`
- Other urls
    - Current locale
        - php: standard silex mechanism for url generation `$app['url_generator']->generate(...)`
        - twig: standard twig mechanism for url generation `path(...)`
    - Any locale
        - php: `$app['locale.url_generator']->generate('es', $name, $parameters = array(), $referenceType = UrlGeneratorInterface::ABSOLUTE_PATH)`
        - twig: `locale_generate('es', $name, $parameters = array(), $referenceType = UrlGeneratorInterface::ABSOLUTE_PATH)`

###  Health Score

34

—

LowBetter than 77% of packages

Maintenance15

Infrequent updates — may be unmaintained

Popularity34

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity63

Established project with proven stability

 Bus Factor1

Top contributor holds 100% 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 ~3 days

Total

7

Last Release

3503d ago

Major Versions

1.0.10 → 2.0.102016-09-25

1.0.11 → 2.0.112016-10-12

1.1.0 → 2.1.02016-10-14

### Community

Maintainers

![](https://www.gravatar.com/avatar/c7294f5e2221c037b8bd384e8a97443b2a6bad532283955fe1ce317182798a80?d=identicon)[pmaxs](/maintainers/pmaxs)

---

Top Contributors

[![pmaxs](https://avatars.githubusercontent.com/u/3104249?v=4)](https://github.com/pmaxs "pmaxs (70 commits)")

---

Tags

symfonylocalesilex

### Embed Badge

![Health badge](/badges/pmaxs-silex-locale/health.svg)

```
[![Health](https://phpackages.com/badges/pmaxs-silex-locale/health.svg)](https://phpackages.com/packages/pmaxs-silex-locale)
```

###  Alternatives

[opgginc/codezero-laravel-localized-routes

A convenient way to set up, manage and use localized routes in a Laravel app.

2770.1k1](/packages/opgginc-codezero-laravel-localized-routes)[optimistdigital/nova-locale-manager

Laravel Nova tool to manage locales.

167.0k](/packages/optimistdigital-nova-locale-manager)

PHPackages © 2026

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