k@^h(CPBL2Sr
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
+
+
\ No newline at end of file
diff --git a/Web/static/img/favicons/favicon24_paused.png b/Web/static/img/favicons/favicon24_paused.png
index 7d7c3e47b5f9dcdcf4dc2d0921b3efb3f860ec00..c8fdef269222dd0fff08c6177bd5f2d3a3a26a05 100644
GIT binary patch
delta 527
zcmV+q0`UEs2&4zFp#gsZ?MXyIR7gv$Ry$4uF%-1TW?e-jR{*X+Xb=t8Ks2dRk)D)%
zx+olo2GIaV;0_>272*#w_9hsEA{llzZ
z&bxv49$wqK9PRnwY+pI&wYL~p2no&77IXbPBY^`fTr2M&L~q~t7p$K3ykpT8wkw7c
zLc*2fW;SbjLY$4qO)p}TCW9%a$qU8C!W$#WnW99q%!oxFc9liPagrfrOi`lIrscws
zDirxE?>SSHXpDaXo9D{`J1k1h6eSvsGb?lyBd{h^JZFj$Eu@GwfFsnPiNJHaerJjj
zZIvp#&D=#zNaiO~lxQ*KF`BrGnnBJKC7KWRqLc6*upq0jQl==;V#>o&(d;7DfnGDF
zDACp_f?dUsSOa>?nW99CDaRcJm&4)EzrDTxdKUc^l8%3*6#d@zDn%?b!)k|25znEJ
zB80SHC_G}@VmzT?6SfuFN3fY}hiJkby{E06z1?SP+=-BGt4ZPi0SCZ`G4@oBMkDe1
z@^aMa)EDqM5K`*+MS?$tA4Z(u%22p46Q%W+3;P^N2v8Ty3O-vVyg)9LhwUoMx|+wJxnjExK*0|I6Q^bBkPo92Hi8O^P7?y;Us-d1hX
zen}}cpc`aPE|>cOVH11Gdq3WBaWUnlZQHLEj8{2lWF7xY@H>}Tlf9~tz0DDwh=CDi
zRC*5gtIoNtbBd+&bk}ZgSEc3L&CQ3>>M%6UJ>fn?#D+x3C@dNpTBwc1bhJ1alafI-!Ab>kInVaR4Odv*;6v;&5yhs
zN%(TK%mp4pi0}Pkv2cIx@83)&%_mH|!i-kGZFJ;6dNgnnqtT*6VkX#T&tm|i8~EPg
fXUlRnyZrtSfI*t=tKXcT00000NkvXXu0mjfabHDs
diff --git a/Web/static/img/favicons/favicon24_playing.png b/Web/static/img/favicons/favicon24_playing.png
index 5b3d104c30553df11ee6243a38941f59a9f42152..ce4478b8608a59911981069bb5e68e71bc423f32 100644
GIT binary patch
delta 677
zcmV;W0$Tn13AqTcp#gsaf=NU{R7gv$R=sW-K@grjxVs7kka&S4jU$;ZPGhBsoC3rf
zL{TgXM2m!E5`T@y+n?F_
zc4l@*CkBH7EtkvVY&QFmh@JsH@Ndz8h?^D(f$vciz02it-$Z}6+dW>bR$nmanduaS
z`5mI0tn0pTe9!-+l=1*d3wV%J+Vg$?v!k>+(prNxy`N%x+K@eUl+wPI=txYY1@;64
z*tqX#B~54D#rs0@8=ID}jSzv+0D~5sp1z@cA#a`A3xyCd5$rnrkYHm^Y$%t@)Hyq&
zmnSEbafDT88*5
zN+oJGo78ADs8}po^%?91hv|-h8=MpyY{Fsd^?FpPR1mhz?m8Ifs4!9Nfs9PXZP+KS
z>r$;&qx1LYbXY#zT*o2e9DoQpNIcMdTzBz55kf$3YdwG4Gm$Z;C~+yWW1paY(PT2g
z3G2|s&x?&UamZtD;!~7#Y_Q2}Hp7YP&}cNG>+pJKjW+gT5_1nYA-8UAV_g=D1#x-r
z_xm)Tn55IONGiGXtClX0?EY!!aI@snu#x5Cm4e4KRUe^F=ee=jvz2bULMWyG_I4
zkisyu>TG`_4msXPxTx3b`s(VBDYI#bU?QBZLjJ*Rh&a*gRyyDiaUC)tf=eO0Vya(C
zh^sSf!nT8F03?Iy01xv<>qq9{<43<_q+XFwnIwew7Z5;hqDa0LTpfR3UOsnS?*llG
zaQFTAiv&vMj~);3&X71W5>MTIxp13%0uz|!qZS?Dv!$EQ7ry=l-ND0C8%{=U00000
LNkvXXu0mjfMfplm
delta 872
zcmV-u1DE`{2>S`Jp#gsbL`g(JR7gvWRy$7{K@grhKh8)Pn=;T~Ck-70!YfWBl!izU
zi4YnR1yS-F;vz*J9TK923Xq_oL!wC&r63?=M?@l0IusfTf`uSHxVz0avnOMYv(4Dw
z?d|ODJieV>+nAf1qqDQKTr?W}NJRaB1=JS>82U9tY~Z`&IPZUw$>cX9pU>y6uCBg7
z8JFQOfk6d>1{cQmzUD$wK)5VJiW9%e|YKcT5l+9*oWaK%$
zo|>XeM~4^*1KV^ta0G}=hPN8v?1IwV+)M)l12jH9PQ!o0!_?H&bbFm-U*&*bcvFI?
zCz(u!Mn^|M+e_-~>?E8g7-hrSIJfLbXW%-r<3WUFP%Vi>f(8eNsJFM5tb|oXFV+KG
zve*MZgOF;_hrYJhwoS!ikqU(Zl}aT)at7=PGg3v|fzr7Rxmaq*(a|5;+S;PU#YNiP
z-Jx>%AMAfP0!_JQL06IA2_lT5i;D}|+uNh%#
zAr2}W6^dZjWGdJzdkca$@%Z?dR##VOVPSy|ejR^Q=&J`!IkG{aM7q1W-7;MqOo9E?ZUbinPyNbosvzqITgA6
z8i6BYIvYUW&QgW8iRTWdbbW2t0UJQu2$(GM@wOYuKDhteb-XuZco9EAi2^f)4Ud26
zK|Wwtltk!{D}zfJRPc|ylqBZzsJ|9+={W9NV|I3y{+^sXjm6?0u&fU&EKM^{ item.id == id)
+ }
+
constructor(context, context_id, page = 1) {
this.context["context_type"] = context
this.context["context_id"] = context_id
@@ -141,16 +145,52 @@ class bigPlayer {
const width = e.clientX - rect.left;
const time = Math.ceil((width * this.tracks["currentTrack"].length) / (rect.right - rect.left));
- document.querySelector(".bigPlayer .track .timeTip").style.display = "block"
- document.querySelector(".bigPlayer .track .timeTip").innerHTML = fmtTime(time)
- document.querySelector(".bigPlayer .track .timeTip").style.left = `min(${width - 15}px, 315.5px)`
+ document.querySelector(".bigPlayer .track .bigPlayerTip").style.display = "block"
+ document.querySelector(".bigPlayer .track .bigPlayerTip").innerHTML = fmtTime(time)
+ document.querySelector(".bigPlayer .track .bigPlayerTip").style.left = `min(${width - 15}px, 315.5px)`
+ })
+
+ u(".bigPlayer .nextButton").on("mouseover mouseleave", (e) => {
+ if(this.tracks["currentTrack"] == null)
+ return
+
+ if(e.type == "mouseleave") {
+ $(".nextTrackTip").remove()
+ return
+ }
+
+ e.currentTarget.parentNode.insertAdjacentHTML("afterbegin", `
+
+ ${ovk_proc_strtr(escapeHtml(this.findTrack(this.tracks["previousTrack"]).name), 20) ?? ""}
+
+ `)
+
+ document.querySelector(".nextTrackTip").style.display = "block"
+ })
+
+ u(".bigPlayer .backButton").on("mouseover mouseleave", (e) => {
+ if(this.tracks["currentTrack"] == null)
+ return
+
+ if(e.type == "mouseleave") {
+ $(".previousTrackTip").remove()
+ return
+ }
+
+ e.currentTarget.parentNode.insertAdjacentHTML("afterbegin", `
+
+ ${ovk_proc_strtr(escapeHtml(this.findTrack(this.tracks["nextTrack"]).name), 20) ?? ""}
+
+ `)
+
+ document.querySelector(".previousTrackTip").style.display = "block"
})
u(".bigPlayer .trackPanel .track").on("mouseleave", (e) => {
if(this.tracks["currentTrack"] == null)
return
- document.querySelector(".bigPlayer .track .timeTip").style.display = "none"
+ document.querySelector(".bigPlayer .track .bigPlayerTip").style.display = "none"
})
u(".bigPlayer .volumePanel > div").on("click mouseup mousemove", (e) => {
@@ -200,7 +240,7 @@ class bigPlayer {
if(this.tracks["currentTrack"] == null)
return
- this.tracks["tracks"].sort(() => Math.random() - 0.5)
+ this.tracks["tracks"].sort(() => Math.random() - 0.59)
this.setTrack(this.tracks["tracks"].at(0).id)
})
@@ -316,9 +356,8 @@ class bigPlayer {
}
pause() {
- if(this.tracks["currentTrack"] == null) {
+ if(this.tracks["currentTrack"] == null)
return
- }
document.querySelector(`.audioEmbed[data-realid='${this.tracks["currentTrack"].id}'] .audioEntry .playerButton .playIcon`) != null ? document.querySelector(`.audioEmbed[data-realid='${this.tracks["currentTrack"].id}'] .audioEntry .playerButton .playIcon`).classList.remove("paused") : void(0)
this.player().pause()
@@ -329,17 +368,15 @@ class bigPlayer {
}
showPreviousTrack() {
- if(this.tracks["currentTrack"] == null || this.tracks["previousTrack"] == null) {
+ if(this.tracks["currentTrack"] == null || this.tracks["previousTrack"] == null)
return
- }
this.setTrack(this.tracks["previousTrack"])
}
showNextTrack() {
- if(this.tracks["currentTrack"] == null || this.tracks["nextTrack"] == null) {
+ if(this.tracks["currentTrack"] == null || this.tracks["nextTrack"] == null)
return
- }
this.setTrack(this.tracks["nextTrack"])
}
@@ -349,16 +386,28 @@ class bigPlayer {
let prevButton = this.nodes["thisPlayer"].querySelector(".nextButton")
let nextButton = this.nodes["thisPlayer"].querySelector(".backButton")
- if(this.tracks["previousTrack"] == null) {
+ if(this.tracks["previousTrack"] == null)
prevButton.classList.add("lagged")
- } else {
+ else
prevButton.classList.remove("lagged")
+
+ if(this.tracks["nextTrack"] == null)
+ nextButton.classList.add("lagged")
+ else
+ nextButton.classList.remove("lagged")
+
+ if(document.querySelector(".nextTrackTip") != null) {
+ let track = this.findTrack(this.tracks["previousTrack"])
+ document.querySelector(".nextTrackTip").innerHTML = `
+ ${track != null ? ovk_proc_strtr(escapeHtml(track.name), 20) : ""}
+ `
}
- if(this.tracks["nextTrack"] == null) {
- nextButton.classList.add("lagged")
- } else {
- nextButton.classList.remove("lagged")
+ if(document.querySelector(".previousTrackTip") != null) {
+ let track = this.findTrack(this.tracks["nextTrack"])
+ document.querySelector(".previousTrackTip").innerHTML = `
+ ${track != null ? ovk_proc_strtr(escapeHtml(track.name ?? ""), 20) : ""}
+ `
}
}
@@ -449,11 +498,12 @@ class bigPlayer {
this.play()
- document.querySelector(`.audioEmbed[data-realid='${this.tracks["currentTrack"].id}'] .audioEntry`) != null ?
- document.querySelector(`.audioEmbed[data-realid='${this.tracks["currentTrack"].id}'] .audioEntry`).classList.add("nowPlaying") :
- null
+ let playerAtPage = document.querySelector(`.audioEmbed[data-realid='${this.tracks["currentTrack"].id}'] .audioEntry`)
+ if(playerAtPage != null)
+ playerAtPage.classList.add("nowPlaying")
document.querySelectorAll(`.audioEntry .playerButton .playIcon.paused`).forEach(el => el.classList.remove("paused"))
+
localStorage.lastPlayedTrack = this.tracks["currentTrack"].id
if(this.timeType == 1)
@@ -543,10 +593,9 @@ function initPlayer(id, keys, url, length) {
if(window.player.tracks["tracks"] == null)
return
- if(window.player.tracks["currentTrack"] == null || window.player.tracks["currentTrack"].id != playerObject.dataset.realid) {
+ if(window.player.tracks["currentTrack"] == null || window.player.tracks["currentTrack"].id != playerObject.dataset.realid)
window.player.setTrack(playerObject.dataset.realid)
- playButton.addClass("paused")
- } else
+ else
document.querySelector(".bigPlayer .playButton").click()
})
@@ -576,10 +625,19 @@ function initPlayer(id, keys, url, length) {
const time = audio.currentTime;
const ps = Math.ceil((time * 100) / length);
volumeSpan.html(fmtTime(Math.floor(time)));
+
if (ps <= 100)
- trackDiv.nodes[0].style.width = `${ ps}%`;
+ playerObject.querySelector(".lengthTrack .slider").style.left = `${ ps}%`;
});
+ u(audio).on("volumechange", (e) => {
+ const volume = audio.volume;
+ const ps = Math.ceil((volume * 100) / 1);
+
+ if (ps <= 100)
+ playerObject.querySelector(".volumeTrack .slider").style.left = `${ ps}%`;
+ })
+
const playButtonImageUpdate = () => {
if (!audio.paused) {
playButton.addClass("paused")
@@ -603,13 +661,30 @@ function initPlayer(id, keys, url, length) {
u(audio).on("play", playButtonImageUpdate);
u(audio).on(["pause", "ended", "suspended"], playButtonImageUpdate);
- u(`#audioEmbed-${ id} .track > div`).on("click", (e) => {
+ u(`#audioEmbed-${ id} .lengthTrack > div`).on("click", (e) => {
let rect = document.querySelector("#audioEmbed-" + id + " .selectableTrack").getBoundingClientRect();
const width = e.clientX - rect.left;
const time = Math.ceil((width * length) / (rect.right - rect.left));
audio.currentTime = time;
});
+
+ u(`#audioEmbed-${ id} .volumeTrack > div`).on("click mouseup mousemove", (e) => {
+ if(e.type == "mousemove") {
+ let buttonsPresseed = _bsdnUnwrapBitMask(e.buttons)
+ if(!buttonsPresseed[0])
+ return;
+ }
+
+ let rect = document.querySelector("#audioEmbed-" + id + " .volumeTrack").getBoundingClientRect();
+
+ const width = e.clientX - rect.left;
+ const volume = (width * 1) / (rect.right - rect.left);
+
+ audio.volume = volume;
+ });
+
+ u(audio).trigger("volumechange")
}
$(document).on("click", ".musicIcon.edit-icon", (e) => {
@@ -638,7 +713,7 @@ $(document).on("click", ".musicIcon.edit-icon", (e) => {
${tr("lyrics")}
-
+
@@ -694,7 +769,7 @@ $(document).on("click", ".musicIcon.edit-icon", (e) => {
e.currentTarget.setAttribute("data-lyrics", response.new_info.lyrics_unformatted)
e.currentTarget.setAttribute("data-explicit", Number(response.new_info.explicit))
- e.currentTarget.setAttribute("data-searchable", Number(response.new_info.unlisted))
+ e.currentTarget.setAttribute("data-searchable", Number(!response.new_info.unlisted))
player.setAttribute("data-genre", response.new_info.genre)
let url = new URL(location.href)
@@ -781,6 +856,86 @@ $(document).on("click", ".musicIcon.remove-icon", (e) => {
})
})
+$(document).on("click", ".musicIcon.remove-icon-group", (e) => {
+ let id = e.currentTarget.dataset.id
+
+ let formdata = new FormData()
+ formdata.append("hash", u("meta[name=csrf]").attr("value"))
+ formdata.append("club", e.currentTarget.dataset.club)
+
+ ky.post(`/audio${id}/action?act=remove_club`, {
+ hooks: {
+ beforeRequest: [
+ (_request) => {
+ e.currentTarget.classList.add("lagged")
+ }
+ ],
+ afterResponse: [
+ async (_request, _options, response) => {
+ let json = await response.json()
+
+ if(json.success)
+ $(e.currentTarget.closest(".audioEmbed")).remove()
+ else
+ fastError(json.flash.message)
+ }
+ ]
+ }, body: formdata
+ })
+})
+
+$(document).on("click", ".musicIcon.add-icon-group", async (ev) => {
+ let body = `
+ ${tr("what_club_add")}
+
+
+
+
+
+ `
+ MessageBox(tr("add_audio_to_club"), body, [tr("close")], [Function.noop])
+
+ document.querySelector(".ovk-diag-body").style.padding = "11px"
+
+ if(window.openvk.writeableClubs == null) {
+ try {
+ window.openvk.writeableClubs = await API.Groups.getWriteableClubs()
+ } catch (e) {
+ document.querySelector(".errorPlace").innerHTML = tr("no_access_clubs")
+ document.querySelector(".ovk-diag-body input[name='addButton']").classList.add("lagged")
+
+ return
+ }
+ }
+
+ window.openvk.writeableClubs.forEach(el => {
+ document.querySelector("#addIconsWindow").insertAdjacentHTML("beforeend", `
+
${ovk_proc_strtr(el.name, 20)}
+ `)
+ })
+
+ $(".ovk-diag-body").on("click", "input[name='addButton']", (e) => {
+ $.ajax({
+ type: "POST",
+ url: `/audio${ev.currentTarget.dataset.id}/action?act=add_to_club`,
+ data: {
+ hash: u("meta[name=csrf]").attr("value"),
+ club: document.querySelector("#addIconsWindow").value
+ },
+ beforeSend: () => {
+ e.currentTarget.classList.add("lagged")
+ document.querySelector(".errorPlace").innerHTML = ""
+ },
+ success: (response) => {
+ if(!response.success)
+ document.querySelector(".errorPlace").innerHTML = response.flash.message
+
+ e.currentTarget.classList.remove("lagged")
+ }
+ })
+ })
+})
+
$(document).on("click", ".musicIcon.add-icon", (e) => {
let id = e.currentTarget.dataset.id
@@ -836,7 +991,11 @@ $(document).on("click", "#_audioAttachment", (e) => {
let form = e.currentTarget.closest("form")
let body = `
-
+
+
+ ${tr("by_name")}
+ ${tr("by_performer")}
+
@@ -847,7 +1006,7 @@ $(document).on("click", "#_audioAttachment", (e) => {
document.querySelector(".ovk-diag-cont").style.width = "580px"
document.querySelector(".ovk-diag-body").style.height = "335px"
- async function insertAudios(page, query = "") {
+ async function insertAudios(page, query = "", type = "by_name") {
document.querySelector(".audiosInsert").insertAdjacentHTML("beforeend", `
`)
$.ajax({
@@ -859,6 +1018,7 @@ $(document).on("click", "#_audioAttachment", (e) => {
page: page,
query: query == "" ? null : query,
context_entity: 0,
+ type: type,
returnPlayers: 1,
},
success: (response) => {
@@ -911,11 +1071,17 @@ $(document).on("click", "#_audioAttachment", (e) => {
if(e.currentTarget.value === document.querySelector(".searchBox input").value) {
document.querySelector(".audiosInsert").innerHTML = ""
- insertAudios(1, e.currentTarget.value)
+ insertAudios(1, e.currentTarget.value, document.querySelector(".searchBox select").value)
return;
}
})
+ $(".searchBox select").on("change", async (e) => {
+ document.querySelector(".audiosInsert").innerHTML = ""
+ insertAudios(1, document.querySelector(".searchBox input").value, e.currentTarget.value)
+ return;
+ })
+
function insertAttachment(id) {
let audios = form.querySelector("input[name='audios']")
@@ -1074,7 +1240,7 @@ $(document).on("click", "#bookmarkPlaylist, #unbookmarkPlaylist", (e) => {
})
})
-function getPlayers(page = 1, query = "", playlist = 0) {
+function getPlayers(page = 1, query = "", playlist = 0, club = 0) {
$.ajax({
type: "POST",
url: "/audios/context",
@@ -1082,12 +1248,12 @@ function getPlayers(page = 1, query = "", playlist = 0) {
context: query == "" ? (playlist == 0 ? "entity_audios" : "playlist_context") : "search_context",
hash: u("meta[name=csrf]").attr("value"),
page: page,
- context_entity: playlist,
+ context_entity: playlist == 0 ? club * -1 : playlist,
query: query,
returnPlayers: 1,
},
beforeSend: () => {
- document.querySelector(".playlistAudiosContainer").insertAdjacentHTML("beforeend", `
`)
+ document.querySelector(".playlistAudiosContainer").parentNode.insertAdjacentHTML("beforeend", `
`)
if(document.querySelector(".showMoreAudiosPlaylist") != null)
document.querySelector(".showMoreAudiosPlaylist").style.display = "none"
@@ -1143,7 +1309,10 @@ function getPlayers(page = 1, query = "", playlist = 0) {
}
$(document).on("click", ".showMoreAudiosPlaylist", (e) => {
- getPlayers(Number(e.currentTarget.dataset.page), "", e.currentTarget.dataset.playlist != null ? Number(e.currentTarget.dataset.playlist) : 0)
+ getPlayers(Number(e.currentTarget.dataset.page), "",
+ e.currentTarget.dataset.playlist != null ? Number(e.currentTarget.dataset.playlist) : 0,
+ e.currentTarget.dataset.club != null ? Number(e.currentTarget.dataset.club) : 0,
+ )
})
$(document).on("change", "input#playlist_query", async (e) => {
diff --git a/locales/en.strings b/locales/en.strings
index 89cdf891..fc4e2f65 100644
--- a/locales/en.strings
+++ b/locales/en.strings
@@ -728,6 +728,7 @@
"audio" = "Audio";
"playlist" = "Playlist";
"upload_audio" = "Upload audio";
+"upload_audio_to_group" = "Upload audio to group";
"performer" = "Performer";
"audio_name" = "Name";
@@ -778,6 +779,10 @@
"no_playlists_user" = "This user has not added any playlists yet.";
"no_playlists_club" = "This group hasn't added playlists yet.";
+"no_audios_thisuser" = "You haven't added any audios yet.";
+"no_audios_user" = "This user has not added any audios yet.";
+"no_audios_club" = "This group has not added any audios yet.";
+
"new_playlist" = "New playlist";
"created_playlist" = "created";
"bookmark" = "Add to collection";
@@ -807,6 +812,15 @@
"minutes_count_many" = "lasts $1 minutes";
"minutes_count_other" = "lasts $1 minutes";
+"add_audio_to_club" = "Add audio to group";
+"what_club_add" = "Which group do you want to add the song to?";
+"group_has_audio" = "This group already has this song.";
+"group_hasnt_audio" = "This group doesn't have this song.";
+
+"by_name" = "by name";
+"by_performer" = "by performer";
+"no_access_clubs" = "There are no groups where you are an administrator.";
+
/* Notifications */
"feedback" = "Feedback";
diff --git a/locales/ru.strings b/locales/ru.strings
index b53de206..a035e8f2 100644
--- a/locales/ru.strings
+++ b/locales/ru.strings
@@ -684,6 +684,7 @@
"audio" = "Аудиозапись";
"playlist" = "Плейлист";
"upload_audio" = "Загрузить аудио";
+"upload_audio_to_group" = "Загрузить аудио в группу";
"performer" = "Исполнитель";
"audio_name" = "Название";
@@ -734,6 +735,10 @@
"no_playlists_user" = "Этот пользователь ещё не добавлял плейлистов.";
"no_playlists_club" = "Эта группа ещё не добавляла плейлистов.";
+"no_audios_thisuser" = "Вы ещё не добавляли аудиозаписей.";
+"no_audios_user" = "Этот пользователь ещё не добавлял аудиозаписей.";
+"no_audios_club" = "Эта группа ещё не добавляла аудиозаписей.";
+
"new_playlist" = "Новый плейлист";
"created_playlist" = "создан";
"bookmark" = "Добавить в коллекцию";
@@ -762,6 +767,15 @@
"minutes_count_many" = "длится $1 минут";
"minutes_count_other" = "длится $1 минут";
+"add_audio_to_club" = "Добавить аудио в группу";
+"what_club_add" = "В какую группу вы хотите добавить песню?";
+"group_has_audio" = "У группы уже есть эта песня.";
+"group_hasnt_audio" = "У группы нет этой песни.";
+
+"by_name" = "по композициям";
+"by_performer" = "по исполнителю";
+"no_access_clubs" = "Нет групп, где вы являетесь администратором.";
+
/* Notifications */
"feedback" = "Ответы";