Merge pull request 'fixed Russian translation' (#17) from m3troux/deemix-webui:main into main

Reviewed-on: https://codeberg.org/RemixDev/deemix-webui/pulls/17
This commit is contained in:
RemixDev 2020-07-30 18:13:59 +02:00
commit af6d95018f

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: 'Очистить завершённые',
@ -40,10 +40,10 @@ const ru = {
}, },
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: 'Официальный сайт',
@ -57,21 +57,21 @@ const ru = {
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
>.` >.`
}, },
charts: { charts: {
title: 'Чарты', title: 'Чарты',
changeCountry: 'Изменить страну', changeCountry: 'Сменить страну',
download: 'Загрузить чарт' download: 'Скачать чарт'
}, },
errors: { errors: {
title: 'Ошибки {0}', title: 'Ошибки {0}',
@ -79,15 +79,15 @@ const ru = {
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. Альтернатив не найдено!"
@ -101,7 +101,7 @@ const ru = {
noTracks: 'Избранные треки не найдены' noTracks: 'Избранные треки не найдены'
}, },
home: { home: {
needTologin: 'Вам необходимо войти под своей учетной записью Deezer, прежде чем вы сможете начать скачивание.', needTologin: 'Вам необходимо войти под своей учетной записью Deezer, прежде чем вы сможете скачивать.',
openSettings: 'Открыть настройки', openSettings: 'Открыть настройки',
sections: { sections: {
popularPlaylists: 'Популярные плейлисты', popularPlaylists: 'Популярные плейлисты',
@ -109,7 +109,7 @@ const ru = {
} }
}, },
linkAnalyzer: { linkAnalyzer: {
info: 'Используйте этот раздел, чтобы узнать информацию о ссылке, которую необходимо загрузить.', info: 'Используйте этот раздел, чтобы узнать информацию о ссылке, которую требуется скачать.',
useful: useful:
"Этот раздел нужен, если вы хотите загрузить треки, недоступные в вашей стране, а также посмотреть, где они доступны.", "Этот раздел нужен, если вы хотите загрузить треки, недоступные в вашей стране, а также посмотреть, где они доступны.",
linkNotSupported: 'Ссылка не поддерживается', linkNotSupported: 'Ссылка не поддерживается',
@ -153,12 +153,13 @@ const ru = {
alreadyLogged: 'Вход уже выполнен', alreadyLogged: 'Вход уже выполнен',
loginFailed: "Вход не выполнен", loginFailed: "Вход не выполнен",
loggedOut: 'Вы вышли из аккаунта', loggedOut: 'Вы вышли из аккаунта',
cancellingCurrentItem: 'Отменена текущая загрузка.', cancellingCurrentItem: 'Отмена текущей загрузки.',
currentItemCancelled: 'Отменено.', currentItemCancelled: 'Отменено.',
startAddingArtist: 'Добавление альбомов {0} в очередь', startAddingArtist: 'Добавление альбомов {0} в очередь',
finishAddingArtist: 'Альбомы {0} добавлены в очередь', finishAddingArtist: 'Альбомы {0} добавлены в очередь',
startConvertingSpotifyPlaylist: 'Добавление плейлиста Spotify в очередь', startConvertingSpotifyPlaylist: 'Добавление плейлиста Spotify в очередь',
finishConvertingSpotifyPlaylist: 'Spotify плейлист добавлен в очередь' finishConvertingSpotifyPlaylist: 'Spotify плейлист добавлен в очередь',
loginNeededToDownload: 'Войдите в аккаунт, чтобы скачивать треки!'
}, },
settings: { settings: {
title: 'Настройки', title: 'Настройки',
@ -181,26 +182,26 @@ const ru = {
}, },
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: 'Добавить ноль к номерам треков (01, 02, ...)', padTracks: 'Добавлять ноль к номерам треков (01, 02, ...)',
paddingSize: 'Кол-во добавленных нолей', paddingSize: 'Кол-во цифр в номере',
illegalCharacterReplacer: 'Замена для запрещённых в имени символов' illegalCharacterReplacer: 'Замена для запрещённых в имени символов'
}, },
downloads: { downloads: {
@ -220,20 +221,20 @@ const ru = {
}, },
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: 'В каком формате сохранять обложки?',
@ -257,23 +258,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: 'Использовать нулевой символ в качестве разделителя', useNullSeparator: 'Использовать null в качестве разделителя',
saveID3v1: 'Дополнительно сохранять ID3v1', saveID3v1: 'Сохранять ID3v1',
multiArtistSeparator: { multiArtistSeparator: {
title: 'Как разделять несколько исполнителей?', title: 'Как разделять несколько исполнителей?',
nothing: 'Сохранить только основного', nothing: 'Сохранить только основного',
@ -292,7 +293,7 @@ const ru = {
day: 'ДД' day: 'ДД'
}, },
featuredToTitle: { featuredToTitle: {
title: 'Что делать с "feat."?', title: 'Что делать с приглашёнными исполнителями (feat.)?',
0: 'Ничего', 0: 'Ничего',
1: 'Удалить из названия трека', 1: 'Удалить из названия трека',
3: 'Удалить из названия трека и альбома', 3: 'Удалить из названия трека и альбома',
@ -314,7 +315,7 @@ const ru = {
} }
}, },
spotify: { spotify: {
title: 'Функции Spotify', title: 'Настройки Spotify',
clientID: 'Spotify clientID', clientID: 'Spotify clientID',
clientSecret: 'Spotify Client Secret', clientSecret: 'Spotify Client Secret',
username: 'Spotify username' username: 'Spotify username'
@ -337,7 +338,7 @@ const ru = {
about: 'о проекте' about: 'о проекте'
}, },
tracklist: { tracklist: {
downloadSelection: 'Загрузить выбранные' downloadSelection: 'Скачать выбранные'
} }
} }