unicate / language-detection
Chainable language detection.
v1.2
2020-06-08 19:07 UTC
Requires
- php: ^7.2
- laminas/laminas-diactoros: 2.3.0
Requires (Dev)
- phpunit/phpunit: ^6
This package is auto-updated.
Last update: 2024-10-23 04:41:55 UTC
README
The following different strategies are used to detect the language.
- by Accept-Language-Header (e.g. 'de-CH,en;q=0.8,en-US;q=0.5,fr;q=0.3')
- by Cookie (e.g Cookie 'lang', value 'en')
- by UriPath (e.g. /shop/en/article/3453452)
- by QueryParam (e.g. index.php?lang=en)
These methods can be chained independently after each other. The last method that detects an available language wins. If no language can be detected, the default language will be returned.
Installation
Use composer:
composer require unicate/language-detection
Usage
<?php require_once "vendor/autoload.php"; // Available Languages: First entry is assumed to be the default language. $availableLang = ['en', 'de', 'fr']; // All methods chained. The last method that detects a language wins. $langDetection = new \Unicate\LanguageDetection\LanguageDetection($availableLang); $lang = $langDetection->byHeader()->byCookie()->byUri()->byParam()->getLang(); // Only by Param ?lang=en $langDetection = new \Unicate\LanguageDetection\LanguageDetection($availableLang); $lang = $langDetection->byParam()->getLang(); // Only by Uri /shop/en/article/3453452 $langDetection = new \Unicate\LanguageDetection\LanguageDetection($availableLang); $lang = $langDetection->byUri()->getLang();