Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/braunstetter/localized-routes
Automaticly prefix your routes with a locale string.
https://github.com/braunstetter/localized-routes
localization routing symfony
Last synced: 3 days ago
JSON representation
Automaticly prefix your routes with a locale string.
- Host: GitHub
- URL: https://github.com/braunstetter/localized-routes
- Owner: Braunstetter
- Created: 2022-05-16T17:37:24.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2023-02-07T18:02:44.000Z (almost 2 years ago)
- Last Synced: 2024-12-05T14:08:57.320Z (20 days ago)
- Topics: localization, routing, symfony
- Language: PHP
- Homepage:
- Size: 24.4 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# LocalizedRoutesBundle
[![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/Braunstetter/localized-routes/badges/quality-score.png?b=main)](https://scrutinizer-ci.com/g/Braunstetter/localized-routes/?branch=main)
[![Code Coverage](https://scrutinizer-ci.com/g/Braunstetter/localized-routes/badges/coverage.png?b=main)](https://scrutinizer-ci.com/g/Braunstetter/localized-routes/?branch=main)
[![Build Status](https://app.travis-ci.com/Braunstetter/localized-routes.svg?branch=main)](https://app.travis-ci.com/Braunstetter/localized-routes)
[![Total Downloads](http://poser.pugx.org/braunstetter/localized-routes/downloads)](https://packagist.org/packages/braunstetter/localized-routes)
[![License](http://poser.pugx.org/braunstetter/localized-routes/license)](https://packagist.org/packages/braunstetter/localized-routes)This bundle simply redirects your requests to a locale prefixed route.
So `/news` is going to be `/en/news`, if the current language is `en`.
Localized routes are something that has been repeatedly discussed on sites like StackOverflow in the past.
I think it's better to use a well tested bundle for this purpose instead of writing a new listener for each project.
This bundle can then be further developed and improved by the community.# Installation
`composer require braunstetter/localized-routes`
Now you can prefix your controller routes:
```yaml
# annotations.yaml
controllers:
resource: ../../src/Controller/
type: annotation
prefix: /{_locale}
```You're done! Your blank routes are getting redirected to localized ones.
# Configuration
Since the framework bundle already provides two configuration values (default_locale, enabled_locales), we can use this
to configure our forwarding process.```yaml
framework:
default_locale: en
enabled_locales: [ 'es', 'en' ]
```## default_locale
This is just the fallback locale. If not set, Symfony will try to determine a value based on your system settings. Most likely 'en'.## enabled_locales
If this value is not specified, then all locales are allowed.
If you transfer an array of values here, the selection is restricted accordingly.# Parameters
This bundle exposes the `enabled_locales` and `default_locale` configuration values of the framework-bundle as parameters.
In addition to this, you also have an `enabled_locales_string` parameter - joining your enabled_locales e.g.: `de|en|es`So you can use these locale-specific parameters in your configuration files:
```yaml
# annotations.yaml
controllers:
resource: ../../src/Controller/
type: annotation
prefix: /{_locale}
requirements:
_locale: '%enabled_locales_string%'
defaults:
_locales: '%default_locale%'
```> This bundle can certainly be improved.
> If you have any questions and/or suggestions for improvements, don't hesitate to create a new issue or submit a PR.# Todo
- add attributes to documentation
- add explanation for a language switcher to documentation
- redirect on not supported locale to default locale - like `/es/my_route` when just `de|en` are supported