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) {
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',
finishAddingArtist: 'Added {0} albums to queue',
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: {
title: 'Settings',

View File

@ -160,7 +160,8 @@ const it = {
startAddingArtist: 'Aggiungendo gli album di {0} alla coda',
finishAddingArtist: 'Aggiunto gli album di {0} alla coda',
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: {
title: 'Impostazioni',

View File

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