diff --git a/src/lang/ru.js b/src/lang/ru.js
index 8cbb52b..c5a22aa 100644
--- a/src/lang/ru.js
+++ b/src/lang/ru.js
@@ -1,344 +1,344 @@
-const ru = {
- globals: {
- welcome: ' deemix',
- back: '',
- loading: '',
- download: ' {0}',
- by: '{0}',
- in: ' {0}',
- download_hint: '',
- play_hint: '',
- toggle_download_tab_hint: '/',
- clean_queue_hint: ' ',
- cancel_queue_hint: ' ',
- listTabs: {
- empty: '',
- all: '',
- top_result: ' ',
- album: ' | ',
- artist: ' | ',
- single: ' | ',
- title: ' | ',
- track: ' | ',
- trackN: '0 | {n} | {n} | {n} ',
- releaseN: '0 | {n} | {n} | {n} ',
- playlist: ' | ',
- compile: ' | ',
- ep: 'ep | eps',
- spotifyPlaylist: ' spotify | spotify',
- releaseDate: ' ',
- error: ''
- }
- },
- about: {
- titles: {
- usefulLinks: ' ',
- bugReports: ' ',
- contributing: ' ',
- donations: '',
- license: ''
- },
- subtitles: {
- bugReports: "- ? !",
- contributing: ' ? !',
- donations: ' ? !'
- },
- usesLibrary: ' deemix, UI deemix.',
- thanks: ` rtonno, uhwot lollilol , BasCurtiz scarvimane .`,
- upToDate: ` Telegram.`,
- officialWebsite: ' ',
- officialRepo: ' ',
- officialWebuiRepo: ' WebUI',
- officialSubreddit: ' ',
- newsChannel: ' ',
- questions: ` , . , .`,
- beforeReporting: ` , , , .`,
- beSure: `, . , .`,
- duplicateReports: ' .',
- dontOpenIssues: ` , .`,
- newUI: ` python, UI pull request .`,
- acceptFeatures: ` , , , .`,
- otherLanguages: ` , deemix!`,
- understandingCode: ` ? RemixDev up Telegram Reddit.`,
- contributeWebUI: ` Vue.js (JavaScript), HTML CSS, WebUI.`,
- itsFree: `, , , .`,
- notObligated: ` , !`,
- lincensedUnder: `
- GNU General Public License 3.0.`
- },
- charts: {
- title: '',
- changeCountry: ' ',
- download: ' '
- },
- errors: {
- title: 'Errors for {0}',
- ids: {
- invalidURL: 'URL ',
- unsupportedURL: 'URL ',
- ISRCnotOnDeezer: 'ISRC deezer',
- notYourPrivatePlaylist: " .",
- spotifyDisabled: ' Spotify.',
- trackNotOnDeezer: ' deezer!',
- albumNotOnDeezer: ' deezer!',
- notOnDeezer: ' Deezer!',
- notEncoded: ' !',
- notEncodedNoAlternative: ' , !',
- wrongBitrate: ' .',
- wrongBitrateNoAlternative: ' . !',
- no360RA: ' Reality Audio 360.',
- notAvailable: " deezer!",
- notAvailableNoAlternative: " deezer. !"
- }
- },
- favorites: {
- title: '',
- noPlaylists: ' ',
- noAlbums: ' ',
- noArtists: ' ',
- noTracks: ' '
- },
- home: {
- needTologin: ' Deezer , .',
- openSettings: ' ',
- sections: {
- popularPlaylists: ' ',
- popularAlbums: ' '
- }
- },
- linkAnalyzer: {
- info: ' , , .',
- useful:
- " , , , , .",
- linkNotSupported: ' ',
- linkNotSupportedYet: ' , .',
- table: {
- id: 'ID',
- isrc: 'ISRC',
- upc: 'UPC',
- duration: '',
- diskNumber: ' ',
- trackNumber: ' ',
- releaseDate: ' ',
- bpm: 'BPM',
- label: '',
- recordType: '',
- genres: '',
- tracklist: ''
- }
- },
- search: {
- startSearching: ' !',
- description:
- ' , , , ... ! Deezer',
- fans: '{0} ',
- noResults: ' ',
- noResultsTrack: ' ',
- noResultsAlbum: ' ',
- noResultsArtist: ' ',
- noResultsPlaylist: ' '
- },
- searchbar: ', ( )',
- downloads: '',
- toasts: {
- addedToQueue: '{0} ',
- alreadyInQueue: '{0} !',
- finishDownload: '{0} .',
- allDownloaded: ' !',
- refreshFavs: ' !',
- loggingIn: '',
- loggedIn: ' ',
- alreadyLogged: ' ',
- loginFailed: " ",
- loggedOut: 'Logged out',
- cancellingCurrentItem: ' .',
- currentItemCancelled: '.',
- startAddingArtist: ' {0} ',
- finishAddingArtist: ' {0} ',
- startConvertingSpotifyPlaylist: ' spotify deezer',
- finishConvertingSpotifyPlaylist: ' Spotify playlist converted'
- },
- settings: {
- title: '',
- languages: '',
- login: {
- title: '',
- loggedIn: ' {username}',
- arl: {
- question: ' ARL?',
- update: ' ARL'
- },
- logout: ''
- },
- appearance: {
- title: ' ',
- slimDownloadTab: ' '
- },
- downloadPath: {
- title: ' '
- },
- templates: {
- title: '',
- tracknameTemplate: ' ',
- albumTracknameTemplate: ' ',
- playlistTracknameTemplate: ' '
- },
- folders: {
- title: '',
- createPlaylistFolder: ' ',
- playlistNameTemplate: ' ',
- createArtistFolder: ' ',
- artistNameTemplate: ' ',
- createAlbumFolder: ' ',
- albumNameTemplate: ' ',
- createCDFolder: ' CD',
- createStructurePlaylist: ' ',
- createSingleFolder: ' '
- },
- trackTitles: {
- title: ' ',
- padTracks: ' ',
- paddingSize: ' ',
- illegalCharacterReplacer: ' '
- },
- downloads: {
- title: '',
- queueConcurrency: ' ',
- maxBitrate: {
- title: '',
- 9: 'FLAC 1411kbps',
- 3: 'MP3 320kbps',
- 1: 'MP3 128kbps'
- },
- overwriteFile: {
- title: ' ?',
- y: ', ',
- n: ", ",
- t: ' '
- },
- fallbackBitrate: ' , ',
- fallbackSearch: ' , ',
- logErrors: ' ',
- logSearched: ' ',
- createM3U8File: ' ',
- syncedLyrics: ' .lyr ( )',
- playlistFilenameTemplate: ' ',
- saveDownloadQueue: ' '
- },
- covers: {
- title: '',
- saveArtwork: ' ',
- coverImageTemplate: ' ',
- saveArtworkArtist: ' ',
- artistImageTemplate: ' ',
- localArtworkSize: ' ',
- embeddedArtworkSize: ' ',
- localArtworkFormat: {
- title: ' ?',
- jpg: 'jpeg',
- png: 'png',
- both: 'jpeg png'
- },
- jpegImageQuality: ' JPEG'
- },
- tags: {
- head: ' ',
- title: '',
- artist: '',
- album: '',
- cover: '',
- trackNumber: ' ',
- trackTotal: '- ',
- discNumber: ' ',
- discTotal: '- ',
- albumArtist: ' ',
- genre: '',
- year: '',
- date: '',
- explicit: ' ',
- isrc: 'ISRC',
- length: '',
- barcode: ' (UPC)',
- bpm: 'BPM',
- replayGain: 'Replay Gain',
- label: '',
- lyrics: ' ',
- copyright: '',
- composer: '',
- involvedPeople: ' '
- },
- other: {
- title: '',
- savePlaylistAsCompilation: ' ',
- useNullSeparator: ' ',
- saveID3v1: ' ID3v1',
- multiArtistSeparator: {
- title: ' ?',
- nothing: ' ',
- default: ' ',
- andFeat: ' & feat.',
- using: ' "{0}"'
- },
- singleAlbumArtist: ' ',
- albumVariousArtists: ' "Various Artists" ',
- removeAlbumVersion: ' "Album Version" ',
- removeDuplicateArtists: ' ',
- dateFormat: {
- title: ' FLAC ',
- year: 'YYYY',
- month: 'MM',
- day: 'DD'
- },
- featuredToTitle: {
- title: ' ?',
- 0: '',
- 1: ' ',
- 3: ' ',
- 2: ' '
- },
- titleCasing: ' ',
- artistCasing: ' ',
- casing: {
- nothing: ' ',
- lower: ' ',
- upper: ' ',
- start: ' ',
- sentence: ' '
- },
- previewVolume: ' ',
- executeCommand: {
- title: ' ',
- description: ' , '
- }
- },
- spotify: {
- title: ' Spotify',
- clientID: 'Spotify clientID',
- clientSecret: 'Spotify Client Secret',
- username: 'Spotify username'
- },
- reset: ' ',
- save: '',
- toasts: {
- init: ' !',
- update: ' !',
- ARLcopied: 'ARL '
- }
- },
- sidebar: {
- home: '',
- search: '',
- charts: '',
- favorites: '',
- linkAnalyzer: ' ',
- settings: '',
- about: ' '
- },
- tracklist: {
- downloadSelection: ' '
- }
-}
-
-export default ru
\ No newline at end of file
+const ru = {
+ globals: {
+ welcome: 'Добро пожаловать в deemix',
+ back: 'назад',
+ loading: 'загрузка',
+ download: 'Скачать {0}',
+ by: '{0}',
+ in: 'из {0}',
+ download_hint: 'Скачать',
+ play_hint: 'Прослушать',
+ toggle_download_tab_hint: 'Показать/Свернуть',
+ clean_queue_hint: 'Очистить завершённые',
+ cancel_queue_hint: 'Очистить всё',
+ listTabs: {
+ empty: '',
+ all: 'все',
+ top_result: 'лучший результат',
+ album: 'альбом | альбомы',
+ artist: 'исполнитель | исполнители',
+ single: 'сингл | синглы',
+ title: 'название | названия',
+ track: 'трек | треки',
+ trackN: '0 треков | {n} трек | {n} трека | {n} треков',
+ releaseN: '0 релизов | {n} релиз | {n} релиза | {n} релизов',
+ playlist: 'плейлист | плейлисты',
+ compile: 'сборник | сборники',
+ ep: 'ep | eps',
+ spotifyPlaylist: 'плейлисты spotify | плейлисты spotify',
+ releaseDate: 'Дата выхода',
+ error: 'ошибка'
+ }
+ },
+ about: {
+ titles: {
+ usefulLinks: 'Полезные ссылки',
+ bugReports: 'Баг репорты',
+ contributing: 'Помощь проекту',
+ donations: 'Пожертвования',
+ license: 'Лицензия'
+ },
+ subtitles: {
+ bugReports: "Что-то не работает? Скажите нам!",
+ contributing: 'Хотите поддержать проект? Это можно сделать разными способами!',
+ donations: 'Хотите поддержать материально? Можно сделать пожертвование!'
+ },
+ usesLibrary: 'Приложение использует библиотеку deemix, с помощью которой вы можете сделать собственный UI deemix.',
+ thanks: `Спасибо rtonno, uhwot и lollilol за помощь с этим проектом, а также BasCurtiz и scarvimane за иконку.`,
+ upToDate: `Следите за последними обновлениями на канале в Telegram.`,
+ officialWebsite: 'Официальный сайт',
+ officialRepo: 'Официальный репозиторий библиотеки',
+ officialWebuiRepo: 'Официальный репозиторий WebUI',
+ officialSubreddit: 'Официальный сабреддит',
+ newsChannel: 'Канал новостей',
+ questions: `Если у вас возникли вопросы или проблемы с приложением, поищите решение на сабреддите. Если решения не нашли, можете создать новый пост и описать вашу проблему.`,
+ beforeReporting: `Перед тем, как сообщать об ошибках, убедитесь, что у вас стоит последняя версия приложения и что проблема не на вашей стороне.`,
+ beSure: `Убедитесь, что ошибка возникает и на других устройствах. Также НЕ сообщайте об ошибке, если про неё уже известно.`,
+ duplicateReports: 'Повторные сообщения об ошибках рассматриваться не будут.',
+ dontOpenIssues: `НЕ НАДО создавать задачу с простым вопросом, для этого есть сабреддит.`,
+ newUI: `Если вы хорошо знаете python, то можете сделать новый UI для приложения с использованием базовой библиотеки или пофиксить в ней баги и сделать pull request в репозитории.`,
+ acceptFeatures: `Новые фичи также приветствуются, но не слишком сложные, так как они будут добавлены в приложение, а не в саму библиотеку.`,
+ otherLanguages: `Если вы хорошо знаете другой язык программирования, можете портировать на нём deemix!`,
+ understandingCode: `Не можете понять код? Напишите RemixDev up в Telegram или на Reddit.`,
+ contributeWebUI: `Если вы знаете Vue.js (JavaScript), HTML или CSS, можете внести вклад в WebUI.`,
+ itsFree: `Помните, что это бесплатное приложение и вам следует поддерживать исполнителей, которые вам нравятся прежде, чем поддерживать разработчиков.`,
+ notObligated: `Вы не обязаны делать пожертвования, я всё равно вас ценю!`,
+ lincensedUnder: `Проект находится под лицензией
+ GNU General Public License 3.0.`
+ },
+ charts: {
+ title: 'Чарты',
+ changeCountry: 'Изменить страну',
+ download: 'Скачать чарт'
+ },
+ errors: {
+ title: 'Errors for {0}',
+ ids: {
+ invalidURL: 'URL не распознана',
+ unsupportedURL: 'URL не поддерживается',
+ ISRCnotOnDeezer: 'ISRC трека недоступен на deezer',
+ notYourPrivatePlaylist: "Нельзя скачивать чужие плейлисты.",
+ spotifyDisabled: 'Неправильно настроены параметры Spotify.',
+ trackNotOnDeezer: 'Трек не найден на deezer!',
+ albumNotOnDeezer: 'Альбом не найден deezer!',
+ notOnDeezer: 'Трек недоступен на Deezer!',
+ notEncoded: 'Трек ещё не перекодирован!',
+ notEncodedNoAlternative: 'Трек не перекодирован, альтернатив не найдено!',
+ wrongBitrate: 'Не найден трек с нужным битрейтом.',
+ wrongBitrateNoAlternative: 'Не найден трек с нужным битрейтом. Альтернатив не найдено!',
+ no360RA: 'Трек недоступен в Reality Audio 360.',
+ notAvailable: "Трек недоступен на серверах deezer!",
+ notAvailableNoAlternative: "Трек недоступен на серверах deezer. Альтернатив не найдено!"
+ }
+ },
+ favorites: {
+ title: 'Избранное',
+ noPlaylists: 'Плейлисты не найдены',
+ noAlbums: 'Избранные альбомы не найдены',
+ noArtists: 'Избранные исполнители не найдены',
+ noTracks: 'Избранные треки не найдены'
+ },
+ home: {
+ needTologin: 'Вам нужно зайти под своим Deezer аккаунтом прежде, чем скачивать.',
+ openSettings: 'Открыть настройки',
+ sections: {
+ popularPlaylists: 'Популярные плейлисты',
+ popularAlbums: 'Самые прослушиваемые альбомы'
+ }
+ },
+ linkAnalyzer: {
+ info: 'Используйте этот раздел, чтобы узнать информацию о ссылке, по которой вы хотите скачать.',
+ useful:
+ "Этот раздел нужен, если вы хотите скачать треки, недоступные в вашей стране, а также посмотреть, где они доступны.",
+ linkNotSupported: 'Ссылка не поддерживается',
+ linkNotSupportedYet: 'Эта ссылка не поддерживается, попробуйте вставить другую.',
+ table: {
+ id: 'ID',
+ isrc: 'ISRC',
+ upc: 'UPC',
+ duration: 'Продолжительность',
+ diskNumber: 'Номер диска',
+ trackNumber: 'Номер трека',
+ releaseDate: 'Дата выхода',
+ bpm: 'BPM',
+ label: 'Издатель',
+ recordType: 'Тип',
+ genres: 'Жанр',
+ tracklist: 'Треклист'
+ }
+ },
+ search: {
+ startSearching: 'Начните искать!',
+ description:
+ 'Здесь можно найти трек, альбом, исполнителя, плейлист... всё! Можно также вставить ссылку Deezer',
+ fans: '{0} поклонников',
+ noResults: 'Нет результатов',
+ noResultsTrack: 'Треков не найдено',
+ noResultsAlbum: 'Альбомов не найдено',
+ noResultsArtist: 'Исполнителей не найдено',
+ noResultsPlaylist: 'Плейлистов не найдено'
+ },
+ searchbar: 'Ищите, что хотите (или вставьте ссылку)',
+ downloads: 'загрузки',
+ toasts: {
+ addedToQueue: '{0} добавлено в очередь',
+ alreadyInQueue: '{0} уже есть в очереди!',
+ finishDownload: '{0} загрузок завершено.',
+ allDownloaded: 'Все загрузки завершены!',
+ refreshFavs: 'Обновление завершено!',
+ loggingIn: 'Вход',
+ loggedIn: 'Вход выполнен',
+ alreadyLogged: 'Вход уже выполнен',
+ loginFailed: "Вход не выполнен",
+ loggedOut: 'Logged out',
+ cancellingCurrentItem: 'Отмена закачки.',
+ currentItemCancelled: 'Отменено.',
+ startAddingArtist: 'Добавление {0} альбомов в очередь',
+ finishAddingArtist: 'Добавлено {0} альбомов в очередь',
+ startConvertingSpotifyPlaylist: 'Преобразование треков из spotify в deezer',
+ finishConvertingSpotifyPlaylist: 'Преобразование Spotify playlist converted'
+ },
+ settings: {
+ title: 'Настройки',
+ languages: 'Язык',
+ login: {
+ title: 'Вход',
+ loggedIn: 'Вы вошли как {username}',
+ arl: {
+ question: 'Как узнать свой ARL?',
+ update: 'Обновить ARL'
+ },
+ logout: 'Выйти'
+ },
+ appearance: {
+ title: 'Внешний вид',
+ slimDownloadTab: 'Обрезать вкладку с загрузками'
+ },
+ downloadPath: {
+ title: 'Путь сохранения'
+ },
+ templates: {
+ title: 'Шаблоны',
+ tracknameTemplate: 'Шаблон названия трека',
+ albumTracknameTemplate: 'Шаблон названия трека альбома',
+ playlistTracknameTemplate: 'Шаблон названия трека плейлиста'
+ },
+ folders: {
+ title: 'Папки',
+ createPlaylistFolder: 'Создать папки для плейлистов',
+ playlistNameTemplate: 'Название папки плейлиста',
+ createArtistFolder: 'Создать папки для исполнителя',
+ artistNameTemplate: 'Название папки исполнителя',
+ createAlbumFolder: 'Создать папки для альбома',
+ albumNameTemplate: 'Название папки альбома',
+ createCDFolder: 'Создать папки для CD',
+ createStructurePlaylist: 'Создать структуру папок для плейлистов',
+ createSingleFolder: 'Создать структуру папок для синглов'
+ },
+ trackTitles: {
+ title: 'Названия треков',
+ padTracks: 'Добавлять нули',
+ paddingSize: 'Количество цифр',
+ illegalCharacterReplacer: 'Замена для запрещённых символов'
+ },
+ downloads: {
+ title: 'Загрузки',
+ queueConcurrency: 'Количество одновременных закачек',
+ maxBitrate: {
+ title: 'Битрейт',
+ 9: 'FLAC 1411kbps',
+ 3: 'MP3 320kbps',
+ 1: 'MP3 128kbps'
+ },
+ overwriteFile: {
+ title: 'Нужно ли перезаписывать файлы?',
+ y: 'Да, перезаписать файл',
+ n: "Нет, не перезаписывать",
+ t: 'Обновить только теги'
+ },
+ fallbackBitrate: 'Скачивать с низким битрейтом, если текущий недоступен',
+ fallbackSearch: 'Искать другой трек, если нужный недоступен',
+ logErrors: 'Создать логи для ошибок',
+ logSearched: 'Создать лог поиска',
+ createM3U8File: 'Создать файлы плейлистов',
+ syncedLyrics: 'Создать .lyr файлы (Синхронизированный текст)',
+ playlistFilenameTemplate: 'Шаблон названия плейлиста',
+ saveDownloadQueue: 'Сохранять текущий список загрузок при закрытии приложения'
+ },
+ covers: {
+ title: 'Обложки',
+ saveArtwork: 'Сохранять обложки',
+ coverImageTemplate: 'Шаблон названия обложки',
+ saveArtworkArtist: 'Сохранять изображение исполнителя',
+ artistImageTemplate: 'Шаблон названия изображения',
+ localArtworkSize: 'Размер сохраненной обложки',
+ embeddedArtworkSize: 'Размер встроенной',
+ localArtworkFormat: {
+ title: 'В каком формате сохранять обложки?',
+ jpg: 'jpeg',
+ png: 'png',
+ both: 'jpeg и png'
+ },
+ jpegImageQuality: 'Качество JPEG'
+ },
+ tags: {
+ head: 'Какие теги сохранять',
+ title: 'Название',
+ artist: 'Исполнитель',
+ album: 'Альбом',
+ cover: 'Обложка',
+ trackNumber: 'Номер трека',
+ trackTotal: 'Кол-во треков',
+ discNumber: 'Номер диска',
+ discTotal: 'Кол-во дисков',
+ albumArtist: 'Исполнитель альбома',
+ genre: 'Жанр',
+ year: 'Год',
+ date: 'Дата',
+ explicit: 'Нецензурная лирика',
+ isrc: 'ISRC',
+ length: 'Продолжительность',
+ barcode: 'Штрихкод альбома (UPC)',
+ bpm: 'BPM',
+ replayGain: 'Replay Gain',
+ label: 'Издатель',
+ lyrics: 'Несинхронизированный текст',
+ copyright: 'Права',
+ composer: 'Композитор',
+ involvedPeople: 'Вовлечённые люди'
+ },
+ other: {
+ title: 'Разное',
+ savePlaylistAsCompilation: 'Сохранить плейлисты как сборники',
+ useNullSeparator: 'Использовать нулевой символ в качестве разделителя',
+ saveID3v1: 'Дополнительно сохранять ID3v1',
+ multiArtistSeparator: {
+ title: 'Как разделять несколько исполнителей?',
+ nothing: 'Сохранить только основного',
+ default: 'Используя стандартную спецификацию',
+ andFeat: 'Используя & и feat.',
+ using: 'Используя "{0}"'
+ },
+ singleAlbumArtist: 'Сохранить только основного исполнителя альбома',
+ albumVariousArtists: 'Оставить "Various Artists" в Исполнителях льбома',
+ removeAlbumVersion: 'Удалить "Album Version" из названия трека',
+ removeDuplicateArtists: 'Удалить повторяющихся исполнителей',
+ dateFormat: {
+ title: 'Формат даты для FLAC файлов',
+ year: 'YYYY',
+ month: 'MM',
+ day: 'DD'
+ },
+ featuredToTitle: {
+ title: 'Что делать с приглашёнными исполнителями?',
+ 0: 'Ничего',
+ 1: 'Удалить их из названия',
+ 3: 'Удалить из названия и названия альбома',
+ 2: 'Добавить в название'
+ },
+ titleCasing: 'Регистр названия',
+ artistCasing: 'Регистр исполнителя',
+ casing: {
+ nothing: 'Не менять',
+ lower: 'в нижнем регистре',
+ upper: 'В ВЕРХНЕМ РЕГИСТРЕ',
+ start: 'Каждое Слово С Заглавной Буквы',
+ sentence: 'Как в предложении'
+ },
+ previewVolume: 'Громкость прослушивания',
+ executeCommand: {
+ title: 'Выполнить команды по окончании загрузок',
+ description: 'Оставьте пустым, если ничего не требуется'
+ }
+ },
+ spotify: {
+ title: 'Функции Spotify',
+ clientID: 'Spotify clientID',
+ clientSecret: 'Spotify Client Secret',
+ username: 'Spotify username'
+ },
+ reset: 'По умолчанию',
+ save: 'Сохранить',
+ toasts: {
+ init: 'Настройки загружены!',
+ update: 'Настройки обновлены!',
+ ARLcopied: 'ARL скопирован в буфер обмена'
+ }
+ },
+ sidebar: {
+ home: 'домой',
+ search: 'поиск',
+ charts: 'чарты',
+ favorites: 'избранное',
+ linkAnalyzer: 'просмотр ссылок',
+ settings: 'настройки',
+ about: 'о проекте'
+ },
+ tracklist: {
+ downloadSelection: 'Скачать выбранные'
+ }
+}
+
+export default ru