狂热 / 栈局部化
用于检测 URI 局部的栈中间件。
dev-master / 1.0.x-dev
2014-05-17 17:55 UTC
Requires
- php: >=5.3.0
- symfony/http-foundation: ~2.1
- symfony/http-kernel: ~2.1
Requires (Dev)
- silex/silex: ~1.0@dev
- stack/builder: ~1.0@dev
- stack/callable-http-kernel: ~1.0@dev
This package is auto-updated.
Last update: 2024-09-24 10:48:44 UTC
README
此 栈中间件 为您的应用程序提供本地化功能。它将开始寻找 URL 中的区域设置。如果没有找到,它将默认为您提供的区域设置。
没有默认值将导致从用户获取 HTTP_ACCEPT_LANGUAGE 并尝试匹配可用的区域设置。
此中间件可以检测 URI 前缀中指定的语言。例如。
http://mydomain.com/en
http://mydomain.com/fr
区域设置将在 Request getLocale() 方法中可用,并从请求路径信息中移除,以便更容易的路由。
Silex 的示例
<?php require_once __DIR__.'/../vendor/autoload.php'; use Symfony\Component\HttpFoundation\Request; $app = new Silex\Application(); // Accessible on /{locale}/ $app->get('/', function (Request $request) { // The locale should be set. return $request->getLocale(); }); // Accessible on /{locale}/test $app->get('/test', function (Request $request) { // The locale should be set. return $request->getLocale().'/test'; }); $locales = ['en', 'fr', 'es']; $fallback = 'en'; $redirectDefault = true; $stack = new Stack\Builder(); $stack->push('Frenzy\Localize\StackLocalize', $locales, $fallback, $redirectDefault); $app = $stack->resolve($app); $request = Request::createFromGlobals(); $response = $app->handle($request)->send(); $app->terminate($request, $response);
Laravel 的示例
<?php $params = [ 'locales' => ['fr', 'en', 'es'], 'fallback' => 'fr', 'redirectDefault' => true, ]; App::middleware('Frenzy\Localize\StackLocalize', $params); // Be sure to set the locale from the request when booting your app. App::setLocale(Request::getLocale());
待办事项
- 测试