Рассмотрим как можно перевести интерфейс небольшого веб-сайта1. Создаем файл lang/ui.php с абстрактным описанием подписей в интерфейсе
define("UI_SITENAME", "UI_SITENAME"); define("UI_MENU_MAIN_LINK", 'UI_MENU_MAIN_LINK'); define("UI_ACCESS_DENIED", "UI_ACCESS_DENIED");В этом файле слева - имя константы, справа ключ в файле перевода. 2. В папки messages/ru и messages/en добавляем переводы, отталкиваясь от ключей-констант из файла ui.php Файл messages/ru/app.php
<?php return [ UI_SITENAME => "Галерея", UI_MENU_MAIN_LINK => 'Картины', UI_ACCESS_DENIED => "Ограниченный доступ",Файл messages/en/app.php
<?php return [ UI_SITENAME => "Gallery", UI_MENU_MAIN_LINK => 'Pictures', UI_ACCESS_DENIED => "Restricted access",3. В представлениях используем Yii:t и ссылаемся на app как на категорию и указываем константы-ключи перевода
<h1><?= Yii::t('app', UI_LK); ?></h1> <?= Yii::t('app',UI_LK_USERNAME); ?>: <?php echo $lk['username']; ?><br/> <a href="/user/setemail/"><?= Yii::t('app', UI_LK_SETEMAIL_LINK); ?></a><br/> <a href="/user/setpassword/"><?= Yii::t('app', UI_LK_SETPASSWORD_LINK); ?></a><br/><!-- comment --> <hr/> <a href="/user/forget/"><?= Yii::t('app',UI_LK_FORGET_LINK); ?></a>в меню
if (Yii::$app->user->isGuest) { $custom_links = [ [ 'label' => Yii::t('app', UI_MENU_LOGIN_LINK), 'url' => ['/user/login'] ], [ 'label' => Yii::t('app',UI_MENU_JOIN_LINK), 'url' => ['/user/join'] ] ]; }и так далее 4. Подключаем ui.php в конфигурацию (config/web.php) и добавляем локализацию
<?php require $_SERVER['DOCUMENT_ROOT'] . '/lang/ui.php'; $params = require __DIR__ . '/params.php'; $db = require __DIR__ . '/db.php'; $config = [ 'sourceLanguage' => 'tr', 'language' => 'en'Преимущества описания с помощью констант Доступно автодополнение в IDE Гугл-переводчик не переводит константы Теги документа