unicate / 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-09-23 04:31:36 UTC
README
以下不同的策略用于检测语言。
- 通过 Accept-Language-Header(例如:'de-CH,en;q=0.8,en-US;q=0.5,fr;q=0.3')
- 通过 Cookie(例如:Cookie 'lang', 值 'en')
- 通过 UriPath(例如:/shop/en/article/3453452)
- 通过 QueryParam(例如:index.php?lang=en)
这些方法可以在彼此之间独立链式调用。最后一个检测到可用语言的方法获胜。如果无法检测到任何语言,将返回默认语言。
安装
使用 composer
composer require unicate/language-detection
用法
<?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();