dev-master
9999999-devMultilanguage for for yii 2
The Requires
Multilanguage for for yii 2
The preferred way to install this extension is through composer., (*1)
Either run, (*2)
php composer.phar require --prefer-dist webvimark/multilanguage "*"
or add, (*3)
"webvimark/multilanguage": "*"
to the require section of your composer.json
file., (*4)
Create table for translations (you can find table dumps in folder "data"), (*5)
In you params.php, (*6)
return [ ... 'mlConfig'=>[ 'default_language'=>'ru', 'languages'=>[ 'ru'=>'Русский', 'en'=>'English', ], ], ... ];
In your model, (*7)
( You also can change languages for this model (different from te ones in params) by defining them here ), (*8)
class Page extends ActiveRecord { use MultiLanguageTrait; /** * @inheritdoc */ public function behaviors() { return [ ... 'mlBehavior'=>[ 'class' => MultiLanguageBehavior::className(), 'mlConfig' => [ 'db_table' => 'translations_with_string', 'attributes' => ['name'], 'admin_routes' => [ 'content/page/update', 'content/page/index', ], ], ], ... ]; }
In your Base Controller, (*9)
public function init() { MultiLanguageHelper::catchLanguage(); parent::init(); }
In your config file, (*10)
'urlManager' => [ 'class'=>MultiLanguageUrlManager::className(), 'enablePrettyUrl' => true, 'showScriptName'=>false, 'rules'=>[ '<_c:[\w \-]+>/<id:\d+>'=>'<_c>/view', '<_c:[\w \-]+>/<_a:[\w \-]+>/<id:\d+>'=>'<_c>/<_a>', '<_c:[\w \-]+>/<_a:[\w \-]+>'=>'<_c>/<_a>', '<_m:[\w \-]+>/<_c:[\w \-]+>/<_a:[\w \-]+>'=>'<_m>/<_c>/<_a>', '<_m:[\w \-]+>/<_c:[\w \-]+>/<_a:[\w \-]+>/<id:\d+>'=>'<_m>/<_c>/<_a>', ], ],
In your _form.php, (*11)
= $form->field($model, 'name') ->textInput(['maxlength' => 255]) ->widget(MultiLanguageActiveField::className()) ?> = $form->field($model, 'name')->textarea(['maxlength' => 255, 'rows'=>3]) ->widget(MultiLanguageActiveField::className(), ['inputType'=>'textArea', 'inputOptions'=>[ 'rows'=>3, 'class'=>'form-control', ]]) ?>
Multilanguage for for yii 2