Added loginNeededToDownload translation string and fixed ru.js

This commit is contained in:
RemixDev 2020-07-29 22:24:44 +02:00
parent 9eeb992faf
commit d33be9ae46
5 changed files with 93 additions and 87 deletions

File diff suppressed because one or more lines are too long

View File

@ -156,3 +156,7 @@ socket.on('queueError', function(queueItem) {
socket.on('alreadyInQueue', function(data) { socket.on('alreadyInQueue', function(data) {
toast(i18n.t('toasts.alreadyInQueue', [data.title]), 'playlist_add_check') toast(i18n.t('toasts.alreadyInQueue', [data.title]), 'playlist_add_check')
}) })
socket.on('loginNeededToDownload', function(data) {
toast(i18n.t('toasts.loginNeededToDownload'), 'report')
})

View File

@ -158,7 +158,8 @@ const en = {
startAddingArtist: 'Adding {0} albums to queue', startAddingArtist: 'Adding {0} albums to queue',
finishAddingArtist: 'Added {0} albums to queue', finishAddingArtist: 'Added {0} albums to queue',
startConvertingSpotifyPlaylist: 'Converting spotify tracks to deezer tracks', startConvertingSpotifyPlaylist: 'Converting spotify tracks to deezer tracks',
finishConvertingSpotifyPlaylist: 'Spotify playlist converted' finishConvertingSpotifyPlaylist: 'Spotify playlist converted',
loginNeededToDownload: 'You need to log in to download tracks!'
}, },
settings: { settings: {
title: 'Settings', title: 'Settings',

View File

@ -160,7 +160,8 @@ const it = {
startAddingArtist: 'Aggiungendo gli album di {0} alla coda', startAddingArtist: 'Aggiungendo gli album di {0} alla coda',
finishAddingArtist: 'Aggiunto gli album di {0} alla coda', finishAddingArtist: 'Aggiunto gli album di {0} alla coda',
startConvertingSpotifyPlaylist: 'Convertendo i brani da spotify a deezer', startConvertingSpotifyPlaylist: 'Convertendo i brani da spotify a deezer',
finishConvertingSpotifyPlaylist: 'Playlist di spotify convertita' finishConvertingSpotifyPlaylist: 'Playlist di spotify convertita',
loginNeededToDownload: 'Devi accedere prima di poter scaricare brani!'
}, },
settings: { settings: {
title: 'Impostazioni', title: 'Impostazioni',

View File

@ -3,10 +3,10 @@ const ru = {
welcome: 'Добро пожаловать в deemix', welcome: 'Добро пожаловать в deemix',
back: 'назад', back: 'назад',
loading: 'загрузка', loading: 'загрузка',
download: 'Скачать {0}', download: 'Загрузить {0}',
by: '{0}', by: '{0}',
in: 'из {0}', in: 'из {0}',
download_hint: 'Скачать', download_hint: 'Загрузить',
play_hint: 'Прослушать', play_hint: 'Прослушать',
toggle_download_tab_hint: 'Показать/Свернуть', toggle_download_tab_hint: 'Показать/Свернуть',
clean_queue_hint: 'Очистить завершённые', clean_queue_hint: 'Очистить завершённые',
@ -39,11 +39,11 @@ const ru = {
license: 'Лицензия' license: 'Лицензия'
}, },
subtitles: { subtitles: {
bugReports: "Что-то не работает? Скажите нам!", bugReports: "Что-то не работает? Сообщите нам!",
contributing: 'Хотите поддержать проект? Это можно сделать разными способами!', contributing: 'Хотите внести свой вклад в развитие этого проекта? Это можно сделать разными способами!',
donations: 'Хотите поддержать материально? Можно сделать пожертвование!' donations: 'Хотите поддержать материально? Можно сделать пожертвование!'
}, },
usesLibrary: 'Приложение использует библиотеку <strong>deemix</strong>, с помощью которой вы можете сделать собственный UI deemix.', usesLibrary: 'Приложение использует библиотеку <strong>deemix</strong>, с помощью которой вы можете разработать собственный UI deemix.',
thanks: `Спасибо <strong>rtonno</strong>, <strong>uhwot</strong> и <strong>lollilol</strong> за помощь с этим проектом, а также <strong>BasCurtiz</strong> и <strong>scarvimane</strong> за иконку.`, thanks: `Спасибо <strong>rtonno</strong>, <strong>uhwot</strong> и <strong>lollilol</strong> за помощь с этим проектом, а также <strong>BasCurtiz</strong> и <strong>scarvimane</strong> за иконку.`,
upToDate: `Следите за последними обновлениями на <a href="https://t.me/RemixDevNews" target="_blank">канале</a> в Telegram.`, upToDate: `Следите за последними обновлениями на <a href="https://t.me/RemixDevNews" target="_blank">канале</a> в Telegram.`,
officialWebsite: 'Официальный сайт', officialWebsite: 'Официальный сайт',
@ -51,19 +51,19 @@ const ru = {
officialWebuiRepo: 'Официальный репозиторий WebUI', officialWebuiRepo: 'Официальный репозиторий WebUI',
officialSubreddit: 'Официальный сабреддит', officialSubreddit: 'Официальный сабреддит',
newsChannel: 'Канал новостей', newsChannel: 'Канал новостей',
questions: `Если у вас возникли вопросы или проблемы с приложением, поищите решение на <a href="https://www.reddit.com/r/deemix" target="_blank">сабреддите</a>. Если решения не нашли, можете создать новый пост и описать вашу проблему.`, questions: `Если у вас возникли вопросы или проблемы с приложением, поищите решение на <a href="https://www.reddit.com/r/deemix" target="_blank">сабреддите</a>. Если не нашли решение, можете создать новый пост и описать вашу проблему.`,
beforeReporting: `Перед тем, как сообщать об ошибках, убедитесь, что у вас стоит последняя версия приложения и что проблема не на вашей стороне.`, beforeReporting: `Перед тем, как сообщать об ошибках, убедитесь, что вы используете последнюю версию приложения и что проблема не на вашей стороне.`,
beSure: `Убедитесь, что ошибка возникает и на других устройствах. Также <strong>НЕ</strong> сообщайте об ошибке, если про неё уже известно.`, beSure: `Убедитесь, что ошибка возникает и на других устройствах. Также <strong>НЕ</strong> сообщайте об ошибке, если про неё уже известно.`,
duplicateReports: 'Повторные сообщения об ошибках рассматриваться не будут.', duplicateReports: 'Повторные сообщения об ошибках рассматриваться не будут.',
dontOpenIssues: `<strong>НЕ НАДО</strong> создавать задачу с простым вопросом, для этого есть сабреддит.`, dontOpenIssues: `<strong>НЕ</strong> используйте репозиторий для вопросов автору, для этого есть сабреддит.`,
newUI: `Если вы хорошо знаете python, то можете сделать новый UI для приложения с использованием базовой библиотеки или пофиксить в ней баги и сделать pull request в <a href="https://codeberg.org/RemixDev/deemix" target="_blank">репозитории</a>.`, newUI: `Если вы хорошо знаете python, то можете сделать новый UI для приложения с использованием базовой библиотеки или пофиксить в ней баги и сделать pull request в <a href="https://codeberg.org/RemixDev/deemix" target="_blank">репозитории</a>.`,
acceptFeatures: `Новые фичи также приветствуются, но не слишком сложные, так как они будут добавлены в приложение, а не в саму библиотеку.`, acceptFeatures: `Можете предлагать новые функции, но не слишком сложные, так как они будут добавлены в приложение, а не в саму библиотеку.`,
otherLanguages: `Если вы хорошо знаете другой язык программирования, можете портировать на нём deemix!`, otherLanguages: `Если вы хорошо знаете другой язык программирования, можете портировать на нём deemix!`,
understandingCode: `Не можете разобраться в коде? Напишите RemixDev в Telegram или на Reddit.`, understandingCode: `Не можете понять код? Свяжитесь с RemixDev в Telegram или на Reddit.`,
contributeWebUI: `Если вы знаете Vue.js (JavaScript), HTML или CSS, можете внести вклад в <a href="https://codeberg.org/RemixDev/deemix-webui" target="_blank">WebUI</a>.`, contributeWebUI: `Если вы знаете Vue.js (JavaScript), HTML или CSS, можете внести вклад в развитие <a href="https://codeberg.org/RemixDev/deemix-webui" target="_blank">WebUI</a>.`,
itsFree: `Помните, что это <strong>бесплатное приложение</strong> и вам следует <strong>поддерживать исполнителей</strong>, которые вам нравятся прежде, чем поддерживать разработчиков.`, itsFree: `Помните, что это <strong>бесплатное приложение</strong> и вам следует прежде <strong>поддержать понравившихся исполнителей</strong>, а затем уже поддержать разработчиков.`,
notObligated: `Вы не обязаны делать пожертвования, я всё равно вас ценю!`, notObligated: `Вы не обязаны делать пожертвования, я всё равно вас ценю!`,
lincensedUnder: `Проект распространяется на условиях лицензии lincensedUnder: `Проект выпускается под лицензией
<a rel="license" href="https://www.gnu.org/licenses/gpl-3.0.en.html" target="_blank" <a rel="license" href="https://www.gnu.org/licenses/gpl-3.0.en.html" target="_blank"
>GNU General Public License 3.0</a >GNU General Public License 3.0</a
>.` >.`
@ -71,26 +71,26 @@ const ru = {
charts: { charts: {
title: 'Чарты', title: 'Чарты',
changeCountry: 'Изменить страну', changeCountry: 'Изменить страну',
download: 'Скачать чарт' download: 'Загрузить чарт'
}, },
errors: { errors: {
title: 'Ошибки {0}', title: 'Ошибки {0}',
ids: { ids: {
invalidURL: 'URL не распознан', invalidURL: 'URL не распознан',
unsupportedURL: 'URL не поддерживается', unsupportedURL: 'URL не поддерживается',
ISRCnotOnDeezer: 'ISRC трека недоступен на deezer', ISRCnotOnDeezer: 'ISRC данного трека не доступен на Deezer',
notYourPrivatePlaylist: "Нельзя скачивать чужие плейлисты.", notYourPrivatePlaylist: "Вы не можете загружать чужие приватные плейлисты.",
spotifyDisabled: 'Неправильно настроены параметры Spotify.', spotifyDisabled: 'Неправильно настроены параметры Spotify.',
trackNotOnDeezer: 'Трек не найден на deezer!', trackNotOnDeezer: 'Трек не найден на Deezer!',
albumNotOnDeezer: 'Альбом не найден deezer!', albumNotOnDeezer: 'Альбом не найден на Deezer!',
notOnDeezer: 'Трек не доступен на Deezer!', notOnDeezer: 'Трек не доступен на Deezer!',
notEncoded: 'Трек ещё не перекодирован!', notEncoded: 'Трек ещё не перекодирован!',
notEncodedNoAlternative: 'Трек не перекодирован, альтернатив не найдено!', notEncodedNoAlternative: 'Трек не перекодирован, альтернатив не найдено!',
wrongBitrate: 'Не найден трек с нужным битрейтом.', wrongBitrate: 'Для данного трека нет нужного битрейта.',
wrongBitrateNoAlternative: 'Не найден трек с нужным битрейтом. Альтернатив не найдено!', wrongBitrateNoAlternative: 'Для данного трека нет нужного битрейта. Альтернатив не найдено!',
no360RA: 'Трек недоступен в Reality Audio 360.', no360RA: 'Трек недоступен в формате Reality Audio 360.',
notAvailable: "Трек недоступен на серверах deezer!", notAvailable: "Трек недоступен на серверах Deezer!",
notAvailableNoAlternative: "Трек недоступен на серверах deezer. Альтернатив не найдено!" notAvailableNoAlternative: "Трек недоступен на серверах Deezer. Альтернатив не найдено!"
} }
}, },
favorites: { favorites: {
@ -101,7 +101,7 @@ const ru = {
noTracks: 'Избранные треки не найдены' noTracks: 'Избранные треки не найдены'
}, },
home: { home: {
needTologin: 'Вам нужно зайти под своим аккаунтом Deezer прежде, чем скачивать.', needTologin: 'Вам необходимо войти под своей учетной записью Deezer, прежде чем вы сможете начать скачивание.',
openSettings: 'Открыть настройки', openSettings: 'Открыть настройки',
sections: { sections: {
popularPlaylists: 'Популярные плейлисты', popularPlaylists: 'Популярные плейлисты',
@ -109,9 +109,9 @@ const ru = {
} }
}, },
linkAnalyzer: { linkAnalyzer: {
info: 'Используйте этот раздел, чтобы узнать информацию о ссылке, по которой вы хотите скачать.', info: 'Используйте этот раздел, чтобы узнать информацию о ссылке, которую необходимо загрузить.',
useful: useful:
"Этот раздел нужен, если вы хотите скачать треки, недоступные в вашей стране, а также посмотреть, где они доступны.", "Этот раздел нужен, если вы хотите загрузить треки, недоступные в вашей стране, а также посмотреть, где они доступны.",
linkNotSupported: 'Ссылка не поддерживается', linkNotSupported: 'Ссылка не поддерживается',
linkNotSupportedYet: 'Эта ссылка не поддерживается, попробуйте вставить другую.', linkNotSupportedYet: 'Эта ссылка не поддерживается, попробуйте вставить другую.',
table: { table: {
@ -123,7 +123,7 @@ const ru = {
trackNumber: 'Номер трека', trackNumber: 'Номер трека',
releaseDate: 'Дата выхода', releaseDate: 'Дата выхода',
bpm: 'BPM', bpm: 'BPM',
label: 'Издатель', label: 'Издатедь',
recordType: 'Тип', recordType: 'Тип',
genres: 'Жанр', genres: 'Жанр',
tracklist: 'Треклист' tracklist: 'Треклист'
@ -144,8 +144,8 @@ const ru = {
downloads: 'загрузки', downloads: 'загрузки',
toasts: { toasts: {
addedToQueue: '{0} добавлено в очередь', addedToQueue: '{0} добавлено в очередь',
alreadyInQueue: '{0} уже есть в очереди!', alreadyInQueue: '{0} уже присутствует в очереди!',
finishDownload: '{0} загрузок завершено.', finishDownload: 'Загрузка {0} завершена.',
allDownloaded: 'Все загрузки завершены!', allDownloaded: 'Все загрузки завершены!',
refreshFavs: 'Обновление завершено!', refreshFavs: 'Обновление завершено!',
loggingIn: 'Вход', loggingIn: 'Вход',
@ -153,12 +153,12 @@ const ru = {
alreadyLogged: 'Вход уже выполнен', alreadyLogged: 'Вход уже выполнен',
loginFailed: "Вход не выполнен", loginFailed: "Вход не выполнен",
loggedOut: 'Вы вышли из аккаунта', loggedOut: 'Вы вышли из аккаунта',
cancellingCurrentItem: 'Отмена закачки.', cancellingCurrentItem: 'Отменена текущая загрузка.',
currentItemCancelled: 'Отменено.', currentItemCancelled: 'Отменено.',
startAddingArtist: 'Добавление {0} альбомов в очередь', startAddingArtist: 'Добавление альбомов {0} в очередь',
finishAddingArtist: 'Добавлено {0} альбомов в очередь', finishAddingArtist: 'Альбомы {0} добавлены в очередь',
startConvertingSpotifyPlaylist: 'Преобразование треков из spotify в deezer', startConvertingSpotifyPlaylist: 'Добавление плейлиста Spotify в очередь',
finishConvertingSpotifyPlaylist: 'Преобразование Spotify playlist converted' finishConvertingSpotifyPlaylist: 'Spotify плейлист добавлен в очередь'
}, },
settings: { settings: {
title: 'Настройки', title: 'Настройки',
@ -177,35 +177,35 @@ const ru = {
slimDownloadTab: 'Компактная вкладка с загрузками' slimDownloadTab: 'Компактная вкладка с загрузками'
}, },
downloadPath: { downloadPath: {
title: 'Путь сохранения' title: 'Путь для сохранения'
}, },
templates: { templates: {
title: 'Шаблоны', title: 'Шаблоны',
tracknameTemplate: 'Шаблон названия трека', tracknameTemplate: 'Шаблон названия синглов',
albumTracknameTemplate: 'Шаблон названия трека альбома', albumTracknameTemplate: 'Шаблон названия трека альбома',
playlistTracknameTemplate: 'Шаблон названия трека плейлиста' playlistTracknameTemplate: 'Шаблон названия трека плейлиста'
}, },
folders: { folders: {
title: 'Папки', title: 'Папки',
createPlaylistFolder: 'Создавать папки для плейлистов', createPlaylistFolder: 'Создать папки для плейлистов',
playlistNameTemplate: 'Название папки плейлиста', playlistNameTemplate: 'Название папки плейлиста',
createArtistFolder: 'Создавать папки для исполнителя', createArtistFolder: 'Создать папки для исполнителя',
artistNameTemplate: 'Название папки исполнителя', artistNameTemplate: 'Название папки исполнителя',
createAlbumFolder: 'Создавать папки для альбома', createAlbumFolder: 'Создать папки для альбома',
albumNameTemplate: 'Название папки альбома', albumNameTemplate: 'Название папки альбома',
createCDFolder: 'Создавать папки для CD', createCDFolder: 'Создать папки для CD',
createStructurePlaylist: 'Создавать структуру папок для плейлистов', createStructurePlaylist: 'Создать структуру папок для плейлистов',
createSingleFolder: 'Создавать структуру папок для синглов' createSingleFolder: 'Создать структуру папок для синглов'
}, },
trackTitles: { trackTitles: {
title: 'Названия треков', title: 'Названия треков',
padTracks: 'Добавлять нули', padTracks: 'Добавить ноль к номерам треков (01, 02, ...)',
paddingSize: 'Количество цифр', paddingSize: 'Кол-во добавленных нолей',
illegalCharacterReplacer: 'Замена для запрещённых символов' illegalCharacterReplacer: 'Замена для запрещённых в имени символов'
}, },
downloads: { downloads: {
title: 'Загрузки', title: 'Загрузки',
queueConcurrency: 'Количество одновременных закачек', queueConcurrency: 'Количество одновременных загрузок',
maxBitrate: { maxBitrate: {
title: 'Предпочитаемый битрейт', title: 'Предпочитаемый битрейт',
9: 'FLAC 1411kbps', 9: 'FLAC 1411kbps',
@ -218,23 +218,23 @@ const ru = {
n: "Нет, не перезаписывать", n: "Нет, не перезаписывать",
t: 'Обновить только теги' t: 'Обновить только теги'
}, },
fallbackBitrate: 'Скачивать с низким битрейтом, если текущий недоступен', fallbackBitrate: 'Загружать с битрейтом ниже, если текущий недоступен',
fallbackSearch: 'Искать похожий трек, если нужный недоступен', fallbackSearch: 'Искать похожий трек, если запрашиваемый недоступен',
logErrors: 'Сохранять логи ошибок', logErrors: 'Создать логи для ошибок',
logSearched: 'Сохранять лог истории поиска', logSearched: 'Создать лог поиска',
createM3U8File: 'Создавать файлы плейлистов', createM3U8File: 'Создать файлы плейлистов',
syncedLyrics: 'Создавать .lyr файлы (синхронизированная лирика)', syncedLyrics: 'Создать .lyr файлы (Синхронизированный текст)',
playlistFilenameTemplate: 'Шаблон названия плейлиста', playlistFilenameTemplate: 'Шаблон названия плейлистов',
saveDownloadQueue: 'Сохранять текущий список загрузок при закрытии приложения' saveDownloadQueue: 'Сохранять текущую очередь загрузок при закрытии приложения'
}, },
covers: { covers: {
title: 'Обложки', title: 'Обложки',
saveArtwork: 'Сохранять обложки', saveArtwork: 'Сохранять обложки файлом',
coverImageTemplate: 'Шаблон названия обложки', coverImageTemplate: 'Шаблон названия изображения',
saveArtworkArtist: 'Сохранять изображение исполнителя', saveArtworkArtist: 'Сохранять изображение исполнителя файлом',
artistImageTemplate: 'Шаблон названия изображения', artistImageTemplate: 'Шаблон названия изображения',
localArtworkSize: 'Размер сохраненной обложки', localArtworkSize: 'Размер сохраненной обложки файлом',
embeddedArtworkSize: 'Размер встроенной', embeddedArtworkSize: 'Размер встроенной в теги обложки',
localArtworkFormat: { localArtworkFormat: {
title: 'В каком формате сохранять обложки?', title: 'В каком формате сохранять обложки?',
jpg: 'jpeg', jpg: 'jpeg',
@ -257,23 +257,23 @@ const ru = {
genre: 'Жанр', genre: 'Жанр',
year: 'Год', year: 'Год',
date: 'Дата', date: 'Дата',
explicit: 'Нецензурная лирика', explicit: 'Пометка о нецензурной лексике',
isrc: 'ISRC', isrc: 'Идентиф. код трека (ISRC)',
length: 'Продолжительность', length: 'Продолжительность',
barcode: 'Штрихкод альбома (UPC)', barcode: 'Идентиф. код альбома (UPC)',
bpm: 'BPM', bpm: 'BPM',
replayGain: 'Replay Gain', replayGain: 'Replay Gain',
label: 'Издатель', label: 'Издатель',
lyrics: 'Несинхронизированная лирика', lyrics: 'Текст песни',
copyright: 'Права', copyright: 'Автор. права',
composer: 'Композитор', composer: 'Композитор',
involvedPeople: 'Вовлечённые люди' involvedPeople: 'Вовлечённые люди'
}, },
other: { other: {
title: 'Разное', title: 'Разное',
savePlaylistAsCompilation: 'Сохранять плейлисты как сборники', savePlaylistAsCompilation: 'Сохранить плейлисты как сборники',
useNullSeparator: 'Использовать null в качестве разделителя', useNullSeparator: 'Использовать нулевой символ в качестве разделителя',
saveID3v1: 'Сохранять ID3v1', saveID3v1: 'Дополнительно сохранять ID3v1',
multiArtistSeparator: { multiArtistSeparator: {
title: 'Как разделять несколько исполнителей?', title: 'Как разделять несколько исполнителей?',
nothing: 'Сохранить только основного', nothing: 'Сохранить только основного',
@ -281,22 +281,22 @@ const ru = {
andFeat: 'Используя & и feat.', andFeat: 'Используя & и feat.',
using: 'Используя "{0}"' using: 'Используя "{0}"'
}, },
singleAlbumArtist: 'Сохранять только основного исполнителя альбома', singleAlbumArtist: 'Сохранить только основного исполнителя альбома',
albumVariousArtists: 'Оставлять "Various Artists" в Исполнителях альбома', albumVariousArtists: 'Оставить "Various Artists" в исполнителях альбома',
removeAlbumVersion: 'Удалять "Album Version" из названия трека', removeAlbumVersion: 'Удалить "Album Version" из названия трека',
removeDuplicateArtists: 'Удалять повторяющихся исполнителей', removeDuplicateArtists: 'Удалить повторяющихся исполнителей',
dateFormat: { dateFormat: {
title: 'Формат даты для FLAC файлов', title: 'Формат даты для FLAC файлов',
year: 'YYYY', year: 'ГГГГ',
month: 'MM', month: 'ММ',
day: 'DD' day: 'ДД'
}, },
featuredToTitle: { featuredToTitle: {
title: 'Что делать с приглашёнными исполнителями?', title: 'Что делать с "feat."?',
0: 'Ничего', 0: 'Ничего',
1: 'Удалить их из названия', 1: 'Удалить из названия трека',
3: 'Удалить из названия и названия альбома', 3: 'Удалить из названия трека и альбома',
2: 'Добавить в название' 2: 'Добавить в название трека'
}, },
titleCasing: 'Регистр названия', titleCasing: 'Регистр названия',
artistCasing: 'Регистр исполнителя', artistCasing: 'Регистр исполнителя',
@ -310,7 +310,7 @@ const ru = {
previewVolume: 'Громкость прослушивания', previewVolume: 'Громкость прослушивания',
executeCommand: { executeCommand: {
title: 'Выполнять команды по окончании загрузок', title: 'Выполнять команды по окончании загрузок',
description: 'Оставьте поле пустым, если ничего не требуется' description: 'Оставьте пустым, если ничего не требуется'
} }
}, },
spotify: { spotify: {
@ -337,7 +337,7 @@ const ru = {
about: 'о проекте' about: 'о проекте'
}, },
tracklist: { tracklist: {
downloadSelection: 'Скачать выбранные' downloadSelection: 'Загрузить выбранные'
} }
} }