From 076309eec6ec2f82f1edc0a98a6916410931769c Mon Sep 17 00:00:00 2001
From: lalka2016 <99399973+lalka2016@users.noreply.github.com>
Date: Sat, 12 Aug 2023 14:42:21 +0300
Subject: [PATCH] =?UTF-8?q?=F0=9F=98=AD=F0=9F=98=93?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
Web/Models/Entities/Club.php | 6 +-
Web/Presenters/AdminPresenter.php | 8 +--
Web/Presenters/CommentPresenter.php | 18 +++---
Web/Presenters/GiftsPresenter.php | 10 +--
Web/Presenters/GroupPresenter.php | 30 ++++-----
Web/Presenters/NotesPresenter.php | 6 +-
Web/Presenters/PhotosPresenter.php | 30 ++++-----
Web/Presenters/ReportPresenter.php | 12 ++--
Web/Presenters/TopicsPresenter.php | 4 +-
Web/Presenters/UserPresenter.php | 10 +--
Web/Presenters/VideosPresenter.php | 16 ++---
Web/Presenters/WallPresenter.php | 2 +-
locales/en.strings | 99 +++++++++++++++++++++++++++++
locales/ru.strings | 99 +++++++++++++++++++++++++++++
14 files changed, 274 insertions(+), 76 deletions(-)
diff --git a/Web/Models/Entities/Club.php b/Web/Models/Entities/Club.php
index 31485129..fbdc503b 100644
--- a/Web/Models/Entities/Club.php
+++ b/Web/Models/Entities/Club.php
@@ -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"),
],
];
}
diff --git a/Web/Presenters/AdminPresenter.php b/Web/Presenters/AdminPresenter.php
index f5c40bcc..f5c6b22e 100644
--- a/Web/Presenters/AdminPresenter.php
+++ b/Web/Presenters/AdminPresenter.php
@@ -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 Recycle Bin.");
+ $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 $name.");
+ $this->flash("succ", tr("admin_gift_moved_successfully"), "This gift will now be in $name.");
$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();
diff --git a/Web/Presenters/CommentPresenter.php b/Web/Presenters/CommentPresenter.php
index cb0efd0d..29c54c78 100644
--- a/Web/Presenters/CommentPresenter.php
+++ b/Web/Presenters/CommentPresenter.php
@@ -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",
- "Успешно",
- "Этот комментарий больше не будет показыватся.
Отметить как спам?"
+ tr("success"),
+ tr("comment_will_not_appear")
);
}
}
diff --git a/Web/Presenters/GiftsPresenter.php b/Web/Presenters/GiftsPresenter.php
index 8f59bdcb..71480540 100644
--- a/Web/Presenters/GiftsPresenter.php
+++ b/Web/Presenters/GiftsPresenter.php
@@ -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", "Подарок отправлен", "Вы отправили подарок " . $user->getFirstName() . " за " . $gift->getPrice() . " голосов.");
+ $this->flash("succ", tr("gift_sent"), tr("gift_sent_desc", $user->getFirstName(), $gift->getPrice()));
$this->redirect($user->getURL());
}
diff --git a/Web/Presenters/GroupPresenter.php b/Web/Presenters/GroupPresenter.php
index d8fbcb79..d3a46fd5 100644
--- a/Web/Presenters/GroupPresenter.php
+++ b/Web/Presenters/GroupPresenter.php
@@ -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))
diff --git a/Web/Presenters/NotesPresenter.php b/Web/Presenters/NotesPresenter.php
index 50437ad7..4b71c8b1 100644
--- a/Web/Presenters/NotesPresenter.php
+++ b/Web/Presenters/NotesPresenter.php
@@ -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);
}
}
diff --git a/Web/Presenters/PhotosPresenter.php b/Web/Presenters/PhotosPresenter.php
index 345b2c60..437f8ec5 100644
--- a/Web/Presenters/PhotosPresenter.php
+++ b/Web/Presenters/PhotosPresenter.php
@@ -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", "Неизвестная ошибка", "Не удалось сохранить фотографию в DELETED.");
+ $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", "Неизвестная ошибка", "Не удалось сохранить фотографию в DELETED.");
+ $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", "Неизвестная ошибка", "Не удалось сохранить фотографию в $name.");
+ $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");
}
}
diff --git a/Web/Presenters/ReportPresenter.php b/Web/Presenters/ReportPresenter.php
index 68d27861..a87154c8 100644
--- a/Web/Presenters/ReportPresenter.php
+++ b/Web/Presenters/ReportPresenter.php
@@ -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");
diff --git a/Web/Presenters/TopicsPresenter.php b/Web/Presenters/TopicsPresenter.php
index e7b08ac3..92d67e84 100644
--- a/Web/Presenters/TopicsPresenter.php
+++ b/Web/Presenters/TopicsPresenter.php
@@ -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());
}
diff --git a/Web/Presenters/UserPresenter.php b/Web/Presenters/UserPresenter.php
index 9cfa3654..dd7ac854 100644
--- a/Web/Presenters/UserPresenter.php
+++ b/Web/Presenters/UserPresenter.php
@@ -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"));
}
diff --git a/Web/Presenters/VideosPresenter.php b/Web/Presenters/VideosPresenter.php
index 4e4d484a..9d2fddc6 100644
--- a/Web/Presenters/VideosPresenter.php
+++ b/Web/Presenters/VideosPresenter.php
@@ -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);
diff --git a/Web/Presenters/WallPresenter.php b/Web/Presenters/WallPresenter.php
index 3e115ec7..b20389ad 100644
--- a/Web/Presenters/WallPresenter.php
+++ b/Web/Presenters/WallPresenter.php
@@ -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) {
diff --git a/locales/en.strings b/locales/en.strings
index afce0d32..e1abe05d 100644
--- a/locales/en.strings
+++ b/locales/en.strings
@@ -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 DELETED.";
+"error_adding_to_x" = "Failed to save photo to $1.";
+"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 Recycle Bin.";
+
"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";
diff --git a/locales/ru.strings b/locales/ru.strings
index 59f92751..91925c20 100644
--- a/locales/ru.strings
+++ b/locales/ru.strings
@@ -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" = "Вы отправили подарок $1 за $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" = "Не удалось сохранить фотографию в DELETED.";
+"error_adding_to_x" = "Не удалось сохранить фотографию в $1.";
+"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 Recycle Bin.";
+
"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" = "Вы вошли как";