mirror of
https://github.com/openvk/openvk
synced 2025-04-23 08:33:02 +03:00
😭😓
This commit is contained in:
parent
f7ed085314
commit
076309eec6
14 changed files with 274 additions and 76 deletions
|
@ -224,7 +224,7 @@ class Club extends RowModel
|
|||
"shape" => "spline",
|
||||
"color" => "#597da3",
|
||||
],
|
||||
"name" => $unique ? "Полный охват" : "Все просмотры",
|
||||
"name" => $unique ? tr("full_coverage") : tr("all_views"),
|
||||
],
|
||||
"subs" => [
|
||||
"x" => array_reverse(range(1, 7)),
|
||||
|
@ -235,7 +235,7 @@ class Club extends RowModel
|
|||
"color" => "#b05c91",
|
||||
],
|
||||
"fill" => "tozeroy",
|
||||
"name" => $unique ? "Охват подписчиков" : "Просмотры подписчиков",
|
||||
"name" => $unique ? tr("subs_coverage") : tr("subs_views"),
|
||||
],
|
||||
"viral" => [
|
||||
"x" => array_reverse(range(1, 7)),
|
||||
|
@ -246,7 +246,7 @@ class Club extends RowModel
|
|||
"color" => "#4d9fab",
|
||||
],
|
||||
"fill" => "tozeroy",
|
||||
"name" => $unique ? "Виральный охват" : "Виральные просмотры",
|
||||
"name" => $unique ? tr("viral_coverage") : tr("viral_views"),
|
||||
],
|
||||
];
|
||||
}
|
||||
|
|
|
@ -283,7 +283,7 @@ final class AdminPresenter extends OpenVKPresenter
|
|||
$this->notFound();
|
||||
|
||||
$gift->delete();
|
||||
$this->flashFail("succ", "Gift moved successfully", "This gift will now be in <b>Recycle Bin</b>.");
|
||||
$this->flashFail("succ", tr("admin_gift_moved_successfully"), tr("admin_gift_moved_to_recycle"));
|
||||
break;
|
||||
case "copy":
|
||||
case "move":
|
||||
|
@ -302,7 +302,7 @@ final class AdminPresenter extends OpenVKPresenter
|
|||
$catTo->addGift($gift);
|
||||
|
||||
$name = $catTo->getName();
|
||||
$this->flash("succ", "Gift moved successfully", "This gift will now be in <b>$name</b>.");
|
||||
$this->flash("succ", tr("admin_gift_moved_successfully"), "This gift will now be in <b>$name</b>.");
|
||||
$this->redirect("/admin/gifts/" . $catTo->getSlug() . "." . $catTo->getId() . "/");
|
||||
break;
|
||||
default:
|
||||
|
@ -333,10 +333,10 @@ final class AdminPresenter extends OpenVKPresenter
|
|||
$gift->setUsages((int) $this->postParam("usages"));
|
||||
if(isset($_FILES["pic"]) && $_FILES["pic"]["error"] === UPLOAD_ERR_OK) {
|
||||
if(!$gift->setImage($_FILES["pic"]["tmp_name"]))
|
||||
$this->flashFail("err", "Не удалось сохранить подарок", "Изображение подарка кривое.");
|
||||
$this->flashFail("err", tr("error_when_saving_gift"), tr("error_when_saving_gift_bad_image"));
|
||||
} else if($gen) {
|
||||
# If there's no gift pic but it's newly created
|
||||
$this->flashFail("err", "Не удалось сохранить подарок", "Пожалуйста, загрузите изображение подарка.");
|
||||
$this->flashFail("err", tr("error_when_saving_gift"), tr("error_when_saving_gift_no_image"));
|
||||
}
|
||||
|
||||
$gift->save();
|
||||
|
|
|
@ -55,7 +55,7 @@ final class CommentPresenter extends OpenVKPresenter
|
|||
$this->flashFail("err", tr("error"), tr("forbidden"));
|
||||
|
||||
if($_FILES["_vid_attachment"] && OPENVK_ROOT_CONF['openvk']['preferences']['videos']['disableUploading'])
|
||||
$this->flashFail("err", tr("error"), "Video uploads are disabled by the system administrator.");
|
||||
$this->flashFail("err", tr("error"), tr("video_uploads_disabled"));
|
||||
|
||||
$flags = 0;
|
||||
if($this->postParam("as_group") === "on" && !is_null($club) && $club->canBeModifiedBy($this->user->identity))
|
||||
|
@ -66,7 +66,7 @@ final class CommentPresenter extends OpenVKPresenter
|
|||
try {
|
||||
$photo = Photo::fastMake($this->user->id, $this->postParam("text"), $_FILES["_pic_attachment"]);
|
||||
} catch(ISE $ex) {
|
||||
$this->flashFail("err", "Не удалось опубликовать пост", "Файл изображения повреждён, слишком велик или одна сторона изображения в разы больше другой.");
|
||||
$this->flashFail("err", tr("error_when_publishing_comment"), tr("error_when_publishing_comment_description"));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -86,11 +86,11 @@ final class CommentPresenter extends OpenVKPresenter
|
|||
$video = Video::fastMake($this->user->id, $_FILES["_vid_attachment"]["name"], $this->postParam("text"), $_FILES["_vid_attachment"]);
|
||||
}
|
||||
} catch(ISE $ex) {
|
||||
$this->flashFail("err", "Не удалось опубликовать комментарий", "Файл медиаконтента повреждён или слишком велик.");
|
||||
$this->flashFail("err", tr("error_when_publishing_comment"), tr("error_comment_file_too_big"));
|
||||
}
|
||||
|
||||
if(empty($this->postParam("text")) && !$photo && !$video)
|
||||
$this->flashFail("err", "Не удалось опубликовать комментарий", "Комментарий пустой или слишком большой.");
|
||||
$this->flashFail("err", tr("error_when_publishing_comment"), tr("error_comment_empty"));
|
||||
|
||||
try {
|
||||
$comment = new Comment;
|
||||
|
@ -102,7 +102,7 @@ final class CommentPresenter extends OpenVKPresenter
|
|||
$comment->setFlags($flags);
|
||||
$comment->save();
|
||||
} catch (\LengthException $ex) {
|
||||
$this->flashFail("err", "Не удалось опубликовать комментарий", "Комментарий слишком большой.");
|
||||
$this->flashFail("err", tr("error_when_publishing_comment"), tr("error_comment_too_big"));
|
||||
}
|
||||
|
||||
if(!is_null($photo))
|
||||
|
@ -124,7 +124,7 @@ final class CommentPresenter extends OpenVKPresenter
|
|||
if($mentionee instanceof User)
|
||||
(new MentionNotification($mentionee, $entity, $comment->getOwner(), strip_tags($comment->getText())))->emit();
|
||||
|
||||
$this->flashFail("succ", "Комментарий добавлен", "Ваш комментарий появится на странице.");
|
||||
$this->flashFail("succ", tr("comment_is_added"), tr("comment_is_added_desc"));
|
||||
}
|
||||
|
||||
function renderDeleteComment(int $id): void
|
||||
|
@ -135,15 +135,15 @@ final class CommentPresenter extends OpenVKPresenter
|
|||
$comment = (new Comments)->get($id);
|
||||
if(!$comment) $this->notFound();
|
||||
if(!$comment->canBeDeletedBy($this->user->identity))
|
||||
$this->throwError(403, "Forbidden", "У вас недостаточно прав чтобы редактировать этот ресурс.");
|
||||
$this->throwError(403, "Forbidden", tr("error_access_denied"));
|
||||
if ($comment->getTarget() instanceof Post && $comment->getTarget()->getWallOwner()->isBanned())
|
||||
$this->flashFail("err", tr("error"), tr("forbidden"));
|
||||
|
||||
$comment->delete();
|
||||
$this->flashFail(
|
||||
"succ",
|
||||
"Успешно",
|
||||
"Этот комментарий больше не будет показыватся.<br/><a href='/al_comments/spam?$id'>Отметить как спам</a>?"
|
||||
tr("success"),
|
||||
tr("comment_will_not_appear")
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -49,7 +49,7 @@ final class GiftsPresenter extends OpenVKPresenter
|
|||
$user = $this->users->get((int) ($this->queryParam("user") ?? 0));
|
||||
$cat = $this->gifts->getCat((int) ($this->queryParam("pack") ?? 0));
|
||||
if(!$user || !$cat)
|
||||
$this->flashFail("err", "Не удалось подарить", "Пользователь или набор не существуют.");
|
||||
$this->flashFail("err", tr("error_when_gifting"), tr("error_user_not_exists"));
|
||||
|
||||
$this->template->page = $page = (int) ($this->queryParam("p") ?? 1);
|
||||
$gifts = $cat->getGifts($page, null, $this->template->count);
|
||||
|
@ -66,14 +66,14 @@ final class GiftsPresenter extends OpenVKPresenter
|
|||
$gift = $this->gifts->get((int) ($this->queryParam("elid") ?? 0));
|
||||
$cat = $this->gifts->getCat((int) ($this->queryParam("pack") ?? 0));
|
||||
if(!$user || !$cat || !$gift || !$cat->hasGift($gift))
|
||||
$this->flashFail("err", "Не удалось подарить", "Не удалось подтвердить права на подарок.");
|
||||
$this->flashFail("err", tr("error_when_gifting"), tr("error_no_rights_gifts"));
|
||||
|
||||
if(!$gift->canUse($this->user->identity))
|
||||
$this->flashFail("err", "Не удалось подарить", "У вас больше не осталось таких подарков.");
|
||||
$this->flashFail("err", tr("error_when_gifting"), tr("error_no_more_gifts"));
|
||||
|
||||
$coinsLeft = $this->user->identity->getCoins() - $gift->getPrice();
|
||||
if($coinsLeft < 0)
|
||||
$this->flashFail("err", "Не удалось подарить", "Ору нищ не пук.");
|
||||
$this->flashFail("err", tr("error_when_gifting"), tr("error_no_money"));
|
||||
|
||||
$this->template->_template = "Gifts/Confirm.xml";
|
||||
if($_SERVER["REQUEST_METHOD"] !== "POST") {
|
||||
|
@ -91,7 +91,7 @@ final class GiftsPresenter extends OpenVKPresenter
|
|||
$user->gift($this->user->identity, $gift, $comment, !is_null($this->postParam("anonymous")));
|
||||
$gift->used();
|
||||
|
||||
$this->flash("succ", "Подарок отправлен", "Вы отправили подарок <b>" . $user->getFirstName() . "</b> за " . $gift->getPrice() . " голосов.");
|
||||
$this->flash("succ", tr("gift_sent"), tr("gift_sent_desc", $user->getFirstName(), $gift->getPrice()));
|
||||
$this->redirect($user->getURL());
|
||||
}
|
||||
|
||||
|
|
|
@ -54,7 +54,7 @@ final class GroupPresenter extends OpenVKPresenter
|
|||
$club->save();
|
||||
} catch(\PDOException $ex) {
|
||||
if($ex->getCode() == 23000)
|
||||
$this->flashFail("err", "Ошибка", "Произошла ошибка на стороне сервера. Обратитесь к системному администратору.");
|
||||
$this->flashFail("err", tr("error"), tr("error_on_server_side"));
|
||||
else
|
||||
throw $ex;
|
||||
}
|
||||
|
@ -62,7 +62,7 @@ final class GroupPresenter extends OpenVKPresenter
|
|||
$club->toggleSubscription($this->user->identity);
|
||||
$this->redirect("/club" . $club->getId());
|
||||
}else{
|
||||
$this->flashFail("err", "Ошибка", "Вы не ввели название группы.");
|
||||
$this->flashFail("err", tr("error"), tr("error_no_group_name"));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -132,7 +132,7 @@ final class GroupPresenter extends OpenVKPresenter
|
|||
$this->notFound();
|
||||
|
||||
if(!$club->canBeModifiedBy($this->user->identity ?? NULL))
|
||||
$this->flashFail("err", "Ошибка доступа", "У вас недостаточно прав, чтобы изменять этот ресурс.");
|
||||
$this->flashFail("err", tr("error_access_denied_short"), tr("error_access_denied"));
|
||||
|
||||
if(!is_null($hidden)) {
|
||||
if($club->getOwner()->getId() == $user->getId()) {
|
||||
|
@ -150,9 +150,9 @@ final class GroupPresenter extends OpenVKPresenter
|
|||
}
|
||||
|
||||
if($hidden) {
|
||||
$this->flashFail("succ", "Операция успешна", "Теперь " . $user->getCanonicalName() . " будет показываться как обычный подписчик всем кроме других администраторов");
|
||||
$this->flashFail("succ", tr("success_action"), tr("x_is_now_hidden", $user->getCanonicalName()));
|
||||
} else {
|
||||
$this->flashFail("succ", "Операция успешна", "Теперь все будут знать про то что " . $user->getCanonicalName() . " - администратор");
|
||||
$this->flashFail("succ", tr("success_action"), tr("x_is_now_showed", $user->getCanonicalName()));
|
||||
}
|
||||
} elseif($removeComment) {
|
||||
if($club->getOwner()->getId() == $user->getId()) {
|
||||
|
@ -164,11 +164,11 @@ final class GroupPresenter extends OpenVKPresenter
|
|||
$manager->save();
|
||||
}
|
||||
|
||||
$this->flashFail("succ", "Операция успешна", "Комментарий к администратору удален");
|
||||
$this->flashFail("succ", tr("success_action"), tr("comment_is_deleted"));
|
||||
} elseif($comment) {
|
||||
if(mb_strlen($comment) > 36) {
|
||||
$commentLength = (string) mb_strlen($comment);
|
||||
$this->flashFail("err", "Ошибка", "Комментарий слишком длинный ($commentLength символов вместо 36 символов)");
|
||||
$this->flashFail("err", tr("error"), tr("comment_is_too_long", $commentLength));
|
||||
}
|
||||
|
||||
if($club->getOwner()->getId() == $user->getId()) {
|
||||
|
@ -180,16 +180,16 @@ final class GroupPresenter extends OpenVKPresenter
|
|||
$manager->save();
|
||||
}
|
||||
|
||||
$this->flashFail("succ", "Операция успешна", "Комментарий к администратору изменён");
|
||||
$this->flashFail("succ", tr("success_action"), tr("comment_is_changed"));
|
||||
}else{
|
||||
if($club->canBeModifiedBy($user)) {
|
||||
$club->removeManager($user);
|
||||
$this->flashFail("succ", "Операция успешна", $user->getCanonicalName() . " более не администратор.");
|
||||
$this->flashFail("succ", tr("success_action"), tr("x_no_more_admin", $user->getCanonicalName()));
|
||||
} else {
|
||||
$club->addManager($user);
|
||||
|
||||
(new ClubModeratorNotification($user, $club, $this->user->identity))->emit();
|
||||
$this->flashFail("succ", "Операция успешна", $user->getCanonicalName() . " назначен(а) администратором.");
|
||||
$this->flashFail("succ", tr("success_action"), tr("x_is_admin", $user->getCanonicalName()));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -245,7 +245,7 @@ final class GroupPresenter extends OpenVKPresenter
|
|||
(new Albums)->getClubAvatarAlbum($club)->addPhoto($photo);
|
||||
} catch(ISE $ex) {
|
||||
$name = $album->getName();
|
||||
$this->flashFail("err", "Неизвестная ошибка", "Не удалось сохранить фотографию.");
|
||||
$this->flashFail("err", tr("error"), tr("error_when_uploading_photo"));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -253,12 +253,12 @@ final class GroupPresenter extends OpenVKPresenter
|
|||
$club->save();
|
||||
} catch(\PDOException $ex) {
|
||||
if($ex->getCode() == 23000)
|
||||
$this->flashFail("err", "Ошибка", "Произошла ошибка на стороне сервера. Обратитесь к системному администратору.");
|
||||
$this->flashFail("err", tr("error"), tr("error_on_server_side"));
|
||||
else
|
||||
throw $ex;
|
||||
}
|
||||
|
||||
$this->flash("succ", "Изменения сохранены", "Новые данные появятся в вашей группе.");
|
||||
$this->flash("succ", tr("changes_saved"), tr("new_changes_desc"));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -298,7 +298,7 @@ final class GroupPresenter extends OpenVKPresenter
|
|||
|
||||
} catch(ISE $ex) {
|
||||
$name = $album->getName();
|
||||
$this->flashFail("err", "Неизвестная ошибка", "Не удалось сохранить фотографию.");
|
||||
$this->flashFail("err", tr("error"), tr("error_when_uploading_photo"));
|
||||
}
|
||||
}
|
||||
$this->returnJson([
|
||||
|
@ -350,7 +350,7 @@ final class GroupPresenter extends OpenVKPresenter
|
|||
$this->assertUserLoggedIn();
|
||||
|
||||
if(!eventdb())
|
||||
$this->flashFail("err", "Ошибка подключения", "Не удалось подключится к службе телеметрии.");
|
||||
$this->flashFail("err", tr("connection_error"), tr("connection_error_desc"));
|
||||
|
||||
$club = $this->clubs->get($id);
|
||||
if(!$club->canBeModifiedBy($this->user->identity))
|
||||
|
|
|
@ -107,7 +107,7 @@ final class NotesPresenter extends OpenVKPresenter
|
|||
if(!$note || $note->getOwner()->getId() !== $owner || $note->isDeleted())
|
||||
$this->notFound();
|
||||
if(is_null($this->user) || !$note->canBeModifiedBy($this->user->identity))
|
||||
$this->flashFail("err", "Ошибка доступа", "Недостаточно прав для модификации данного ресурса.");
|
||||
$this->flashFail("err", tr("error_access_denied_short"), tr("error_access_denied"));
|
||||
$this->template->note = $note;
|
||||
|
||||
if($_SERVER["REQUEST_METHOD"] === "POST") {
|
||||
|
@ -135,11 +135,11 @@ final class NotesPresenter extends OpenVKPresenter
|
|||
if(!$note) $this->notFound();
|
||||
if($note->getOwner()->getId() . "_" . $note->getId() !== $owner . "_" . $id || $note->isDeleted()) $this->notFound();
|
||||
if(is_null($this->user) || !$note->canBeModifiedBy($this->user->identity))
|
||||
$this->flashFail("err", "Ошибка доступа", "Недостаточно прав для модификации данного ресурса.");
|
||||
$this->flashFail("err", tr("error_access_denied_short"), tr("error_access_denied"));
|
||||
|
||||
$name = $note->getName();
|
||||
$note->delete();
|
||||
$this->flash("succ", "Заметка удалена", "Заметка \"$name\" была успешно удалена.");
|
||||
$this->flash("succ", tr("note_is_deleted"), tr("note_x_is_now_deleted", $name));
|
||||
$this->redirect("/notes" . $this->user->id);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -94,7 +94,7 @@ final class PhotosPresenter extends OpenVKPresenter
|
|||
if(!$album) $this->notFound();
|
||||
if($album->getPrettyId() !== $owner . "_" . $id || $album->isDeleted()) $this->notFound();
|
||||
if(is_null($this->user) || !$album->canBeModifiedBy($this->user->identity) || $album->isDeleted())
|
||||
$this->flashFail("err", "Ошибка доступа", "Недостаточно прав для модификации данного ресурса.");
|
||||
$this->flashFail("err", tr("error_access_denied_short"), tr("error_access_denied"));
|
||||
$this->template->album = $album;
|
||||
|
||||
if($_SERVER["REQUEST_METHOD"] === "POST") {
|
||||
|
@ -106,7 +106,7 @@ final class PhotosPresenter extends OpenVKPresenter
|
|||
$album->setEdited(time());
|
||||
$album->save();
|
||||
|
||||
$this->flash("succ", "Изменения сохранены", "Новые данные приняты.");
|
||||
$this->flash("succ", tr("changes_saved"), tr("new_data_accepted"));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -120,13 +120,13 @@ final class PhotosPresenter extends OpenVKPresenter
|
|||
if(!$album) $this->notFound();
|
||||
if($album->getPrettyId() !== $owner . "_" . $id || $album->isDeleted()) $this->notFound();
|
||||
if(is_null($this->user) || !$album->canBeModifiedBy($this->user->identity))
|
||||
$this->flashFail("err", "Ошибка доступа", "Недостаточно прав для модификации данного ресурса.");
|
||||
$this->flashFail("err", tr("error_access_denied_short"), tr("error_access_denied"));
|
||||
|
||||
$name = $album->getName();
|
||||
$owner = $album->getOwner();
|
||||
$album->delete();
|
||||
|
||||
$this->flash("succ", "Альбом удалён", "Альбом $name был успешно удалён.");
|
||||
$this->flash("succ", tr("album_is_deleted"), tr("album_x_is_deleted", $name));
|
||||
$this->redirect("/albums" . ($owner instanceof Club ? "-" : "") . $owner->getId());
|
||||
}
|
||||
|
||||
|
@ -205,13 +205,13 @@ final class PhotosPresenter extends OpenVKPresenter
|
|||
$photo = $this->photos->getByOwnerAndVID($ownerId, $photoId);
|
||||
if(!$photo) $this->notFound();
|
||||
if(is_null($this->user) || $this->user->id != $ownerId)
|
||||
$this->flashFail("err", "Ошибка доступа", "Недостаточно прав для модификации данного ресурса.");
|
||||
$this->flashFail("err", tr("error_access_denied_short"), tr("error_access_denied"));
|
||||
|
||||
if($_SERVER["REQUEST_METHOD"] === "POST") {
|
||||
$photo->setDescription(empty($this->postParam("desc")) ? NULL : $this->postParam("desc"));
|
||||
$photo->save();
|
||||
|
||||
$this->flash("succ", "Изменения сохранены", "Обновлённое описание появится на странице с фоткой.");
|
||||
$this->flash("succ", tr("changes_saved"), tr("new_description_will_appear"));
|
||||
$this->redirect("/photo" . $photo->getPrettyId());
|
||||
}
|
||||
|
||||
|
@ -224,18 +224,18 @@ final class PhotosPresenter extends OpenVKPresenter
|
|||
$this->willExecuteWriteAction();
|
||||
|
||||
if(is_null($this->queryParam("album")))
|
||||
$this->flashFail("err", "Неизвестная ошибка", "Не удалось сохранить фотографию в <b>DELETED</b>.");
|
||||
$this->flashFail("err", tr("error"), tr("error_adding_to_deleted"));
|
||||
|
||||
[$owner, $id] = explode("_", $this->queryParam("album"));
|
||||
$album = $this->albums->get((int) $id);
|
||||
if(!$album)
|
||||
$this->flashFail("err", "Неизвестная ошибка", "Не удалось сохранить фотографию в <b>DELETED</b>.");
|
||||
$this->flashFail("err", tr("error"), tr("error_adding_to_deleted"));
|
||||
if(is_null($this->user) || !$album->canBeModifiedBy($this->user->identity))
|
||||
$this->flashFail("err", "Ошибка доступа", "Недостаточно прав для модификации данного ресурса.");
|
||||
$this->flashFail("err", tr("error_access_denied_short"), tr("error_access_denied"));
|
||||
|
||||
if($_SERVER["REQUEST_METHOD"] === "POST") {
|
||||
if(!isset($_FILES["blob"]))
|
||||
$this->flashFail("err", "Нету фотографии", "Выберите файл.");
|
||||
$this->flashFail("err", tr("no_photo"), tr("select_file"));
|
||||
|
||||
try {
|
||||
$photo = new Photo;
|
||||
|
@ -246,7 +246,7 @@ final class PhotosPresenter extends OpenVKPresenter
|
|||
$photo->save();
|
||||
} catch(ISE $ex) {
|
||||
$name = $album->getName();
|
||||
$this->flashFail("err", "Неизвестная ошибка", "Не удалось сохранить фотографию в <b>$name</b>.");
|
||||
$this->flashFail("err", tr("no_photo"), tr("error_adding_to_x", $name));
|
||||
}
|
||||
|
||||
$album->addPhoto($photo);
|
||||
|
@ -269,7 +269,7 @@ final class PhotosPresenter extends OpenVKPresenter
|
|||
if(!$album || !$photo) $this->notFound();
|
||||
if(!$album->hasPhoto($photo)) $this->notFound();
|
||||
if(is_null($this->user) || !$album->canBeModifiedBy($this->user->identity))
|
||||
$this->flashFail("err", "Ошибка доступа", "Недостаточно прав для модификации данного ресурса.");
|
||||
$this->flashFail("err", tr("error_access_denied_short"), tr("error_access_denied"));
|
||||
|
||||
if($_SERVER["REQUEST_METHOD"] === "POST") {
|
||||
$this->assertNoCSRF();
|
||||
|
@ -277,7 +277,7 @@ final class PhotosPresenter extends OpenVKPresenter
|
|||
$album->setEdited(time());
|
||||
$album->save();
|
||||
|
||||
$this->flash("succ", "Фотография удалена", "Эта фотография была успешно удалена.");
|
||||
$this->flash("succ", tr("photo_is_deleted"), tr("photo_is_deleted_desc"));
|
||||
$this->redirect("/album" . $album->getPrettyId());
|
||||
}
|
||||
}
|
||||
|
@ -291,12 +291,12 @@ final class PhotosPresenter extends OpenVKPresenter
|
|||
$photo = $this->photos->getByOwnerAndVID($ownerId, $photoId);
|
||||
if(!$photo) $this->notFound();
|
||||
if(is_null($this->user) || $this->user->id != $ownerId)
|
||||
$this->flashFail("err", "Ошибка доступа", "Недостаточно прав для модификации данного ресурса.");
|
||||
$this->flashFail("err", tr("error_access_denied_short"), tr("error_access_denied"));
|
||||
|
||||
$photo->isolate();
|
||||
$photo->delete();
|
||||
|
||||
$this->flash("succ", "Фотография удалена", "Эта фотография была успешно удалена.");
|
||||
$this->flash("succ", tr("photo_is_deleted"), tr("photo_is_deleted_desc"));
|
||||
$this->redirect("/id0");
|
||||
}
|
||||
}
|
||||
|
|
|
@ -118,22 +118,22 @@ final class ReportPresenter extends OpenVKPresenter
|
|||
$report->deleteContent();
|
||||
$report->banUser($this->user->identity->getId());
|
||||
|
||||
$this->flash("suc", "Смэрть...", "Пользователь успешно забанен.");
|
||||
$this->flash("suc", tr("death"), tr("user_successfully_banned"));
|
||||
} else if ($this->postParam("delete")) {
|
||||
$report->deleteContent();
|
||||
|
||||
$this->flash("suc", "Нехай живе!", "Контент удалён, а пользователю прилетело предупреждение.");
|
||||
$this->flash("suc", tr("nehay"), tr("content_is_deleted"));
|
||||
} else if ($this->postParam("ignore")) {
|
||||
$report->delete();
|
||||
|
||||
$this->flash("suc", "Нехай живе!", "Жалоба проигнорирована.");
|
||||
$this->flash("suc", tr("nehay"), tr("report_is_ignored"));
|
||||
} else if ($this->postParam("banClubOwner") || $this->postParam("banClub")) {
|
||||
if ($report->getContentType() !== "group")
|
||||
$this->flashFail("err", "Ошибка доступа", "Недостаточно прав для модификации данного ресурса.");
|
||||
$this->flashFail("err", tr("error_access_denied_short"), tr("error_access_denied"));
|
||||
|
||||
$club = $report->getContentObject();
|
||||
if (!$club || $club->isBanned())
|
||||
$this->flashFail("err", "Ошибка доступа", "Недостаточно прав для модификации данного ресурса.");
|
||||
$this->flashFail("err", tr("error_access_denied_short"), tr("error_access_denied"));
|
||||
|
||||
if ($this->postParam("banClubOwner")) {
|
||||
$club->getOwner()->ban("**content-" . $report->getContentType() . "-" . $report->getContentId() . "**", false, $club->getOwner()->getNewBanTime(), $this->user->identity->getId());
|
||||
|
@ -143,7 +143,7 @@ final class ReportPresenter extends OpenVKPresenter
|
|||
|
||||
$report->delete();
|
||||
|
||||
$this->flash("suc", "Смэрть...", ($this->postParam("banClubOwner") ? "Создатель сообщества успешно забанен." : "Сообщество успешно забанено"));
|
||||
$this->flash("suc", tr("death"), ($this->postParam("banClubOwner") ? tr("group_owner_is_banned") : tr("group_is_banned")));
|
||||
}
|
||||
|
||||
$this->redirect("/scumfeed");
|
||||
|
|
|
@ -111,7 +111,7 @@ final class TopicsPresenter extends OpenVKPresenter
|
|||
$video = Video::fastMake($this->user->id, $_FILES["_vid_attachment"]["name"], $this->postParam("text"), $_FILES["_vid_attachment"]);
|
||||
}
|
||||
} catch(ISE $ex) {
|
||||
$this->flash("err", "Не удалось опубликовать комментарий", "Файл медиаконтента повреждён или слишком велик.");
|
||||
$this->flash("err", tr("error_when_publishing_comment"), tr("error_comment_file_too_big"));
|
||||
$this->redirect("/topic" . $topic->getPrettyId());
|
||||
}
|
||||
|
||||
|
@ -126,7 +126,7 @@ final class TopicsPresenter extends OpenVKPresenter
|
|||
$comment->setFlags($flags);
|
||||
$comment->save();
|
||||
} catch (\LengthException $ex) {
|
||||
$this->flash("err", "Не удалось опубликовать комментарий", "Комментарий слишком большой.");
|
||||
$this->flash("err", tr("error_when_publishing_comment"), tr("error_comment_too_big"));
|
||||
$this->redirect("/topic" . $topic->getPrettyId());
|
||||
}
|
||||
|
||||
|
|
|
@ -72,7 +72,7 @@ final class UserPresenter extends OpenVKPresenter
|
|||
if(!is_null($this->user)) {
|
||||
if($this->template->mode !== "friends" && $this->user->id !== $id) {
|
||||
$name = $user->getFullName();
|
||||
$this->flash("err", "Ошибка доступа", "Вы не можете просматривать полный список подписок $name.");
|
||||
$this->flash("err", tr("error_access_denied_short"), tr("error_viewing_subs", $name));
|
||||
|
||||
$this->redirect($user->getURL());
|
||||
}
|
||||
|
@ -107,11 +107,11 @@ final class UserPresenter extends OpenVKPresenter
|
|||
$this->notFound();
|
||||
|
||||
if(!$club->canBeModifiedBy($this->user->identity ?? NULL))
|
||||
$this->flashFail("err", "Ошибка доступа", "У вас недостаточно прав, чтобы изменять этот ресурс.", NULL, true);
|
||||
$this->flashFail("err", tr("error_access_denied_short"), tr("error_access_denied"), NULL, true);
|
||||
|
||||
$isClubPinned = $this->user->identity->isClubPinned($club);
|
||||
if(!$isClubPinned && $this->user->identity->getPinnedClubCount() > 10)
|
||||
$this->flashFail("err", "Ошибка", "Находится в левом меню могут максимум 10 групп", NULL, true);
|
||||
$this->flashFail("err", tr("error"), tr("error_max_pinned_clubs"), NULL, true);
|
||||
|
||||
if($club->getOwner()->getId() === $this->user->identity->getId()) {
|
||||
$club->setOwner_Club_Pinned(!$isClubPinned);
|
||||
|
@ -237,7 +237,7 @@ final class UserPresenter extends OpenVKPresenter
|
|||
} elseif($_GET['act'] === "status") {
|
||||
if(mb_strlen($this->postParam("status")) > 255) {
|
||||
$statusLength = (string) mb_strlen($this->postParam("status"));
|
||||
$this->flashFail("err", "Ошибка", "Статус слишком длинный ($statusLength символов вместо 255 символов)", NULL, true);
|
||||
$this->flashFail("err", tr("error"), tr("error_status_too_long", $statusLength), NULL, true);
|
||||
}
|
||||
|
||||
$user->setStatus(empty($this->postParam("status")) ? NULL : $this->postParam("status"));
|
||||
|
@ -281,7 +281,7 @@ final class UserPresenter extends OpenVKPresenter
|
|||
|
||||
if($_SERVER["REQUEST_METHOD"] === "POST") {
|
||||
if(!$user->verifyNumber($this->postParam("code") ?? 0))
|
||||
$this->flashFail("err", "Ошибка", "Не удалось подтвердить номер телефона: неверный код.");
|
||||
$this->flashFail("err", tr("error"), tr("invalid_code"));
|
||||
|
||||
$this->flash("succ", tr("changes_saved"), tr("changes_saved_comment"));
|
||||
}
|
||||
|
|
|
@ -58,7 +58,7 @@ final class VideosPresenter extends OpenVKPresenter
|
|||
$this->willExecuteWriteAction();
|
||||
|
||||
if(OPENVK_ROOT_CONF['openvk']['preferences']['videos']['disableUploading'])
|
||||
$this->flashFail("err", tr("error"), "Video uploads are disabled by the system administrator.");
|
||||
$this->flashFail("err", tr("error"), tr("video_uploads_disabled"));
|
||||
|
||||
if($_SERVER["REQUEST_METHOD"] === "POST") {
|
||||
if(!empty($this->postParam("name"))) {
|
||||
|
@ -74,18 +74,18 @@ final class VideosPresenter extends OpenVKPresenter
|
|||
else if(!empty($this->postParam("link")))
|
||||
$video->setLink($this->postParam("link"));
|
||||
else
|
||||
$this->flashFail("err", "Нету видеозаписи", "Выберите файл или укажите ссылку.");
|
||||
$this->flashFail("err", tr("no_video"), tr("no_video_desc"));
|
||||
} catch(\DomainException $ex) {
|
||||
$this->flashFail("err", "Произошла ошибка", "Файл повреждён или не содержит видео." );
|
||||
$this->flashFail("err", tr("error_occured"), tr("error_video_damaged_file"));
|
||||
} catch(ISE $ex) {
|
||||
$this->flashFail("err", "Произошла ошибка", "Возможно, ссылка некорректна.");
|
||||
$this->flashFail("err", tr("error_occured"), tr("error_video_incorrect_link"));
|
||||
}
|
||||
|
||||
$video->save();
|
||||
|
||||
$this->redirect("/video" . $video->getPrettyId());
|
||||
} else {
|
||||
$this->flashFail("err", "Произошла ошибка", "Видео не может быть опубликовано без названия.");
|
||||
$this->flashFail("err", tr("error_occured"), tr("error_video_no_title"));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -99,14 +99,14 @@ final class VideosPresenter extends OpenVKPresenter
|
|||
if(!$video)
|
||||
$this->notFound();
|
||||
if(is_null($this->user) || $this->user->id !== $owner)
|
||||
$this->flashFail("err", "Ошибка доступа", "Вы не имеете права редактировать этот ресурс.");
|
||||
$this->flashFail("err", tr("error_access_denied_short"), tr("error_access_denied"));
|
||||
|
||||
if($_SERVER["REQUEST_METHOD"] === "POST") {
|
||||
$video->setName(empty($this->postParam("name")) ? NULL : $this->postParam("name"));
|
||||
$video->setDescription(empty($this->postParam("desc")) ? NULL : $this->postParam("desc"));
|
||||
$video->save();
|
||||
|
||||
$this->flash("succ", "Изменения сохранены", "Обновлённое описание появится на странице с видосиком.");
|
||||
$this->flash("succ", tr("changes_saved"), tr("new_data_video"));
|
||||
$this->redirect("/video" . $video->getPrettyId());
|
||||
}
|
||||
|
||||
|
@ -128,7 +128,7 @@ final class VideosPresenter extends OpenVKPresenter
|
|||
$video->deleteVideo($owner, $vid);
|
||||
}
|
||||
} else {
|
||||
$this->flashFail("err", "Не удалось удалить пост", "Вы не вошли в аккаунт.");
|
||||
$this->flashFail("err", tr("error_deleting_video"), tr("login_please"));
|
||||
}
|
||||
|
||||
$this->redirect("/videos" . $owner);
|
||||
|
|
|
@ -233,7 +233,7 @@ final class WallPresenter extends OpenVKPresenter
|
|||
$this->flashFail("err", tr("not_enough_permissions"), tr("not_enough_permissions_comment"));
|
||||
|
||||
if($_FILES["_vid_attachment"] && OPENVK_ROOT_CONF['openvk']['preferences']['videos']['disableUploading'])
|
||||
$this->flashFail("err", tr("error"), "Video uploads are disabled by the system administrator.");
|
||||
$this->flashFail("err", tr("error"), tr("video_uploads_disabled"));
|
||||
|
||||
$anon = OPENVK_ROOT_CONF["openvk"]["preferences"]["wall"]["anonymousPosting"]["enable"];
|
||||
if($wallOwner instanceof Club && $this->postParam("as_group") === "on" && $this->postParam("force_sign") !== "on" && $anon) {
|
||||
|
|
|
@ -1142,6 +1142,93 @@
|
|||
"post_is_too_big" = "The post is too big.";
|
||||
"error_sending_report" = "Failed to make a report...";
|
||||
|
||||
"error_when_saving_gift" = "Error when saving gift";
|
||||
"error_when_saving_gift_bad_image" = "Gift image is crooked.";
|
||||
"error_when_saving_gift_no_image" = "Please, upload gift's image.";
|
||||
"video_uploads_disabled" = "Video uploads are disabled by the system administrator.";
|
||||
|
||||
"error_when_publishing_comment" = "Error when publishing comment";
|
||||
"error_when_publishing_comment_description" = "Image is corrupted, too big or one side is many times larger than the other.";
|
||||
"error_comment_empty" = "Comment is empty or too big.";
|
||||
"error_comment_too_big" = "Comment is too big.";
|
||||
"error_comment_file_too_big" = "Media file is corrupted or too big.";
|
||||
|
||||
"comment_is_added" = "Comment has been added";
|
||||
"comment_is_added_desc" = "Your comment will appear on page.";
|
||||
|
||||
"error_access_denied_short" = "Access denied";
|
||||
"error_access_denied" = "You don't have rights to edit this resource";
|
||||
"success" = "Success";
|
||||
"comment_will_not_appear" = "This comment will no longer appear.";
|
||||
|
||||
"error_when_gifting" = "Failed to gift";
|
||||
"error_user_not_exists" = "User or pack does not exist.";
|
||||
"error_no_rights_gifts" = "Failed to check rights on gift.";
|
||||
"error_no_more_gifts" = "You no longer have such gifts.";
|
||||
"error_no_money" = "Shout out to a beggar.";
|
||||
|
||||
"gift_sent" = "Gift sent";
|
||||
"gift_sent_desc" = "You sent a gift to $1 for $2 votes";
|
||||
|
||||
"error_on_server_side" = "An error occurred on the server side. Contact your system administrator.";
|
||||
"error_no_group_name" = "You did not enter a group name.";
|
||||
|
||||
"success_action" = "Action successful";
|
||||
"connection_error" = "Connection error";
|
||||
"connection_error_desc" = "Failed to connect to telemetry service.";
|
||||
|
||||
"error_when_uploading_photo" = "Failed to save photo";
|
||||
|
||||
"new_changes_desc" = "New data will appear in your group.";
|
||||
"comment_is_changed" = "Admin comment changed";
|
||||
"comment_is_deleted" = "Admin comment deleted";
|
||||
"comment_is_too_long" = "Comment is too long ($1 symbols instead 36)";
|
||||
"x_no_more_admin" = "$1 no longer an administrator.";
|
||||
"x_is_admin" = "$1 appointed as an administrator.";
|
||||
|
||||
"x_is_now_hidden" = "Now $1 will be shown as a normal subscriber to everyone except other admins";
|
||||
"x_is_now_showed" = "Now everyone will know that $1 is an administrator.";
|
||||
|
||||
"note_is_deleted" = "Note was deleted";
|
||||
"note_x_is_now_deleted" = "Note \"$1\" was successfully deleted.";
|
||||
"new_data_accepted" = "New data accepted.";
|
||||
|
||||
"album_is_deleted" = "Album was deleted";
|
||||
"album_x_is_deleted" = "Album $1 was successfully deleted.";
|
||||
|
||||
"error_adding_to_deleted" = "Failed to save photo to <b>DELETED</b>.";
|
||||
"error_adding_to_x" = "Failed to save photo to <b>$1</b>.";
|
||||
"no_photo" = "No photo";
|
||||
|
||||
"select_file" = "Select file";
|
||||
"new_description_will_appear" = "The updated description will appear on the photo page..";
|
||||
"photo_is_deleted" = "Photo was deleted";
|
||||
"photo_is_deleted_desc" = "This photo has been successfully deleted.";
|
||||
|
||||
"no_video" = "No video";
|
||||
"no_video_desc" = "Select a file or provide a link.";
|
||||
"error_occured" = "Error occured";
|
||||
"error_video_damaged_file" = "The file is corrupted or does not contain video.";
|
||||
"error_video_incorrect_link" = "Perhaps the link is incorrect.";
|
||||
"error_video_no_title" = "Video can't be published without title.";
|
||||
|
||||
"new_data_video" = "The updated description will appear on the video page.";
|
||||
"error_deleting_video" = "Failed to delete video";
|
||||
"login_please" = "You are not signed in.";
|
||||
"invalid_code" = "Failed to verify phone number: Invalid code.";
|
||||
|
||||
"error_max_pinned_clubs" = "Maximum count of the pinned groups is 10.";
|
||||
"error_viewing_subs" = "You cannot view the full list of subscriptions $1.";
|
||||
"error_status_too_long" = "Status is too long ($1 instead 255)";
|
||||
"death" = "Death...";
|
||||
"nehay" = "Live long!";
|
||||
"user_successfully_banned" = "User was successfully banned.";
|
||||
|
||||
"content_is_deleted" = "The content has been removed and the user has received a warning.";
|
||||
"report_is_ignored" = "Report was ignored.";
|
||||
"group_owner_is_banned" = "Group's owner was successfully banned";
|
||||
"group_is_banned" = "Group was successfully banned";
|
||||
|
||||
/* Admin actions */
|
||||
|
||||
"login_as" = "Login as $1";
|
||||
|
@ -1245,6 +1332,9 @@
|
|||
"admin_banned_link_not_specified" = "The link is not specified";
|
||||
"admin_banned_link_not_found" = "Link not found";
|
||||
|
||||
"admin_gift_moved_successfully" = "Gift moved successfully";
|
||||
"admin_gift_moved_to_recycle" = "This gift will now be in <b>Recycle Bin</b>.";
|
||||
|
||||
"logs" = "Logs";
|
||||
"logs_anything" = "Anything";
|
||||
"logs_adding" = "Creation";
|
||||
|
@ -1617,6 +1707,15 @@
|
|||
"views" = "Views";
|
||||
"views_this_week" = "This graph shows the views of community posts over the last 7 days.";
|
||||
|
||||
"full_coverage" = "Full coverage";
|
||||
"all_views" = "All views";
|
||||
|
||||
"subs_coverage" = "Subscribers coverage";
|
||||
"subs_views" = "Subscribers views";
|
||||
|
||||
"viral_coverage" = "Viral coverage";
|
||||
"viral_views" = "Viral views";
|
||||
|
||||
/* Sudo */
|
||||
|
||||
"you_entered_as" = "You logged as";
|
||||
|
|
|
@ -1041,6 +1041,92 @@
|
|||
"post_is_empty_or_too_big" = "Пост пустой или слишком большой.";
|
||||
"post_is_too_big" = "Пост слишком большой.";
|
||||
"error_sending_report" = "Не удалось подать жалобу...";
|
||||
"error_when_saving_gift" = "Не удалось сохранить подарок";
|
||||
"error_when_saving_gift_bad_image" = "Изображение подарка кривое.";
|
||||
"error_when_saving_gift_no_image" = "Пожалуйста, загрузите изображение подарка.";
|
||||
"video_uploads_disabled" = "Загрузки видео отключены администратором.";
|
||||
|
||||
"error_when_publishing_comment" = "Не удалось опубликовать комментарий";
|
||||
"error_when_publishing_comment_description" = "Файл изображения повреждён, слишком велик или одна сторона изображения в разы больше другой.";
|
||||
"error_comment_empty" = "Комментарий пустой или слишком большой.";
|
||||
"error_comment_too_big" = "Комментарий слишком большой.";
|
||||
"error_comment_file_too_big" = "Файл медиаконтента повреждён или слишком велик.";
|
||||
|
||||
"comment_is_added" = "Комментарий добавлен";
|
||||
"comment_is_added_desc" = "Ваш комментарий появится на странице.";
|
||||
|
||||
"error_access_denied_short" = "Ошибка доступа";
|
||||
"error_access_denied" = "У вас недостаточно прав, чтобы редактировать этот ресурс";
|
||||
"success" = "Успешно";
|
||||
"comment_will_not_appear" = "Этот комментарий больше не будет показыватся.";
|
||||
|
||||
"error_when_gifting" = "Не удалось подарить";
|
||||
"error_user_not_exists" = "Пользователь или набор не существуют.";
|
||||
"error_no_rights_gifts" = "Не удалось подтвердить права на подарок.";
|
||||
"error_no_more_gifts" = "У вас больше не осталось таких подарков.";
|
||||
"error_no_money" = "Ору нищ не пук.";
|
||||
|
||||
"gift_sent" = "Подарок отправлен";
|
||||
"gift_sent_desc" = "Вы отправили подарок <b>$1</b> за $2 голосов";
|
||||
|
||||
"error_on_server_side" = "Произошла ошибка на стороне сервера. Обратитесь к системному администратору.";
|
||||
"error_no_group_name" = "Вы не ввели название группы.";
|
||||
|
||||
"success_action" = "Операция успешна";
|
||||
"connection_error" = "Ошибка подключения";
|
||||
"connection_error_desc" = "Не удалось подключится к службе телеметрии.";
|
||||
|
||||
"error_when_uploading_photo" = "Не удалось сохранить фотографию.";
|
||||
|
||||
"new_changes_desc" = "Новые данные появятся в вашей группе.";
|
||||
"comment_is_changed" = "Комментарий к администратору изменён";
|
||||
"comment_is_deleted" = "Комментарий к администратору удален";
|
||||
"comment_is_too_long" = "Комментарий слишком длинный ($1 символов вместо 36 символов)";
|
||||
"x_no_more_admin" = "$1 больше не администратор.";
|
||||
"x_is_admin" = "$1 назначен(а) администратором.";
|
||||
|
||||
"x_is_now_hidden" = "Теперь $1 будет показываться как обычный подписчик всем, кроме других администраторов";
|
||||
"x_is_now_showed" = "Теперь все будут знать, что $1 — администратор.";
|
||||
|
||||
"note_is_deleted" = "Заметка удалена";
|
||||
"note_x_is_now_deleted" = "Заметка \"$1\" была успешно удалена.";
|
||||
"new_data_accepted" = "Новые данные приняты.";
|
||||
|
||||
"album_is_deleted" = "Альбом удалён";
|
||||
"album_x_is_deleted" = "Альбом $1 был успешно удалён.";
|
||||
|
||||
"error_adding_to_deleted" = "Не удалось сохранить фотографию в <b>DELETED</b>.";
|
||||
"error_adding_to_x" = "Не удалось сохранить фотографию в <b>$1</b>.";
|
||||
"no_photo" = "Нету фотографии";
|
||||
|
||||
"select_file" = "Выберите файл";
|
||||
"new_description_will_appear" = "Обновлённое описание появится на странице с фоткой.";
|
||||
"photo_is_deleted" = "Фотография удалена";
|
||||
"photo_is_deleted_desc" = "Эта фотография была успешно удалена.";
|
||||
|
||||
"no_video" = "Нет видеозаписи";
|
||||
"no_video_desc" = "Выберите файл или укажите ссылку.";
|
||||
"error_occured" = "Произошла ошибка";
|
||||
"error_video_damaged_file" = "Файл повреждён или не содержит видео.";
|
||||
"error_video_incorrect_link" = "Возможно, ссылка некорректна.";
|
||||
"error_video_no_title" = "Видео не может быть опубликовано без названия.";
|
||||
|
||||
"new_data_video" = "Обновлённое описание появится на странице с видео.";
|
||||
"error_deleting_video" = "Не удалось удалить видео";
|
||||
"login_please" = "Вы не вошли в аккаунт.";
|
||||
"invalid_code" = "Не удалось подтвердить номер телефона: неверный код.";
|
||||
|
||||
"error_max_pinned_clubs" = "Находится в левом меню могут максимум 10 групп";
|
||||
"error_viewing_subs" = "Вы не можете просматривать полный список подписок $1.";
|
||||
"error_status_too_long" = "Статус слишком длинный ($1 символов вместо 255 символов)";
|
||||
"death" = "Смэрть...";
|
||||
"nehay" = "Нехай живе!";
|
||||
"user_successfully_banned" = "Пользователь успешно забанен.";
|
||||
|
||||
"content_is_deleted" = "Контент удалён, а пользователю прилетело предупреждение.";
|
||||
"report_is_ignored" = "Жалоба проигнорирована.";
|
||||
"group_owner_is_banned" = "Создатель сообщества успешно забанен.";
|
||||
"group_is_banned" = "Сообщество успешно забанено";
|
||||
|
||||
/* Admin actions */
|
||||
|
||||
|
@ -1133,6 +1219,10 @@
|
|||
"admin_banned_link_initiator" = "Инициатор";
|
||||
"admin_banned_link_not_specified" = "Ссылка не указана";
|
||||
"admin_banned_link_not_found" = "Ссылка не найдена";
|
||||
|
||||
"admin_gift_moved_successfully" = "Подарок успешно перемещён";
|
||||
"admin_gift_moved_to_recycle" = "This gift will now be in <b>Recycle Bin</b>.";
|
||||
|
||||
"logs" = "Логи";
|
||||
"logs_anything" = "Любое";
|
||||
"logs_adding" = "Создание";
|
||||
|
@ -1509,6 +1599,15 @@
|
|||
"views" = "Просмотры";
|
||||
"views_this_week" = "Этот график отображает просмотры постов сообщества за последние 7 дней.";
|
||||
|
||||
"full_coverage" = "Полный охват";
|
||||
"all_views" = "Все просмотры";
|
||||
|
||||
"subs_coverage" = "Охват подписчиков";
|
||||
"subs_views" = "Просмотры подписчиков";
|
||||
|
||||
"viral_coverage" = "Виральный охват";
|
||||
"viral_views" = "Виральные просмотры";
|
||||
|
||||
/* Sudo */
|
||||
|
||||
"you_entered_as" = "Вы вошли как";
|
||||
|
|
Loading…
Reference in a new issue