/** * Получить список доступных языков. * @param string $type варианты предоставления результата. * Доступные значения: * locales - массив доступных локалей * @return array */ private static function _getAvailable($type = null) { if (self::$_available === null) { // $current = self::getCurrent(); $default = self::getDefaultLang(); // self::$_available = self::find()->orderBy("(url = '" . $current->url . "') DESC")->all(); self::$_available = self::find()->orderBy("(url = '" . $default->url . "') DESC")->all(); } $result = []; if (self::$_available && $type !== null) { foreach (self::$_available as $key => $value) { $result[] = $value[$type]; } } else { $result = self::$_available ?: []; } return $result; }
static function setCurrent($url = null) { $language = self::getLangByUrl($url); self::$current = $language === null ? self::getDefaultLang() : $language; Yii::$app->language = self::$current->local; }
public static function setCurrent($code = null) { $language = self::getLangByUrl($code); self::$current = $language === null ? self::getDefaultLang() : $language; Yii::$app->language = self::$current->code; }