usox/language-negotiator

协商http客户端语言

1.0.0 2022-01-30 12:27 UTC

This package is auto-updated.

Last update: 2024-09-11 12:46:57 UTC


README

Unittests Scrutinizer Code Quality Code Coverage

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);