razonyang / yii-translator-middleware
Yii 翻译中间件
0.1.1
2022-09-10 14:14 UTC
Requires
- php: ^8.0
- psr/http-message: ^1.0
- psr/http-server-middleware: ^1.0
- yiisoft/mutex: ^1.1
- yiisoft/translator: ^1.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.11
- nyholm/psr7: ^1.5
- phpunit/phpunit: ^9.5
- yiisoft/mutex-file: ^1.1
README
一个用于 Yii Translator 的 HTTP 中间件。
它是如何工作的?
TranslatorMiddleware
解析来自请求的本地化设置,并将翻译实例存储在请求中。- 后续的中间件和处理程序可以通过
TranslatorMiddleware::getTranslator
或TranslatorMiddleware::getTranslatorByAttributes
静态方法检索翻译实例。
安装
可以使用 composer 安装此包
composer require razonyang/yii-translator-middleware --prefer-dist
配置
<?php declare(strict_types=1); use RazonYang\Yii\TranslatorMiddleware\LocaleParser\CompositeParser; use RazonYang\Yii\TranslatorMiddleware\LocaleParser\HeaderParser; use RazonYang\Yii\TranslatorMiddleware\LocaleParser\QueryParamsParser; use RazonYang\Yii\TranslatorMiddleware\LocaleParserInterface; use RazonYang\Yii\TranslatorMiddleware\TranslatorMiddleware; use Yiisoft\Definitions\Reference; use Yiisoft\Translator\TranslatorInterface; return [ TranslatorMiddleware::class => [ 'class' => TranslatorMiddleware::class, '__construct()' => [ Reference::to(LocaleParserInterface::class), Reference::to(TranslatorInterface::class), ], ], LocaleParserInterface::class => CompositeParser::class, CompositeParser::class => [ 'class' => CompositeParser::class, '__construct()' => [ Reference::to(QueryParamsParser::class), Reference::to(HeaderParser::class), ], ], QueryParamsParser::class => [ 'class' => QueryParamsParser::class, '__construct()' => [ 'lang', ], ], ];
本地化解析器
CompositeParser
:从多个解析器中解析本地化设置,如果成功则立即返回。HeaderParser
:从Accept-Language
标头解析本地化设置。QueryParamsParser
:从指定的查询参数解析本地化设置,默认为lang
。