mcaskill/slim-polyglot
最新稳定版本:v0.5.0
Composer 安装命令:
composer require mcaskill/slim-polyglot
包简介
Slim 3 language resolution middleware
README 文档
README
Resolves the response's current language based on the requested URI, the client's preferred language, and the available languages.
Alters the ResponseInterface to assign the Content-Language header.
Uses willdurand/Negotiation to detect and negotiate the client language.
Install
Via Composer:
composer require mcaskill/slim-polyglot
Requires Slim 3.
Usage
use Slim\App; use McAskill\Slim\Polyglot\Polyglot; $app = new App(); // Fetch DI Container $container = $app->getContainer(); // Register Middleware $app->add(new Polyglot([ 'en', 'fr', 'es' ])); // Example route with ETag header $app->get('/foo', function ($request, $response) { $language = $response->getHeader('Content-Language'); // Handle response! }); $app->run();
The Polyglot middleware can also accept callbacks that are executed after a language is chosen.
use Slim\App; use McAskill\Slim\Polyglot\Polyglot; $app = new App(); // Fetch DI Container $container = $app->getContainer(); // Register Middleware $app->add( new Polyglot([ 'languages' => [ 'en', 'fr', 'es' ], 'fallbackLanguage' => 'fr', // Hooks to call after language is resolved 'callbacks' => [ function ($language) use ($container) { $container['environment']['language.current'] = $language; }, [ 'MySuperApp', 'set_language' ] ] ]) ); // Example route with ETag header $app->get('/foo', function ($request, $response) { $language = $this->environment['language.current']; // Handle response! }); $app->run();
Testing
TBD
Notes
The language code may be formatted as ISO 639-1 alpha-2 (en), ISO 639-3 alpha-3 (msa), or ISO 639-1 alpha-2 combined with an ISO 3166-1 alpha-2 localization (zh-tw).
[ "en", "fr-CA" ]
When giving a list of languages to the Polyglot middleware, the first language is used as the fallback language. When switching to a language that is not in the list of supported languages, the first language is used instead.
Definitions:
- "language-fallback" — Default language; determined as the first among your supported languages.
- "language-preferred" — Preferred language(s); determined as the client's localization preferences.
- "language-current" — Current language; determined as the localization to use based on a cross-reference of the application's supported languages and the client's priority of preferred languages.
License
The MIT License (MIT). Please see the License File for more information.
统计信息
- 总下载量: 1.74k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 4
- 点击次数: 0
- 依赖项目数: 1
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2016-05-10