usox / language-negotiator
协商http客户端语言
1.0.0
2022-01-30 12:27 UTC
Requires
- php: ^8.0||^8.1
- psr/http-server-middleware: ^1.0
Requires (Dev)
- phpstan/phpstan: ^1.4
- phpunit/phpunit: ^9.5
README
language-negotiator
使用Accept-Language
http头协商http请求的客户端语言。
安装
composer require usox/language-negotiator
用法
可以使用多种方式使用协商器。
在构造函数中使用$_SERVER超级全局变量
use Usox\LanguageNegotiator\LanguageNegotiator; $negotiator = new LanguageNegotiator( ['en', 'de'], // array of supported languages 'en' // fallback language, $_SERVER ); $clientLanguage = $negotiator->negotiate();
使用已获得的http头数组(或$_SERVER)
use Usox\LanguageNegotiator\LanguageNegotiator; $negotiator = new LanguageNegotiator( ['en', 'de'], // array of supported languages 'en' // fallback language, ); $clientLanguage = $negotiator->negotiate( $_SERVER );
作为PSR15中间件
协商器将自动使用协商的客户端语言丰富ServerRequest
。它将被添加为一个属性,可以通过属性名称常量来获取。
use Usox\LanguageNegotiator\LanguageNegotiator; $negotiator = new LanguageNegotiator( ['en', 'de'], // array of supported languages 'en' // fallback language, ); // assumes, you have some kind of framework which supports PSR request handling $myFramework->addMiddleware($negotiator); // get the language from the psr server request $clientLanguage = $request->getAttribute(LanguageNegotiator::REQUEST_ATTRIBUTE_NAME);