cetver / yii2-language-url-manager
解析并创建包含语言信息的 Yii 框架 2.0 的 URL
1.0.2
2018-03-04 13:06 UTC
Requires
- yiisoft/yii2: ~2.0.0
Requires (Dev)
- codeception/base: ^2.2.3
- codeception/specify: ~0.4.3
- codeception/verify: ~0.3.1
- satooshi/php-coveralls: ^1.0
This package is auto-updated.
Last update: 2024-09-16 03:49:02 UTC
README
解析并创建包含语言的 URL
安装
安装此扩展的首选方式是通过 composer。
运行以下命令之一
composer require --prefer-dist cetver/yii2-language-url-manager
或在您的 composer.json
文件的 require 部分添加
"cetver/yii2-language-url-manager": "^1.0"
用法
更新 Web 应用程序配置文件
return [ 'components' => [ 'urlManager' => [ 'class' => 'cetver\LanguageUrlManager\UrlManager', 'enablePrettyUrl' => true, 'showScriptName' => false, /* * The list of available languages. */ 'languages' => ['en', 'ru'], /* or 'languages' => function () { return \app\models\Language::find()->select('code')->column(); }, */ /* * - true: processes the URL like "en.example.com" * - false: processes the URL like "example.com/en" * NOTE: If this property set to true, the domain containing a language, must be the first on the left side, * for example: * - en.it.example.com - is valid * - it.en.example.com - is invalid */ 'existsLanguageSubdomain' => false, /* * The regular expression patterns list, applied to path info, if there are matches, the request, * containing a language, will not be processed. * For performance reasons, the blacklist does not applied for URL creation (Take a look at an example). * @see \yii\web\Request::getPathInfo() * An example: * ```php * [ * '/^api.*$/' * ] * ``` * - Requesting the blacklisted URL * - $existsLanguageSubdomain = true * - en.example.com/api (404 Not Found) * - en.example.com/api/create (404 Not Found) * - $existsLanguageSubdomain = false * - example.com/en/api (404 Not Found) * - example.com/en/api/create (404 Not Found) * - Creating the blacklisted URL * - echo \yii\helpers\Html::a('API', ['api/index', Yii::$app->urlManager->queryParam => null]); */ 'blacklist' => [], /* * The query parameter name that contains a language. */ 'queryParam' => 'language' ], ] ];
测试
运行以下命令
composer create-project --prefer-source cetver/yii2-language-url-manager
cd yii2-language-url-manager
vendor/bin/codecept run unit
对于 I18N 支持,请参阅
- https://github.com/cetver/yii2-languages-dispatcher - 设置 Web 应用程序语言
- https://github.com/cetver/yii2-language-url-manager - 解析并创建包含语言的 URL
- https://github.com/cetver/yii2-language-selector - 提供语言选择器的配置
- https://github.com/creocoder/yii2-translateable - 可翻译的行为(Active Record)