1
0
Fork 0
mirror of https://github.com/Oreolek/ifhub.club.git synced 2024-06-26 03:30:48 +03:00

Вынос текстовок в языковой файл

This commit is contained in:
Mzhelskiy Maxim 2017-01-23 19:46:35 +07:00
parent ca953371e9
commit dd310e31e0
20 changed files with 196 additions and 168 deletions

View file

@ -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"));
}
/**
* Получение информации о голосовании за топик
*/

View file

@ -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);
}
}
/**

View file

@ -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'));

View file

@ -45,6 +45,6 @@ class HookCopyright extends Hook
/**
* Выводим везде, кроме страницы списка блогов и списка всех комментов
*/
return '&copy; Powered by <a href="http://livestreetcms.org">LiveStreet CMS</a>';
return '&copy; Powered by <a href="https://catalog.livestreetcms.com">LiveStreet CMS</a>';
}
}

View file

@ -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');
}
}
}

View file

@ -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);

View file

@ -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');
}
}

View file

@ -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();

View file

@ -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;

View file

@ -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');
}
}
}

View file

@ -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;
}

View file

@ -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));
}
}

View file

@ -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')));
}
/**
* Для безопасности
@ -83,12 +83,12 @@ class ModuleProperty_EntityValueTypeSelect extends ModuleProperty_EntityValueTyp
$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');
}
}
/**

View file

@ -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 {

View file

@ -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']));
}
}
}

View file

@ -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;

View file

@ -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;

View file

@ -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);

View file

@ -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()

View file

@ -534,6 +534,15 @@ return array(
// Всплывающие сообщения
'notices' => array(
'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' => 'Временный идентификатор уже занят',
),
),
/**
@ -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' => 'Добавление прошло успешно',
)
),
// Комментарии
@ -1474,6 +1495,19 @@ return array(
'label' => 'Категория'
),
),
/**
* Категории
*/
'category' => array(
'notices' => array(
'validate_require' => 'Необходимо выбрать категорию',
'validate_count' => 'Количество категорий должно быть от %%min%% до %%max%%',
'validate_children' => 'Для выбора доступны только конечные категории',
'validate_recursion' => 'Попытка вложить категорию в саму себя',
'validate_parent' => 'Неверная родительская категория',
'validate_wrong' => 'Неверная категория',
),
),
/**
* Кастомные поля
*/
@ -1489,7 +1523,28 @@ return array(
'forbidden' => 'Для доступа к файлу необходимо авторизоваться',
'downloads' => 'Загрузок',
'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' => 'Возникла ошибка при добавлении поля',
),
),
/**
* Админка
@ -1590,6 +1645,7 @@ return array(
'too_large' => 'Превышен максимальный размер файла: %%size%%Кб',
'incorrect_type' => 'Неверный тип файла',
'max_count_files' => 'Превышено максимальное число файлов',
'need_choose_items' => 'Необходимо выбрать элементы',
),
'nav' => array(
'insert' => 'Вставить',
@ -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%%"',
),
),
);