committed by
GitHub
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
16 changed files with 717 additions and 565 deletions
-
9README.md
-
5config/migrate-scripts/migrate-db-3646395.sh
-
2config/sql/channel_videos.sql
-
18config/sql/nonces.sql
-
23config/sql/session_ids.sql
-
1config/sql/users.sql
-
1docker/entrypoint.postgres.sh
-
207locales/fr.json
-
564locales/ru.json
-
58src/invidious.cr
-
128src/invidious/channels.cr
-
113src/invidious/helpers/helpers.cr
-
5src/invidious/mixes.cr
-
111src/invidious/playlists.cr
-
33src/invidious/users.cr
-
4src/invidious/views/components/subscribe_widget_script.ecr
@ -0,0 +1,5 @@ |
|||
#!/bin/sh |
|||
|
|||
psql invidious < config/sql/session_ids.sql |
|||
psql invidious -c "INSERT INTO session_ids (SELECT unnest(id), email, CURRENT_TIMESTAMP FROM users) ON CONFLICT (id) DO NOTHING" |
|||
psql invidious -c "ALTER TABLE users DROP COLUMN id" |
|||
@ -0,0 +1,23 @@ |
|||
-- Table: public.session_ids |
|||
|
|||
-- DROP TABLE public.session_ids; |
|||
|
|||
CREATE TABLE public.session_ids |
|||
( |
|||
id text NOT NULL, |
|||
email text, |
|||
issued timestamp with time zone, |
|||
CONSTRAINT session_ids_pkey PRIMARY KEY (id) |
|||
); |
|||
|
|||
GRANT ALL ON TABLE public.session_ids TO kemal; |
|||
|
|||
-- Index: public.session_ids_id_idx |
|||
|
|||
-- DROP INDEX public.session_ids_id_idx; |
|||
|
|||
CREATE INDEX session_ids_id_idx |
|||
ON public.session_ids |
|||
USING btree |
|||
(id COLLATE pg_catalog."default"); |
|||
|
|||
@ -1,284 +1,284 @@ |
|||
{ |
|||
"`x` subscribers": "`x` подписчиков", |
|||
"`x` videos": "`x` видео", |
|||
"LIVE": "ПРЯМОЙ ЭФИР", |
|||
"Shared `x` ago": "Опубликовано `x` назад", |
|||
"Unsubscribe": "Отписаться", |
|||
"Subscribe": "Подписаться", |
|||
"Login to subscribe to `x`": "Войти, чтобы подписаться на `x`", |
|||
"View channel on YouTube": "Канал на YouTube", |
|||
"newest": "новые", |
|||
"oldest": "старые", |
|||
"popular": "популярные", |
|||
"Preview page": "Предварительный просмотр", |
|||
"Next page": "Следующая страница", |
|||
"Clear watch history?": "Очистить историю просмотров?", |
|||
"Yes": "Да", |
|||
"No": "Нет", |
|||
"Import and Export Data": "Импорт и экспорт данных", |
|||
"Import": "Импорт", |
|||
"Import Invidious data": "Импортировать данные Invidious", |
|||
"Import YouTube subscriptions": "Импортировать YouTube подписки", |
|||
"Import FreeTube subscriptions (.db)": "Импортировать FreeTube подписки (.db)", |
|||
"Import NewPipe subscriptions (.json)": "Импортировать NewPipe подписки (.json)", |
|||
"Import NewPipe data (.zip)": "Импортировать данные NewPipe (.zip)", |
|||
"Export": "Экспорт", |
|||
"Export subscriptions as OPML": "Экспортировать подписки в OPML", |
|||
"Export subscriptions as OPML (for NewPipe & FreeTube)": "Экспортировать подписки в OPML (для NewPipe и FreeTube)", |
|||
"Export data as JSON": "Экспортировать данные в JSON", |
|||
"Delete account?": "Удалить аккаунт?", |
|||
"History": "История", |
|||
"Previous page": "Предыдущая страница", |
|||
"An alternative front-end to YouTube": "Альтернативный фронтенд для YouTube", |
|||
"JavaScript license information": "Лицензии JavaScript", |
|||
"source": "источник", |
|||
"Login": "Войти", |
|||
"Login/Register": "Войти/Регистрация", |
|||
"Login to Google": "Войти через Google", |
|||
"User ID:": "ID пользователя:", |
|||
"Password:": "Пароль:", |
|||
"Time (h:mm:ss):": "Время (ч:мм:сс):", |
|||
"Text CAPTCHA": "Текст капчи", |
|||
"Image CAPTCHA": "Изображение капчи", |
|||
"Sign In": "Войти", |
|||
"Register": "Регистрация", |
|||
"Email:": "Эл. почта:", |
|||
"Google verification code:": "Код подтверждения Google:", |
|||
"Preferences": "Настройки", |
|||
"Player preferences": "Настройки проигрывателя", |
|||
"Always loop: ": "Всегда повторять: ", |
|||
"Autoplay: ": "Автовоспроизведение: ", |
|||
"Autoplay next video: ": "Автовоспроизведение следующего видео: ", |
|||
"Listen by default: ": "Режим \"только аудио\" по-умолчанию: ", |
|||
"Default speed: ": "Скорость по-умолчанию: ", |
|||
"Preferred video quality: ": "Предпочтительное качество видео: ", |
|||
"Player volume: ": "Громкость воспроизведения: ", |
|||
"Default comments: ": "Источник комментариев: ", |
|||
"youtube": "YouTube", |
|||
"reddit": "Reddit", |
|||
"Default captions: ": "Субтитры по-умолчанию: ", |
|||
"Fallback captions: ": "Резервные субтитры: ", |
|||
"Show related videos? ": "Показывать похожие видео? ", |
|||
"Visual preferences": "Визуальные настройки", |
|||
"Dark mode: ": "Темная тема: ", |
|||
"Thin mode: ": "Облегченный режим: ", |
|||
"Subscription preferences": "Настройки подписок", |
|||
"Redirect homepage to feed: ": "Отображать ленту вместо главной страницы: ", |
|||
"Number of videos shown in feed: ": "Число видео в ленте: ", |
|||
"Sort videos by: ": "Сортировать видео по: ", |
|||
"published": "дате публикации", |
|||
"published - reverse": "дате - обратный порядок", |
|||
"alphabetically": "алфавиту", |
|||
"alphabetically - reverse": "алфавиту - обратный порядок", |
|||
"channel name": "имени канала", |
|||
"channel name - reverse": "имени канала - обратный порядок", |
|||
"Only show latest video from channel: ": "Отображать только последние видео с каждого канала: ", |
|||
"Only show latest unwatched video from channel: ": "Отображать только непросмотренные видео с каждого канала: ", |
|||
"Only show unwatched: ": "Отображать только непросмотренные видео: ", |
|||
"Only show notifications (if there are any): ": "Отображать только оповещения (если есть): ", |
|||
"Data preferences": "Настройки данных", |
|||
"Clear watch history": "Очистить историю просмотра", |
|||
"Import/Export data": "Импорт/Экспорт данных", |
|||
"Manage subscriptions": "Управление подписками", |
|||
"Watch history": "История просмотров", |
|||
"Delete account": "Удалить аккаунт", |
|||
"Save preferences": "Сохранить настройки", |
|||
"Subscription manager": "Менеджер подписок", |
|||
"`x` subscriptions": "`x` подписок", |
|||
"Import/Export": "Импорт/Экспорт", |
|||
"unsubscribe": "отписаться", |
|||
"Subscriptions": "Подписки", |
|||
"`x` unseen notifications": "`x` новых оповещений", |
|||
"search": "поиск", |
|||
"Sign out": "Выйти", |
|||
"Released under the AGPLv3 by Omar Roth.": "Распространяется Omar Roth по AGPLv3.", |
|||
"Source available here.": "Исходный код доступен здесь.", |
|||
"Liberapay: ": "Liberapay: ", |
|||
"Patreon: ": "Patreon: ", |
|||
"BTC: ": "BTC: ", |
|||
"BCH: ": "BCH: ", |
|||
"View JavaScript license information.": "Посмотреть лицензии JavaScript кода.", |
|||
"Trending": "В тренде", |
|||
"Watch video on Youtube": "Смотреть на YouTube", |
|||
"Genre: ": "Жанр: ", |
|||
"License: ": "Лицензия: ", |
|||
"Family friendly? ": "Семейный просмотр: ", |
|||
"Wilson score: ": "Рейтинг Вильсона: ", |
|||
"Engagement: ": "Вовлеченность: ", |
|||
"Whitelisted regions: ": "Доступно для: ", |
|||
"Blacklisted regions: ": "Недоступно для: ", |
|||
"Shared `x`": "Опубликовано `x`", |
|||
"Hi! Looks like you have JavaScript disabled. Click here to view comments, keep in mind it may take a bit longer to load.": "Похоже, что у Вас отключен JavaScript. Нажмите сюда, чтобы увидеть комментарии (учтите, что они могут загружаться дольше).", |
|||
"View YouTube comments": "Смотреть комментарии с YouTube", |
|||
"View more comments on Reddit": "Больше комментариев на Reddit", |
|||
"View `x` comments": "Показать `x` комментариев", |
|||
"View Reddit comments": "Смотреть комментарии с Reddit", |
|||
"Hide replies": "Скрыть ответы", |
|||
"Show replies": "Показать ответы", |
|||
"Incorrect password": "Неправильный пароль", |
|||
"Quota exceeded, try again in a few hours": "Превышена квота, попробуйте снова через несколько часов", |
|||
"Unable to login, make sure two-factor authentication (Authenticator or SMS) is enabled.": "Вход не выполнен, проверьте, не включена ли двухфакторная аутентификация.", |
|||
"Invalid TFA code": "Неправильный TFA код", |
|||
"Login failed. This may be because two-factor authentication is not enabled on your account.": "Не удалось войти. Это может быть из-за того, что в вашем аккаунте не включена двухфакторная аутентификация.", |
|||
"Invalid answer": "Неверный ответ", |
|||
"Invalid CAPTCHA": "Неверная капча", |
|||
"CAPTCHA is a required field": "Необходимо ввести капчу", |
|||
"User ID is a required field": "Необходимо ввести идентификатор пользователя", |
|||
"Password is a required field": "Необходимо ввести пароль", |
|||
"Invalid username or password": "Недопустимый пароль или имя пользователя", |
|||
"Please sign in using 'Sign in with Google'": "Пожалуйста войдите через Google", |
|||
"Password cannot be empty": "Пароль не может быть пустым", |
|||
"Password cannot be longer than 55 characters": "Пароль не может быть длиннее 55 символов", |
|||
"Please sign in": "Пожалуйста, войдите", |
|||
"Invidious Private Feed for `x`": "Приватная лента Invidious для `x`", |
|||
"channel:`x`": "канал: `x`", |
|||
"Deleted or invalid channel": "Канал удален или не найден", |
|||
"This channel does not exist.": "Такой канал не существует.", |
|||
"Could not get channel info.": "Невозможно получить информацию о канале.", |
|||
"Could not fetch comments": "Невозможно получить комментарии", |
|||
"View `x` replies": "Показать `x` ответов", |
|||
"`x` ago": "`x` назад", |
|||
"Load more": "Загрузить больше", |
|||
"`x` points": "`x` очков", |
|||
"Could not create mix.": "Невозможно создать \"микс\".", |
|||
"Playlist is empty": "Плейлист пуст", |
|||
"Invalid playlist.": "Некорректный плейлист.", |
|||
"Playlist does not exist.": "Плейлист не существует.", |
|||
"Could not pull trending pages.": "Невозможно получить страницы \"в тренде\".", |
|||
"Hidden field \"challenge\" is a required field": "Необходимо заполнить скрытое поле \"challenge\"", |
|||
"Hidden field \"token\" is a required field": "Необходимо заполнить скрытое поле \"токен\"", |
|||
"Invalid challenge": "Неправильный ответ в \"challenge\"", |
|||
"Invalid token": "Неправильный токен", |
|||
"Invalid user": "Недопустимое имя пользователя", |
|||
"Token is expired, please try again": "Срок действия токена истек, попробуйте позже", |
|||
"English": "Английский", |
|||
"English (auto-generated)": "Английский (созданы автоматически)", |
|||
"Afrikaans": "Африкаанс", |
|||
"Albanian": "Албанский", |
|||
"Amharic": "Амхарский", |
|||
"Arabic": "Арабский", |
|||
"Armenian": "Армянский", |
|||
"Azerbaijani": "Азербайджанский", |
|||
"Bangla": "", |
|||
"Basque": "", |
|||
"Belarusian": "", |
|||
"Bosnian": "", |
|||
"Bulgarian": "", |
|||
"Burmese": "", |
|||
"Catalan": "", |
|||
"Cebuano": "", |
|||
"Chinese (Simplified)": "", |
|||
"Chinese (Traditional)": "", |
|||
"Corsican": "", |
|||
"Croatian": "", |
|||
"Czech": "", |
|||
"Danish": "", |
|||
"Dutch": "", |
|||
"Esperanto": "", |
|||
"Estonian": "", |
|||
"Filipino": "", |
|||
"Finnish": "", |
|||
"French": "", |
|||
"Galician": "", |
|||
"Georgian": "", |
|||
"German": "", |
|||
"Greek": "", |
|||
"Gujarati": "", |
|||
"Haitian Creole": "", |
|||
"Hausa": "", |
|||
"Hawaiian": "", |
|||
"Hebrew": "", |
|||
"Hindi": "", |
|||
"Hmong": "", |
|||
"Hungarian": "", |
|||
"Icelandic": "", |
|||
"Igbo": "", |
|||
"Indonesian": "", |
|||
"Irish": "", |
|||
"Italian": "", |
|||
"Japanese": "", |
|||
"Javanese": "", |
|||
"Kannada": "", |
|||
"Kazakh": "", |
|||
"Khmer": "", |
|||
"Korean": "", |
|||
"Kurdish": "", |
|||
"Kyrgyz": "", |
|||
"Lao": "", |
|||
"Latin": "", |
|||
"Latvian": "", |
|||
"Lithuanian": "", |
|||
"Luxembourgish": "", |
|||
"Macedonian": "", |
|||
"Malagasy": "", |
|||
"Malay": "", |
|||
"Malayalam": "", |
|||
"Maltese": "", |
|||
"Maori": "", |
|||
"Marathi": "", |
|||
"Mongolian": "", |
|||
"Nepali": "", |
|||
"Norwegian": "", |
|||
"Nyanja": "", |
|||
"Pashto": "", |
|||
"Persian": "", |
|||
"Polish": "", |
|||
"Portuguese": "", |
|||
"Punjabi": "", |
|||
"Romanian": "", |
|||
"Russian": "", |
|||
"Samoan": "", |
|||
"Scottish Gaelic": "", |
|||
"Serbian": "", |
|||
"Shona": "", |
|||
"Sindhi": "", |
|||
"Sinhala": "", |
|||
"Slovak": "", |
|||
"Slovenian": "", |
|||
"Somali": "", |
|||
"Southern Sotho": "", |
|||
"Spanish": "", |
|||
"Spanish (Latin America)": "", |
|||
"Sundanese": "", |
|||
"Swahili": "", |
|||
"Swedish": "", |
|||
"Tajik": "", |
|||
"Tamil": "", |
|||
"Telugu": "", |
|||
"Thai": "", |
|||
"Turkish": "", |
|||
"Ukrainian": "", |
|||
"Urdu": "", |
|||
"Uzbek": "", |
|||
"Vietnamese": "", |
|||
"Welsh": "", |
|||
"Western Frisian": "", |
|||
"Xhosa": "", |
|||
"Yiddish": "", |
|||
"Yoruba": "", |
|||
"Zulu": "Зулусский", |
|||
"`x` years": "`x` лет", |
|||
"`x` months": "`x` месяцев", |
|||
"`x` weeks": "`x` недель", |
|||
"`x` days": "`x` дней", |
|||
"`x` hours": "`x` часов", |
|||
"`x` minutes": "`x` минут", |
|||
"`x` seconds": "`x` секунд", |
|||
"Fallback comments: ": "Резервные комментарии: ", |
|||
"Popular": "Популярное", |
|||
"Top": "Топ", |
|||
"About": "О сайте", |
|||
"Rating: ": "Рейтинг: ", |
|||
"Language: ": "Язык: ", |
|||
"Default": "По-умолчанию", |
|||
"Music": "Музыка", |
|||
"Gaming": "Игры", |
|||
"News": "Новости", |
|||
"Movies": "Фильмы", |
|||
"Download": "Скачать", |
|||
"Download as: ": "Скачать как: ", |
|||
"%A %B %-d, %Y": "", |
|||
"(edited)": "", |
|||
"Youtube permalink of the comment": "", |
|||
"`x` marked it with a ❤": "" |
|||
"`x` subscribers": "`x` подписчиков", |
|||
"`x` videos": "`x` видео", |
|||
"LIVE": "ПРЯМОЙ ЭФИР", |
|||
"Shared `x` ago": "Опубликовано `x` назад", |
|||
"Unsubscribe": "Отписаться", |
|||
"Subscribe": "Подписаться", |
|||
"Login to subscribe to `x`": "Войти, чтобы подписаться на `x`", |
|||
"View channel on YouTube": "Канал на YouTube", |
|||
"newest": "новые", |
|||
"oldest": "старые", |
|||
"popular": "популярные", |
|||
"Preview page": "Предварительный просмотр", |
|||
"Next page": "Следующая страница", |
|||
"Clear watch history?": "Очистить историю просмотров?", |
|||
"Yes": "Да", |
|||
"No": "Нет", |
|||
"Import and Export Data": "Импорт и экспорт данных", |
|||
"Import": "Импорт", |
|||
"Import Invidious data": "Импортировать данные Invidious", |
|||
"Import YouTube subscriptions": "Импортировать YouTube подписки", |
|||
"Import FreeTube subscriptions (.db)": "Импортировать FreeTube подписки (.db)", |
|||
"Import NewPipe subscriptions (.json)": "Импортировать NewPipe подписки (.json)", |
|||
"Import NewPipe data (.zip)": "Импортировать данные NewPipe (.zip)", |
|||
"Export": "Экспорт", |
|||
"Export subscriptions as OPML": "Экспортировать подписки в OPML", |
|||
"Export subscriptions as OPML (for NewPipe & FreeTube)": "Экспортировать подписки в OPML (для NewPipe и FreeTube)", |
|||
"Export data as JSON": "Экспортировать данные в JSON", |
|||
"Delete account?": "Удалить аккаунт?", |
|||
"History": "История", |
|||
"Previous page": "Предыдущая страница", |
|||
"An alternative front-end to YouTube": "Альтернативный фронтенд для YouTube", |
|||
"JavaScript license information": "Лицензии JavaScript", |
|||
"source": "источник", |
|||
"Login": "Войти", |
|||
"Login/Register": "Войти/Регистрация", |
|||
"Login to Google": "Войти через Google", |
|||
"User ID:": "ID пользователя:", |
|||
"Password:": "Пароль:", |
|||
"Time (h:mm:ss):": "Время (ч:мм:сс):", |
|||
"Text CAPTCHA": "Текст капчи", |
|||
"Image CAPTCHA": "Изображение капчи", |
|||
"Sign In": "Войти", |
|||
"Register": "Регистрация", |
|||
"Email:": "Эл. почта:", |
|||
"Google verification code:": "Код подтверждения Google:", |
|||
"Preferences": "Настройки", |
|||
"Player preferences": "Настройки проигрывателя", |
|||
"Always loop: ": "Всегда повторять: ", |
|||
"Autoplay: ": "Автовоспроизведение: ", |
|||
"Autoplay next video: ": "Автовоспроизведение следующего видео: ", |
|||
"Listen by default: ": "Режим \"только аудио\" по-умолчанию: ", |
|||
"Default speed: ": "Скорость по-умолчанию: ", |
|||
"Preferred video quality: ": "Предпочтительное качество видео: ", |
|||
"Player volume: ": "Громкость воспроизведения: ", |
|||
"Default comments: ": "Источник комментариев: ", |
|||
"youtube": "YouTube", |
|||
"reddit": "Reddit", |
|||
"Default captions: ": "Субтитры по-умолчанию: ", |
|||
"Fallback captions: ": "Резервные субтитры: ", |
|||
"Show related videos? ": "Показывать похожие видео? ", |
|||
"Visual preferences": "Визуальные настройки", |
|||
"Dark mode: ": "Темная тема: ", |
|||
"Thin mode: ": "Облегченный режим: ", |
|||
"Subscription preferences": "Настройки подписок", |
|||
"Redirect homepage to feed: ": "Отображать ленту вместо главной страницы: ", |
|||
"Number of videos shown in feed: ": "Число видео в ленте: ", |
|||
"Sort videos by: ": "Сортировать видео по: ", |
|||
"published": "дате публикации", |
|||
"published - reverse": "дате - обратный порядок", |
|||
"alphabetically": "алфавиту", |
|||
"alphabetically - reverse": "алфавиту - обратный порядок", |
|||
"channel name": "имени канала", |
|||
"channel name - reverse": "имени канала - обратный порядок", |
|||
"Only show latest video from channel: ": "Отображать только последние видео с каждого канала: ", |
|||
"Only show latest unwatched video from channel: ": "Отображать только непросмотренные видео с каждого канала: ", |
|||
"Only show unwatched: ": "Отображать только непросмотренные видео: ", |
|||
"Only show notifications (if there are any): ": "Отображать только оповещения (если есть): ", |
|||
"Data preferences": "Настройки данных", |
|||
"Clear watch history": "Очистить историю просмотра", |
|||
"Import/Export data": "Импорт/Экспорт данных", |
|||
"Manage subscriptions": "Управление подписками", |
|||
"Watch history": "История просмотров", |
|||
"Delete account": "Удалить аккаунт", |
|||
"Save preferences": "Сохранить настройки", |
|||
"Subscription manager": "Менеджер подписок", |
|||
"`x` subscriptions": "`x` подписок", |
|||
"Import/Export": "Импорт/Экспорт", |
|||
"unsubscribe": "отписаться", |
|||
"Subscriptions": "Подписки", |
|||
"`x` unseen notifications": "`x` новых оповещений", |
|||
"search": "поиск", |
|||
"Sign out": "Выйти", |
|||
"Released under the AGPLv3 by Omar Roth.": "Распространяется Omar Roth по AGPLv3.", |
|||
"Source available here.": "Исходный код доступен здесь.", |
|||
"Liberapay: ": "Liberapay: ", |
|||
"Patreon: ": "Patreon: ", |
|||
"BTC: ": "BTC: ", |
|||
"BCH: ": "BCH: ", |
|||
"View JavaScript license information.": "Посмотреть лицензии JavaScript кода.", |
|||
"Trending": "В тренде", |
|||
"Watch video on Youtube": "Смотреть на YouTube", |
|||
"Genre: ": "Жанр: ", |
|||
"License: ": "Лицензия: ", |
|||
"Family friendly? ": "Семейный просмотр: ", |
|||
"Wilson score: ": "Рейтинг Вильсона: ", |
|||
"Engagement: ": "Вовлеченность: ", |
|||
"Whitelisted regions: ": "Доступно для: ", |
|||
"Blacklisted regions: ": "Недоступно для: ", |
|||
"Shared `x`": "Опубликовано `x`", |
|||
"Hi! Looks like you have JavaScript disabled. Click here to view comments, keep in mind it may take a bit longer to load.": "Похоже, что у Вас отключен JavaScript. Нажмите сюда, чтобы увидеть комментарии (учтите, что они могут загружаться дольше).", |
|||
"View YouTube comments": "Смотреть комментарии с YouTube", |
|||
"View more comments on Reddit": "Больше комментариев на Reddit", |
|||
"View `x` comments": "Показать `x` комментариев", |
|||
"View Reddit comments": "Смотреть комментарии с Reddit", |
|||
"Hide replies": "Скрыть ответы", |
|||
"Show replies": "Показать ответы", |
|||
"Incorrect password": "Неправильный пароль", |
|||
"Quota exceeded, try again in a few hours": "Превышена квота, попробуйте снова через несколько часов", |
|||
"Unable to login, make sure two-factor authentication (Authenticator or SMS) is enabled.": "Вход не выполнен, проверьте, не включена ли двухфакторная аутентификация.", |
|||
"Invalid TFA code": "Неправильный TFA код", |
|||
"Login failed. This may be because two-factor authentication is not enabled on your account.": "Не удалось войти. Это может быть из-за того, что в вашем аккаунте не включена двухфакторная аутентификация.", |
|||
"Invalid answer": "Неверный ответ", |
|||
"Invalid CAPTCHA": "Неверная капча", |
|||
"CAPTCHA is a required field": "Необходимо ввести капчу", |
|||
"User ID is a required field": "Необходимо ввести идентификатор пользователя", |
|||
"Password is a required field": "Необходимо ввести пароль", |
|||
"Invalid username or password": "Недопустимый пароль или имя пользователя", |
|||
"Please sign in using 'Sign in with Google'": "Пожалуйста войдите через Google", |
|||
"Password cannot be empty": "Пароль не может быть пустым", |
|||
"Password cannot be longer than 55 characters": "Пароль не может быть длиннее 55 символов", |
|||
"Please sign in": "Пожалуйста, войдите", |
|||
"Invidious Private Feed for `x`": "Приватная лента Invidious для `x`", |
|||
"channel:`x`": "канал: `x`", |
|||
"Deleted or invalid channel": "Канал удален или не найден", |
|||
"This channel does not exist.": "Такой канал не существует.", |
|||
"Could not get channel info.": "Невозможно получить информацию о канале.", |
|||
"Could not fetch comments": "Невозможно получить комментарии", |
|||
"View `x` replies": "Показать `x` ответов", |
|||
"`x` ago": "`x` назад", |
|||
"Load more": "Загрузить больше", |
|||
"`x` points": "`x` очков", |
|||
"Could not create mix.": "Невозможно создать \"микс\".", |
|||
"Playlist is empty": "Плейлист пуст", |
|||
"Invalid playlist.": "Некорректный плейлист.", |
|||
"Playlist does not exist.": "Плейлист не существует.", |
|||
"Could not pull trending pages.": "Невозможно получить страницы \"в тренде\".", |
|||
"Hidden field \"challenge\" is a required field": "Необходимо заполнить скрытое поле \"challenge\"", |
|||
"Hidden field \"token\" is a required field": "Необходимо заполнить скрытое поле \"токен\"", |
|||
"Invalid challenge": "Неправильный ответ в \"challenge\"", |
|||
"Invalid token": "Неправильный токен", |
|||
"Invalid user": "Недопустимое имя пользователя", |
|||
"Token is expired, please try again": "Срок действия токена истек, попробуйте позже", |
|||
"English": "Английский", |
|||
"English (auto-generated)": "Английский (созданы автоматически)", |
|||
"Afrikaans": "Африкаанс", |
|||
"Albanian": "Албанский", |
|||
"Amharic": "Амхарский", |
|||
"Arabic": "Арабский", |
|||
"Armenian": "Армянский", |
|||
"Azerbaijani": "Азербайджанский", |
|||
"Bangla": "", |
|||
"Basque": "", |
|||
"Belarusian": "", |
|||
"Bosnian": "", |
|||
"Bulgarian": "", |
|||
"Burmese": "", |
|||
"Catalan": "", |
|||
"Cebuano": "", |
|||
"Chinese (Simplified)": "", |
|||
"Chinese (Traditional)": "", |
|||
"Corsican": "", |
|||
"Croatian": "", |
|||
"Czech": "", |
|||
"Danish": "", |
|||
"Dutch": "", |
|||
"Esperanto": "", |
|||
"Estonian": "", |
|||
"Filipino": "", |
|||
"Finnish": "", |
|||
"French": "", |
|||
"Galician": "", |
|||
"Georgian": "", |
|||
"German": "", |
|||
"Greek": "", |
|||
"Gujarati": "", |
|||
"Haitian Creole": "", |
|||
"Hausa": "", |
|||
"Hawaiian": "", |
|||
"Hebrew": "", |
|||
"Hindi": "", |
|||
"Hmong": "", |
|||
"Hungarian": "", |
|||
"Icelandic": "", |
|||
"Igbo": "", |
|||
"Indonesian": "", |
|||
"Irish": "", |
|||
"Italian": "", |
|||
"Japanese": "", |
|||
"Javanese": "", |
|||
"Kannada": "", |
|||
"Kazakh": "", |
|||
"Khmer": "", |
|||
"Korean": "", |
|||
"Kurdish": "", |
|||
"Kyrgyz": "", |
|||
"Lao": "", |
|||
"Latin": "", |
|||
"Latvian": "", |
|||
"Lithuanian": "", |
|||
"Luxembourgish": "", |
|||
"Macedonian": "", |
|||
"Malagasy": "", |
|||
"Malay": "", |
|||
"Malayalam": "", |
|||
"Maltese": "", |
|||
"Maori": "", |
|||
"Marathi": "", |
|||
"Mongolian": "", |
|||
"Nepali": "", |
|||
"Norwegian": "", |
|||
"Nyanja": "", |
|||
"Pashto": "", |
|||
"Persian": "", |
|||
"Polish": "", |
|||
"Portuguese": "", |
|||
"Punjabi": "", |
|||
"Romanian": "", |
|||
"Russian": "", |
|||
"Samoan": "", |
|||
"Scottish Gaelic": "", |
|||
"Serbian": "", |
|||
"Shona": "", |
|||
"Sindhi": "", |
|||
"Sinhala": "", |
|||
"Slovak": "", |
|||
"Slovenian": "", |
|||
"Somali": "", |
|||
"Southern Sotho": "", |
|||
"Spanish": "", |
|||
"Spanish (Latin America)": "", |
|||
"Sundanese": "", |
|||
"Swahili": "", |
|||
"Swedish": "", |
|||
"Tajik": "", |
|||
"Tamil": "", |
|||
"Telugu": "", |
|||
"Thai": "", |
|||
"Turkish": "", |
|||
"Ukrainian": "", |
|||
"Urdu": "", |
|||
"Uzbek": "", |
|||
"Vietnamese": "", |
|||
"Welsh": "", |
|||
"Western Frisian": "", |
|||
"Xhosa": "", |
|||
"Yiddish": "", |
|||
"Yoruba": "", |
|||
"Zulu": "Зулусский", |
|||
"`x` years": "`x` лет", |
|||
"`x` months": "`x` месяцев", |
|||
"`x` weeks": "`x` недель", |
|||
"`x` days": "`x` дней", |
|||
"`x` hours": "`x` часов", |
|||
"`x` minutes": "`x` минут", |
|||
"`x` seconds": "`x` секунд", |
|||
"Fallback comments: ": "Резервные комментарии: ", |
|||
"Popular": "Популярное", |
|||
"Top": "Топ", |
|||
"About": "О сайте", |
|||
"Rating: ": "Рейтинг: ", |
|||
"Language: ": "Язык: ", |
|||
"Default": "По-умолчанию", |
|||
"Music": "Музыка", |
|||
"Gaming": "Игры", |
|||
"News": "Новости", |
|||
"Movies": "Фильмы", |
|||
"Download": "Скачать", |
|||
"Download as: ": "Скачать как: ", |
|||
"%A %B %-d, %Y": "%-d %B %Y, %A", |
|||
"(edited)": "(изменено)", |
|||
"Youtube permalink of the comment": "Прямая ссылка на YouTube", |
|||
"`x` marked it with a ❤": "❤ от автора канала \"`x`\"" |
|||
} |
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue