From 2c44abde3c5a48eba0342dd9288cd6ec2f2dbf19 Mon Sep 17 00:00:00 2001 From: yyasha Date: Wed, 27 Mar 2024 18:42:44 +0300 Subject: [PATCH] refactor and add videos --- Dockerfile | 2 +- cmd/bridge/main.go | 39 + go.mod | 21 +- go.sum | 35 + internal/config/config.go | 30 + internal/telegram/telegram.go | 79 ++ internal/vk/story.go | 1 + internal/vk/video.go | 2525 +++++++++++++++++++++++++++++++++ internal/vk/vk.go | 90 ++ main.go | 169 --- 10 files changed, 2818 insertions(+), 173 deletions(-) create mode 100644 cmd/bridge/main.go create mode 100644 internal/config/config.go create mode 100644 internal/telegram/telegram.go create mode 100644 internal/vk/story.go create mode 100644 internal/vk/video.go create mode 100644 internal/vk/vk.go delete mode 100644 main.go diff --git a/Dockerfile b/Dockerfile index a04e355..5979665 100644 --- a/Dockerfile +++ b/Dockerfile @@ -6,7 +6,7 @@ ADD go.mod . COPY . . RUN go mod download -RUN CGO_ENABLED=0 GOOS=linux go build -ldflags "-w -s" -o main main.go +RUN CGO_ENABLED=0 GOOS=linux go build -ldflags "-w -s" -o main ./cmd/bridge/main.go FROM alpine diff --git a/cmd/bridge/main.go b/cmd/bridge/main.go new file mode 100644 index 0000000..d3ddb54 --- /dev/null +++ b/cmd/bridge/main.go @@ -0,0 +1,39 @@ +package main + +import ( + "bridge/internal/config" + "bridge/internal/telegram" + "bridge/internal/vk" + "log/slog" + "os" + + prettyLogger "github.com/charmbracelet/log" +) + +func main() { + // get config + cfg := config.MustLoad() + logger := setupLogger() + // create chan + video_links := make(chan string, cfg.Workers) + // vk + vk, err := vk.New(logger, cfg.VkAPIKey, video_links) + if err != nil { + panic(err) + } + // tg + tg, err := telegram.New(logger, cfg.TgAPIKey, cfg.TgChatID, video_links) + if err != nil { + panic(err) + } + // run + tg.Run(cfg.Workers) + vk.MustRun() +} + +func setupLogger() *slog.Logger { + var log *slog.Logger + handler := prettyLogger.NewWithOptions(os.Stdout, prettyLogger.Options{Level: prettyLogger.DebugLevel}) + log = slog.New(handler) + return log +} diff --git a/go.mod b/go.mod index ff18d97..b758332 100644 --- a/go.mod +++ b/go.mod @@ -3,13 +3,28 @@ module bridge go 1.20 require ( - github.com/SevereCloud/vksdk/v2 v2.16.1 // indirect + github.com/SevereCloud/vksdk/v2 v2.16.1 + github.com/charmbracelet/log v0.4.0 + github.com/go-telegram-bot-api/telegram-bot-api/v5 v5.5.1 + github.com/s32x/httpclient v0.0.0-20220217184346-6df4d4d51c14 +) + +require ( + github.com/aymanbagabas/go-osc52/v2 v2.0.1 // indirect github.com/cenkalti/backoff/v4 v4.1.2 // indirect - github.com/go-telegram-bot-api/telegram-bot-api/v5 v5.5.1 // indirect + github.com/charmbracelet/lipgloss v0.10.0 // indirect + github.com/go-logfmt/logfmt v0.6.0 // indirect github.com/klauspost/compress v1.16.7 // indirect - github.com/s32x/httpclient v0.0.0-20220217184346-6df4d4d51c14 // indirect + github.com/lucasb-eyer/go-colorful v1.2.0 // indirect + github.com/mattn/go-isatty v0.0.18 // indirect + github.com/mattn/go-runewidth v0.0.15 // indirect + github.com/muesli/reflow v0.3.0 // indirect + github.com/muesli/termenv v0.15.2 // indirect + github.com/rivo/uniseg v0.4.7 // indirect github.com/vmihailenco/msgpack/v5 v5.4.0 // indirect github.com/vmihailenco/tagparser/v2 v2.0.0 // indirect + golang.org/x/exp v0.0.0-20231006140011-7918f672742d // indirect + golang.org/x/sys v0.13.0 // indirect golang.org/x/text v0.13.0 // indirect h12.io/socks v1.0.3 // indirect ) diff --git a/go.sum b/go.sum index 22c923a..2d558a7 100644 --- a/go.sum +++ b/go.sum @@ -1,20 +1,55 @@ github.com/SevereCloud/vksdk/v2 v2.16.1 h1:UiazL3vTy7lMm33oIXRMxXg8S5I8bQuqEdLtbmOSpG4= github.com/SevereCloud/vksdk/v2 v2.16.1/go.mod h1:UfVcBt8qh5+gIflQO6L+CWwrXcpwhOl5hKvKf8sXUd8= +github.com/aymanbagabas/go-osc52/v2 v2.0.1 h1:HwpRHbFMcZLEVr42D4p7XBqjyuxQH5SMiErDT4WkJ2k= +github.com/aymanbagabas/go-osc52/v2 v2.0.1/go.mod h1:uYgXzlJ7ZpABp8OJ+exZzJJhRNQ2ASbcXHWsFqH8hp8= github.com/cenkalti/backoff/v4 v4.1.2 h1:6Yo7N8UP2K6LWZnW94DLVSSrbobcWdVzAYOisuDPIFo= github.com/cenkalti/backoff/v4 v4.1.2/go.mod h1:scbssz8iZGpm3xbr14ovlUdkxfGXNInqkPWOWmG2CLw= +github.com/charmbracelet/lipgloss v0.10.0 h1:KWeXFSexGcfahHX+54URiZGkBFazf70JNMtwg/AFW3s= +github.com/charmbracelet/lipgloss v0.10.0/go.mod h1:Wig9DSfvANsxqkRsqj6x87irdy123SR4dOXlKa91ciE= +github.com/charmbracelet/log v0.4.0 h1:G9bQAcx8rWA2T3pWvx7YtPTPwgqpk7D68BX21IRW8ZM= +github.com/charmbracelet/log v0.4.0/go.mod h1:63bXt/djrizTec0l11H20t8FDSvA4CRZJ1KH22MdptM= +github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= +github.com/go-logfmt/logfmt v0.6.0 h1:wGYYu3uicYdqXVgoYbvnkrPVXkuLM1p1ifugDMEdRi4= +github.com/go-logfmt/logfmt v0.6.0/go.mod h1:WYhtIu8zTZfxdn5+rREduYbwxfcBr/Vr6KEVveWlfTs= github.com/go-telegram-bot-api/telegram-bot-api/v5 v5.5.1 h1:wG8n/XJQ07TmjbITcGiUaOtXxdrINDz1b0J1w0SzqDc= github.com/go-telegram-bot-api/telegram-bot-api/v5 v5.5.1/go.mod h1:A2S0CWkNylc2phvKXWBBdD3K0iGnDBGbzRpISP2zBl8= +github.com/gorilla/websocket v1.5.0 h1:PPwGk2jz7EePpoHN/+ClbZu8SPxiqlu12wZP/3sWmnc= +github.com/h12w/go-socks5 v0.0.0-20200522160539-76189e178364 h1:5XxdakFhqd9dnXoAZy1Mb2R/DZ6D1e+0bGC/JhucGYI= github.com/h12w/go-socks5 v0.0.0-20200522160539-76189e178364/go.mod h1:eDJQioIyy4Yn3MVivT7rv/39gAJTrA7lgmYr8EW950c= github.com/klauspost/compress v1.16.7 h1:2mk3MPGNzKyxErAw8YaohYh69+pa4sIQSC0fPGCFR9I= github.com/klauspost/compress v1.16.7/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= +github.com/lucasb-eyer/go-colorful v1.2.0 h1:1nnpGOrhyZZuNyfu1QjKiUICQ74+3FNCN69Aj6K7nkY= +github.com/lucasb-eyer/go-colorful v1.2.0/go.mod h1:R4dSotOR9KMtayYi1e77YzuveK+i7ruzyGqttikkLy0= +github.com/mattn/go-isatty v0.0.18 h1:DOKFKCQ7FNG2L1rbrmstDN4QVRdS89Nkh85u68Uwp98= +github.com/mattn/go-isatty v0.0.18/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= +github.com/mattn/go-runewidth v0.0.12/go.mod h1:RAqKPSqVFrSLVXbA8x7dzmKdmGzieGRCM46jaSJTDAk= +github.com/mattn/go-runewidth v0.0.15 h1:UNAjwbU9l54TA3KzvqLGxwWjHmMgBUVhBiTjelZgg3U= +github.com/mattn/go-runewidth v0.0.15/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= +github.com/muesli/reflow v0.3.0 h1:IFsN6K9NfGtjeggFP+68I4chLZV2yIKsXJFNZ+eWh6s= +github.com/muesli/reflow v0.3.0/go.mod h1:pbwTDkVPibjO2kyvBQRBxTWEEGDGq0FlB1BIKtnHY/8= +github.com/muesli/termenv v0.15.2 h1:GohcuySI0QmI3wN8Ok9PtKGkgkFIk7y6Vpb5PvrY+Wo= +github.com/muesli/termenv v0.15.2/go.mod h1:Epx+iuz8sNs7mNKhxzH4fWXGNpZwUaJKRS1noLXviQ8= +github.com/phayes/freeport v0.0.0-20180830031419-95f893ade6f2 h1:JhzVVoYvbOACxoUmOs6V/G4D5nPVUW73rKvXxP4XUJc= github.com/phayes/freeport v0.0.0-20180830031419-95f893ade6f2/go.mod h1:iIss55rKnNBTvrwdmkUpLnDpZoAHvWaiq5+iMmen4AE= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/rivo/uniseg v0.1.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= +github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= +github.com/rivo/uniseg v0.4.7 h1:WUdvkW8uEhrYfLC4ZzdpI2ztxP1I582+49Oc5Mq64VQ= +github.com/rivo/uniseg v0.4.7/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= github.com/s32x/httpclient v0.0.0-20220217184346-6df4d4d51c14 h1:7X+d8s674m+oOrb2YbbBrtA1Ey1puN9mBvHp2SWfkig= github.com/s32x/httpclient v0.0.0-20220217184346-6df4d4d51c14/go.mod h1:FqlhGa3u28mSvrE2aDhpKc1h1WpEcjmrXFkN/e2qnxQ= +github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= github.com/vmihailenco/msgpack/v5 v5.4.0 h1:hRM0digJwyR6vll33NNAwCFguy5JuBD6jxDmQP3l608= github.com/vmihailenco/msgpack/v5 v5.4.0/go.mod h1:GaZTsDaehaPpQVyxrf5mtQlH+pc21PIudVV/E3rRQok= github.com/vmihailenco/tagparser/v2 v2.0.0 h1:y09buUbR+b5aycVFQs/g70pqKVZNBmxwAhO7/IwNM9g= github.com/vmihailenco/tagparser/v2 v2.0.0/go.mod h1:Wri+At7QHww0WTrCBeu4J6bNtoV6mEfg5OIWRZA9qds= +golang.org/x/exp v0.0.0-20231006140011-7918f672742d h1:jtJma62tbqLibJ5sFQz8bKtEM8rJBtfilJ2qTU199MI= +golang.org/x/exp v0.0.0-20231006140011-7918f672742d/go.mod h1:ldy0pHrwJyGW56pPQzzkH36rKxoZW1tw7ZJpeKx+hdo= +golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.13.0 h1:Af8nKPmuFypiUBjVoU9V20FiaFXOcuZI21p0ycVYYGE= +golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/text v0.13.0 h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k= golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= +gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= h12.io/socks v1.0.3 h1:Ka3qaQewws4j4/eDQnOdpr4wXsC//dXtWvftlIcCQUo= h12.io/socks v1.0.3/go.mod h1:AIhxy1jOId/XCz9BO+EIgNL2rQiPTBNnOfnVnQ+3Eck= diff --git a/internal/config/config.go b/internal/config/config.go new file mode 100644 index 0000000..ca07f58 --- /dev/null +++ b/internal/config/config.go @@ -0,0 +1,30 @@ +package config + +import ( + "os" + "strconv" +) + +type Config struct { + Workers int + TgAPIKey string + TgChatID int64 + VkAPIKey string +} + +// MustLoad loads the config. +func MustLoad() *Config { + var Conf Config + var err error + Conf.Workers, err = strconv.Atoi(os.Getenv("Workers")) + if err != nil { + panic(err) + } + Conf.TgAPIKey = os.Getenv("TgAPIKey") + Conf.VkAPIKey = os.Getenv("VkAPIKey") + Conf.TgChatID, err = strconv.ParseInt(os.Getenv("TgChatID"), 10, 64) + if err != nil { + panic(err) + } + return &Conf +} diff --git a/internal/telegram/telegram.go b/internal/telegram/telegram.go new file mode 100644 index 0000000..e12109b --- /dev/null +++ b/internal/telegram/telegram.go @@ -0,0 +1,79 @@ +package telegram + +import ( + "fmt" + "log/slog" + "strings" + + tgbotapi "github.com/go-telegram-bot-api/telegram-bot-api/v5" + "github.com/s32x/httpclient" +) + +type TG struct { + api *tgbotapi.BotAPI + video_links chan string + logger *slog.Logger + chat_id int64 +} + +func New(logger *slog.Logger, api_key string, chat_id int64, video_links chan string) (*TG, error) { + const op = "telegram.New" + bot, err := tgbotapi.NewBotAPI(api_key) + if err != nil { + return nil, fmt.Errorf("%s: %w", op, err) + } + + bot.Debug = false + + u := tgbotapi.NewUpdate(0) + u.Timeout = 60 + + return &TG{ + api: bot, + video_links: video_links, + logger: logger, + chat_id: chat_id, + }, nil +} + +func (tg *TG) Run(count int) { + for i := 0; i < count; i++ { + go tg.new_tg_worker(i + 1) + } +} + +const PCUserAgent string = "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36" +const MobileUserAgent string = "Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Mobile Safari/537.36" + +func (tg *TG) new_tg_worker(id int) { + for link := range tg.video_links { + tg.logger.Info(fmt.Sprintf("[%d]", id), "Получена ссылка, загружаю:", link) + // get video by link + var client *httpclient.Client + if strings.Contains(link, "VK_ANDROID") { + // create mobile client + client = httpclient.New().WithHeader("User-Agent", MobileUserAgent) + } else { + // create Desktop client + client = httpclient.New().WithHeader("User-Agent", PCUserAgent) + } + + resp, err := client.Get(link).Do() + if err != nil { + tg.logger.Error("Error with get media", "err", err) + continue + } + body, err := resp.Bytes() + if err != nil { + tg.logger.Error("Error with get body", "err", err) + continue + } + msg := tgbotapi.NewVideo(tg.chat_id, tgbotapi.FileBytes{Name: "story", Bytes: body}) + tg.logger.Info(fmt.Sprintf("[%d] Отправляю видео в телеграм...", id)) + _, err = tg.api.Send(msg) + if err != nil { + tg.logger.Error("Error with send message", "err", err) + continue + } + } +} diff --git a/internal/vk/story.go b/internal/vk/story.go new file mode 100644 index 0000000..dccfae6 --- /dev/null +++ b/internal/vk/story.go @@ -0,0 +1 @@ +package vk diff --git a/internal/vk/video.go b/internal/vk/video.go new file mode 100644 index 0000000..032f56e --- /dev/null +++ b/internal/vk/video.go @@ -0,0 +1,2525 @@ +package vk + +import ( + "encoding/json" + "errors" + "fmt" + "net/url" + + "github.com/s32x/httpclient" +) + +type GetVideoResponse struct { + Player struct { + Params []struct { + URL240 string `json:"url240"` + URL360 string `json:"url360"` + URL480 string `json:"url480"` + URL720 string `json:"url720"` + URL1080 string `json:"url1080"` + URL1440 string `json:"url1440"` + } `json:"params"` + } `json:"player"` +} + +type Payload struct { + Payload []interface{} `json:"payload"` +} + +func decodeVideoLink(body []byte) (string, error) { + var p Payload + err := json.Unmarshal(body, &p) + if err != nil { + return "", err + } + realJson, ok := p.Payload[1].([]interface{}) + if !ok { + return "", fmt.Errorf("Failed to decode json") + } + EncodedPiece, err := json.Marshal(realJson[len(realJson)-1]) + if err != nil { + return "", err + } + var video GetVideoResponse + err = json.Unmarshal(EncodedPiece, &video) + if err != nil { + return "", err + } + switch { + case video.Player.Params[0].URL1080 != "": + return video.Player.Params[0].URL1080, nil + case video.Player.Params[0].URL720 != "": + return video.Player.Params[0].URL720, nil + case video.Player.Params[0].URL480 != "": + return video.Player.Params[0].URL480, nil + case video.Player.Params[0].URL1440 != "": + return video.Player.Params[0].URL1440, nil + case video.Player.Params[0].URL360 != "": + return video.Player.Params[0].URL360, nil + case video.Player.Params[0].URL240 != "": + return video.Player.Params[0].URL240, nil + } + return "", errors.New("link not found") +} + +const PCUserAgent string = "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36" +const MobileUserAgent string = "Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Mobile Safari/537.36" + +func fetchVideoURL(ownerID int, videoID int) (string, error) { + var req_body url.Values = make(url.Values) + req_body.Add("al", "1") + req_body.Add("video", fmt.Sprintf("%d_%d", ownerID, videoID)) + resp_body, err := httpclient.New().WithHeader("Referer", "https://vk.com").WithHeader("User-Agent", PCUserAgent).WithBaseURL("https://vk.com").Post("/al_video.php?act=show").WithForm(req_body).WithExpectedStatus(200).Bytes() + if err != nil { + return "", err + } + for i := 0; i < 4; i++ { + resp_body[i] = ' ' + } + link, err := decodeVideoLink(resp_body) + if err != nil { + return "", err + } + return link, nil +} + +var jsonS string = `{ + "payload": [ + 0, + [ + "Клип @webm_original", + "
Произошла ошибка
", + "\naddTemplates({\"_\":\"_\"});\n addLangKeys({\"global_date_l\":[\"\",\"{day} {month} {year}\",\"вчера\",\"сегодня\",\"завтра\"],\"global_date_year_l\":[\"\",\"{day} {month} {year} года\",\"Вчера\",\"Сегодня\",\"Завтра\"],\"global_short_date_time_l\":[\"\",\"{day} {month} в {hour}:{minute}\",\"вчера в {hour}:{minute}\",\"сегодня в {hour}:{minute}\",\"завтра в {hour}:{minute}\"],\"months_sm_of\":{\"1\":\"янв\",\"2\":\"фев\",\"3\":\"мар\",\"4\":\"апр\",\"5\":\"мая\",\"6\":\"июн\",\"7\":\"июл\",\"8\":\"авг\",\"9\":\"сен\",\"10\":\"окт\",\"11\":\"ноя\",\"12\":\"дек\"},\"months_of\":{\"1\":\"января\",\"2\":\"февраля\",\"3\":\"марта\",\"4\":\"апреля\",\"5\":\"мая\",\"6\":\"июня\",\"7\":\"июля\",\"8\":\"августа\",\"9\":\"сентября\",\"10\":\"октября\",\"11\":\"ноября\",\"12\":\"декабря\"},\"global_close\":\"Закрыть\",\"audio_add_to_audio\":\"Добавить в мою музыку\",\"global_delete_audio\":\"Удалить аудиозапись\",\"audio_album_part\":\"Часть {part}\",\"audio_following_artist_button\":\"Вы подписаны\",\"audio_follow_artist_success_notification_text\":\"Новые релизы музыканта будут появляться в разделе музыкальных обновлений.\",\"audio_follow_artist_success_notification_title\":\"Вы подписались на музыканта\",\"audio_follow_artist_button\":\"Подписаться\",\"audio_delete_from_current\":\"Удалить из текущего плейлиста\",\"audio_dont_show\":\"Больше не показывать\",\"audio_remove_from_list\":\"Удалить из прослушанных\",\"audio_podcast_delete_episode\":\"Удалить эпизод\",\"audio_restore_audio\":\"Восстановить аудиозапись\",\"global_media_selector_more\":\"Ещё\",\"audio_podcast_restore_episode\":\"Восстановить эпизод\",\"audio_add_to_group\":\"Добавить в аудиозаписи сообщества\",\"audio_podcast_edit_episode\":\"Редактировать эпизод\",\"audio_edit_audio\":\"Редактировать аудиозапись\",\"audio_set_next_audio\":\"Воспроизвести следующей\",\"audio_show_recommendations\":\"Показать похожие\",\"audio_podcast_listen_later\":\"Послушать позже\",\"audio_show_lyrics\":\"Показать текст\",\"audio_longtap_tooltip_text\":\"Послушать сниппет\",\"global_audio_play\":\"Воспроизвести\",\"global_audio_pause\":\"Приостановить\",\"Save\":\"Сохранить\",\"global_yes\":\"Да\",\"global_cancel\":\"Отмена\",\"global_save\":\"Сохранить\",\"audio_playlist_link_copied\":\"Ссылка скопирована в буфер обмена\",\"global_error\":\"Ошибка\",\"audio_ok\":\"ОК\",\"audio_playlist_recoms_was_hidden\":\"Плейлист был скрыт из рекомендаций\",\"audio_playlist_recoms_show\":\"Показывать в рекомендациях\",\"global_unknown_error\":\"Неизвестная ошибка\",\"audio_error_deleted_playlist_box\":\"Плейлист недоступен\\/Такого плейлиста не существует или он был удалён автором.\",\"audio_playlist_btn_added\":\"Добавлено\",\"audio_playlist_btn_add\":\"Добавить\",\"audio_playlist_recoms_was_showed\":\"Плейлист был возвращен в рекомендации\",\"audio_playlist_recoms_hide\":\"Скрыть из рекомендаций\",\"audio_add_to_new_pl\":\"Новый плейлист\",\"audio_row_show_all_playlists\":\"Показать все...\",\"audio_delete_all_title\":\"Удаление аудиозаписей\",\"global_delete\":\"Удалить\",\"global_add_media\":\"Прикрепить\",\"global_audio_replace\":\"Заменить\",\"audio_copy_audio_link\":\"Скопировать ссылку\",\"audio_share_audio\":\"Поделиться\",\"audio_add_to_playlist\":\"Добавить в плейлист\",\"audio_open_album\":\"Открыть альбом\",\"audio_podcast_open_episode\":\"Открыть эпизод\",\"audio_restriction_title_claim\":\"Аудиозапись недоступна. Так решил музыкант или его представитель.\",\"audio_success_msg_multiple\":\"Все аудиозаписи успешно загружены.\",\"audio_success_msg\":\"Аудиозапись успешно загружена.\",\"audio_uploading_over\":\"Загрузка завершена\",\"audio_loading_error\":\"Возникла ошибка, код ошибки: {code}\",\"audio_error_loading\":\"При загрузке аудиозаписи произошла ошибка. Попробуйте обновить страницу.\",\"audio_save_recommendation_audio_block_as_playlist_success_notification_title\":\"Плейлист был добавлен в вашу музыку\",\"audio_save_recommendation_audio_block_as_playlist_success_notification_text\":\"Теперь он находится в разделе с добавленными плейлистами и треками\",\"global_audio_ad\":\"Реклама\",\"global_audio_ads_off\":\"Отключить\",\"audio_player_block_broadcast_tooltip_title\":\"Транслировать аудиозаписи:\",\"audio_player_block_broadcast_tooltip_user_page_checkbox\":\"На мою страницу\",\"audio_player_block_broadcast_tooltip_clubs_container_title\":\"Транслировать в сообщество\",\"audio_player_block_remove_from_group_hint\":\"Удалить\",\"audio_player_block_add_to_group_hint\":\"Добавить\",\"audio_player_block_remove_from_my_music_hint\":\"Удалить из моей музыки\",\"audio_player_block_add_to_my_music_hint\":\"Добавить в мою музыку\",\"global_audio_ad_more\":\"Подробнее\",\"audio_player_block_playback_progress_time_aria_label\":\"Изменить режим времени воспроизведения\",\"audio_action_dislike\":\"Не нравится\",\"global_audio_prev\":\"Предыдущая аудиозапись\",\"global_audio_next\":\"Следующая аудиозапись\",\"audio_shuffle\":\"Перемешать и воспроизвести\",\"audio_repeat_tooltip\":\"Повторять\",\"audio_playback_rate\":\"Скорость воспроизведения\",\"audio_player_block_podcast_remove_from_favorites_hint\":\"Удалить из закладок\",\"audio_player_block_podcast_add_to_favorites_hint\":\"Добавить в закладки\",\"audio_share\":\"Поделиться\",\"audio_player_block_volume_slider_mute_button_aria_label\":\"Выключить звук\",\"audio_lyrics_ads\":\"Реклама\",\"audio_lyrics_error_btn_retry\":\"Повторить\",\"audio_lyrics_error\":\"Что-то пошло не так. Попробуйте ещё раз или включите другой трек.\",\"audio_track_has_no_lyrics_yet\":\"У этого трека пока нет текста\",\"payments_go_change_pay_type\":\"Выбрать другой способ оплаты\",\"payments_get_votes_new\":\"Получить голоса\",\"index_sel_bday\":\"День\",\"global_user_is_online_mobile\":\"онлайн с телефона\",\"global_user_is_online\":\"онлайн\",\"global_reload_app_modal_title\":\"Обновление сайта\",\"global_reload_app_modal_content\":\"Сайт был обновлён. Перезагрузите страницу, чтобы всё работало корректно.\",\"global_reload_app_modal_action\":\"Перезагрузить\",\"global_charged_zone_title\":\"Предупреждение\",\"global_charged_zone_continue\":\"Продолжить\",\"global_just_now\":\"только что\",\"global_word_secs_ago\":[\"\",\"только что\",\"две секунды назад\",\"три секунды назад\",\"четыре секунды назад\",\"пять секунд назад\"],\"global_secs_ago\":[\"\",\"%s секунду назад\",\"%s секунды назад\",\"%s секунд назад\"],\"wall_post_mins_ago\":[\"\",\"%s мин\",\"%s мин\",\"%s мин\"],\"global_word_mins_ago\":[\"\",\"минуту назад\",\"две минуты назад\",\"три минуты назад\",\"4 минуты назад\",\"5 минут назад\"],\"global_mins_ago\":[\"\",\"%s минуту назад\",\"%s минуты назад\",\"%s минут назад\"],\"wall_post_hours_ago\":[\"\",\"%s ч\",\"%s ч\",\"%s ч\"],\"global_word_hours_ago\":[\"\",\"час назад\",\"два часа назад\",\"три часа назад\",\"четыре часа назад\",\"пять часов назад\"],\"global_hours_ago\":[\"\",\"%s час назад\",\"%s часа назад\",\"%s часов назад\"],\"mail_money_transfer_cancel_confirm\":\"Вы действительно хотите отменить денежный перевод?\",\"mail_money_transfer_cancel_btn\":\"Отменить перевод\",\"mail_money_transfer_decline_confirm\":\"Вы действительно хотите отклонить денежный перевод?\",\"news_fb_money_transfer_decline_confirm\":\"Вы действительно хотите отклонить денежный перевод?\",\"mail_money_transfer_decline_btn\":\"Отклонить\",\"news_fb_money_transfer_decline_btn\":\"Отклонить\",\"global_action_confirmation\":\"Подтверждение действия\",\"box_send\":\"Отправить\",\"reports_thanks_for_report\":\"Спасибо, ваша жалоба принята.\",\"audio_claimed_geo\":\"Аудиозапись {audio} недоступна для прослушивания в вашем регионе.\",\"audio_claim_warning_title\":\"Спорная аудиозапись\",\"audio_site_rules_violation_warning\":\"Аудиозапись {audio} была изъята из публичного доступа в связи с нарушением правил сайта.\",\"audio_site_rules_violation_header\":\"Запрещённая аудиозапись\",\"audio_claimed_replacement_available\":\"Аудиозапись была заблокирована по требованию правообладателя. Вы можете заменить её на оригинальную аудиозапись правообладателя {original}<\\/b>.\",\"global_audio_only_with_subscription_title\":\"Аудиозапись доступна с подпиской\",\"global_audio_only_with_subscription_text\":\"Так решил музыкант или его представитель. Купите подписку и получите доступ к расширенному каталогу музыки.\",\"global_audio_only_with_subscription_btn\":\"Узнать больше\",\"audio_claim_warning\":\"Аудиозапись {audio} была изъята из публичного доступа в связи с обращением правообладателя.\",\"audio_claim_objection\":\"заполнив специальную форму\",\"audio_claim_delete\":\"удалить аудиозапись\",\"audio_replace_with_original\":\"Заменить\",\"audio_claim_delete_capital\":\"Удалить аудиозапись\",\"global_date\":[\"\",\"{day} {month} {year}\",\"вчера\",\"сегодня\",\"завтра\"],\"global_short_date\":[\"\",\"{day} {month}\",\"вчера\",\"сегодня\",\"завтра\"],\"global_short_date_time\":[\"\",\"{day} {month} в {hour}:{minute}\",\"вчера в {hour}:{minute}\",\"сегодня в {hour}:{minute}\",\"завтра в {hour}:{minute}\"],\"head_fr_online_tip\":\"Показать список друзей\",\"global_to_top\":\"Наверх\",\"stories_bad_browser\":\"Истории не поддерживаются в вашем браузере\",\"stories_mask_sent\":\"Маска отправлена на телефон\",\"global_box_error_title\":\"Ошибка\",\"global_friends\":\"Друзья\",\"global_communities\":\"Сообщества\",\"global_apps\":\"Приложения\",\"global_chats\":\"Диалоги\",\"head_search_results\":\"Результаты поиска\",\"global_news_search_results\":\"Результаты поиска в новостях\",\"global_show_all_results\":\"Показать все результаты\",\"global_back\":\"Назад\",\"text_N_symbols_remain\":[\"\",\"Остался %s знак\",\"Осталось %s знака\",\"Осталось %s знаков\"],\"text_exceeds_symbol_limit\":[\"\",\"Допустимое количество символов превышено на %s знак\",\"Допустимое количество символов превышено на %s знака\",\"Допустимое количество символов превышено на %s знаков\"],\"votes_flex\":[\"\",\"голос\",\"голоса\",\"голосов\"],\"global_money_amount_rub\":[\"\",\"%s рубль\",\"%s рубля\",\"%s рублей\"],\"global_error_occured\":\"Произошла ошибка\",\"reg0_error_bad_email\":\"Некорректный email.\",\"reg0_change_mail\":\"Изменить\",\"login_fast_unblocked_wait_description\":\"Страница разблокирована. Через несколько секунд Вы вновь сможете пользоваться ВКонтакте.\",\"login_blocked_delete_page_header\":\"Удаление страницы\",\"login_blocked_sure_delete_page_question\":\"Вы уверены, что хотите удалить свою страницу?\",\"box_yes\":\"Да\",\"box_no\":\"Нет\",\"notifications_native_common_error\":\"Произошла ошибка при включении уведомлений.\",\"payments_waiting_app_order_complete\":\"Ожидаем завершения платежа...\",\"payments_waiting_payment_complete_still\":\"Подождите ещё немного...\",\"payments_app_order_box_title\":\"Передача голосов приложению\",\"payments_app_add_votes_delay\":\"Мы ожидаем подтверждение от приложения. Если оно не будет получено в течение часа, голоса будут возвращены на ваш счёт.\",\"payments_money_transfer_new_card\":\"Новая карта\",\"votes_transfer_start_typing_recipient\":\"Начните вводить имя друга\",\"votes_transfer_choose_recipients\":\"Выберите получателя\",\"payments_cards_redirect\":\"Перенаправление на платёжный шлюз.
Пожалуйста, подождите...\",\"payments_payment_cancelled\":\"Процесс оплаты был отменён.\",\"payments_money_request_error_no_accept_card\":\"Пожалуйста, укажите карту для автоматического зачисления переводов.\",\"payments_money_request_error_min_chunk_amount_currency\":\"Минимальная рекомендуемая сумма — {min_amount}\",\"payments_money_request_error_max_chunk_amount_currency\":\"Максимальная рекомендуемая сумма — {max_amount}\",\"payments_money_request_error_chunk_amount_too_big\":\"Рекомендуемая сумма не может быть больше общей суммы запроса.\",\"payments_landing_cancelled\":\"{tag_span}К сожалению, ваш платёж не был принят.{\\/tag_span}
Пожалуйста, обратитесь в {link}Поддержку{\\/link}.\",\"payments_waiting_transfer_complete\":\"Ожидаем подтверждения перевода\",\"payments_remember_card_btn\":\"Да, получать на эту карту\",\"payments_dont_remember_card_btn\":\"Нет\",\"payments_vkpay_low_balance_title\":\"Недостаточно средств\",\"payments_vkpay_low_balance_text\":\"Пополните баланс без комиссии.\",\"payments_vkpay_topup_button\":\"Пополнить\",\"payments_money_transfer_amount_limits\":\"Минимальная сумма — {min_amount}\",\"payments_money_transfer_error_min_amount_currency\":\"Минимальная сумма перевода — {min_amount}\",\"payments_money_transfer_error_max_amount_currency\":\"Максимальная сумма перевода — {max_amount}\",\"payments_money_transfer_low_balance\":\"Недостаточно средств\",\"payments_money_transfer_will_be_requested\":\"Будет запрошено: {amount}\",\"payments_money_transfer_about_title\":\"Условия\",\"payments_money_link_btn_feature_text\":\"Поделитесь ссылкой или QR-кодом ВКонтакте или за его пределами, чтобы начать сбор денег\",\"payments_money_link_tab_feature_text\":\"Ссылки и QR-код для сбора денег находятся здесь\",\"payments_transfer_without_fee\":\"Без комиссии\",\"payments_money_transfer_btn\":\"Отправить деньги\",\"payments_transfer_method_without_fee_for_mastercard\":\"Без комиссии с Mastercard для переводов от 300 руб.\",\"payments_money_transfer_commission_undefined\":\"Комиссия зависит от платёжной системы карты\",\"payments_get_votes_box_close_notice\":\"Платёж в обработке. Мы пришлём вам уведомление, когда голоса будут зачислены на ваш счёт.\",\"payments_unbind_card_confirm\":\"Вы действительно хотите отвязать карту?\",\"payments_revoke_token_confirm\":\"Вы действительно хотите отвязать этот кошелёк?\",\"payments_unbind_card_btn\":\"Удалить\",\"apps_personal_discount_amount_gift_calc\":[\"\",\"+%s в подарок\",\"+%s в подарок\",\"+%s в подарок\"],\"payments_votes_cost_in_rubles\":[\"\",\"Стоимость %s рубль\",\"Стоимость %s рубля\",\"Стоимость %s рублей\"],\"payments_bonus_votes\":[\"\",\"+ бонус %s голос\",\"+ бонус %s голоса\",\"+ бонус %s голосов\"],\"payments_get_votes_for_X\":\"Получить голоса за {amount}\",\"payments_back_to_ps_list\":\"Вернуться к списку\",\"payments_go_ps_list\":\"Вернуться к выбору платёжной системы\",\"payments_pay_order_btn\":\"Оплатить\",\"payments_web_no_sum\":\"Пожалуйста, выберите желаемое количество голосов.\",\"payments_min_amount_limit_votes\":\"Минимальное количество голосов для оплаты через выбранную платёжную систему: %s.\",\"payments_max_amount_limit_votes\":\"Максимальное количество голосов для оплаты через выбранную платежную систему — %s.\",\"payments_rest_amount_day_votes\":\"Превышена сумма лимита за день. Возможное количество голосов для оплаты через выбранную платёжную систему – %s.\",\"payments_rest_amount_week_votes\":\"Превышена сумма лимита за неделю. Возможное количество голосов для оплаты через выбранную платёжную систему – %s.\",\"payments_error_invalid_email\":\"Указан неверный адрес электронной почты.\",\"payments_money_for_votes\":[\"\",\"{money} (%s голос)\",\"{money} (%s голоса)\",\"{money} (%s голосов)\"],\"payment_redirect\":\"Перенаправление на платёжную систему %s<\\/b>.
Пожалуйста, подождите...\",\"payments_sms_money_fail\":\"Ваш запрос не был обработан. Попробуйте повторить его позднее.\",\"payments_invalid_code\":\"Неверный код.\",\"payments_change_phone_number\":\"Изменить номер\",\"payments_spasibo_rules_not_accepted\":\"Чтобы продолжить, нужно принять условия\",\"payments_to_get_send_sms\":[\"\",\"Чтобы получить %s<\\/b> голос, отправьте с вашего номера 1 SMS<\\/b> с текстом {text}<\\/b> на номер {number}<\\/b>.\",\"Чтобы получить %s<\\/b> голоса, отправьте с вашего номера 1 SMS<\\/b> с текстом {text}<\\/b> на номер {number}<\\/b>.\",\"Чтобы получить %s<\\/b> голосов, отправьте с вашего номера 1 SMS<\\/b> с текстом {text}<\\/b> на номер {number}<\\/b>.\"],\"payments_service_cost\":\"Стоимость услуги {amount}<\\/b>\",\"payments_get_votes_input_phone\":\"Пожалуйста, укажите номер телефона<\\/b> для оплаты:\",\"payments_save_phone\":\"Сохранить номер\",\"payments_box_title_back\":\"Назад\",\"payments_waiting_payment_complete\":\"Ожидаем завершения оплаты...\",\"payments_internet_getting_votes\":\"Получение голосов\",\"payments_get_votes_delay\":\"Мы ожидаем ответ от платёжного шлюза. Как только мы его получим, то обязательно зачислим голоса на {link}ваш счёт{\\/link}.

Если вы не получите голоса в течение часа, вы можете обратиться в {link2}платёжную техподдержку{\\/link2}.\",\"payments_get_votes_ps_enter_code\":\"Вам отправлено сообщение с кодом подтверждения, введите полученный код для оплаты\",\"payments_instant_pay_amount_limit_error\":\"Недостаточно средств на счёте либо достигнут лимит на списание средств без подтверждения.
Для совершения оплаты с подтверждением нажмите {link}Перейти к оплате{\\/link}.\",\"payments_for_get_n_votes\":[\"\",\"%s<\\/b> голоса\",\"%s<\\/b> голосов\",\"%s<\\/b> голосов\"],\"payments_service_cost_rubles\":[\"\",\"Стоимость услуги %s рубль<\\/b>.\",\"Стоимость услуги %s рубля<\\/b>.\",\"Стоимость услуги %s рублей<\\/b>.\"],\"payments_back_to_offers_list\":\"Вернуться к списку\",\"settings_addrbox_title\":\"Красивый адрес для вашей страницы\",\"settings_addrbox_hint\":\"В названии можно использовать латинские буквы, цифры и знак "_"\",\"global_report_sent\":\"Жалоба отправлена\",\"box_cancel\":\"Отмена\",\"like_block_liker\":\"Заблокировать\",\"wall_open_comments\":\"Включить комментарии\",\"wall_closing_comments\":\"Выключить комментарии\",\"stats_posts_reach_tooltip_head\":\"Общий охват<\\/b>: общее количество человек, которые увидели запись в сообществе, новостной ленте, диалогах и так далее. Этот показатель учитывает пересечение органического, вирального и рекламного охвата. \",\"stats_posts_reach_tooltip_body\":\"Рекламный охват<\\/b>: количество человек, которые увидели вашу запись благодаря рекламным форматам ВКонтакте.

Виральный охват<\\/b>: количество человек, которые не подписаны на вашу страницу и увидели эту запись, например, на странице другого пользователя или сообщества социальной сети.\",\"market_item_is_disabled\":\"Товар недоступен\",\"market_item_card_component_title_adult\":\"Уточните возраст\",\"market_item_card_blurred_image_caption\":\"Изображение товара\",\"market_item_card_component_badge_title_adult\":\"Товар 18+\",\"market_single_cart_product_unavailable_text\":\"Нет в наличии\",\"market_item_card_component_badge_title_moderation\":\"На модерации\",\"market_item_card_component_badge_title_hard_block\":\"Заблокировано\",\"market_classifieds_status_archive\":\"Неактивно\",\"stickers_popup_blocker_snackbar_title\":\"Отключить автоматическое воспроизведение стикеров?\",\"stickers_popup_blocker_snackbar_action_label\":\"Отключить\",\"global_short_years_fixed\":[\"\",\"%s г\",\"%s г\",\"%s лет\"],\"global_short_months\":\"%s мес\",\"global_short_weeks\":\"%s н\",\"global_short_days\":\"%s дн\",\"global_short_hours\":\"%s ч\",\"global_short_minutes\":\"%s мин\",\"global_short_seconds\":\"%s с\",\"video_postponed_publication\":\"Отложенная публикация\",\"video_added_less_than_a_minute_ago\":\"Меньше минуты назад\",\"video_word_mins_ago\":[\"\",\"минуту назад\",\"две минуты назад\",\"три минуты назад\",\"4 минуты назад\",\"5 минут назад\"],\"video_mins_ago\":[\"\",\"%s минуту назад\",\"%s минуты назад\",\"%s минут назад\"],\"video_word_hours_ago\":[\"\",\"час назад\",\"два часа назад\",\"три часа назад\",\"четыре часа назад\",\"пять часов назад\"],\"video_hours_ago\":[\"\",\"%s час назад\",\"%s часа назад\",\"%s часов назад\"],\"video_word_days_ago\":[\"\",\"день назад\",\"два дня назад\",\"три дня назад\",\"четыре дня назад\",\"пять дней назад\"],\"video_days_ago\":[\"\",\"%s день назад\",\"%s дня назад\",\"%s дней назад\"],\"video_word_months_ago\":[\"\",\"месяц назад\",\"два месяца назад\",\"три месяца назад\",\"четыре месяца назад\",\"пять месяцев назад\"],\"video_months_ago\":[\"\",\"%s месяц назад\",\"%s месяца назад\",\"%s месяцев назад\"],\"video_word_years_ago\":[\"\",\"год назад\",\"два года назад\",\"три года назад\",\"четыре года назад\",\"пять лет назад\"],\"video_years_ago\":[\"\",\"%s год назад\",\"%s года назад\",\"%s лет назад\"],\"video_postponed_publication_date\":[\"\",\"{num_day} {month} в {num_hour}:{minute}\",\"{num_day} {month} в {num_hour}:{minute}\",\"Сегодня в {num_hour}:{minute}\",\"Завтра в {num_hour}:{minute}\"],\"video_postponed_publication_full_date\":[\"\",\"{num_day} {month} {year} в {num_hour}:{minute}\",\"{num_day} {month} {year} в {num_hour}:{minute}\",\"Сегодня в {num_hour}:{minute}\",\"Завтра в {num_hour}:{minute}\"],\"video_N_views_list\":[\"\",\"%s просмотр\",\"%s просмотра\",\"%s просмотров\"],\"video_feature_relation_text\":\" feat. \",\"global_video_soon\":\"Скоро\",\"video_N_views_thousand\":\" тыс просмотров\",\"video_N_views_million\":\" млн просмотров\",\"video_N_group_members_count\":[\"\",\"%s подписчик\",\"%s подписчика\",\"%s подписчиков\"],\"video_N_subscribers_thousand\":\" тыс подписчиков\",\"video_N_subscribers_million\":\" млн подписчиков\",\"video_N_thousand\":\" тыс\",\"video_N_million\":\" млн\",\"video_showcase_N_viewers\":[\"\",\"%s просмотр\",\"%s просмотра\",\"%s просмотров\"],\"vkconnect_logout_save_user_dialog_title\":\"Выход\",\"vkconnect_logout_save_user_dialog_description_text\":\"Отключите, если вошли в аккаунт VK ID не на своём устройстве\",\"vkconnect_logout_save_user_dialog_description_title\":\"Сохранить данные для быстрого входа\",\"global_head_logout\":\"Выйти\",\"vkconnect_auth_label_captcha\":\"Введите код с картинки\",\"vkconnect_auth_label_captcha_audio\":\"Введите слово из аудио\",\"vkconnect_auth_captcha_loading_error_caption\":\"Не удалось загрузить картинку\",\"vkconnect_auth_audio_captcha_loading_error_caption\":\"Не удалось загрузить аудио\",\"vkconnect_auth_captcha_image_loading_error_retry_aria_label\":\"Не удалось загрузить картинку. Попробовать ещё раз.\",\"vkconnect_auth_captcha_sound_loading_error_retry_aria_label\":\"Не удалось загрузить аудио. Попробовать ещё раз.\",\"vkconnect_auth_captcha_loading_error_refresh_text\":\"Попробовать ещё раз\",\"vkconnect_auth_captcha_image_aria_label\":\"Графический код\",\"vkconnect_auth_captcha_submit_button\":\"Продолжить\",\"vkconnect_auth_captcha_refresh_button_aria_label\":\"Обновить изображение\",\"vkconnect_auth_captcha_refresh_audio_button_aria_label\":\"Обновить аудиодорожку\",\"vkconnect_refresh_captcha\":\"Обновить\",\"vkconnect_refresh_captcha_via\":\"Обновить через {time}\",\"vkconnect_auth_captcha_enable_audio_aria_label\":\"Аудио проверка\",\"vkconnect_auth_captcha_enable_image_aria_label\":\"Вернуться к графическому коду\",\"vkconnect_auth_captcha_play_audio_button_aria_label\":\"Прослушать\",\"index_error_bad_phone\":\"Некорректный номер телефона\",\"vkconnect_auth_empty_login\":\"Не указаны телефон или почта\",\"vkconnect_auth_security_error_title\":\"Произошла ошибка\",\"vkconnect_auth_security_error_text\":\"Попробуйте перезагрузить страницу и повторить попытку \",\"vkconnect_auth_save_user_tooltip_header\":\"Сохранить вход\",\"vkconnect_auth_save_user_tooltip_body\":\"Выберите, чтобы сохранить данные аккаунта для быстрого входа на этом устройстве\",\"box_close\":\"Закрыть\",\"global_box_title_back\":\"Назад\",\"global_captcha_input_here\":\"Введите код\",\"captcha_enter_code\":\"Введите код с картинки\",\"captcha_send\":\"Отправить\",\"captcha_cancel\":\"Отмена\",\"global_recaptcha_title\":\"Подтверждение действия\",\"global_warning\":\"Предупреждениe\",\"calls_are_you_sure_to_call_this_user\":\"Вы уверены, что хотите позвонить пользователю?\",\"global_share_button_call\":\"Позвонить\",\"login_reset_sessions_tooltip_text\":\"Снимите галочку, чтобы не завершать активные сеансы на других устройствах\",\"login_reset_sessions\":\"Выйти на всех устройствах, кроме этого\",\"login_unban_fetch_ban_data_internal_error\":\"На сервере произошла ошибка. Повторите попытку позже.\",\"login_unban_data_expired\":\"Процесс разблокировки происходил слишком долго, поэтому придётся пройти все шаги заново.\",\"login_authcheck_called_phone_label\":\"Последние 4 цифры номера\",\"login_confirmation_code\":\"Код подтверждения\",\"login_authcheck_call_reset_sent\":\"Звоним...<\\/b>
Мы совершаем звонок-сброс на Ваш телефон.\",\"login_authcheck_sms_resent\":\"Код отправлен.<\\/b>
SMS c кодом подтверждения отправлено повторно.\",\"join_send_code_via_sms_time\":\"Отправить код в SMS через %s\",\"join_resend_code_time\":\"Выслать код повторно через %s\",\"login_authcheck_send_call_reset_delay\":\"Сделать звонок-сброс через %s\",\"join_send_code_via_sms\":\"Отправить код через SMS\",\"join_no_code\":\"Я не получил код\",\"login_authcheck_send_call_reset_message\":\"Сделать звонок-сброс\",\"reg_code_limit_exceeded\":\"Превышено максимальное количество попыток на запрос кода. Попробуйте запросить код позднее.\",\"join_country_label\":\"Страна\\/Регион\",\"login_unblock_form_change_phone\":\"Изменить\",\"login_mobile_phone\":\"Мобильный телефон\",\"vkui_blocked_no_phone_access\":\"У меня нет доступа к телефону\",\"login_authcheck_enter_code\":\"Введите код\",\"join_pwd_level0\":\"Слишком короткий пароль\",\"join_pwd_level1\":\"Очень слабый пароль\",\"join_pwd_level2\":\"Слабый пароль\",\"join_pwd_level3\":\"Хороший пароль\",\"join_pwd_level4\":\"Сильный пароль\",\"join_pwd_level5\":\"Пароль не может содержать пробелы\",\"login_new_password_label\":\"Новый пароль\",\"login_enter_password\":\"Введите пароль\",\"reg_validate_call_reset_button\":\"Позвонить\",\"login_receive_code\":\"Получить код\",\"login_check_code\":\"Проверить код\",\"login_blocked_unblock_page\":\"Восстановить доступ\",\"restore_change_phone_done_wait_banned\":\"Ваша заявка на разблокировку страницы с изменением привязанного номера одобрена. Для того чтобы изменения вступили в силу, необходимо зайти на страницу с новыми данными после {date}<\\/b>.\",\"login_delayed_its_not_me\":\"Это был не я\",\"login_delayed_request_finished\":\"Для того чтобы страница стала Вам доступна, зайдите на сайт с новым номером и паролем, который Вы придумали в процессе разморозки страницы. Если Вы не оставляли заявку на смену номера, нажмите «Это был не я».\",\"login_unblock_redirect_to_auth\":\"Перейти к авторизации\",\"login_unblock_form_explanation\":\"Чтобы разморозить страницу, мы просим Вас подтвердить, что Вы владелец страницы.\",\"login_blocked_call_title\":\"Разморозка страницы\",\"settings_admin_groups_left\":\"Выбрано {count}<\\/b> из {amt}<\\/b>\",\"settings_menu_box\":\"Настройка пунктов меню\",\"calls_new_call_title\":\"Звонок\",\"calls_join_error_require_access\":\"Вы не можете присоединиться к звонку в закрытом чате. Попросите администратора добавить вас в чат.\",\"calls_join_error_text\":\"Организатор завершил звонок.\",\"calls_invalid_join_link\":\"Неверная ссылка на звонок\",\"calls_privacy_error\":\"Звонок не удался, так как у вас или собеседника звонки запрещены в настройках приватности.\",\"calls_chat_busy_error\":\"Вы не можете начать звонок в этом чате, потому что в нём уже идёт звонок.\",\"calls_busy_error\":\"Пользователь уже разговаривает. Перезвоните позже.\",\"calls_flood_error\":\"Вы слишком часто звоните. Повторите попытку позже.\",\"calls_join_error_require_auth\":\"Войдите в аккаунт, чтобы подключиться к этому звонку\",\"calls_start_error\":\"Во время звонка произошла ошибка. Повторите попытку позже.\",\"calls_join_error_banned\":\"Вы были исключены из этого звонка.\",\"calls_join_error_blacklisted_by_caller\":\"Не удалось присоединиться к звонку: организатор добавил вас в чёрный список\",\"calls_join_error_not_found_conversation\":\"Звонок завершён\",\"calls_join_error_room_participants_exceeded\":\"Достигнут лимит пользователей\",\"calls_sorry_error\":\"Произошла неизвестная ошибка.\",\"calls_members_list_label\":[\"\",\"{name} и ещё %s человек\",\"{name} и ещё %s человека\",\"{name} и ещё %s человек\"],\"calls_and\":\"{before} и {after}\",\"global_dislike\":\"Больше не нравится\",\"global_like\":\"Нравится\",\"intro_hint_description_feed_author_like_onboarding\":\"Теперь ваши отметки «Нравится» от имени автора записи особенно заметны\",\"likes_comments_N_aria_short\":[\"\",\"%s комментарий\",\"%s комментария\",\"%s комментариев\"],\"likes_likes_N_aria_short\":[\"\",\"Понравилось %s человеку\",\"Понравилось %s людям\",\"Понравилось %s людям\"],\"likes_shares_N_aria_short\":[\"\",\"%s поделился\",\"%s поделились\",\"%s поделились\"],\"apps_connect_modal_messages_scopes_edit\":\"Редактировать\",\"apps_connect_modal_messages_scopes_text\":\"Будут доступны:\",\"events_mon\":\"Пн\",\"events_tue\":\"Вт\",\"events_wed\":\"Ср\",\"events_thu\":\"Чт\",\"events_fri\":\"Пт\",\"events_sat\":\"Сб\",\"events_sun\":\"Вс\",\"datepicker_date_format\":\"{day} {month} {year}\",\"datepicker_month_format\":\"{month} {year}\",\"global_day_label\":\"День:\",\"global_year_label\":\"Год:\",\"global_month_label\":\"Месяц:\",\"video_upload_changed\":\"Загрузка видео не завершена. Вы уверены, что хотите выйти и прервать загрузку?\",\"global_continue\":\"Продолжить\",\"video_upload_encode_error\":\"Не удалось обработать видео, данный формат не поддерживается\",\"video_upload_error\":\"Не удалось загрузить видео\",\"video_adding_video_title\":\"Добавление видео\",\"video_ocl_privacy\":\"Видео будет доступно только для вас\",\"video_upload_choose_playlist_placeholder\":\"Выберите плейлист\",\"video_upload_another_one\":\"Добавить ещё видео\",\"video_clip_add_music\":\"Указать музыку\",\"video_clip_dont_attach\":\"Удалить из клипа\",\"video_upload_link_copied\":\"Ссылка на видео скопирована в буфер обмена\",\"video_upload_waiting\":\"Ожидание...\",\"video_upload_encoding\":\"Обработка видео...\",\"video_upload_uploaded_percent\":\"Загружено {percent}%\",\"video_upload_error_file\":\"Загруженный файл не является видео\",\"video_upload_error_audio\":\"Попробуйте загружать аудио в раздел {link}аудиозаписей{\\/link}\",\"video_claimed_not_uploaded\":\"Видеозапись не может быть сохранена в связи с обращением правообладателей.\",\"video_upload_flood_control\":\"Вы загрузили слишком много видеозаписей. Пожалуйста, попробуйте позже.\",\"video_upload_error_common\":\"При загрузке видеозаписи произошла ошибка.\",\"video_upload_connection_lost\":\"Не удалось загрузить видео.
Проверьте соединение с интернетом и нажмите «Продолжить загрузку».\",\"video_thumb_load_error\":\"Не удалось загрузить обложку\",\"notifications_video_playlist_thumb_deleted_header\":\"Обложка плейлиста удалена\",\"notifications_video_thumb_deleted_header\":\"Обложка видео удалена\",\"video_upload_thumb_size_error\":\"Размер файла для обложки не должен превышать 5 МБ.\",\"profile_wall_postpone_at\":\"в\",\"video_upload_encode_percent\":\"Обработано {percent}%\",\"video_upload_back_to_editing\":\"Вернуться к редактированию\",\"video_upload_end_editing\":\"Опубликовать\",\"video_upload_schedule_post\":\"Запланировать публикацию\",\"video_save_but\":\"Сохранить\",\"video_upload_postpone_publish_group_checkbox\":\"Создать отложенную запись на стене сообщества\",\"video_upload_postpone_publish_user_checkbox\":\"Создать отложенную запись на странице\",\"video_upload_postponed_publish_checkbox_subtitle\":[\"\",\"Запись с этим видео будет опубликована {day} {month} {year} в {hour}:{minute}\",\"Запись с этим видео будет опубликована {day} {month} {year} в {hour}:{minute}\",\"Запись с этим видео будет опубликована {day} {month} {year} в {hour}:{minute}\",\"Запись с этим видео будет опубликована {day} {month} {year} в {hour}:{minute}\"],\"video_upload_publish_checkbox_tooltip\":\"Видео можно будет опубликовать на стене {day} {month} после {num_hour}:{minute}\",\"video_upload_publish_checkbox_full_tooltip\":\"Видео можно будет опубликовать на стене {day} {month} {year} после {num_hour}:{minute}\",\"video_postpone_date_error\":\"Это время уже прошло, выберите время в будущем\",\"video_publish_on_group_wall\":\"Опубликовать на стене сообщества\",\"video_publish_to_status\":\"Опубликовать на странице\",\"video_publish_btn\":\"Опубликовать\",\"video_upload_stop_title\":\"Остановка загрузки\",\"video_upload_stop_text\":\"Вы уверены, что хотите прервать загрузку видеозаписи?\",\"video_upload_stop_button\":\"Прервать\",\"video_no_video_upload_title\":\"Нет ни одной загружаемой видеозаписи.\",\"video_clip_upload_leaving_without_saving\":\"Вы можете поделиться получившимся клипом, нажав «Опубликовать», или удалить ролик.\",\"video_stop_editing_title\":\"Прервать редактирование?\",\"video_clip_upload_end_editing\":\"Опубликовать\",\"video_upload_remove_video\":\"Удалить\",\"video_upload_leaving_without_saving\":[\"\",\"Вы не закончили редактировать видео. Нажмите «Сохранить», чтобы оставить текущие настройки, или выберите «Опубликовать позже», чтобы завершить редактирование в другое время.\",\"Вы не закончили редактировать видео. Нажмите «Сохранить», чтобы оставить текущие настройки, или выберите «Опубликовать позже», чтобы завершить редактирование в другое время.\",\"Вы не закончили редактировать видео. Нажмите «Сохранить», чтобы оставить текущие настройки, или выберите «Опубликовать позже», чтобы завершить редактирование в другое время.\"],\"video_upload_publish_later\":\"Опубликовать позже\",\"video_header_new\":\"Новое видео\",\"video_upload_back\":\"Вернуться назад\",\"video_upload_choose_album_placeholder\":\"- Выберите альбом -\",\"global_add\":\"Добавить\",\"video_copy_live_constant_key_button\":\"Скопировать постоянный ключ\",\"video_cancel_but\":\"Отмена\",\"video_live_settings_leave_warning\":\"Вы уверены, что хотите прервать создание трансляции? Если вы покинете эту страницу, трансляция будет удалена.\",\"video_live_trans_key_updated\":\"Ключ обновлён\",\"video_live_trans_key_updated_msg\":\"Ваш ключ для трансляций обновлён. Изменения вступят в силу в течение минуты.\",\"video_live_view_key_box_title\":\"Показать ключ потока\",\"video_live_view_key_box_msg\":\"Если ваш экран сейчас видно в трансляции, не показывайте ключ потока. С его помощью кто угодно может запустить трансляцию от вашего имени.\",\"video_live_view_key_box_confirm\":\"Показать ключ\",\"video_live_view_key_box_cancel\":\"Отмена\",\"video_live_key_copied\":\"Ключ скопирован в буфер обмена\",\"video_live_trans_title_error_empty\":\"Введите название трансляции\",\"video_live_trans_type_error_empty\":\"Укажите категорию для трансляции\",\"video_create_live_error\":\"Ошибка\",\"video_create_live_error_try_later\":\"При создании трансляции произошла ошибка. Попробуйте позже.\",\"video_live_endless_confirm_box_title\":\"Подтверждение\",\"video_live_endless_confirm_box_msg\":\"Обратите внимание, что запись не сохраняется<\\/b> для трансляций такого типа. \",\"video_live_endless_confirm_box_yes_btn\":\"Продолжить без записи\",\"global_dont_warn_next_time\":\"Больше не показывать это предупреждение.\",\"video_publication_time_label\":\"Время публикации\",\"profile_wall_postpone_btn\":\"В очередь\",\"video_upload_publish_tooltip_text\":\"Видео появится на стене сообщества сразу после того, как вы его добавите\",\"video_editor_available_after_processing_hint\":\"Видеоредактор будет доступен после
обработки видео\",\"video_publish_available_after_processing_hint\":\"Дождитесь окончания обработки,
чтобы опубликовать видео\",\"video_save_available_after_processing_hint\":\"Дождитесь окончания обработки,
чтобы сохранить изменения\",\"video_edit_open_video_editor_box_title\":\"Сохранить изменения?\",\"video_edit_open_video_editor_box_text\":\"Чтобы открыть редактор, сохраните изменения\",\"video_edit_open_video_editor_box_save_action\":\"Сохранить и продолжить\",\"video_upload_video_processed\":\"Видео обработано\",\"video_upload_new_video_created_and_processed\":\"Новое видео создано и обработано\",\"video_upload_video_changed\":\"Видео изменено.\",\"video_upload_new_video_created\":\"Новое видео создано.\",\"video_upload_thumb_msg\":\"Выбор обложки будет доступен после обработки видео\",\"video_thumbs_are_not_ready\":\"Выбор обложки будет доступен
после обработки видео\",\"video_upload_upload_subtitle_label\":\"Субтитры {index}\",\"video_upload_subtitles_default_off\":\"Отключены\",\"video_upload_subtitles_default_user_lang\":\"На языке пользователя\",\"video_upload_subtitles_size_error\":\"Размер файла субтитров не должен превышать 1 МБ.\",\"video_upload_subtitles_format_error\":\"Для загрузки субтитров доступен только формат *.srt\",\"video_upload_encode_error_too_short_1s\":\"Не удалось обработать видео: клип должен быть длиннее 1 секунды\",\"video_upload_encode_error_too_long\":\"Не удалось обработать видео: клип должен быть короче 180 секунд\",\"video_upload_error_uploading\":\"Не удалось загрузить видео, повторите попытку\",\"video_upload_error_incorrect_publish_date\":\"Некорректное время публикации, выберите другое\",\"video_upload_error_limit_postpone_posts\":\"Очередь отложенных записей переполнена\",\"video_upload_error_day_limit_postpone_posts\":\"На выбранный день очередь отложенных записей переполнена\",\"video_upload_error_same_publish_date\":\"На это время уже запланирована другая публикация\",\"video_upload_error_day_limit_posts\":\"Очередь записей на этот день переполнена\",\"video_upload_error_info_limit_postpone_posts\":\"Чтобы запланировать эту публикацию, удалите одну из существующих отложенных записей\",\"video_upload_error_info_day_limit_postpone_posts\":\"Чтобы запланировать эту запись, измените день публикации видео\",\"video_upload_error_info_same_publish_date\":\"Чтобы создать отложенную запись, измените время публикации видео\",\"video_external_not_allowed\":\"Эта видеозапись недоступна для проигрывания через ВКонтакте<\\/b>. Вы можете обратиться к автору видеозаписи с просьбой разрешить её встраивание либо скачать её на компьютер и загрузить на ВКонтакте<\\/b> как видеофайл.\",\"video_external_not_found\":\"Видеосервис не поддерживается, или ссылка некорректная\",\"global_unexpected_error_try_later\":\"Неизвестная ошибка. Повторите попытку позже.\",\"global_internal_error\":\"Произошла ошибка. Повторите операцию позже.\",\"video_clip_ads_from_author_added\":\"Добавлена\",\"video_clip_ads_from_author_empty\":\"Отсутствует\",\"video_upload_come_back_later\":\"Вернуться позже\",\"video_upload_publish_video\":\"Опубликовать видео?\",\"video_upload_cancel_external_uploading\":\"Если выйти в другой раздел, видео не сохранится\",\"video_upload_cancel_externals_uploading\":\"Если выйти в другой раздел, видео не сохранятся\",\"video_upload_cancel_uploading\":\"Прервать загрузку видео?\",\"video_upload_cancel_uploading_exit\":\"Видео ещё загружается. Если выйти в другой раздел, прогресс загрузки не сохранится.\",\"video_upload_interrupt_and_exit\":\"Прервать и выйти\",\"video_upload_publish_video_modal_text\":\"Можно опубликовать видео сейчас или вернуться к редактированию позже. Текущие настройки сохранятся.\",\"video_upload_schedule_publication\":\"Запланировать публикацию?\",\"video_upload_schedule_publication_modal_text\":\"Публикация будет запланирована на выбранное время. Текущие настройки сохранятся.\",\"video_upload_schedule_publications\":\"Запланировать публикации?\",\"video_upload_schedule_publications_text\":\"Публикации будут запланированы на выбранное время. Текущие настройки сохранятся.\",\"video_upload_schedule_publications_btn\":\"Запланировать публикации\",\"video_upload_publish_many_videos_text\":\"Можно опубликовать видео сейчас или вернуться к редактированию позже. Для отложенных видео публикация будет запланирована на выбранное время. Текущие настройки сохранятся.\",\"privacy_options_all_users\":\"Все пользователи\",\"video_privacy_group_for_members\":\"Подписчики сообщества\",\"video_privacy_group_for_editors\":\"Редакторы и администраторы\",\"video_privacy_group_by_link\":\"У кого есть ссылка\",\"video_privacy_group_for_donut\":\"Доны сообщества\",\"privacy_options_friends_only\":\"Только друзья\",\"privacy_options_friends_and_friends\":\"Друзья и друзья друзей\",\"privacy_options_only_me\":\"Только я\",\"privacy_options_nobody\":\"Никто\",\"privacy_options_advanced_settings\":\"Все, кроме...\",\"privacy_options_some_friends\":\"Некоторые друзья\",\"privacy_options_some_friend_lists\":\"Некоторые списки друзей\",\"Month1\":\"Январь\",\"Month1_of\":\"января\",\"month1_of\":\"января\",\"Month2\":\"Февраль\",\"Month2_of\":\"Февраля\",\"month2_of\":\"февраля\",\"Month3\":\"Март\",\"Month3_of\":\"марта\",\"month3_of\":\"марта\",\"Month4\":\"Апрель\",\"Month4_of\":\"апреля\",\"month4_of\":\"апреля\",\"Month5\":\"Май\",\"Month5_of\":\"мая\",\"month5_of\":\"мая\",\"Month6\":\"Июнь\",\"Month6_of\":\"июня\",\"month6_of\":\"июня\",\"Month7\":\"Июль\",\"Month7_of\":\"июля\",\"month7_of\":\"июля\",\"Month8\":\"Август\",\"Month8_of\":\"августа\",\"month8_of\":\"августа\",\"Month9\":\"Сентябрь\",\"Month9_of\":\"сентября\",\"month9_of\":\"сентября\",\"Month10\":\"Октябрь\",\"Month10_of\":\"октября\",\"month10_of\":\"октября\",\"Month11\":\"Ноябрь\",\"Month11_of\":\"ноября\",\"month11_of\":\"ноября\",\"Month12\":\"Декабрь\",\"Month12_of\":\"декабря\",\"month12_of\":\"декабря\",\"reports_strikes_video_publish_error\":\"В сообществе {name} действуют ограничения из‑за нарушений правил ВКонтакте. Действие вновь станет доступным {day} {month} {year} в {hour}:{minute}. {link}Подробнее{\\/link}\",\"global_ads_wall_post_ord_mark_as_ads_added\":\"Отметка о рекламе добавлена\",\"global_ads_wall_post_ord_mark_as_ads_removed\":\"Отметка о рекламе удалена\",\"wall_post_with_video_different_dates_title\":\"Запись содержит видео с разным временем публикации\",\"wall_post_with_video_different_dates_info\":\"Некоторые из них могут быть доступны в разделе «Видео» раньше, чем будет опубликована эта запись. Видео с более поздним временем публикации станут доступны в момент публикации записи.\",\"wall_post_with_video_later_title\":\"Запись запланирована позже, чем прикреплённое видео\",\"wall_post_with_video_later_info\":[\"\",\"Видео станет доступно в разделе «Видео» {day} {month} в {hour}:{minute} — раньше, чем появится запись на стене\",\"Видео станет доступно в разделе «Видео» {day} {month} в {hour}:{minute} — раньше, чем появится запись на стене\",\"Видео станет доступно в разделе «Видео» сегодня в {hour}:{minute} — раньше, чем появится запись на стене\",\"Видео станет доступно в разделе «Видео» завтра в {hour}:{minute} — раньше, чем появится запись на стене\"],\"wall_post_with_video_earlier_title\":\"Запись запланирована раньше, чем прикреплённое видео\",\"wall_post_with_video_earlier_info\":[\"\",\"Видео будет опубликовано вместе с записью и станет доступно {day} {month} в {hour}:{minute}\",\"Видео будет опубликовано вместе с записью и станет доступно {day} {month} в {hour}:{minute}\",\"Видео будет опубликовано вместе с записью и станет доступно сегодня в {hour}:{minute}\",\"Видео будет опубликовано вместе с записью и станет доступно завтра в {hour}:{minute}\"],\"wall_post_with_video_publish_together_title\":\"Видео будет опубликовано вместе с записью и станет доступно сейчас\",\"audio_longtap_modal_title\":\"Сейчас играет сниппет\",\"mail_audio_message\":\"Голосовое сообщение\",\"settings_silent_mode_form_request_error\":\"На сервере произошла ошибка. Повторите попытку позже.\",\"settings_silent_mode_form_calls_and_mails_friends\":\"друзья\",\"settings_silent_mode_form_calls_and_mails_friends_of_friends\":\"друзья и друзья друзей\",\"settings_silent_mode_enabled_form_description\":\"Вы на неделю оградили себя от лишнего
внимания. В режиме «Личное пространство»:\",\"settings_silent_mode_enabled_form_header\":\"Режим «Личное пространство» включён до {date}\",\"settings_silent_mode_enabled_form_profile_closed\":\"Ваш профиль закрыт\",\"settings_silent_mode_enabled_form_calls_and_mails\":\"Писать и звонить вам могут только
{friends}<\\/b>\",\"settings_silent_mode_enabled_form_friends_request\":\"Отправлять заявки в друзья могут
только друзья друзей<\\/b>\",\"settings_silent_mode_form_photos_tag\":\"Добавлять вас в чаты, отмечать на фото и задавать вам вопросы смогут
только друзья<\\/b>\",\"settings_silent_mode_form_button_turn_off_alternate\":\"Отключить режим\",\"settings_silent_mode_end_form_description\":\"Ваши настройки вернулись
в начальное состояние\",\"settings_silent_mode_end_form_header\":\"«Личное пространство» отключено\",\"settings_silent_mode_form_drop_down_friends\":\"Только друзья\",\"settings_silent_mode_form_drop_down_friends_of_friends\":\"Друзья и друзья друзей\",\"settings_silent_mode_form_description\":\"Попробуйте этот режим, если хотите ненадолго укрыться от внимания чужих людей. Пока он включён:\",\"settings_silent_mode_form_header\":\"Неделя без лишнего внимания в «Личном пространстве» \",\"settings_silent_mode_form_profile_be_closed\":\"Ваш профиль будет закрытым<\\/b>\",\"settings_silent_mode_form_calls_and_mails\":\"Писать и звонить вам смогут только
{friends}<\\/b>\",\"settings_silent_mode_form_drop_down_title\":\"Изменить\",\"settings_silent_mode_form_friends_request\":\"Отправлять заявки в друзья смогут
только друзья друзей<\\/b>\",\"settings_silent_mode_form_button_turn_on\":\"Включить\",\"global_reload\":\"Перезагрузить\",\"video_publish_clip_from_video_title\":\"Короткие вертикальные видео теперь публикуются в VK Клипах\",\"video_publish_clip_from_video_format\":\"Популярный формат бесконечной ленты \",\"video_publish_clip_from_video_algorithms\":\"Умные алгоритмы рекомендаций\",\"video_publish_clip_from_video_text\":\"Перед публикацией клип можно отредактировать, добавить описание, настроить приватность и прочее\",\"video_publish_clip_from_video_ok\":\"Понятно\",\"video_external_add_info\":\"Укажите ссылку на видео на других сервисах, например, Яндекс.Диск, YouTube, Vimeo и др.\",\"video_external_add_info_without_yandex\":\"Укажите ссылку на видео на других сервисах, например, YouTube, Vimeo и др.\",\"video_upload_attachment_add_external\":\"Добавить по ссылке\",\"video_external_add_label\":\"Ссылка на видео\",\"video_new_video_title\":\"Новое видео\",\"video_new_video_description\":\"Чтобы начать загрузку, выберите файл на компьютере или перетащите его в это окно\",\"video_upload_owner_choose_label\":\"Автор видео\",\"video_upload_select_file\":\"Выбрать файл\",\"video_upload_select_my\":\"Выбрать из моих видео\",\"video_new_video_info_link\":\"Перед загрузкой ознакомьтесь с {link}рекомендациями для авторов видео{\\/link}\",\"drop_files_here\":\"Перетащите файлы сюда\",\"video_edit_title\":\"Редактирование видео\",\"video_editor_popout_exit_without_save_header\":\"Закрыть без сохранения?\",\"video_editor_popout_exit_without_save_text\":\"У вас есть несохранённые изменения. Если закрыть редактор, они пропадут.\",\"video_editor_popout_new_or_replace_header\":\"Сохранить изменения?\",\"video_editor_popout_new_or_replace_text\":\"Текущая версия видео будет доступна до окончания обработки. Если текущую версию важно сохранить, опубликуйте изменённое видео как новое.\",\"video_editor_popout_new_or_replace_save\":\"Опубликовать как новое видео\",\"video_editor_popout_save_failed_header\":\"Не удалось сохранить изменения\",\"video_editor_popout_save_failed_text\":\"Вы слишком часто пытались сохранить видео. Подождите немного и попробуйте ещё раз.\",\"video_editor_popout_save_failed_got_it\":\"Понятно\",\"video_player_pause\":\"Приостановить\",\"video_player_play\":\"Воспроизвести \",\"video_volume_on\":\"Включить звук\",\"video_volume_off\":\"Убрать звук\",\"video_editor_action_undo_tooltip\":\"Отменить\",\"video_editor_action_redo_tooltip\":\"Повторить\",\"video_editor_action_split_tooltip\":\"Разделить\",\"video_editor_action_split_disabled_tooltip\":\"Выберите момент, где видео нужно разрезать\",\"video_editor_action_delete_tooltip\":\"Удалить фрагмент\",\"video_editor_action_delete_disabled_tooltip\":\"Выделите фрагмент, который хотите удалить\",\"video_editor_action_zoom_minus_tooltip\":\"Уменьшить масштаб\",\"video_editor_action_zoom_plus_tooltip\":\"Увеличить масштаб\",\"video_changes_saved\":\"Изменения сохранены\",\"video_editor_generating_notify_subtitle\":\"Пока видео обрабатывается, пользователям будет доступна текущая версия видео\",\"stories_view_sticker_pack\":\"Показать набор\",\"stories_link_attach_clip\":\"Смотреть клип\",\"voting_N_voted\":[\"\",\"Проголосовал %s человек\",\"Проголосовали %s человека\",\"Проголосовали %s человек\"],\"voting_nobody_voted\":\"Никто не проголосовал\",\"stories_stat_off\":\"Выкл.\",\"news_stories_title\":\"Истории\",\"stories_add_title\":\"История\",\"stories_settings\":\"Настройки\",\"mobile_video_added_to_watch_later\":\"Добавлено в раздел «Смотреть позже»\",\"mobile_video_added_to_fave\":\"Видео добавлено в закладки\",\"mobile_video_removed_from_watch_later\":\"Удалено из раздела «Смотреть позже»\",\"mobile_video_removed_from_fave\":\"Видео удалено из закладок\",\"mobile_video_added_to_my_videos\":\"Видео добавлено в раздел "Мои видео"\",\"mobile_video_removed_from_my_videos\":\"Видео удалено из «Добавленных»\",\"mobile_video_removed_from_group\":\"Видео удалено из сообщества\",\"mobile_video_added_to_playlist\":\"Видео добавлено в плейлист\",\"mobile_video_added_to_playlists\":\"Видео добавлено в плейлисты\",\"mobile_video_removed_from_playlist\":\"Видео удалено из плейлиста\",\"mobile_video_removed_from_playlists\":\"Видео удалено из плейлистов\",\"mobile_video_link_copied\":\"Ссылка скопирована\",\"mobile_video_erid_copied\":\"ERID скопирован\",\"mobile_video_ord_snackbar_added\":\"Отметка о рекламе добавлена\",\"mobile_video_playlist_deleted\":\"Плейлист удалён\",\"mobile_video_playlist_saved\":\"Плейлист сохранён\",\"mobile_video_removed_from_history\":\"Видео удалено из истории\",\"mobile_video_cleared_history\":\"История просмотра очищена\",\"mobile_video_onboarding_snackbar_refresh_text\":\"Обновить ленту с учётом ваших предпочтений?\",\"mobile_video_showcase_form_file_upload_success\":\"Видео успешно загружено\",\"mobile_video_showcase_form_upload_in_progress\":\"Редактирование видео доступно после завершения загрузки\",\"mobile_video_saved\":\"Видео сохранено\",\"mobile_video_global_error\":\"Произошла ошибка, попробуйте позже\",\"mobile_search_government_label\":\"Госорганизация\",\"mobile_search_friends_in_group_and\":\"{first_user} и {second_user}\",\"mobile_search_friends_in_group\":[\"\",\"%s друг\",\"%s друга\",\"%s друзей\"],\"groups_catalog_header_aria_label_clear_recent\":\"Очистить список недавно посещенных групп\",\"mobile_video_showcase_create_playlist\":\"Создать плейлист\",\"global_hide\":\"Скрыть\",\"mobile_video_playlist_play\":\"Смотреть\",\"search_show_more\":\"Показать ещё\",\"mobile_video_playlist_subscribe_need_auth_action\":\"Чтобы подписаться, вам необходимо войти\",\"mobile_groups_you_are_in_public\":\"Вы подписаны\",\"mobile_groups_public_subscribe\":\"Подписаться\",\"groups_catalog_view_all\":\"Смотреть все\",\"mobile_friends_requests_common_friends\":[\"\",\"%s общий друг\",\"%s общих друга\",\"%s общих друзей\"],\"groups_inv_subscr\":[\"\",\"%s участник\",\"%s участника\",\"%s участников\"],\"groups_user_invite\":\"приглашает {user}\",\"notifications_group_invite_accept_success\":\"Приглашение принято\",\"notifications_group_invite_decline_success\":\"Приглашение отклонено\",\"global_accept\":\"Принять\",\"groups_decline\":\"Отклонить\",\"groups_dd_you_in_group\":\"Вы подписаны\",\"global_share_button_join_public\":\"Подписаться\",\"groups_X_app_users\":[\"\",\"%s подписчик\",\"%s подписчика\",\"%s подписчиков\"],\"groups_subscribed_friends\":[\"\",\"%s друг\",\"%s друга\",\"%s друзей\"],\"search_verified\":\"Подтверждённая страница\",\"global_add_to_audio\":\"Добавить в мою музыку\",\"mobile_search_no_found_summary\":\"Ваш запрос не дал результатов.\",\"mobile_video_videos_counter\":[\"\",\"%s видео\",\"%s видео\",\"%s видео\"],\"mobile_video_series_counter\":[\"\",\"%s серия\",\"%s серии\",\"%s серий\"],\"video_showcase_N_subscribers\":[\"\",\"%s подписчик\",\"%s подписчика\",\"%s подписчиков\"],\"mobile_video_playlist_no_subscribers\":\"Нет подписчиков\",\"mobile_video_delete_video_confirm_title\":\"Удаление видео\",\"mobile_video_delete_video_confirm_text\":\"Вы действительно хотите удалить это видео из ваших видео?\",\"mobile_video_delete_video_from_group_confirm_text\":\"Удалить это видео из сообщества?\",\"mobile_video_not_interested_placeholder\":\"Видео этого автора будут показываться реже\",\"mobile_video_not_interested_placeholder_action\":\"Отменить\",\"video_playlist_watch_all_videos\":\"Смотреть все\",\"video_playlist_add\":\"Добавить видео\",\"video_edit_playlist\":\"Редактировать плейлист\",\"video_you_subscribed_to_playlist\":\"Вы подписаны на плейлист\",\"video_subscribe_to_playlist\":\"Подписаться на плейлист\",\"video_copy_playlist_url\":\"Скопировать ссылку\",\"video_delete_playlist\":\"Удалить плейлист\",\"video_edit\":\"Редактировать\",\"video_clip_deleted\":\"Клип удалён\",\"video_restore\":\"Восстановить\",\"video_remove_from_watch_later\":\"Удалить из «Смотреть позже»\",\"video_catalog_showcase_section_my_watch_later_title\":\"Смотреть позже\",\"video_download\":\"Скачать запись\",\"video_move_to_playlist\":\"Добавить в плейлист\",\"video_unpin_video_action\":\"Открепить видео с «Главной»\",\"video_pin_video_action\":\"Закрепить видео на «Главной»\",\"global_remove_from_bookmarks\":\"Убрать из закладок\",\"global_add_to_bookmarks\":\"Сохранить в закладках\",\"global_report_spam\":\"Пожаловаться\",\"search_search_friends_in_group_and\":\"{first_user} и {second_user}\",\"search_search_friends_in_group\":[\"\",\"%s друг\",\"%s друга\",\"%s друзей\"],\"search_search_government_label\":\"Госорганизация\",\"groups_verified_header\":\"Верифицированное сообщество\",\"groups_verified_text\":\"Это официальное сообщество известной персоны или организации. Узнайте больше о новой верификации<\\/a> \",\"search_search_no_found_summary\":\"Ваш запрос не дал результатов.\",\"search_show_all\":\"Показать все\",\"search_video_author_subscribed\":\"Вы подписаны\",\"search_video_author_subscribe\":\"Подписаться\",\"video_add_to_my_playlist\":\"Добавить к себе\",\"video_remove_from_my_playlist\":\"Убрать из добавленных\",\"mobile_video_showcase_form_upload_goto_video\":\"Перейти\",\"mobile_video_onboarding_snackbar_refresh_action\":\"Обновить\",\"video_interactive_label_short\":\"Интер...\",\"video_interactive_label\":\"Интерактив\",\"profile_user_content_videos_is_privacy_locked\":\"Видео с ограниченной приватностью\",\"profile_user_content_videos_video_is_processing\":\"Видео обрабатывается\",\"mobile_video_live_start_soon\":\"Трансляция скоро начнется\",\"mobile_profile_status_just_now\":\"только что\",\"mobile_profile_status_secs_ago\":[\"\",\"%s секунду назад\",\"%s секунды назад\",\"%s секунд назад\"],\"mobile_profile_status_word_mins_ago\":[\"\",\"минуту назад\",\"две минуты назад\",\"три минуты назад\",\"4 минуты назад\",\"5 минут назад\"],\"mobile_profile_status_mins_ago\":[\"\",\"%s минуту назад\",\"%s минуты назад\",\"%s минут назад\"],\"mobile_profile_status_word_hours_ago\":[\"\",\"час назад\",\"два часа назад\",\"три часа назад\",\"четыре часа назад\",\"пять часов назад\"],\"mobile_profile_status_hours_ago\":[\"\",\"%s час назад\",\"%s часа назад\",\"%s часов назад\"],\"video_n_time_codes\":[\"\",\"%s эпизод\",\"%s эпизода\",\"%s эпизодов\"],\"video_close_time_code_list\":\"Закрыть\",\"video_playlist_reverse_tt\":\"Показать в обратном порядке\",\"video_playlist_autoplay_disable_tt\":\"Отключить автовоспроизведение\",\"video_playlist_autoplay_enable_tt\":\"Включить автовоспроизведение\",\"video_playlist_size\":[\"\",\"%s видео\",\"%s видео\",\"%s видео\"],\"video_player_playlist_ask_to_subscribe\":\"Скоро здесь появятся новые видео. Подпишитесь на плейлист, чтобы не пропустить их.\",\"video_player_playlist_subscribed\":\"Вы подписаны на плейлист\",\"video_player_playlist_subscribe\":\"Подписаться на плейлист\",\"video_search_result_title\":\"Результаты поиска\",\"video_aria_expand_playlist\":\"Показать плейлист\",\"video_aria_minimize_playlist\":\"Скрыть плейлист\",\"video_remove_from_watch_later_plain_text\":\"Удалить из Смотреть позже\",\"video_unfollow_friend_title\":\"Удалить из друзей\",\"video_unfollow_friend_text\":\"Вы уверены, что хотите удалить {user} из списка друзей?\",\"video_leave_closed_group_title\":\"Выход из закрытой группы\",\"video_leave_admined_group_text\":\"Вы администратор сообщества. Если вы отпишитесь, то лишитесь административных прав. Отписаться?\",\"video_leave_closed_group_text\":\"Это закрытое сообщество. Если вы отпишетесь, попасть обратно, возможно, будет непросто. Отписаться?\",\"global_friend_subscribe_result_msg\":\"Вы подписаны<\\/b> Новости {user_genetive}<\\/b> теперь будут в вашей ленте \",\"video_view_subscribed_msg\":\"Вы подписаны\",\"video_view_subscribe_to_author\":\"Подписаться\",\"video_player_next_video_tt\":\"Следующее видео\",\"video_player_prev_video_tt\":\"Предыдущее видео\",\"video_player_close_tt\":\"Закрыть\",\"video_player_collapse_tt\":\"Свернуть\",\"video_album_is_private_tt\":\"Альбом защищен настройками приватности\",\"video_add_private_playlist\":\"Добавить закрытый плейлист\",\"video_create_new_playlist_btn\":\"Создать плейлист\",\"video_only_private_video\":\"Данное видео можно добавить только в закрытый альбом\",\"video_added_to_my_playlist\":\"Добавлено\",\"video_add_to_group\":\"Добавить в сообщество\",\"video_are_you_sure_close_title\":\"Закрыть видео\",\"video_are_you_sure_close\":\"Вы уверены, что хотите закрыть видеозапись?\",\"video_show_previous_comments\":[\"\",\"Показать предыдущие %s комментарий\",\"Показать предыдущие %s комментария\",\"Показать предыдущие %s комментариев\"],\"video_are_you_sure_stop_streaming_title\":\"Завершить трансляцию\",\"video_are_you_sure_stop_streaming\":\"Вы уверены, что хотите завершить трансляцию?\",\"video_live_finished\":\"Трансляция завершилась\",\"video_live_display_screen_ended_title\":\"Трансляция завершена\",\"video_live_ended_deleted\":\"Трансляция была завершена и удалена\",\"search_nothing_found\":\"Ничего не найдено\",\"video_add_to_playlist_added\":\"Видео добавлено в альбом\",\"video_add_to_playlist_error\":\"Видео уже есть в альбоме\",\"video_collapse_extended_description\":\"Свернуть\",\"video_view_expand_description\":\"Показать полностью...\",\"video_upcoming_live_title_info\":\"Трансляция начнётся\",\"video_edit_desc\":\"Редактировать описание\",\"video_edit_desc_intro\":\"Введите описание\",\"video_erid_copied\":\"ERID скопирован\",\"video_deleted_from_section\":\"Видео удалено из раздела\",\"video_added_to_section\":\"Видео добавлено в раздел\",\"global_open_section\":\"Открыть раздел\",\"video_goods_in_frame\":\"Товары в кадре\",\"video_goods_recognition_in_progress\":\"Идёт поиск товаров на выбранном кадре, не закрывайте этот раздел\",\"video_goods_recognition_empty_result\":\"Не удалось найти похожие товары.
Попробуйте выбрать другой кадр.\",\"video_goods_recognition_try_again\":\"Попробовать снова\",\"video_goods_recognition_order\":\"Товар {order}\",\"reports_report_form_after_submit_action_bl_perform\":\"Добавить автора в чёрный список\",\"reports_report_form_after_submit_action_bl_performed\":\"Автор добавлен в чёрный список\",\"reports_report_form_after_submit_action_hff_perform\":\"Скрыть записи автора из ленты\",\"reports_report_form_after_submit_action_hff_performed\":\"Записи автора скрыты из ленты\",\"reports_report_form_not_internal_link\":\"Укажите внутреннюю ссылку ВКонтакте\",\"reports_report_form_not_post_link\":\"Укажите ссылку на запись\",\"reports_form_send_report\":\"Отправить жалобу\",\"reports_report_form_input_a_link\":\"Вставьте ссылку\",\"reports_report_form_comment\":\"Комментарий\",\"reports_report_form_comment_is_not_necessary\":\"необязательно\",\"reports_report_form_additional_actions\":\"Дополнительно\",\"reports_report_form_thank_you\":\"Ваша жалоба получена\",\"reports_report_form_submit_result\":\"Модераторы рассмотрят её и обязательно примут меры, если найдут нарушения правил ВКонтакте \",\"reports_report_silent_mode_title\":\"Оградите себя
от непрошеного внимания\",\"reports_report_silent_mode_description\":\"Режим «Личное пространство» на неделю укроет вас от общения с незнакомцами\",\"reports_report_silent_mode_button\":\"Подробнее\",\"reports_report_form_advice_additional_action_cancel\":\"Отмена\",\"reports_report_form_header\":\"Пожаловаться\",\"reports_report_form_get_back\":\"Вернуться назад\",\"reports_report_form_error\":\"Произошла ошибка. Попробуйте подать жалобу заново.\",\"reports_report_form_advice_submit_result\":\"Модераторы рассмотрят её и обязательно примут меры, если найдут нарушения правил ВКонтакте \",\"reports_report_form_advice_header\":\"Используйте жалобы на контент\",\"reports_report_form_advice_description\":\"Вы можете пожаловаться не на профиль, а на сообщение, комментарий, фото и другой контент — такие жалобы обычно рассматриваются за несколько минут\",\"stories_show_hashtag_link\":\"Поиск по хештегу\",\"stories_go_to_place\":\"Перейти к месту\",\"stories_market_access_error_title\":\"Ошибка\",\"stories_market_access_error_text\":\"Данный товар недоступен\",\"stories_go_to_market_item\":\"Подробнее\",\"stories_go_to_post\":\"Перейти к записи\",\"videoplayer_tooltip_restart\":\"Начать заново\",\"videoplayer_tooltip_interactive_seek\":\"Перейти к интерактиву\",\"videoplayer_tooltip_interactive_graph_off\":\"Показать карту сюжета\",\"videoplayer_tooltip_button_disabled\":\"Кнопка недоступна\",\"videoplayer_tooltip_disabled_when_graph_on\":\"Кнопка недоступна во время просмотра карты\",\"videoplayer_tooltip_disabled_when_interactive\":\"Интерактив уже идёт\",\"videoplayer_tooltip_interactive_graph_on\":\"Скрыть карту сюжета\",\"videoplayer_interactive_replay_modal_body\":\"Все принятые вами решения будут сброшены, а видео включится с самого начала\",\"videoplayer_tooltip_interactive_choice\":\"Сделайте выбор, чтобы продолжить\",\"video_mute_popup_title\":\"Звук в этом видео недоступен\",\"video_mute_popup_text\":\"Так решил музыкант или его представитель\",\"video_mute_popup_button_text\":\"Узнать больше\",\"videoplayer_tooltip_episode_unfinished\":\"Не пройдено\",\"videoplayer_tooltip_episode_finished\":\"Вы уже сделали свой выбор\",\"video_sort_dd_by_default\":\"по умолчанию\",\"video_sort_dd_by_popularity\":\"по популярности\",\"video_sort_dd_newest\":\"самые новые\",\"video_sort_dd_oldest\":\"самые старые\",\"video_sort_dd_shortest\":\"cначала короткие\",\"video_sort_dd_longest\":\"cначала длинные\",\"video_comments_review\":\"Обзор комментариев\",\"video_search_order\":\"Сортировка\",\"video_no_albums_placeholder_text\":\"Здесь пока нет альбомов\",\"video_no_videos_here_yet\":\"Здесь пока нет видео\",\"video_hd_checkbox\":\"Высокое качество\",\"video_filter_no_safe\":\"Без ограничений\",\"video_filter_live\":\"Только трансляции\",\"video_title_search\":\"{q} - VK Видео\",\"video_not_found_group\":\"По запросу {searchText}
в этом сообществе не найдено ни одного видео\",\"video_not_found_user\":\"По запросу {searchText}
у этого пользователя не найдено ни одного видео\",\"video_not_found_yours\":\"По запросу {searchText}
у вас не найдено ни одного видео\",\"video_not_found_in_album\":\"По запросу {searchText}
в этом альбоме не найдено ни одного видео\",\"video_not_found_globally\":\"По запросу {searchText}
не найдено ни одного видео\",\"video_found_albums_community\":[\"\",\"Найден %s альбом сообщества\",\"Найдено %s альбома сообщества\",\"Найдено %s альбомов сообщества\"],\"video_found_albums_yours\":[\"\",\"Найден %s ваш альбом\",\"Найдено %s ваших альбомов\",\"Найдены %s ваших альбомов\"],\"video_found_albums_of\":[\"\",\"Найден %s альбом {user}\",\"Найдено %s альбома {user}\",\"Найдено %s альбомов {user}\"],\"video_found_videos_in_album\":[\"\",\"Найдена %s видеозапись в этом альбоме\",\"Найдено %s видеозаписи в этом альбоме\",\"Найдено %s видеозаписей в этом альбоме\"],\"video_found_videos_community\":[\"\",\"Найдена %s видеозапись сообщества\",\"Найдено %s видеозаписи сообщества\",\"Найдено %s видеозаписей сообщества\"],\"video_found_videos_yours\":[\"\",\"Найдена %s ваша видеозапись\",\"Найдены %s ваши видеозаписи\",\"Найдено %s ваших видеозаписей\"],\"video_found_videos_of\":[\"\",\"Найдена %s видеозапись {user}\",\"Найдено %s видеозаписи {user}\",\"Найдено %s видеозаписей {user}\"],\"video_found_videos\":\"Все видео\",\"video_found_videos_global\":[\"\",\"Найдена %s видеозапись\",\"Найдено %s видеозаписи\",\"Найдено %s видеозаписей\"],\"video_search_playlists\":\"Все плейлисты\",\"video_search_promo_playlists\":\"Сериалы и телешоу\",\"video_show_more\":\"Показать ещё\",\"video_show_more_playlists\":[\"\",\"Показать ещё %s плейлист\",\"Показать ещё %s плейлиста\",\"Показать ещё %s плейлистов\"],\"video_catalog_showcase_section_my_video_added_title\":\"Добавленные видео\",\"video_choose_box_back_to_videos\":\"Вернуться назад\",\"video_choose_wall_to_group_videos\":\"К видеозаписям сообщества\",\"video_choose_wall_to_my_videos\":\"К моим видеозаписям\",\"video_add_videos\":[\"\",\"Добавить %s<\\/b> видеозапись\",\"Добавить %s<\\/b> видеозаписи\",\"Добавить %s<\\/b> видеозаписей\"],\"global_attach_videos\":[\"\",\"Прикрепить %s<\\/b> видеозапись\",\"Прикрепить %s<\\/b> видеозаписи\",\"Прикрепить %s<\\/b> видеозаписей\"],\"video_publish_on_wall_date_info_keep_date_btn\":\"Оставить текущее\",\"video_publish_on_wall_date_info_change_date_btn\":\"Изменить\",\"video_please_sign_in\":\"Пожалуйста, войдите или {link}зарегистрируйтесь{\\/link}, чтобы просмотреть эту видеозапись.\",\"video_playlist_created_notification\":\"Плейлист создан\",\"video_open_new_playlist\":\"Открыть\",\"video_create_new_playlist\":\"Создать\",\"video_show_all_short\":\"Все\",\"video_playlist_available_to_all_tooltip\":\"Виден всем пользователям\",\"video_playlist_private_tooltip\":\"Виден только вам\",\"video_playlist_modal_header\":\"Выберите куда сохранить\",\"video_my_added_videos_playlist\":\"Добавленные\",\"video_playlists\":\"Плейлисты\",\"video_add_video_to_new_playlist\":\"Новый плейлист\",\"video_added_to_watch_later\":\"Добавлено в раздел «Смотреть позже»\",\"fave_video_added\":\"Видео сохранено в {link}закладках{\\/link}\",\"video_deleted_from_my_watch_later\":\"Удалено из раздела «Смотреть позже»\",\"video_deleted_from_my_bookmarks\":\"Видео удалено из закладок\",\"video_playlist_name_deleted\":\"Плейлист {name} удалён\",\"video_you_unsubscribed_from_playlist\":\"Вы отписались от плейлиста\",\"video_deleted_from_playlist\":\"Видео удалено из плейлиста\",\"video_pin_video_snackbar\":\"Видео закреплено на «Главной»\",\"video_unpin_video_snackbar\":\"Видео откреплено\",\"video_added_to_playlist\":\"Видео добавлено в плейлист\",\"video_playlist_url_copied\":\"Ссылка на плейлист скопирована\",\"video_copied_to_clipboard\":\"Ссылка на видео скопирована\",\"video_download_video_from_modal\":\"Скачать\",\"video_copy_video_link\":\"Скопировать ссылку\",\"video_export_action\":\"Экспортировать\",\"video_share_with_friends\":\"Поделиться\",\"video_delete_from_playlist\":\"Удалить из плейлиста\",\"video_delete_button\":\"Удалить\",\"video_modal_claimed_block_header\":\"Информация ниже показывается только сотрудникам\",\"video_not_licensed_short\":\"Это видео изъято из публичного доступа\",\"video_share\":\"Поделиться\",\"video_card_added_button_label\":\"Добавлено\",\"video_add_to_your_videos\":\"К себе\",\"video_add_to_forbidden_registry\":\"Добавить запр. контент\",\"reports_gb\":\"Гео-блокировка контента\",\"video_add_to_public\":\"Вернуть в публичный доступ\",\"video_delete_from_public\":\"Изъять из доступа\",\"video_statistics\":\"Статистика\",\"video_more_button_in_video_modal\":\"Ещё\",\"video_clip_ord_advertiser_info\":\"О рекламодателе\",\"video_show_full_video_description\":\"Показать полностью\",\"video_moderation_snackbar_copied\":\"Скопировано\",\"video_moderation_info_copy\":\"Скопировать\",\"video_modal_explicit_tooltip\":\"Содержит ненормативный контент\",\"global_by\":\"от \",\"video_layer_archival_content_hint\":\"Контент создан до 1 сентября 2022 года\",\"video_layer_archival_content\":\"Архивный контент\",\"video_N_position_in_trends_tab\":[\"\",\"#%s на вкладке «Тренды»\",\"#%s на вкладке «Тренды»\",\"#%s на вкладке «Тренды»\"],\"video_layer_ord_hint\":\"Автор разместил рекламу самостоятельно: она не проходила модерацию ВКонтакте\",\"video_ord_title\":\"Реклама от автора\",\"video_modal_recommendations\":\"Рекомендации для вас\",\"video_modal_subscribe_to_author_snackbar\":\"Вы подписались\",\"video_modal_unsubscribe_to_author_snackbar\":\"Вы отписались\",\"video_live_info_modal_title\":\"Состояние трансляции\",\"video_live_info_modal_update_time\":\"Обновляется каждые 30 сек\",\"video_live_info_modal_bitrate_title\":\"Битрейт\",\"video_bitrate_units\":[\"\",\"%s кбит\\/с\",\"%s кбит\\/с\",\"%s кбит\\/с\"],\"video_live_info_modal_warning_text\":\"Проверьте соединение с интернетом или перезапустите программу для стриминга. Убедитесь, что технические характеристики трансляции соответствуют требованиям. {link}Требования к трансляции{\\/link}\",\"video_live_info_modal_data_for_the_last_time_period\":\"Данные за последние 10 минут\",\"video_live_info_modal_fps_title\":\"Кадры в секунду\",\"video_fps_units\":[\"\",\"%s кадр\\/с\",\"%s кадр\\/с\",\"%s кадр\\/с\"],\"video_live_info_status_label_too_low\":\"Слишком мало\",\"video_live_info_status_label_low\":\"Допустимо\",\"video_live_info_status_label_too_much\":\"Слишком много\",\"video_live_info_status_label_good\":\"Отлично\",\"friends_cancel_event_invite\":\"Отменить приглашение\",\"friends_send_event_invite\":\"Выслать приглашение\",\"groups_notifications_on\":\"Включить уведомления\",\"groups_notifications_set_up\":\"Увед. включены\",\"groups_hidden_members_message_box_title\":\"Подписчики скрыты\",\"groups_hidden_members_message_box_content\":\"Руководители сообщества скрыли список подписчиков\",\"groups_delete_cover_confirm_new\":\"Вы уверены, что хотите удалить обложку?\",\"groups_delete_cover_confirm\":\"Вы уверены, что хотите удалить обложку?

После этого сообщество будет отображаться в классическом виде с фотографией справа.\",\"groups_delete_cover_title\":\"Удаление обложки\",\"wall_doc_added_short\":\"Добавлено\",\"wall_doc_add_short\":\"Добавить\",\"photos_restriction_button_watch\":\"Смотреть\",\"global_share_link_failed\":\"Пожалуйста, укажите ссылку или номер телефона.
\",\"groups_donut_snippet_link_title\":\"Сообщество с VK Donut\",\"wall_online_booking_title\":\"Онлайн-запись\",\"global_article\":\"Статья\",\"global_audio_playlist\":\"Плейлист\",\"audio_listen_snippet\":\"Слушать\",\"global_artist\":\"Музыкант\",\"global_curator\":\"Куратор\",\"global_type_narrative\":\"Сюжет\",\"wall_edit_album_description\":[\"\",\"Альбом · %s снимок\",\"Альбом · %s снимка\",\"Альбом · %s снимков\"],\"wall_market_album_compact_description\":\"Товары · {group_name}\",\"audio_podcast_attach_media\":\"Подкаст\",\"events_media_type\":\"Мероприятие\",\"groups_media_type_community\":\"Сообщество\",\"wall_send\":\"Отправить\",\"wall_publish_suggest\":\"Опубликовать\",\"classifieds_post_edit_product_snippet_title\":\"Объявление\",\"wall_post_copyright_edit_button\":\"Изменить источник\",\"wall_post_copyright_add_button\":\"Указать источник\",\"wall_post_copyright_source_text\":\"Источник\",\"wall_post_copyright_mb_title_text_edit\":\"Редактирование источника\",\"wall_post_copyright_mb_title_text\":\"Добавление источника\",\"global_link_choose_own_photo\":\"Выбрать фотографию\",\"global_link_choose_own_video\":\"Выбрать видео\",\"global_link_remove_photo\":\"Убрать иллюстрацию\",\"global_link_edit_title\":\"Редактировать заголовок\",\"global_link_edit_desc\":\"Редактировать описание\",\"global_link_edit_url\":\"Редактировать URL-адрес\",\"marketitemreview_main_block_review_text\":[\"\",\"%s отзыв\",\"%s отзыва\",\"%s отзывов\"],\"global_share_button_remove_tooltip\":\"Убрать кнопку\",\"apps_snippet_game\":\"Игра\",\"apps_snippet_mini_app\":\"Мини-приложение\",\"global_link_invalid_url\":\"Некорректный формат ссылки\",\"global_share_button_text_tooltip\":\"Название кнопки можно изменить\",\"wall_post_timer_reset\":\"Сбросить\",\"wall_publication_now\":\"Сейчас\",\"wall_best_friends_only\":\"Для близких друзей\",\"awards_private_text\":\"Видно только автору\",\"awards_senders_count\":[\"\",\"{count} отправитель\",\"{count} отправителя\",\"{count} отправителей\"],\"awards_back_button\":\"Вернуться назад\",\"awards_my_badges\":\"Мои значки\",\"awards_group_block_header\":\"Значки сообщества\",\"awards_profile_block_header\":\"Значки\",\"awards_group_block_unknown_error\":\"Неизвестная ошибка\",\"groups_have_donuts_total\":[\"\",\"Отправили %s донат\",\"Отправили %s доната\",\"Отправили %s донатов\"],\"groups_wkview_donuts_total\":[\"\",\"%s донат\",\"%s доната\",\"%s донатов\"],\"awards_have_gifted_badges_total\":[\"\",\"Подарили %s значок\",\"Подарили %s значка\",\"Подарили %s значков\"],\"awards_wkview_badges_total\":[\"\",\"%s значок\",\"%s значка\",\"%s значков\"],\"awards_restricted_tittle\":\"Этому автору значки недоступны\",\"awards_restricted_subheader\":\"Порадуйте его в другой раз! А пока попробуйте отправить значок кому-то ещё.\",\"awards_restricted_button\":\"Буду ждать!\",\"awards_not_available_tittle\":\"Значки пока доступны не всем\",\"awards_not_available_subheader\":\"Подождите немного, пока появится возможность отправлять и получать значки\",\"awards_not_available_button\":\"Хорошо\",\"reactions_button_unset_reaction_title\":\"Убрать реакцию «{reaction_name}»\",\"reactions_button_set_reaction_with_name\":\"Отправить реакцию «{reaction_name}»\",\"reactions_button_title\":\"Отправить реакцию\",\"reactions_n_reacted\":[\"\",\"Оценил %s человек\",\"Оценили %s человека\",\"Оценили %s человек\"],\"wall_unfix_post\":\"Открепить\",\"wall_fix_post\":\"Закрепить\",\"wall_delete_suggested_box\":\"Вы уверены, что хотите удалить все ранее предложенные новости? После удаления их будет невозможно восстановить.\",\"wall_delete_suggested_btn\":\"Удалить все ранее предложенные новости\",\"wall_publish_postponed_confirm\":\"Вы действительно хотите опубликовать отложенную запись прямо сейчас?\",\"wall_publish_postponed_btn\":\"Опубликовать\",\"wall_publish_donut_as_free_confirmation_warn\":\"К записи прикреплены платные вложения. Если открыть запись для всех, вложения тоже станут доступны всем.\",\"wall_publish_donut_as_free_confirmation_title\":\"Подтверждение\",\"wall_publish_donut_as_free_confirmation_confirm\":\"Вы действительно хотите сделать эту запись доступной всем пользователям?\",\"wall_publish_donut_as_free_confirmation_btn\":\"Да\",\"global_recommended_exceeded\":[\"\",\"Рекомендуемый объем превышен на %s знак.\",\"Рекомендуемый объем превышен на %s знака.\",\"Рекомендуемый объем превышен на %s знаков.\"],\"global_recommended_lines\":[\"\",\"Рекомендуемый объем превышен на %s строку.\",\"Рекомендуемый объем превышен на %s строки.\",\"Рекомендуемый объем превышен на %s строк.\"],\"profile_mention_start_typing\":\"Начните вводить имя друга или название сообщества\",\"profile_mention_not_found\":\"Страница не найдена\",\"wall_choose_best_friends\":\"Выбрать близких друзей\",\"wall_best_friends_settings_box_conversation_friends_count\":[\"\",\"%s друг\",\"%s друга\",\"%s друзей\"],\"wall_check_sign_disabled\":\"Подпись останется при редактировании записи\",\"wall_check_sign_enabled\":\"Подпись будет скрыта при редактировании записи\",\"global_share_too_many_attachments\":\"В рекламных записях с кнопкой не допускается использование вложений.\",\"global_ads_post_too_many_newlines\":\"В рекламных записях с кнопкой допускается не более четырех переносов строк.\",\"global_ads_post_too_long_message\":\"В рекламных записях с кнопкой длина сообщения не может превышать 2000 символов.\",\"global_share_too_many_links\":\"В рекламной записи с кнопкой может быть не более одной ссылки.\",\"global_share_title_required\":\"Укажите заголовок для ссылки.\",\"global_share_url_required\":\"Введите корректный url\",\"global_share_image_required\":\"Выберите иллюстрацию к ссылке.\",\"wall_publish_donut_freeing_attaches_confirmation_title\":\"К записи прикреплены платные вложения. Когда запись откроется для всех через указанный период времени, вложения тоже станут доступны всем.\",\"wall_next_n_replies\":[\"\",\"Показать следующий комментарий\",\"Показать следующие комментарии\",\"Показать следующие комментарии\"],\"wall_prev_n_replies\":[\"\",\"Показать предыдущий комментарий\",\"Показать предыдущие комментарии\",\"Показать предыдущие комментарии\"],\"wall_reply_add_attach_label\":\"Добавить вложение\",\"global_reply_to\":\"ответ {user}\",\"wall_reply_submit_settings\":\"Настройки отправки\",\"wall_reply_submit_settings_1\":\"Enter<\\/b> — отправка сообщения
Shift+Enter<\\/b> — перенос строки\",\"wall_reply_submit_settings_2\":\"Ctrl+Enter<\\/b> — отправка сообщения
Enter<\\/b> — перенос строки\",\"wall_replied_to_group\":\"Сообществу\",\"reports_warning_sent\":\"Ваша жалоба отправлена и будет рассмотрена в ближайшее время.\",\"global_X_post_views\":[\"\",\"просмотр\",\"просмотра\",\"просмотров\"],\"global_X_shared\":[\"\",\"поделился\",\"поделились\",\"поделились\"],\"voting_x_voted_short\":[\"\",\"%s<\\/b> человек\",\"%s<\\/b> человека\",\"%s<\\/b> человек\"],\"voting_x_voted\":[\"\",\"Проголосовал %s<\\/b> человек\",\"Проголосовали %s<\\/b> человека\",\"Проголосовали %s<\\/b> человек\"],\"wall_my_friends_only\":\"Эта запись видна только вашим друзьям\",\"profile_status_word_secs_ago\":[\"\",\"только что\",\"две секунды назад\",\"три секунды назад\",\"четыре секунды назад\",\"пять секунд назад\"],\"wall_post_privacy_friends\":\"для друзей\",\"news_x_new_replies_more\":[\"\",\"Добавлен %s новый комментарий\",\"Добавлено %s новых комментария\",\"Добавлено %s новых комментариев\"],\"wall_show_n_last_replies\":[\"\",\"Показать последний %s комментарий\",\"Показать последние %s комментария\",\"Показать последние %s комментариев\"],\"wall_show_all_n_replies\":[\"\",\"Показать %s комментарий\",\"Показать все %s комментария\",\"Показать все %s комментариев\"],\"wall_hide_replies\":\"Скрыть комментарии\",\"wall_preview_link\":\"Посмотреть\",\"wall_x_new_replies_more\":[\"\",\"Добавлен %s новый комментарий\",\"Добавлено %s новых комментария\",\"Добавлено %s новых комментариев\"],\"wall_reply_as_group\":\"от имени сообщества\",\"wall_reply_as_user\":\"от имени пользователя\",\"global_on_behalf_group\":\"От имени сообщества\",\"global_on_behalf_me\":\"От своего имени\",\"global_search\":\"Поиск\",\"wall_post_copyright_feature_text\":\"Теперь можно указать источник вашей записи\",\"intro_hint_description_online_booking_attach_add_web\":\"Теперь вы можете добавить кнопку онлайн‑записи на ваши услуги\",\"intro_hint_title_posting_editor_ord_ad\":\"Если размещаете рекламу,
добавьте отметку о ней.
Этого требует закон РФ.\",\"wall_new_posters_new_year\":\"Поделитесь с друзьями праздничным настроением с новыми постерами!\",\"global_replied_to_reply_count\":[\"\",\"%s ответ\",\"%s ответа\",\"%s ответов\"],\"events_snippet_will_participate_active\":\"Вы пойдёте\",\"events_snippet_cant_participate_active\":\"Вы не пойдёте\",\"profile_hashtag_start_typing\":\"Начните вводить хештег\",\"profile_hashtag_not_found\":\"Хештег не найден\",\"wall_post_text_show_more\":\"Показать ещё\",\"purchases_stickers_purchase_result_pack_and_styles\":[\"\",\"Добавлен набор стикеров «{pack_title}» и {n} стиль\",\"Добавлен набор стикеров «{pack_title}» и {n} стиля\",\"Добавлен набор стикеров «{pack_title}» и {n} стилей\"],\"purchases_stickers_purchase_result_pack\":\"Добавлен набор стикеров «{title}»\",\"purchases_stickers_purchase_result_1_style\":\"Добавлен стиль «{title}»\",\"purchases_stickers_purchase_result_2_styles\":\"Добавлены стили «{title1}» и «{title2}»\",\"purchases_stickers_purchase_result_3_styles\":\"Добавлены стили «{title1}», «{title2}» и «{title3}»\",\"purchases_stickers_purchase_result_3_styles_and_1_more\":\"Добавлены стили «{title1}», «{title2}», «{title3}» и ещё один\",\"purchases_stickers_purchase_result_3_styles_and_n_more\":[\"\",\"Добавлены стили «{title1}», «{title2}», «{title3}» и ещё {n} другой\",\"Добавлены стили «{title1}», «{title2}», «{title3}» и ещё {n} других\",\"Добавлены стили «{title1}», «{title2}», «{title3}» и ещё {n} других\"],\"stories_narrative_block_onboarding_text\":\"Здесь находятся ваши сюжеты\",\"group_leave_group\":\"Отписаться\",\"profile_convert_to_article_short\":\"Продолжить в редакторе\",\"global_share_too_many_newlines\":\"В рекламных записях с кнопкой допускается не более двух переносов строк.\",\"global_share_too_long_message\":\"В рекламных записях с кнопкой длина сообщения не может превышать 220 символов.\",\"wall_add_photo_error\":\"Не удалось загрузить изображение\",\"awards_price_label\":\"Стоимость:\",\"awards_price\":[\"\",\"%s голос\",\"%s голоса\",\"%s голосов\"],\"awards_price_free\":\"Бесплатно\",\"awards_balance\":[\"\",\"Ваш баланс: %s голос\",\"Ваш баланс: %s голоса\",\"Ваш баланс: %s голосов\"],\"awards_confirmation_message_sum\":[\"\",\"С вашего счёта будет списан %s голос.\",\"С вашего счёта будет списано %s голоса.\",\"С вашего счёта будет списано %s голосов.\"],\"awards_confirmation_message_free\":\"Это бесплатный значок. Голоса за него не списываются.\",\"awards_receiver_only\":\"Показывать моё имя только автору\",\"awards_need_comment\":\"Рассказать о значке в комментарии\",\"awards_disable_comments_post\":\"Вы не можете прикрепить значок в комментариях, так как автор ограничил комментирование записи\",\"awards_pay_free\":\"Отправить\",\"awards_pay\":\"Оплатить\",\"groups_one_time_donut_modal_header\":\"Оплата\",\"global_update_photo_error_too_small\":\"Фотография должна иметь размер не менее {width} точек в ширину и не менее {height} точек в высоту.\",\"reports_strikes_avatar_upload_error\":\"В сообществе {name} действуют ограничения из‑за нарушений правил ВКонтакте. Действие вновь станет доступным {day} {month} {year} в {hour}:{minute}. {link}Подробнее{\\/link}\",\"awards_not_available\":\"Недоступно\",\"awards_limit_no_longer_available\":\"Недоступно\",\"awards_free_limit\":\"{limit} бесплатно\",\"awards_choice_stub_title\":\"Выберите значок для записи\",\"awards_choice_stub_subtitle\":\"Отправьте денежное вознаграждение или значок, автору будет приятно\",\"awards_catalog_modal_title\":\"Выберите значок для записи {name}\",\"awards_buy_for\":[\"\",\"Отправить за %s голос\",\"Отправить за %s голоса\",\"Отправить за %s голосов\"],\"awards_buy_free\":\"Отправить бесплатно\",\"awards_item_info_tab_donut\":\"Донаты\",\"awards_item_info_tab_all\":\"Все\",\"awards_item_info_tab_friends\":\"Друзья\",\"awards_sand_success\":\"Вы подарили значок «{badge_name}»\",\"groups_one_time_donut_choose_summ\":\"Выбрать сумму\",\"awards_catalog_button\":\"Открыть магазин значков\",\"awards_free_limit_info\":[\"\",\"Доступно бесплатно: {count} значок\",\"Доступно бесплатно: {count} значка\",\"Доступно бесплатно: {count} значков\"],\"awards_choose_donut_amount\":\"Выбрать сумму\",\"awards_choose_award\":\"Выбрать другой значок\",\"awards_object_info_no_longer_available\":\"Значок больше недоступен\",\"awards_web_badge_learn_more\":\"Узнать больше\",\"me_attach_picker_add_mini_apps_action\":\"Добавить\",\"me_attach_picker_add_mini_apps_box_title\":\"Добавление сервиса \",\"me_attach_picker_add_games_box_title\":\"Добавление игры \",\"me_attach_picker_add_mini_apps_send_widget\":\"Добавить в чат\",\"me_attach_picker_add_mini_apps_from_app\":\"Добавить из сервиса\",\"me_attach_picker_add_mini_apps_cancel_action\":\"Отмена\",\"me_onboarding_add_app_banner_services_title\":\"Сервисы в чатах\",\"me_onboarding_add_app_banner_games_title\":\"Игры в чатах\",\"me_onboarding_add_app_banner_services_subtitle_web\":\"Соревнуйтесь с друзьями, предсказывайте им будущее и многое другое\",\"me_onboarding_add_app_banner_games_subtitle_web\":\"Бросайте вызов друзьями и соревнуйтесь с ними в режимах дуэли или турнира. Вместе веселее!\",\"me_onboarding_add_app_banner_confirm_button\":\"Хорошо\",\"me_snackbar_fail_title\":\"Что-то пошло не так\",\"me_snackbar_fail_subtitle\":\"Попробуйте ещё раз\",\"me_add_app_action_attach_to_chats_title\":\"Добавить в чат сервис «{action_title}»? \",\"awards_donut_block_separator\":\"или\",\"awards_donut_block_badge_offer_title\":\"Прикрепить другой значок\",\"awards_donut_block_badge_offer_subtitle\":\"Запись станет заметнее, автору будет приятно\",\"vkui_one_time_donut_custom_sum\":\"Своя сумма\",\"vkui_one_time_donut_min_amount\":\"Сумма от {amount_min} ₽ до {amount_max} ₽.
Как это работает<\\/a> \",\"groups_donut_form_title\":\"Выберите сумму\",\"vkui_one_time_donut_title_2\":\"Поддержите автора\",\"vkui_one_time_donut_subhead\":\"Автор получит ваше вознаграждение\",\"awards_donut_form_payment_canceled_title\":\"Оплата не завершена\",\"awards_donut_form_payment_canceled_text\":\"Возможно, произошла ошибка или платёж был отменён.\",\"awards_donut_form_min_price_label\":\"Сумма\",\"vkui_one_time_donut_comment_warning\":\"Недружелюбный комментарий может быть удалён алгоритмами. Донат при этом останется в списке донатов.\",\"awards_donut_form_share_checkbox_label\":\"Поделиться в комментарии\",\"vkui_one_time_donut_comment_placeholder\":\"Введите текст комментария\",\"groups_donut_form_agreement\":\"Нажимая кнопку «Далее», вы соглашаетесь с условиями переводов при использовании сервиса «Донат»<\\/a> \",\"groups_donut_form_submit\":\"Далее\",\"awards_one_time_donut_result_wait_success_title\":\"Ожидание оплаты\",\"awards_one_time_donut_result_wait_success_text\":\"Ваш платёж обрабатывается с задержкой \",\"awards_one_time_donut_result_waiting_title\":\"Ожидание оплаты\",\"awards_one_time_donut_result_waiting_text\":\"Оплата завершится в течение нескольких секунд\",\"awards_one_time_donut_result_unknown_error_title\":\"Оплата не завершена\",\"awards_one_time_donut_result_unknown_error_text\":\"Произошла ошибка или платёж был отменён\",\"video_clips_not_interested_success\":\"Похожие клипы будут отображаться реже\"}, false);\nmvcur.mvData.addedVideo = '-221858145_456244002'; \nmvcur.mvData.addedVideoHash = 'ff2f17903d44aa272d'; \nmvcur.mvData.addedVideoShareHash = 'ec132ccfd71526d722';\nmvcur.mvData.needsNew = 1;window.initReactApplication('AnonymShortVideoStub', {\"additionalCssClass\":\"\",\"title\":\"Приложение VK Клипы\",\"text\":\"Создавайте и смотрите короткие видео в удобном вертикальном формате\",\"linkAndroid\":\"https:\\/\\/play.google.com\\/store\\/apps\\/details?id=com.vk.clips\",\"linkRuStore\":\"https:\\/\\/apps.rustore.ru\\/app\\/com.vk.clips\",\"linkIOS\":\"https:\\/\\/apps.apple.com\\/ru\\/app\\/id1615733452\",\"qrLinkAndroid\":\"https:\\/\\/trk.mail.ru\\/c\\/qppzq0\",\"qrLinkRuStore\":\"https:\\/\\/trk.mail.ru\\/c\\/qgsn82\",\"qrLinkIOS\":\"https:\\/\\/trk.mail.ru\\/c\\/al3934\",\"iphoneAriaLabel\":\"Скачать приложение iphone\",\"androidAriaLabel\":\"Скачать приложение android\",\"ruStoreAriaLabel\":\"Скачать приложение android\",\"popupTitle\":\"Приложение VK Клипы\",\"popupText\":\"Отсканируйте QR-код, чтобы установить приложение на смартфон\"});", + "\n
\n
\n
\n \n \n \n
\n \"WebM\n \n \n
\n
\n WebM Original\n
\n 3 дня назад\n \n
\n
\n \n
\n
\n
\n \n
\n
\n \n
\n
\n
167
\n
\nПоказать список оценивших\n
\n
Поделиться
\n
\n
\nПоказать список поделившихся\n
\n
\n
Редактировать
\n Редактировать\n
\n
\n \n \n
\n
\n \n
\n
\n
\n \n
\n
\n
\n
You look lonely, i can fix that: @webm_original
\n
You look lonely, i can fix that: @webm_original
\n Показать полностью...\n
\n \n
\n
\n
\n \n \n \n
\n
\n \"Оригинальный\n
\n
\n
WebM Original
\n
\n Оригинальный звук\n
\n
\n
\n
\n
\n \n \n
17,4 тыс просмотров
\n
\n \n
\n \n
", + { + "lang": { + "global_short_date_time": [ + "", + "{day} {month} в {hour}:{minute}", + "вчера в {hour}:{minute}", + "сегодня в {hour}:{minute}", + "завтра в {hour}:{minute}" + ], + "reply_to_post": "Комментировать...", + "wall_M_replies_of_N": [ + "", + "%s комментарий из {link}{all}{/link}", + "%s последних комментария из {link}{all}{/link}", + "%s последних комментариев из {link}{all}{/link}" + ], + "wall_more_replies": [ + "", + "ещё %s комментарий", + "ещё %s комментария", + "ещё %s комментариев" + ], + "wall_all_replies": "все комментарии", + "dont_attach": "Не прикреплять", + "video_X_comms": [ + "", + "%s комментарий", + "%s комментария", + "%s комментариев" + ], + "video_edit": "Редактировать", + "video_edit_desc": "Редактировать описание", + "video_edit_desc_intro": "Введите описание", + "video_show_previous_comments": [ + "", + "Показать предыдущие %s комментарий", + "Показать предыдущие %s комментария", + "Показать предыдущие %s комментариев" + ], + "video_are_you_sure_close": "Вы уверены, что хотите закрыть видеозапись?", + "video_are_you_sure_close_title": "Закрыть видео", + "profile_mention_not_found": "Страница не найдена", + "profile_mention_start_typing": "Начните вводить имя друга или название сообщества", + "video_album_is_private_tt": "Альбом защищен настройками приватности", + "video_add_to_my_playlist": "Добавить к себе", + "video_added_to_my_playlist": "Добавлено", + "video_add_to_playlist_added": "Видео добавлено в альбом", + "video_add_to_playlist_error": "Видео уже есть в альбоме", + "video_add_album": "Создать альбом", + "video_add_private_album": "Добавить закрытый альбом", + "video_add_to_group": "Добавить в сообщество", + "video_export_action": "Экспортировать", + "video_statistics": "Статистика", + "video_complain": "Пожаловаться", + "video_select_albums": "Выберите альбомы", + "video_tc_sure_delete": "Вы уверены, что хотите удалить эту видеозапись?

Отметки и комментарии будет не восстановить.", + "video_tc_delete": "Удалить", + "video_views_count_tt_text": "Просмотры оригинала (общие просмотры)", + "video_only_private_video": "Данное видео можно добавить только в закрытый альбом", + "video_leave_closed_group_title": "Выход из закрытой группы", + "video_leave_closed_group_text": "Это закрытое сообщество. Если вы отпишетесь, попасть обратно, возможно, будет непросто. Отписаться?", + "video_leave_admined_group_text": "Вы администратор сообщества. Если вы отпишитесь, то лишитесь административных прав. Отписаться?", + "video_view_subscribe_to_author": "Подписаться", + "video_view_subscribed_msg": "Вы подписаны", + "video_player_next_title": "Следующее видео", + "video_player_playlist_ask_to_subscribe": "Скоро здесь появятся новые видео. Подпишитесь на плейлист, чтобы не пропустить их.", + "video_player_playlist_subscribe": "Подписаться на плейлист", + "video_player_playlist_subscribed": "Вы подписаны на плейлист", + "video_i_like": "Нравится", + "video_share_with_friends": "Поделиться", + "video_add_flash": "Добавить к себе", + "video_added_flash": "Добавлено к себе", + "video_comments_summary": [ + "", + "%s комментарий", + "%s комментария", + "%s комментариев" + ], + "video_N_views_list": [ + "", + "%s просмотр", + "%s просмотра", + "%s просмотров" + ], + "video_playlist_reverse_tt": "Показать в обратном порядке", + "video_playlist_autoplay_disable_tt": "Отключить автовоспроизведение", + "video_playlist_autoplay_enable_tt": "Включить автовоспроизведение", + "video_player_next_video_tt": "Следующее видео", + "video_player_prev_video_tt": "Предыдущее видео", + "video_player_close_tt": "Закрыть", + "video_player_collapse_tt": "Свернуть", + "video_player_hide_video_list_tt": "Скрыть список видео", + "video_player_show_video_list_tt": "Показать список видео", + "video_player_hide_chat_tt": "Скрыть чат", + "video_player_show_chat_tt": "Показать чат", + "video_live_N_watching": [ + "", + "%s смотрит сейчас", + "%s смотрят сейчас", + "%s смотрят сейчас" + ], + "video_live_chat_msg_too_long": "Сообщение слишком длинное ", + "video_live_chat_too_fast": "Слишком быстро...", + "video_aria_minimize_chat": "Скрыть чат", + "video_aria_expand_chat": "Показать чат", + "video_live_notify_subscribed": "Уведомления о трансляциях включены", + "video_live_notify_unsubscribed": "Уведомления о трансляциях отключены", + "video_live_you_have_X_money": "У вас {money}", + "video_live_finished": "Трансляция завершилась", + "video_unfollow_friend_title": "Удалить из друзей", + "video_unfollow_friend_text": "", + "video_are_you_sure_stop_streaming": "Вы уверены, что хотите завершить трансляцию?", + "video_are_you_sure_stop_streaming_title": "Завершить трансляцию", + "video_comment": "Комментарий", + "video_added": "Видеофайл добавлен.", + "global_add_to_bookmarks": "Сохранить в закладках", + "global_remove_from_bookmarks": "Убрать из закладок", + "video_n_time_codes": [ + "", + "%s эпизод", + "%s эпизода", + "%s эпизодов" + ], + "video_moderation_snackbar_copied": "Скопировано", + "video_close_time_code_list": "Закрыть", + "video_clip_ord_advertiser_info": "О рекламодателе", + "video_layer_ord_hint": "Автор разместил рекламу самостоятельно: она не проходила модерацию ВКонтакте", + "video_ord_title": "Реклама от автора", + "video_erid_copied": "ERID скопирован", + "video_page_playlist_not_found": "Плейлист не найден" + }, + "mvData": { + "oid": -221858145, + "vid": 456244002, + "videoRaw": "-221858145_456244002", + "add_hash": "118364a2c13d0af79d", + "added": 0, + "authorId": -221858145, + "authorHref": "/video/@webm_original", + "authorPhoto": "https://sun1-94.userapi.com/s/v1/ig2/2bLJJoL12FEP_MQ1uvK_8whVD-8uNR4kesT5ii1jfsZBJ4ermZryLRzT0uvBc5sLiKWo-is8d37EJ2UfFbHoFS-p.jpg?size=50x50&quality=95&crop=0,400,1598,1598&ava=1", + "authorNameGenitive": "WebM Original", + "bookmarkHash": "c8212afb7e32ce4d6c", + "bookmarkType": "clip", + "can_add": false, + "deleteFromAllAlbumsHash": "", + "duration": 6, + "hash": "bd071737320f25bbd1", + "itemAccessHash": "", + "l_type": 2, + "likeHash": "64b68ecd7746b860f9", + "liked": false, + "likes": 167, + "nolikes": 1, + "published": true, + "shortVideo": true, + "title": "Клип @webm_original", + "next_other_videos": [], + "autoplay_other_videos": true, + "desc": "You look lonely, i can fix that: [club221858145|@webm_original]", + "editHash": "", + "editFromDropdown": 0, + "hideEdit": 0, + "commshown": 1, + "commcount": 1, + "pinned_comment_ids": [], + "vsegsSize": 5, + "uploaded": false, + "noControls": false, + "deleteHash": "", + "reportHash": "e6fc8c7660d801b26a", + "info": [ + -221858145, + 456244002, + "https://i.mycdn.me/getVideoPreview?id=6341274962667&idx=0&type=39&tkn=ibzKUwiHcu8yNS_wD6f_QQoxPC4&fn=vid_l", + "Клип @webm_original", + 16384, + "0:06", + "", + "", + "WebM Original", + 1711222920, + 17440, + "", + 0, + "", + { + "duration": "6 секунд" + }, + "", + "", + "", + "", + 6, + "/clip-221858145_456244002", + "", + "", + 0, + "", + "", + "", + "", + "https://i.mycdn.me/getVideoPreview?id=6341274962667&idx=0&type=39&tkn=ibzKUwiHcu8yNS_wD6f_QQoxPC4&fn=vid_s", + -1, + "", + "", + "", + "video_fca629eeZhRCpoc6KmcFzFwgcG9XmzRauFus3Ehdix5nXDGXEadlAG-UtQoSUj39aBUvW2I", + "", + "", + "", + "", + "", + "/video/@webm_original", + 1711222920, + "", + "" + ], + "isVideoAds": false, + "is_live": 0, + "is_active_live": 0, + "noPublicAdd": false, + "pl_subscription_hash": "d8f4e38bdb1409418c", + "asyncCommentsEnabled": false, + "canSubscribeToAuthor": false, + "canAddToGroups": false + }, + "wallTpl": { + "profileData": [ + 0, + null, + "/id", + "DELETED" + ], + "reply_multiline": false, + "reply_multiline_hint": "
\n
%wall_reply_submit_settings%
\n
\n
%wall_reply_submit_settings_1%
\n
%wall_reply_submit_settings_2%
\n
\n
", + "poll_hash": "1711547789_0551de6c82f1cd412f" + }, + "share_timehash": "1711547789_9b59881217b5a0de40", + "commentsTpl": { + "likes": "
\n \n
\n
\n %buttons_prepend%\n
\n
\n
%likes_formatted_count%
\n
\nПоказать список оценивших\n \n
\n \n \n
\n
", + "reply": "
\n
\n \n \n \n \n
\n \"%name%\"\n \n \n
\n
\n %actions%\n
\n %name%%to_link%\n
\n
%message%
\n \n
\n
\n
", + "actions": "
%actions%
", + "edit_reply": "
", + "del_reply": "
", + "spam_reply": "
" + }, + "post": "-221858145_video456244002mv", + "maxReplyLength": 16384, + "maxChatReplyLength": 128, + "maxDescriptionLength": 5000, + "forcePlaylistLayout": false, + "publishAction": "", + "pl_list": 0, + "pl_is_subscribed": false, + "is_vk_player": 1, + "is_flv": false, + "player_unavailable": false, + "player": { + "type": "vk", + "params": [ + { + "lang_add": "Добавить к себе", + "lang_added": "Добавлено к себе", + "lang_share": "Поделиться", + "lang_like": "Нравится", + "lang_donate": "Поддержать", + "lang_subscribe": "Подписаться", + "lang_subscribed": "Вы подписаны", + "lang_volume_on": "Включить звук", + "lang_volume_off": "Убрать звук", + "lang_volume_muted": "Звук видео выключен", + "lang_volume": "Громкость", + "lang_volume_disabled": "Звук недоступен", + "lang_hdsd": "Сменить качество", + "lang_quality_auto": "Авто", + "lang_open_popup": "Развернуть", + "lang_fullscreen": "На весь экран", + "lang_fullscreen_exit": "Выйти из полноэкранного режима", + "lang_window": "Свернуть", + "lang_ads_link": "Сайт рекламодателя", + "lang_ads": "Реклама", + "lang_ads_skip": "Пропустить рекламу", + "lang_ads_skip_time": "Пропустить рекламу через {time} с", + "lang_report_problem": "Сообщить о проблеме...", + "lang_open_settings": "Открыть настройки", + "lang_playback_speed": "Скорость", + "lang_playback_speed_normal": "Обычная", + "lang_playback_speed_short": "Скорость", + "lang_subtitles_intro_tooltip": "Для этого видео
доступны субтитры", + "lang_subtitles_off": "Отключены", + "lang_enable_subtitles": "Включить субтитры", + "lang_disable_subtitles": "Выключить субтитры", + "lang_subtitles_enabled_tip": "Субтитры: {current}
Для настройки нажмите {icon}", + "lang_autoplay": "Автовоспроизведение", + "lang_quality": "Качество", + "lang_subtitles": "Субтитры", + "lang_auto_subtitles": "{lang} (Автоматические)", + "lang_play": "Воспроизвести ", + "lang_pause": "Приостановить", + "lang_replay": "Ещё раз", + "lang_traffic_saving": "Экономия данных", + "lang_traffic_saving_value_on": "Включена", + "lang_traffic_saving_value_off": "Отключена", + "lang_traffic_saving_value_off_short": "Откл.", + "lang_traffic_saving_value_on_short": "Вкл.", + "lang_next": "Следующее видео", + "lang_next_cancel": "Отменить", + "lang_goto_advertisers_site": "Перейти на сайт", + "lang_buy_tickets": null, + "lang_is_playing_on_chromecast": "Видео воспроизводится на {device}", + "lang_neuro_hd_hint": "Разрешение этого видео увеличено с помощью технологии neuroHD", + "lang_load_error": "Во время загрузки произошла ошибка. Повторите попытку позже.", + "lang_external_service_file_not_found": "Видеозапись недоступна.
Возможно, она была удалена со стороннего сервиса.", + "lang_err_code": "Код ошибки: {code}", + "lang_bad_browser": "К сожалению, ваш браузер на данный момент не поддерживается", + "lang_live": "Live", + "lang_live_starting_soon": "Трансляция ещё не началась", + "lang_live_start_timer_title": "До начала трансляции осталось", + "lang_live_start_timer_days": "дн", + "lang_live_start_timer_hours": "ч", + "lang_live_start_timer_minutes": "мин", + "lang_live_start_timer_seconds": "сек", + "lang_live_start_subscribe": "Напомнить о трансляции", + "lang_live_start_unsubscribe": "Не напоминать о трансляции", + "lang_live_failed": "Во время трансляции произошла ошибка", + "lang_live_wait_record": "Трансляция завершилась, и запись скоро станет доступна", + "lang_live_user_sent_gift": [ + "", + "отправил подарок", + "отправила подарок" + ], + "lang_live_user_sent_supercomment": [ + "", + "написал суперсообщение", + "написала суперсообщение" + ], + "lang_autoplay_expand_hint": "Нажмите, чтобы развернуть", + "lang_add_bookmark": "Сохранить в закладках", + "lang_delete_bookmark": "Удалить из закладок", + "lang_open_time_code_list": "Открыть список эпизодов", + "lang_goods_in_frame": "Товары в кадре", + "lang_video_interactive_label": "Интерактив", + "lang_videoplayer_tooltip_interactive_seek": "Перейти к интерактиву", + "lang_videoplayer_tooltip_disabled_when_graph_on": "Кнопка недоступна во время просмотра карты", + "lang_videoplayer_tooltip_button_disabled": "Кнопка недоступна", + "lang_videoplayer_tooltip_disabled_when_interactive": "Интерактив уже идёт", + "lang_videoplayer_tooltip_episode_finished": "Вы уже сделали свой выбор", + "lang_videoplayer_tooltip_episode_unfinished": "Не пройдено", + "lang_videoplayer_tooltip_interactive_choice": "Сделайте выбор, чтобы продолжить", + "lang_videoplayer_tooltip_interactive_graph_off": "Показать карту сюжета", + "lang_videoplayer_tooltip_interactive_graph_on": "Скрыть карту сюжета", + "lang_videoplayer_tooltip_restart": "Начать заново", + "lang_videoplayer_interactive_replay_modal_body": "Все принятые вами решения будут сброшены, а видео включится с самого начала", + "lang_cancel": "Отмена", + "lang_timed_button_goto": "Перейти", + "lang_timed_button_open": "Открыть", + "lang_timed_button_buy": "Купить", + "lang_timed_button_buy_tickets": "Купить билеты", + "lang_timed_button_checkin": "Записаться", + "lang_timed_button_install": "Установить", + "lang_timed_button_contact": "Связаться", + "lang_timed_button_fill": "Заполнить", + "lang_timed_button_learn_more": "Подробнее", + "lang_cmenu_copy_video_link": "Копировать ссылку на клип", + "lang_cmenu_copy_timecode_link": "Скопировать ссылку на кадр", + "lang_cmenu_copy_embed_code": "Копировать код для встраивания", + "lang_cmenu_enable_pip_mode": "Картинка в картинке", + "lang_cmenu_enable_loop": "Включить повторение", + "lang_cmenu_disable_loop": "Отключить повторение", + "lang_cmenu_playback_speed": "Скорость", + "lang_cmenu_rotate": "Повернуть", + "lang_cmenu_report_error": "Сообщить о проблеме...", + "lang_cmenu_copy_debug": "Копировать данные для диагностики", + "lang_aria_videoplayer": "Видеоплеер VK", + "lang_aria_volume_slider": "Ползунок громкости", + "lang_aria_volume_muted": "Звук отключён", + "lang_aria_timeline_slider": "Ползунок временной шкалы", + "lang_aria_timeline_value": "{time} (общая длительность {duration})", + "lang_aria_open_settings": "Открыть настройки видеоплеера", + "lang_aria_enter_fullscreen": "Открыть в полноэкранном режиме", + "lang_aria_exit_fullscreen": "Выйти из полноэкранного режима", + "lang_aria_quality_current": "Текущее качество {quality}", + "lang_aria_vk_video_logo": "VK Видео", + "video_play_hd": "Смотреть в высоком качестве", + "video_stop_loading": "Прервать загрузку", + "video_player_version": "ВКонтакте видеоплеер", + "video_get_video_code": "Копировать код для встраивания", + "video_get_current_url": "Скопировать ссылку на кадр", + "video_load_error": "Во время загрузки произошла ошибка. Повторите попытку позже.", + "lang_action_button_open_app": "Открыть приложение", + "lang_action_button_open_article": "Читать статью", + "lang_action_button_open_group": "Перейти в сообщество", + "lang_action_button_open_link": "Открыть ссылку", + "lang_action_button_open_page": "Открыть страницу", + "lang_action_button_open_poll": "Пройти опрос", + "lang_action_button_open_product": "Открыть товар", + "lang_action_button_open_post": "Открыть запись", + "lang_action_button_open_user": "Открыть профиль", + "lang_action_button_show_chat": "Показать чат", + "lang_live_rewound_time_yesterday": "вчера, {time}", + "lang_live_rewound_time_today": "сегодня, {time}", + "lang_short_video_other_videos_title": "Другие клипы", + "lang_short_video_other_videos_hide": "Скрыть", + "lang_short_video_other_videos_show": "Показать", + "lang_short_video_other_videos_next": "Следующий клип", + "lang_short_video_embed_show_on_vk": "Смотреть клип в VK", + "lang_short_video_interactive_back_to_first": "Смотреть с начала", + "lang_short_video_banner_close_btn": "Понятно", + "lang_short_video_banner_more_btn": "Подробнее", + "lang_video_mute_popup_title": "Звук в этом видео недоступен", + "lang_video_mute_popup_text": "Так решил музыкант или его представитель", + "lang_video_mute_popup_button_text": "Узнать больше", + "vid": 456244002, + "oid": -221858145, + "can_add": false, + "can_share": true, + "md_title": "Клип @webm_original", + "description": "You look lonely, i can fix that: @webm_original", + "md_author": "WebM Original", + "no_title": 0, + "author_id": -221858145, + "author_href": "/video/@webm_original", + "author_photo": "https://sun1-94.userapi.com/s/v1/ig2/KV0ZCReyR63ES8aY7zRZRgn0lOED9gNGwL2swnp_4PbP9o_k7riJRVS7DJudbhvwEjZGm-9c-sn9iRo7eZcmj0Ky.jpg?size=100x100&quality=95&crop=0,400,1598,1598&ava=1", + "author_sex": 0, + "view_hash": "2b2ef750e6d0603205429ee1b373208b", + "action_hash": "b73fca29c1ce932da6", + "embed_hash": "d8bad71d55e7e528", + "list_id": "e8047288723dc109e3", + "duration": 6, + "t": "", + "force_timeline": false, + "vigo_cid": "cfcd208495d565ef66e7dff9f98764da", + "viewer_id": 0, + "post_id": "", + "module": "", + "context": "", + "g": 0, + "a": 0, + "cis": 1, + "error_stat_hash": "1711547789_089a69aaab00d25b35", + "date": 1711222920, + "can_preview": true, + "clickable_stickers": false, + "vsegs_size": 5, + "vsegs_hash": "3daf0dc8411670f5c7", + "aspect_ratio": 0.500000, + "nolikes": 1, + "stats_mediascope": [ + { + "event": "start", + "url": "https://43212.ms.vk.com", + "interval": 0 + }, + { + "event": "heartbeat", + "url": "https://44212.ms.vk.com", + "interval": 30 + }, + { + "event": "stop", + "url": "https://45212.ms.vk.com", + "interval": 0 + } + ], + "stats_tns": "ru", + "hd": 5.000000, + "angle": 0.000000, + "img_angle": 0.000000, + "repeat": 1.000000, + "url240": "https://vkvd176.mycdn.me/?expires=1711806989671&srcIp=83.69.220.238&pr=41&srcAg=CHROME&ms=45.136.21.178&type=0&subId=6341446732523&sig=4R7_fjTFVwk&ct=0&urls=45.136.22.188&clientType=13&appId=512000384397&id=6341274962667", + "url360": "https://vkvd176.mycdn.me/?expires=1711806989671&srcIp=83.69.220.238&pr=41&srcAg=CHROME&ms=45.136.21.178&type=1&subId=6341446732523&sig=jq07iwey6rc&ct=0&urls=45.136.22.188&clientType=13&appId=512000384397&id=6341274962667", + "url480": "https://vkvd176.mycdn.me/?expires=1711806989671&srcIp=83.69.220.238&pr=41&srcAg=CHROME&ms=45.136.21.178&type=2&subId=6341446732523&sig=YJonMqEEJcc&ct=0&urls=45.136.22.188&clientType=13&appId=512000384397&id=6341274962667", + "url720": "https://vkvd176.mycdn.me/?expires=1711806989671&srcIp=83.69.220.238&pr=41&srcAg=CHROME&ms=45.136.21.178&type=3&subId=6341446732523&sig=l6D859JZGPw&ct=0&urls=45.136.22.188&clientType=13&appId=512000384397&id=6341274962667", + "url1080": "https://vkvd176.mycdn.me/?expires=1711806989671&srcIp=83.69.220.238&pr=41&srcAg=CHROME&ms=45.136.21.178&type=5&subId=6341446732523&sig=VUFsnqSuuno&ct=0&urls=45.136.22.188&clientType=13&appId=512000384397&id=6341274962667", + "url1440": "https://vkvd176.mycdn.me/?expires=1711806989671&srcIp=83.69.220.238&pr=41&srcAg=CHROME&ms=45.136.21.178&type=6&subId=6341446732523&sig=AAE3x4DMgi4&ct=0&urls=45.136.22.188&clientType=13&appId=512000384397&id=6341274962667", + "dash_sep": "https://vkvd176.mycdn.me/?expires=1711806989671&srcIp=83.69.220.238&pr=41&srcAg=CHROME&ms=45.136.21.178&mid=7219126020587&type=1&subId=6341446732523&sig=fH3pmfi_J6U&ct=6&urls=45.136.22.188&clientType=13&appId=512000384397&asubs=y&id=6341274962667", + "dash_webm": "https://vkvd176.mycdn.me/?expires=1711806989671&srcIp=83.69.220.238&pr=41&srcAg=CHROME&ms=45.136.21.178&mid=7219126020587&type=4&subId=6341446732523&sig=IKHStpbnWPc&ct=6&urls=45.136.22.188&clientType=13&appId=512000384397&asubs=y&id=6341274962667", + "hls": "https://vkvd176.mycdn.me/video.m3u8?cmd=videoPlayerCdn&expires=1711806989671&srcIp=83.69.220.238&pr=41&srcAg=CHROME&ms=45.136.21.178&mid=7219126020587&type=2&sig=iLTStu3vCa4&ct=8&urls=45.136.22.188&clientType=13&id=6341274962667", + "failover_host": "vkvd488.mycdn.me", + "ov_id": 7219126020587, + "subs": [ + { + "url": "https://vkvd176.mycdn.me/?expires=1711806989671&srcIp=83.69.220.238&srcAg=CHROME&ms=45.136.21.178&mid=7219126020587&type=2&ix=0&subId=6341446732523&sig=bugkegdWqkk&ct=13&urls=45.136.22.188&clientType=13&appId=512000384397&id=6341446732523", + "title": "ru_auto.vtt", + "lang": "ru", + "manifest_name": "Р СѓСЃСЃРєРёР№", + "is_auto": true, + "storage_index": 0 + } + ], + "default_subtitle_track_index": "-1", + "jpg": "https://i.mycdn.me/getVideoPreview?id=6341274962667&idx=0&type=39&tkn=ibzKUwiHcu8yNS_wD6f_QQoxPC4&fn=vid_x", + "timeline_thumbs": "160|320|3|9|7|https://i.mycdn.me/videoPreview?id=6341274962667&type=42&tkn=REvICfSa4wrlj-iDN0Domr41K30&uidx=0|1|1", + "first_frame_130": "https://i.mycdn.me/getVideoPreview?id=6341274962667&idx=0&type=39&tkn=ibzKUwiHcu8yNS_wD6f_QQoxPC4&fn=vid_sm", + "first_frame_160": "https://i.mycdn.me/getVideoPreview?id=6341274962667&idx=0&type=39&tkn=ibzKUwiHcu8yNS_wD6f_QQoxPC4&fn=vid_d", + "first_frame_320": "https://i.mycdn.me/getVideoPreview?id=6341274962667&idx=0&type=39&tkn=ibzKUwiHcu8yNS_wD6f_QQoxPC4&fn=vid_md", + "first_frame_800": "https://i.mycdn.me/getVideoPreview?id=6341274962667&idx=0&type=39&tkn=ibzKUwiHcu8yNS_wD6f_QQoxPC4&fn=vid_f", + "first_frame_1280": "https://i.mycdn.me/getVideoPreview?id=6341274962667&idx=0&type=39&tkn=ibzKUwiHcu8yNS_wD6f_QQoxPC4&fn=vid_w", + "subtitles_langs": { + "ru": { + "lang_id": 0, + "name": "Русский" + } + }, + "short_video": 1, + "short_video_other_videos": [ + { + "thumb": "https://i.mycdn.me/getVideoPreview?id=6385280748268&idx=0&type=39&tkn=D1kJQWJgAcUE62PEwE31PDvHXqs&fn=vid_t", + "views": 7648, + "video_raw_id": "-221858145_456244044", + "restricted": false, + "module": "" + }, + { + "thumb": "https://i.mycdn.me/getVideoPreview?id=5998252984958&idx=0&type=39&tkn=ZR7MOaqnMzmcwm7ufqUQbP8vBUs&fn=vid_t", + "views": 5582, + "video_raw_id": "-221858145_456244043", + "restricted": false, + "module": "" + }, + { + "thumb": "https://i.mycdn.me/getVideoPreview?id=6342174968334&idx=0&type=39&tkn=AMpnHdW3xrHDTJ9zhDkI8YrmuKE&fn=vid_t", + "views": 16968, + "video_raw_id": "-221858145_456244042", + "restricted": false, + "module": "" + }, + { + "thumb": "https://i.mycdn.me/getVideoPreview?id=6059039525570&idx=0&type=39&tkn=aBBU7dk64xYtnTYFRn9Uu_RmPuw&fn=vid_t", + "views": 32094, + "video_raw_id": "-221858145_456244041", + "restricted": false, + "module": "" + }, + { + "thumb": "https://i.mycdn.me/getVideoPreview?id=6187094182503&idx=0&type=39&tkn=258kLIhm8FsaruUer56MeWykG2k&fn=vid_t", + "views": 2059, + "video_raw_id": "-221858145_456244040", + "restricted": false, + "module": "" + }, + { + "thumb": "https://i.mycdn.me/getVideoPreview?id=6341253204619&idx=0&type=39&tkn=IsSx8NbjgS4gTdM5DwBqEZ9TibE&fn=vid_t", + "views": 3120, + "video_raw_id": "-221858145_456244039", + "restricted": false, + "module": "" + }, + { + "thumb": "https://i.mycdn.me/getVideoPreview?id=6188246370984&idx=0&type=39&tkn=06fCVVw21I1JRUOQ700Y3_ENHkY&fn=vid_t", + "views": 3404, + "video_raw_id": "-221858145_456244038", + "restricted": false, + "module": "" + }, + { + "thumb": "https://i.mycdn.me/getVideoPreview?id=6432538364435&idx=0&type=39&tkn=5miPPXikFh-y4p1UuLfvUo5QFgY&fn=vid_t", + "views": 2774, + "video_raw_id": "-221858145_456244037", + "restricted": false, + "module": "" + }, + { + "thumb": "https://i.mycdn.me/getVideoPreview?id=6226998135336&idx=0&type=39&tkn=BBP_Qjd21ve0poSoWyPSys0oGHU&fn=vid_t", + "views": 2798, + "video_raw_id": "-221858145_456244036", + "restricted": false, + "module": "" + }, + { + "thumb": "https://i.mycdn.me/getVideoPreview?id=6453335362288&idx=0&type=39&tkn=Xi92uM3ibp296hE6dtEWLvlIi1k&fn=vid_t", + "views": 2051, + "video_raw_id": "-221858145_456244035", + "restricted": false, + "module": "" + } + ], + "track_title": null, + "track_cover": null, + "short_video_cover": "https://i.mycdn.me/getVideoPreview?id=6341274962667&idx=0&type=39&tkn=ibzKUwiHcu8yNS_wD6f_QQoxPC4&fn=vid_t", + "enable_video_mvk_sdk": true, + "is_cis_lang": true, + "enable_mvk_showcase": true, + "sdk_config": { + "core": { + "chromecastReceiverId": "07A4434E", + "configName": [ + "wcr_heartbeat" + ], + "dashCmafLive": { + "lowLatency": { + "isActive": false + } + }, + "droppedFramesChecker": { + "enabled": false + }, + "webmCodec": "av1", + "useNewDashVkProvider": true + }, + "statistics": { + "apiEnv": "vk_alias", + "shorten": false, + "watchCoverageInterval": 15000, + "disabledCustomFields": [ + "direct_url", + "view_360" + ] + }, + "ui": { + "downloadVKLanguages": false, + "features": { + "interactiveGraph": true, + "sentry": true, + "thumbTimer": false + }, + "updateBuiltinLanguages": false, + "sentry": { + "sampleRate": 0.010000 + } + } + }, + "log_fatal_errors": false, + "log_managed_errors": false, + "traffic_saving": 480, + "from_ads": false, + "show_next": 0, + "liked": 0, + "add_hash": "118364a2c13d0af79d", + "added": 0 + } + ] + }, + "noStickers": false + } + ] + ], + "static": "dist/web/chunks/react.f8231ef2.js,dist/web/chunks/vkcom-kit.fb246438.css,dist/web/chunks/vkcom-kit.bb5e7afc.js,dist/web/chunks/vkcom-kit-icons.1ba5b2c8.js,dist/web/chunks/polyfills.1b9ef568.js,dist/web/chunks/vkui.24ffed68.js,dist/web/chunks/state-management.96b46e52.js,dist/web/chunks/palette.361d379a.css,dist/web/chunks/palette.d5cb0efe.js,dist/web/chunks/audioplayer-lib.93b52d88.css,dist/web/chunks/audioplayer-lib.e72b3b9b.js,dist/web/chunks/common.4dd7490d.js,dist/web/likes.20074c02.css,dist/web/likes.6bf0ef55.js,al/video.365625ad.css,dist/web/chunks/b12ab347.c31fa4a1.js,dist/web/chunks/b2c3c302.760f0a52.js,dist/web/videoview.02dc5141.css,dist/web/videoview.7fc4c5d4.js,al/videoview.421f3329.css,dist/web/chunks/2e366b1d.ee26cb55.js,dist/web/chunks/20b61d61.09298a82.js,dist/web/chunks/aee1802d.d5c76ae5.js,dist/web/chunks/e78e0200.6b6a5d7a.js,dist/web/chunks/ec38f152.ea0c4736.js,dist/web/chunks/b691fd56.b98f4fbe.js,dist/web/chunks/9a477bd9.21fbfcef.js,dist/web/chunks/dbd3c9f0.a5f461b1.js,dist/web/chunks/73310976.916b2d93.js,dist/web/page.546a62fa.css,dist/web/page.1424759f.js,al/page.d404064e.css,al/post.4cda2c87.css,ui_controls.js,ui_controls.f7df960e.css,al/shortvideoview.1711b073.css,dist/web/shortvideoview.7dc42ee3.css,dist/web/shortvideoview.6f0f76a2.js", + "statsMeta": { + "platform": "web2", + "st": false, + "time": 1711547789, + "hash": "qZivtSaUwtusPXiOZZ7DQTUpuEvaZgbfdqu7T4hn6QD", + "reloadVersion": 14 + }, + "loaderVersion": "20948782121", + "pageviewCandidate": true, + "langVersion": "9307", + "langKeys": { + "global": [], + "local": { + "global_date_l": [ + "", + "{day} {month} {year}", + "вчера", + "сегодня", + "завтра" + ], + "global_date_year_l": [ + "", + "{day} {month} {year} года", + "Вчера", + "Сегодня", + "Завтра" + ], + "global_short_date_time_l": [ + "", + "{day} {month} в {hour}:{minute}", + "вчера в {hour}:{minute}", + "сегодня в {hour}:{minute}", + "завтра в {hour}:{minute}" + ], + "months_sm_of": { + "1": "янв", + "2": "фев", + "3": "мар", + "4": "апр", + "5": "мая", + "6": "июн", + "7": "июл", + "8": "авг", + "9": "сен", + "10": "окт", + "11": "ноя", + "12": "дек" + }, + "months_of": { + "1": "января", + "2": "февраля", + "3": "марта", + "4": "апреля", + "5": "мая", + "6": "июня", + "7": "июля", + "8": "августа", + "9": "сентября", + "10": "октября", + "11": "ноября", + "12": "декабря" + }, + "global_close": "Закрыть", + "audio_add_to_audio": "Добавить в мою музыку", + "global_delete_audio": "Удалить аудиозапись", + "audio_album_part": "Часть {part}", + "audio_following_artist_button": "Вы подписаны", + "audio_follow_artist_success_notification_text": "Новые релизы музыканта будут появляться в разделе музыкальных обновлений.", + "audio_follow_artist_success_notification_title": "Вы подписались на музыканта", + "audio_follow_artist_button": "Подписаться", + "audio_delete_from_current": "Удалить из текущего плейлиста", + "audio_dont_show": "Больше не показывать", + "audio_remove_from_list": "Удалить из прослушанных", + "audio_podcast_delete_episode": "Удалить эпизод", + "audio_restore_audio": "Восстановить аудиозапись", + "global_media_selector_more": "Ещё", + "audio_podcast_restore_episode": "Восстановить эпизод", + "audio_add_to_group": "Добавить в аудиозаписи сообщества", + "audio_podcast_edit_episode": "Редактировать эпизод", + "audio_edit_audio": "Редактировать аудиозапись", + "audio_set_next_audio": "Воспроизвести следующей", + "audio_show_recommendations": "Показать похожие", + "audio_podcast_listen_later": "Послушать позже", + "audio_show_lyrics": "Показать текст", + "audio_longtap_tooltip_text": "Послушать сниппет", + "global_audio_play": "Воспроизвести", + "global_audio_pause": "Приостановить", + "Save": "Сохранить", + "global_yes": "Да", + "global_cancel": "Отмена", + "global_save": "Сохранить", + "audio_playlist_link_copied": "Ссылка скопирована в буфер обмена", + "global_error": "Ошибка", + "audio_ok": "ОК", + "audio_playlist_recoms_was_hidden": "Плейлист был скрыт из рекомендаций", + "audio_playlist_recoms_show": "Показывать в рекомендациях", + "global_unknown_error": "Неизвестная ошибка", + "audio_error_deleted_playlist_box": "Плейлист недоступен/Такого плейлиста не существует или он был удалён автором.", + "audio_playlist_btn_added": "Добавлено", + "audio_playlist_btn_add": "Добавить", + "audio_playlist_recoms_was_showed": "Плейлист был возвращен в рекомендации", + "audio_playlist_recoms_hide": "Скрыть из рекомендаций", + "audio_add_to_new_pl": "Новый плейлист", + "audio_row_show_all_playlists": "Показать все...", + "audio_delete_all_title": "Удаление аудиозаписей", + "global_delete": "Удалить", + "global_add_media": "Прикрепить", + "global_audio_replace": "Заменить", + "audio_copy_audio_link": "Скопировать ссылку", + "audio_share_audio": "Поделиться", + "audio_add_to_playlist": "Добавить в плейлист", + "audio_open_album": "Открыть альбом", + "audio_podcast_open_episode": "Открыть эпизод", + "audio_restriction_title_claim": "Аудиозапись недоступна. Так решил музыкант или его представитель.", + "audio_success_msg_multiple": "Все аудиозаписи успешно загружены.", + "audio_success_msg": "Аудиозапись успешно загружена.", + "audio_uploading_over": "Загрузка завершена", + "audio_loading_error": "Возникла ошибка, код ошибки: {code}", + "audio_error_loading": "При загрузке аудиозаписи произошла ошибка. Попробуйте обновить страницу.", + "audio_save_recommendation_audio_block_as_playlist_success_notification_title": "Плейлист был добавлен в вашу музыку", + "audio_save_recommendation_audio_block_as_playlist_success_notification_text": "Теперь он находится в разделе с добавленными плейлистами и треками", + "global_audio_ad": "Реклама", + "global_audio_ads_off": "Отключить", + "audio_player_block_broadcast_tooltip_title": "Транслировать аудиозаписи:", + "audio_player_block_broadcast_tooltip_user_page_checkbox": "На мою страницу", + "audio_player_block_broadcast_tooltip_clubs_container_title": "Транслировать в сообщество", + "audio_player_block_remove_from_group_hint": "Удалить", + "audio_player_block_add_to_group_hint": "Добавить", + "audio_player_block_remove_from_my_music_hint": "Удалить из моей музыки", + "audio_player_block_add_to_my_music_hint": "Добавить в мою музыку", + "global_audio_ad_more": "Подробнее", + "audio_player_block_playback_progress_time_aria_label": "Изменить режим времени воспроизведения", + "audio_action_dislike": "Не нравится", + "global_audio_prev": "Предыдущая аудиозапись", + "global_audio_next": "Следующая аудиозапись", + "audio_shuffle": "Перемешать и воспроизвести", + "audio_repeat_tooltip": "Повторять", + "audio_playback_rate": "Скорость воспроизведения", + "audio_player_block_podcast_remove_from_favorites_hint": "Удалить из закладок", + "audio_player_block_podcast_add_to_favorites_hint": "Добавить в закладки", + "audio_share": "Поделиться", + "audio_player_block_volume_slider_mute_button_aria_label": "Выключить звук", + "audio_lyrics_ads": "Реклама", + "audio_lyrics_error_btn_retry": "Повторить", + "audio_lyrics_error": "Что-то пошло не так. Попробуйте ещё раз или включите другой трек.", + "audio_track_has_no_lyrics_yet": "У этого трека пока нет текста", + "payments_go_change_pay_type": "Выбрать другой способ оплаты", + "payments_get_votes_new": "Получить голоса", + "index_sel_bday": "День", + "global_user_is_online_mobile": "онлайн с телефона", + "global_user_is_online": "онлайн", + "global_reload_app_modal_title": "Обновление сайта", + "global_reload_app_modal_content": "Сайт был обновлён. Перезагрузите страницу, чтобы всё работало корректно.", + "global_reload_app_modal_action": "Перезагрузить", + "global_charged_zone_title": "Предупреждение", + "global_charged_zone_continue": "Продолжить", + "global_just_now": "только что", + "global_word_secs_ago": [ + "", + "только что", + "две секунды назад", + "три секунды назад", + "четыре секунды назад", + "пять секунд назад" + ], + "global_secs_ago": [ + "", + "%s секунду назад", + "%s секунды назад", + "%s секунд назад" + ], + "wall_post_mins_ago": [ + "", + "%s мин", + "%s мин", + "%s мин" + ], + "global_word_mins_ago": [ + "", + "минуту назад", + "две минуты назад", + "три минуты назад", + "4 минуты назад", + "5 минут назад" + ], + "global_mins_ago": [ + "", + "%s минуту назад", + "%s минуты назад", + "%s минут назад" + ], + "wall_post_hours_ago": [ + "", + "%s ч", + "%s ч", + "%s ч" + ], + "global_word_hours_ago": [ + "", + "час назад", + "два часа назад", + "три часа назад", + "четыре часа назад", + "пять часов назад" + ], + "global_hours_ago": [ + "", + "%s час назад", + "%s часа назад", + "%s часов назад" + ], + "mail_money_transfer_cancel_confirm": "Вы действительно хотите отменить денежный перевод?", + "mail_money_transfer_cancel_btn": "Отменить перевод", + "mail_money_transfer_decline_confirm": "Вы действительно хотите отклонить денежный перевод?", + "news_fb_money_transfer_decline_confirm": "Вы действительно хотите отклонить денежный перевод?", + "mail_money_transfer_decline_btn": "Отклонить", + "news_fb_money_transfer_decline_btn": "Отклонить", + "global_action_confirmation": "Подтверждение действия", + "box_send": "Отправить", + "reports_thanks_for_report": "Спасибо, ваша жалоба принята.", + "audio_claimed_geo": "Аудиозапись {audio} недоступна для прослушивания в вашем регионе.", + "audio_claim_warning_title": "Спорная аудиозапись", + "audio_site_rules_violation_warning": "Аудиозапись {audio} была изъята из публичного доступа в связи с нарушением правил сайта.", + "audio_site_rules_violation_header": "Запрещённая аудиозапись", + "audio_claimed_replacement_available": "Аудиозапись была заблокирована по требованию правообладателя. Вы можете заменить её на оригинальную аудиозапись правообладателя {original}.", + "global_audio_only_with_subscription_title": "Аудиозапись доступна с подпиской", + "global_audio_only_with_subscription_text": "Так решил музыкант или его представитель. Купите подписку и получите доступ к расширенному каталогу музыки.", + "global_audio_only_with_subscription_btn": "Узнать больше", + "audio_claim_warning": "Аудиозапись {audio} была изъята из публичного доступа в связи с обращением правообладателя.", + "audio_claim_objection": "заполнив специальную форму", + "audio_claim_delete": "удалить аудиозапись", + "audio_replace_with_original": "Заменить", + "audio_claim_delete_capital": "Удалить аудиозапись", + "global_date": [ + "", + "{day} {month} {year}", + "вчера", + "сегодня", + "завтра" + ], + "global_short_date": [ + "", + "{day} {month}", + "вчера", + "сегодня", + "завтра" + ], + "global_short_date_time": [ + "", + "{day} {month} в {hour}:{minute}", + "вчера в {hour}:{minute}", + "сегодня в {hour}:{minute}", + "завтра в {hour}:{minute}" + ], + "head_fr_online_tip": "Показать список друзей", + "global_to_top": "Наверх", + "stories_bad_browser": "Истории не поддерживаются в вашем браузере", + "stories_mask_sent": "Маска отправлена на телефон", + "global_box_error_title": "Ошибка", + "global_friends": "Друзья", + "global_communities": "Сообщества", + "global_apps": "Приложения", + "global_chats": "Диалоги", + "head_search_results": "Результаты поиска", + "global_news_search_results": "Результаты поиска в новостях", + "global_show_all_results": "Показать все результаты", + "global_back": "Назад", + "text_N_symbols_remain": [ + "", + "Остался %s знак", + "Осталось %s знака", + "Осталось %s знаков" + ], + "text_exceeds_symbol_limit": [ + "", + "Допустимое количество символов превышено на %s знак", + "Допустимое количество символов превышено на %s знака", + "Допустимое количество символов превышено на %s знаков" + ], + "votes_flex": [ + "", + "голос", + "голоса", + "голосов" + ], + "global_money_amount_rub": [ + "", + "%s рубль", + "%s рубля", + "%s рублей" + ], + "global_error_occured": "Произошла ошибка", + "reg0_error_bad_email": "Некорректный email.", + "reg0_change_mail": "Изменить", + "login_fast_unblocked_wait_description": "Страница разблокирована. Через несколько секунд Вы вновь сможете пользоваться ВКонтакте.", + "login_blocked_delete_page_header": "Удаление страницы", + "login_blocked_sure_delete_page_question": "Вы уверены, что хотите удалить свою страницу?", + "box_yes": "Да", + "box_no": "Нет", + "notifications_native_common_error": "Произошла ошибка при включении уведомлений.", + "payments_waiting_app_order_complete": "Ожидаем завершения платежа...", + "payments_waiting_payment_complete_still": "Подождите ещё немного...", + "payments_app_order_box_title": "Передача голосов приложению", + "payments_app_add_votes_delay": "Мы ожидаем подтверждение от приложения. Если оно не будет получено в течение часа, голоса будут возвращены на ваш счёт.", + "payments_money_transfer_new_card": "Новая карта", + "votes_transfer_start_typing_recipient": "Начните вводить имя друга", + "votes_transfer_choose_recipients": "Выберите получателя", + "payments_cards_redirect": "Перенаправление на платёжный шлюз.
Пожалуйста, подождите...", + "payments_payment_cancelled": "Процесс оплаты был отменён.", + "payments_money_request_error_no_accept_card": "Пожалуйста, укажите карту для автоматического зачисления переводов.", + "payments_money_request_error_min_chunk_amount_currency": "Минимальная рекомендуемая сумма — {min_amount}", + "payments_money_request_error_max_chunk_amount_currency": "Максимальная рекомендуемая сумма — {max_amount}", + "payments_money_request_error_chunk_amount_too_big": "Рекомендуемая сумма не может быть больше общей суммы запроса.", + "payments_landing_cancelled": "{tag_span}К сожалению, ваш платёж не был принят.{/tag_span}
Пожалуйста, обратитесь в {link}Поддержку{/link}.", + "payments_waiting_transfer_complete": "Ожидаем подтверждения перевода", + "payments_remember_card_btn": "Да, получать на эту карту", + "payments_dont_remember_card_btn": "Нет", + "payments_vkpay_low_balance_title": "Недостаточно средств", + "payments_vkpay_low_balance_text": "Пополните баланс без комиссии.", + "payments_vkpay_topup_button": "Пополнить", + "payments_money_transfer_amount_limits": "Минимальная сумма — {min_amount}", + "payments_money_transfer_error_min_amount_currency": "Минимальная сумма перевода — {min_amount}", + "payments_money_transfer_error_max_amount_currency": "Максимальная сумма перевода — {max_amount}", + "payments_money_transfer_low_balance": "Недостаточно средств", + "payments_money_transfer_will_be_requested": "Будет запрошено: {amount}", + "payments_money_transfer_about_title": "Условия", + "payments_money_link_btn_feature_text": "Поделитесь ссылкой или QR-кодом ВКонтакте или за его пределами, чтобы начать сбор денег", + "payments_money_link_tab_feature_text": "Ссылки и QR-код для сбора денег находятся здесь", + "payments_transfer_without_fee": "Без комиссии", + "payments_money_transfer_btn": "Отправить деньги", + "payments_transfer_method_without_fee_for_mastercard": "Без комиссии с Mastercard для переводов от 300 руб.", + "payments_money_transfer_commission_undefined": "Комиссия зависит от платёжной системы карты", + "payments_get_votes_box_close_notice": "Платёж в обработке. Мы пришлём вам уведомление, когда голоса будут зачислены на ваш счёт.", + "payments_unbind_card_confirm": "Вы действительно хотите отвязать карту?", + "payments_revoke_token_confirm": "Вы действительно хотите отвязать этот кошелёк?", + "payments_unbind_card_btn": "Удалить", + "apps_personal_discount_amount_gift_calc": [ + "", + "+%s в подарок", + "+%s в подарок", + "+%s в подарок" + ], + "payments_votes_cost_in_rubles": [ + "", + "Стоимость %s рубль", + "Стоимость %s рубля", + "Стоимость %s рублей" + ], + "payments_bonus_votes": [ + "", + "+ бонус %s голос", + "+ бонус %s голоса", + "+ бонус %s голосов" + ], + "payments_get_votes_for_X": "Получить голоса за {amount}", + "payments_back_to_ps_list": "Вернуться к списку", + "payments_go_ps_list": "Вернуться к выбору платёжной системы", + "payments_pay_order_btn": "Оплатить", + "payments_web_no_sum": "Пожалуйста, выберите желаемое количество голосов.", + "payments_min_amount_limit_votes": "Минимальное количество голосов для оплаты через выбранную платёжную систему: %s.", + "payments_max_amount_limit_votes": "Максимальное количество голосов для оплаты через выбранную платежную систему — %s.", + "payments_rest_amount_day_votes": "Превышена сумма лимита за день. Возможное количество голосов для оплаты через выбранную платёжную систему – %s.", + "payments_rest_amount_week_votes": "Превышена сумма лимита за неделю. Возможное количество голосов для оплаты через выбранную платёжную систему – %s.", + "payments_error_invalid_email": "Указан неверный адрес электронной почты.", + "payments_money_for_votes": [ + "", + "{money} (%s голос)", + "{money} (%s голоса)", + "{money} (%s голосов)" + ], + "payment_redirect": "Перенаправление на платёжную систему %s.
Пожалуйста, подождите...", + "payments_sms_money_fail": "Ваш запрос не был обработан. Попробуйте повторить его позднее.", + "payments_invalid_code": "Неверный код.", + "payments_change_phone_number": "Изменить номер", + "payments_spasibo_rules_not_accepted": "Чтобы продолжить, нужно принять условия", + "payments_to_get_send_sms": [ + "", + "Чтобы получить %s голос, отправьте с вашего номера 1 SMS с текстом {text} на номер {number}.", + "Чтобы получить %s голоса, отправьте с вашего номера 1 SMS с текстом {text} на номер {number}.", + "Чтобы получить %s голосов, отправьте с вашего номера 1 SMS с текстом {text} на номер {number}." + ], + "payments_service_cost": "Стоимость услуги {amount}", + "payments_get_votes_input_phone": "Пожалуйста, укажите номер телефона для оплаты:", + "payments_save_phone": "Сохранить номер", + "payments_box_title_back": "Назад", + "payments_waiting_payment_complete": "Ожидаем завершения оплаты...", + "payments_internet_getting_votes": "Получение голосов", + "payments_get_votes_delay": "Мы ожидаем ответ от платёжного шлюза. Как только мы его получим, то обязательно зачислим голоса на {link}ваш счёт{/link}.

Если вы не получите голоса в течение часа, вы можете обратиться в {link2}платёжную техподдержку{/link2}.", + "payments_get_votes_ps_enter_code": "Вам отправлено сообщение с кодом подтверждения, введите полученный код для оплаты", + "payments_instant_pay_amount_limit_error": "Недостаточно средств на счёте либо достигнут лимит на списание средств без подтверждения.
Для совершения оплаты с подтверждением нажмите {link}Перейти к оплате{/link}.", + "payments_for_get_n_votes": [ + "", + "%s голоса", + "%s голосов", + "%s голосов" + ], + "payments_service_cost_rubles": [ + "", + "Стоимость услуги %s рубль.", + "Стоимость услуги %s рубля.", + "Стоимость услуги %s рублей." + ], + "payments_back_to_offers_list": "Вернуться к списку", + "settings_addrbox_title": "Красивый адрес для вашей страницы", + "settings_addrbox_hint": "В названии можно использовать латинские буквы, цифры и знак "_"", + "global_report_sent": "Жалоба отправлена", + "box_cancel": "Отмена", + "like_block_liker": "Заблокировать", + "wall_open_comments": "Включить комментарии", + "wall_closing_comments": "Выключить комментарии", + "stats_posts_reach_tooltip_head": "Общий охват: общее количество человек, которые увидели запись в сообществе, новостной ленте, диалогах и так далее. Этот показатель учитывает пересечение органического, вирального и рекламного охвата. ", + "stats_posts_reach_tooltip_body": "Рекламный охват: количество человек, которые увидели вашу запись благодаря рекламным форматам ВКонтакте.

Виральный охват: количество человек, которые не подписаны на вашу страницу и увидели эту запись, например, на странице другого пользователя или сообщества социальной сети.", + "market_item_is_disabled": "Товар недоступен", + "market_item_card_component_title_adult": "Уточните возраст", + "market_item_card_blurred_image_caption": "Изображение товара", + "market_item_card_component_badge_title_adult": "Товар 18+", + "market_single_cart_product_unavailable_text": "Нет в наличии", + "market_item_card_component_badge_title_moderation": "На модерации", + "market_item_card_component_badge_title_hard_block": "Заблокировано", + "market_classifieds_status_archive": "Неактивно", + "stickers_popup_blocker_snackbar_title": "Отключить автоматическое воспроизведение стикеров?", + "stickers_popup_blocker_snackbar_action_label": "Отключить", + "global_short_years_fixed": [ + "", + "%s г", + "%s г", + "%s лет" + ], + "global_short_months": "%s мес", + "global_short_weeks": "%s н", + "global_short_days": "%s дн", + "global_short_hours": "%s ч", + "global_short_minutes": "%s мин", + "global_short_seconds": "%s с", + "video_postponed_publication": "Отложенная публикация", + "video_added_less_than_a_minute_ago": "Меньше минуты назад", + "video_word_mins_ago": [ + "", + "минуту назад", + "две минуты назад", + "три минуты назад", + "4 минуты назад", + "5 минут назад" + ], + "video_mins_ago": [ + "", + "%s минуту назад", + "%s минуты назад", + "%s минут назад" + ], + "video_word_hours_ago": [ + "", + "час назад", + "два часа назад", + "три часа назад", + "четыре часа назад", + "пять часов назад" + ], + "video_hours_ago": [ + "", + "%s час назад", + "%s часа назад", + "%s часов назад" + ], + "video_word_days_ago": [ + "", + "день назад", + "два дня назад", + "три дня назад", + "четыре дня назад", + "пять дней назад" + ], + "video_days_ago": [ + "", + "%s день назад", + "%s дня назад", + "%s дней назад" + ], + "video_word_months_ago": [ + "", + "месяц назад", + "два месяца назад", + "три месяца назад", + "четыре месяца назад", + "пять месяцев назад" + ], + "video_months_ago": [ + "", + "%s месяц назад", + "%s месяца назад", + "%s месяцев назад" + ], + "video_word_years_ago": [ + "", + "год назад", + "два года назад", + "три года назад", + "четыре года назад", + "пять лет назад" + ], + "video_years_ago": [ + "", + "%s год назад", + "%s года назад", + "%s лет назад" + ], + "video_postponed_publication_date": [ + "", + "{num_day} {month} в {num_hour}:{minute}", + "{num_day} {month} в {num_hour}:{minute}", + "Сегодня в {num_hour}:{minute}", + "Завтра в {num_hour}:{minute}" + ], + "video_postponed_publication_full_date": [ + "", + "{num_day} {month} {year} в {num_hour}:{minute}", + "{num_day} {month} {year} в {num_hour}:{minute}", + "Сегодня в {num_hour}:{minute}", + "Завтра в {num_hour}:{minute}" + ], + "video_N_views_list": [ + "", + "%s просмотр", + "%s просмотра", + "%s просмотров" + ], + "video_feature_relation_text": " feat. ", + "global_video_soon": "Скоро", + "video_N_views_thousand": " тыс просмотров", + "video_N_views_million": " млн просмотров", + "video_N_group_members_count": [ + "", + "%s подписчик", + "%s подписчика", + "%s подписчиков" + ], + "video_N_subscribers_thousand": " тыс подписчиков", + "video_N_subscribers_million": " млн подписчиков", + "video_N_thousand": " тыс", + "video_N_million": " млн", + "video_showcase_N_viewers": [ + "", + "%s просмотр", + "%s просмотра", + "%s просмотров" + ], + "vkconnect_logout_save_user_dialog_title": "Выход", + "vkconnect_logout_save_user_dialog_description_text": "Отключите, если вошли в аккаунт VK ID не на своём устройстве", + "vkconnect_logout_save_user_dialog_description_title": "Сохранить данные для быстрого входа", + "global_head_logout": "Выйти", + "vkconnect_auth_label_captcha": "Введите код с картинки", + "vkconnect_auth_label_captcha_audio": "Введите слово из аудио", + "vkconnect_auth_captcha_loading_error_caption": "Не удалось загрузить картинку", + "vkconnect_auth_audio_captcha_loading_error_caption": "Не удалось загрузить аудио", + "vkconnect_auth_captcha_image_loading_error_retry_aria_label": "Не удалось загрузить картинку. Попробовать ещё раз.", + "vkconnect_auth_captcha_sound_loading_error_retry_aria_label": "Не удалось загрузить аудио. Попробовать ещё раз.", + "vkconnect_auth_captcha_loading_error_refresh_text": "Попробовать ещё раз", + "vkconnect_auth_captcha_image_aria_label": "Графический код", + "vkconnect_auth_captcha_submit_button": "Продолжить", + "vkconnect_auth_captcha_refresh_button_aria_label": "Обновить изображение", + "vkconnect_auth_captcha_refresh_audio_button_aria_label": "Обновить аудиодорожку", + "vkconnect_refresh_captcha": "Обновить", + "vkconnect_refresh_captcha_via": "Обновить через {time}", + "vkconnect_auth_captcha_enable_audio_aria_label": "Аудио проверка", + "vkconnect_auth_captcha_enable_image_aria_label": "Вернуться к графическому коду", + "vkconnect_auth_captcha_play_audio_button_aria_label": "Прослушать", + "index_error_bad_phone": "Некорректный номер телефона", + "vkconnect_auth_empty_login": "Не указаны телефон или почта", + "vkconnect_auth_security_error_title": "Произошла ошибка", + "vkconnect_auth_security_error_text": "Попробуйте перезагрузить страницу и повторить попытку ", + "vkconnect_auth_save_user_tooltip_header": "Сохранить вход", + "vkconnect_auth_save_user_tooltip_body": "Выберите, чтобы сохранить данные аккаунта для быстрого входа на этом устройстве", + "box_close": "Закрыть", + "global_box_title_back": "Назад", + "global_captcha_input_here": "Введите код", + "captcha_enter_code": "Введите код с картинки", + "captcha_send": "Отправить", + "captcha_cancel": "Отмена", + "global_recaptcha_title": "Подтверждение действия", + "global_warning": "Предупреждениe", + "calls_are_you_sure_to_call_this_user": "Вы уверены, что хотите позвонить пользователю?", + "global_share_button_call": "Позвонить", + "login_reset_sessions_tooltip_text": "Снимите галочку, чтобы не завершать активные сеансы на других устройствах", + "login_reset_sessions": "Выйти на всех устройствах, кроме этого", + "login_unban_fetch_ban_data_internal_error": "На сервере произошла ошибка. Повторите попытку позже.", + "login_unban_data_expired": "Процесс разблокировки происходил слишком долго, поэтому придётся пройти все шаги заново.", + "login_authcheck_called_phone_label": "Последние 4 цифры номера", + "login_confirmation_code": "Код подтверждения", + "login_authcheck_call_reset_sent": "Звоним...
Мы совершаем звонок-сброс на Ваш телефон.", + "login_authcheck_sms_resent": "Код отправлен.
SMS c кодом подтверждения отправлено повторно.", + "join_send_code_via_sms_time": "Отправить код в SMS через %s", + "join_resend_code_time": "Выслать код повторно через %s", + "login_authcheck_send_call_reset_delay": "Сделать звонок-сброс через %s", + "join_send_code_via_sms": "Отправить код через SMS", + "join_no_code": "Я не получил код", + "login_authcheck_send_call_reset_message": "Сделать звонок-сброс", + "reg_code_limit_exceeded": "Превышено максимальное количество попыток на запрос кода. Попробуйте запросить код позднее.", + "join_country_label": "Страна/Регион", + "login_unblock_form_change_phone": "Изменить", + "login_mobile_phone": "Мобильный телефон", + "vkui_blocked_no_phone_access": "У меня нет доступа к телефону", + "login_authcheck_enter_code": "Введите код", + "join_pwd_level0": "Слишком короткий пароль", + "join_pwd_level1": "Очень слабый пароль", + "join_pwd_level2": "Слабый пароль", + "join_pwd_level3": "Хороший пароль", + "join_pwd_level4": "Сильный пароль", + "join_pwd_level5": "Пароль не может содержать пробелы", + "login_new_password_label": "Новый пароль", + "login_enter_password": "Введите пароль", + "reg_validate_call_reset_button": "Позвонить", + "login_receive_code": "Получить код", + "login_check_code": "Проверить код", + "login_blocked_unblock_page": "Восстановить доступ", + "restore_change_phone_done_wait_banned": "Ваша заявка на разблокировку страницы с изменением привязанного номера одобрена. Для того чтобы изменения вступили в силу, необходимо зайти на страницу с новыми данными после {date}.", + "login_delayed_its_not_me": "Это был не я", + "login_delayed_request_finished": "Для того чтобы страница стала Вам доступна, зайдите на сайт с новым номером и паролем, который Вы придумали в процессе разморозки страницы. Если Вы не оставляли заявку на смену номера, нажмите «Это был не я».", + "login_unblock_redirect_to_auth": "Перейти к авторизации", + "login_unblock_form_explanation": "Чтобы разморозить страницу, мы просим Вас подтвердить, что Вы владелец страницы.", + "login_blocked_call_title": "Разморозка страницы", + "settings_admin_groups_left": "Выбрано {count} из {amt}", + "settings_menu_box": "Настройка пунктов меню", + "calls_new_call_title": "Звонок", + "calls_join_error_require_access": "Вы не можете присоединиться к звонку в закрытом чате. Попросите администратора добавить вас в чат.", + "calls_join_error_text": "Организатор завершил звонок.", + "calls_invalid_join_link": "Неверная ссылка на звонок", + "calls_privacy_error": "Звонок не удался, так как у вас или собеседника звонки запрещены в настройках приватности.", + "calls_chat_busy_error": "Вы не можете начать звонок в этом чате, потому что в нём уже идёт звонок.", + "calls_busy_error": "Пользователь уже разговаривает. Перезвоните позже.", + "calls_flood_error": "Вы слишком часто звоните. Повторите попытку позже.", + "calls_join_error_require_auth": "Войдите в аккаунт, чтобы подключиться к этому звонку", + "calls_start_error": "Во время звонка произошла ошибка. Повторите попытку позже.", + "calls_join_error_banned": "Вы были исключены из этого звонка.", + "calls_join_error_blacklisted_by_caller": "Не удалось присоединиться к звонку: организатор добавил вас в чёрный список", + "calls_join_error_not_found_conversation": "Звонок завершён", + "calls_join_error_room_participants_exceeded": "Достигнут лимит пользователей", + "calls_sorry_error": "Произошла неизвестная ошибка.", + "calls_members_list_label": [ + "", + "{name} и ещё %s человек", + "{name} и ещё %s человека", + "{name} и ещё %s человек" + ], + "calls_and": "{before} и {after}", + "global_dislike": "Больше не нравится", + "global_like": "Нравится", + "intro_hint_description_feed_author_like_onboarding": "Теперь ваши отметки «Нравится» от имени автора записи особенно заметны", + "likes_comments_N_aria_short": [ + "", + "%s комментарий", + "%s комментария", + "%s комментариев" + ], + "likes_likes_N_aria_short": [ + "", + "Понравилось %s человеку", + "Понравилось %s людям", + "Понравилось %s людям" + ], + "likes_shares_N_aria_short": [ + "", + "%s поделился", + "%s поделились", + "%s поделились" + ], + "apps_connect_modal_messages_scopes_edit": "Редактировать", + "apps_connect_modal_messages_scopes_text": "Будут доступны:", + "events_mon": "Пн", + "events_tue": "Вт", + "events_wed": "Ср", + "events_thu": "Чт", + "events_fri": "Пт", + "events_sat": "Сб", + "events_sun": "Вс", + "datepicker_date_format": "{day} {month} {year}", + "datepicker_month_format": "{month} {year}", + "global_day_label": "День:", + "global_year_label": "Год:", + "global_month_label": "Месяц:", + "video_upload_changed": "Загрузка видео не завершена. Вы уверены, что хотите выйти и прервать загрузку?", + "global_continue": "Продолжить", + "video_upload_encode_error": "Не удалось обработать видео, данный формат не поддерживается", + "video_upload_error": "Не удалось загрузить видео", + "video_adding_video_title": "Добавление видео", + "video_ocl_privacy": "Видео будет доступно только для вас", + "video_upload_choose_playlist_placeholder": "Выберите плейлист", + "video_upload_another_one": "Добавить ещё видео", + "video_clip_add_music": "Указать музыку", + "video_clip_dont_attach": "Удалить из клипа", + "video_upload_link_copied": "Ссылка на видео скопирована в буфер обмена", + "video_upload_waiting": "Ожидание...", + "video_upload_encoding": "Обработка видео...", + "video_upload_uploaded_percent": "Загружено {percent}%", + "video_upload_error_file": "Загруженный файл не является видео", + "video_upload_error_audio": "Попробуйте загружать аудио в раздел {link}аудиозаписей{/link}", + "video_claimed_not_uploaded": "Видеозапись не может быть сохранена в связи с обращением правообладателей.", + "video_upload_flood_control": "Вы загрузили слишком много видеозаписей. Пожалуйста, попробуйте позже.", + "video_upload_error_common": "При загрузке видеозаписи произошла ошибка.", + "video_upload_connection_lost": "Не удалось загрузить видео.
Проверьте соединение с интернетом и нажмите «Продолжить загрузку».", + "video_thumb_load_error": "Не удалось загрузить обложку", + "notifications_video_playlist_thumb_deleted_header": "Обложка плейлиста удалена", + "notifications_video_thumb_deleted_header": "Обложка видео удалена", + "video_upload_thumb_size_error": "Размер файла для обложки не должен превышать 5 МБ.", + "profile_wall_postpone_at": "в", + "video_upload_encode_percent": "Обработано {percent}%", + "video_upload_back_to_editing": "Вернуться к редактированию", + "video_upload_end_editing": "Опубликовать", + "video_upload_schedule_post": "Запланировать публикацию", + "video_save_but": "Сохранить", + "video_upload_postpone_publish_group_checkbox": "Создать отложенную запись на стене сообщества", + "video_upload_postpone_publish_user_checkbox": "Создать отложенную запись на странице", + "video_upload_postponed_publish_checkbox_subtitle": [ + "", + "Запись с этим видео будет опубликована {day} {month} {year} в {hour}:{minute}", + "Запись с этим видео будет опубликована {day} {month} {year} в {hour}:{minute}", + "Запись с этим видео будет опубликована {day} {month} {year} в {hour}:{minute}", + "Запись с этим видео будет опубликована {day} {month} {year} в {hour}:{minute}" + ], + "video_upload_publish_checkbox_tooltip": "Видео можно будет опубликовать на стене {day} {month} после {num_hour}:{minute}", + "video_upload_publish_checkbox_full_tooltip": "Видео можно будет опубликовать на стене {day} {month} {year} после {num_hour}:{minute}", + "video_postpone_date_error": "Это время уже прошло, выберите время в будущем", + "video_publish_on_group_wall": "Опубликовать на стене сообщества", + "video_publish_to_status": "Опубликовать на странице", + "video_publish_btn": "Опубликовать", + "video_upload_stop_title": "Остановка загрузки", + "video_upload_stop_text": "Вы уверены, что хотите прервать загрузку видеозаписи?", + "video_upload_stop_button": "Прервать", + "video_no_video_upload_title": "Нет ни одной загружаемой видеозаписи.", + "video_clip_upload_leaving_without_saving": "Вы можете поделиться получившимся клипом, нажав «Опубликовать», или удалить ролик.", + "video_stop_editing_title": "Прервать редактирование?", + "video_clip_upload_end_editing": "Опубликовать", + "video_upload_remove_video": "Удалить", + "video_upload_leaving_without_saving": [ + "", + "Вы не закончили редактировать видео. Нажмите «Сохранить», чтобы оставить текущие настройки, или выберите «Опубликовать позже», чтобы завершить редактирование в другое время.", + "Вы не закончили редактировать видео. Нажмите «Сохранить», чтобы оставить текущие настройки, или выберите «Опубликовать позже», чтобы завершить редактирование в другое время.", + "Вы не закончили редактировать видео. Нажмите «Сохранить», чтобы оставить текущие настройки, или выберите «Опубликовать позже», чтобы завершить редактирование в другое время." + ], + "video_upload_publish_later": "Опубликовать позже", + "video_header_new": "Новое видео", + "video_upload_back": "Вернуться назад", + "video_upload_choose_album_placeholder": "- Выберите альбом -", + "global_add": "Добавить", + "video_copy_live_constant_key_button": "Скопировать постоянный ключ", + "video_cancel_but": "Отмена", + "video_live_settings_leave_warning": "Вы уверены, что хотите прервать создание трансляции? Если вы покинете эту страницу, трансляция будет удалена.", + "video_live_trans_key_updated": "Ключ обновлён", + "video_live_trans_key_updated_msg": "Ваш ключ для трансляций обновлён. Изменения вступят в силу в течение минуты.", + "video_live_view_key_box_title": "Показать ключ потока", + "video_live_view_key_box_msg": "Если ваш экран сейчас видно в трансляции, не показывайте ключ потока. С его помощью кто угодно может запустить трансляцию от вашего имени.", + "video_live_view_key_box_confirm": "Показать ключ", + "video_live_view_key_box_cancel": "Отмена", + "video_live_key_copied": "Ключ скопирован в буфер обмена", + "video_live_trans_title_error_empty": "Введите название трансляции", + "video_live_trans_type_error_empty": "Укажите категорию для трансляции", + "video_create_live_error": "Ошибка", + "video_create_live_error_try_later": "При создании трансляции произошла ошибка. Попробуйте позже.", + "video_live_endless_confirm_box_title": "Подтверждение", + "video_live_endless_confirm_box_msg": "Обратите внимание, что запись не сохраняется для трансляций такого типа. ", + "video_live_endless_confirm_box_yes_btn": "Продолжить без записи", + "global_dont_warn_next_time": "Больше не показывать это предупреждение.", + "video_publication_time_label": "Время публикации", + "profile_wall_postpone_btn": "В очередь", + "video_upload_publish_tooltip_text": "Видео появится на стене сообщества сразу после того, как вы его добавите", + "video_editor_available_after_processing_hint": "Видеоредактор будет доступен после
обработки видео", + "video_publish_available_after_processing_hint": "Дождитесь окончания обработки,
чтобы опубликовать видео", + "video_save_available_after_processing_hint": "Дождитесь окончания обработки,
чтобы сохранить изменения", + "video_edit_open_video_editor_box_title": "Сохранить изменения?", + "video_edit_open_video_editor_box_text": "Чтобы открыть редактор, сохраните изменения", + "video_edit_open_video_editor_box_save_action": "Сохранить и продолжить", + "video_upload_video_processed": "Видео обработано", + "video_upload_new_video_created_and_processed": "Новое видео создано и обработано", + "video_upload_video_changed": "Видео изменено.", + "video_upload_new_video_created": "Новое видео создано.", + "video_upload_thumb_msg": "Выбор обложки будет доступен после обработки видео", + "video_thumbs_are_not_ready": "Выбор обложки будет доступен
после обработки видео", + "video_upload_upload_subtitle_label": "Субтитры {index}", + "video_upload_subtitles_default_off": "Отключены", + "video_upload_subtitles_default_user_lang": "На языке пользователя", + "video_upload_subtitles_size_error": "Размер файла субтитров не должен превышать 1 МБ.", + "video_upload_subtitles_format_error": "Для загрузки субтитров доступен только формат *.srt", + "video_upload_encode_error_too_short_1s": "Не удалось обработать видео: клип должен быть длиннее 1 секунды", + "video_upload_encode_error_too_long": "Не удалось обработать видео: клип должен быть короче 180 секунд", + "video_upload_error_uploading": "Не удалось загрузить видео, повторите попытку", + "video_upload_error_incorrect_publish_date": "Некорректное время публикации, выберите другое", + "video_upload_error_limit_postpone_posts": "Очередь отложенных записей переполнена", + "video_upload_error_day_limit_postpone_posts": "На выбранный день очередь отложенных записей переполнена", + "video_upload_error_same_publish_date": "На это время уже запланирована другая публикация", + "video_upload_error_day_limit_posts": "Очередь записей на этот день переполнена", + "video_upload_error_info_limit_postpone_posts": "Чтобы запланировать эту публикацию, удалите одну из существующих отложенных записей", + "video_upload_error_info_day_limit_postpone_posts": "Чтобы запланировать эту запись, измените день публикации видео", + "video_upload_error_info_same_publish_date": "Чтобы создать отложенную запись, измените время публикации видео", + "video_external_not_allowed": "Эта видеозапись недоступна для проигрывания через ВКонтакте. Вы можете обратиться к автору видеозаписи с просьбой разрешить её встраивание либо скачать её на компьютер и загрузить на ВКонтакте как видеофайл.", + "video_external_not_found": "Видеосервис не поддерживается, или ссылка некорректная", + "global_unexpected_error_try_later": "Неизвестная ошибка. Повторите попытку позже.", + "global_internal_error": "Произошла ошибка. Повторите операцию позже.", + "video_clip_ads_from_author_added": "Добавлена", + "video_clip_ads_from_author_empty": "Отсутствует", + "video_upload_come_back_later": "Вернуться позже", + "video_upload_publish_video": "Опубликовать видео?", + "video_upload_cancel_external_uploading": "Если выйти в другой раздел, видео не сохранится", + "video_upload_cancel_externals_uploading": "Если выйти в другой раздел, видео не сохранятся", + "video_upload_cancel_uploading": "Прервать загрузку видео?", + "video_upload_cancel_uploading_exit": "Видео ещё загружается. Если выйти в другой раздел, прогресс загрузки не сохранится.", + "video_upload_interrupt_and_exit": "Прервать и выйти", + "video_upload_publish_video_modal_text": "Можно опубликовать видео сейчас или вернуться к редактированию позже. Текущие настройки сохранятся.", + "video_upload_schedule_publication": "Запланировать публикацию?", + "video_upload_schedule_publication_modal_text": "Публикация будет запланирована на выбранное время. Текущие настройки сохранятся.", + "video_upload_schedule_publications": "Запланировать публикации?", + "video_upload_schedule_publications_text": "Публикации будут запланированы на выбранное время. Текущие настройки сохранятся.", + "video_upload_schedule_publications_btn": "Запланировать публикации", + "video_upload_publish_many_videos_text": "Можно опубликовать видео сейчас или вернуться к редактированию позже. Для отложенных видео публикация будет запланирована на выбранное время. Текущие настройки сохранятся.", + "privacy_options_all_users": "Все пользователи", + "video_privacy_group_for_members": "Подписчики сообщества", + "video_privacy_group_for_editors": "Редакторы и администраторы", + "video_privacy_group_by_link": "У кого есть ссылка", + "video_privacy_group_for_donut": "Доны сообщества", + "privacy_options_friends_only": "Только друзья", + "privacy_options_friends_and_friends": "Друзья и друзья друзей", + "privacy_options_only_me": "Только я", + "privacy_options_nobody": "Никто", + "privacy_options_advanced_settings": "Все, кроме...", + "privacy_options_some_friends": "Некоторые друзья", + "privacy_options_some_friend_lists": "Некоторые списки друзей", + "Month1": "Январь", + "Month1_of": "января", + "month1_of": "января", + "Month2": "Февраль", + "Month2_of": "Февраля", + "month2_of": "февраля", + "Month3": "Март", + "Month3_of": "марта", + "month3_of": "марта", + "Month4": "Апрель", + "Month4_of": "апреля", + "month4_of": "апреля", + "Month5": "Май", + "Month5_of": "мая", + "month5_of": "мая", + "Month6": "Июнь", + "Month6_of": "июня", + "month6_of": "июня", + "Month7": "Июль", + "Month7_of": "июля", + "month7_of": "июля", + "Month8": "Август", + "Month8_of": "августа", + "month8_of": "августа", + "Month9": "Сентябрь", + "Month9_of": "сентября", + "month9_of": "сентября", + "Month10": "Октябрь", + "Month10_of": "октября", + "month10_of": "октября", + "Month11": "Ноябрь", + "Month11_of": "ноября", + "month11_of": "ноября", + "Month12": "Декабрь", + "Month12_of": "декабря", + "month12_of": "декабря", + "reports_strikes_video_publish_error": "В сообществе {name} действуют ограничения из‑за нарушений правил ВКонтакте. Действие вновь станет доступным {day} {month} {year} в {hour}:{minute}. {link}Подробнее{/link}", + "global_ads_wall_post_ord_mark_as_ads_added": "Отметка о рекламе добавлена", + "global_ads_wall_post_ord_mark_as_ads_removed": "Отметка о рекламе удалена", + "wall_post_with_video_different_dates_title": "Запись содержит видео с разным временем публикации", + "wall_post_with_video_different_dates_info": "Некоторые из них могут быть доступны в разделе «Видео» раньше, чем будет опубликована эта запись. Видео с более поздним временем публикации станут доступны в момент публикации записи.", + "wall_post_with_video_later_title": "Запись запланирована позже, чем прикреплённое видео", + "wall_post_with_video_later_info": [ + "", + "Видео станет доступно в разделе «Видео» {day} {month} в {hour}:{minute} — раньше, чем появится запись на стене", + "Видео станет доступно в разделе «Видео» {day} {month} в {hour}:{minute} — раньше, чем появится запись на стене", + "Видео станет доступно в разделе «Видео» сегодня в {hour}:{minute} — раньше, чем появится запись на стене", + "Видео станет доступно в разделе «Видео» завтра в {hour}:{minute} — раньше, чем появится запись на стене" + ], + "wall_post_with_video_earlier_title": "Запись запланирована раньше, чем прикреплённое видео", + "wall_post_with_video_earlier_info": [ + "", + "Видео будет опубликовано вместе с записью и станет доступно {day} {month} в {hour}:{minute}", + "Видео будет опубликовано вместе с записью и станет доступно {day} {month} в {hour}:{minute}", + "Видео будет опубликовано вместе с записью и станет доступно сегодня в {hour}:{minute}", + "Видео будет опубликовано вместе с записью и станет доступно завтра в {hour}:{minute}" + ], + "wall_post_with_video_publish_together_title": "Видео будет опубликовано вместе с записью и станет доступно сейчас", + "audio_longtap_modal_title": "Сейчас играет сниппет", + "mail_audio_message": "Голосовое сообщение", + "settings_silent_mode_form_request_error": "На сервере произошла ошибка. Повторите попытку позже.", + "settings_silent_mode_form_calls_and_mails_friends": "друзья", + "settings_silent_mode_form_calls_and_mails_friends_of_friends": "друзья и друзья друзей", + "settings_silent_mode_enabled_form_description": "Вы на неделю оградили себя от лишнего
внимания. В режиме «Личное пространство»:", + "settings_silent_mode_enabled_form_header": "Режим «Личное пространство» включён до {date}", + "settings_silent_mode_enabled_form_profile_closed": "Ваш профиль закрыт", + "settings_silent_mode_enabled_form_calls_and_mails": "Писать и звонить вам могут только
{friends}", + "settings_silent_mode_enabled_form_friends_request": "Отправлять заявки в друзья могут
только друзья друзей", + "settings_silent_mode_form_photos_tag": "Добавлять вас в чаты, отмечать на фото и задавать вам вопросы смогут
только друзья", + "settings_silent_mode_form_button_turn_off_alternate": "Отключить режим", + "settings_silent_mode_end_form_description": "Ваши настройки вернулись
в начальное состояние", + "settings_silent_mode_end_form_header": "«Личное пространство» отключено", + "settings_silent_mode_form_drop_down_friends": "Только друзья", + "settings_silent_mode_form_drop_down_friends_of_friends": "Друзья и друзья друзей", + "settings_silent_mode_form_description": "Попробуйте этот режим, если хотите ненадолго укрыться от внимания чужих людей. Пока он включён:", + "settings_silent_mode_form_header": "Неделя без лишнего внимания в «Личном пространстве» ", + "settings_silent_mode_form_profile_be_closed": "Ваш профиль будет закрытым", + "settings_silent_mode_form_calls_and_mails": "Писать и звонить вам смогут только
{friends}", + "settings_silent_mode_form_drop_down_title": "Изменить", + "settings_silent_mode_form_friends_request": "Отправлять заявки в друзья смогут
только друзья друзей", + "settings_silent_mode_form_button_turn_on": "Включить", + "global_reload": "Перезагрузить", + "video_publish_clip_from_video_title": "Короткие вертикальные видео теперь публикуются в VK Клипах", + "video_publish_clip_from_video_format": "Популярный формат бесконечной ленты ", + "video_publish_clip_from_video_algorithms": "Умные алгоритмы рекомендаций", + "video_publish_clip_from_video_text": "Перед публикацией клип можно отредактировать, добавить описание, настроить приватность и прочее", + "video_publish_clip_from_video_ok": "Понятно", + "video_external_add_info": "Укажите ссылку на видео на других сервисах, например, Яндекс.Диск, YouTube, Vimeo и др.", + "video_external_add_info_without_yandex": "Укажите ссылку на видео на других сервисах, например, YouTube, Vimeo и др.", + "video_upload_attachment_add_external": "Добавить по ссылке", + "video_external_add_label": "Ссылка на видео", + "video_new_video_title": "Новое видео", + "video_new_video_description": "Чтобы начать загрузку, выберите файл на компьютере или перетащите его в это окно", + "video_upload_owner_choose_label": "Автор видео", + "video_upload_select_file": "Выбрать файл", + "video_upload_select_my": "Выбрать из моих видео", + "video_new_video_info_link": "Перед загрузкой ознакомьтесь с {link}рекомендациями для авторов видео{/link}", + "drop_files_here": "Перетащите файлы сюда", + "video_edit_title": "Редактирование видео", + "video_editor_popout_exit_without_save_header": "Закрыть без сохранения?", + "video_editor_popout_exit_without_save_text": "У вас есть несохранённые изменения. Если закрыть редактор, они пропадут.", + "video_editor_popout_new_or_replace_header": "Сохранить изменения?", + "video_editor_popout_new_or_replace_text": "Текущая версия видео будет доступна до окончания обработки. Если текущую версию важно сохранить, опубликуйте изменённое видео как новое.", + "video_editor_popout_new_or_replace_save": "Опубликовать как новое видео", + "video_editor_popout_save_failed_header": "Не удалось сохранить изменения", + "video_editor_popout_save_failed_text": "Вы слишком часто пытались сохранить видео. Подождите немного и попробуйте ещё раз.", + "video_editor_popout_save_failed_got_it": "Понятно", + "video_player_pause": "Приостановить", + "video_player_play": "Воспроизвести ", + "video_volume_on": "Включить звук", + "video_volume_off": "Убрать звук", + "video_editor_action_undo_tooltip": "Отменить", + "video_editor_action_redo_tooltip": "Повторить", + "video_editor_action_split_tooltip": "Разделить", + "video_editor_action_split_disabled_tooltip": "Выберите момент, где видео нужно разрезать", + "video_editor_action_delete_tooltip": "Удалить фрагмент", + "video_editor_action_delete_disabled_tooltip": "Выделите фрагмент, который хотите удалить", + "video_editor_action_zoom_minus_tooltip": "Уменьшить масштаб", + "video_editor_action_zoom_plus_tooltip": "Увеличить масштаб", + "video_changes_saved": "Изменения сохранены", + "video_editor_generating_notify_subtitle": "Пока видео обрабатывается, пользователям будет доступна текущая версия видео", + "stories_view_sticker_pack": "Показать набор", + "stories_link_attach_clip": "Смотреть клип", + "voting_N_voted": [ + "", + "Проголосовал %s человек", + "Проголосовали %s человека", + "Проголосовали %s человек" + ], + "voting_nobody_voted": "Никто не проголосовал", + "stories_stat_off": "Выкл.", + "news_stories_title": "Истории", + "stories_add_title": "История", + "stories_settings": "Настройки", + "mobile_video_added_to_watch_later": "Добавлено в раздел «Смотреть позже»", + "mobile_video_added_to_fave": "Видео добавлено в закладки", + "mobile_video_removed_from_watch_later": "Удалено из раздела «Смотреть позже»", + "mobile_video_removed_from_fave": "Видео удалено из закладок", + "mobile_video_added_to_my_videos": "Видео добавлено в раздел "Мои видео"", + "mobile_video_removed_from_my_videos": "Видео удалено из «Добавленных»", + "mobile_video_removed_from_group": "Видео удалено из сообщества", + "mobile_video_added_to_playlist": "Видео добавлено в плейлист", + "mobile_video_added_to_playlists": "Видео добавлено в плейлисты", + "mobile_video_removed_from_playlist": "Видео удалено из плейлиста", + "mobile_video_removed_from_playlists": "Видео удалено из плейлистов", + "mobile_video_link_copied": "Ссылка скопирована", + "mobile_video_erid_copied": "ERID скопирован", + "mobile_video_ord_snackbar_added": "Отметка о рекламе добавлена", + "mobile_video_playlist_deleted": "Плейлист удалён", + "mobile_video_playlist_saved": "Плейлист сохранён", + "mobile_video_removed_from_history": "Видео удалено из истории", + "mobile_video_cleared_history": "История просмотра очищена", + "mobile_video_onboarding_snackbar_refresh_text": "Обновить ленту с учётом ваших предпочтений?", + "mobile_video_showcase_form_file_upload_success": "Видео успешно загружено", + "mobile_video_showcase_form_upload_in_progress": "Редактирование видео доступно после завершения загрузки", + "mobile_video_saved": "Видео сохранено", + "mobile_video_global_error": "Произошла ошибка, попробуйте позже", + "mobile_search_government_label": "Госорганизация", + "mobile_search_friends_in_group_and": "{first_user} и {second_user}", + "mobile_search_friends_in_group": [ + "", + "%s друг", + "%s друга", + "%s друзей" + ], + "groups_catalog_header_aria_label_clear_recent": "Очистить список недавно посещенных групп", + "mobile_video_showcase_create_playlist": "Создать плейлист", + "global_hide": "Скрыть", + "mobile_video_playlist_play": "Смотреть", + "search_show_more": "Показать ещё", + "mobile_video_playlist_subscribe_need_auth_action": "Чтобы подписаться, вам необходимо войти", + "mobile_groups_you_are_in_public": "Вы подписаны", + "mobile_groups_public_subscribe": "Подписаться", + "groups_catalog_view_all": "Смотреть все", + "mobile_friends_requests_common_friends": [ + "", + "%s общий друг", + "%s общих друга", + "%s общих друзей" + ], + "groups_inv_subscr": [ + "", + "%s участник", + "%s участника", + "%s участников" + ], + "groups_user_invite": "приглашает {user}", + "notifications_group_invite_accept_success": "Приглашение принято", + "notifications_group_invite_decline_success": "Приглашение отклонено", + "global_accept": "Принять", + "groups_decline": "Отклонить", + "groups_dd_you_in_group": "Вы подписаны", + "global_share_button_join_public": "Подписаться", + "groups_X_app_users": [ + "", + "%s подписчик", + "%s подписчика", + "%s подписчиков" + ], + "groups_subscribed_friends": [ + "", + "%s друг", + "%s друга", + "%s друзей" + ], + "search_verified": "Подтверждённая страница", + "global_add_to_audio": "Добавить в мою музыку", + "mobile_search_no_found_summary": "Ваш запрос не дал результатов.", + "mobile_video_videos_counter": [ + "", + "%s видео", + "%s видео", + "%s видео" + ], + "mobile_video_series_counter": [ + "", + "%s серия", + "%s серии", + "%s серий" + ], + "video_showcase_N_subscribers": [ + "", + "%s подписчик", + "%s подписчика", + "%s подписчиков" + ], + "mobile_video_playlist_no_subscribers": "Нет подписчиков", + "mobile_video_delete_video_confirm_title": "Удаление видео", + "mobile_video_delete_video_confirm_text": "Вы действительно хотите удалить это видео из ваших видео?", + "mobile_video_delete_video_from_group_confirm_text": "Удалить это видео из сообщества?", + "mobile_video_not_interested_placeholder": "Видео этого автора будут показываться реже", + "mobile_video_not_interested_placeholder_action": "Отменить", + "video_playlist_watch_all_videos": "Смотреть все", + "video_playlist_add": "Добавить видео", + "video_edit_playlist": "Редактировать плейлист", + "video_you_subscribed_to_playlist": "Вы подписаны на плейлист", + "video_subscribe_to_playlist": "Подписаться на плейлист", + "video_copy_playlist_url": "Скопировать ссылку", + "video_delete_playlist": "Удалить плейлист", + "video_edit": "Редактировать", + "video_clip_deleted": "Клип удалён", + "video_restore": "Восстановить", + "video_remove_from_watch_later": "Удалить из «Смотреть позже»", + "video_catalog_showcase_section_my_watch_later_title": "Смотреть позже", + "video_download": "Скачать запись", + "video_move_to_playlist": "Добавить в плейлист", + "video_unpin_video_action": "Открепить видео с «Главной»", + "video_pin_video_action": "Закрепить видео на «Главной»", + "global_remove_from_bookmarks": "Убрать из закладок", + "global_add_to_bookmarks": "Сохранить в закладках", + "global_report_spam": "Пожаловаться", + "search_search_friends_in_group_and": "{first_user} и {second_user}", + "search_search_friends_in_group": [ + "", + "%s друг", + "%s друга", + "%s друзей" + ], + "search_search_government_label": "Госорганизация", + "groups_verified_header": "Верифицированное сообщество", + "groups_verified_text": "Это официальное сообщество известной персоны или организации.
Узнайте больше о новой верификации ", + "search_search_no_found_summary": "Ваш запрос не дал результатов.", + "search_show_all": "Показать все", + "search_video_author_subscribed": "Вы подписаны", + "search_video_author_subscribe": "Подписаться", + "video_add_to_my_playlist": "Добавить к себе", + "video_remove_from_my_playlist": "Убрать из добавленных", + "mobile_video_showcase_form_upload_goto_video": "Перейти", + "mobile_video_onboarding_snackbar_refresh_action": "Обновить", + "video_interactive_label_short": "Интер...", + "video_interactive_label": "Интерактив", + "profile_user_content_videos_is_privacy_locked": "Видео с ограниченной приватностью", + "profile_user_content_videos_video_is_processing": "Видео обрабатывается", + "mobile_video_live_start_soon": "Трансляция скоро начнется", + "mobile_profile_status_just_now": "только что", + "mobile_profile_status_secs_ago": [ + "", + "%s секунду назад", + "%s секунды назад", + "%s секунд назад" + ], + "mobile_profile_status_word_mins_ago": [ + "", + "минуту назад", + "две минуты назад", + "три минуты назад", + "4 минуты назад", + "5 минут назад" + ], + "mobile_profile_status_mins_ago": [ + "", + "%s минуту назад", + "%s минуты назад", + "%s минут назад" + ], + "mobile_profile_status_word_hours_ago": [ + "", + "час назад", + "два часа назад", + "три часа назад", + "четыре часа назад", + "пять часов назад" + ], + "mobile_profile_status_hours_ago": [ + "", + "%s час назад", + "%s часа назад", + "%s часов назад" + ], + "video_n_time_codes": [ + "", + "%s эпизод", + "%s эпизода", + "%s эпизодов" + ], + "video_close_time_code_list": "Закрыть", + "video_playlist_reverse_tt": "Показать в обратном порядке", + "video_playlist_autoplay_disable_tt": "Отключить автовоспроизведение", + "video_playlist_autoplay_enable_tt": "Включить автовоспроизведение", + "video_playlist_size": [ + "", + "%s видео", + "%s видео", + "%s видео" + ], + "video_player_playlist_ask_to_subscribe": "Скоро здесь появятся новые видео. Подпишитесь на плейлист, чтобы не пропустить их.", + "video_player_playlist_subscribed": "Вы подписаны на плейлист", + "video_player_playlist_subscribe": "Подписаться на плейлист", + "video_search_result_title": "Результаты поиска", + "video_aria_expand_playlist": "Показать плейлист", + "video_aria_minimize_playlist": "Скрыть плейлист", + "video_remove_from_watch_later_plain_text": "Удалить из Смотреть позже", + "video_unfollow_friend_title": "Удалить из друзей", + "video_unfollow_friend_text": "Вы уверены, что хотите удалить {user} из списка друзей?", + "video_leave_closed_group_title": "Выход из закрытой группы", + "video_leave_admined_group_text": "Вы администратор сообщества. Если вы отпишитесь, то лишитесь административных прав. Отписаться?", + "video_leave_closed_group_text": "Это закрытое сообщество. Если вы отпишетесь, попасть обратно, возможно, будет непросто. Отписаться?", + "global_friend_subscribe_result_msg": "Вы подписаны Новости {user_genetive} теперь будут в вашей ленте ", + "video_view_subscribed_msg": "Вы подписаны", + "video_view_subscribe_to_author": "Подписаться", + "video_player_next_video_tt": "Следующее видео", + "video_player_prev_video_tt": "Предыдущее видео", + "video_player_close_tt": "Закрыть", + "video_player_collapse_tt": "Свернуть", + "video_album_is_private_tt": "Альбом защищен настройками приватности", + "video_add_private_playlist": "Добавить закрытый плейлист", + "video_create_new_playlist_btn": "Создать плейлист", + "video_only_private_video": "Данное видео можно добавить только в закрытый альбом", + "video_added_to_my_playlist": "Добавлено", + "video_add_to_group": "Добавить в сообщество", + "video_are_you_sure_close_title": "Закрыть видео", + "video_are_you_sure_close": "Вы уверены, что хотите закрыть видеозапись?", + "video_show_previous_comments": [ + "", + "Показать предыдущие %s комментарий", + "Показать предыдущие %s комментария", + "Показать предыдущие %s комментариев" + ], + "video_are_you_sure_stop_streaming_title": "Завершить трансляцию", + "video_are_you_sure_stop_streaming": "Вы уверены, что хотите завершить трансляцию?", + "video_live_finished": "Трансляция завершилась", + "video_live_display_screen_ended_title": "Трансляция завершена", + "video_live_ended_deleted": "Трансляция была завершена и удалена", + "search_nothing_found": "Ничего не найдено", + "video_add_to_playlist_added": "Видео добавлено в альбом", + "video_add_to_playlist_error": "Видео уже есть в альбоме", + "video_collapse_extended_description": "Свернуть", + "video_view_expand_description": "Показать полностью...", + "video_upcoming_live_title_info": "Трансляция начнётся", + "video_edit_desc": "Редактировать описание", + "video_edit_desc_intro": "Введите описание", + "video_erid_copied": "ERID скопирован", + "video_deleted_from_section": "Видео удалено из раздела", + "video_added_to_section": "Видео добавлено в раздел", + "global_open_section": "Открыть раздел", + "video_goods_in_frame": "Товары в кадре", + "video_goods_recognition_in_progress": "Идёт поиск товаров на выбранном кадре, не закрывайте этот раздел", + "video_goods_recognition_empty_result": "Не удалось найти похожие товары.
Попробуйте выбрать другой кадр.", + "video_goods_recognition_try_again": "Попробовать снова", + "video_goods_recognition_order": "Товар {order}", + "reports_report_form_after_submit_action_bl_perform": "Добавить автора в чёрный список", + "reports_report_form_after_submit_action_bl_performed": "Автор добавлен в чёрный список", + "reports_report_form_after_submit_action_hff_perform": "Скрыть записи автора из ленты", + "reports_report_form_after_submit_action_hff_performed": "Записи автора скрыты из ленты", + "reports_report_form_not_internal_link": "Укажите внутреннюю ссылку ВКонтакте", + "reports_report_form_not_post_link": "Укажите ссылку на запись", + "reports_form_send_report": "Отправить жалобу", + "reports_report_form_input_a_link": "Вставьте ссылку", + "reports_report_form_comment": "Комментарий", + "reports_report_form_comment_is_not_necessary": "необязательно", + "reports_report_form_additional_actions": "Дополнительно", + "reports_report_form_thank_you": "Ваша жалоба получена", + "reports_report_form_submit_result": "Модераторы рассмотрят её и обязательно примут меры, если найдут нарушения правил ВКонтакте ", + "reports_report_silent_mode_title": "Оградите себя
от непрошеного внимания", + "reports_report_silent_mode_description": "Режим «Личное пространство» на неделю укроет вас от общения с незнакомцами", + "reports_report_silent_mode_button": "Подробнее", + "reports_report_form_advice_additional_action_cancel": "Отмена", + "reports_report_form_header": "Пожаловаться", + "reports_report_form_get_back": "Вернуться назад", + "reports_report_form_error": "Произошла ошибка. Попробуйте подать жалобу заново.", + "reports_report_form_advice_submit_result": "Модераторы рассмотрят её и обязательно примут меры, если найдут нарушения правил ВКонтакте ", + "reports_report_form_advice_header": "Используйте жалобы на контент", + "reports_report_form_advice_description": "Вы можете пожаловаться не на профиль, а на сообщение, комментарий, фото и другой контент — такие жалобы обычно рассматриваются за несколько минут", + "stories_show_hashtag_link": "Поиск по хештегу", + "stories_go_to_place": "Перейти к месту", + "stories_market_access_error_title": "Ошибка", + "stories_market_access_error_text": "Данный товар недоступен", + "stories_go_to_market_item": "Подробнее", + "stories_go_to_post": "Перейти к записи", + "videoplayer_tooltip_restart": "Начать заново", + "videoplayer_tooltip_interactive_seek": "Перейти к интерактиву", + "videoplayer_tooltip_interactive_graph_off": "Показать карту сюжета", + "videoplayer_tooltip_button_disabled": "Кнопка недоступна", + "videoplayer_tooltip_disabled_when_graph_on": "Кнопка недоступна во время просмотра карты", + "videoplayer_tooltip_disabled_when_interactive": "Интерактив уже идёт", + "videoplayer_tooltip_interactive_graph_on": "Скрыть карту сюжета", + "videoplayer_interactive_replay_modal_body": "Все принятые вами решения будут сброшены, а видео включится с самого начала", + "videoplayer_tooltip_interactive_choice": "Сделайте выбор, чтобы продолжить", + "video_mute_popup_title": "Звук в этом видео недоступен", + "video_mute_popup_text": "Так решил музыкант или его представитель", + "video_mute_popup_button_text": "Узнать больше", + "videoplayer_tooltip_episode_unfinished": "Не пройдено", + "videoplayer_tooltip_episode_finished": "Вы уже сделали свой выбор", + "video_sort_dd_by_default": "по умолчанию", + "video_sort_dd_by_popularity": "по популярности", + "video_sort_dd_newest": "самые новые", + "video_sort_dd_oldest": "самые старые", + "video_sort_dd_shortest": "cначала короткие", + "video_sort_dd_longest": "cначала длинные", + "video_comments_review": "Обзор комментариев", + "video_search_order": "Сортировка", + "video_no_albums_placeholder_text": "Здесь пока нет альбомов", + "video_no_videos_here_yet": "Здесь пока нет видео", + "video_hd_checkbox": "Высокое качество", + "video_filter_no_safe": "Без ограничений", + "video_filter_live": "Только трансляции", + "video_title_search": "{q} - VK Видео", + "video_not_found_group": "По запросу {searchText}
в этом сообществе не найдено ни одного видео", + "video_not_found_user": "По запросу {searchText}
у этого пользователя не найдено ни одного видео", + "video_not_found_yours": "По запросу {searchText}
у вас не найдено ни одного видео", + "video_not_found_in_album": "По запросу {searchText}
в этом альбоме не найдено ни одного видео", + "video_not_found_globally": "По запросу {searchText}
не найдено ни одного видео", + "video_found_albums_community": [ + "", + "Найден %s альбом сообщества", + "Найдено %s альбома сообщества", + "Найдено %s альбомов сообщества" + ], + "video_found_albums_yours": [ + "", + "Найден %s ваш альбом", + "Найдено %s ваших альбомов", + "Найдены %s ваших альбомов" + ], + "video_found_albums_of": [ + "", + "Найден %s альбом {user}", + "Найдено %s альбома {user}", + "Найдено %s альбомов {user}" + ], + "video_found_videos_in_album": [ + "", + "Найдена %s видеозапись в этом альбоме", + "Найдено %s видеозаписи в этом альбоме", + "Найдено %s видеозаписей в этом альбоме" + ], + "video_found_videos_community": [ + "", + "Найдена %s видеозапись сообщества", + "Найдено %s видеозаписи сообщества", + "Найдено %s видеозаписей сообщества" + ], + "video_found_videos_yours": [ + "", + "Найдена %s ваша видеозапись", + "Найдены %s ваши видеозаписи", + "Найдено %s ваших видеозаписей" + ], + "video_found_videos_of": [ + "", + "Найдена %s видеозапись {user}", + "Найдено %s видеозаписи {user}", + "Найдено %s видеозаписей {user}" + ], + "video_found_videos": "Все видео", + "video_found_videos_global": [ + "", + "Найдена %s видеозапись", + "Найдено %s видеозаписи", + "Найдено %s видеозаписей" + ], + "video_search_playlists": "Все плейлисты", + "video_search_promo_playlists": "Сериалы и телешоу", + "video_show_more": "Показать ещё", + "video_show_more_playlists": [ + "", + "Показать ещё %s плейлист", + "Показать ещё %s плейлиста", + "Показать ещё %s плейлистов" + ], + "video_catalog_showcase_section_my_video_added_title": "Добавленные видео", + "video_choose_box_back_to_videos": "Вернуться назад", + "video_choose_wall_to_group_videos": "К видеозаписям сообщества", + "video_choose_wall_to_my_videos": "К моим видеозаписям", + "video_add_videos": [ + "", + "Добавить %s видеозапись", + "Добавить %s видеозаписи", + "Добавить %s видеозаписей" + ], + "global_attach_videos": [ + "", + "Прикрепить %s видеозапись", + "Прикрепить %s видеозаписи", + "Прикрепить %s видеозаписей" + ], + "video_publish_on_wall_date_info_keep_date_btn": "Оставить текущее", + "video_publish_on_wall_date_info_change_date_btn": "Изменить", + "video_please_sign_in": "Пожалуйста, войдите или {link}зарегистрируйтесь{/link}, чтобы просмотреть эту видеозапись.", + "video_playlist_created_notification": "Плейлист создан", + "video_open_new_playlist": "Открыть", + "video_create_new_playlist": "Создать", + "video_show_all_short": "Все", + "video_playlist_available_to_all_tooltip": "Виден всем пользователям", + "video_playlist_private_tooltip": "Виден только вам", + "video_playlist_modal_header": "Выберите куда сохранить", + "video_my_added_videos_playlist": "Добавленные", + "video_playlists": "Плейлисты", + "video_add_video_to_new_playlist": "Новый плейлист", + "video_added_to_watch_later": "Добавлено в раздел «Смотреть позже»", + "fave_video_added": "Видео сохранено в {link}закладках{/link}", + "video_deleted_from_my_watch_later": "Удалено из раздела «Смотреть позже»", + "video_deleted_from_my_bookmarks": "Видео удалено из закладок", + "video_playlist_name_deleted": "Плейлист {name} удалён", + "video_you_unsubscribed_from_playlist": "Вы отписались от плейлиста", + "video_deleted_from_playlist": "Видео удалено из плейлиста", + "video_pin_video_snackbar": "Видео закреплено на «Главной»", + "video_unpin_video_snackbar": "Видео откреплено", + "video_added_to_playlist": "Видео добавлено в плейлист", + "video_playlist_url_copied": "Ссылка на плейлист скопирована", + "video_copied_to_clipboard": "Ссылка на видео скопирована", + "video_download_video_from_modal": "Скачать", + "video_copy_video_link": "Скопировать ссылку", + "video_export_action": "Экспортировать", + "video_share_with_friends": "Поделиться", + "video_delete_from_playlist": "Удалить из плейлиста", + "video_delete_button": "Удалить", + "video_modal_claimed_block_header": "Информация ниже показывается только сотрудникам", + "video_not_licensed_short": "Это видео изъято из публичного доступа", + "video_share": "Поделиться", + "video_card_added_button_label": "Добавлено", + "video_add_to_your_videos": "К себе", + "video_add_to_forbidden_registry": "Добавить запр. контент", + "reports_gb": "Гео-блокировка контента", + "video_add_to_public": "Вернуть в публичный доступ", + "video_delete_from_public": "Изъять из доступа", + "video_statistics": "Статистика", + "video_more_button_in_video_modal": "Ещё", + "video_clip_ord_advertiser_info": "О рекламодателе", + "video_show_full_video_description": "Показать полностью", + "video_moderation_snackbar_copied": "Скопировано", + "video_moderation_info_copy": "Скопировать", + "video_modal_explicit_tooltip": "Содержит ненормативный контент", + "global_by": "от ", + "video_layer_archival_content_hint": "Контент создан до 1 сентября 2022 года", + "video_layer_archival_content": "Архивный контент", + "video_N_position_in_trends_tab": [ + "", + "#%s на вкладке «Тренды»", + "#%s на вкладке «Тренды»", + "#%s на вкладке «Тренды»" + ], + "video_layer_ord_hint": "Автор разместил рекламу самостоятельно: она не проходила модерацию ВКонтакте", + "video_ord_title": "Реклама от автора", + "video_modal_recommendations": "Рекомендации для вас", + "video_modal_subscribe_to_author_snackbar": "Вы подписались", + "video_modal_unsubscribe_to_author_snackbar": "Вы отписались", + "video_live_info_modal_title": "Состояние трансляции", + "video_live_info_modal_update_time": "Обновляется каждые 30 сек", + "video_live_info_modal_bitrate_title": "Битрейт", + "video_bitrate_units": [ + "", + "%s кбит/с", + "%s кбит/с", + "%s кбит/с" + ], + "video_live_info_modal_warning_text": "Проверьте соединение с интернетом или перезапустите программу для стриминга. Убедитесь, что технические характеристики трансляции соответствуют требованиям. {link}Требования к трансляции{/link}", + "video_live_info_modal_data_for_the_last_time_period": "Данные за последние 10 минут", + "video_live_info_modal_fps_title": "Кадры в секунду", + "video_fps_units": [ + "", + "%s кадр/с", + "%s кадр/с", + "%s кадр/с" + ], + "video_live_info_status_label_too_low": "Слишком мало", + "video_live_info_status_label_low": "Допустимо", + "video_live_info_status_label_too_much": "Слишком много", + "video_live_info_status_label_good": "Отлично", + "friends_cancel_event_invite": "Отменить приглашение", + "friends_send_event_invite": "Выслать приглашение", + "groups_notifications_on": "Включить уведомления", + "groups_notifications_set_up": "Увед. включены", + "groups_hidden_members_message_box_title": "Подписчики скрыты", + "groups_hidden_members_message_box_content": "Руководители сообщества скрыли список подписчиков", + "groups_delete_cover_confirm_new": "Вы уверены, что хотите удалить обложку?", + "groups_delete_cover_confirm": "Вы уверены, что хотите удалить обложку?

После этого сообщество будет отображаться в классическом виде с фотографией справа.", + "groups_delete_cover_title": "Удаление обложки", + "wall_doc_added_short": "Добавлено", + "wall_doc_add_short": "Добавить", + "photos_restriction_button_watch": "Смотреть", + "global_share_link_failed": "Пожалуйста, укажите ссылку или номер телефона.
", + "groups_donut_snippet_link_title": "Сообщество с VK Donut", + "wall_online_booking_title": "Онлайн-запись", + "global_article": "Статья", + "global_audio_playlist": "Плейлист", + "audio_listen_snippet": "Слушать", + "global_artist": "Музыкант", + "global_curator": "Куратор", + "global_type_narrative": "Сюжет", + "wall_edit_album_description": [ + "", + "Альбом · %s снимок", + "Альбом · %s снимка", + "Альбом · %s снимков" + ], + "wall_market_album_compact_description": "Товары · {group_name}", + "audio_podcast_attach_media": "Подкаст", + "events_media_type": "Мероприятие", + "groups_media_type_community": "Сообщество", + "wall_send": "Отправить", + "wall_publish_suggest": "Опубликовать", + "classifieds_post_edit_product_snippet_title": "Объявление", + "wall_post_copyright_edit_button": "Изменить источник", + "wall_post_copyright_add_button": "Указать источник", + "wall_post_copyright_source_text": "Источник", + "wall_post_copyright_mb_title_text_edit": "Редактирование источника", + "wall_post_copyright_mb_title_text": "Добавление источника", + "global_link_choose_own_photo": "Выбрать фотографию", + "global_link_choose_own_video": "Выбрать видео", + "global_link_remove_photo": "Убрать иллюстрацию", + "global_link_edit_title": "Редактировать заголовок", + "global_link_edit_desc": "Редактировать описание", + "global_link_edit_url": "Редактировать URL-адрес", + "marketitemreview_main_block_review_text": [ + "", + "%s отзыв", + "%s отзыва", + "%s отзывов" + ], + "global_share_button_remove_tooltip": "Убрать кнопку", + "apps_snippet_game": "Игра", + "apps_snippet_mini_app": "Мини-приложение", + "global_link_invalid_url": "Некорректный формат ссылки", + "global_share_button_text_tooltip": "Название кнопки можно изменить", + "wall_post_timer_reset": "Сбросить", + "wall_publication_now": "Сейчас", + "wall_best_friends_only": "Для близких друзей", + "awards_private_text": "Видно только автору", + "awards_senders_count": [ + "", + "{count} отправитель", + "{count} отправителя", + "{count} отправителей" + ], + "awards_back_button": "Вернуться назад", + "awards_my_badges": "Мои значки", + "awards_group_block_header": "Значки сообщества", + "awards_profile_block_header": "Значки", + "awards_group_block_unknown_error": "Неизвестная ошибка", + "groups_have_donuts_total": [ + "", + "Отправили %s донат", + "Отправили %s доната", + "Отправили %s донатов" + ], + "groups_wkview_donuts_total": [ + "", + "%s донат", + "%s доната", + "%s донатов" + ], + "awards_have_gifted_badges_total": [ + "", + "Подарили %s значок", + "Подарили %s значка", + "Подарили %s значков" + ], + "awards_wkview_badges_total": [ + "", + "%s значок", + "%s значка", + "%s значков" + ], + "awards_restricted_tittle": "Этому автору значки недоступны", + "awards_restricted_subheader": "Порадуйте его в другой раз! А пока попробуйте отправить значок кому-то ещё.", + "awards_restricted_button": "Буду ждать!", + "awards_not_available_tittle": "Значки пока доступны не всем", + "awards_not_available_subheader": "Подождите немного, пока появится возможность отправлять и получать значки", + "awards_not_available_button": "Хорошо", + "reactions_button_unset_reaction_title": "Убрать реакцию «{reaction_name}»", + "reactions_button_set_reaction_with_name": "Отправить реакцию «{reaction_name}»", + "reactions_button_title": "Отправить реакцию", + "reactions_n_reacted": [ + "", + "Оценил %s человек", + "Оценили %s человека", + "Оценили %s человек" + ], + "wall_unfix_post": "Открепить", + "wall_fix_post": "Закрепить", + "wall_delete_suggested_box": "Вы уверены, что хотите удалить все ранее предложенные новости? После удаления их будет невозможно восстановить.", + "wall_delete_suggested_btn": "Удалить все ранее предложенные новости", + "wall_publish_postponed_confirm": "Вы действительно хотите опубликовать отложенную запись прямо сейчас?", + "wall_publish_postponed_btn": "Опубликовать", + "wall_publish_donut_as_free_confirmation_warn": "К записи прикреплены платные вложения. Если открыть запись для всех, вложения тоже станут доступны всем.", + "wall_publish_donut_as_free_confirmation_title": "Подтверждение", + "wall_publish_donut_as_free_confirmation_confirm": "Вы действительно хотите сделать эту запись доступной всем пользователям?", + "wall_publish_donut_as_free_confirmation_btn": "Да", + "global_recommended_exceeded": [ + "", + "Рекомендуемый объем превышен на %s знак.", + "Рекомендуемый объем превышен на %s знака.", + "Рекомендуемый объем превышен на %s знаков." + ], + "global_recommended_lines": [ + "", + "Рекомендуемый объем превышен на %s строку.", + "Рекомендуемый объем превышен на %s строки.", + "Рекомендуемый объем превышен на %s строк." + ], + "profile_mention_start_typing": "Начните вводить имя друга или название сообщества", + "profile_mention_not_found": "Страница не найдена", + "wall_choose_best_friends": "Выбрать близких друзей", + "wall_best_friends_settings_box_conversation_friends_count": [ + "", + "%s друг", + "%s друга", + "%s друзей" + ], + "wall_check_sign_disabled": "Подпись останется при редактировании записи", + "wall_check_sign_enabled": "Подпись будет скрыта при редактировании записи", + "global_share_too_many_attachments": "В рекламных записях с кнопкой не допускается использование вложений.", + "global_ads_post_too_many_newlines": "В рекламных записях с кнопкой допускается не более четырех переносов строк.", + "global_ads_post_too_long_message": "В рекламных записях с кнопкой длина сообщения не может превышать 2000 символов.", + "global_share_too_many_links": "В рекламной записи с кнопкой может быть не более одной ссылки.", + "global_share_title_required": "Укажите заголовок для ссылки.", + "global_share_url_required": "Введите корректный url", + "global_share_image_required": "Выберите иллюстрацию к ссылке.", + "wall_publish_donut_freeing_attaches_confirmation_title": "К записи прикреплены платные вложения. Когда запись откроется для всех через указанный период времени, вложения тоже станут доступны всем.", + "wall_next_n_replies": [ + "", + "Показать следующий комментарий", + "Показать следующие комментарии", + "Показать следующие комментарии" + ], + "wall_prev_n_replies": [ + "", + "Показать предыдущий комментарий", + "Показать предыдущие комментарии", + "Показать предыдущие комментарии" + ], + "wall_reply_add_attach_label": "Добавить вложение", + "global_reply_to": "ответ {user}", + "wall_reply_submit_settings": "Настройки отправки", + "wall_reply_submit_settings_1": "Enter — отправка сообщения
Shift+Enter — перенос строки", + "wall_reply_submit_settings_2": "Ctrl+Enter — отправка сообщения
Enter — перенос строки", + "wall_replied_to_group": "Сообществу", + "reports_warning_sent": "Ваша жалоба отправлена и будет рассмотрена в ближайшее время.", + "global_X_post_views": [ + "", + "просмотр", + "просмотра", + "просмотров" + ], + "global_X_shared": [ + "", + "поделился", + "поделились", + "поделились" + ], + "voting_x_voted_short": [ + "", + "%s человек", + "%s человека", + "%s человек" + ], + "voting_x_voted": [ + "", + "Проголосовал %s человек", + "Проголосовали %s человека", + "Проголосовали %s человек" + ], + "wall_my_friends_only": "Эта запись видна только вашим друзьям", + "profile_status_word_secs_ago": [ + "", + "только что", + "две секунды назад", + "три секунды назад", + "четыре секунды назад", + "пять секунд назад" + ], + "wall_post_privacy_friends": "для друзей", + "news_x_new_replies_more": [ + "", + "Добавлен %s новый комментарий", + "Добавлено %s новых комментария", + "Добавлено %s новых комментариев" + ], + "wall_show_n_last_replies": [ + "", + "Показать последний %s комментарий", + "Показать последние %s комментария", + "Показать последние %s комментариев" + ], + "wall_show_all_n_replies": [ + "", + "Показать %s комментарий", + "Показать все %s комментария", + "Показать все %s комментариев" + ], + "wall_hide_replies": "Скрыть комментарии", + "wall_preview_link": "Посмотреть", + "wall_x_new_replies_more": [ + "", + "Добавлен %s новый комментарий", + "Добавлено %s новых комментария", + "Добавлено %s новых комментариев" + ], + "wall_reply_as_group": "от имени сообщества", + "wall_reply_as_user": "от имени пользователя", + "global_on_behalf_group": "От имени сообщества", + "global_on_behalf_me": "От своего имени", + "global_search": "Поиск", + "wall_post_copyright_feature_text": "Теперь можно указать источник вашей записи", + "intro_hint_description_online_booking_attach_add_web": "Теперь вы можете добавить кнопку онлайн‑записи на ваши услуги", + "intro_hint_title_posting_editor_ord_ad": "Если размещаете рекламу,
добавьте отметку о ней.
Этого требует закон РФ.", + "wall_new_posters_new_year": "Поделитесь с друзьями праздничным настроением с новыми постерами!", + "global_replied_to_reply_count": [ + "", + "%s ответ", + "%s ответа", + "%s ответов" + ], + "events_snippet_will_participate_active": "Вы пойдёте", + "events_snippet_cant_participate_active": "Вы не пойдёте", + "profile_hashtag_start_typing": "Начните вводить хештег", + "profile_hashtag_not_found": "Хештег не найден", + "wall_post_text_show_more": "Показать ещё", + "purchases_stickers_purchase_result_pack_and_styles": [ + "", + "Добавлен набор стикеров «{pack_title}» и {n} стиль", + "Добавлен набор стикеров «{pack_title}» и {n} стиля", + "Добавлен набор стикеров «{pack_title}» и {n} стилей" + ], + "purchases_stickers_purchase_result_pack": "Добавлен набор стикеров «{title}»", + "purchases_stickers_purchase_result_1_style": "Добавлен стиль «{title}»", + "purchases_stickers_purchase_result_2_styles": "Добавлены стили «{title1}» и «{title2}»", + "purchases_stickers_purchase_result_3_styles": "Добавлены стили «{title1}», «{title2}» и «{title3}»", + "purchases_stickers_purchase_result_3_styles_and_1_more": "Добавлены стили «{title1}», «{title2}», «{title3}» и ещё один", + "purchases_stickers_purchase_result_3_styles_and_n_more": [ + "", + "Добавлены стили «{title1}», «{title2}», «{title3}» и ещё {n} другой", + "Добавлены стили «{title1}», «{title2}», «{title3}» и ещё {n} других", + "Добавлены стили «{title1}», «{title2}», «{title3}» и ещё {n} других" + ], + "stories_narrative_block_onboarding_text": "Здесь находятся ваши сюжеты", + "group_leave_group": "Отписаться", + "profile_convert_to_article_short": "Продолжить в редакторе", + "global_share_too_many_newlines": "В рекламных записях с кнопкой допускается не более двух переносов строк.", + "global_share_too_long_message": "В рекламных записях с кнопкой длина сообщения не может превышать 220 символов.", + "wall_add_photo_error": "Не удалось загрузить изображение", + "awards_price_label": "Стоимость:", + "awards_price": [ + "", + "%s голос", + "%s голоса", + "%s голосов" + ], + "awards_price_free": "Бесплатно", + "awards_balance": [ + "", + "Ваш баланс: %s голос", + "Ваш баланс: %s голоса", + "Ваш баланс: %s голосов" + ], + "awards_confirmation_message_sum": [ + "", + "С вашего счёта будет списан %s голос.", + "С вашего счёта будет списано %s голоса.", + "С вашего счёта будет списано %s голосов." + ], + "awards_confirmation_message_free": "Это бесплатный значок. Голоса за него не списываются.", + "awards_receiver_only": "Показывать моё имя только автору", + "awards_need_comment": "Рассказать о значке в комментарии", + "awards_disable_comments_post": "Вы не можете прикрепить значок в комментариях, так как автор ограничил комментирование записи", + "awards_pay_free": "Отправить", + "awards_pay": "Оплатить", + "groups_one_time_donut_modal_header": "Оплата", + "global_update_photo_error_too_small": "Фотография должна иметь размер не менее {width} точек в ширину и не менее {height} точек в высоту.", + "reports_strikes_avatar_upload_error": "В сообществе {name} действуют ограничения из‑за нарушений правил ВКонтакте. Действие вновь станет доступным {day} {month} {year} в {hour}:{minute}. {link}Подробнее{/link}", + "awards_not_available": "Недоступно", + "awards_limit_no_longer_available": "Недоступно", + "awards_free_limit": "{limit} бесплатно", + "awards_choice_stub_title": "Выберите значок для записи", + "awards_choice_stub_subtitle": "Отправьте денежное вознаграждение или значок, автору будет приятно", + "awards_catalog_modal_title": "Выберите значок для записи {name}", + "awards_buy_for": [ + "", + "Отправить за %s голос", + "Отправить за %s голоса", + "Отправить за %s голосов" + ], + "awards_buy_free": "Отправить бесплатно", + "awards_item_info_tab_donut": "Донаты", + "awards_item_info_tab_all": "Все", + "awards_item_info_tab_friends": "Друзья", + "awards_sand_success": "Вы подарили значок «{badge_name}»", + "groups_one_time_donut_choose_summ": "Выбрать сумму", + "awards_catalog_button": "Открыть магазин значков", + "awards_free_limit_info": [ + "", + "Доступно бесплатно: {count} значок", + "Доступно бесплатно: {count} значка", + "Доступно бесплатно: {count} значков" + ], + "awards_choose_donut_amount": "Выбрать сумму", + "awards_choose_award": "Выбрать другой значок", + "awards_object_info_no_longer_available": "Значок больше недоступен", + "awards_web_badge_learn_more": "Узнать больше", + "me_attach_picker_add_mini_apps_action": "Добавить", + "me_attach_picker_add_mini_apps_box_title": "Добавление сервиса ", + "me_attach_picker_add_games_box_title": "Добавление игры ", + "me_attach_picker_add_mini_apps_send_widget": "Добавить в чат", + "me_attach_picker_add_mini_apps_from_app": "Добавить из сервиса", + "me_attach_picker_add_mini_apps_cancel_action": "Отмена", + "me_onboarding_add_app_banner_services_title": "Сервисы в чатах", + "me_onboarding_add_app_banner_games_title": "Игры в чатах", + "me_onboarding_add_app_banner_services_subtitle_web": "Соревнуйтесь с друзьями, предсказывайте им будущее и многое другое", + "me_onboarding_add_app_banner_games_subtitle_web": "Бросайте вызов друзьями и соревнуйтесь с ними в режимах дуэли или турнира. Вместе веселее!", + "me_onboarding_add_app_banner_confirm_button": "Хорошо", + "me_snackbar_fail_title": "Что-то пошло не так", + "me_snackbar_fail_subtitle": "Попробуйте ещё раз", + "me_add_app_action_attach_to_chats_title": "Добавить в чат сервис
«{action_title}»? ", + "awards_donut_block_separator": "или", + "awards_donut_block_badge_offer_title": "Прикрепить другой значок", + "awards_donut_block_badge_offer_subtitle": "Запись станет заметнее, автору будет приятно", + "vkui_one_time_donut_custom_sum": "Своя сумма", + "vkui_one_time_donut_min_amount": "Сумма от {amount_min} ₽ до {amount_max} ₽. Как это работает ", + "groups_donut_form_title": "Выберите сумму", + "vkui_one_time_donut_title_2": "Поддержите автора", + "vkui_one_time_donut_subhead": "Автор получит ваше вознаграждение", + "awards_donut_form_payment_canceled_title": "Оплата не завершена", + "awards_donut_form_payment_canceled_text": "Возможно, произошла ошибка или платёж был отменён.", + "awards_donut_form_min_price_label": "Сумма", + "vkui_one_time_donut_comment_warning": "Недружелюбный комментарий может быть удалён алгоритмами. Донат при этом останется в списке донатов.", + "awards_donut_form_share_checkbox_label": "Поделиться в комментарии", + "vkui_one_time_donut_comment_placeholder": "Введите текст комментария", + "groups_donut_form_agreement": "Нажимая кнопку «Далее», вы соглашаетесь с условиями переводов при использовании сервиса «Донат» ", + "groups_donut_form_submit": "Далее", + "awards_one_time_donut_result_wait_success_title": "Ожидание оплаты", + "awards_one_time_donut_result_wait_success_text": "Ваш платёж обрабатывается с задержкой ", + "awards_one_time_donut_result_waiting_title": "Ожидание оплаты", + "awards_one_time_donut_result_waiting_text": "Оплата завершится в течение нескольких секунд", + "awards_one_time_donut_result_unknown_error_title": "Оплата не завершена", + "awards_one_time_donut_result_unknown_error_text": "Произошла ошибка или платёж был отменён", + "video_clips_not_interested_success": "Похожие клипы будут отображаться реже" + } + } + }` diff --git a/internal/vk/vk.go b/internal/vk/vk.go new file mode 100644 index 0000000..8919f11 --- /dev/null +++ b/internal/vk/vk.go @@ -0,0 +1,90 @@ +package vk + +import ( + "context" + "fmt" + "log/slog" + + "github.com/SevereCloud/vksdk/v2/api" + "github.com/SevereCloud/vksdk/v2/events" + "github.com/SevereCloud/vksdk/v2/longpoll-bot" +) + +type VK struct { + api *api.VK + lp *longpoll.LongPoll +} + +func New(logger *slog.Logger, api_key string, video_links chan string) (*VK, error) { + const op = "vk.New" + + vk := api.NewVK(api_key) + + // get information about the group + group, err := vk.GroupsGetByID(nil) + if err != nil { + return nil, fmt.Errorf("cannot get group info: %s: %w", op, err) + } + + // Initializing Long Poll + lp, err := longpoll.NewLongPoll(vk, group[0].ID) + if err != nil { + return nil, fmt.Errorf("%s: %w", op, err) + } + // New message event + lp.MessageNew(func(_ context.Context, obj events.MessageNewObject) { + logger.Info("Message", "peer", obj.Message.PeerID, "text", obj.Message.Text) + for _, obj := range obj.Message.Attachments { + objectsw: + switch obj.Type { + case "story": + // fmt.Printf("Story %+v\n", obj.Story.Video.Files) + // get video link from struct + var videolink string + switch { + case obj.Story.Video.Files.Mp4_720 != "": + videolink = obj.Story.Video.Files.Mp4_720 + case obj.Story.Video.Files.Mp4_480 != "": + videolink = obj.Story.Video.Files.Mp4_480 + case obj.Story.Video.Files.Mp4_360 != "": + videolink = obj.Story.Video.Files.Mp4_360 + case obj.Story.Video.Files.Mp4_240 != "": + videolink = obj.Story.Video.Files.Mp4_240 + default: + logger.Error("cannot find video link") + break objectsw + } + // fmt.Println("Story:", videolink) + if err != nil { + logger.Error("vk error", "err", err) + } + // send video to tg + video_links <- videolink + case "video": + // logger.Info("Video", "owner", obj.Video.OwnerID, "id", obj.Video.ID) + owner := obj.Video.OwnerID + video_id := obj.Video.ID + videolink, err := fetchVideoURL(owner, video_id) + if err != nil { + logger.Error("cannot get video link", "err", err) + } + video_links <- videolink + default: + logger.Debug("Message type not found", "type", obj.Type, "obj", fmt.Sprintf("%+v", obj)) + } + } + }) + + return &VK{ + api: vk, + lp: lp, + }, nil +} + +// Run starts message listening. +func (vk *VK) MustRun() { + // Run Bots Long Poll + if err := vk.lp.Run(); err != nil { + panic(err) + } +} diff --git a/main.go b/main.go deleted file mode 100644 index 98a55b7..0000000 --- a/main.go +++ /dev/null @@ -1,169 +0,0 @@ -package main - -import ( - "context" - "errors" - "fmt" - "log" - "os" - "runtime" - "strconv" - "strings" - - "github.com/SevereCloud/vksdk/v2/api" - "github.com/SevereCloud/vksdk/v2/events" - "github.com/SevereCloud/vksdk/v2/longpoll-bot" - - "github.com/s32x/httpclient" - - tgbotapi "github.com/go-telegram-bot-api/telegram-bot-api/v5" -) - -var video_links chan (string) - -const PCUserAgent string = "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36" -const MobileUserAgent string = "Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Mobile Safari/537.36" - -func main() { - // get config - mustConfigLoad() - // create chan - video_links = make(chan string, Conf.Workers*2) - // run vk - go RunVK() - // run tg - go RunTG() - // - select {} -} - -type Config struct { - Workers int - TgAPIKey string - TgChatID int64 - VkAPIKey string -} - -var Conf Config - -func mustConfigLoad() { - var err error - Conf.Workers, err = strconv.Atoi(os.Getenv("Workers")) - if err != nil { - panic(err) - } - Conf.TgAPIKey = os.Getenv("TgAPIKey") - Conf.VkAPIKey = os.Getenv("VkAPIKey") - Conf.TgChatID, err = strconv.ParseInt(os.Getenv("TgChatID"), 10, 64) - if err != nil { - panic(err) - } -} - -func RunVK() { - vk := api.NewVK(Conf.VkAPIKey) - - // get information about the group - group, err := vk.GroupsGetByID(nil) - if err != nil { - log.Fatal(err) - } - - // Initializing Long Poll - lp, err := longpoll.NewLongPoll(vk, group[0].ID) - if err != nil { - log.Fatal(err) - } - - // New message event - lp.MessageNew(func(_ context.Context, obj events.MessageNewObject) { - log.Printf("%d: %s", obj.Message.PeerID, obj.Message.Text) - - for _, obj := range obj.Message.Attachments { - objectsw: - switch obj.Type { - case "story": - // fmt.Printf("Story %+v\n", obj.Story.Video.Files) - // get video link from struct - var videolink string - switch { - case obj.Story.Video.Files.Mp4_720 != "": - videolink = obj.Story.Video.Files.Mp4_720 - case obj.Story.Video.Files.Mp4_480 != "": - videolink = obj.Story.Video.Files.Mp4_480 - case obj.Story.Video.Files.Mp4_360 != "": - videolink = obj.Story.Video.Files.Mp4_360 - case obj.Story.Video.Files.Mp4_240 != "": - videolink = obj.Story.Video.Files.Mp4_240 - default: - error_logging(errors.New("cannot find video link")) - break objectsw - } - // fmt.Println("Story:", videolink) - error_logging(err) - // send video to tg - video_links <- videolink - } - } - }) - - // Run Bots Long Poll - log.Println("[VK] Start Long Poll") - if err := lp.Run(); err != nil { - log.Fatal(err) - } -} - -func RunTG() { - bot, err := tgbotapi.NewBotAPI(Conf.TgAPIKey) - if err != nil { - log.Panic(err) - } - - bot.Debug = false - - log.Printf("[TG] Authorized on account %s", bot.Self.UserName) - - u := tgbotapi.NewUpdate(0) - u.Timeout = 60 - - for i := 0; i < Conf.Workers; i++ { - go tg_worker(i+1, bot) - } -} - -func tg_worker(id int, bot *tgbotapi.BotAPI) { - for link := range video_links { - log.Println(fmt.Sprintf("[%d]", id), "Получена ссылка, загружаю:", link) - // get video by link - var client *httpclient.Client - if strings.Contains(link, "VK_ANDROID") { - // create mobile client - client = httpclient.New().WithHeader("User-Agent", MobileUserAgent) - } else { - // create Desktop client - client = httpclient.New().WithHeader("User-Agent", PCUserAgent) - } - - resp, err := client.Get(link).Do() - error_logging(err) - body, err := resp.Bytes() - error_logging(err) - msg := tgbotapi.NewVideo(Conf.TgChatID, tgbotapi.FileBytes{Name: "story", Bytes: body}) - log.Println(fmt.Sprintf("[%d]", id), "Отправляю видео в телеграм...") - _, err = bot.Send(msg) - error_logging(err) - } -} - -// Log errors -func error_logging(err error) { - if err != nil { - pc := make([]uintptr, 10) - n := runtime.Callers(2, pc) - frames := runtime.CallersFrames(pc[:n]) - frame, _ := frames.Next() - // fmt.Printf("%s:%d %s\n", frame.File, frame.Line, frame.Function) - log.Printf("[Parser] error on %s line %d: %s", frame.Function, frame.Line, err) - } -}