mirror of
https://github.com/Oreolek/ifhub.club.git
synced 2024-06-16 14:50:48 +03:00
Вынос текстовок в языковой файл
This commit is contained in:
parent
ca953371e9
commit
dd310e31e0
|
@ -84,8 +84,6 @@ class ActionAjax extends Action
|
|||
$this->AddEventPreg('/^geo$/i', '/^get/', '/^regions$/', 'EventGeoGetRegions');
|
||||
$this->AddEventPreg('/^geo$/i', '/^get/', '/^cities$/', 'EventGeoGetCities');
|
||||
|
||||
$this->AddEventPreg('/^infobox$/i', '/^info$/', '/^blog$/', 'EventInfoboxInfoBlog');
|
||||
|
||||
$this->AddEventPreg('/^media$/i', '/^upload$/', '/^$/', 'EventMediaUpload');
|
||||
$this->AddEventPreg('/^media$/i', '/^upload-link$/', '/^$/', 'EventMediaUploadLink');
|
||||
$this->AddEventPreg('/^media$/i', '/^generate-target-tmp$/', '/^$/', 'EventMediaGenerateTargetTmp');
|
||||
|
@ -192,14 +190,14 @@ class ActionAjax extends Action
|
|||
* Истекло время голосования?
|
||||
*/
|
||||
if (!$oPoll->isAllowVote()) {
|
||||
$this->Message_AddErrorSingle('В этом опросе уже нельзя голосовать');
|
||||
$this->Message_AddErrorSingle($this->Lang_Get('poll.notices.error_not_allow_vote'));
|
||||
return;
|
||||
}
|
||||
/**
|
||||
* Пользователь уже голосовал?
|
||||
*/
|
||||
if ($this->Poll_CheckUserAlreadyVote($oPoll, $this->oUserCurrent)) {
|
||||
$this->Message_AddErrorSingle('Вы уже голосовали');
|
||||
$this->Message_AddErrorSingle($this->Lang_Get('poll.notices.error_already_vote'));
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -210,7 +208,7 @@ class ActionAjax extends Action
|
|||
* Проверяем варианты ответов
|
||||
*/
|
||||
if (!$aAnswer = (array)getRequest('answers')) {
|
||||
$this->Message_AddErrorSingle('Необходимо выбрать вариант');
|
||||
$this->Message_AddErrorSingle($this->Lang_Get('poll.notices.error_no_answers'));
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -234,7 +232,7 @@ class ActionAjax extends Action
|
|||
* Ограничение на максимальное число ответов
|
||||
*/
|
||||
if (count($aAnswerIds) > $oPoll->getCountAnswerMax()) {
|
||||
$this->Message_AddErrorSingle('Максимум можно выбрать вариантов: ' . $oPoll->getCountAnswerMax());
|
||||
$this->Message_AddErrorSingle($this->Lang_Get('poll.notices.error_answers_max', array('count' => $oPoll->getCountAnswerMax())));
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
@ -362,7 +360,7 @@ class ActionAjax extends Action
|
|||
}
|
||||
|
||||
if (!$oPoll->isAllowRemove()) {
|
||||
$this->Message_AddError('Этот опрос уже нельзя удалить');
|
||||
$this->Message_AddError($this->Lang_Get('poll.notices.error_not_allow_remove'));
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -847,7 +845,7 @@ class ActionAjax extends Action
|
|||
}
|
||||
|
||||
if (!($aMediaItems = $this->Media_GetAllowMediaItemsById($aIds))) {
|
||||
$this->Message_AddError('Необходимо выбрать элементы');
|
||||
$this->Message_AddError($this->Lang_Get('media.error.need_choose_items'));
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -874,7 +872,7 @@ class ActionAjax extends Action
|
|||
{
|
||||
$aMediaItems = $this->Media_GetAllowMediaItemsById(getRequest('ids'));
|
||||
if (!$aMediaItems) {
|
||||
$this->Message_AddError('Необходимо выбрать элементы');
|
||||
$this->Message_AddError($this->Lang_Get('media.error.need_choose_items'));
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -978,40 +976,6 @@ class ActionAjax extends Action
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Вывод информации о блоге
|
||||
*/
|
||||
protected function EventInfoboxInfoBlog()
|
||||
{
|
||||
/**
|
||||
* Если блог существует и он не персональный
|
||||
*/
|
||||
if (!is_string(getRequest('iBlogId'))) {
|
||||
return $this->EventErrorDebug();
|
||||
}
|
||||
if (!($oBlog = $this->Blog_GetBlogById(getRequest('iBlogId'))) or $oBlog->getType() == 'personal') {
|
||||
return $this->EventErrorDebug();
|
||||
}
|
||||
/**
|
||||
* Получаем локальный вьюер для рендеринга шаблона
|
||||
*/
|
||||
$oViewer = $this->Viewer_GetLocalViewer();
|
||||
|
||||
$oViewer->Assign('oBlog', $oBlog);
|
||||
if ($oBlog->getType() != 'close' or $oBlog->getUserIsJoin()) {
|
||||
/**
|
||||
* Получаем последний топик
|
||||
*/
|
||||
$aResult = $this->Topic_GetTopicsByFilter(array('blog_id' => $oBlog->getId(), 'topic_publish' => 1), 1, 1);
|
||||
$oViewer->Assign('oTopicLast', reset($aResult['collection']));
|
||||
}
|
||||
$oViewer->Assign('oUserCurrent', $this->oUserCurrent);
|
||||
/**
|
||||
* Устанавливаем переменные для ajax ответа
|
||||
*/
|
||||
$this->Viewer_AssignAjax('sText', $oViewer->Fetch("actions/ActionBlogs/popover.blog.info.tpl"));
|
||||
}
|
||||
|
||||
/**
|
||||
* Получение информации о голосовании за топик
|
||||
*/
|
||||
|
@ -1797,7 +1761,7 @@ class ActionAjax extends Action
|
|||
if ($bReturnExtended) {
|
||||
$aItems[] = array(
|
||||
'value' => $oUser->getId(),
|
||||
'label' => $oUser->getDisplayName(),
|
||||
'label' => $oUser->getDisplayName(),
|
||||
);
|
||||
} else {
|
||||
$aItems[] = $oUser->getDisplayName();
|
||||
|
|
|
@ -133,7 +133,7 @@ class ActionBlogs extends Action
|
|||
if (getRequestStr('relation') == 'my') {
|
||||
$aFilter['user_owner_id'] = $this->oUserCurrent->getId();
|
||||
} elseif (getRequestStr('relation') == 'join') {
|
||||
$aFilter['roles']=array(ModuleBlog::BLOG_USER_ROLE_USER,ModuleBlog::BLOG_USER_ROLE_ADMINISTRATOR,ModuleBlog::BLOG_USER_ROLE_MODERATOR);
|
||||
$aFilter['roles'] = array(ModuleBlog::BLOG_USER_ROLE_USER, ModuleBlog::BLOG_USER_ROLE_ADMINISTRATOR, ModuleBlog::BLOG_USER_ROLE_MODERATOR);
|
||||
}
|
||||
}
|
||||
/**
|
||||
|
|
|
@ -447,7 +447,7 @@ class ActionContent extends Action
|
|||
}
|
||||
|
||||
$this->Viewer_AssignAjax('sUrlRedirect', $sUrlRedirect);
|
||||
$this->Message_AddNotice('Обновление прошло успешно', $this->Lang_Get('common.attention'));
|
||||
$this->Message_AddNotice($this->Lang_Get('topic.add.notices.update_complete'), $this->Lang_Get('common.attention'));
|
||||
} else {
|
||||
$this->Message_AddErrorSingle($this->Lang_Get('common.error.system.base'));
|
||||
}
|
||||
|
@ -589,9 +589,9 @@ class ActionContent extends Action
|
|||
|
||||
|
||||
$this->Viewer_AssignAjax('sUrlRedirect', $oTopic->getUrl());
|
||||
$this->Message_AddNotice('Добавление прошло успешно', $this->Lang_Get('common.attention'));
|
||||
$this->Message_AddNotice($this->Lang_Get('topic.add.notices.create_complete'), $this->Lang_Get('common.attention'));
|
||||
} else {
|
||||
$this->Message_AddError('Возникла ошибка при добавлении', $this->Lang_Get('common.error.error'));
|
||||
$this->Message_AddError($this->Lang_Get('common.error.error'));
|
||||
}
|
||||
} else {
|
||||
$this->Message_AddError($oTopic->_getValidateError(), $this->Lang_Get('common.error.error'));
|
||||
|
|
|
@ -45,6 +45,6 @@ class HookCopyright extends Hook
|
|||
/**
|
||||
* Выводим везде, кроме страницы списка блогов и списка всех комментов
|
||||
*/
|
||||
return '© Powered by <a href="http://livestreetcms.org">LiveStreet CMS</a>';
|
||||
return '© Powered by <a href="https://catalog.livestreetcms.com">LiveStreet CMS</a>';
|
||||
}
|
||||
}
|
|
@ -160,18 +160,19 @@ class ModuleCategory_BehaviorEntity extends Behavior
|
|||
}
|
||||
|
||||
if ($this->getParam('validate_require') and !$aCategories) {
|
||||
return 'Необходимо выбрать категорию';
|
||||
return $this->Lang_Get('category.notices.validate_require');
|
||||
}
|
||||
if (!$this->getParam('multiple') and count($aCategories) > 1) {
|
||||
$aCategories = array_slice($aCategories, 0, 1);
|
||||
}
|
||||
if ($this->getParam('multiple') and $aCategories and (count($aCategories) < $this->getParam('validate_min') or count($aCategories) > $this->getParam('validate_max'))) {
|
||||
return 'Количество категорий должно быть от ' . $this->getParam('validate_min') . ' до ' . $this->getParam('validate_max');
|
||||
return $this->Lang_Get('category.notices.validate_count',
|
||||
array('min' => $this->getParam('validate_min'), 'max' => $this->getParam('validate_max')));
|
||||
}
|
||||
if ($this->getParam('validate_only_without_children')) {
|
||||
foreach ($aCategories as $oCategory) {
|
||||
if ($oCategory->getChildren()) {
|
||||
return 'Для выбора доступны только конечные категории';
|
||||
return $this->Lang_Get('category.notices.validate_children');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -59,14 +59,14 @@ class ModuleCategory_EntityCategory extends EntityORM
|
|||
if ($this->getPid()) {
|
||||
if ($oCategory = $this->Category_GetCategoryById($this->getPid())) {
|
||||
if ($oCategory->getId() == $this->getId()) {
|
||||
return 'Попытка вложить категорию в саму себя';
|
||||
return $this->Lang_Get('category.notices.validate_recursion');
|
||||
}
|
||||
if ($oCategory->getTypeId() != $this->getTypeId()) {
|
||||
return 'Неверная родительская категория';
|
||||
return $this->Lang_Get('category.notices.validate_parent');
|
||||
}
|
||||
$this->setUrlFull($oCategory->getUrlFull() . '/' . $this->getUrl());
|
||||
} else {
|
||||
return 'Неверная категория';
|
||||
return $this->Lang_Get('category.notices.validate_wrong');
|
||||
}
|
||||
} else {
|
||||
$this->setPid(null);
|
||||
|
|
|
@ -135,7 +135,7 @@ class ModulePoll_EntityPoll extends EntityORM
|
|||
return true;
|
||||
} else {
|
||||
if ($iCount < 2) {
|
||||
return 'Максимальное количество вариантов ответа должно быть больше одного';
|
||||
return $this->Lang_Get('poll.notices.error_answers_max_wrong');
|
||||
}
|
||||
}
|
||||
return true;
|
||||
|
@ -148,11 +148,8 @@ class ModulePoll_EntityPoll extends EntityORM
|
|||
}
|
||||
|
||||
$aAnswersRaw = $this->getAnswersRaw();
|
||||
if (!is_array($aAnswersRaw)) {
|
||||
return 'Необходимо заполнить варианты ответов';
|
||||
}
|
||||
if (count($aAnswersRaw) < 2) {
|
||||
return 'Необходимо заполнить больше одного варианта ответов';
|
||||
if (!is_array($aAnswersRaw) or count($aAnswersRaw) < 2) {
|
||||
return $this->Lang_Get('poll.notices.error_answers_count');
|
||||
}
|
||||
/**
|
||||
* Здесь может быть два варианта - создание опроса или редактирование, при редактирование могут передаваться ID ответов
|
||||
|
@ -186,7 +183,7 @@ class ModulePoll_EntityPoll extends EntityORM
|
|||
|
||||
foreach ($aAnswersOld as $oAnswer) {
|
||||
if ($oAnswer->getCountVote()) {
|
||||
return 'Нельзя удалить вариант ответа, за который уже голосовали';
|
||||
return $this->Lang_Get('poll.notices.error_answer_remove');
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -205,15 +202,15 @@ class ModulePoll_EntityPoll extends EntityORM
|
|||
if ($sTargetId) {
|
||||
$sTargetTmp = null;
|
||||
if (!$this->Poll_CheckTarget($sTargetType, $sTargetId)) {
|
||||
return 'Неверный тип объекта';
|
||||
return $this->Lang_Get('poll.notices.error_target_type');
|
||||
}
|
||||
} else {
|
||||
$sTargetId = null;
|
||||
if (!$sTargetTmp or !$this->Poll_IsAllowTargetType($sTargetType)) {
|
||||
return 'Неверный тип объекта';
|
||||
return $this->Lang_Get('poll.notices.error_target_type');
|
||||
}
|
||||
if ($this->Poll_GetPollByFilter(array('target_tmp' => $sTargetTmp, 'target_type <>' => $sTargetType))) {
|
||||
return 'Временный идентификатор уже занят';
|
||||
return $this->Lang_Get('poll.notices.error_target_tmp');
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -282,7 +282,8 @@ class ModuleProperty extends ModuleORM
|
|||
$oValueType->setValue($oValueType->getValueForValidate());
|
||||
$aPropertiesResult[$oProperty->getId()] = $oProperty;
|
||||
} else {
|
||||
return 'Поле "' . $oProperty->getTitle() . '": ' . ($sRes ? $sRes : 'неверное значение');
|
||||
return $this->Lang_Get('property.notices.validate_value_wrong',
|
||||
array('field' => $oProperty->getTitle())) . ($sRes ? $sRes : $this->Lang_Get('property.notices.validate_value_wrong_base'));
|
||||
}
|
||||
}
|
||||
$oTarget->setPropertiesObject($aPropertiesResult);
|
||||
|
@ -871,7 +872,7 @@ class ModuleProperty extends ModuleORM
|
|||
if ($oProperty->Add()) {
|
||||
return $oProperty;
|
||||
} else {
|
||||
return 'Возникла ошибка при добавлении поля';
|
||||
return $this->Lang_Get('property.notices.create_error');
|
||||
}
|
||||
} else {
|
||||
return $oProperty->_getValidateError();
|
||||
|
|
|
@ -68,14 +68,14 @@ class ModuleProperty_EntityProperty extends EntityORM
|
|||
if ($this->Property_IsAllowPropertyType($this->getType())) {
|
||||
return true;
|
||||
}
|
||||
return 'Неверный тип поля';
|
||||
return $this->Lang_Get('property.notices.validate_type');
|
||||
}
|
||||
|
||||
public function ValidateCheckCode()
|
||||
{
|
||||
if ($oProperty = $this->Property_GetPropertyByTargetTypeAndCode($this->getTargetType(), $this->getCode())) {
|
||||
if ($this->getId() != $oProperty->getId()) {
|
||||
return 'Код поля должен быть уникальным';
|
||||
return $this->Lang_Get('property.notices.validate_code');
|
||||
}
|
||||
}
|
||||
return true;
|
||||
|
|
|
@ -94,7 +94,7 @@ class ModuleProperty_EntityValueTypeDate extends ModuleProperty_EntityValueType
|
|||
*/
|
||||
if ($oProperty->getValidateRuleOne('disallowFuture')) {
|
||||
if ($sTimeFull > time()) {
|
||||
return "{$oProperty->getTitle()}: дата не может быть в будущем";
|
||||
return "{$oProperty->getTitle()}: " . $this->Lang_Get('property.notices.validate_value_date_future');
|
||||
}
|
||||
}
|
||||
/**
|
||||
|
@ -103,7 +103,7 @@ class ModuleProperty_EntityValueTypeDate extends ModuleProperty_EntityValueType
|
|||
if ($oValueObject->_isNew() or strtotime($oValueObject->getValueDate()) != $sTimeFull) {
|
||||
if ($oProperty->getValidateRuleOne('disallowPast')) {
|
||||
if ($sTimeFull < time()) {
|
||||
return "{$oProperty->getTitle()}: дата не может быть в прошлом";
|
||||
return "{$oProperty->getTitle()}: " . $this->Lang_Get('property.notices.validate_value_date_past');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -44,10 +44,10 @@ class ModuleProperty_EntityValueTypeFile extends ModuleProperty_EntityValueType
|
|||
$oProperty = $oValue->getProperty();
|
||||
$iPropertyId = $oProperty->getId();
|
||||
|
||||
$bNeedRemove=false;
|
||||
$bNeedRemove = false;
|
||||
$mValue = $this->getValueForValidate();
|
||||
if (isset($mValue['remove']) and $mValue['remove']) {
|
||||
$bNeedRemove=true;
|
||||
$bNeedRemove = true;
|
||||
$this->setValueForValidate(array('remove' => true));
|
||||
}
|
||||
|
||||
|
@ -62,14 +62,14 @@ class ModuleProperty_EntityValueTypeFile extends ModuleProperty_EntityValueType
|
|||
} elseif ($aFilePrev = $oValue->getDataOne('file') and isset($aFilePrev['path']) and !$bNeedRemove) {
|
||||
return true;
|
||||
} else {
|
||||
return 'Необходимо выбрать файл';
|
||||
return $this->Lang_Get('property.notices.validate_value_file_empty');
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Проверяем на ошибки
|
||||
*/
|
||||
if ($sFileError and $sFileError != UPLOAD_ERR_NO_FILE) {
|
||||
return "При загрузке файла возникла ошибка - {$sFileError}";
|
||||
return $this->Lang_Get('property.notices.validate_value_file_upload') . " - {$sFileError}";
|
||||
}
|
||||
/**
|
||||
* На корректность загрузки
|
||||
|
@ -81,7 +81,7 @@ class ModuleProperty_EntityValueTypeFile extends ModuleProperty_EntityValueType
|
|||
* На ограничение по размеру файла
|
||||
*/
|
||||
if ($iSizeKb = $oProperty->getValidateRuleOne('size_max') and $iSizeKb * 1024 < $sFileSize) {
|
||||
return "Превышен размер файла, максимальный {$iSizeKb}Kb";
|
||||
return $this->Lang_Get('property.notices.validate_value_file_size_max', array('size' => $iSizeKb));
|
||||
}
|
||||
/**
|
||||
* На допустимые типы файлов
|
||||
|
@ -91,7 +91,7 @@ class ModuleProperty_EntityValueTypeFile extends ModuleProperty_EntityValueType
|
|||
return false;
|
||||
}
|
||||
if ($aTypes = $oProperty->getParam('types') and !in_array($aPath['extension'], $aTypes)) {
|
||||
return 'Неверный тип файла, допустимы ' . join(', ', $aTypes);
|
||||
return $this->Lang_Get('property.notices.validate_value_file_type', array('types' => join(', ', $aTypes)));
|
||||
}
|
||||
/**
|
||||
* Пробрасываем данные по файлу
|
||||
|
@ -257,7 +257,7 @@ class ModuleProperty_EntityValueTypeFile extends ModuleProperty_EntityValueType
|
|||
|
||||
public function getCountDownloads()
|
||||
{
|
||||
$aStats=$this->oValue->getDataOne('stats');
|
||||
$aStats = $this->oValue->getDataOne('stats');
|
||||
return isset($aStats['count_download']) ? $aStats['count_download'] : 0;
|
||||
}
|
||||
|
||||
|
|
|
@ -34,7 +34,7 @@ class ModuleProperty_EntityValueTypeImage extends ModuleProperty_EntityValueType
|
|||
* Показываем превью, в качестве изображения берем первый ресайз из списка размеров
|
||||
*/
|
||||
if ($aFile = $this->oValue->getDataOne('file') and isset($aFile['path'])) {
|
||||
return '<a href="'.$this->getImageWebPath().'" class="js-lbx"><img src="' . $this->getImageWebPath($this->getImageSizeFirst()) . '" /></a>';
|
||||
return '<a href="' . $this->getImageWebPath() . '" class="js-lbx"><img src="' . $this->getImageWebPath($this->getImageSizeFirst()) . '" /></a>';
|
||||
}
|
||||
return $this->getFileFullName();
|
||||
}
|
||||
|
@ -73,19 +73,19 @@ class ModuleProperty_EntityValueTypeImage extends ModuleProperty_EntityValueType
|
|||
$aValue = $this->getValueForValidate();
|
||||
if (isset($aValue['tmp_name'])) {
|
||||
if (!$aImageInfo = (@getimagesize($aValue['tmp_name']))) {
|
||||
return 'Файл не является изображением';
|
||||
return $this->Lang_Get('property.notices.validate_value_image_wrong');
|
||||
}
|
||||
/**
|
||||
* Проверяем на максимальную ширину
|
||||
*/
|
||||
if ($iWMax = $oProperty->getValidateRuleOne('width_max') and $iWMax < $aImageInfo[0]) {
|
||||
return 'Максимальная допустимая ширина изображения ' . $iWMax . 'px';
|
||||
return $this->Lang_Get('property.notices.validate_value_image_width_max', array('size' => $iWMax));
|
||||
}
|
||||
/**
|
||||
* Проверяем на максимальную высоту
|
||||
*/
|
||||
if ($iHMax = $oProperty->getValidateRuleOne('height_max') and $iHMax < $aImageInfo[1]) {
|
||||
return 'Максимальная допустимая высота изображения ' . $iHMax . 'px';
|
||||
return $this->Lang_Get('property.notices.validate_value_image_height_max', array('size' => $iHMax));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -63,10 +63,10 @@ class ModuleProperty_EntityValueTypeSelect extends ModuleProperty_EntityValueTyp
|
|||
if (is_array($iValue)) {
|
||||
if ($oProperty->getValidateRuleOne('allowMany')) {
|
||||
if ($oProperty->getValidateRuleOne('max') and count($iValue) > $oProperty->getValidateRuleOne('max')) {
|
||||
return 'Максимально можно выбрать только ' . $oProperty->getValidateRuleOne('max') . ' элемента';
|
||||
return $this->Lang_Get('property.notices.validate_value_select_max', array('count' => $oProperty->getValidateRuleOne('max')));
|
||||
}
|
||||
if ($oProperty->getValidateRuleOne('min') and count($iValue) < $oProperty->getValidateRuleOne('min')) {
|
||||
return 'Минимально можно выбрать только ' . $oProperty->getValidateRuleOne('min') . ' элемента';
|
||||
return $this->Lang_Get('property.notices.validate_value_select_min', array('count' => $oProperty->getValidateRuleOne('min')));
|
||||
}
|
||||
/**
|
||||
* Для безопасности
|
||||
|
@ -76,19 +76,19 @@ class ModuleProperty_EntityValueTypeSelect extends ModuleProperty_EntityValueTyp
|
|||
$aValues[] = (int)$iV;
|
||||
}
|
||||
if (count($aValues) == count($this->Property_GetSelectItemsByFilter(array(
|
||||
'property_id' => $oProperty->getId(),
|
||||
'id in' => $aValues
|
||||
)))
|
||||
'property_id' => $oProperty->getId(),
|
||||
'id in' => $aValues
|
||||
)))
|
||||
) {
|
||||
$this->setValueForValidate($aValues);
|
||||
return true;
|
||||
} else {
|
||||
return 'Проверьте корректность выбранных элементов';
|
||||
return $this->Lang_Get('property.notices.validate_value_select_wrong');
|
||||
}
|
||||
} elseif (count($iValue) == 1) {
|
||||
$iValue = (int)reset($iValue);
|
||||
} else {
|
||||
return 'Можно выбрать только один элемент';
|
||||
return $this->Lang_Get('property.notices.validate_value_select_only_one');
|
||||
}
|
||||
}
|
||||
/**
|
||||
|
@ -113,9 +113,9 @@ class ModuleProperty_EntityValueTypeSelect extends ModuleProperty_EntityValueTyp
|
|||
if ($mValue) {
|
||||
if (is_array($mValue)) {
|
||||
$aSelectItems = $this->Property_GetSelectItemsByFilter(array(
|
||||
'property_id' => $oProperty->getId(),
|
||||
'id in' => $mValue
|
||||
));
|
||||
'property_id' => $oProperty->getId(),
|
||||
'id in' => $mValue
|
||||
));
|
||||
foreach ($aSelectItems as $oSelect) {
|
||||
$aValues[$oSelect->getId()] = $oSelect->getValue();
|
||||
}
|
||||
|
@ -168,9 +168,9 @@ class ModuleProperty_EntityValueTypeSelect extends ModuleProperty_EntityValueTyp
|
|||
* Удаляем значения select'а из дополнительной таблицы
|
||||
*/
|
||||
if ($aSelects = $this->Property_GetValueSelectItemsByFilter(array(
|
||||
'property_id' => $oValue->getPropertyId(),
|
||||
'target_id' => $oValue->getTargetId()
|
||||
))
|
||||
'property_id' => $oValue->getPropertyId(),
|
||||
'target_id' => $oValue->getTargetId()
|
||||
))
|
||||
) {
|
||||
foreach ($aSelects as $oSelect) {
|
||||
$oSelect->Delete();
|
||||
|
|
|
@ -45,7 +45,7 @@ class ModuleProperty_EntityValueTypeVideoLink extends ModuleProperty_EntityValue
|
|||
* Теперь проверяем на принадлежность к разным видео-хостингам
|
||||
*/
|
||||
if ($this->getValueForValidate() and !$this->checkVideo($this->getValueForValidate())) {
|
||||
return 'Необходимо указать корректную ссылку на видео: YouTube, Vimeo';
|
||||
return $this->Lang_Get('property.notices.validate_value_video_wrong');
|
||||
}
|
||||
return true;
|
||||
} else {
|
||||
|
|
|
@ -215,7 +215,7 @@ class ModuleRbac extends ModuleORM
|
|||
/**
|
||||
* Дефолтное сообщение об ошибке
|
||||
*/
|
||||
$sMsg = 'У вас нет прав на "' . $sPermissionCode . '"';
|
||||
$sMsg = $this->Lang_Get('rbac.notices.error_not_allow', array('permission' => $sPermissionCode));
|
||||
/**
|
||||
* Проверяем результат кастомной обработки
|
||||
*/
|
||||
|
@ -235,7 +235,7 @@ class ModuleRbac extends ModuleORM
|
|||
if ($aPerm['msg_error']) {
|
||||
$sMsg = $this->Lang_Get($aPerm['msg_error']);
|
||||
} else {
|
||||
$sMsg = 'У вас нет прав на "' . ($aPerm['title'] ? $aPerm['title'] : $aPerm['code']) . '"';
|
||||
$sMsg = $this->Lang_Get('rbac.notices.error_not_allow', array('permission' => $aPerm['title'] ? $aPerm['title'] : $aPerm['code']));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -55,7 +55,7 @@ class ModuleRbac_EntityGroup extends EntityORM
|
|||
{
|
||||
if ($oObject = $this->Rbac_GetGroupByCode($this->getCode())) {
|
||||
if ($this->getId() != $oObject->getId()) {
|
||||
return 'Код должен быть уникальным';
|
||||
return $this->Lang_Get('rbac.notices.validate_group_code');
|
||||
}
|
||||
}
|
||||
return true;
|
||||
|
|
|
@ -67,7 +67,7 @@ class ModuleRbac_EntityPermission extends EntityORM
|
|||
if ($oObject = $this->Rbac_GetGroupById($this->getGroupId())) {
|
||||
$this->setGroupId($oObject->getId());
|
||||
} else {
|
||||
return 'Неверная группа';
|
||||
return $this->Lang_Get('rbac.notices.validate_group_wrong');
|
||||
}
|
||||
} else {
|
||||
$this->setGroupId(null);
|
||||
|
@ -85,7 +85,7 @@ class ModuleRbac_EntityPermission extends EntityORM
|
|||
$sPlugin = $this->getPlugin() ? $this->getPlugin() : '';
|
||||
if ($oObject = $this->Rbac_GetPermissionByCodeAndPlugin($this->getCode(), $sPlugin)) {
|
||||
if ($this->getId() != $oObject->getId()) {
|
||||
return 'Код должен быть уникальным';
|
||||
return $this->Lang_Get('rbac.notices.validate_permission_code');
|
||||
}
|
||||
}
|
||||
return true;
|
||||
|
|
|
@ -110,7 +110,7 @@ class ModuleRbac_EntityRole extends EntityORM
|
|||
{
|
||||
if ($oObject = $this->Rbac_GetRoleByCode($this->getCode())) {
|
||||
if ($this->getId() != $oObject->getId()) {
|
||||
return 'Код должен быть уникальным';
|
||||
return $this->Lang_Get('rbac.notices.validate_role_code');
|
||||
}
|
||||
}
|
||||
return true;
|
||||
|
@ -128,10 +128,10 @@ class ModuleRbac_EntityRole extends EntityORM
|
|||
if ($this->getPid()) {
|
||||
if ($oRole = $this->Rbac_GetRoleById($this->getPid())) {
|
||||
if ($oRole->getId() == $this->getId()) {
|
||||
return 'Попытка вложить роль в саму себя';
|
||||
return $this->Lang_Get('rbac.notices.validate_role_recursive');
|
||||
}
|
||||
} else {
|
||||
return 'Неверная роль';
|
||||
return $this->Lang_Get('rbac.notices.validate_role_wrong');
|
||||
}
|
||||
} else {
|
||||
$this->setPid(null);
|
||||
|
|
|
@ -68,7 +68,7 @@ class ModuleTopic_EntityTopicType extends Entity
|
|||
{
|
||||
if ($oType = $this->Topic_GetTopicTypeByCode($this->getCode())) {
|
||||
if ($oType->getId() != $this->getId()) {
|
||||
return 'Тип с таким кодом уже существует';
|
||||
return $this->Lang_Get('topic.content_type.notices.error_code');
|
||||
}
|
||||
}
|
||||
return true;
|
||||
|
@ -114,12 +114,12 @@ class ModuleTopic_EntityTopicType extends Entity
|
|||
public function getStateText()
|
||||
{
|
||||
if ($this->getState() == ModuleTopic::TOPIC_TYPE_STATE_ACTIVE) {
|
||||
return 'активен';
|
||||
return $this->Lang_Get('topic.content_type.states.active');
|
||||
}
|
||||
if ($this->getState() == ModuleTopic::TOPIC_TYPE_STATE_NOT_ACTIVE) {
|
||||
return 'не активен';
|
||||
return $this->Lang_Get('topic.content_type.states.not_active');
|
||||
}
|
||||
return 'неизвестный статус';
|
||||
return $this->Lang_Get('topic.content_type.states.wrong');
|
||||
}
|
||||
|
||||
public function getUrlForAdd()
|
||||
|
|
|
@ -24,7 +24,7 @@ return array(
|
|||
/**
|
||||
* Голосование
|
||||
*/
|
||||
'vote' => array(
|
||||
'vote' => array(
|
||||
'up' => 'Нравится',
|
||||
'down' => 'Не нравится',
|
||||
'abstain' => 'Воздержаться от голосования и посмотреть рейтинг',
|
||||
|
@ -44,7 +44,7 @@ return array(
|
|||
/**
|
||||
* Избранное
|
||||
*/
|
||||
'favourite' => array(
|
||||
'favourite' => array(
|
||||
'favourite' => 'Избранное',
|
||||
'add' => 'Добавить в избранное',
|
||||
'remove' => 'Удалить из избранного',
|
||||
|
@ -59,7 +59,7 @@ return array(
|
|||
/**
|
||||
* Поиск
|
||||
*/
|
||||
'search' => array(
|
||||
'search' => array(
|
||||
'search' => 'Поиск',
|
||||
'find' => 'Найти',
|
||||
'result' => array(
|
||||
|
@ -75,7 +75,7 @@ return array(
|
|||
/**
|
||||
* Сортировка
|
||||
*/
|
||||
'sort' => array(
|
||||
'sort' => array(
|
||||
'label' => 'Сортировать',
|
||||
'by_login' => 'по логину',
|
||||
'by_name' => 'по имени',
|
||||
|
@ -87,7 +87,7 @@ return array(
|
|||
/**
|
||||
* Заметка пользователя
|
||||
*/
|
||||
'user_note' => array(
|
||||
'user_note' => array(
|
||||
'add' => 'Написать заметку',
|
||||
// Всплывающие сообщения
|
||||
'notices' => array(
|
||||
|
@ -97,7 +97,7 @@ return array(
|
|||
/**
|
||||
* Блог
|
||||
*/
|
||||
'blog' => array(
|
||||
'blog' => array(
|
||||
'blog' => 'Блог',
|
||||
'blogs' => 'Блоги',
|
||||
'readers_declension' => 'читатель;читателя;читателей',
|
||||
|
@ -135,15 +135,15 @@ return array(
|
|||
'search' => array(
|
||||
'placeholder' => 'Поиск по названию',
|
||||
'result_title' => 'Найден %%count%% блог;Найдено %%count%% блога;Найдено %%count%% блогов',
|
||||
'form' => array(
|
||||
'type' => array(
|
||||
'any' => 'Любой',
|
||||
'public' => 'Открытый',
|
||||
'form' => array(
|
||||
'type' => array(
|
||||
'any' => 'Любой',
|
||||
'public' => 'Открытый',
|
||||
'private' => 'Закрытый'
|
||||
),
|
||||
'relation' => array(
|
||||
'all' => 'Все',
|
||||
'my' => 'Мои',
|
||||
'all' => 'Все',
|
||||
'my' => 'Мои',
|
||||
'joined' => 'Читаю'
|
||||
)
|
||||
)
|
||||
|
@ -223,7 +223,7 @@ return array(
|
|||
'label' => 'Аватар',
|
||||
'error' => 'Не удалось загрузить аватар',
|
||||
),
|
||||
'skip_index' => array(
|
||||
'skip_index' => array(
|
||||
'label' => 'Не выводить топики на главную',
|
||||
'note' => 'Все топики из этого блога не смогут попадать на главную страницу',
|
||||
),
|
||||
|
@ -381,7 +381,7 @@ return array(
|
|||
/**
|
||||
* Личные сообщения
|
||||
*/
|
||||
'talk' => array(
|
||||
'talk' => array(
|
||||
'title' => 'Сообщения',
|
||||
'participants' => '%%count%% участник;%%count%% участника;%%count%% участников',
|
||||
'new_messages' => 'У вас есть новые сообщения',
|
||||
|
@ -485,7 +485,7 @@ return array(
|
|||
'title' => 'Участники разговора',
|
||||
'inactive' => 'Пользователь не участвует в разговоре',
|
||||
// Сообщения
|
||||
'notices' => array(
|
||||
'notices' => array(
|
||||
'user_not_found' => 'Пользователь <b>%%login%%</b> не участвует в разговоре',
|
||||
'deleted' => 'Участник <b>%%login%%</b> удалил этот разговор',
|
||||
)
|
||||
|
@ -501,7 +501,7 @@ return array(
|
|||
/**
|
||||
* Опросы
|
||||
*/
|
||||
'poll' => array(
|
||||
'poll' => array(
|
||||
'polls' => 'Опросы',
|
||||
'vote' => 'Голосовать',
|
||||
'abstain' => 'Воздержаться',
|
||||
|
@ -533,13 +533,22 @@ return array(
|
|||
),
|
||||
// Всплывающие сообщения
|
||||
'notices' => array(
|
||||
'error_answers_max' => 'Максимально возможное число вариантов ответа %%count%%',
|
||||
'error_answers_max' => 'Максимально возможное число вариантов ответа %%count%%',
|
||||
'error_not_allow_vote' => 'В этом опросе уже нельзя голосовать',
|
||||
'error_not_allow_remove' => 'Этот опрос уже нельзя удалить',
|
||||
'error_already_vote' => 'Вы уже голосовали',
|
||||
'error_no_answers' => 'Необходимо выбрать вариант',
|
||||
'error_answers_max_wrong' => 'Максимальное количество вариантов ответа должно быть больше одного',
|
||||
'error_answers_count' => 'Необходимо заполнить больше одного варианта ответов',
|
||||
'error_answer_remove' => 'Нельзя удалить вариант ответа, за который уже голосовали',
|
||||
'error_target_type' => 'Неверный тип объекта',
|
||||
'error_target_tmp' => 'Временный идентификатор уже занят',
|
||||
),
|
||||
),
|
||||
/**
|
||||
* Комментарии
|
||||
*/
|
||||
'comments' => array(
|
||||
'comments' => array(
|
||||
'comments_declension' => '%%count%% комментарий;%%count%% комментария;%%count%% комментариев',
|
||||
'no_comments' => 'Нет комментариев',
|
||||
'count_new' => 'Число новых комментариев',
|
||||
|
@ -581,7 +590,7 @@ return array(
|
|||
/**
|
||||
* Пополняемый список пользователей
|
||||
*/
|
||||
'user_list_add' => array(
|
||||
'user_list_add' => array(
|
||||
// Форма добавления
|
||||
'form' => array(
|
||||
// Поля
|
||||
|
@ -601,7 +610,7 @@ return array(
|
|||
/**
|
||||
* Мэйлы
|
||||
*/
|
||||
'emails' => array(
|
||||
'emails' => array(
|
||||
'common' => array(
|
||||
'comment_text' => 'Текст комментария',
|
||||
'regards' => 'С уважением, администрация сайта',
|
||||
|
@ -789,7 +798,7 @@ return array(
|
|||
/**
|
||||
* Стена
|
||||
*/
|
||||
'wall' => array(
|
||||
'wall' => array(
|
||||
'title' => 'Стена',
|
||||
// Форма
|
||||
'form' => array(
|
||||
|
@ -814,7 +823,7 @@ return array(
|
|||
/**
|
||||
* Авторизация
|
||||
*/
|
||||
'auth' => array(
|
||||
'auth' => array(
|
||||
'authorization' => 'Авторизация',
|
||||
'logout' => 'Выйти',
|
||||
// Вход
|
||||
|
@ -947,7 +956,7 @@ return array(
|
|||
/**
|
||||
* Активность
|
||||
*/
|
||||
'activity' => array(
|
||||
'activity' => array(
|
||||
'title' => 'Активность',
|
||||
// Навигация
|
||||
'nav' => array(
|
||||
|
@ -1017,7 +1026,7 @@ return array(
|
|||
/**
|
||||
* Лента
|
||||
*/
|
||||
'feed' => array(
|
||||
'feed' => array(
|
||||
'title' => 'Лента',
|
||||
// Блоги
|
||||
'blogs' => array(
|
||||
|
@ -1034,7 +1043,7 @@ return array(
|
|||
/**
|
||||
* Топик
|
||||
*/
|
||||
'topic' => array(
|
||||
'topic' => array(
|
||||
'topics' => 'Топики',
|
||||
'topic_plural' => 'топик;топика;топиков',
|
||||
'drafts' => 'Черновики',
|
||||
|
@ -1048,6 +1057,16 @@ return array(
|
|||
'drafts' => 'Черновики', // TODO: Remove duplication
|
||||
'published' => 'Опубликованные'
|
||||
),
|
||||
'content_type' => array(
|
||||
'states' => array(
|
||||
'active' => 'активен',
|
||||
'not_active' => 'не активен',
|
||||
'wrong' => 'неизвестный статус',
|
||||
),
|
||||
'notices' => array(
|
||||
'error_code' => 'Тип с таким кодом уже существует',
|
||||
),
|
||||
),
|
||||
// Форма добавления
|
||||
'add' => array(
|
||||
'title' => array(
|
||||
|
@ -1106,6 +1125,8 @@ return array(
|
|||
'error_favourite_draft' => 'Топик из черновиков нельзя добавить в избранное',
|
||||
'time_limit' => 'Вам нельзя создавать топики слишком часто',
|
||||
'rating_limit' => 'Вам не хватает рейтинга для создания топика',
|
||||
'update_complete' => 'Обновление прошло успешно',
|
||||
'create_complete' => 'Добавление прошло успешно',
|
||||
)
|
||||
),
|
||||
// Комментарии
|
||||
|
@ -1131,7 +1152,7 @@ return array(
|
|||
* Пользователь
|
||||
* !user
|
||||
*/
|
||||
'user' => array(
|
||||
'user' => array(
|
||||
'user' => 'Пользователь',
|
||||
'users' => 'Пользователи',
|
||||
'rating' => '___vote.rating___',
|
||||
|
@ -1145,7 +1166,7 @@ return array(
|
|||
'report' => '___report.report___',
|
||||
),
|
||||
// Действия
|
||||
'choose' => array(
|
||||
'choose' => array(
|
||||
'label' => '___user.users___',
|
||||
'choose' => 'Выбрать из списка друзей',
|
||||
),
|
||||
|
@ -1236,11 +1257,11 @@ return array(
|
|||
'title' => 'Поиск по пользователям',
|
||||
'placeholder' => 'Поиск по логину',
|
||||
'result_title' => 'Найден %%count%% пользователь;Найдено %%count%% пользователя;Найдено %%count%% пользователей',
|
||||
'form' => array(
|
||||
'form' => array(
|
||||
'is_online' => 'Сейчас на сайте',
|
||||
'gender' => array(
|
||||
'any' => 'Любой',
|
||||
'male' => 'Мужской',
|
||||
'gender' => array(
|
||||
'any' => 'Любой',
|
||||
'male' => 'Мужской',
|
||||
'female' => 'Женский'
|
||||
)
|
||||
)
|
||||
|
@ -1455,7 +1476,7 @@ return array(
|
|||
/**
|
||||
* Поля
|
||||
*/
|
||||
'field' => array(
|
||||
'field' => array(
|
||||
'email' => array(
|
||||
'label' => 'E-mail',
|
||||
'notices' => array(
|
||||
|
@ -1474,27 +1495,61 @@ return array(
|
|||
'label' => 'Категория'
|
||||
),
|
||||
),
|
||||
/**
|
||||
* Категории
|
||||
*/
|
||||
'category' => array(
|
||||
'notices' => array(
|
||||
'validate_require' => 'Необходимо выбрать категорию',
|
||||
'validate_count' => 'Количество категорий должно быть от %%min%% до %%max%%',
|
||||
'validate_children' => 'Для выбора доступны только конечные категории',
|
||||
'validate_recursion' => 'Попытка вложить категорию в саму себя',
|
||||
'validate_parent' => 'Неверная родительская категория',
|
||||
'validate_wrong' => 'Неверная категория',
|
||||
),
|
||||
),
|
||||
/**
|
||||
* Кастомные поля
|
||||
*/
|
||||
'property' => array(
|
||||
'video' => array(
|
||||
'property' => array(
|
||||
'video' => array(
|
||||
'preview' => 'Предпросмотр видео',
|
||||
'watch' => 'Смотреть'
|
||||
'watch' => 'Смотреть'
|
||||
),
|
||||
'image' => array(
|
||||
'image' => array(
|
||||
'empty' => 'Изображения нет'
|
||||
),
|
||||
'file' => array(
|
||||
'file' => array(
|
||||
'forbidden' => 'Для доступа к файлу необходимо авторизоваться',
|
||||
'downloads' => 'Загрузок',
|
||||
'empty' => 'Файла нет'
|
||||
)
|
||||
'empty' => 'Файла нет'
|
||||
),
|
||||
'notices' => array(
|
||||
'validate_type' => 'Неверный тип поля',
|
||||
'validate_code' => 'Код поля должен быть уникальным',
|
||||
'validate_value_date_future' => 'дата не может быть в будущем',
|
||||
'validate_value_date_past' => 'дата не может быть в прошлом',
|
||||
'validate_value_file_empty' => 'Необходимо выбрать файл',
|
||||
'validate_value_file_upload' => 'При загрузке файла возникла ошибка',
|
||||
'validate_value_file_size_max' => 'Превышен размер файла, максимальный %%size%% Kb',
|
||||
'validate_value_file_type' => 'Неверный тип файла, допустимы %%types%%',
|
||||
'validate_value_image_wrong' => 'Файл не является изображением',
|
||||
'validate_value_image_width_max' => 'Максимальная допустимая ширина изображения %%size%%px',
|
||||
'validate_value_image_height_max' => 'Максимальная допустимая высота изображения %%size%%px',
|
||||
'validate_value_select_max' => 'Максимально можно выбрать только %%count%% элемента',
|
||||
'validate_value_select_min' => 'Минимально можно выбрать только %%count%% элемента',
|
||||
'validate_value_select_wrong' => 'Проверьте корректность выбранных элементов',
|
||||
'validate_value_select_only_one' => 'Можно выбрать только один элемент',
|
||||
'validate_value_video_wrong' => 'Необходимо указать корректную ссылку на видео: YouTube, Vimeo',
|
||||
'validate_value_wrong' => 'Поле "%%field%%": ',
|
||||
'validate_value_wrong_base' => 'неверное значение',
|
||||
'create_error' => 'Возникла ошибка при добавлении поля',
|
||||
),
|
||||
),
|
||||
/**
|
||||
* Админка
|
||||
*/
|
||||
'admin' => array(
|
||||
'admin' => array(
|
||||
'title' => 'Админка',
|
||||
'items' => array(
|
||||
'plugins' => '___admin.plugins.title___',
|
||||
|
@ -1532,7 +1587,7 @@ return array(
|
|||
/**
|
||||
* Жалобы
|
||||
*/
|
||||
'report' => array(
|
||||
'report' => array(
|
||||
'report' => 'Пожаловаться',
|
||||
'form' => array(
|
||||
'title' => '___report.report___',
|
||||
|
@ -1555,13 +1610,13 @@ return array(
|
|||
/**
|
||||
* Загрузкчик файлов
|
||||
*/
|
||||
'uploader' => array(
|
||||
'uploader' => array(
|
||||
'actions' => array(
|
||||
'remove' => '___common.remove___'
|
||||
),
|
||||
'filter' => array(
|
||||
'filter' => array(
|
||||
'uploaded' => 'Загруженные',
|
||||
'all' => 'Все'
|
||||
'all' => 'Все'
|
||||
),
|
||||
'info' => array(
|
||||
'empty' => 'Выберите файл',
|
||||
|
@ -1572,24 +1627,25 @@ return array(
|
|||
)
|
||||
)
|
||||
),
|
||||
'attach' => array(
|
||||
'title' => 'Прикрепить файлы',
|
||||
'attach' => array(
|
||||
'title' => 'Прикрепить файлы',
|
||||
'upload' => 'Загрузить',
|
||||
'count' => '%%count%% файл загружен;%%count%% файла загружено;%%count%% файлов загружено',
|
||||
'empty' => 'Нет загруженных файлов'
|
||||
'count' => '%%count%% файл загружен;%%count%% файла загружено;%%count%% файлов загружено',
|
||||
'empty' => 'Нет загруженных файлов'
|
||||
)
|
||||
),
|
||||
/**
|
||||
* Загрузка изображений
|
||||
*/
|
||||
'media' => array(
|
||||
'media' => array(
|
||||
'title' => 'Загрузка медиа-файлов',
|
||||
'error' => array(
|
||||
'upload' => 'Не удалось загрузить файл',
|
||||
'not_image' => 'Файл не является изображением',
|
||||
'too_large' => 'Превышен максимальный размер файла: %%size%%Кб',
|
||||
'incorrect_type' => 'Неверный тип файла',
|
||||
'max_count_files' => 'Превышено максимальное число файлов',
|
||||
'upload' => 'Не удалось загрузить файл',
|
||||
'not_image' => 'Файл не является изображением',
|
||||
'too_large' => 'Превышен максимальный размер файла: %%size%%Кб',
|
||||
'incorrect_type' => 'Неверный тип файла',
|
||||
'max_count_files' => 'Превышено максимальное число файлов',
|
||||
'need_choose_items' => 'Необходимо выбрать элементы',
|
||||
),
|
||||
'nav' => array(
|
||||
'insert' => 'Вставить',
|
||||
|
@ -1646,7 +1702,7 @@ return array(
|
|||
/**
|
||||
* Теги
|
||||
*/
|
||||
'tags' => array(
|
||||
'tags' => array(
|
||||
'tags' => 'Теги',
|
||||
'tag' => 'Тег',
|
||||
'search' => array(
|
||||
|
@ -1673,7 +1729,7 @@ return array(
|
|||
/**
|
||||
* Toolbar
|
||||
*/
|
||||
'toolbar' => array(
|
||||
'toolbar' => array(
|
||||
'scrollup' => array(
|
||||
'title' => 'Вверх',
|
||||
),
|
||||
|
@ -1685,7 +1741,7 @@ return array(
|
|||
/**
|
||||
* Создание
|
||||
*/
|
||||
'modal_create' => array(
|
||||
'modal_create' => array(
|
||||
'title' => 'Создать',
|
||||
'items' => array(
|
||||
'blog' => 'Блог',
|
||||
|
@ -1695,13 +1751,13 @@ return array(
|
|||
/**
|
||||
* Обрезка изображения
|
||||
*/
|
||||
'crop' => array(
|
||||
'crop' => array(
|
||||
'title' => 'Обрезка изображения'
|
||||
),
|
||||
/**
|
||||
* Экшнбар
|
||||
*/
|
||||
'actionbar' => array(
|
||||
'actionbar' => array(
|
||||
'select' => array(
|
||||
'title' => 'Выбрать',
|
||||
'menu' => array(
|
||||
|
@ -1714,7 +1770,7 @@ return array(
|
|||
/**
|
||||
* Управление правами (RBAC)
|
||||
*/
|
||||
'rbac' => array(
|
||||
'rbac' => array(
|
||||
'permission' => array(
|
||||
'create_blog' => array(
|
||||
'title' => 'Создание блога',
|
||||
|
@ -1765,5 +1821,14 @@ return array(
|
|||
'error' => 'У вас нет прав на голосования за топики',
|
||||
),
|
||||
),
|
||||
'notices' => array(
|
||||
'validate_group_code' => 'Код должен быть уникальным',
|
||||
'validate_group_wrong' => 'Неверная группа',
|
||||
'validate_permission_code' => 'Код должен быть уникальным',
|
||||
'validate_role_code' => 'Код должен быть уникальным',
|
||||
'validate_role_recursive' => 'Попытка вложить роль в саму себя',
|
||||
'validate_role_wrong' => 'Неверная роль',
|
||||
'error_not_allow' => 'У вас нет прав на "%%permission%%"',
|
||||
),
|
||||
),
|
||||
);
|
Loading…
Reference in a new issue