From 897be92e22b46b74a3e06ab5ab065e58a3081fe2 Mon Sep 17 00:00:00 2001 From: RemixDev Date: Wed, 29 Jul 2020 18:36:28 +0200 Subject: [PATCH 1/6] Converted ru.js into utf-8 --- src/lang/ru.js | 688 ++++++++++++++++++++++++------------------------- 1 file changed, 344 insertions(+), 344 deletions(-) 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 From cbc0e0d710dcb313fc357fcc05606a8311430a28 Mon Sep 17 00:00:00 2001 From: Roberto Tonino Date: Wed, 29 Jul 2020 18:41:08 +0200 Subject: [PATCH 2/6] added Russian, Turkish, French and Portuguese (Brazilian) languages --- public/js/bundle.js | 10 +- src/components/TheSettingsTab.vue | 98 ++--- src/lang/es.js | 27 +- src/lang/fr.js | 26 +- src/lang/pt-br.js | 345 +++++++++++++++ src/lang/pt-pt.js | 675 +++++++++++++++--------------- src/lang/tr.js | 344 +++++++++++++++ src/plugins/i18n.js | 46 +- src/utils/flags.js | 8 +- 9 files changed, 1150 insertions(+), 429 deletions(-) create mode 100644 src/lang/pt-br.js create mode 100644 src/lang/tr.js diff --git a/public/js/bundle.js b/public/js/bundle.js index 81db07f..54ad7d5 100644 --- a/public/js/bundle.js +++ b/public/js/bundle.js @@ -3,7 +3,7 @@ * (c) 2014-2019 Evan You * Released under the MIT License. */ -var t=Object.freeze({});function e(t){return null==t}function n(t){return null!=t}function a(t){return!0===t}function i(t){return"string"==typeof t||"number"==typeof t||"symbol"==typeof t||"boolean"==typeof t}function r(t){return null!==t&&"object"==typeof t}var s=Object.prototype.toString;function o(t){return"[object Object]"===s.call(t)}function l(t){var e=parseFloat(String(t));return e>=0&&Math.floor(e)===e&&isFinite(t)}function c(t){return n(t)&&"function"==typeof t.then&&"function"==typeof t.catch}function d(t){return null==t?"":Array.isArray(t)||o(t)&&t.toString===s?JSON.stringify(t,null,2):String(t)}function u(t){var e=parseFloat(t);return isNaN(e)?t:e}function p(t,e){for(var n=Object.create(null),a=t.split(","),i=0;i-1)return t.splice(n,1)}}var v=Object.prototype.hasOwnProperty;function g(t,e){return v.call(t,e)}function b(t){var e=Object.create(null);return function(n){return e[n]||(e[n]=t(n))}}var _=/-(\w)/g,y=b((function(t){return t.replace(_,(function(t,e){return e?e.toUpperCase():""}))})),k=b((function(t){return t.charAt(0).toUpperCase()+t.slice(1)})),w=/\B([A-Z])/g,A=b((function(t){return t.replace(w,"-$1").toLowerCase()}));var C=Function.prototype.bind?function(t,e){return t.bind(e)}:function(t,e){function n(n){var a=arguments.length;return a?a>1?t.apply(e,arguments):t.call(e,n):t.call(e)}return n._length=t.length,n};function x(t,e){e=e||0;for(var n=t.length-e,a=new Array(n);n--;)a[n]=t[n+e];return a}function T(t,e){for(var n in e)t[n]=e[n];return t}function S(t){for(var e={},n=0;n0,K=W&&W.indexOf("edge/")>0,Y=(W&&W.indexOf("android"),W&&/iphone|ipad|ipod|ios/.test(W)||"ios"===H),J=(W&&/chrome\/\d+/.test(W),W&&/phantomjs/.test(W),W&&W.match(/firefox\/(\d+)/)),X={}.watch,Z=!1;if(U)try{var tt={};Object.defineProperty(tt,"passive",{get:function(){Z=!0}}),window.addEventListener("test-passive",null,tt)}catch(t){}var et=function(){return void 0===B&&(B=!U&&!V&&"undefined"!=typeof global&&(global.process&&"server"===global.process.env.VUE_ENV)),B},nt=U&&window.__VUE_DEVTOOLS_GLOBAL_HOOK__;function at(t){return"function"==typeof t&&/native code/.test(t.toString())}var it,rt="undefined"!=typeof Symbol&&at(Symbol)&&"undefined"!=typeof Reflect&&at(Reflect.ownKeys);it="undefined"!=typeof Set&&at(Set)?Set:function(){function t(){this.set=Object.create(null)}return t.prototype.has=function(t){return!0===this.set[t]},t.prototype.add=function(t){this.set[t]=!0},t.prototype.clear=function(){this.set=Object.create(null)},t}();var st=M,ot=0,lt=function(){this.id=ot++,this.subs=[]};lt.prototype.addSub=function(t){this.subs.push(t)},lt.prototype.removeSub=function(t){m(this.subs,t)},lt.prototype.depend=function(){lt.target&<.target.addDep(this)},lt.prototype.notify=function(){for(var t=this.subs.slice(),e=0,n=t.length;e-1)if(r&&!g(i,"default"))s=!1;else if(""===s||s===A(t)){var l=jt(String,i.type);(l<0||o0&&(le((l=t(l,(s||"")+"_"+o))[0])&&le(d)&&(u[c]=mt(d.text+l[0].text),l.shift()),u.push.apply(u,l)):i(l)?le(d)?u[c]=mt(d.text+l):""!==l&&u.push(mt(l)):le(l)&&le(d)?u[c]=mt(d.text+l.text):(a(r._isVList)&&n(l.tag)&&e(l.key)&&n(s)&&(l.key="__vlist"+s+"_"+o+"__"),u.push(l)));return u}(t):void 0}function le(t){return n(t)&&n(t.text)&&!1===t.isComment}function ce(t,e){if(t){for(var n=Object.create(null),a=rt?Reflect.ownKeys(t):Object.keys(t),i=0;i0,s=e?!!e.$stable:!r,o=e&&e.$key;if(e){if(e._normalized)return e._normalized;if(s&&a&&a!==t&&o===a.$key&&!r&&!a.$hasNormal)return a;for(var l in i={},e)e[l]&&"$"!==l[0]&&(i[l]=he(n,l,e[l]))}else i={};for(var c in n)c in i||(i[c]=fe(n,c));return e&&Object.isExtensible(e)&&(e._normalized=i),j(i,"$stable",s),j(i,"$key",o),j(i,"$hasNormal",r),i}function he(t,e,n){var a=function(){var t=arguments.length?n.apply(null,arguments):n({});return(t=t&&"object"==typeof t&&!Array.isArray(t)?[t]:oe(t))&&(0===t.length||1===t.length&&t[0].isComment)?void 0:t};return n.proxy&&Object.defineProperty(t,e,{get:a,enumerable:!0,configurable:!0}),a}function fe(t,e){return function(){return t[e]}}function me(t,e){var a,i,s,o,l;if(Array.isArray(t)||"string"==typeof t)for(a=new Array(t.length),i=0,s=t.length;idocument.createEvent("Event").timeStamp&&(sn=function(){return on.now()})}function ln(){var t,e;for(rn=sn(),nn=!0,Xe.sort((function(t,e){return t.id-e.id})),an=0;anan&&Xe[n].id>t.id;)n--;Xe.splice(n+1,0,t)}else Xe.push(t);en||(en=!0,Zt(ln))}}(this)},dn.prototype.run=function(){if(this.active){var t=this.get();if(t!==this.value||r(t)||this.deep){var e=this.value;if(this.value=t,this.user)try{this.cb.call(this.vm,t,e)}catch(t){Ot(t,this.vm,'callback for watcher "'+this.expression+'"')}else this.cb.call(this.vm,t,e)}}},dn.prototype.evaluate=function(){this.value=this.get(),this.dirty=!1},dn.prototype.depend=function(){for(var t=this.deps.length;t--;)this.deps[t].depend()},dn.prototype.teardown=function(){if(this.active){this.vm._isBeingDestroyed||m(this.vm._watchers,this);for(var t=this.deps.length;t--;)this.deps[t].removeSub(this);this.active=!1}};var un={enumerable:!0,configurable:!0,get:M,set:M};function pn(t,e,n){un.get=function(){return this[e][n]},un.set=function(t){this[e][n]=t},Object.defineProperty(t,n,un)}function hn(t){t._watchers=[];var e=t.$options;e.props&&function(t,e){var n=t.$options.propsData||{},a=t._props={},i=t.$options._propKeys=[];t.$parent&&kt(!1);var r=function(r){i.push(r);var s=It(r,e,n,t);Ct(a,r,s),r in t||pn(t,"_props",r)};for(var s in e)r(s);kt(!0)}(t,e.props),e.methods&&function(t,e){t.$options.props;for(var n in e)t[n]="function"!=typeof e[n]?M:C(e[n],t)}(t,e.methods),e.data?function(t){var e=t.$options.data;o(e=t._data="function"==typeof e?function(t,e){dt();try{return t.call(e,e)}catch(t){return Ot(t,e,"data()"),{}}finally{ut()}}(e,t):e||{})||(e={});var n=Object.keys(e),a=t.$options.props,i=(t.$options.methods,n.length);for(;i--;){var r=n[i];a&&g(a,r)||R(r)||pn(t,"_data",r)}At(e,!0)}(t):At(t._data={},!0),e.computed&&function(t,e){var n=t._computedWatchers=Object.create(null),a=et();for(var i in e){var r=e[i],s="function"==typeof r?r:r.get;a||(n[i]=new dn(t,s||M,M,fn)),i in t||mn(t,i,r)}}(t,e.computed),e.watch&&e.watch!==X&&function(t,e){for(var n in e){var a=e[n];if(Array.isArray(a))for(var i=0;i-1:"string"==typeof t?t.split(",").indexOf(e)>-1:(n=t,"[object RegExp]"===s.call(n)&&t.test(e));var n}function xn(t,e){var n=t.cache,a=t.keys,i=t._vnode;for(var r in n){var s=n[r];if(s){var o=An(s.componentOptions);o&&!e(o)&&Tn(n,r,a,i)}}}function Tn(t,e,n,a){var i=t[e];!i||a&&i.tag===a.tag||i.componentInstance.$destroy(),t[e]=null,m(n,e)}!function(e){e.prototype._init=function(e){var n=this;n._uid=_n++,n._isVue=!0,e&&e._isComponent?function(t,e){var n=t.$options=Object.create(t.constructor.options),a=e._parentVnode;n.parent=e.parent,n._parentVnode=a;var i=a.componentOptions;n.propsData=i.propsData,n._parentListeners=i.listeners,n._renderChildren=i.children,n._componentTag=i.tag,e.render&&(n.render=e.render,n.staticRenderFns=e.staticRenderFns)}(n,e):n.$options=Pt(yn(n.constructor),e||{},n),n._renderProxy=n,n._self=n,function(t){var e=t.$options,n=e.parent;if(n&&!e.abstract){for(;n.$options.abstract&&n.$parent;)n=n.$parent;n.$children.push(t)}t.$parent=n,t.$root=n?n.$root:t,t.$children=[],t.$refs={},t._watcher=null,t._inactive=null,t._directInactive=!1,t._isMounted=!1,t._isDestroyed=!1,t._isBeingDestroyed=!1}(n),function(t){t._events=Object.create(null),t._hasHookEvent=!1;var e=t.$options._parentListeners;e&&We(t,e)}(n),function(e){e._vnode=null,e._staticTrees=null;var n=e.$options,a=e.$vnode=n._parentVnode,i=a&&a.context;e.$slots=de(n._renderChildren,i),e.$scopedSlots=t,e._c=function(t,n,a,i){return Fe(e,t,n,a,i,!1)},e.$createElement=function(t,n,a,i){return Fe(e,t,n,a,i,!0)};var r=a&&a.data;Ct(e,"$attrs",r&&r.attrs||t,null,!0),Ct(e,"$listeners",n._parentListeners||t,null,!0)}(n),Je(n,"beforeCreate"),function(t){var e=ce(t.$options.inject,t);e&&(kt(!1),Object.keys(e).forEach((function(n){Ct(t,n,e[n])})),kt(!0))}(n),hn(n),function(t){var e=t.$options.provide;e&&(t._provided="function"==typeof e?e.call(t):e)}(n),Je(n,"created"),n.$options.el&&n.$mount(n.$options.el)}}(kn),function(t){var e={get:function(){return this._data}},n={get:function(){return this._props}};Object.defineProperty(t.prototype,"$data",e),Object.defineProperty(t.prototype,"$props",n),t.prototype.$set=xt,t.prototype.$delete=Tt,t.prototype.$watch=function(t,e,n){if(o(e))return bn(this,t,e,n);(n=n||{}).user=!0;var a=new dn(this,t,e,n);if(n.immediate)try{e.call(this,a.value)}catch(t){Ot(t,this,'callback for immediate watcher "'+a.expression+'"')}return function(){a.teardown()}}}(kn),function(t){var e=/^hook:/;t.prototype.$on=function(t,n){var a=this;if(Array.isArray(t))for(var i=0,r=t.length;i1?x(n):n;for(var a=x(arguments,1),i='event handler for "'+t+'"',r=0,s=n.length;rparseInt(this.max)&&Tn(s,o[0],o,this._vnode)),e.data.keepAlive=!0}return e||t&&t[0]}}};!function(t){var e={get:function(){return I}};Object.defineProperty(t,"config",e),t.util={warn:st,extend:T,mergeOptions:Pt,defineReactive:Ct},t.set=xt,t.delete=Tt,t.nextTick=Zt,t.observable=function(t){return At(t),t},t.options=Object.create(null),P.forEach((function(e){t.options[e+"s"]=Object.create(null)})),t.options._base=t,T(t.options.components,Mn),function(t){t.use=function(t){var e=this._installedPlugins||(this._installedPlugins=[]);if(e.indexOf(t)>-1)return this;var n=x(arguments,1);return n.unshift(this),"function"==typeof t.install?t.install.apply(t,n):"function"==typeof t&&t.apply(null,n),e.push(t),this}}(t),function(t){t.mixin=function(t){return this.options=Pt(this.options,t),this}}(t),wn(t),function(t){P.forEach((function(e){t[e]=function(t,n){return n?("component"===e&&o(n)&&(n.name=n.name||t,n=this.options._base.extend(n)),"directive"===e&&"function"==typeof n&&(n={bind:n,update:n}),this.options[e+"s"][t]=n,n):this.options[e+"s"][t]}}))}(t)}(kn),Object.defineProperty(kn.prototype,"$isServer",{get:et}),Object.defineProperty(kn.prototype,"$ssrContext",{get:function(){return this.$vnode&&this.$vnode.ssrContext}}),Object.defineProperty(kn,"FunctionalRenderContext",{value:De}),kn.version="2.6.11";var $n=p("style,class"),Dn=p("input,textarea,option,select,progress"),zn=function(t,e,n){return"value"===n&&Dn(t)&&"button"!==e||"selected"===n&&"option"===t||"checked"===n&&"input"===t||"muted"===n&&"video"===t},Nn=p("contenteditable,draggable,spellcheck"),Ln=p("events,caret,typing,plaintext-only"),Pn=p("allowfullscreen,async,autofocus,autoplay,checked,compact,controls,declare,default,defaultchecked,defaultmuted,defaultselected,defer,disabled,enabled,formnovalidate,hidden,indeterminate,inert,ismap,itemscope,loop,multiple,muted,nohref,noresize,noshade,novalidate,nowrap,open,pauseonexit,readonly,required,reversed,scoped,seamless,selected,sortable,translate,truespeed,typemustmatch,visible"),En="http://www.w3.org/1999/xlink",In=function(t){return":"===t.charAt(5)&&"xlink"===t.slice(0,5)},Fn=function(t){return In(t)?t.slice(6,t.length):""},Rn=function(t){return null==t||!1===t};function jn(t){for(var e=t.data,a=t,i=t;n(i.componentInstance);)(i=i.componentInstance._vnode)&&i.data&&(e=On(i.data,e));for(;n(a=a.parent);)a&&a.data&&(e=On(e,a.data));return function(t,e){if(n(t)||n(e))return Bn(t,qn(e));return""}(e.staticClass,e.class)}function On(t,e){return{staticClass:Bn(t.staticClass,e.staticClass),class:n(t.class)?[t.class,e.class]:e.class}}function Bn(t,e){return t?e?t+" "+e:t:e||""}function qn(t){return Array.isArray(t)?function(t){for(var e,a="",i=0,r=t.length;i-1?ha(t,e,n):Pn(e)?Rn(n)?t.removeAttribute(e):(n="allowfullscreen"===e&&"EMBED"===t.tagName?"true":e,t.setAttribute(e,n)):Nn(e)?t.setAttribute(e,function(t,e){return Rn(e)||"false"===e?"false":"contenteditable"===t&&Ln(e)?e:"true"}(e,n)):In(e)?Rn(n)?t.removeAttributeNS(En,Fn(e)):t.setAttributeNS(En,e,n):ha(t,e,n)}function ha(t,e,n){if(Rn(n))t.removeAttribute(e);else{if(Q&&!G&&"TEXTAREA"===t.tagName&&"placeholder"===e&&""!==n&&!t.__ieph){var a=function(e){e.stopImmediatePropagation(),t.removeEventListener("input",a)};t.addEventListener("input",a),t.__ieph=!0}t.setAttribute(e,n)}}var fa={create:ua,update:ua};function ma(t,a){var i=a.elm,r=a.data,s=t.data;if(!(e(r.staticClass)&&e(r.class)&&(e(s)||e(s.staticClass)&&e(s.class)))){var o=jn(a),l=i._transitionClasses;n(l)&&(o=Bn(o,qn(l))),o!==i._prevClass&&(i.setAttribute("class",o),i._prevClass=o)}}var va,ga,ba,_a,ya,ka,wa={create:ma,update:ma},Aa=/[\w).+\-_$\]]/;function Ca(t){var e,n,a,i,r,s=!1,o=!1,l=!1,c=!1,d=0,u=0,p=0,h=0;for(a=0;a=0&&" "===(m=t.charAt(f));f--);m&&Aa.test(m)||(c=!0)}}else void 0===i?(h=a+1,i=t.slice(0,a).trim()):v();function v(){(r||(r=[])).push(t.slice(h,a).trim()),h=a+1}if(void 0===i?i=t.slice(0,a).trim():0!==h&&v(),r)for(a=0;a-1?{exp:t.slice(0,_a),key:'"'+t.slice(_a+1)+'"'}:{exp:t,key:null};ga=t,_a=ya=ka=0;for(;!Ba();)qa(ba=Oa())?Va(ba):91===ba&&Ua(ba);return{exp:t.slice(0,ya),key:t.slice(ya+1,ka)}}(t);return null===n.key?t+"="+e:"$set("+n.exp+", "+n.key+", "+e+")"}function Oa(){return ga.charCodeAt(++_a)}function Ba(){return _a>=va}function qa(t){return 34===t||39===t}function Ua(t){var e=1;for(ya=_a;!Ba();)if(qa(t=Oa()))Va(t);else if(91===t&&e++,93===t&&e--,0===e){ka=_a;break}}function Va(t){for(var e=t;!Ba()&&(t=Oa())!==e;);}var Ha;function Wa(t,e,n){var a=Ha;return function i(){var r=e.apply(null,arguments);null!==r&&Ka(t,i,n,a)}}var Qa=Ht&&!(J&&Number(J[1])<=53);function Ga(t,e,n,a){if(Qa){var i=rn,r=e;e=r._wrapper=function(t){if(t.target===t.currentTarget||t.timeStamp>=i||t.timeStamp<=0||t.target.ownerDocument!==document)return r.apply(this,arguments)}}Ha.addEventListener(t,e,Z?{capture:n,passive:a}:n)}function Ka(t,e,n,a){(a||Ha).removeEventListener(t,e._wrapper||e,n)}function Ya(t,a){if(!e(t.data.on)||!e(a.data.on)){var i=a.data.on||{},r=t.data.on||{};Ha=a.elm,function(t){if(n(t.__r)){var e=Q?"change":"input";t[e]=[].concat(t.__r,t[e]||[]),delete t.__r}n(t.__c)&&(t.change=[].concat(t.__c,t.change||[]),delete t.__c)}(i),ie(i,r,Ga,Ka,Wa,a.context),Ha=void 0}}var Ja,Xa={create:Ya,update:Ya};function Za(t,a){if(!e(t.data.domProps)||!e(a.data.domProps)){var i,r,s=a.elm,o=t.data.domProps||{},l=a.data.domProps||{};for(i in n(l.__ob__)&&(l=a.data.domProps=T({},l)),o)i in l||(s[i]="");for(i in l){if(r=l[i],"textContent"===i||"innerHTML"===i){if(a.children&&(a.children.length=0),r===o[i])continue;1===s.childNodes.length&&s.removeChild(s.childNodes[0])}if("value"===i&&"PROGRESS"!==s.tagName){s._value=r;var c=e(r)?"":String(r);ti(s,c)&&(s.value=c)}else if("innerHTML"===i&&Hn(s.tagName)&&e(s.innerHTML)){(Ja=Ja||document.createElement("div")).innerHTML=""+r+"";for(var d=Ja.firstChild;s.firstChild;)s.removeChild(s.firstChild);for(;d.firstChild;)s.appendChild(d.firstChild)}else if(r!==o[i])try{s[i]=r}catch(t){}}}}function ti(t,e){return!t.composing&&("OPTION"===t.tagName||function(t,e){var n=!0;try{n=document.activeElement!==t}catch(t){}return n&&t.value!==e}(t,e)||function(t,e){var a=t.value,i=t._vModifiers;if(n(i)){if(i.number)return u(a)!==u(e);if(i.trim)return a.trim()!==e.trim()}return a!==e}(t,e))}var ei={create:Za,update:Za},ni=b((function(t){var e={},n=/:(.+)/;return t.split(/;(?![^(]*\))/g).forEach((function(t){if(t){var a=t.split(n);a.length>1&&(e[a[0].trim()]=a[1].trim())}})),e}));function ai(t){var e=ii(t.style);return t.staticStyle?T(t.staticStyle,e):e}function ii(t){return Array.isArray(t)?S(t):"string"==typeof t?ni(t):t}var ri,si=/^--/,oi=/\s*!important$/,li=function(t,e,n){if(si.test(e))t.style.setProperty(e,n);else if(oi.test(n))t.style.setProperty(A(e),n.replace(oi,""),"important");else{var a=di(e);if(Array.isArray(n))for(var i=0,r=n.length;i-1?e.split(hi).forEach((function(e){return t.classList.add(e)})):t.classList.add(e);else{var n=" "+(t.getAttribute("class")||"")+" ";n.indexOf(" "+e+" ")<0&&t.setAttribute("class",(n+e).trim())}}function mi(t,e){if(e&&(e=e.trim()))if(t.classList)e.indexOf(" ")>-1?e.split(hi).forEach((function(e){return t.classList.remove(e)})):t.classList.remove(e),t.classList.length||t.removeAttribute("class");else{for(var n=" "+(t.getAttribute("class")||"")+" ",a=" "+e+" ";n.indexOf(a)>=0;)n=n.replace(a," ");(n=n.trim())?t.setAttribute("class",n):t.removeAttribute("class")}}function vi(t){if(t){if("object"==typeof t){var e={};return!1!==t.css&&T(e,gi(t.name||"v")),T(e,t),e}return"string"==typeof t?gi(t):void 0}}var gi=b((function(t){return{enterClass:t+"-enter",enterToClass:t+"-enter-to",enterActiveClass:t+"-enter-active",leaveClass:t+"-leave",leaveToClass:t+"-leave-to",leaveActiveClass:t+"-leave-active"}})),bi=U&&!G,_i="transition",yi="transitionend",ki="animation",wi="animationend";bi&&(void 0===window.ontransitionend&&void 0!==window.onwebkittransitionend&&(_i="WebkitTransition",yi="webkitTransitionEnd"),void 0===window.onanimationend&&void 0!==window.onwebkitanimationend&&(ki="WebkitAnimation",wi="webkitAnimationEnd"));var Ai=U?window.requestAnimationFrame?window.requestAnimationFrame.bind(window):setTimeout:function(t){return t()};function Ci(t){Ai((function(){Ai(t)}))}function xi(t,e){var n=t._transitionClasses||(t._transitionClasses=[]);n.indexOf(e)<0&&(n.push(e),fi(t,e))}function Ti(t,e){t._transitionClasses&&m(t._transitionClasses,e),mi(t,e)}function Si(t,e,n){var a=$i(t,e),i=a.type,r=a.timeout,s=a.propCount;if(!i)return n();var o="transition"===i?yi:wi,l=0,c=function(){t.removeEventListener(o,d),n()},d=function(e){e.target===t&&++l>=s&&c()};setTimeout((function(){l0&&(n="transition",d=s,u=r.length):"animation"===e?c>0&&(n="animation",d=c,u=l.length):u=(n=(d=Math.max(s,c))>0?s>c?"transition":"animation":null)?"transition"===n?r.length:l.length:0,{type:n,timeout:d,propCount:u,hasTransform:"transition"===n&&Mi.test(a[_i+"Property"])}}function Di(t,e){for(;t.length1}function Ii(t,e){!0!==e.data.show&&Ni(e)}var Fi=function(t){var r,s,o={},l=t.modules,c=t.nodeOps;for(r=0;rf?_(t,e(i[g+1])?null:i[g+1].elm,i,h,g,r):h>g&&k(a,p,f)}(p,m,g,r,d):n(g)?(n(t.text)&&c.setTextContent(p,""),_(p,null,g,0,g.length-1,r)):n(m)?k(m,0,m.length-1):n(t.text)&&c.setTextContent(p,""):t.text!==i.text&&c.setTextContent(p,i.text),n(f)&&n(h=f.hook)&&n(h=h.postpatch)&&h(t,i)}}}function x(t,e,i){if(a(i)&&n(t.parent))t.parent.data.pendingInsert=e;else for(var r=0;r-1,s.selected!==r&&(s.selected=r);else if(z(qi(s),a))return void(t.selectedIndex!==o&&(t.selectedIndex=o));i||(t.selectedIndex=-1)}}function Bi(t,e){return e.every((function(e){return!z(e,t)}))}function qi(t){return"_value"in t?t._value:t.value}function Ui(t){t.target.composing=!0}function Vi(t){t.target.composing&&(t.target.composing=!1,Hi(t.target,"input"))}function Hi(t,e){var n=document.createEvent("HTMLEvents");n.initEvent(e,!0,!0),t.dispatchEvent(n)}function Wi(t){return!t.componentInstance||t.data&&t.data.transition?t:Wi(t.componentInstance._vnode)}var Qi={model:Ri,show:{bind:function(t,e,n){var a=e.value,i=(n=Wi(n)).data&&n.data.transition,r=t.__vOriginalDisplay="none"===t.style.display?"":t.style.display;a&&i?(n.data.show=!0,Ni(n,(function(){t.style.display=r}))):t.style.display=a?r:"none"},update:function(t,e,n){var a=e.value;!a!=!e.oldValue&&((n=Wi(n)).data&&n.data.transition?(n.data.show=!0,a?Ni(n,(function(){t.style.display=t.__vOriginalDisplay})):Li(n,(function(){t.style.display="none"}))):t.style.display=a?t.__vOriginalDisplay:"none")},unbind:function(t,e,n,a,i){i||(t.style.display=t.__vOriginalDisplay)}}},Gi={name:String,appear:Boolean,css:Boolean,mode:String,type:String,enterClass:String,leaveClass:String,enterToClass:String,leaveToClass:String,enterActiveClass:String,leaveActiveClass:String,appearClass:String,appearActiveClass:String,appearToClass:String,duration:[Number,String,Object]};function Ki(t){var e=t&&t.componentOptions;return e&&e.Ctor.options.abstract?Ki(qe(e.children)):t}function Yi(t){var e={},n=t.$options;for(var a in n.propsData)e[a]=t[a];var i=n._parentListeners;for(var r in i)e[y(r)]=i[r];return e}function Ji(t,e){if(/\d-keep-alive$/.test(e.tag))return t("keep-alive",{props:e.componentOptions.propsData})}var Xi=function(t){return t.tag||Be(t)},Zi=function(t){return"show"===t.name},tr={name:"transition",props:Gi,abstract:!0,render:function(t){var e=this,n=this.$slots.default;if(n&&(n=n.filter(Xi)).length){var a=this.mode,r=n[0];if(function(t){for(;t=t.parent;)if(t.data.transition)return!0}(this.$vnode))return r;var s=Ki(r);if(!s)return r;if(this._leaving)return Ji(t,r);var o="__transition-"+this._uid+"-";s.key=null==s.key?s.isComment?o+"comment":o+s.tag:i(s.key)?0===String(s.key).indexOf(o)?s.key:o+s.key:s.key;var l=(s.data||(s.data={})).transition=Yi(this),c=this._vnode,d=Ki(c);if(s.data.directives&&s.data.directives.some(Zi)&&(s.data.show=!0),d&&d.data&&!function(t,e){return e.key===t.key&&e.tag===t.tag}(s,d)&&!Be(d)&&(!d.componentInstance||!d.componentInstance._vnode.isComment)){var u=d.data.transition=T({},l);if("out-in"===a)return this._leaving=!0,re(u,"afterLeave",(function(){e._leaving=!1,e.$forceUpdate()})),Ji(t,r);if("in-out"===a){if(Be(s))return c;var p,h=function(){p()};re(l,"afterEnter",h),re(l,"enterCancelled",h),re(u,"delayLeave",(function(t){p=t}))}}return r}}},er=T({tag:String,moveClass:String},Gi);function nr(t){t.elm._moveCb&&t.elm._moveCb(),t.elm._enterCb&&t.elm._enterCb()}function ar(t){t.data.newPos=t.elm.getBoundingClientRect()}function ir(t){var e=t.data.pos,n=t.data.newPos,a=e.left-n.left,i=e.top-n.top;if(a||i){t.data.moved=!0;var r=t.elm.style;r.transform=r.WebkitTransform="translate("+a+"px,"+i+"px)",r.transitionDuration="0s"}}delete er.mode;var rr={Transition:tr,TransitionGroup:{props:er,beforeMount:function(){var t=this,e=this._update;this._update=function(n,a){var i=Ge(t);t.__patch__(t._vnode,t.kept,!1,!0),t._vnode=t.kept,i(),e.call(t,n,a)}},render:function(t){for(var e=this.tag||this.$vnode.data.tag||"span",n=Object.create(null),a=this.prevChildren=this.children,i=this.$slots.default||[],r=this.children=[],s=Yi(this),o=0;o-1?Gn[t]=e.constructor===window.HTMLUnknownElement||e.constructor===window.HTMLElement:Gn[t]=/HTMLUnknownElement/.test(e.toString())},T(kn.options.directives,Qi),T(kn.options.components,rr),kn.prototype.__patch__=U?Fi:M,kn.prototype.$mount=function(t,e){return function(t,e,n){var a;return t.$el=e,t.$options.render||(t.$options.render=ft),Je(t,"beforeMount"),a=function(){t._update(t._render(),n)},new dn(t,a,M,{before:function(){t._isMounted&&!t._isDestroyed&&Je(t,"beforeUpdate")}},!0),n=!1,null==t.$vnode&&(t._isMounted=!0,Je(t,"mounted")),t}(this,t=t&&U?Yn(t):void 0,e)},U&&setTimeout((function(){I.devtools&&nt&&nt.emit("init",kn)}),0);var sr=/\{\{((?:.|\r?\n)+?)\}\}/g,or=/[-.*+?^${}()|[\]\/\\]/g,lr=b((function(t){var e=t[0].replace(or,"\\$&"),n=t[1].replace(or,"\\$&");return new RegExp(e+"((?:.|\\n)+?)"+n,"g")}));var cr={staticKeys:["staticClass"],transformNode:function(t,e){e.warn;var n=Ea(t,"class");n&&(t.staticClass=JSON.stringify(n));var a=Pa(t,"class",!1);a&&(t.classBinding=a)},genData:function(t){var e="";return t.staticClass&&(e+="staticClass:"+t.staticClass+","),t.classBinding&&(e+="class:"+t.classBinding+","),e}};var dr,ur={staticKeys:["staticStyle"],transformNode:function(t,e){e.warn;var n=Ea(t,"style");n&&(t.staticStyle=JSON.stringify(ni(n)));var a=Pa(t,"style",!1);a&&(t.styleBinding=a)},genData:function(t){var e="";return t.staticStyle&&(e+="staticStyle:"+t.staticStyle+","),t.styleBinding&&(e+="style:("+t.styleBinding+"),"),e}},pr=function(t){return(dr=dr||document.createElement("div")).innerHTML=t,dr.textContent},hr=p("area,base,br,col,embed,frame,hr,img,input,isindex,keygen,link,meta,param,source,track,wbr"),fr=p("colgroup,dd,dt,li,options,p,td,tfoot,th,thead,tr,source"),mr=p("address,article,aside,base,blockquote,body,caption,col,colgroup,dd,details,dialog,div,dl,dt,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,head,header,hgroup,hr,html,legend,li,menuitem,meta,optgroup,option,param,rp,rt,source,style,summary,tbody,td,tfoot,th,thead,title,tr,track"),vr=/^\s*([^\s"'<>\/=]+)(?:\s*(=)\s*(?:"([^"]*)"+|'([^']*)'+|([^\s"'=<>`]+)))?/,gr=/^\s*((?:v-[\w-]+:|@|:|#)\[[^=]+\][^\s"'<>\/=]*)(?:\s*(=)\s*(?:"([^"]*)"+|'([^']*)'+|([^\s"'=<>`]+)))?/,br="[a-zA-Z_][\\-\\.0-9_a-zA-Z"+F.source+"]*",_r="((?:"+br+"\\:)?"+br+")",yr=new RegExp("^<"+_r),kr=/^\s*(\/?)>/,wr=new RegExp("^<\\/"+_r+"[^>]*>"),Ar=/^]+>/i,Cr=/^",""":'"',"&":"&"," ":"\n"," ":"\t","'":"'"},$r=/&(?:lt|gt|quot|amp|#39);/g,Dr=/&(?:lt|gt|quot|amp|#39|#10|#9);/g,zr=p("pre,textarea",!0),Nr=function(t,e){return t&&zr(t)&&"\n"===e[0]};function Lr(t,e){var n=e?Dr:$r;return t.replace(n,(function(t){return Mr[t]}))}var Pr,Er,Ir,Fr,Rr,jr,Or,Br,qr=/^@|^v-on:/,Ur=/^v-|^@|^:|^#/,Vr=/([\s\S]*?)\s+(?:in|of)\s+([\s\S]*)/,Hr=/,([^,\}\]]*)(?:,([^,\}\]]*))?$/,Wr=/^\(|\)$/g,Qr=/^\[.*\]$/,Gr=/:(.*)$/,Kr=/^:|^\.|^v-bind:/,Yr=/\.[^.\]]+(?=[^\]]*$)/g,Jr=/^v-slot(:|$)|^#/,Xr=/[\r\n]/,Zr=/\s+/g,ts=b(pr);function es(t,e,n){return{type:1,tag:t,attrsList:e,attrsMap:ls(e),rawAttrsMap:{},parent:n,children:[]}}function ns(t,e){Pr=e.warn||Ta,jr=e.isPreTag||$,Or=e.mustUseProp||$,Br=e.getTagNamespace||$;e.isReservedTag;Ir=Sa(e.modules,"transformNode"),Fr=Sa(e.modules,"preTransformNode"),Rr=Sa(e.modules,"postTransformNode"),Er=e.delimiters;var n,a,i=[],r=!1!==e.preserveWhitespace,s=e.whitespace,o=!1,l=!1;function c(t){if(d(t),o||t.processed||(t=as(t,e)),i.length||t===n||n.if&&(t.elseif||t.else)&&rs(n,{exp:t.elseif,block:t}),a&&!t.forbidden)if(t.elseif||t.else)s=t,(c=function(t){for(var e=t.length;e--;){if(1===t[e].type)return t[e];t.pop()}}(a.children))&&c.if&&rs(c,{exp:s.elseif,block:s});else{if(t.slotScope){var r=t.slotTarget||'"default"';(a.scopedSlots||(a.scopedSlots={}))[r]=t}a.children.push(t),t.parent=a}var s,c;t.children=t.children.filter((function(t){return!t.slotScope})),d(t),t.pre&&(o=!1),jr(t.tag)&&(l=!1);for(var u=0;u]*>)","i")),p=t.replace(u,(function(t,n,a){return c=a.length,Tr(d)||"noscript"===d||(n=n.replace(//g,"$1").replace(//g,"$1")),Nr(d,n)&&(n=n.slice(1)),e.chars&&e.chars(n),""}));l+=t.length-p.length,t=p,T(d,l-c,l)}else{var h=t.indexOf("<");if(0===h){if(Cr.test(t)){var f=t.indexOf("--\x3e");if(f>=0){e.shouldKeepComment&&e.comment(t.substring(4,f),l,l+f+3),A(f+3);continue}}if(xr.test(t)){var m=t.indexOf("]>");if(m>=0){A(m+2);continue}}var v=t.match(Ar);if(v){A(v[0].length);continue}var g=t.match(wr);if(g){var b=l;A(g[0].length),T(g[1],b,l);continue}var _=C();if(_){x(_),Nr(_.tagName,t)&&A(1);continue}}var y=void 0,k=void 0,w=void 0;if(h>=0){for(k=t.slice(h);!(wr.test(k)||yr.test(k)||Cr.test(k)||xr.test(k)||(w=k.indexOf("<",1))<0);)h+=w,k=t.slice(h);y=t.substring(0,h)}h<0&&(y=t),y&&A(y.length),e.chars&&y&&e.chars(y,l-y.length,l)}if(t===n){e.chars&&e.chars(t);break}}function A(e){l+=e,t=t.substring(e)}function C(){var e=t.match(yr);if(e){var n,a,i={tagName:e[1],attrs:[],start:l};for(A(e[0].length);!(n=t.match(kr))&&(a=t.match(gr)||t.match(vr));)a.start=l,A(a[0].length),a.end=l,i.attrs.push(a);if(n)return i.unarySlash=n[1],A(n[0].length),i.end=l,i}}function x(t){var n=t.tagName,l=t.unarySlash;r&&("p"===a&&mr(n)&&T(a),o(n)&&a===n&&T(n));for(var c=s(n)||!!l,d=t.attrs.length,u=new Array(d),p=0;p=0&&i[s].lowerCasedTag!==o;s--);else s=0;if(s>=0){for(var c=i.length-1;c>=s;c--)e.end&&e.end(i[c].tag,n,r);i.length=s,a=s&&i[s-1].tag}else"br"===o?e.start&&e.start(t,[],!0,n,r):"p"===o&&(e.start&&e.start(t,[],!1,n,r),e.end&&e.end(t,n,r))}T()}(t,{warn:Pr,expectHTML:e.expectHTML,isUnaryTag:e.isUnaryTag,canBeLeftOpenTag:e.canBeLeftOpenTag,shouldDecodeNewlines:e.shouldDecodeNewlines,shouldDecodeNewlinesForHref:e.shouldDecodeNewlinesForHref,shouldKeepComment:e.comments,outputSourceRange:e.outputSourceRange,start:function(t,r,s,d,u){var p=a&&a.ns||Br(t);Q&&"svg"===p&&(r=function(t){for(var e=[],n=0;nl&&(o.push(r=t.slice(l,i)),s.push(JSON.stringify(r)));var c=Ca(a[1].trim());s.push("_s("+c+")"),o.push({"@binding":c}),l=i+a[0].length}return l-1"+("true"===r?":("+e+")":":_q("+e+","+r+")")),La(t,"change","var $$a="+e+",$$el=$event.target,$$c=$$el.checked?("+r+"):("+s+");if(Array.isArray($$a)){var $$v="+(a?"_n("+i+")":i)+",$$i=_i($$a,$$v);if($$el.checked){$$i<0&&("+ja(e,"$$a.concat([$$v])")+")}else{$$i>-1&&("+ja(e,"$$a.slice(0,$$i).concat($$a.slice($$i+1))")+")}}else{"+ja(e,"$$c")+"}",null,!0)}(t,a,i);else if("input"===r&&"radio"===s)!function(t,e,n){var a=n&&n.number,i=Pa(t,"value")||"null";Ma(t,"checked","_q("+e+","+(i=a?"_n("+i+")":i)+")"),La(t,"change",ja(e,i),null,!0)}(t,a,i);else if("input"===r||"textarea"===r)!function(t,e,n){var a=t.attrsMap.type,i=n||{},r=i.lazy,s=i.number,o=i.trim,l=!r&&"range"!==a,c=r?"change":"range"===a?"__r":"input",d="$event.target.value";o&&(d="$event.target.value.trim()");s&&(d="_n("+d+")");var u=ja(e,d);l&&(u="if($event.target.composing)return;"+u);Ma(t,"value","("+e+")"),La(t,c,u,null,!0),(o||s)&&La(t,"blur","$forceUpdate()")}(t,a,i);else if(!I.isReservedTag(r))return Ra(t,a,i),!1;return!0},text:function(t,e){e.value&&Ma(t,"textContent","_s("+e.value+")",e)},html:function(t,e){e.value&&Ma(t,"innerHTML","_s("+e.value+")",e)}},isPreTag:function(t){return"pre"===t},isUnaryTag:hr,mustUseProp:zn,canBeLeftOpenTag:fr,isReservedTag:Wn,getTagNamespace:Qn,staticKeys:function(t){return t.reduce((function(t,e){return t.concat(e.staticKeys||[])}),[]).join(",")}(ps)},vs=b((function(t){return p("type,tag,attrsList,attrsMap,plain,parent,children,attrs,start,end,rawAttrsMap"+(t?","+t:""))}));function gs(t,e){t&&(hs=vs(e.staticKeys||""),fs=e.isReservedTag||$,function t(e){if(e.static=function(t){if(2===t.type)return!1;if(3===t.type)return!0;return!(!t.pre&&(t.hasBindings||t.if||t.for||h(t.tag)||!fs(t.tag)||function(t){for(;t.parent;){if("template"!==(t=t.parent).tag)return!1;if(t.for)return!0}return!1}(t)||!Object.keys(t).every(hs)))}(e),1===e.type){if(!fs(e.tag)&&"slot"!==e.tag&&null==e.attrsMap["inline-template"])return;for(var n=0,a=e.children.length;n|^function(?:\s+[\w$]+)?\s*\(/,_s=/\([^)]*?\);*$/,ys=/^[A-Za-z_$][\w$]*(?:\.[A-Za-z_$][\w$]*|\['[^']*?']|\["[^"]*?"]|\[\d+]|\[[A-Za-z_$][\w$]*])*$/,ks={esc:27,tab:9,enter:13,space:32,up:38,left:37,right:39,down:40,delete:[8,46]},ws={esc:["Esc","Escape"],tab:"Tab",enter:"Enter",space:[" ","Spacebar"],up:["Up","ArrowUp"],left:["Left","ArrowLeft"],right:["Right","ArrowRight"],down:["Down","ArrowDown"],delete:["Backspace","Delete","Del"]},As=function(t){return"if("+t+")return null;"},Cs={stop:"$event.stopPropagation();",prevent:"$event.preventDefault();",self:As("$event.target !== $event.currentTarget"),ctrl:As("!$event.ctrlKey"),shift:As("!$event.shiftKey"),alt:As("!$event.altKey"),meta:As("!$event.metaKey"),left:As("'button' in $event && $event.button !== 0"),middle:As("'button' in $event && $event.button !== 1"),right:As("'button' in $event && $event.button !== 2")};function xs(t,e){var n=e?"nativeOn:":"on:",a="",i="";for(var r in t){var s=Ts(t[r]);t[r]&&t[r].dynamic?i+=r+","+s+",":a+='"'+r+'":'+s+","}return a="{"+a.slice(0,-1)+"}",i?n+"_d("+a+",["+i.slice(0,-1)+"])":n+a}function Ts(t){if(!t)return"function(){}";if(Array.isArray(t))return"["+t.map((function(t){return Ts(t)})).join(",")+"]";var e=ys.test(t.value),n=bs.test(t.value),a=ys.test(t.value.replace(_s,""));if(t.modifiers){var i="",r="",s=[];for(var o in t.modifiers)if(Cs[o])r+=Cs[o],ks[o]&&s.push(o);else if("exact"===o){var l=t.modifiers;r+=As(["ctrl","shift","alt","meta"].filter((function(t){return!l[t]})).map((function(t){return"$event."+t+"Key"})).join("||"))}else s.push(o);return s.length&&(i+=function(t){return"if(!$event.type.indexOf('key')&&"+t.map(Ss).join("&&")+")return null;"}(s)),r&&(i+=r),"function($event){"+i+(e?"return "+t.value+"($event)":n?"return ("+t.value+")($event)":a?"return "+t.value:t.value)+"}"}return e||n?t.value:"function($event){"+(a?"return "+t.value:t.value)+"}"}function Ss(t){var e=parseInt(t,10);if(e)return"$event.keyCode!=="+e;var n=ks[t],a=ws[t];return"_k($event.keyCode,"+JSON.stringify(t)+","+JSON.stringify(n)+",$event.key,"+JSON.stringify(a)+")"}var Ms={on:function(t,e){t.wrapListeners=function(t){return"_g("+t+","+e.value+")"}},bind:function(t,e){t.wrapData=function(n){return"_b("+n+",'"+t.tag+"',"+e.value+","+(e.modifiers&&e.modifiers.prop?"true":"false")+(e.modifiers&&e.modifiers.sync?",true":"")+")"}},cloak:M},$s=function(t){this.options=t,this.warn=t.warn||Ta,this.transforms=Sa(t.modules,"transformCode"),this.dataGenFns=Sa(t.modules,"genData"),this.directives=T(T({},Ms),t.directives);var e=t.isReservedTag||$;this.maybeComponent=function(t){return!!t.component||!e(t.tag)},this.onceId=0,this.staticRenderFns=[],this.pre=!1};function Ds(t,e){var n=new $s(e);return{render:"with(this){return "+(t?zs(t,n):'_c("div")')+"}",staticRenderFns:n.staticRenderFns}}function zs(t,e){if(t.parent&&(t.pre=t.pre||t.parent.pre),t.staticRoot&&!t.staticProcessed)return Ns(t,e);if(t.once&&!t.onceProcessed)return Ls(t,e);if(t.for&&!t.forProcessed)return Es(t,e);if(t.if&&!t.ifProcessed)return Ps(t,e);if("template"!==t.tag||t.slotTarget||e.pre){if("slot"===t.tag)return function(t,e){var n=t.slotName||'"default"',a=js(t,e),i="_t("+n+(a?","+a:""),r=t.attrs||t.dynamicAttrs?qs((t.attrs||[]).concat(t.dynamicAttrs||[]).map((function(t){return{name:y(t.name),value:t.value,dynamic:t.dynamic}}))):null,s=t.attrsMap["v-bind"];!r&&!s||a||(i+=",null");r&&(i+=","+r);s&&(i+=(r?"":",null")+","+s);return i+")"}(t,e);var n;if(t.component)n=function(t,e,n){var a=e.inlineTemplate?null:js(e,n,!0);return"_c("+t+","+Is(e,n)+(a?","+a:"")+")"}(t.component,t,e);else{var a;(!t.plain||t.pre&&e.maybeComponent(t))&&(a=Is(t,e));var i=t.inlineTemplate?null:js(t,e,!0);n="_c('"+t.tag+"'"+(a?","+a:"")+(i?","+i:"")+")"}for(var r=0;r>>0}(s):"")+")"}(t,t.scopedSlots,e)+","),t.model&&(n+="model:{value:"+t.model.value+",callback:"+t.model.callback+",expression:"+t.model.expression+"},"),t.inlineTemplate){var r=function(t,e){var n=t.children[0];if(n&&1===n.type){var a=Ds(n,e.options);return"inlineTemplate:{render:function(){"+a.render+"},staticRenderFns:["+a.staticRenderFns.map((function(t){return"function(){"+t+"}"})).join(",")+"]}"}}(t,e);r&&(n+=r+",")}return n=n.replace(/,$/,"")+"}",t.dynamicAttrs&&(n="_b("+n+',"'+t.tag+'",'+qs(t.dynamicAttrs)+")"),t.wrapData&&(n=t.wrapData(n)),t.wrapListeners&&(n=t.wrapListeners(n)),n}function Fs(t){return 1===t.type&&("slot"===t.tag||t.children.some(Fs))}function Rs(t,e){var n=t.attrsMap["slot-scope"];if(t.if&&!t.ifProcessed&&!n)return Ps(t,e,Rs,"null");if(t.for&&!t.forProcessed)return Es(t,e,Rs);var a="_empty_"===t.slotScope?"":String(t.slotScope),i="function("+a+"){return "+("template"===t.tag?t.if&&n?"("+t.if+")?"+(js(t,e)||"undefined")+":undefined":js(t,e)||"undefined":zs(t,e))+"}",r=a?"":",proxy:true";return"{key:"+(t.slotTarget||'"default"')+",fn:"+i+r+"}"}function js(t,e,n,a,i){var r=t.children;if(r.length){var s=r[0];if(1===r.length&&s.for&&"template"!==s.tag&&"slot"!==s.tag){var o=n?e.maybeComponent(s)?",1":",0":"";return""+(a||zs)(s,e)+o}var l=n?function(t,e){for(var n=0,a=0;a':'
',Qs.innerHTML.indexOf(" ")>0}var Ys=!!U&&Ks(!1),Js=!!U&&Ks(!0),Xs=b((function(t){var e=Yn(t);return e&&e.innerHTML})),Zs=kn.prototype.$mount;kn.prototype.$mount=function(t,e){if((t=t&&Yn(t))===document.body||t===document.documentElement)return this;var n=this.$options;if(!n.render){var a=n.template;if(a)if("string"==typeof a)"#"===a.charAt(0)&&(a=Xs(a));else{if(!a.nodeType)return this;a=a.innerHTML}else t&&(a=function(t){if(t.outerHTML)return t.outerHTML;var e=document.createElement("div");return e.appendChild(t.cloneNode(!0)),e.innerHTML}(t));if(a){var i=Gs(a,{outputSourceRange:!1,shouldDecodeNewlines:Ys,shouldDecodeNewlinesForHref:Js,delimiters:n.delimiters,comments:n.comments},this),r=i.render,s=i.staticRenderFns;n.render=r,n.staticRenderFns=s}}return Zs.call(this,t,e)},kn.compile=Gs;const to=io.connect(window.location.href);to.on("connect",()=>{document.getElementById("start_app_placeholder").classList.add("loading_placeholder--hidden")});var eo=new kn;function no(t,e){const{currentTarget:{dataset:{id:n}}}=e;switch(t){case"artist":eo.$emit("artistTab:reset");break;case"album":case"playlist":case"spotifyplaylist":eo.$emit("tracklistTab:reset")}to.emit("getTracklist",{type:t,id:n}),ro(t,n)}function ao(t,e,n){window.windows_stack=[],window.currentStack={};const a=document.getElementsByClassName(e+"_tabcontent");for(let t=0;t{t.addEventListener("click",so)})}window.search_selected="",window.main_selected="",window.windows_stack=[],window.currentStack={};const lo={name:"the-sidebar",data:()=>({appOnline:null,activeTheme:"light",themes:["purple","dark","light"]}),mounted(){this.appOnline=navigator.onLine,window.addEventListener("online",()=>{this.appOnline=!0}),window.addEventListener("offline",()=>{this.appOnline=!1}),this.activeTheme=localStorage.getItem("selectedTheme")||"light"},methods:{changeTheme(t){t!==this.activeTheme&&(this.activeTheme=t,document.documentElement.setAttribute("data-theme",t),localStorage.setItem("selectedTheme",t),document.querySelectorAll("*").forEach(t=>{t.style.transition="all 200ms ease-in-out"}),document.documentElement.addEventListener("transitionend",(function t(){document.querySelectorAll("*").forEach(t=>{t.style.transition=""}),document.documentElement.removeEventListener("transitionend",t)})))},handleSidebarClick(t){const{target:e}=t;if(!(e.matches(".main_tablinks")||e.parentElement.matches(".main_tablinks")))return;let n=e.matches(".main_tablinks")?e:e.parentElement,a=null;switch(n.id){case"main_search_tablink":a="search_tab";break;case"main_home_tablink":a="home_tab";break;case"main_charts_tablink":a="charts_tab";break;case"main_favorites_tablink":a="favorites_tab";break;case"main_analyzer_tablink":a="analyzer_tab";break;case"main_settings_tablink":a="settings_tab";break;case"main_about_tablink":a="about_tab"}a&&ao(n,"main",a)}}};var co=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("aside",{attrs:{id:"sidebar",role:"navigation"},on:{click:t.handleSidebarClick}},[n("span",{staticClass:"main_tablinks",attrs:{id:"main_home_tablink",role:"link","aria-label":"home"}},[n("i",{staticClass:"material-icons side_icon"},[t._v("home")]),t._v(" "),n("span",{staticClass:"main_tablinks_text"},[t._v(t._s(t.$t("sidebar.home")))])]),t._v(" "),n("span",{staticClass:"main_tablinks",attrs:{id:"main_search_tablink",role:"link","aria-label":"search"}},[n("i",{staticClass:"material-icons side_icon"},[t._v("search")]),t._v(" "),n("span",{staticClass:"main_tablinks_text"},[t._v(t._s(t.$t("sidebar.search")))])]),t._v(" "),n("span",{staticClass:"main_tablinks",attrs:{id:"main_charts_tablink",role:"link","aria-label":"charts"}},[n("i",{staticClass:"material-icons side_icon"},[t._v("bubble_chart")]),t._v(" "),n("span",{staticClass:"main_tablinks_text"},[t._v(t._s(t.$t("sidebar.charts")))])]),t._v(" "),n("span",{staticClass:"main_tablinks",attrs:{id:"main_favorites_tablink",role:"link","aria-label":"favorites"}},[n("i",{staticClass:"material-icons side_icon"},[t._v("album")]),t._v(" "),n("span",{staticClass:"main_tablinks_text"},[t._v(t._s(t.$t("sidebar.favorites")))])]),t._v(" "),n("span",{staticClass:"main_tablinks",attrs:{id:"main_analyzer_tablink",role:"link","aria-label":"link analyzer"}},[n("i",{staticClass:"material-icons side_icon"},[t._v("link")]),t._v(" "),n("span",{staticClass:"main_tablinks_text"},[t._v(t._s(t.$t("sidebar.linkAnalyzer")))])]),t._v(" "),n("span",{staticClass:"main_tablinks",attrs:{id:"main_settings_tablink",role:"link","aria-label":"settings"}},[n("i",{staticClass:"material-icons side_icon"},[t._v("settings")]),t._v(" "),n("span",{staticClass:"main_tablinks_text"},[t._v(t._s(t.$t("sidebar.settings")))])]),t._v(" "),n("span",{staticClass:"main_tablinks",attrs:{id:"main_about_tablink",role:"link","aria-label":"info"}},[n("i",{staticClass:"material-icons side_icon"},[t._v("info")]),t._v(" "),n("span",{staticClass:"main_tablinks_text"},[t._v(t._s(t.$t("sidebar.about")))])]),t._v(" "),n("span",{staticClass:"main_tablinks",attrs:{id:"theme_selector",role:"link","aria-label":"theme selector"}},[n("i",{staticClass:"material-icons side_icon side_icon--theme"},[t._v("palette")]),t._v(" "),n("div",{attrs:{id:"theme_togglers"}},t._l(t.themes,(function(e){return n("div",{key:e,staticClass:"theme_toggler ",class:[{"theme_toggler--active":t.activeTheme===e},"theme_toggler--"+e],on:{click:function(n){return t.changeTheme(e)}}})})),0)]),t._v(" "),n("div",{class:{online:t.appOnline,offline:!t.appOnline},attrs:{id:"network-status"}},[t.appOnline?n("i",{staticClass:"material-icons"},[t._v("wifi")]):n("i",{staticClass:"material-icons"},[n("svg",{attrs:{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"}},[n("path",{attrs:{d:"M24 .01c0-.01 0-.01 0 0L0 0v24h24V.01zM0 0h24v24H0V0zm0 0h24v24H0V0z",fill:"none"}}),t._v(" "),n("path",{attrs:{d:"M22.99 9C19.15 5.16 13.8 3.76 8.84 4.78l2.52 2.52c3.47-.17 6.99 1.05 9.63 3.7l2-2zm-4 4c-1.29-1.29-2.84-2.13-4.49-2.56l3.53 3.53.96-.97zM2 3.05L5.07 6.1C3.6 6.82 2.22 7.78 1 9l1.99 2c1.24-1.24 2.67-2.16 4.2-2.77l2.24 2.24C7.81 10.89 6.27 11.73 5 13v.01L6.99 15c1.36-1.36 3.14-2.04 4.92-2.06L18.98 20l1.27-1.26L3.29 1.79 2 3.05zM9 17l3 3 3-3c-1.65-1.66-4.34-1.66-6 0z"}})])])])])};co._withStripped=!0;var uo=function(t,e,n,a,i,r,s,o){const l=("function"==typeof n?n.options:n)||{};l.__file="/mnt/Dati/Programmazione/DeezloaderStuff/deemix/deemix-pyweb/webui/src/components/TheSidebar.vue",l.render||(l.render=t.render,l.staticRenderFns=t.staticRenderFns,l._compiled=!0,i&&(l.functional=!0)),l._scopeId=a;{let t;if(e&&(t=function(t){e.call(this,s(t))}),void 0!==t)if(l.functional){const e=l.render;l.render=function(n,a){return t.call(a),e(n,a)}}else{const e=l.beforeCreate;l.beforeCreate=e?[].concat(e,t):[t]}}return l}({render:co,staticRenderFns:[]},(function(t){t&&t("data-v-7d8957a2_0",{source:"\n#network-status[data-v-7d8957a2] {\n\tdisplay: flex;\n\tjustify-content: center;\n\talign-items: center;\n\tposition: relative;\n\tmargin-top: auto;\n\tbottom: 0;\n}\n#network-status.online i.material-icons[data-v-7d8957a2] {\n\tcolor: hsl(151, 100%, 31%);\n}\n#network-status.offline i.material-icons svg[data-v-7d8957a2] {\n\tfill: red;\n\twidth: 1em;\n\theight: 1em;\n}\n",map:{version:3,sources:["/mnt/Dati/Programmazione/DeezloaderStuff/deemix/deemix-pyweb/webui/src/components/TheSidebar.vue"],names:[],mappings:";AA0DA;CACA,aAAA;CACA,uBAAA;CACA,mBAAA;CACA,kBAAA;CACA,gBAAA;CACA,SAAA;AACA;AAEA;CACA,0BAAA;AACA;AAEA;CACA,SAAA;CACA,UAAA;CACA,WAAA;AACA",file:"TheSidebar.vue",sourcesContent:['\n\n\n\n diff --git a/src/lang/es.js b/src/lang/es.js index 9b2a207..78f612e 100644 --- a/src/lang/es.js +++ b/src/lang/es.js @@ -39,11 +39,12 @@ const es = { license: 'Licencia' }, subtitles: { - bugReports: "¿Hay algo que no funcione en Deemix? ¡Díganoslo!", + bugReports: '¿Hay algo que no funcione en Deemix? ¡Díganoslo!', contributing: '¿Quieres contribuir a este proyecto? ¡Puedes hacerlo de diferentes maneras!', donations: '¿Quiere contribuir monetariamente? ¡Podrías hacer una donación!' }, - usesLibrary: 'Esta aplicación usa la biblioteca deemix, que puedes usar para hacer tu propia interfaz de usuario para deemix.', + usesLibrary: + 'Esta aplicación usa la biblioteca deemix, que puedes usar para hacer tu propia interfaz de usuario para deemix.', thanks: `Gracias a rtonno, uhwot y lollilol por ayudarme con este proyecto, a BasCurtiz y scarvimane por hacer el icono.`, upToDate: `Mantente al día con las actualizaciones siguiendo el canal de noticias en Telegram.`, officialWebsite: 'Página web oficial', @@ -78,7 +79,7 @@ const es = { invalidURL: 'No se reconoce la URL', unsupportedURL: 'La URL no está soportada aún', ISRCnotOnDeezer: 'Pista ISRC no está disponible en Deezer', - notYourPrivatePlaylist: "No puedes descargar otras listas de reproducción privadas.", + notYourPrivatePlaylist: 'No puedes descargar otras listas de reproducción privadas.', spotifyDisabled: 'Funciones de Spotify no está configurado correctamente.', trackNotOnDeezer: '¡No se encontró la pista en Deezer!', albumNotOnDeezer: '¡El álbum no se encuentra en Deezer!', @@ -86,10 +87,12 @@ const es = { notEncoded: '¡Pista aún no codificada!', notEncodedNoAlternative: '¡Pista aún no codificada y no se ha encontrado ninguna alternativa!', wrongBitrate: 'La pista no se encuentra a la velocidad de bitrate deseada.', - wrongBitrateNoAlternative: '¡Pista no encontrada a la tasa de bits deseada y no se ha encontrado ninguna alternativa!', + wrongBitrateNoAlternative: + '¡Pista no encontrada a la tasa de bits deseada y no se ha encontrado ninguna alternativa!', no360RA: 'La pista no está disponible en Reality Audio 360.', - notAvailable: "¡La pista no está disponible en los servidores de Deezer!", - notAvailableNoAlternative: "¡La pista no está disponible en los servidores de Deezer y no se ha encontrado ninguna alternativa!" + notAvailable: '¡La pista no está disponible en los servidores de Deezer!', + notAvailableNoAlternative: + '¡La pista no está disponible en los servidores de Deezer y no se ha encontrado ninguna alternativa!' } }, favorites: { @@ -109,7 +112,8 @@ const es = { }, linkAnalyzer: { info: 'Puedes usar esta sección para encontrar más información sobre el enlace que estás tratando de descargar.', - useful: "Esto es útil si está tratando de descargar algunas pistas que no están disponibles en su país y quiere saber dónde están disponibles, por ejemplo.", + useful: + 'Esto es útil si está tratando de descargar algunas pistas que no están disponibles en su país y quiere saber dónde están disponibles, por ejemplo.', linkNotSupported: 'Este enlace aún no está soportado', linkNotSupportedYet: 'Parece que este enlace aún no está soportado, intenta analizar otro.', table: { @@ -129,7 +133,8 @@ const es = { }, search: { startSearching: '¡Comienza a buscar!', - description: 'Puedes buscar un tema, un álbum entero, un artista, una lista de reproducción... ¡todo! También puedes pegar un enlace de Deezer', + description: + 'Puedes buscar un tema, un álbum entero, un artista, una lista de reproducción... ¡todo! También puedes pegar un enlace de Deezer', fans: '{0} fanáticos', noResults: 'No hay resultados', noResultsTrack: 'No se encontraron pistas', @@ -148,7 +153,7 @@ const es = { loggingIn: 'Conectando...', loggedIn: 'Conectado', alreadyLogged: 'Ya está conectado', - loginFailed: "No se puede conectar", + loginFailed: 'No se puede conectar', loggedOut: 'Desconectado', cancellingCurrentItem: 'Cancelando el elemento actual.', currentItemCancelled: 'El elemento actual se ha cancelado.', @@ -212,7 +217,7 @@ const es = { overwriteFile: { title: '¿Desea que sobreescriba los archivos?', y: 'Sí, sobrescribir el archivo', - n: "No, no sobrescribir el archivo", + n: 'No, no sobrescribir el archivo', t: 'Sobrescribir sólo las etiquetas' }, fallbackBitrate: 'La solución alternativa de bitrate', @@ -338,4 +343,4 @@ const es = { } } -export default es \ No newline at end of file +export default es diff --git a/src/lang/fr.js b/src/lang/fr.js index b44992e..4194664 100644 --- a/src/lang/fr.js +++ b/src/lang/fr.js @@ -39,11 +39,12 @@ const fr = { license: 'Licence' }, subtitles: { - bugReports: "Y a-t-il quelque chose qui ne fonctionne pas avec deemix ? Dites-le nous !", + bugReports: 'Y a-t-il quelque chose qui ne fonctionne pas avec deemix ? Dites-le nous !', contributing: 'Vous souhaitez contribuer à ce projet ? Vous pouvez le faire de différentes manières !', donations: 'Vous souhaitez contribuer financièrement ? Vous pourriez faire un don !' }, - usesLibrary: 'Cette application utilise la librairie deemix, que vous pouvez utiliser afin de créer votre propre interface utilisateur pour deemix.', + usesLibrary: + 'Cette application utilise la librairie deemix, que vous pouvez utiliser afin de créer votre propre interface utilisateur pour deemix.', thanks: `Merci à rtonno, uhwot et lollilol pour m'avoir aidé avec ce projet et à BasCurtiz et scarvimane pour avoir réalisé l'icône.`, upToDate: `Restez informé des mises à jour en suivant le canal d'information sur Telegram.`, officialWebsite: 'Site Officiel', @@ -85,19 +86,19 @@ const fr = { albumNotOnDeezer: 'Album introuvable sur deezer !', notOnDeezer: 'Piste non disponible sur Deezer !', notEncoded: 'Piste pas encore encodée !', - notEncodedNoAlternative: "Piste pas encore encodée et aucune alternative trouvée !", + notEncodedNoAlternative: 'Piste pas encore encodée et aucune alternative trouvée !', wrongBitrate: 'Piste introuvable au débit souhaité.', wrongBitrateNoAlternative: 'Piste introuvable au débit souhaité et aucune alternative trouvée !', no360RA: "La piste n'est pas disponible avec Reality Audio 360.", - notAvailable: "Piste non disponible sur les serveurs de deezer !", - notAvailableNoAlternative: "Piste non disponible sur les serveurs de deezer et aucune alternative trouvée !" + notAvailable: 'Piste non disponible sur les serveurs de deezer !', + notAvailableNoAlternative: 'Piste non disponible sur les serveurs de deezer et aucune alternative trouvée !' } }, favorites: { title: 'Favoris', noPlaylists: 'Aucune Playlist trouvée', - noAlbums: "Aucuns Album Favori trouvé", - noArtists: "Aucun Artiste Favori trouvé", + noAlbums: 'Aucuns Album Favori trouvé', + noArtists: 'Aucun Artiste Favori trouvé', noTracks: 'Aucune Piste Favorite trouvée' }, home: { @@ -109,7 +110,8 @@ const fr = { } }, linkAnalyzer: { - info: "Vous pouvez utiliser cette section afin de trouver plus d'informations sur le lien que vous essayer de télcharger.", + info: + "Vous pouvez utiliser cette section afin de trouver plus d'informations sur le lien que vous essayer de télcharger.", useful: "C'est utile si vous essayer de télécharger des pistes qui ne sont pas disponibles dans votre pays et que vous souhaitez savoir où elles sont disponibles, par exemple.", linkNotSupported: "Ce lien n'est pas encore supporté", @@ -151,7 +153,7 @@ const fr = { loggingIn: 'Connexion', loggedIn: 'Connecté', alreadyLogged: 'Déjà connecté', - loginFailed: "Connexion impossible", + loginFailed: 'Connexion impossible', loggedOut: 'Déconnecté', cancellingCurrentItem: "Annulation de l'élément actuel.", currentItemCancelled: 'Élément actuel annulé.', @@ -262,7 +264,7 @@ const fr = { length: 'Durée de Piste', barcode: "Code-barres de l'album (UPC)", bpm: 'BPM', - replayGain: "Gain du Replay", + replayGain: 'Gain du Replay', label: "Label de l'Album", lyrics: 'Paroles non synchronisées', copyright: "Droits d'auteur (copyright)", @@ -277,7 +279,7 @@ const fr = { multiArtistSeparator: { title: 'Comment aimeriez-vous séparer vos artistes ?', nothing: "Enregistrer uniquement l'artiste principal", - default: "En utilisant la spécification standard", + default: 'En utilisant la spécification standard', andFeat: 'En utilisant & et feat.', using: 'En utilisant "{0}"' }, @@ -341,4 +343,4 @@ const fr = { } } -export default fr \ No newline at end of file +export default fr diff --git a/src/lang/pt-br.js b/src/lang/pt-br.js new file mode 100644 index 0000000..9d35fcb --- /dev/null +++ b/src/lang/pt-br.js @@ -0,0 +1,345 @@ +const ptBr = { + globals: { + welcome: 'Bem vindo ao deemix', + back: 'voltar', + loading: 'carregando', + download: 'Baixar {0}', + by: 'por {0}', + in: 'em {0}', + download_hint: 'Baixar', + play_hint: 'Reproduzir', + toggle_download_tab_hint: 'Expandir/Recolher', + clean_queue_hint: 'Limpar os terminados', + cancel_queue_hint: 'Cancelar todos', + listTabs: { + empty: '', + all: 'todos', + top_result: 'Resultado principal', + album: 'álbum | álbuns', + artist: 'artista | artistas', + single: 'single | singles', + title: 'título | títulos', + track: 'faixa | faixas', + trackN: '0 faixas | {n} faixa | {n} faixas', + releaseN: '0 lançamentos | {n} lançamento | {n} lançamentos', + playlist: 'playlist | playlists', + compile: 'compilação | compilações', + ep: 'ep | eps', + spotifyPlaylist: 'playlist do spotify | playlists do spotify', + releaseDate: 'data de lançamento', + error: 'erro' + } + }, + about: { + titles: { + usefulLinks: 'Links Úteis', + bugReports: 'Relatar Bugs', + contributing: 'Contribuições', + donations: 'Doações', + license: 'Licença' + }, + subtitles: { + bugReports: 'Tem algo não funcionando no deemix? Informe-nos!', + contributing: 'Quer contribuir com este projeto? Há várias formas!', + donations: 'Quer contribuir monetariamente? Você pode fazer uma doação!' + }, + usesLibrary: + 'Este programa usa a biblioteca deemix, no qual você pode usar para construir uma UI para o seu deemix.', + thanks: `Obrigado rtonno, uhwot e lollilol por me ajudarem com este projeto e BasCurtiz e scarvimane por fazerem o ícone.`, + upToDate: `Seja avisado quando houver novas atualizações, siga o nosso canal de notícias no Telegram.`, + officialWebsite: 'Website Oficial', + officialRepo: 'Repositório da Biblioteca Oficial', + officialWebuiRepo: 'Repositório da WebUI Oficial', + officialSubreddit: 'Subreddit Oficial', + newsChannel: 'Canal de Notícia', + questions: `Caso houver dúvidas ou problemas com o programa, procure uma solução no subreddit. Caso não encontre nada, você pode fazer um post com a sua dúvida no subreddit.`, + beforeReporting: `Antes de reportar um bug tenha certeza de que o seu deemix esteja atualizado e que o seu relato seja realmente um bug e não um problema no seu lado de usuário.`, + beSure: `Certifique-se de que o bug ocorra em outras máquinas e NÃO relate-o caso ele já tenha sido relatado.`, + duplicateReports: 'Relatos duplicados de bug serão fechados, então fique de olho.', + dontOpenIssues: `NÃO abra uma issue para fazer questões, o subreddit é para isso.`, + newUI: `Caso seja fluente em python, você pode tentar fazer uma nova UI para o app usando a biblioteca base, ou consertar os bugs da biblioteca com uma pull request na repo do projeto.`, + acceptFeatures: `Eu aceito recursos também, mas nada muito complexo e que possa ser implementado diretamente no aplicativo e não na biblioteca.`, + otherLanguages: `Caso seja fluente em outra linguagem de programação você pode tentar portar o deemix para ela!`, + understandingCode: `Precisa de ajuda para entender o código? Contate o RemixDev no Telegram ou Reddit.`, + contributeWebUI: `Caso saiba Vue.js (JavaScript), HTML ou CSS você pode contribuir para a WebUI.`, + itsFree: `Mantenha em mente que este é um projeto gratuito e que você deve apoiar os artistas que ama antes de apoiar os desenvolvedores.`, + notObligated: `Não se sinta obrigado a doar, agradecemos da mesma forma!`, + lincensedUnder: `Este trabalho é licenciado sob a + GNU General Public License 3.0.` + }, + charts: { + title: 'Charts', + changeCountry: 'Trocar o país', + download: 'Baixe a chart' + }, + errors: { + title: 'Erros para {0}', + ids: { + invalidURL: 'URL não reconhecida', + unsupportedURL: 'URL não suportada', + ISRCnotOnDeezer: 'ISRC da faixa não está no deezer', + notYourPrivatePlaylist: 'Você não pode baixar playlists privadas de outros usuários.', + spotifyDisabled: 'Recursos do Spotify não estão configurados corretamente.', + trackNotOnDeezer: 'Faixa não encontrada no deezer!', + albumNotOnDeezer: 'Álbum não encontrada no deezer!', + notOnDeezer: 'Faixa não disponível no Deezer!', + notEncoded: 'Faixa ainda não encodada!', + notEncodedNoAlternative: 'Faixa ainda não encodada e sem alternativas encontradas!', + wrongBitrate: 'Faixa não encontrada no bitrate desejado.', + wrongBitrateNoAlternative: 'Faixa não encontrada no bitrate desejado e sem alternativas encontradas!', + no360RA: 'Faixa não disponível no Reality Audio 360.', + notAvailable: 'Faixa não disponível nos servidores do deezer!', + notAvailableNoAlternative: 'Faixa não disponível nos servidores do deezer e sem alternativas encontradas!' + } + }, + favorites: { + title: 'Favorites', + noPlaylists: 'Nenhuma playlists favorita encontrada', + noAlbums: 'Nenhum álbum favorito encontrado', + noArtists: 'Nenhum artista favorito encontrado', + noTracks: 'Nenhuma faixa favorita encontrada' + }, + home: { + needTologin: 'Você precisa logar na sua conta do Deezer antes de poder começar a baixar.', + openSettings: 'Abrir configurações', + sections: { + popularPlaylists: 'Playlists populares', + popularAlbums: 'Álbuns mais ouvidos' + } + }, + linkAnalyzer: { + info: 'Você pode usar esta seção para descobrir mais informações sobre o link que está tentando baixar.', + useful: + 'Esta função é útil caso esteja tentando baixar algumas faixas que não estão disponíveis no seu país e você quer descobrir aonde estão disponíveis, por exemplo.', + linkNotSupported: 'Este link não é suportado ainda', + linkNotSupportedYet: 'Aparentemente este link ainda não é suportado, tente analizar algum outro.', + table: { + id: 'ID', + isrc: 'ISRC', + upc: 'UPC', + duration: 'Duração', + diskNumber: 'Número do disco', + trackNumber: 'Número da faixa', + releaseDate: 'Data de lançamento', + bpm: 'BPM', + label: 'Gravadora', + recordType: 'Tipo de gravação', + genres: 'Gêneros', + tracklist: 'Lista de faixas' + } + }, + search: { + startSearching: 'Comece a procurar!', + description: + 'Você pode procurar uma faixa, um álbum inteiro, um artista, uma playlist... tudo! Você também pode colar um link do Deezer', + fans: '{0} fãs', + noResults: 'Sem resultados', + noResultsTrack: 'Nenhuma faixa encontrada', + noResultsAlbum: 'Nenhum álbum encontrado', + noResultsArtist: 'Nenhum artista encontrado', + noResultsPlaylist: 'Nenhuma playlist encontrada' + }, + searchbar: 'Pesquise tudo o que quiser (ou simplesmente cole um link)', + downloads: 'downloads', + toasts: { + addedToQueue: '{0} adicionado à lista de espera', + alreadyInQueue: '{0} já está na lista de espera!', + finishDownload: '{0} terminou de baixar.', + allDownloaded: 'Todos os downloads terminaram!', + refreshFavs: 'Atualização completa!', + loggingIn: 'Entrando na conta', + loggedIn: 'Conta logada', + alreadyLogged: 'Já está na conta', + loginFailed: 'Não pode entrar na conta', + loggedOut: 'Saindo da conta', + cancellingCurrentItem: 'Cancelando item atual.', + currentItemCancelled: 'Cancelado item atual.', + startAddingArtist: 'Adicionando {0} álbuns à lista de espera', + finishAddingArtist: '{0} álbuns adicionados à lista de espera', + startConvertingSpotifyPlaylist: 'Convertendo faixas do Spotify para faixas do Deezer', + finishConvertingSpotifyPlaylist: 'Playlist do Spotify convertida' + }, + settings: { + title: 'Configurações', + languages: 'Linguagens', + login: { + title: 'Login', + loggedIn: 'Você já está logado como {username}', + arl: { + question: 'Como eu pego a minha ARL?', + update: 'Atualizar a ARL' + }, + logout: 'Sair' + }, + appearance: { + title: 'Aparência', + slimDownloadTab: 'Guia de download slim' + }, + downloadPath: { + title: 'Diretório de download' + }, + templates: { + title: 'Templates', + tracknameTemplate: 'Template do nome da faixa avulsa', + albumTracknameTemplate: 'Template do nome da faixa no álbum', + playlistTracknameTemplate: 'Template do nome da faixa na playlist' + }, + folders: { + title: 'Pastas', + createPlaylistFolder: 'Criar pasta para playlists', + playlistNameTemplate: 'Template do nome da pasta da playlist', + createArtistFolder: 'Criar pasta para artistas', + artistNameTemplate: 'Template do nome da pasta do artista', + createAlbumFolder: 'Criar pasta para álbuns', + albumNameTemplate: 'Template do nome da pasta do álbum', + createCDFolder: 'Criar pasta para discos', + createStructurePlaylist: 'Criar estrutura de pasta para playlists', + createSingleFolder: 'Criar estrutura de pasta para singles' + }, + trackTitles: { + title: 'Títulos das faixas', + padTracks: 'Pad das faixas', + paddingSize: 'Substituir tamanho do padding', + illegalCharacterReplacer: 'Substituto de caracter ilegal' + }, + downloads: { + title: 'Downloads', + queueConcurrency: 'Downloads simultâneos', + maxBitrate: { + title: 'Bitrate preferido', + 9: 'FLAC 1411kbps', + 3: 'MP3 320kbps', + 1: 'MP3 128kbps' + }, + overwriteFile: { + title: 'Posso substituir os arquivos?', + y: 'Sim, substitua os arquivos', + n: 'Não, não substitua os arquivos', + t: 'Substitua apenas as tags' + }, + fallbackBitrate: 'Bitrate reserva', + fallbackSearch: 'Pesquisa reserva', + logErrors: 'Criar log para erros', + logSearched: 'Criar log para faixas pesquisadas', + createM3U8File: 'Criar arquivo de playlist', + syncedLyrics: 'Criar arquivos .lyr (Letras sincronizadas)', + playlistFilenameTemplate: 'Template do nome da playlist', + saveDownloadQueue: 'Salvar lista de espera do download ao fechar o programa' + }, + covers: { + title: 'Capa dos álbuns', + saveArtwork: 'Salvar as capas', + coverImageTemplate: 'Template do nome da capa', + saveArtworkArtist: 'Salvar imagem do artista', + artistImageTemplate: 'Template da imagem do artista', + localArtworkSize: 'Tamanho da artwork local', + embeddedArtworkSize: 'Tamanho da artwork embutida', + localArtworkFormat: { + title: 'Qual formato você quer que a artwork local seja?', + jpg: 'Uma imagem jpeg', + png: 'Uma imagem png', + both: 'Ambos um jpeg e um png' + }, + jpegImageQuality: 'Qualidade do JPEG' + }, + tags: { + head: 'Quais tags salvar', + title: 'Título', + artist: 'Artista', + album: 'Álbuns', + cover: 'Capa', + trackNumber: 'Número da faixa', + trackTotal: 'Total de faixas', + discNumber: 'Número de discos', + discTotal: 'Total de discos', + albumArtist: 'Artista do álbum', + genre: 'Gênero', + year: 'Ano', + date: 'Data', + explicit: 'Letras explícitas', + isrc: 'ISRC', + length: 'Tamanho da faixa', + barcode: 'Barcode do álbum (UPC)', + bpm: 'BPM', + replayGain: 'Replay Gain', + label: 'Gravadora do álbum', + lyrics: 'Letras desincronizadas', + copyright: 'Copyright', + composer: 'Compositor', + involvedPeople: 'Pessoas involvidas' + }, + other: { + title: 'Outros', + savePlaylistAsCompilation: 'Savar playlists como uma compilação', + useNullSeparator: 'Usar separador nulo', + saveID3v1: 'Salvar ID3v1', + multiArtistSeparator: { + title: 'Como gostaria de separar seus artistas?', + nothing: 'Salvar apenas o artista principal', + default: 'Usando especificação padrão', + andFeat: 'Usando & e feat.', + using: 'Usando "{0}"' + }, + singleAlbumArtist: 'Salvar apenas o artista principal do álbum', + albumVariousArtists: 'Manter "Various Artists" em Artistas do Álbum', + removeAlbumVersion: 'Remover "Album Version" do título de faixas', + removeDuplicateArtists: 'Remover combinações de artistas', + dateFormat: { + title: 'Formato da data para arquivos FLAC', + year: 'AAAA', + month: 'MM', + day: 'DD' + }, + featuredToTitle: { + title: 'O que eu deveria fazer com os artistas feat.?', + 0: 'Nada', + 1: 'Remova-os do título da faixa', + 3: 'Remova-os do título da faixa e do álbum', + 2: 'Mova-os para o título da faixa' + }, + titleCasing: 'Formatação do título', + artistCasing: 'Formatação do artista', + casing: { + nothing: 'Manter intocado', + lower: 'minúsculo', + upper: 'MAIÚSCULO', + start: 'No Começo De Cada Palavra', + sentence: 'Como uma frase' + }, + previewVolume: 'Volume da prévia', + executeCommand: { + title: 'Comando para executar depois do download', + description: 'Deixe em branco para não executar nada' + } + }, + spotify: { + title: 'Destaques do Spotify', + clientID: 'Spotify clientID', + clientSecret: 'Spotify Client Secret', + username: 'Nome de usuário do Spotify' + }, + reset: 'Resetar para Padrão', + save: 'Save', + toasts: { + init: 'Configurações carregadas!', + update: 'Configurações atualizadas!', + ARLcopied: 'ARL copiado para o clipboard' + } + }, + sidebar: { + home: 'home', + search: 'pesquisa', + charts: 'charts', + favorites: 'favoritos', + linkAnalyzer: 'analizador de links', + settings: 'configurações', + about: 'sobre' + }, + tracklist: { + downloadSelection: 'Baixar seleção' + } +} + +export default ptBr diff --git a/src/lang/pt-pt.js b/src/lang/pt-pt.js index 6c5fc24..c9a4648 100644 --- a/src/lang/pt-pt.js +++ b/src/lang/pt-pt.js @@ -1,344 +1,345 @@ const pt = { - globals: { - welcome: 'Bem-vindo ao deemix', - back: 'voltar', - loading: 'A carregar', - download: 'Transferir {0}', - by: 'por {0}', - in: 'em {0}', - download_hint: 'Descarregar', - play_hint: 'Tocar', - toggle_download_tab_hint: 'Expandir/Recolher', - clean_queue_hint: 'Limpar Finalizados', - cancel_queue_hint: 'Cancelar Tudo', - listTabs: { - empty: '', - all: 'Tudo', - top_result: 'melhor resultado', - album: 'álbum | álbums', - artist: 'artista | artistas', - single: 'single | singles', - title: 'título | títulos', - track: 'faixa | faixas', - trackN: '0 faixas | {n} faixa | {n} faixas', - releaseN: '0 lançamentos | {n} lançamento | {n} lançamento', - playlist: 'lista de reprodução | listas de reprodução', - compile: 'compilação | compilações', - ep: 'ep | eps', - spotifyPlaylist: 'lista de reprodução spotify | listas de reprodução spotify', - releaseDate: 'data de lançamento', - error: 'erro' - } - }, - about: { - titles: { - usefulLinks: 'Links Úteis', - bugReports: 'Relatório de erros', - contributing: 'Contribuir', - donations: 'Doações', - license: 'Licenças' - }, - subtitles: { - bugReports: "Existe alguma coisa que não funciona no deemix? Informa-nos!", - contributing: 'Queres contribuir para o projecto? Podes fazê-lo de diferentes formas!', - donations: 'Desejas contribuir monetariamente? Faz uma doação!' - }, - usesLibrary: 'Esta aplicação usa a biblioteca deemix, que poderás usar para desenvolver o teu proprio UI para o deemix.', - thanks: `Agradeço a rtonno, uhwot and lollilol por me ajudarem neste projeto e a BasCurtiz and scarvimane por elaborarem o ícone.`, - upToDate: `Mantem-te atualizado seguindo o canal de notícias no Telegram.`, - officialWebsite: 'Site Oficial', - officialRepo: 'Repositório Oficial da Biblioteca', - officialWebuiRepo: 'Repositório Oficial WebUI', - officialSubreddit: 'Subreddit Oficial', - newsChannel: 'Canal de Notícias', - questions: `Caso tenhas alguma duvida ou problema com a app, primeiro procura por uma solução no subreddit. Caso não encontres nada podes criar um post com a tua questão no subreddit.`, - beforeReporting: `Antes de reportares um bug certifica-te que estás a correr a versão mais recente e que o que queres reportar é mesmo um bug e não algo que apenas não funciona do teu lado.`, - beSure: `Certifica-te que o erro é reprodutivel noutros dispositivos e NÃO reportes um bug que já tenha sido reportado.`, - duplicateReports: 'Bug reports duplicados serão fechados, mantém-te atento a isso.', - dontOpenIssues: `NÃO abras issues para colocar questões, existe um subreddit para isso.`, - newUI: `Caso sejas fluente em python podes tentar criar um novo UI para a aplicação recorrendo à biblioteca base , ou corrigir erros na biblioteca com um pull request no repositório.`, - acceptFeatures: `Também aceito funcionalidades não complexas caso possam ser implementadas directamente na app e não na biblioteca.`, - otherLanguages: `Caso sejas fluente noutra linguagem de programação podes tentar migrar o deemix para outra linguagem de programação!`, - understandingCode: `Precisas de ajuda a entender o código? Acede a RemixDev no Telegram ou no Reddit.`, - contributeWebUI: `Caso saibas Vue.js (JavaScript), HTML ou CSS podes contribuir para o WebUI.`, - itsFree: `Deves ter em conta que que este projecto é gratuito e deverás apoiar os artistas que aprecias antes de apoiares os programadores.`, - notObligated: `Não te sintas obrigado a doar, agradeço-te na mesma!`, - lincensedUnder: `This work is licensed under a + globals: { + welcome: 'Bem-vindo ao deemix', + back: 'voltar', + loading: 'A carregar', + download: 'Transferir {0}', + by: 'por {0}', + in: 'em {0}', + download_hint: 'Descarregar', + play_hint: 'Tocar', + toggle_download_tab_hint: 'Expandir/Recolher', + clean_queue_hint: 'Limpar Finalizados', + cancel_queue_hint: 'Cancelar Tudo', + listTabs: { + empty: '', + all: 'Tudo', + top_result: 'melhor resultado', + album: 'álbum | álbums', + artist: 'artista | artistas', + single: 'single | singles', + title: 'título | títulos', + track: 'faixa | faixas', + trackN: '0 faixas | {n} faixa | {n} faixas', + releaseN: '0 lançamentos | {n} lançamento | {n} lançamento', + playlist: 'lista de reprodução | listas de reprodução', + compile: 'compilação | compilações', + ep: 'ep | eps', + spotifyPlaylist: 'lista de reprodução spotify | listas de reprodução spotify', + releaseDate: 'data de lançamento', + error: 'erro' + } + }, + about: { + titles: { + usefulLinks: 'Links Úteis', + bugReports: 'Relatório de erros', + contributing: 'Contribuir', + donations: 'Doações', + license: 'Licenças' + }, + subtitles: { + bugReports: 'Existe alguma coisa que não funciona no deemix? Informa-nos!', + contributing: 'Queres contribuir para o projecto? Podes fazê-lo de diferentes formas!', + donations: 'Desejas contribuir monetariamente? Faz uma doação!' + }, + usesLibrary: + 'Esta aplicação usa a biblioteca deemix, que poderás usar para desenvolver o teu proprio UI para o deemix.', + thanks: `Agradeço a rtonno, uhwot and lollilol por me ajudarem neste projeto e a BasCurtiz and scarvimane por elaborarem o ícone.`, + upToDate: `Mantem-te atualizado seguindo o canal de notícias no Telegram.`, + officialWebsite: 'Site Oficial', + officialRepo: 'Repositório Oficial da Biblioteca', + officialWebuiRepo: 'Repositório Oficial WebUI', + officialSubreddit: 'Subreddit Oficial', + newsChannel: 'Canal de Notícias', + questions: `Caso tenhas alguma duvida ou problema com a app, primeiro procura por uma solução no subreddit. Caso não encontres nada podes criar um post com a tua questão no subreddit.`, + beforeReporting: `Antes de reportares um bug certifica-te que estás a correr a versão mais recente e que o que queres reportar é mesmo um bug e não algo que apenas não funciona do teu lado.`, + beSure: `Certifica-te que o erro é reprodutivel noutros dispositivos e NÃO reportes um bug que já tenha sido reportado.`, + duplicateReports: 'Bug reports duplicados serão fechados, mantém-te atento a isso.', + dontOpenIssues: `NÃO abras issues para colocar questões, existe um subreddit para isso.`, + newUI: `Caso sejas fluente em python podes tentar criar um novo UI para a aplicação recorrendo à biblioteca base , ou corrigir erros na biblioteca com um pull request no repositório.`, + acceptFeatures: `Também aceito funcionalidades não complexas caso possam ser implementadas directamente na app e não na biblioteca.`, + otherLanguages: `Caso sejas fluente noutra linguagem de programação podes tentar migrar o deemix para outra linguagem de programação!`, + understandingCode: `Precisas de ajuda a entender o código? Acede a RemixDev no Telegram ou no Reddit.`, + contributeWebUI: `Caso saibas Vue.js (JavaScript), HTML ou CSS podes contribuir para o WebUI.`, + itsFree: `Deves ter em conta que que este projecto é gratuito e deverás apoiar os artistas que aprecias antes de apoiares os programadores.`, + notObligated: `Não te sintas obrigado a doar, agradeço-te na mesma!`, + lincensedUnder: `This work is licensed under a GNU General Public License 3.0.` - }, - charts: { - title: 'Tabelas', - changeCountry: 'Alterar país', - download: 'Descarregar tabela' - }, - errors: { - title: 'Erros para {0}', - ids: { - invalidURL: 'URL não reconhecido', - unsupportedURL: 'URL ainda não suportado', - ISRCnotOnDeezer: 'Track ISRC não disponível no deezer', - notYourPrivatePlaylist: "You can't download others private playlists.", - spotifyDisabled: 'Funcionalidades do Spotify não estão definidas corretamente.', - trackNotOnDeezer: 'Faixa não encontrada no deezer!', - albumNotOnDeezer: 'Álbum não encontrado no deezer!', - notOnDeezer: 'Faixa não encontrada no Deezer!', - notEncoded: 'Faixa ainda não codificada!', - notEncodedNoAlternative: 'Faixa ainda não codificada e não foi encontrada alternativa!', - wrongBitrate: 'Faixa não encontrada no bitrate desejado.', - wrongBitrateNoAlternative: 'Faixa não encontrada no bitrate desejado e não foi encontrada alternativa!', - no360RA: 'Faixa não disponível em Reality Audio 360.', - notAvailable: "Faixa não disponível nos servidores do deezer!", - notAvailableNoAlternative: "Faixa não disponível nos servidores do deezer e não foi encontrada alternativa!" - } - }, - favorites: { - title: 'Favoritos', - noPlaylists: 'Listas de reprodução não encontradas', - noAlbums: 'Álbuns favoritos não encontrados', - noArtists: 'Artistas favoritos não encontrados', - noTracks: 'Faixas favoritas não encontradas' - }, - home: { - needTologin: 'Antes de iniciar transferências é necessário efectuar autenticação na conta Deezer.', - openSettings: 'Abrir Definições', - sections: { - popularPlaylists: 'Listas de reprodução populares', - popularAlbums: 'Álbuns mais ouvidos' - } - }, - linkAnalyzer: { - info: 'Podes usar esta secção para obteres mais informação sobre o link que estás a tentar transferir.', - useful: - "Isto é útil caso estejas a tentar transferir faixas que não estão disponíveis no teu país e queres saber onde estão disponíveis, por exemplo.", - linkNotSupported: 'Este link ainda não é suportado', - linkNotSupportedYet: 'Parece que este link ainda não é suportado, tenta analisar outro.', - table: { - id: 'ID', - isrc: 'ISRC', - upc: 'UPC', - duration: 'Duração', - diskNumber: 'Número do disco', - trackNumber: 'Número da faixa', - releaseDate: 'Data de lançamento', - bpm: 'BPM', - label: 'Editora', - recordType: 'Record Type', - genres: 'Géneros', - tracklist: 'Lista de faixas' - } - }, - search: { - startSearching: 'Começa a pesquisar!', - description: - 'Podes perquisar uma música, um álbum inteiro, um artista, uma lista de reprodução... tudo! Também podes colar um link do Deezer', - fans: '{0} fãs', - noResults: 'Sem resultados', - noResultsTrack: 'Faixa não encontrada', - noResultsAlbum: 'Álbum não encontrado', - noResultsArtist: 'Artista não encontrado', - noResultsPlaylist: 'Lista de reprodução não encontrada' - }, - searchbar: 'Pesquisa o que quiseres (ou cola um link)', - downloads: 'transferências', - toasts: { - addedToQueue: '{0} adicionados à fila', - alreadyInQueue: '{0} já está na fila!', - finishDownload: '{0} foi transferido.', - allDownloaded: 'Todas as transferências terminadas!', - refreshFavs: 'Actualizar terminados!', - loggingIn: 'A autenticar', - loggedIn: 'Autenticado', - alreadyLogged: 'Já estás autenticado', - loginFailed: "Couldn't log in", - loggedOut: 'Logged out', - cancellingCurrentItem: 'A cancelar item actual.', - currentItemCancelled: 'Item actual cancelado.', - startAddingArtist: 'A adicionar {0} álbuns à fila', - finishAddingArtist: 'Adicionados {0} álbuns à fila', - startConvertingSpotifyPlaylist: 'A converter faixas do spotify em faixas do deezer', - finishConvertingSpotifyPlaylist: 'Lista de reprodução do Spotify convertida.' - }, - settings: { - title: 'Definições', - languages: 'Idioma', - login: { - title: 'Login', - loggedIn: 'Estás autenticado como {username}', - arl: { - question: 'Como obter o meu ARL?', - update: 'Atualizar ARL' - }, - logout: 'Sair' - }, - appearance: { - title: 'Aspecto', - slimDownloadTab: 'Aba de transferências estreita' - }, - downloadPath: { - title: 'Caminho de transferências' - }, - templates: { - title: 'Formatos', - tracknameTemplate: 'Formato do nome de faixa', - albumTracknameTemplate: 'Formato do nome de Álbum', - playlistTracknameTemplate: 'Formato do nome de lista de reprodução' - }, - folders: { - title: 'Pastas', - createPlaylistFolder: 'Criar pasta para lista de reprodução', - playlistNameTemplate: 'Formato da pasta de lista de reprodução', - createArtistFolder: 'Criar pasta para artista', - artistNameTemplate: 'Formato da pasta de artista', - createAlbumFolder: 'Criar pasta para álbum', - albumNameTemplate: 'Formato da pasta de álbum', - createCDFolder: 'Criar pasta para CDs', - createStructurePlaylist: 'Criar estrutura de pastas para listas reprodução', - createSingleFolder: 'Criar estrutura de pastas para singles' - }, - trackTitles: { - title: 'Título', - padTracks: 'Pad tracks', - paddingSize: 'Overwrite padding size', - illegalCharacterReplacer: 'Substituir caractere inválidos' - }, - downloads: { - title: 'Transferências', - queueConcurrency: 'Transferências concorrentes', - maxBitrate: { - title: 'Bitrate preferencial', - 9: 'FLAC 1411kbps', - 3: 'MP3 320kbps', - 1: 'MP3 128kbps' - }, - overwriteFile: { - title: 'Ficheiros existentes. Substituir?', - y: 'Sim, substituir o ficheiro', - n: "Não substituir o ficheiro", - t: 'Sobrescrever apenas as etiquetas' - }, - fallbackBitrate: 'Bitrate fallback', - fallbackSearch: 'Fallback de pesquisa', - logErrors: 'Criar logs para erros', - logSearched: 'Criar logs para faixas pesquisadas', - createM3U8File: 'Criar ficheiro de lista de reprodução', - syncedLyrics: 'Criar ficheiro .lyr (Letras Sincronizadas)', - playlistFilenameTemplate: 'Formato do nome de ficheiro playlists', - saveDownloadQueue: 'Guardar fila de transferências ao fechar a aplicação' - }, - covers: { - title: 'Capas do Álbum', - saveArtwork: 'Guardar capas', - coverImageTemplate: 'Cover name template', - saveArtworkArtist: 'Save artist image', - artistImageTemplate: 'Artist image template', - localArtworkSize: 'Local artwork size', - embeddedArtworkSize: 'Embedded artwork size', - localArtworkFormat: { - title: 'What format do you want the local artwork to be?', - jpg: 'A jpeg image', - png: 'A png image', - both: 'Both a jpeg and a png' - }, - jpegImageQuality: 'Qualidade de imagem JPEG' - }, - tags: { - head: 'Etiquetas a guardar', - title: 'Título', - artist: 'Artista', - album: 'Álbum', - cover: 'Capa', - trackNumber: 'Número de faixa', - trackTotal: 'Total de faixas', - discNumber: 'Número do Disco', - discTotal: 'Total de Discos', - albumArtist: 'Artista do Álbum', - genre: 'Género', - year: 'Ano', - date: 'Data', - explicit: 'Letra Explícita', - isrc: 'ISRC', - length: 'Duração da faixa', - barcode: 'Código de barras do álbum (UPC)', - bpm: 'BPM', - replayGain: 'Replay Gain', - label: 'Editora do álbum', - lyrics: 'Unsynchronized Lyrics', - copyright: 'Copyright', - composer: 'Compositor', - involvedPeople: 'Pessoas envolvidas' - }, - other: { - title: 'Outros', - savePlaylistAsCompilation: 'Save playlists as compilation', - useNullSeparator: 'Usar separador null', - saveID3v1: 'Também guardar ID3v1', - multiArtistSeparator: { - title: 'Como queres separarar os artistas?', - nothing: 'Guardar apenas o artista principal', - default: 'Usar especificação padrão', - andFeat: 'Usar & e feat.', - using: 'Usar "{0}"' - }, - singleAlbumArtist: 'Guardar apenas o artista principal do álbum', - albumVariousArtists: 'Manter "Various Artists" nos Artistas do Álbum', - removeAlbumVersion: 'Remover "Album Version" do título da faixa', - removeDuplicateArtists: 'Remover combinação de artistas', - dateFormat: { - title: 'Formtado de data nos ficheiros FLAC', - year: 'AAAA', - month: 'MM', - day: 'DD' - }, - featuredToTitle: { - title: 'What should I do with featured artists?', - 0: 'Nada', - 1: 'Remover do título', - 3: 'Remover do título de do título do album', - 2: 'Movê-lo para o título' - }, - titleCasing: 'Title casing', - artistCasing: 'Artist casing', - casing: { - nothing: 'Manter inalterado', - lower: 'minusculas', - upper: 'MAIÙSCULAS', - start: 'Ínicio De Cada Palavra', - sentence: 'Like a sentence' - }, - previewVolume: 'Preview Volume', - executeCommand: { - title: 'Comando a executar após transferir', - description: 'Deixar em branco para nenhuma acção' - } - }, - spotify: { - title: 'Funcionalidades Spotify', - clientID: 'Spotify clientID', - clientSecret: 'Spotify Client Secret', - username: 'nome de utilizador Spotify' - }, - reset: 'Reset to Default', - save: 'Save', - toasts: { - init: 'Configurações carregadas!', - update: 'Configurações actualizadas', - ARLcopied: 'ARL copied to clipboard' - } - }, - sidebar: { - home: 'início', - search: 'pesquisa', - charts: 'tabelas', - favorites: 'favoritos', - linkAnalyzer: 'link analyzer', - settings: 'definições', - about: 'sobre' - }, - tracklist: { - downloadSelection: 'Descarregar seleccionados' - } + }, + charts: { + title: 'Tabelas', + changeCountry: 'Alterar país', + download: 'Descarregar tabela' + }, + errors: { + title: 'Erros para {0}', + ids: { + invalidURL: 'URL não reconhecido', + unsupportedURL: 'URL ainda não suportado', + ISRCnotOnDeezer: 'Track ISRC não disponível no deezer', + notYourPrivatePlaylist: "You can't download others private playlists.", + spotifyDisabled: 'Funcionalidades do Spotify não estão definidas corretamente.', + trackNotOnDeezer: 'Faixa não encontrada no deezer!', + albumNotOnDeezer: 'Álbum não encontrado no deezer!', + notOnDeezer: 'Faixa não encontrada no Deezer!', + notEncoded: 'Faixa ainda não codificada!', + notEncodedNoAlternative: 'Faixa ainda não codificada e não foi encontrada alternativa!', + wrongBitrate: 'Faixa não encontrada no bitrate desejado.', + wrongBitrateNoAlternative: 'Faixa não encontrada no bitrate desejado e não foi encontrada alternativa!', + no360RA: 'Faixa não disponível em Reality Audio 360.', + notAvailable: 'Faixa não disponível nos servidores do deezer!', + notAvailableNoAlternative: 'Faixa não disponível nos servidores do deezer e não foi encontrada alternativa!' + } + }, + favorites: { + title: 'Favoritos', + noPlaylists: 'Listas de reprodução não encontradas', + noAlbums: 'Álbuns favoritos não encontrados', + noArtists: 'Artistas favoritos não encontrados', + noTracks: 'Faixas favoritas não encontradas' + }, + home: { + needTologin: 'Antes de iniciar transferências é necessário efectuar autenticação na conta Deezer.', + openSettings: 'Abrir Definições', + sections: { + popularPlaylists: 'Listas de reprodução populares', + popularAlbums: 'Álbuns mais ouvidos' + } + }, + linkAnalyzer: { + info: 'Podes usar esta secção para obteres mais informação sobre o link que estás a tentar transferir.', + useful: + 'Isto é útil caso estejas a tentar transferir faixas que não estão disponíveis no teu país e queres saber onde estão disponíveis, por exemplo.', + linkNotSupported: 'Este link ainda não é suportado', + linkNotSupportedYet: 'Parece que este link ainda não é suportado, tenta analisar outro.', + table: { + id: 'ID', + isrc: 'ISRC', + upc: 'UPC', + duration: 'Duração', + diskNumber: 'Número do disco', + trackNumber: 'Número da faixa', + releaseDate: 'Data de lançamento', + bpm: 'BPM', + label: 'Editora', + recordType: 'Record Type', + genres: 'Géneros', + tracklist: 'Lista de faixas' + } + }, + search: { + startSearching: 'Começa a pesquisar!', + description: + 'Podes perquisar uma música, um álbum inteiro, um artista, uma lista de reprodução... tudo! Também podes colar um link do Deezer', + fans: '{0} fãs', + noResults: 'Sem resultados', + noResultsTrack: 'Faixa não encontrada', + noResultsAlbum: 'Álbum não encontrado', + noResultsArtist: 'Artista não encontrado', + noResultsPlaylist: 'Lista de reprodução não encontrada' + }, + searchbar: 'Pesquisa o que quiseres (ou cola um link)', + downloads: 'transferências', + toasts: { + addedToQueue: '{0} adicionados à fila', + alreadyInQueue: '{0} já está na fila!', + finishDownload: '{0} foi transferido.', + allDownloaded: 'Todas as transferências terminadas!', + refreshFavs: 'Actualizar terminados!', + loggingIn: 'A autenticar', + loggedIn: 'Autenticado', + alreadyLogged: 'Já estás autenticado', + loginFailed: "Couldn't log in", + loggedOut: 'Logged out', + cancellingCurrentItem: 'A cancelar item actual.', + currentItemCancelled: 'Item actual cancelado.', + startAddingArtist: 'A adicionar {0} álbuns à fila', + finishAddingArtist: 'Adicionados {0} álbuns à fila', + startConvertingSpotifyPlaylist: 'A converter faixas do spotify em faixas do deezer', + finishConvertingSpotifyPlaylist: 'Lista de reprodução do Spotify convertida.' + }, + settings: { + title: 'Definições', + languages: 'Idioma', + login: { + title: 'Login', + loggedIn: 'Estás autenticado como {username}', + arl: { + question: 'Como obter o meu ARL?', + update: 'Atualizar ARL' + }, + logout: 'Sair' + }, + appearance: { + title: 'Aspecto', + slimDownloadTab: 'Aba de transferências estreita' + }, + downloadPath: { + title: 'Caminho de transferências' + }, + templates: { + title: 'Formatos', + tracknameTemplate: 'Formato do nome de faixa', + albumTracknameTemplate: 'Formato do nome de Álbum', + playlistTracknameTemplate: 'Formato do nome de lista de reprodução' + }, + folders: { + title: 'Pastas', + createPlaylistFolder: 'Criar pasta para lista de reprodução', + playlistNameTemplate: 'Formato da pasta de lista de reprodução', + createArtistFolder: 'Criar pasta para artista', + artistNameTemplate: 'Formato da pasta de artista', + createAlbumFolder: 'Criar pasta para álbum', + albumNameTemplate: 'Formato da pasta de álbum', + createCDFolder: 'Criar pasta para CDs', + createStructurePlaylist: 'Criar estrutura de pastas para listas reprodução', + createSingleFolder: 'Criar estrutura de pastas para singles' + }, + trackTitles: { + title: 'Título', + padTracks: 'Pad tracks', + paddingSize: 'Overwrite padding size', + illegalCharacterReplacer: 'Substituir caractere inválidos' + }, + downloads: { + title: 'Transferências', + queueConcurrency: 'Transferências concorrentes', + maxBitrate: { + title: 'Bitrate preferencial', + 9: 'FLAC 1411kbps', + 3: 'MP3 320kbps', + 1: 'MP3 128kbps' + }, + overwriteFile: { + title: 'Ficheiros existentes. Substituir?', + y: 'Sim, substituir o ficheiro', + n: 'Não substituir o ficheiro', + t: 'Sobrescrever apenas as etiquetas' + }, + fallbackBitrate: 'Bitrate fallback', + fallbackSearch: 'Fallback de pesquisa', + logErrors: 'Criar logs para erros', + logSearched: 'Criar logs para faixas pesquisadas', + createM3U8File: 'Criar ficheiro de lista de reprodução', + syncedLyrics: 'Criar ficheiro .lyr (Letras Sincronizadas)', + playlistFilenameTemplate: 'Formato do nome de ficheiro playlists', + saveDownloadQueue: 'Guardar fila de transferências ao fechar a aplicação' + }, + covers: { + title: 'Capas do Álbum', + saveArtwork: 'Guardar capas', + coverImageTemplate: 'Cover name template', + saveArtworkArtist: 'Save artist image', + artistImageTemplate: 'Artist image template', + localArtworkSize: 'Local artwork size', + embeddedArtworkSize: 'Embedded artwork size', + localArtworkFormat: { + title: 'What format do you want the local artwork to be?', + jpg: 'A jpeg image', + png: 'A png image', + both: 'Both a jpeg and a png' + }, + jpegImageQuality: 'Qualidade de imagem JPEG' + }, + tags: { + head: 'Etiquetas a guardar', + title: 'Título', + artist: 'Artista', + album: 'Álbum', + cover: 'Capa', + trackNumber: 'Número de faixa', + trackTotal: 'Total de faixas', + discNumber: 'Número do Disco', + discTotal: 'Total de Discos', + albumArtist: 'Artista do Álbum', + genre: 'Género', + year: 'Ano', + date: 'Data', + explicit: 'Letra Explícita', + isrc: 'ISRC', + length: 'Duração da faixa', + barcode: 'Código de barras do álbum (UPC)', + bpm: 'BPM', + replayGain: 'Replay Gain', + label: 'Editora do álbum', + lyrics: 'Unsynchronized Lyrics', + copyright: 'Copyright', + composer: 'Compositor', + involvedPeople: 'Pessoas envolvidas' + }, + other: { + title: 'Outros', + savePlaylistAsCompilation: 'Save playlists as compilation', + useNullSeparator: 'Usar separador null', + saveID3v1: 'Também guardar ID3v1', + multiArtistSeparator: { + title: 'Como queres separarar os artistas?', + nothing: 'Guardar apenas o artista principal', + default: 'Usar especificação padrão', + andFeat: 'Usar & e feat.', + using: 'Usar "{0}"' + }, + singleAlbumArtist: 'Guardar apenas o artista principal do álbum', + albumVariousArtists: 'Manter "Various Artists" nos Artistas do Álbum', + removeAlbumVersion: 'Remover "Album Version" do título da faixa', + removeDuplicateArtists: 'Remover combinação de artistas', + dateFormat: { + title: 'Formtado de data nos ficheiros FLAC', + year: 'AAAA', + month: 'MM', + day: 'DD' + }, + featuredToTitle: { + title: 'What should I do with featured artists?', + 0: 'Nada', + 1: 'Remover do título', + 3: 'Remover do título de do título do album', + 2: 'Movê-lo para o título' + }, + titleCasing: 'Title casing', + artistCasing: 'Artist casing', + casing: { + nothing: 'Manter inalterado', + lower: 'minusculas', + upper: 'MAIÙSCULAS', + start: 'Ínicio De Cada Palavra', + sentence: 'Like a sentence' + }, + previewVolume: 'Preview Volume', + executeCommand: { + title: 'Comando a executar após transferir', + description: 'Deixar em branco para nenhuma acção' + } + }, + spotify: { + title: 'Funcionalidades Spotify', + clientID: 'Spotify clientID', + clientSecret: 'Spotify Client Secret', + username: 'nome de utilizador Spotify' + }, + reset: 'Reset to Default', + save: 'Save', + toasts: { + init: 'Configurações carregadas!', + update: 'Configurações actualizadas', + ARLcopied: 'ARL copied to clipboard' + } + }, + sidebar: { + home: 'início', + search: 'pesquisa', + charts: 'tabelas', + favorites: 'favoritos', + linkAnalyzer: 'link analyzer', + settings: 'definições', + about: 'sobre' + }, + tracklist: { + downloadSelection: 'Descarregar seleccionados' + } } export default pt diff --git a/src/lang/tr.js b/src/lang/tr.js new file mode 100644 index 0000000..6812e67 --- /dev/null +++ b/src/lang/tr.js @@ -0,0 +1,344 @@ +const tr = { + globals: { + welcome: `Deemix'e hoş geldin.`, + back: `geri`, + loading: `yükleniyor`, + download: 'İndir {0}', + by: '{0} tarafından', + in: '{0} içinde', + download_hint: 'İndir', + play_hint: 'Oynat', + toggle_download_tab_hint: 'Genişlet/Daralt', + clean_queue_hint: 'Tamamlananları Temizle', + cancel_queue_hint: 'Hepsini ', + listTabs: { + empty: '', + all: 'Tümü', + top_result: 'top result', + album: 'albüm | albümler', + artist: 'sanatçı | sanatçılar', + single: 'single | singlelar', + title: 'başlık | başlıklar', + track: 'Parça | Parçalar', + trackN: '0 parça | {n} parça | {n} parça', + releaseN: '0 yayınlanan | {n} yayınlanan | {n} yayınlanan', + playlist: 'oynatma listesi | oynatma listeleri', + compile: 'derleme | derlemeler', + ep: 'kayıt | kayıtlar', + spotifyPlaylist: 'spotify oynatma listesi | oynatma listeleri', + releaseDate: 'yayınlanma tarihi', + error: 'hata' + } + }, + about: { + titles: { + usefulLinks: 'Yararlı Bağlantılar', + bugReports: 'Hata Raporları', + contributing: 'Katkı Sağlayanlar', + donations: 'Bağışlar', + license: 'Lisans' + }, + subtitles: { + bugReports: "Deemix'te çalışmayan bir şey mi var?, Bize bildirin!", + contributing: 'Projeye katkı sağlamak mı istiyorsun? Farklı yollardan sağlayabilirsin!', + donations: 'Bütçe yardımı mı yapmak istiyorsun? Bağış yapabilirsin!' + }, + usesLibrary: + 'deemix kendi kullanıcı arabiriminizi oluşturabileceğiniz, kendine özgü kütüphanesini kullanıyor.', + thanks: ` rtonno, uhwot ve lollilol'a bu projeye yaptığı katkılardan ve BasCurtiz ile scarvimane'e ikonlardan dolayı teşekkür ederim.`, + upToDate: `Telegramdaki haber kanalını takip ederek güncellemelerden haberdar olun.`, + officialWebsite: 'İlgili İnternet Sitemiz', + officialRepo: 'İlgili Kütüphanemiz', + officialWebuiRepo: 'İlgili Web Kullanıcı Arayüzü Kütüphanemiz.', + officialSubreddit: 'İlgili Subreddit adresimiz', + newsChannel: 'Haber Kanalı', + questions: `Eğer uygulama ile ilgili sorularınız veya bir probleminiz varsa,ilk önce subreddit adresinden sorununuzu arayın. Eğer bir şey bulamazsanız, sorununuz ile ilgili bir gönderi paylaşabilirsiniz.`, + beforeReporting: `Bir hatayı bildirmeden önce, uygulamanın son sürümünde olduğunuza veya sorunun sizden kaynaklı olmayıp bir hata olduğuna emin olduktan sonra emin olun.`, + beSure: `Hatanın başka cihazlarda da olduğunu doğrulayın ve Bildirilen bir hatayı tekrar bildirmeyin.`, + duplicateReports: 'Birbirinin aynısı olan hata bildirileri kapatılacaktır, o yüzden dikkatli olun.', + dontOpenIssues: `Soru sormak için hata bildirisi yollamayın, bunun için bir subreddit adresimiz var.`, + newUI: `Eğer Phython kullanmakta iyiysen, ana kütüphaneyi kullanan bir kullanıcı arayüzü yapmayı deneyebilir, veya kütüphanedeki hataları düzeltmek için deposuna değişiklik isteği yollayabilirsin..`, + acceptFeatures: `Yeni özellikleri de kabul ediyorum, fakat karışık şeyleri kütüphaneye değil uygulamaya eklendiği için kabul edemiyorum.`, + otherLanguages: `Eğer diğer programlama dillerinde kendine güveniyorsan, deemix'i farklı dillere port etmeye çalışabilirsin!`, + understandingCode: `Kodu anlamak için yardım mı lazım? Reddit üzerinden veya Telegramdan RemixDev'e ulaş.`, + contributeWebUI: `Eğer Vue.js (JavaScript), HTML veya CSS biliyorsan, Web Kullanıcı Arayüzüne katkıda bulanabilirsin.`, + itsFree: `Bunun ücretsiz bir proje olduğunu ve geliştiricilerden önce sevdiğiniz sanatçıları desteklemeniz gerektiğini unutmayın.`, + notObligated: `Kendinizi bağış yapmak zorunda hissetmeyin!, Sizi her halinizle seviyorum!`, + lincensedUnder: `Bu çalışma lisanslıdır: + GNU General Public License 3.0.` + }, + charts: { + title: 'Grafikler', + changeCountry: 'Ülke Değiştir', + download: 'Grafiği İndir' + }, + errors: { + title: '{0} Hatalı bulundu', + ids: { + invalidURL: 'URL geçersiz.', + unsupportedURL: 'URL şimdilik desteklenmiyor', + ISRCnotOnDeezer: 'ISRC parça deezerda bulunmuyor', + notYourPrivatePlaylist: 'Başkalarının özel oynatma listelerini indiremezsin.', + spotifyDisabled: 'Spotify Özellikleri doğru şekilde ayarlanmamış.', + trackNotOnDeezer: `Parça Deezer'da bulunamadı!`, + albumNotOnDeezer: `Albüm Deezer'da bulunamadı!`, + notOnDeezer: `Parça Deezer'da yok!`, + notEncoded: `Parça henüz dönüştürülmedi!`, + notEncodedNoAlternative: 'Parça henüz dönüştürülmedi ve alternatifi bulunamadı!', + wrongBitrate: 'Parça, istenen kalitede bulunamadı!', + wrongBitrateNoAlternative: 'Parça veya alternatifler istenen kalitede bulunamadı!', + no360RA: 'Parça 360 Derece gerçekçi ses olarak bulunamadı!', + notAvailable: 'Parça Deezer sunucularında bulunamadı!', + notAvailableNoAlternative: 'Parça veya Alternatifleri Deezer sunucularında bulunamadı.!' + } + }, + favorites: { + title: 'Favoriler', + noPlaylists: 'Oynatma listesi bulunamadı.', + noAlbums: 'Favori albümler bulunamadı.', + noArtists: 'Favori sanatçılar bulunamadı.', + noTracks: 'Favori parçalar bulunamadı.' + }, + home: { + needTologin: 'İndirmeden önce Deezer hesabına giriş yapmalısın.', + openSettings: 'Ayarları Aç', + sections: { + popularPlaylists: 'Popüler Oynatma Listeleri', + popularAlbums: 'En çok dinlenen albümler' + } + }, + linkAnalyzer: { + info: 'İndirmeye çalıştığın link hakkında daha fazla bilgi için burayı kullanabilirsin.', + useful: 'Mesela, ülkende dinlenebilir olmayan parçaların nerelerde var olduğunu bulmak için kullanabilirsin.', + linkNotSupported: 'Bu link şimdilik desteklenmemektedir.', + linkNotSupportedYet: 'Bu link şimdilik desteklenmiyor gibi duruyor, başkasını analiz etmeyi dene.', + table: { + id: 'ID', + isrc: 'ISRC', + upc: 'UPC', + duration: 'Süre', + diskNumber: 'Sıra numarası', + trackNumber: 'Parça numarası', + releaseDate: 'Yayınlanma tarihi', + bpm: 'BPM', + label: 'Etiketi', + recordType: 'Kayıt Şekli', + genres: 'Türü', + tracklist: 'Parça listesi' + } + }, + search: { + startSearching: 'Aramayı Başlat!', + description: + 'Bir parçayı, tüm albümü, bir sanatçıyı, bir oynatma listesini... kısaca her şeyi aratabilirsin! Ayrıca Deezer Linki de yapıştırabilirsin!', + fans: '{0} Hayranlar', + noResults: 'Sonuç Bulunamadı', + noResultsTrack: 'Parça bulunamadı', + noResultsAlbum: 'Albüm bulunamadı', + noResultsArtist: 'Sanatçı bulunamadı', + noResultsPlaylist: 'Oynatma Listesi bulunamadı' + }, + searchbar: 'İstediğin bir şeyi arat (ya da bir link yapıştır.)', + downloads: 'İndirilenler', + toasts: { + addedToQueue: '{0} kuyruğa eklendi', + alreadyInQueue: '{0} çoktan kuyrukta!', + finishDownload: '{0} indirmesi tamamlandı.', + allDownloaded: 'Tüm indirmeler tamamlandı!', + refreshFavs: 'Yenileme tamamlandı.!', + loggingIn: 'Giriş yapılıyor', + loggedIn: 'Giriş yapıldı', + alreadyLogged: 'Çoktan giriş yapıldı', + loginFailed: 'Giriş yapılamadı', + loggedOut: 'Oturum kapatıldı.', + cancellingCurrentItem: 'Geçerli öğe iptal ediliyor.', + currentItemCancelled: 'Geçerli öğe iptal edildi.', + startAddingArtist: '{0} albüm kuyruğa ekleniyor', + finishAddingArtist: '{0} albüm kuyruğa eklendi.', + startConvertingSpotifyPlaylist: 'Spotify parçaları deezer parçalarına dönüştürülüyor.', + finishConvertingSpotifyPlaylist: 'Spotify oynatma listesi dönüştürüldü.' + }, + settings: { + title: 'Ayarlar', + languages: 'Diller', + login: { + title: 'Giriş', + loggedIn: '{username} olarak giriş yaptın.', + arl: { + question: `Kendi ARL'mi nasıl alırım?`, + update: 'ARL güncelle.' + }, + logout: 'Çıkış' + }, + appearance: { + title: 'Görünüm', + slimDownloadTab: 'İnce indirme sekmesi' + }, + downloadPath: { + title: 'İndirilen dizin' + }, + templates: { + title: 'Şablonlar', + tracknameTemplate: 'Parça ismi şablonu', + albumTracknameTemplate: 'Albüm parçası şablonu', + playlistTracknameTemplate: 'Oynatma listesi parça şablonu' + }, + folders: { + title: 'Dosyalar', + createPlaylistFolder: 'Oynatma listesi için dosya oluştur', + playlistNameTemplate: 'Oynatma listesi dosyası şablonu', + createArtistFolder: 'Sanatçı için dosya oluştur', + artistNameTemplate: 'Sanatçı dosyası şablonu', + createAlbumFolder: 'Albüm için dosya oluştur', + albumNameTemplate: 'Albüm dosyası şablonu', + createCDFolder: 'CDler için dosya oluştur', + createStructurePlaylist: 'Oynatma listeleri için dosya kökü oluştur', + createSingleFolder: 'Singlelar için dosya kökü oluştur' + }, + trackTitles: { + title: 'Parça başlıkları', + padTracks: 'İz Numaraları', + paddingSize: 'İz Numaralarını değiştir', + illegalCharacterReplacer: 'Illegal Karakter Düzenleyici' + }, + downloads: { + title: 'İndirilenler', + queueConcurrency: 'Devam eden indirmeler', + maxBitrate: { + title: 'Tercih edilmiş Bitrateler (kaliteler)', + 9: 'FLAC 1411kbps', + 3: 'MP3 320kbps', + 1: 'MP3 128kbps' + }, + overwriteFile: { + title: 'Dosyaların üstüne yazmalı mıyım?', + y: 'Evet, üstüne yaz', + n: 'Hayır, üstüne yazma', + t: 'Sadece izleri üstüne yaz' + }, + fallbackBitrate: 'Bitrate düşürme', + fallbackSearch: 'Düşürme ara', + logErrors: 'Hatalar için günlük tut', + logSearched: 'Aranmış parçalar için günlük tut', + createM3U8File: 'Oynatma sıra listesi oluştur', + syncedLyrics: '.lyr dosyaları oluştur (Senkronize şarkı sözleri)', + playlistFilenameTemplate: 'Oynatma listesi şablonu', + saveDownloadQueue: 'Uygulamayı kapatırken indirme kuyruğunu kaydet' + }, + covers: { + title: 'Albüm kapakları', + saveArtwork: 'Kapakları kaydet', + coverImageTemplate: 'Kapak ismi şablonu', + saveArtworkArtist: 'Sanatçı fotoğrafını kaydet', + artistImageTemplate: 'Şarkıcı fotoğraf şablonu', + localArtworkSize: 'Yerel fotoğraf boyutu', + embeddedArtworkSize: 'Gömülü fotoğraf boyutu', + localArtworkFormat: { + title: 'Yerel fotoğrafın hangi formatta olmasını istersin?', + jpg: 'Jpeg dosyası', + png: 'Png dosyası', + both: 'Her ikisi' + }, + jpegImageQuality: 'JPEG görüntü kalitesi' + }, + tags: { + head: 'Hangi izler kayıt edilsin?', + title: 'Başlık', + artist: 'Sanatçı', + album: 'Albüm', + cover: 'Kapak', + trackNumber: 'Parça Numarası', + trackTotal: 'Tüm Parça', + discNumber: 'Plak Sayısı', + discTotal: 'Tüm Plak', + albumArtist: 'Sanatçı Albümü', + genre: 'Tür', + year: 'Yıl', + date: 'Tarih', + explicit: 'Cinsel içerikli şarkı sözleri', + isrc: 'ISRC', + length: 'Parça Uzunluğu', + barcode: 'Albüm Barkodu (UPC)', + bpm: 'BPM', + replayGain: 'Ses Yüksekliği Normalleştirici', + label: 'Albüm Etiketi', + lyrics: 'Senkronize edilmemiş şarkı sözleri', + copyright: 'Telif hakkı', + composer: 'Besteleyen', + involvedPeople: 'Alakalı Kişiler' + }, + other: { + title: 'Diğer', + savePlaylistAsCompilation: 'Oynatma listelerini derleme olarak kaydet', + useNullSeparator: 'Boşluk ayırıcı kullan', + saveID3v1: 'ID3v1 dosyasını da kaydet', + multiArtistSeparator: { + title: 'Sanatçılarınızı nasıl ayırmak istersiniz?', + nothing: 'Sadece ana sanatçıyı kaydet', + default: 'Genel prosedür uygulansın', + andFeat: 'Kullanılanlar & ve Feat.', + using: 'Kullanılan "{0}"' + }, + singleAlbumArtist: 'Sadece ana albüm sanatçısını kaydet', + albumVariousArtists: '"Çeşitli sanatçılar"ı sanatçı albümlerinde tut', + removeAlbumVersion: '"Albüm Sürümü"nü parça başlığından çıkart', + removeDuplicateArtists: 'Sanatçı topluluğunu çıkart', + dateFormat: { + title: 'FLAC dosyalar için zaman formatı', + year: 'YYYY', + month: 'AA', + day: 'GG' + }, + featuredToTitle: { + title: 'Öne çıkan sanatçıları ne yapmalıyım?', + 0: 'Elleme', + 1: 'Başlıktan çıkart', + 3: 'Başlıktan ve albüm başlığından çıkart', + 2: 'Başlığa taşı' + }, + titleCasing: 'Albüm harfi', + artistCasing: 'Sanatçı harfi', + casing: { + nothing: 'Değiştirmeden bırak', + lower: 'küçük harf', + upper: 'BÜYÜK HARF', + start: 'Kelimenin başı ile başla', + sentence: 'Cümle gibi yap' + }, + previewVolume: 'Ses önizlemesi', + executeCommand: { + title: 'İndirdikten sonra komut uygula', + description: 'Bir şey yapmamak için boş bırak' + } + }, + spotify: { + title: 'Spotify Özelliği', + clientID: 'Spotify clientID', + clientSecret: 'Spotify Client Secret', + username: 'Spotify Kullanıcı Adı' + }, + reset: 'Varsayılana sıfırla', + save: 'Kaydet', + toasts: { + init: 'Ayarlar yüklendi!', + update: 'Ayarlar güncellendi!', + ARLcopied: 'ARL panoya kopyalandı!' + } + }, + sidebar: { + home: 'Ana sayfa', + search: 'Ara', + charts: 'Grafikler', + favorites: 'Favoriler', + linkAnalyzer: 'Link Analizörü', + settings: 'Ayarlar', + about: 'Hakkında' + }, + tracklist: { + downloadSelection: 'İndirme bölümü' + } +} + +export default tr diff --git a/src/plugins/i18n.js b/src/plugins/i18n.js index 4be9c13..6030be0 100644 --- a/src/plugins/i18n.js +++ b/src/plugins/i18n.js @@ -9,6 +9,9 @@ import de from '@/lang/de' import fr from '@/lang/fr' import id from '@/lang/id' import pt from '@/lang/pt-pt' +import ptBr from '@/lang/pt-br' +import ru from '@/lang/ru' +import tr from '@/lang/tr' Vue.use(VueI18n) @@ -23,7 +26,10 @@ const locales = { de, fr, id, - pt + pt, + ptBr, + ru, + tr } const i18n = new VueI18n({ @@ -31,21 +37,33 @@ const i18n = new VueI18n({ fallbackLocale: DEFAULT_LANG, messages: locales, pluralizationRules: { - /** - * @param choice {number} a choice index given by the input to $tc: `$tc('path.to.rule', choiceIndex)` - * @param choicesLength {number} an overall amount of available choices - * @returns a final choice index to select plural word by - */ - 'ru': function(choice, choicesLength) { - if (choice === 0) { return 0 } + /** + * @param choice {number} a choice index given by the input to $tc: `$tc('path.to.rule', choiceIndex)` + * @param choicesLength {number} an overall amount of available choices + * @returns a final choice index to select plural word by + */ + ru: function(choice, choicesLength) { + if (choice === 0) { + return 0 + } var n = Math.abs(choice) % 100 var n1 = n % 10 - if (n > 10 && n < 20) { return 3 } - if (n1 > 1 && n1 < 5) { return 2 } - if (n1 == 1) { return 1 } - return 3; - } - } + + if (n > 10 && n < 20) { + return 3 + } + + if (n1 > 1 && n1 < 5) { + return 2 + } + + if (n1 == 1) { + return 1 + } + + return 3 + } + } }) export default i18n diff --git a/src/utils/flags.js b/src/utils/flags.js index b04a1d8..3dad2c1 100644 --- a/src/utils/flags.js +++ b/src/utils/flags.js @@ -5,6 +5,9 @@ import de from 'svg-country-flags/svg/de.svg' import fr from 'svg-country-flags/svg/fr.svg' import id from 'svg-country-flags/svg/id.svg' import pt from 'svg-country-flags/svg/pt.svg' +import br from 'svg-country-flags/svg/br.svg' +import ru from 'svg-country-flags/svg/ru.svg' +import tr from 'svg-country-flags/svg/tr.svg' export default { it, @@ -13,5 +16,8 @@ export default { de, fr, id, - pt + pt, + ptBr: br, + ru, + tr } From 7db322c0be2d325a4d4737467744698ae0ae1168 Mon Sep 17 00:00:00 2001 From: Roberto Tonino Date: Wed, 29 Jul 2020 18:51:41 +0200 Subject: [PATCH 3/6] updated README.md --- README.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 6b3673d..54c8c0a 100644 --- a/README.md +++ b/README.md @@ -6,8 +6,9 @@ This is just the WebUI for deemix, it should be used with deemix-pyweb or someth - Use Vue as much as possible - First step: rewrite the app in Single File Components way ✅ - - Second step: Implement routing for the whole app using Vue Router - - Third step: Remove jQuery + - Second step: Implement custom contextmenu + - Third step: Implement routing for the whole app using Vue Router + - Fourth step: Remove jQuery - Make i18n async (https://kazupon.github.io/vue-i18n/guide/lazy-loading.html) - Use ES2020 async imports, if possible - Make the UI look coherent From a781eb577e9bdaab7274cd545249c641fc4d0de3 Mon Sep 17 00:00:00 2001 From: RemixDev Date: Wed, 29 Jul 2020 19:08:29 +0200 Subject: [PATCH 4/6] Updated german translation --- public/js/bundle.js | 8 ++-- src/lang/de.js | 110 ++++++++++++++++++++++---------------------- 2 files changed, 59 insertions(+), 59 deletions(-) diff --git a/public/js/bundle.js b/public/js/bundle.js index 54ad7d5..1f7726b 100644 --- a/public/js/bundle.js +++ b/public/js/bundle.js @@ -3,7 +3,7 @@ * (c) 2014-2019 Evan You * Released under the MIT License. */ -var e=Object.freeze({});function t(e){return null==e}function n(e){return null!=e}function a(e){return!0===e}function i(e){return"string"==typeof e||"number"==typeof e||"symbol"==typeof e||"boolean"==typeof e}function r(e){return null!==e&&"object"==typeof e}var s=Object.prototype.toString;function o(e){return"[object Object]"===s.call(e)}function l(e){var t=parseFloat(String(e));return t>=0&&Math.floor(t)===t&&isFinite(e)}function c(e){return n(e)&&"function"==typeof e.then&&"function"==typeof e.catch}function d(e){return null==e?"":Array.isArray(e)||o(e)&&e.toString===s?JSON.stringify(e,null,2):String(e)}function u(e){var t=parseFloat(e);return isNaN(t)?e:t}function p(e,t){for(var n=Object.create(null),a=e.split(","),i=0;i-1)return e.splice(n,1)}}var v=Object.prototype.hasOwnProperty;function g(e,t){return v.call(e,t)}function b(e){var t=Object.create(null);return function(n){return t[n]||(t[n]=e(n))}}var y=/-(\w)/g,_=b((function(e){return e.replace(y,(function(e,t){return t?t.toUpperCase():""}))})),k=b((function(e){return e.charAt(0).toUpperCase()+e.slice(1)})),w=/\B([A-Z])/g,A=b((function(e){return e.replace(w,"-$1").toLowerCase()}));var C=Function.prototype.bind?function(e,t){return e.bind(t)}:function(e,t){function n(n){var a=arguments.length;return a?a>1?e.apply(t,arguments):e.call(t,n):e.call(t)}return n._length=e.length,n};function x(e,t){t=t||0;for(var n=e.length-t,a=new Array(n);n--;)a[n]=e[n+t];return a}function T(e,t){for(var n in t)e[n]=t[n];return e}function S(e){for(var t={},n=0;n0,K=W&&W.indexOf("edge/")>0,Y=(W&&W.indexOf("android"),W&&/iphone|ipad|ipod|ios/.test(W)||"ios"===H),J=(W&&/chrome\/\d+/.test(W),W&&/phantomjs/.test(W),W&&W.match(/firefox\/(\d+)/)),X={}.watch,Z=!1;if(U)try{var ee={};Object.defineProperty(ee,"passive",{get:function(){Z=!0}}),window.addEventListener("test-passive",null,ee)}catch(e){}var te=function(){return void 0===B&&(B=!U&&!V&&"undefined"!=typeof global&&(global.process&&"server"===global.process.env.VUE_ENV)),B},ne=U&&window.__VUE_DEVTOOLS_GLOBAL_HOOK__;function ae(e){return"function"==typeof e&&/native code/.test(e.toString())}var ie,re="undefined"!=typeof Symbol&&ae(Symbol)&&"undefined"!=typeof Reflect&&ae(Reflect.ownKeys);ie="undefined"!=typeof Set&&ae(Set)?Set:function(){function e(){this.set=Object.create(null)}return e.prototype.has=function(e){return!0===this.set[e]},e.prototype.add=function(e){this.set[e]=!0},e.prototype.clear=function(){this.set=Object.create(null)},e}();var se=M,oe=0,le=function(){this.id=oe++,this.subs=[]};le.prototype.addSub=function(e){this.subs.push(e)},le.prototype.removeSub=function(e){m(this.subs,e)},le.prototype.depend=function(){le.target&&le.target.addDep(this)},le.prototype.notify=function(){for(var e=this.subs.slice(),t=0,n=e.length;t-1)if(r&&!g(i,"default"))s=!1;else if(""===s||s===A(e)){var l=Oe(String,i.type);(l<0||o0&&(lt((l=e(l,(s||"")+"_"+o))[0])&<(d)&&(u[c]=me(d.text+l[0].text),l.shift()),u.push.apply(u,l)):i(l)?lt(d)?u[c]=me(d.text+l):""!==l&&u.push(me(l)):lt(l)&<(d)?u[c]=me(d.text+l.text):(a(r._isVList)&&n(l.tag)&&t(l.key)&&n(s)&&(l.key="__vlist"+s+"_"+o+"__"),u.push(l)));return u}(e):void 0}function lt(e){return n(e)&&n(e.text)&&!1===e.isComment}function ct(e,t){if(e){for(var n=Object.create(null),a=re?Reflect.ownKeys(e):Object.keys(e),i=0;i0,s=t?!!t.$stable:!r,o=t&&t.$key;if(t){if(t._normalized)return t._normalized;if(s&&a&&a!==e&&o===a.$key&&!r&&!a.$hasNormal)return a;for(var l in i={},t)t[l]&&"$"!==l[0]&&(i[l]=ht(n,l,t[l]))}else i={};for(var c in n)c in i||(i[c]=ft(n,c));return t&&Object.isExtensible(t)&&(t._normalized=i),O(i,"$stable",s),O(i,"$key",o),O(i,"$hasNormal",r),i}function ht(e,t,n){var a=function(){var e=arguments.length?n.apply(null,arguments):n({});return(e=e&&"object"==typeof e&&!Array.isArray(e)?[e]:ot(e))&&(0===e.length||1===e.length&&e[0].isComment)?void 0:e};return n.proxy&&Object.defineProperty(e,t,{get:a,enumerable:!0,configurable:!0}),a}function ft(e,t){return function(){return e[t]}}function mt(e,t){var a,i,s,o,l;if(Array.isArray(e)||"string"==typeof e)for(a=new Array(e.length),i=0,s=e.length;idocument.createEvent("Event").timeStamp&&(sn=function(){return on.now()})}function ln(){var e,t;for(rn=sn(),nn=!0,Xt.sort((function(e,t){return e.id-t.id})),an=0;anan&&Xt[n].id>e.id;)n--;Xt.splice(n+1,0,e)}else Xt.push(e);tn||(tn=!0,Ze(ln))}}(this)},dn.prototype.run=function(){if(this.active){var e=this.get();if(e!==this.value||r(e)||this.deep){var t=this.value;if(this.value=e,this.user)try{this.cb.call(this.vm,e,t)}catch(e){je(e,this.vm,'callback for watcher "'+this.expression+'"')}else this.cb.call(this.vm,e,t)}}},dn.prototype.evaluate=function(){this.value=this.get(),this.dirty=!1},dn.prototype.depend=function(){for(var e=this.deps.length;e--;)this.deps[e].depend()},dn.prototype.teardown=function(){if(this.active){this.vm._isBeingDestroyed||m(this.vm._watchers,this);for(var e=this.deps.length;e--;)this.deps[e].removeSub(this);this.active=!1}};var un={enumerable:!0,configurable:!0,get:M,set:M};function pn(e,t,n){un.get=function(){return this[t][n]},un.set=function(e){this[t][n]=e},Object.defineProperty(e,n,un)}function hn(e){e._watchers=[];var t=e.$options;t.props&&function(e,t){var n=e.$options.propsData||{},a=e._props={},i=e.$options._propKeys=[];e.$parent&&ke(!1);var r=function(r){i.push(r);var s=Ee(r,t,n,e);Ce(a,r,s),r in e||pn(e,"_props",r)};for(var s in t)r(s);ke(!0)}(e,t.props),t.methods&&function(e,t){e.$options.props;for(var n in t)e[n]="function"!=typeof t[n]?M:C(t[n],e)}(e,t.methods),t.data?function(e){var t=e.$options.data;o(t=e._data="function"==typeof t?function(e,t){de();try{return e.call(t,t)}catch(e){return je(e,t,"data()"),{}}finally{ue()}}(t,e):t||{})||(t={});var n=Object.keys(t),a=e.$options.props,i=(e.$options.methods,n.length);for(;i--;){var r=n[i];a&&g(a,r)||I(r)||pn(e,"_data",r)}Ae(t,!0)}(e):Ae(e._data={},!0),t.computed&&function(e,t){var n=e._computedWatchers=Object.create(null),a=te();for(var i in t){var r=t[i],s="function"==typeof r?r:r.get;a||(n[i]=new dn(e,s||M,M,fn)),i in e||mn(e,i,r)}}(e,t.computed),t.watch&&t.watch!==X&&function(e,t){for(var n in t){var a=t[n];if(Array.isArray(a))for(var i=0;i-1:"string"==typeof e?e.split(",").indexOf(t)>-1:(n=e,"[object RegExp]"===s.call(n)&&e.test(t));var n}function xn(e,t){var n=e.cache,a=e.keys,i=e._vnode;for(var r in n){var s=n[r];if(s){var o=An(s.componentOptions);o&&!t(o)&&Tn(n,r,a,i)}}}function Tn(e,t,n,a){var i=e[t];!i||a&&i.tag===a.tag||i.componentInstance.$destroy(),e[t]=null,m(n,t)}!function(t){t.prototype._init=function(t){var n=this;n._uid=yn++,n._isVue=!0,t&&t._isComponent?function(e,t){var n=e.$options=Object.create(e.constructor.options),a=t._parentVnode;n.parent=t.parent,n._parentVnode=a;var i=a.componentOptions;n.propsData=i.propsData,n._parentListeners=i.listeners,n._renderChildren=i.children,n._componentTag=i.tag,t.render&&(n.render=t.render,n.staticRenderFns=t.staticRenderFns)}(n,t):n.$options=Le(_n(n.constructor),t||{},n),n._renderProxy=n,n._self=n,function(e){var t=e.$options,n=t.parent;if(n&&!t.abstract){for(;n.$options.abstract&&n.$parent;)n=n.$parent;n.$children.push(e)}e.$parent=n,e.$root=n?n.$root:e,e.$children=[],e.$refs={},e._watcher=null,e._inactive=null,e._directInactive=!1,e._isMounted=!1,e._isDestroyed=!1,e._isBeingDestroyed=!1}(n),function(e){e._events=Object.create(null),e._hasHookEvent=!1;var t=e.$options._parentListeners;t&&Wt(e,t)}(n),function(t){t._vnode=null,t._staticTrees=null;var n=t.$options,a=t.$vnode=n._parentVnode,i=a&&a.context;t.$slots=dt(n._renderChildren,i),t.$scopedSlots=e,t._c=function(e,n,a,i){return Ft(t,e,n,a,i,!1)},t.$createElement=function(e,n,a,i){return Ft(t,e,n,a,i,!0)};var r=a&&a.data;Ce(t,"$attrs",r&&r.attrs||e,null,!0),Ce(t,"$listeners",n._parentListeners||e,null,!0)}(n),Jt(n,"beforeCreate"),function(e){var t=ct(e.$options.inject,e);t&&(ke(!1),Object.keys(t).forEach((function(n){Ce(e,n,t[n])})),ke(!0))}(n),hn(n),function(e){var t=e.$options.provide;t&&(e._provided="function"==typeof t?t.call(e):t)}(n),Jt(n,"created"),n.$options.el&&n.$mount(n.$options.el)}}(kn),function(e){var t={get:function(){return this._data}},n={get:function(){return this._props}};Object.defineProperty(e.prototype,"$data",t),Object.defineProperty(e.prototype,"$props",n),e.prototype.$set=xe,e.prototype.$delete=Te,e.prototype.$watch=function(e,t,n){if(o(t))return bn(this,e,t,n);(n=n||{}).user=!0;var a=new dn(this,e,t,n);if(n.immediate)try{t.call(this,a.value)}catch(e){je(e,this,'callback for immediate watcher "'+a.expression+'"')}return function(){a.teardown()}}}(kn),function(e){var t=/^hook:/;e.prototype.$on=function(e,n){var a=this;if(Array.isArray(e))for(var i=0,r=e.length;i1?x(n):n;for(var a=x(arguments,1),i='event handler for "'+e+'"',r=0,s=n.length;rparseInt(this.max)&&Tn(s,o[0],o,this._vnode)),t.data.keepAlive=!0}return t||e&&e[0]}}};!function(e){var t={get:function(){return E}};Object.defineProperty(e,"config",t),e.util={warn:se,extend:T,mergeOptions:Le,defineReactive:Ce},e.set=xe,e.delete=Te,e.nextTick=Ze,e.observable=function(e){return Ae(e),e},e.options=Object.create(null),L.forEach((function(t){e.options[t+"s"]=Object.create(null)})),e.options._base=e,T(e.options.components,Mn),function(e){e.use=function(e){var t=this._installedPlugins||(this._installedPlugins=[]);if(t.indexOf(e)>-1)return this;var n=x(arguments,1);return n.unshift(this),"function"==typeof e.install?e.install.apply(e,n):"function"==typeof e&&e.apply(null,n),t.push(e),this}}(e),function(e){e.mixin=function(e){return this.options=Le(this.options,e),this}}(e),wn(e),function(e){L.forEach((function(t){e[t]=function(e,n){return n?("component"===t&&o(n)&&(n.name=n.name||e,n=this.options._base.extend(n)),"directive"===t&&"function"==typeof n&&(n={bind:n,update:n}),this.options[t+"s"][e]=n,n):this.options[t+"s"][e]}}))}(e)}(kn),Object.defineProperty(kn.prototype,"$isServer",{get:te}),Object.defineProperty(kn.prototype,"$ssrContext",{get:function(){return this.$vnode&&this.$vnode.ssrContext}}),Object.defineProperty(kn,"FunctionalRenderContext",{value:Dt}),kn.version="2.6.11";var $n=p("style,class"),Dn=p("input,textarea,option,select,progress"),zn=function(e,t,n){return"value"===n&&Dn(e)&&"button"!==t||"selected"===n&&"option"===e||"checked"===n&&"input"===e||"muted"===n&&"video"===e},Pn=p("contenteditable,draggable,spellcheck"),Nn=p("events,caret,typing,plaintext-only"),Ln=p("allowfullscreen,async,autofocus,autoplay,checked,compact,controls,declare,default,defaultchecked,defaultmuted,defaultselected,defer,disabled,enabled,formnovalidate,hidden,indeterminate,inert,ismap,itemscope,loop,multiple,muted,nohref,noresize,noshade,novalidate,nowrap,open,pauseonexit,readonly,required,reversed,scoped,seamless,selected,sortable,translate,truespeed,typemustmatch,visible"),Rn="http://www.w3.org/1999/xlink",En=function(e){return":"===e.charAt(5)&&"xlink"===e.slice(0,5)},Fn=function(e){return En(e)?e.slice(6,e.length):""},In=function(e){return null==e||!1===e};function On(e){for(var t=e.data,a=e,i=e;n(i.componentInstance);)(i=i.componentInstance._vnode)&&i.data&&(t=jn(i.data,t));for(;n(a=a.parent);)a&&a.data&&(t=jn(t,a.data));return function(e,t){if(n(e)||n(t))return Bn(e,qn(t));return""}(t.staticClass,t.class)}function jn(e,t){return{staticClass:Bn(e.staticClass,t.staticClass),class:n(e.class)?[e.class,t.class]:t.class}}function Bn(e,t){return e?t?e+" "+t:e:t||""}function qn(e){return Array.isArray(e)?function(e){for(var t,a="",i=0,r=e.length;i-1?ha(e,t,n):Ln(t)?In(n)?e.removeAttribute(t):(n="allowfullscreen"===t&&"EMBED"===e.tagName?"true":t,e.setAttribute(t,n)):Pn(t)?e.setAttribute(t,function(e,t){return In(t)||"false"===t?"false":"contenteditable"===e&&Nn(t)?t:"true"}(t,n)):En(t)?In(n)?e.removeAttributeNS(Rn,Fn(t)):e.setAttributeNS(Rn,t,n):ha(e,t,n)}function ha(e,t,n){if(In(n))e.removeAttribute(t);else{if(G&&!Q&&"TEXTAREA"===e.tagName&&"placeholder"===t&&""!==n&&!e.__ieph){var a=function(t){t.stopImmediatePropagation(),e.removeEventListener("input",a)};e.addEventListener("input",a),e.__ieph=!0}e.setAttribute(t,n)}}var fa={create:ua,update:ua};function ma(e,a){var i=a.elm,r=a.data,s=e.data;if(!(t(r.staticClass)&&t(r.class)&&(t(s)||t(s.staticClass)&&t(s.class)))){var o=On(a),l=i._transitionClasses;n(l)&&(o=Bn(o,qn(l))),o!==i._prevClass&&(i.setAttribute("class",o),i._prevClass=o)}}var va,ga,ba,ya,_a,ka,wa={create:ma,update:ma},Aa=/[\w).+\-_$\]]/;function Ca(e){var t,n,a,i,r,s=!1,o=!1,l=!1,c=!1,d=0,u=0,p=0,h=0;for(a=0;a=0&&" "===(m=e.charAt(f));f--);m&&Aa.test(m)||(c=!0)}}else void 0===i?(h=a+1,i=e.slice(0,a).trim()):v();function v(){(r||(r=[])).push(e.slice(h,a).trim()),h=a+1}if(void 0===i?i=e.slice(0,a).trim():0!==h&&v(),r)for(a=0;a-1?{exp:e.slice(0,ya),key:'"'+e.slice(ya+1)+'"'}:{exp:e,key:null};ga=e,ya=_a=ka=0;for(;!Ba();)qa(ba=ja())?Va(ba):91===ba&&Ua(ba);return{exp:e.slice(0,_a),key:e.slice(_a+1,ka)}}(e);return null===n.key?e+"="+t:"$set("+n.exp+", "+n.key+", "+t+")"}function ja(){return ga.charCodeAt(++ya)}function Ba(){return ya>=va}function qa(e){return 34===e||39===e}function Ua(e){var t=1;for(_a=ya;!Ba();)if(qa(e=ja()))Va(e);else if(91===e&&t++,93===e&&t--,0===t){ka=ya;break}}function Va(e){for(var t=e;!Ba()&&(e=ja())!==t;);}var Ha;function Wa(e,t,n){var a=Ha;return function i(){var r=t.apply(null,arguments);null!==r&&Ka(e,i,n,a)}}var Ga=He&&!(J&&Number(J[1])<=53);function Qa(e,t,n,a){if(Ga){var i=rn,r=t;t=r._wrapper=function(e){if(e.target===e.currentTarget||e.timeStamp>=i||e.timeStamp<=0||e.target.ownerDocument!==document)return r.apply(this,arguments)}}Ha.addEventListener(e,t,Z?{capture:n,passive:a}:n)}function Ka(e,t,n,a){(a||Ha).removeEventListener(e,t._wrapper||t,n)}function Ya(e,a){if(!t(e.data.on)||!t(a.data.on)){var i=a.data.on||{},r=e.data.on||{};Ha=a.elm,function(e){if(n(e.__r)){var t=G?"change":"input";e[t]=[].concat(e.__r,e[t]||[]),delete e.__r}n(e.__c)&&(e.change=[].concat(e.__c,e.change||[]),delete e.__c)}(i),it(i,r,Qa,Ka,Wa,a.context),Ha=void 0}}var Ja,Xa={create:Ya,update:Ya};function Za(e,a){if(!t(e.data.domProps)||!t(a.data.domProps)){var i,r,s=a.elm,o=e.data.domProps||{},l=a.data.domProps||{};for(i in n(l.__ob__)&&(l=a.data.domProps=T({},l)),o)i in l||(s[i]="");for(i in l){if(r=l[i],"textContent"===i||"innerHTML"===i){if(a.children&&(a.children.length=0),r===o[i])continue;1===s.childNodes.length&&s.removeChild(s.childNodes[0])}if("value"===i&&"PROGRESS"!==s.tagName){s._value=r;var c=t(r)?"":String(r);ei(s,c)&&(s.value=c)}else if("innerHTML"===i&&Hn(s.tagName)&&t(s.innerHTML)){(Ja=Ja||document.createElement("div")).innerHTML=""+r+"";for(var d=Ja.firstChild;s.firstChild;)s.removeChild(s.firstChild);for(;d.firstChild;)s.appendChild(d.firstChild)}else if(r!==o[i])try{s[i]=r}catch(e){}}}}function ei(e,t){return!e.composing&&("OPTION"===e.tagName||function(e,t){var n=!0;try{n=document.activeElement!==e}catch(e){}return n&&e.value!==t}(e,t)||function(e,t){var a=e.value,i=e._vModifiers;if(n(i)){if(i.number)return u(a)!==u(t);if(i.trim)return a.trim()!==t.trim()}return a!==t}(e,t))}var ti={create:Za,update:Za},ni=b((function(e){var t={},n=/:(.+)/;return e.split(/;(?![^(]*\))/g).forEach((function(e){if(e){var a=e.split(n);a.length>1&&(t[a[0].trim()]=a[1].trim())}})),t}));function ai(e){var t=ii(e.style);return e.staticStyle?T(e.staticStyle,t):t}function ii(e){return Array.isArray(e)?S(e):"string"==typeof e?ni(e):e}var ri,si=/^--/,oi=/\s*!important$/,li=function(e,t,n){if(si.test(t))e.style.setProperty(t,n);else if(oi.test(n))e.style.setProperty(A(t),n.replace(oi,""),"important");else{var a=di(t);if(Array.isArray(n))for(var i=0,r=n.length;i-1?t.split(hi).forEach((function(t){return e.classList.add(t)})):e.classList.add(t);else{var n=" "+(e.getAttribute("class")||"")+" ";n.indexOf(" "+t+" ")<0&&e.setAttribute("class",(n+t).trim())}}function mi(e,t){if(t&&(t=t.trim()))if(e.classList)t.indexOf(" ")>-1?t.split(hi).forEach((function(t){return e.classList.remove(t)})):e.classList.remove(t),e.classList.length||e.removeAttribute("class");else{for(var n=" "+(e.getAttribute("class")||"")+" ",a=" "+t+" ";n.indexOf(a)>=0;)n=n.replace(a," ");(n=n.trim())?e.setAttribute("class",n):e.removeAttribute("class")}}function vi(e){if(e){if("object"==typeof e){var t={};return!1!==e.css&&T(t,gi(e.name||"v")),T(t,e),t}return"string"==typeof e?gi(e):void 0}}var gi=b((function(e){return{enterClass:e+"-enter",enterToClass:e+"-enter-to",enterActiveClass:e+"-enter-active",leaveClass:e+"-leave",leaveToClass:e+"-leave-to",leaveActiveClass:e+"-leave-active"}})),bi=U&&!Q,yi="transition",_i="transitionend",ki="animation",wi="animationend";bi&&(void 0===window.ontransitionend&&void 0!==window.onwebkittransitionend&&(yi="WebkitTransition",_i="webkitTransitionEnd"),void 0===window.onanimationend&&void 0!==window.onwebkitanimationend&&(ki="WebkitAnimation",wi="webkitAnimationEnd"));var Ai=U?window.requestAnimationFrame?window.requestAnimationFrame.bind(window):setTimeout:function(e){return e()};function Ci(e){Ai((function(){Ai(e)}))}function xi(e,t){var n=e._transitionClasses||(e._transitionClasses=[]);n.indexOf(t)<0&&(n.push(t),fi(e,t))}function Ti(e,t){e._transitionClasses&&m(e._transitionClasses,t),mi(e,t)}function Si(e,t,n){var a=$i(e,t),i=a.type,r=a.timeout,s=a.propCount;if(!i)return n();var o="transition"===i?_i:wi,l=0,c=function(){e.removeEventListener(o,d),n()},d=function(t){t.target===e&&++l>=s&&c()};setTimeout((function(){l0&&(n="transition",d=s,u=r.length):"animation"===t?c>0&&(n="animation",d=c,u=l.length):u=(n=(d=Math.max(s,c))>0?s>c?"transition":"animation":null)?"transition"===n?r.length:l.length:0,{type:n,timeout:d,propCount:u,hasTransform:"transition"===n&&Mi.test(a[yi+"Property"])}}function Di(e,t){for(;e.length1}function Ei(e,t){!0!==t.data.show&&Pi(t)}var Fi=function(e){var r,s,o={},l=e.modules,c=e.nodeOps;for(r=0;rf?y(e,t(i[g+1])?null:i[g+1].elm,i,h,g,r):h>g&&k(a,p,f)}(p,m,g,r,d):n(g)?(n(e.text)&&c.setTextContent(p,""),y(p,null,g,0,g.length-1,r)):n(m)?k(m,0,m.length-1):n(e.text)&&c.setTextContent(p,""):e.text!==i.text&&c.setTextContent(p,i.text),n(f)&&n(h=f.hook)&&n(h=h.postpatch)&&h(e,i)}}}function x(e,t,i){if(a(i)&&n(e.parent))e.parent.data.pendingInsert=t;else for(var r=0;r-1,s.selected!==r&&(s.selected=r);else if(z(qi(s),a))return void(e.selectedIndex!==o&&(e.selectedIndex=o));i||(e.selectedIndex=-1)}}function Bi(e,t){return t.every((function(t){return!z(t,e)}))}function qi(e){return"_value"in e?e._value:e.value}function Ui(e){e.target.composing=!0}function Vi(e){e.target.composing&&(e.target.composing=!1,Hi(e.target,"input"))}function Hi(e,t){var n=document.createEvent("HTMLEvents");n.initEvent(t,!0,!0),e.dispatchEvent(n)}function Wi(e){return!e.componentInstance||e.data&&e.data.transition?e:Wi(e.componentInstance._vnode)}var Gi={model:Ii,show:{bind:function(e,t,n){var a=t.value,i=(n=Wi(n)).data&&n.data.transition,r=e.__vOriginalDisplay="none"===e.style.display?"":e.style.display;a&&i?(n.data.show=!0,Pi(n,(function(){e.style.display=r}))):e.style.display=a?r:"none"},update:function(e,t,n){var a=t.value;!a!=!t.oldValue&&((n=Wi(n)).data&&n.data.transition?(n.data.show=!0,a?Pi(n,(function(){e.style.display=e.__vOriginalDisplay})):Ni(n,(function(){e.style.display="none"}))):e.style.display=a?e.__vOriginalDisplay:"none")},unbind:function(e,t,n,a,i){i||(e.style.display=e.__vOriginalDisplay)}}},Qi={name:String,appear:Boolean,css:Boolean,mode:String,type:String,enterClass:String,leaveClass:String,enterToClass:String,leaveToClass:String,enterActiveClass:String,leaveActiveClass:String,appearClass:String,appearActiveClass:String,appearToClass:String,duration:[Number,String,Object]};function Ki(e){var t=e&&e.componentOptions;return t&&t.Ctor.options.abstract?Ki(qt(t.children)):e}function Yi(e){var t={},n=e.$options;for(var a in n.propsData)t[a]=e[a];var i=n._parentListeners;for(var r in i)t[_(r)]=i[r];return t}function Ji(e,t){if(/\d-keep-alive$/.test(t.tag))return e("keep-alive",{props:t.componentOptions.propsData})}var Xi=function(e){return e.tag||Bt(e)},Zi=function(e){return"show"===e.name},er={name:"transition",props:Qi,abstract:!0,render:function(e){var t=this,n=this.$slots.default;if(n&&(n=n.filter(Xi)).length){var a=this.mode,r=n[0];if(function(e){for(;e=e.parent;)if(e.data.transition)return!0}(this.$vnode))return r;var s=Ki(r);if(!s)return r;if(this._leaving)return Ji(e,r);var o="__transition-"+this._uid+"-";s.key=null==s.key?s.isComment?o+"comment":o+s.tag:i(s.key)?0===String(s.key).indexOf(o)?s.key:o+s.key:s.key;var l=(s.data||(s.data={})).transition=Yi(this),c=this._vnode,d=Ki(c);if(s.data.directives&&s.data.directives.some(Zi)&&(s.data.show=!0),d&&d.data&&!function(e,t){return t.key===e.key&&t.tag===e.tag}(s,d)&&!Bt(d)&&(!d.componentInstance||!d.componentInstance._vnode.isComment)){var u=d.data.transition=T({},l);if("out-in"===a)return this._leaving=!0,rt(u,"afterLeave",(function(){t._leaving=!1,t.$forceUpdate()})),Ji(e,r);if("in-out"===a){if(Bt(s))return c;var p,h=function(){p()};rt(l,"afterEnter",h),rt(l,"enterCancelled",h),rt(u,"delayLeave",(function(e){p=e}))}}return r}}},tr=T({tag:String,moveClass:String},Qi);function nr(e){e.elm._moveCb&&e.elm._moveCb(),e.elm._enterCb&&e.elm._enterCb()}function ar(e){e.data.newPos=e.elm.getBoundingClientRect()}function ir(e){var t=e.data.pos,n=e.data.newPos,a=t.left-n.left,i=t.top-n.top;if(a||i){e.data.moved=!0;var r=e.elm.style;r.transform=r.WebkitTransform="translate("+a+"px,"+i+"px)",r.transitionDuration="0s"}}delete tr.mode;var rr={Transition:er,TransitionGroup:{props:tr,beforeMount:function(){var e=this,t=this._update;this._update=function(n,a){var i=Qt(e);e.__patch__(e._vnode,e.kept,!1,!0),e._vnode=e.kept,i(),t.call(e,n,a)}},render:function(e){for(var t=this.tag||this.$vnode.data.tag||"span",n=Object.create(null),a=this.prevChildren=this.children,i=this.$slots.default||[],r=this.children=[],s=Yi(this),o=0;o-1?Qn[e]=t.constructor===window.HTMLUnknownElement||t.constructor===window.HTMLElement:Qn[e]=/HTMLUnknownElement/.test(t.toString())},T(kn.options.directives,Gi),T(kn.options.components,rr),kn.prototype.__patch__=U?Fi:M,kn.prototype.$mount=function(e,t){return function(e,t,n){var a;return e.$el=t,e.$options.render||(e.$options.render=fe),Jt(e,"beforeMount"),a=function(){e._update(e._render(),n)},new dn(e,a,M,{before:function(){e._isMounted&&!e._isDestroyed&&Jt(e,"beforeUpdate")}},!0),n=!1,null==e.$vnode&&(e._isMounted=!0,Jt(e,"mounted")),e}(this,e=e&&U?Yn(e):void 0,t)},U&&setTimeout((function(){E.devtools&&ne&&ne.emit("init",kn)}),0);var sr=/\{\{((?:.|\r?\n)+?)\}\}/g,or=/[-.*+?^${}()|[\]\/\\]/g,lr=b((function(e){var t=e[0].replace(or,"\\$&"),n=e[1].replace(or,"\\$&");return new RegExp(t+"((?:.|\\n)+?)"+n,"g")}));var cr={staticKeys:["staticClass"],transformNode:function(e,t){t.warn;var n=Ra(e,"class");n&&(e.staticClass=JSON.stringify(n));var a=La(e,"class",!1);a&&(e.classBinding=a)},genData:function(e){var t="";return e.staticClass&&(t+="staticClass:"+e.staticClass+","),e.classBinding&&(t+="class:"+e.classBinding+","),t}};var dr,ur={staticKeys:["staticStyle"],transformNode:function(e,t){t.warn;var n=Ra(e,"style");n&&(e.staticStyle=JSON.stringify(ni(n)));var a=La(e,"style",!1);a&&(e.styleBinding=a)},genData:function(e){var t="";return e.staticStyle&&(t+="staticStyle:"+e.staticStyle+","),e.styleBinding&&(t+="style:("+e.styleBinding+"),"),t}},pr=function(e){return(dr=dr||document.createElement("div")).innerHTML=e,dr.textContent},hr=p("area,base,br,col,embed,frame,hr,img,input,isindex,keygen,link,meta,param,source,track,wbr"),fr=p("colgroup,dd,dt,li,options,p,td,tfoot,th,thead,tr,source"),mr=p("address,article,aside,base,blockquote,body,caption,col,colgroup,dd,details,dialog,div,dl,dt,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,head,header,hgroup,hr,html,legend,li,menuitem,meta,optgroup,option,param,rp,rt,source,style,summary,tbody,td,tfoot,th,thead,title,tr,track"),vr=/^\s*([^\s"'<>\/=]+)(?:\s*(=)\s*(?:"([^"]*)"+|'([^']*)'+|([^\s"'=<>`]+)))?/,gr=/^\s*((?:v-[\w-]+:|@|:|#)\[[^=]+\][^\s"'<>\/=]*)(?:\s*(=)\s*(?:"([^"]*)"+|'([^']*)'+|([^\s"'=<>`]+)))?/,br="[a-zA-Z_][\\-\\.0-9_a-zA-Z"+F.source+"]*",yr="((?:"+br+"\\:)?"+br+")",_r=new RegExp("^<"+yr),kr=/^\s*(\/?)>/,wr=new RegExp("^<\\/"+yr+"[^>]*>"),Ar=/^]+>/i,Cr=/^",""":'"',"&":"&"," ":"\n"," ":"\t","'":"'"},$r=/&(?:lt|gt|quot|amp|#39);/g,Dr=/&(?:lt|gt|quot|amp|#39|#10|#9);/g,zr=p("pre,textarea",!0),Pr=function(e,t){return e&&zr(e)&&"\n"===t[0]};function Nr(e,t){var n=t?Dr:$r;return e.replace(n,(function(e){return Mr[e]}))}var Lr,Rr,Er,Fr,Ir,Or,jr,Br,qr=/^@|^v-on:/,Ur=/^v-|^@|^:|^#/,Vr=/([\s\S]*?)\s+(?:in|of)\s+([\s\S]*)/,Hr=/,([^,\}\]]*)(?:,([^,\}\]]*))?$/,Wr=/^\(|\)$/g,Gr=/^\[.*\]$/,Qr=/:(.*)$/,Kr=/^:|^\.|^v-bind:/,Yr=/\.[^.\]]+(?=[^\]]*$)/g,Jr=/^v-slot(:|$)|^#/,Xr=/[\r\n]/,Zr=/\s+/g,es=b(pr);function ts(e,t,n){return{type:1,tag:e,attrsList:t,attrsMap:ls(t),rawAttrsMap:{},parent:n,children:[]}}function ns(e,t){Lr=t.warn||Ta,Or=t.isPreTag||$,jr=t.mustUseProp||$,Br=t.getTagNamespace||$;t.isReservedTag;Er=Sa(t.modules,"transformNode"),Fr=Sa(t.modules,"preTransformNode"),Ir=Sa(t.modules,"postTransformNode"),Rr=t.delimiters;var n,a,i=[],r=!1!==t.preserveWhitespace,s=t.whitespace,o=!1,l=!1;function c(e){if(d(e),o||e.processed||(e=as(e,t)),i.length||e===n||n.if&&(e.elseif||e.else)&&rs(n,{exp:e.elseif,block:e}),a&&!e.forbidden)if(e.elseif||e.else)s=e,(c=function(e){for(var t=e.length;t--;){if(1===e[t].type)return e[t];e.pop()}}(a.children))&&c.if&&rs(c,{exp:s.elseif,block:s});else{if(e.slotScope){var r=e.slotTarget||'"default"';(a.scopedSlots||(a.scopedSlots={}))[r]=e}a.children.push(e),e.parent=a}var s,c;e.children=e.children.filter((function(e){return!e.slotScope})),d(e),e.pre&&(o=!1),Or(e.tag)&&(l=!1);for(var u=0;u]*>)","i")),p=e.replace(u,(function(e,n,a){return c=a.length,Tr(d)||"noscript"===d||(n=n.replace(//g,"$1").replace(//g,"$1")),Pr(d,n)&&(n=n.slice(1)),t.chars&&t.chars(n),""}));l+=e.length-p.length,e=p,T(d,l-c,l)}else{var h=e.indexOf("<");if(0===h){if(Cr.test(e)){var f=e.indexOf("--\x3e");if(f>=0){t.shouldKeepComment&&t.comment(e.substring(4,f),l,l+f+3),A(f+3);continue}}if(xr.test(e)){var m=e.indexOf("]>");if(m>=0){A(m+2);continue}}var v=e.match(Ar);if(v){A(v[0].length);continue}var g=e.match(wr);if(g){var b=l;A(g[0].length),T(g[1],b,l);continue}var y=C();if(y){x(y),Pr(y.tagName,e)&&A(1);continue}}var _=void 0,k=void 0,w=void 0;if(h>=0){for(k=e.slice(h);!(wr.test(k)||_r.test(k)||Cr.test(k)||xr.test(k)||(w=k.indexOf("<",1))<0);)h+=w,k=e.slice(h);_=e.substring(0,h)}h<0&&(_=e),_&&A(_.length),t.chars&&_&&t.chars(_,l-_.length,l)}if(e===n){t.chars&&t.chars(e);break}}function A(t){l+=t,e=e.substring(t)}function C(){var t=e.match(_r);if(t){var n,a,i={tagName:t[1],attrs:[],start:l};for(A(t[0].length);!(n=e.match(kr))&&(a=e.match(gr)||e.match(vr));)a.start=l,A(a[0].length),a.end=l,i.attrs.push(a);if(n)return i.unarySlash=n[1],A(n[0].length),i.end=l,i}}function x(e){var n=e.tagName,l=e.unarySlash;r&&("p"===a&&mr(n)&&T(a),o(n)&&a===n&&T(n));for(var c=s(n)||!!l,d=e.attrs.length,u=new Array(d),p=0;p=0&&i[s].lowerCasedTag!==o;s--);else s=0;if(s>=0){for(var c=i.length-1;c>=s;c--)t.end&&t.end(i[c].tag,n,r);i.length=s,a=s&&i[s-1].tag}else"br"===o?t.start&&t.start(e,[],!0,n,r):"p"===o&&(t.start&&t.start(e,[],!1,n,r),t.end&&t.end(e,n,r))}T()}(e,{warn:Lr,expectHTML:t.expectHTML,isUnaryTag:t.isUnaryTag,canBeLeftOpenTag:t.canBeLeftOpenTag,shouldDecodeNewlines:t.shouldDecodeNewlines,shouldDecodeNewlinesForHref:t.shouldDecodeNewlinesForHref,shouldKeepComment:t.comments,outputSourceRange:t.outputSourceRange,start:function(e,r,s,d,u){var p=a&&a.ns||Br(e);G&&"svg"===p&&(r=function(e){for(var t=[],n=0;nl&&(o.push(r=e.slice(l,i)),s.push(JSON.stringify(r)));var c=Ca(a[1].trim());s.push("_s("+c+")"),o.push({"@binding":c}),l=i+a[0].length}return l-1"+("true"===r?":("+t+")":":_q("+t+","+r+")")),Na(e,"change","var $$a="+t+",$$el=$event.target,$$c=$$el.checked?("+r+"):("+s+");if(Array.isArray($$a)){var $$v="+(a?"_n("+i+")":i)+",$$i=_i($$a,$$v);if($$el.checked){$$i<0&&("+Oa(t,"$$a.concat([$$v])")+")}else{$$i>-1&&("+Oa(t,"$$a.slice(0,$$i).concat($$a.slice($$i+1))")+")}}else{"+Oa(t,"$$c")+"}",null,!0)}(e,a,i);else if("input"===r&&"radio"===s)!function(e,t,n){var a=n&&n.number,i=La(e,"value")||"null";Ma(e,"checked","_q("+t+","+(i=a?"_n("+i+")":i)+")"),Na(e,"change",Oa(t,i),null,!0)}(e,a,i);else if("input"===r||"textarea"===r)!function(e,t,n){var a=e.attrsMap.type,i=n||{},r=i.lazy,s=i.number,o=i.trim,l=!r&&"range"!==a,c=r?"change":"range"===a?"__r":"input",d="$event.target.value";o&&(d="$event.target.value.trim()");s&&(d="_n("+d+")");var u=Oa(t,d);l&&(u="if($event.target.composing)return;"+u);Ma(e,"value","("+t+")"),Na(e,c,u,null,!0),(o||s)&&Na(e,"blur","$forceUpdate()")}(e,a,i);else if(!E.isReservedTag(r))return Ia(e,a,i),!1;return!0},text:function(e,t){t.value&&Ma(e,"textContent","_s("+t.value+")",t)},html:function(e,t){t.value&&Ma(e,"innerHTML","_s("+t.value+")",t)}},isPreTag:function(e){return"pre"===e},isUnaryTag:hr,mustUseProp:zn,canBeLeftOpenTag:fr,isReservedTag:Wn,getTagNamespace:Gn,staticKeys:function(e){return e.reduce((function(e,t){return e.concat(t.staticKeys||[])}),[]).join(",")}(ps)},vs=b((function(e){return p("type,tag,attrsList,attrsMap,plain,parent,children,attrs,start,end,rawAttrsMap"+(e?","+e:""))}));function gs(e,t){e&&(hs=vs(t.staticKeys||""),fs=t.isReservedTag||$,function e(t){if(t.static=function(e){if(2===e.type)return!1;if(3===e.type)return!0;return!(!e.pre&&(e.hasBindings||e.if||e.for||h(e.tag)||!fs(e.tag)||function(e){for(;e.parent;){if("template"!==(e=e.parent).tag)return!1;if(e.for)return!0}return!1}(e)||!Object.keys(e).every(hs)))}(t),1===t.type){if(!fs(t.tag)&&"slot"!==t.tag&&null==t.attrsMap["inline-template"])return;for(var n=0,a=t.children.length;n|^function(?:\s+[\w$]+)?\s*\(/,ys=/\([^)]*?\);*$/,_s=/^[A-Za-z_$][\w$]*(?:\.[A-Za-z_$][\w$]*|\['[^']*?']|\["[^"]*?"]|\[\d+]|\[[A-Za-z_$][\w$]*])*$/,ks={esc:27,tab:9,enter:13,space:32,up:38,left:37,right:39,down:40,delete:[8,46]},ws={esc:["Esc","Escape"],tab:"Tab",enter:"Enter",space:[" ","Spacebar"],up:["Up","ArrowUp"],left:["Left","ArrowLeft"],right:["Right","ArrowRight"],down:["Down","ArrowDown"],delete:["Backspace","Delete","Del"]},As=function(e){return"if("+e+")return null;"},Cs={stop:"$event.stopPropagation();",prevent:"$event.preventDefault();",self:As("$event.target !== $event.currentTarget"),ctrl:As("!$event.ctrlKey"),shift:As("!$event.shiftKey"),alt:As("!$event.altKey"),meta:As("!$event.metaKey"),left:As("'button' in $event && $event.button !== 0"),middle:As("'button' in $event && $event.button !== 1"),right:As("'button' in $event && $event.button !== 2")};function xs(e,t){var n=t?"nativeOn:":"on:",a="",i="";for(var r in e){var s=Ts(e[r]);e[r]&&e[r].dynamic?i+=r+","+s+",":a+='"'+r+'":'+s+","}return a="{"+a.slice(0,-1)+"}",i?n+"_d("+a+",["+i.slice(0,-1)+"])":n+a}function Ts(e){if(!e)return"function(){}";if(Array.isArray(e))return"["+e.map((function(e){return Ts(e)})).join(",")+"]";var t=_s.test(e.value),n=bs.test(e.value),a=_s.test(e.value.replace(ys,""));if(e.modifiers){var i="",r="",s=[];for(var o in e.modifiers)if(Cs[o])r+=Cs[o],ks[o]&&s.push(o);else if("exact"===o){var l=e.modifiers;r+=As(["ctrl","shift","alt","meta"].filter((function(e){return!l[e]})).map((function(e){return"$event."+e+"Key"})).join("||"))}else s.push(o);return s.length&&(i+=function(e){return"if(!$event.type.indexOf('key')&&"+e.map(Ss).join("&&")+")return null;"}(s)),r&&(i+=r),"function($event){"+i+(t?"return "+e.value+"($event)":n?"return ("+e.value+")($event)":a?"return "+e.value:e.value)+"}"}return t||n?e.value:"function($event){"+(a?"return "+e.value:e.value)+"}"}function Ss(e){var t=parseInt(e,10);if(t)return"$event.keyCode!=="+t;var n=ks[e],a=ws[e];return"_k($event.keyCode,"+JSON.stringify(e)+","+JSON.stringify(n)+",$event.key,"+JSON.stringify(a)+")"}var Ms={on:function(e,t){e.wrapListeners=function(e){return"_g("+e+","+t.value+")"}},bind:function(e,t){e.wrapData=function(n){return"_b("+n+",'"+e.tag+"',"+t.value+","+(t.modifiers&&t.modifiers.prop?"true":"false")+(t.modifiers&&t.modifiers.sync?",true":"")+")"}},cloak:M},$s=function(e){this.options=e,this.warn=e.warn||Ta,this.transforms=Sa(e.modules,"transformCode"),this.dataGenFns=Sa(e.modules,"genData"),this.directives=T(T({},Ms),e.directives);var t=e.isReservedTag||$;this.maybeComponent=function(e){return!!e.component||!t(e.tag)},this.onceId=0,this.staticRenderFns=[],this.pre=!1};function Ds(e,t){var n=new $s(t);return{render:"with(this){return "+(e?zs(e,n):'_c("div")')+"}",staticRenderFns:n.staticRenderFns}}function zs(e,t){if(e.parent&&(e.pre=e.pre||e.parent.pre),e.staticRoot&&!e.staticProcessed)return Ps(e,t);if(e.once&&!e.onceProcessed)return Ns(e,t);if(e.for&&!e.forProcessed)return Rs(e,t);if(e.if&&!e.ifProcessed)return Ls(e,t);if("template"!==e.tag||e.slotTarget||t.pre){if("slot"===e.tag)return function(e,t){var n=e.slotName||'"default"',a=Os(e,t),i="_t("+n+(a?","+a:""),r=e.attrs||e.dynamicAttrs?qs((e.attrs||[]).concat(e.dynamicAttrs||[]).map((function(e){return{name:_(e.name),value:e.value,dynamic:e.dynamic}}))):null,s=e.attrsMap["v-bind"];!r&&!s||a||(i+=",null");r&&(i+=","+r);s&&(i+=(r?"":",null")+","+s);return i+")"}(e,t);var n;if(e.component)n=function(e,t,n){var a=t.inlineTemplate?null:Os(t,n,!0);return"_c("+e+","+Es(t,n)+(a?","+a:"")+")"}(e.component,e,t);else{var a;(!e.plain||e.pre&&t.maybeComponent(e))&&(a=Es(e,t));var i=e.inlineTemplate?null:Os(e,t,!0);n="_c('"+e.tag+"'"+(a?","+a:"")+(i?","+i:"")+")"}for(var r=0;r>>0}(s):"")+")"}(e,e.scopedSlots,t)+","),e.model&&(n+="model:{value:"+e.model.value+",callback:"+e.model.callback+",expression:"+e.model.expression+"},"),e.inlineTemplate){var r=function(e,t){var n=e.children[0];if(n&&1===n.type){var a=Ds(n,t.options);return"inlineTemplate:{render:function(){"+a.render+"},staticRenderFns:["+a.staticRenderFns.map((function(e){return"function(){"+e+"}"})).join(",")+"]}"}}(e,t);r&&(n+=r+",")}return n=n.replace(/,$/,"")+"}",e.dynamicAttrs&&(n="_b("+n+',"'+e.tag+'",'+qs(e.dynamicAttrs)+")"),e.wrapData&&(n=e.wrapData(n)),e.wrapListeners&&(n=e.wrapListeners(n)),n}function Fs(e){return 1===e.type&&("slot"===e.tag||e.children.some(Fs))}function Is(e,t){var n=e.attrsMap["slot-scope"];if(e.if&&!e.ifProcessed&&!n)return Ls(e,t,Is,"null");if(e.for&&!e.forProcessed)return Rs(e,t,Is);var a="_empty_"===e.slotScope?"":String(e.slotScope),i="function("+a+"){return "+("template"===e.tag?e.if&&n?"("+e.if+")?"+(Os(e,t)||"undefined")+":undefined":Os(e,t)||"undefined":zs(e,t))+"}",r=a?"":",proxy:true";return"{key:"+(e.slotTarget||'"default"')+",fn:"+i+r+"}"}function Os(e,t,n,a,i){var r=e.children;if(r.length){var s=r[0];if(1===r.length&&s.for&&"template"!==s.tag&&"slot"!==s.tag){var o=n?t.maybeComponent(s)?",1":",0":"";return""+(a||zs)(s,t)+o}var l=n?function(e,t){for(var n=0,a=0;a':'
',Gs.innerHTML.indexOf(" ")>0}var Ys=!!U&&Ks(!1),Js=!!U&&Ks(!0),Xs=b((function(e){var t=Yn(e);return t&&t.innerHTML})),Zs=kn.prototype.$mount;kn.prototype.$mount=function(e,t){if((e=e&&Yn(e))===document.body||e===document.documentElement)return this;var n=this.$options;if(!n.render){var a=n.template;if(a)if("string"==typeof a)"#"===a.charAt(0)&&(a=Xs(a));else{if(!a.nodeType)return this;a=a.innerHTML}else e&&(a=function(e){if(e.outerHTML)return e.outerHTML;var t=document.createElement("div");return t.appendChild(e.cloneNode(!0)),t.innerHTML}(e));if(a){var i=Qs(a,{outputSourceRange:!1,shouldDecodeNewlines:Ys,shouldDecodeNewlinesForHref:Js,delimiters:n.delimiters,comments:n.comments},this),r=i.render,s=i.staticRenderFns;n.render=r,n.staticRenderFns=s}}return Zs.call(this,e,t)},kn.compile=Qs;const eo=io.connect(window.location.href);eo.on("connect",()=>{document.getElementById("start_app_placeholder").classList.add("loading_placeholder--hidden")});var to=new kn;function no(e,t){const{currentTarget:{dataset:{id:n}}}=t;switch(e){case"artist":to.$emit("artistTab:reset");break;case"album":case"playlist":case"spotifyplaylist":to.$emit("tracklistTab:reset")}eo.emit("getTracklist",{type:e,id:n}),ro(e,n)}function ao(e,t,n){window.windows_stack=[],window.currentStack={};const a=document.getElementsByClassName(t+"_tabcontent");for(let e=0;e{e.addEventListener("click",so)})}window.search_selected="",window.main_selected="",window.windows_stack=[],window.currentStack={};const lo={name:"the-sidebar",data:()=>({appOnline:null,activeTheme:"light",themes:["purple","dark","light"]}),mounted(){this.appOnline=navigator.onLine,window.addEventListener("online",()=>{this.appOnline=!0}),window.addEventListener("offline",()=>{this.appOnline=!1}),this.activeTheme=localStorage.getItem("selectedTheme")||"light"},methods:{changeTheme(e){e!==this.activeTheme&&(this.activeTheme=e,document.documentElement.setAttribute("data-theme",e),localStorage.setItem("selectedTheme",e),document.querySelectorAll("*").forEach(e=>{e.style.transition="all 200ms ease-in-out"}),document.documentElement.addEventListener("transitionend",(function e(){document.querySelectorAll("*").forEach(e=>{e.style.transition=""}),document.documentElement.removeEventListener("transitionend",e)})))},handleSidebarClick(e){const{target:t}=e;if(!(t.matches(".main_tablinks")||t.parentElement.matches(".main_tablinks")))return;let n=t.matches(".main_tablinks")?t:t.parentElement,a=null;switch(n.id){case"main_search_tablink":a="search_tab";break;case"main_home_tablink":a="home_tab";break;case"main_charts_tablink":a="charts_tab";break;case"main_favorites_tablink":a="favorites_tab";break;case"main_analyzer_tablink":a="analyzer_tab";break;case"main_settings_tablink":a="settings_tab";break;case"main_about_tablink":a="about_tab"}a&&ao(n,"main",a)}}};var co=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("aside",{attrs:{id:"sidebar",role:"navigation"},on:{click:e.handleSidebarClick}},[n("span",{staticClass:"main_tablinks",attrs:{id:"main_home_tablink",role:"link","aria-label":"home"}},[n("i",{staticClass:"material-icons side_icon"},[e._v("home")]),e._v(" "),n("span",{staticClass:"main_tablinks_text"},[e._v(e._s(e.$t("sidebar.home")))])]),e._v(" "),n("span",{staticClass:"main_tablinks",attrs:{id:"main_search_tablink",role:"link","aria-label":"search"}},[n("i",{staticClass:"material-icons side_icon"},[e._v("search")]),e._v(" "),n("span",{staticClass:"main_tablinks_text"},[e._v(e._s(e.$t("sidebar.search")))])]),e._v(" "),n("span",{staticClass:"main_tablinks",attrs:{id:"main_charts_tablink",role:"link","aria-label":"charts"}},[n("i",{staticClass:"material-icons side_icon"},[e._v("bubble_chart")]),e._v(" "),n("span",{staticClass:"main_tablinks_text"},[e._v(e._s(e.$t("sidebar.charts")))])]),e._v(" "),n("span",{staticClass:"main_tablinks",attrs:{id:"main_favorites_tablink",role:"link","aria-label":"favorites"}},[n("i",{staticClass:"material-icons side_icon"},[e._v("album")]),e._v(" "),n("span",{staticClass:"main_tablinks_text"},[e._v(e._s(e.$t("sidebar.favorites")))])]),e._v(" "),n("span",{staticClass:"main_tablinks",attrs:{id:"main_analyzer_tablink",role:"link","aria-label":"link analyzer"}},[n("i",{staticClass:"material-icons side_icon"},[e._v("link")]),e._v(" "),n("span",{staticClass:"main_tablinks_text"},[e._v(e._s(e.$t("sidebar.linkAnalyzer")))])]),e._v(" "),n("span",{staticClass:"main_tablinks",attrs:{id:"main_settings_tablink",role:"link","aria-label":"settings"}},[n("i",{staticClass:"material-icons side_icon"},[e._v("settings")]),e._v(" "),n("span",{staticClass:"main_tablinks_text"},[e._v(e._s(e.$t("sidebar.settings")))])]),e._v(" "),n("span",{staticClass:"main_tablinks",attrs:{id:"main_about_tablink",role:"link","aria-label":"info"}},[n("i",{staticClass:"material-icons side_icon"},[e._v("info")]),e._v(" "),n("span",{staticClass:"main_tablinks_text"},[e._v(e._s(e.$t("sidebar.about")))])]),e._v(" "),n("span",{staticClass:"main_tablinks",attrs:{id:"theme_selector",role:"link","aria-label":"theme selector"}},[n("i",{staticClass:"material-icons side_icon side_icon--theme"},[e._v("palette")]),e._v(" "),n("div",{attrs:{id:"theme_togglers"}},e._l(e.themes,(function(t){return n("div",{key:t,staticClass:"theme_toggler ",class:[{"theme_toggler--active":e.activeTheme===t},"theme_toggler--"+t],on:{click:function(n){return e.changeTheme(t)}}})})),0)]),e._v(" "),n("div",{class:{online:e.appOnline,offline:!e.appOnline},attrs:{id:"network-status"}},[e.appOnline?n("i",{staticClass:"material-icons"},[e._v("wifi")]):n("i",{staticClass:"material-icons"},[n("svg",{attrs:{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"}},[n("path",{attrs:{d:"M24 .01c0-.01 0-.01 0 0L0 0v24h24V.01zM0 0h24v24H0V0zm0 0h24v24H0V0z",fill:"none"}}),e._v(" "),n("path",{attrs:{d:"M22.99 9C19.15 5.16 13.8 3.76 8.84 4.78l2.52 2.52c3.47-.17 6.99 1.05 9.63 3.7l2-2zm-4 4c-1.29-1.29-2.84-2.13-4.49-2.56l3.53 3.53.96-.97zM2 3.05L5.07 6.1C3.6 6.82 2.22 7.78 1 9l1.99 2c1.24-1.24 2.67-2.16 4.2-2.77l2.24 2.24C7.81 10.89 6.27 11.73 5 13v.01L6.99 15c1.36-1.36 3.14-2.04 4.92-2.06L18.98 20l1.27-1.26L3.29 1.79 2 3.05zM9 17l3 3 3-3c-1.65-1.66-4.34-1.66-6 0z"}})])])])])};co._withStripped=!0;var uo=function(e,t,n,a,i,r,s,o){const l=("function"==typeof n?n.options:n)||{};l.__file="C:\\Users\\Roberto\\Dev\\repos\\deemix-pyweb\\webui\\src\\components\\TheSidebar.vue",l.render||(l.render=e.render,l.staticRenderFns=e.staticRenderFns,l._compiled=!0,i&&(l.functional=!0)),l._scopeId=a;{let e;if(t&&(e=function(e){t.call(this,s(e))}),void 0!==e)if(l.functional){const t=l.render;l.render=function(n,a){return e.call(a),t(n,a)}}else{const t=l.beforeCreate;l.beforeCreate=t?[].concat(t,e):[e]}}return l}({render:co,staticRenderFns:[]},(function(e){e&&e("data-v-0888ab22_0",{source:"\n#network-status[data-v-0888ab22] {\r\n\tdisplay: flex;\r\n\tjustify-content: center;\r\n\talign-items: center;\r\n\tposition: relative;\r\n\tmargin-top: auto;\r\n\tbottom: 0;\n}\n#network-status.online i.material-icons[data-v-0888ab22] {\r\n\tcolor: hsl(151, 100%, 31%);\n}\n#network-status.offline i.material-icons svg[data-v-0888ab22] {\r\n\tfill: red;\r\n\twidth: 1em;\r\n\theight: 1em;\n}\r\n",map:{version:3,sources:["C:\\Users\\Roberto\\Dev\\repos\\deemix-pyweb\\webui/C:\\Users\\Roberto\\Dev\\repos\\deemix-pyweb\\webui\\src\\components\\TheSidebar.vue"],names:[],mappings:";AA0DA;CACA,aAAA;CACA,uBAAA;CACA,mBAAA;CACA,kBAAA;CACA,gBAAA;CACA,SAAA;AACA;AAEA;CACA,0BAAA;AACA;AAEA;CACA,SAAA;CACA,UAAA;CACA,WAAA;AACA",file:"TheSidebar.vue",sourcesContent:['\r\n\r\n\r\n\r\n