PHPackages                             web-bond/yii2-languages - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Localization &amp; i18n](/categories/localization)
4. /
5. web-bond/yii2-languages

ActiveYii2-extension[Localization &amp; i18n](/categories/localization)

web-bond/yii2-languages
=======================

Package

2.9(5y ago)06MITPHP

Since Sep 21Pushed 5y agoCompare

[ Source](https://github.com/web-bond/yii2-languages)[ Packagist](https://packagist.org/packages/web-bond/yii2-languages)[ RSS](/packages/web-bond-yii2-languages/feed)WikiDiscussions master Synced 2d ago

READMEChangelog (1)Dependencies (1)Versions (16)Used By (0)

yii2-languages
==============

[](#yii2-languages)

Пакет для создания мультиязычного сайта или WEB-приложения на php-фреймворке Yii-2. Текущий язык отображается в URL. Есть возможность убрать основной язык из отображаемых. Пример (русский использован в качестве основного языка и выбрана опция не выводить основной язык):

-
-
-
-
-
-

Смена языка осуществляется при нажатии на соответствующие ссылки которые выводятся виджетом. Так же, язык можно менять прямо в адресной строке. Не используются сессии, куки и база данных для работы расширения. Код рассчитан на максимальное быстродействие. Использование данного модуля мультиязычности не требует внесения изменений в правила маршрутизации компонента urlManager.

Расширение устанавливает текущую локализацию приложения в зависимости от выбранного языка.

Установка
---------

[](#установка)

- Установка расширения с помощью Composer.

```
Stock - composer require klisl/yii2-languages
My update widget seo Urls - composer require web-bond/yii2-languages

```

- Внести изменения в файл **frontend\\config\\main.php** (для версии advanced) или в файл **config/web.php** (для версии basic):

(1) в массив "return" вставить:

```
'sourceLanguage' => 'ru', // использовать в качестве ключей переводов
```

(2) ниже, так же в массив "return" вставить регистрацию и параметры модуля:

```
'modules' => [
    'languages' => [
        'class' => 'klisl\languages\Module',
        //Языки используемые в приложении
        'languages' => [
            'English' => 'en',
            'Русский' => 'ru',
            'Українська' => 'uk',
        ],
        'default_language' => 'ru', //основной язык (по-умолчанию)
        'show_default' => false, //true - показывать в URL основной язык, false - нет
    ],
],
```

По-умолчанию модуль использует английский, русский и украинский языки. Удалить или добавить нужные в параметрах модуля.

(3) в массиве "components" есть вложенный массив "request", вставить в него:

```
'baseUrl' => '', //убрать frontend/web
'class' => 'klisl\languages\Request'
```

(4) в компоненте приложения "urlManager" включаем ЧПУ для ссылок, подключаем класс UrlManager переопределенный данным расширением:

```
'urlManager' => [
    'enablePrettyUrl' => true,
    'showScriptName' => false,
    'enableStrictParsing' => true,
    'class' => 'klisl\languages\UrlManager',
    'rules' => [
        'languages' => 'languages/default/index', //для модуля мультиязычности
        //далее создаем обычные правила
        '/' => 'site/index',
        '' => 'site/',
    ],
],
```

В начале списка правил указываем правило для работы модуля мультиязычности. Остальные правила формируются обычным образом.

(5) в шаблон **frontend\\views\\layouts\\main.php** или нужный вид вставить вывод виджета отображающего ссылки для переключения языков:

```

```

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

[](#использование)

#### Перевод фраз.

[](#перевод-фраз)

Для перевода отдельных слов и фраз (пунктов меню например), нужно создать языковые файлы в папке common/messages. Если используется версия Yii2 Basic, то папка common будет отсутствовать в корне проекта, в таком случае ее нужно создать. Количество языковых файлов будет столько, сколько у вас дополнительных языков для перевода, не считая основного. Например, если используется русский, украинский и английский, то создаем папки “en” и “uk” при условии, что русский является основным языком. Метка основного языка не отображается в URL.

Напоминаю, что основной язык задается в файле frontend\\config\\main.php, в массиве «return» строкой **'sourceLanguage' =&gt; 'ru',**

Пример языкового файла common\\messages\\en\\app.php:

```
