LangCountry is a Localization Package for Laravel
Published on by Paul Redmond
The Laravel LangCountry is a localization package that provides automatic date formatting, language switching, and more. Defining language detection and configuration can be tedious, so this package can make it easier to support multiple locales and the following feature list:
- A configurable set of supported languages and countries
- Automatic detection based on the user's browser settings
- Middleware to set the locale and country of the user
- Optional language switcher UI component
- Date/time helpers
- Language helpers
- Currency helpers
- Store the user's preferred language in the database
- And more...
The optional language switcher UI could be something that you present to users, or use a development tool to switch languages to test quickly:
The provided middleware is useful as it will automatically try to detect the user's language preference and country. You can provide a fallback locale, which the middleware will set if there is no match between language and country. Finally, the middleware will check if you have translations for the selected locale and set the Laravel application locale to the locale (if found).
Lastly, this package provides date, time, and language helpers that you might find useful:
// nl-NL will return "27-09-2023"// en-US will return "09/27/2023"// de-DE will return "27.09.2023"LangCountry::dateNumbers($post->created_at); // nl-NL will return "27 september"// en-US will return "September 27th"LangCountry::dateBirthday($user->date_of_birth); // en-GB" will return "🇬🇧"// nl-NL will return "🇳🇱"LangCountry::emojiFlag();
There are many helpers in the package's official documentation, which you can use to find usage and installation instructions. This package requires Laravel 10 and at least PHP 8.1. The project does provide a specific version for older Laravel versions. You can also view the source code on GitHub.