alpiiscky/yii2-multilang

Результаты переработки статьи с хабра

Installs: 39

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 1

Forks: 0

Open Issues: 0

Type:yii2-extension

0.2 2018-01-23 06:33 UTC

This package is not auto-updated.

Last update: 2024-05-01 02:23:48 UTC


README

Результаты переработки статьи с хабра https://habrahabr.ru/post/226931/

Решен вопрос дубляжа url. Т.е.

mysite.ru
mysite.ru/ru 
mysite.ru/en

отрабатывают корректно, при доступе на mysite.ru открывается сайт по дефолтному языку, mysite.ru/ru дает ошибку 404 (т.к. ru по умолчанию), mysite.ru/en открывает английскую версию сайта

Установка

Выполните

composer require --prefer-dist alpiiscky/yii2-multilang "*"

или добавьте

"alpiiscky/yii2-multilang": "*"

в раздел require вашего composer.json файла.

Использование

Отредактировать web.php согласно следующим пунктам:

  1. добавить в разделе components:
'request' => [
    'class' => 'alpiiscky\multilang\components\LangRequest',
    'cookieValidationKey' => '<your code>',
],
  1. В urlManager надо добавить:
'urlManager' => [
    'enablePrettyUrl' => true,
    'showScriptName' => false,
    'class'=>'alpiiscky\multilang\components\LangUrlManager',
    'rules' => [
        '/' => 'site/index',
        '<controller:\w+>/<action:\w+>/*'=>'<controller>/<action>',
    ]

Миграции

php yii migrate --migrationPath=vendor/alpiiscky/yii2-multilang/migrations/

Виджет выбора языка

<?= \alpiiscky\multilang\widgets\LanguageWidget::widget([]); ?>

Создание url

<?php
use alpiiscky\multilang\helpers\Url;
use alpiiscky\multilang\models\Language;

$current_lang = Language::getCurrent();
?>


<?= Url::toLang('/book', ['lang_id' => $current_lang->id]) ?>