2017 © Pedro Peláez
 

yii2-extension yii2-languages-dispatcher

Sets the web-application language for the Yii framework 2.0

image

cetver/yii2-languages-dispatcher

Sets the web-application language for the Yii framework 2.0

  • Sunday, July 22, 2018
  • by cetver
  • Repository
  • 1 Watchers
  • 6 Stars
  • 911 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 3 Forks
  • 1 Open issues
  • 8 Versions
  • 39 % Grown

The README.md

Languages dispatcher

Build Status Coverage Status, (*1)

Sets the web-application language, (*2)

Installation

The preferred way to install this extension is through composer., (*3)

Either run, (*4)

composer require --prefer-dist cetver/yii2-languages-dispatcher

or add, (*5)

"cetver/yii2-languages-dispatcher": "^1.0"

to the require section of your composer.json file., (*6)

Usage

Update the web-application configuration file, (*7)

return [
    'bootstrap' => ['languagesDispatcher'],
    'components' => [
        'languagesDispatcher' => [
            'class' => 'cetver\LanguagesDispatcher\Component',
            'languages' => ['en', 'ru'],
            // useful if you want to push the language handler at the beginning of beforeAction event handlers list
            'appendSetLanguageHandler' => false, // defaults to true
            /*
            or
            'languages' => function () {
                return \app\models\Language::find()->select('code')->column();
            },
            */
            // Order is important
            'handlers' => [
                [
                    // Detects a language based on host name
                    'class' => 'cetver\LanguagesDispatcher\handlers\HostNameHandler',
                    'request' => 'request', // optional, the Request component ID.                    
                    'hostMap' => [ // An array that maps hostnames to languages or a callable function that returns it.
                        'en.example.com' => 'en',
                        'ru.example.com' => 'ru'
                    ]
                ],
                [
                    // Detects a language from the query parameter.
                    'class' => 'cetver\LanguagesDispatcher\handlers\QueryParamHandler',
                    'request' => 'request', // optional, the Request component ID.
                    'queryParam' => 'language' // optional, the query parameter name that contains a language.
                ],
                [
                    // Detects a language from the session.
                    // Writes a language to the session, regardless of what handler detected it.
                    'class' => 'cetver\LanguagesDispatcher\handlers\SessionHandler',
                    'session' => 'session', // optional, the Session component ID.
                    'key' => 'language' // optional, the session key that contains a language.
                ],
                [
                    // Detects a language from the cookie.
                    // Writes a language to the cookie, regardless of what handler detected it.
                    'class' => 'cetver\LanguagesDispatcher\handlers\CookieHandler',
                    'request' => 'request', // optional, the Request component ID.
                    'response' => 'response', // optional, the Response component ID.
                    'cookieConfig' => [ // optional, the Cookie component configuration.
                        'class' => 'yii\web\Cookie',
                        'name' => 'language',
                        'domain' => '',
                        'expire' => strtotime('+1 year'),
                        'path' => '/',
                        'secure' => true | false, // depends on Request::$isSecureConnection
                        'httpOnly' => true,
                    ]
                ],
                [
                    // Detects a language from an authenticated user.
                    // Writes a language to an authenticated user, regardless of what handler detected it.
                    // Note: The property "identityClass" of the "User" component must be an instance of "\yii\db\ActiveRecord"
                    'class' => 'cetver\LanguagesDispatcher\handlers\UserHandler',
                    'user' => 'user',  // optional, the User component ID.
                    'languageAttribute' => 'language_code' // optional, an attribute that contains a language.
                ],
                [
                    // Detects a language from the "Accept-Language" header.
                    'class' => 'cetver\LanguagesDispatcher\handlers\AcceptLanguageHeaderHandler',
                    'request' => 'request', // optional, the Request component ID.
                ],
                [
                    // Detects a language from the "language" property.
                    'class' => 'cetver\LanguagesDispatcher\handlers\DefaultLanguageHandler',
                    'language' => 'en' // the default language.
                    /*
                    or
                    'language' => function () {
                        return \app\models\Language::find()
                            ->select('code')
                            ->where(['is_default' => true])
                            ->createCommand()
                            ->queryScalar();
                    },
                    */
                ]

            ],
        ],
    ],
];

Tests

Run the following commands, (*8)

composer create-project --prefer-source cetver/yii2-languages-dispatcher
cd yii2-languages-dispatcher
vendor/bin/codecept run unit

For I18N support, take a look at

The Versions

22/07 2018

dev-master

9999999-dev

Sets the web-application language for the Yii framework 2.0

  Sources   Download

BSD-3-Clause

The Requires

 

The Development Requires

by Alexandr Cetvertacov

language user url extension yii2 cookie locale session default active record query parameter accept language header

22/07 2018

1.1.1

1.1.1.0

Sets the web-application language for the Yii framework 2.0

  Sources   Download

BSD-3-Clause

The Requires

 

The Development Requires

by Alexandr Cetvertacov

language user url extension yii2 cookie locale session default active record query parameter accept language header

01/07 2018

1.1.0

1.1.0.0

Sets the web-application language for the Yii framework 2.0

  Sources   Download

BSD-3-Clause

The Requires

 

The Development Requires

by Alexandr Cetvertacov

language user url extension yii2 cookie locale session default active record query parameter accept language header

04/03 2018

1.0.4

1.0.4.0

Sets the web-application language for the Yii framework 2.0

  Sources   Download

BSD-3-Clause

The Requires

 

The Development Requires

by Alexandr Cetvertacov

language user url extension yii2 cookie locale session default active record query parameter accept language header

07/01 2018

1.0.3

1.0.3.0

Sets the web-application language for the Yii framework 2.0

  Sources   Download

BSD-3-Clause

The Requires

 

The Development Requires

by Alexandr Cetvertacov

language user url extension yii2 cookie locale session default active record query parameter accept language header

07/01 2018

1.0.2

1.0.2.0

Sets the web-application language for the Yii framework 2.0

  Sources   Download

BSD-3-Clause

The Requires

 

The Development Requires

by Alexandr Cetvertacov

language user url extension yii2 cookie locale session default active record query parameter accept language header

14/07 2017

1.0.1

1.0.1.0

Sets the web-application language for the Yii framework 2.0

  Sources   Download

BSD-3-Clause

The Requires

 

The Development Requires

by Alexandr Cetvertacov

language user url extension yii2 cookie locale session default active record query parameter accept language header

14/07 2017

1.0.0

1.0.0.0

Sets the web-application language for the Yii framework 2.0

  Sources   Download

BSD-3-Clause

The Requires

 

The Development Requires

by Alexandr Cetvertacov

language user url extension yii2 cookie locale session default active record query parameter accept language header