/** * Generate CKEditor language value. * @throws CException if CKEditor lang folder cannot be read. * @return string CKEditor language value. */ private function _generateCkLang() { if ($this->autoLanguage === false) { $CKEditorExtPath = $this->_CKEditorExtPath; if (empty(self::$_languages)) { $languages = glob($CKEditorExtPath . '/lang/*'); if (empty($languages)) { throw new CException('ext.editMe: Cannot access ' . $CKEditorExtPath . '/lang'); } foreach ($languages as $index => $language) { $language = str_replace($CKEditorExtPath . '/lang/', '', $language); if (strpos($language, '_') === 0) { unset($languages[$index]); } else { $languages[$index] = substr($language, 0, -3); } } self::$_languages = $languages; } else { $languages = self::$_languages; } $appLanguage = str_replace('_', '-', strtolower(Yii::app()->language)); if (in_array($appLanguage, $languages)) { return CJavaScript::encode($appLanguage); } else { if (in_array(substr($appLanguage, 0, 2), $languages)) { return CJavaScript::encode(substr($appLanguage, 0, 2)); } else { return CJavaScript::encode('en'); } } } else { return CJavaScript::encode(''); } }