2017 © Pedro Peláez
 

yii2-extension yii2-languages

Package

image

klisl/yii2-languages

Package

  • Tuesday, April 3, 2018
  • by klisl
  • Repository
  • 0 Watchers
  • 6 Stars
  • 131 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 1 Forks
  • 1 Open issues
  • 11 Versions
  • 34 % Grown

The README.md

yii2-languages

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

  • http://site.com
  • http://site.com/en
  • http://site.com/uk, (*2)

  • http://site.com/contact, (*3)

  • http://site.com/en/contact
  • http://site.com/uk/contact

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

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

Установка

  • Установка расширения с помощью Composer.
composer require klisl/yii2-languages 
  • Внести изменения в файл frontend\config\main.php (для версии advanced) или в файл config/web.php (для версии basic):

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

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

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

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

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

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

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

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

'urlManager' => [
    'enablePrettyUrl' => true,
    'showScriptName' => false,
    'enableStrictParsing' => true,
    'class' => 'klisl\languages\UrlManager',
    'rules' => [
        'languages' => 'languages/default/index', //для модуля мультиязычности
        //далее создаем обычные правила
        '/' => 'site/index',
        '<action:(contact|login|logout|language|about|signup)>' => 'site/<action>',
    ],
],

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

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


<?= klisl\languages\widgets\ListWidget::widget() ?>

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

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

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

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

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

<?php
return [
    'Блог' => 'Blog',
    'О нас' => 'About me',
    'Контакты' => 'Contact',
];

то есть в массив "return" нужно вписать все слова и фразы которые нужно переводить. Аналогично нужно создать файл common\messages\uk\app.php для украинского языка., (*16)

В коде (обычно в шаблонах и файлах представлений), фразы которые требуют перевода заключать в вызов метода Yii::t(). Согласно нашей конфигурации так:, (*17)

Yii::t('app', 'Блог')

Русский у нас указан в качестве языка по-умолчанию, поэтому если текущий язык – русский, выведется слово «Блог», а если английский - 'Blog'., (*18)

Перевод статичных страниц.

Статичные страницы - это страницы, которые хранят текст в самом файле (в коде), а не берут контент из базы данных. Целые страницы содержат слишком много текста, в связи с чем нецелесообразно использовать метод Yii::t()., (*19)

В нужном контроллере создаем действие для каждой такой страницы:, (*20)

public function actionStat()
{
    $language = Yii::$app->language; //текущий язык
    //выводим вид соответствующий текущему языку
    return $this->render('statPages/stat-'.$language);     
}

то есть вторая часть название файла вида берется из названия языка. В данном случае в папке с видами создаем отдельную папку для статичных файлов statPages (это не обязательно), а в ней файлы с контентом соответствующего языка: - stat-ru.php - stat-uk.php - stat-en.php, (*21)

Перевод статей хранящих контент в базе данных.

Для настройки базы данных и моделей выполнить действия указанные в данной статье статье: https://klisl.com/multilingual_BD.html., (*22)

Подробное описание расширения (с небольшими отличиями т.к. рассмотрен ручной вариант создания модуля): https://klisl.com/multilingual_Yii2.html., (*23)

Мой блог: klisl.com, (*24)

The Versions

03/04 2018

dev-master

9999999-dev

Package

  Sources   Download

MIT

The Requires

 

yii2 languages multilanguage

03/04 2018

2.4

2.4.0.0

Package

  Sources   Download

MIT

The Requires

 

yii2 languages multilanguage

08/01 2018

2.3

2.3.0.0

Package

  Sources   Download

MIT

The Requires

 

yii2 languages multilanguage

08/01 2018

2.2

2.2.0.0

Package

  Sources   Download

MIT

The Requires

 

yii2 languages multilanguage

20/11 2017

2.1

2.1.0.0

Package

  Sources   Download

MIT

The Requires

 

yii2 languages multilanguage

19/11 2017

2.0

2.0.0.0

Package

  Sources   Download

MIT

The Requires

 

yii2 languages multilanguage

17/11 2017

1.4

1.4.0.0

Package

  Sources   Download

MIT

The Requires

 

yii2 languages multilanguage

25/10 2017

1.3

1.3.0.0

Package

  Sources   Download

MIT

The Requires

 

yii2 languages multilanguage

23/10 2017

1.2

1.2.0.0

Package

  Sources   Download

MIT

The Requires

 

yii2 languages multilanguage

21/09 2017

1.1

1.1.0.0

Package

  Sources   Download

MIT

The Requires

 

yii2 languages multilanguage

21/09 2017

1.0

1.0.0.0

Package

  Sources   Download

MIT

The Requires

 

yii2 languages multilanguage