From c1fb6ed49b53fbb54cd31154a3a862158171f990 Mon Sep 17 00:00:00 2001 From: Quacksire <19170969+quacksire@users.noreply.github.com> Date: Mon, 7 Feb 2022 18:17:54 -0800 Subject: [PATCH 001/337] Enable CircleCI Commit Appending --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 49175ab4..3c6db051 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "cider", "applicationId": "Cider", "productName": "Cider", - "version": "1.1.0", + "version": "1.1", "description": "A new look into listening and enjoying music in style and performance.", "license": "AGPL-3.0", "main": "./build/index.js", From 6b331cb22f5f899f720a93e3a59062395de936f2 Mon Sep 17 00:00:00 2001 From: vapormusic Date: Tue, 8 Feb 2022 09:40:46 +0700 Subject: [PATCH 002/337] fix #372 --- src/renderer/views/components/mediaitem-list-item.ejs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/renderer/views/components/mediaitem-list-item.ejs b/src/renderer/views/components/mediaitem-list-item.ejs index b311bb95..132d7b24 100644 --- a/src/renderer/views/components/mediaitem-list-item.ejs +++ b/src/renderer/views/components/mediaitem-list-item.ejs @@ -29,7 +29,7 @@
-
+
Date: Tue, 8 Feb 2022 14:14:05 +1100 Subject: [PATCH 003/337] Fix local builds (#375) --- .circleci/config.yml | 4 ++-- package.json | 4 ++-- resources/appendCommitToVersion.js | 3 ++- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 0427fa0c..b9f291ec 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -43,8 +43,8 @@ jobs: - store_test_results: path: test-results - run: - name: Append Commit SHA to Version - command: yarn circle:append-sha + name: Append Commit BuildID to Version + command: yarn circle:append-bid - run: name: Generate Builds (Linux) command: yarn dist -l -p never diff --git a/package.json b/package.json index 3c6db051..484c8170 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "cider", "applicationId": "Cider", "productName": "Cider", - "version": "1.1", + "version": "1.1.0", "description": "A new look into listening and enjoying music in style and performance.", "license": "AGPL-3.0", "main": "./build/index.js", @@ -26,7 +26,7 @@ "dist:all": "yarn build && electron-builder -mwl", "msft": "yarn build && electron-builder -c msft-package.json", "postinstall": "electron-builder install-app-deps", - "circle:append-sha": "node resources/appendCommitToVersion" + "circle:append-bid": "node resources/appendBIDToVersion" }, "dependencies": { "@sentry/electron": "^2.5.4", diff --git a/resources/appendCommitToVersion.js b/resources/appendCommitToVersion.js index b22c418e..123deba9 100644 --- a/resources/appendCommitToVersion.js +++ b/resources/appendCommitToVersion.js @@ -8,9 +8,10 @@ let fs = require('fs') var data = fs.readFileSync('package.json'); var package = JSON.parse(data); +pvers = package.version.match(/\d+\./g) // https://circleci.com/docs/2.0/env-vars/#built-in-environment-variables -package.version = `${package.version}.${process.env['CIRCLE_BUILD_NUM']}` +package.version = `${pvers[0]}.${pvers[1]}.${process.env['CIRCLE_BUILD_NUM']}` fs.writeFile('package.json', JSON.stringify(package), err => { From c817ba5267e192625ff234cf6358f0b7295c112f Mon Sep 17 00:00:00 2001 From: vapormusic Date: Tue, 8 Feb 2022 10:19:04 +0700 Subject: [PATCH 004/337] universal build --- package.json | 3 ++- src/renderer/index.js | 6 +++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/package.json b/package.json index 3c6db051..957f49bd 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "cider", "applicationId": "Cider", "productName": "Cider", - "version": "1.1", + "version": "1.1.0", "description": "A new look into listening and enjoying music in style and performance.", "license": "AGPL-3.0", "main": "./build/index.js", @@ -23,6 +23,7 @@ "start:darwin": "yarn build && ELECTRON_ENABLE_LOGGING=true && electron ./build/index.js --enable-accelerated-mjpeg-decode --enable-accelerated-video --disable-gpu-driver-bug-workarounds --ignore-gpu-blacklist --enable-native-gpu-memory-buffers", "pack": "electron-builder --dir", "dist": "yarn build && electron-builder", + "dist:mac": "yarn build && electron-builder --mac --universal", "dist:all": "yarn build && electron-builder -mwl", "msft": "yarn build && electron-builder -c msft-package.json", "postinstall": "electron-builder install-app-deps", diff --git a/src/renderer/index.js b/src/renderer/index.js index 5dc7a5d8..4c5a5519 100644 --- a/src/renderer/index.js +++ b/src/renderer/index.js @@ -1884,7 +1884,7 @@ const app = new Vue({ self.library.backgroundNotification.show = false self.searchLibrarySongs() localStorage.setItem("librarySongs", JSON.stringify(library)) - console.log(library) + // console.log(library) } } @@ -1992,7 +1992,7 @@ const app = new Vue({ self.library.backgroundNotification.show = false localStorage.setItem("libraryAlbums", JSON.stringify(library)) self.searchLibraryAlbums(index) - console.log(library) + // console.log(library) } } @@ -2098,7 +2098,7 @@ const app = new Vue({ self.library.backgroundNotification.show = false localStorage.setItem("libraryArtists", JSON.stringify(library)) self.searchLibraryArtists(index) - console.log(library) + // console.log(library) } } From 82020e16d391bd79e7f548c5ab1c4d387382d275 Mon Sep 17 00:00:00 2001 From: GamingLiamStudios <58615717+GamingLiamStudios@users.noreply.github.com> Date: Tue, 8 Feb 2022 14:25:26 +1100 Subject: [PATCH 005/337] Fix local builds(again) (#376) * Replace mentions of commit SHA with BID * Fix local builds * shit --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index f9f6e38b..657f87ec 100644 --- a/package.json +++ b/package.json @@ -27,7 +27,7 @@ "dist:all": "yarn build && electron-builder -mwl", "msft": "yarn build && electron-builder -c msft-package.json", "postinstall": "electron-builder install-app-deps", - "circle:append-bid": "node resources/appendBIDToVersion" + "circle:append-bid": "node resources/appendCommitToVersion" }, "dependencies": { "@sentry/electron": "^2.5.4", From 0ba24a236133441a0d472dfecb58ac75d84cdc63 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Onur=20G=C3=BCm=C3=BC=C5=9F?= <10urgumus@gmail.com> Date: Tue, 8 Feb 2022 06:30:09 +0300 Subject: [PATCH 006/337] Update tr_TR.jsonc (#374) --- src/i18n/tr_TR.jsonc | 69 +++++++++++++++++++++++++++++++++++--------- 1 file changed, 56 insertions(+), 13 deletions(-) diff --git a/src/i18n/tr_TR.jsonc b/src/i18n/tr_TR.jsonc index ead8ddfd..828ecb59 100644 --- a/src/i18n/tr_TR.jsonc +++ b/src/i18n/tr_TR.jsonc @@ -21,8 +21,8 @@ // Terms "term.appleInc": "Apple", - "term.appleMusic": "Apple Müzik", - "term.applePodcasts": "Apple Podcastler", + "term.appleMusic": "Apple Music", + "term.applePodcasts": "Apple Podcasts", "term.itunes": "iTunes", "term.github": "GitHub", "term.discord": "Discord", @@ -124,6 +124,25 @@ "term.time.second": "saniye", "term.videos": "Video Klipler", "term.menu": "Menü", + "term.check": "Şimdi Kontrol Et", + "term.aboutArtist": "About {{artistName}}", // e.g. 'About Doja Cat' + "term.updateCider": "Güncellemeleri Denetle", + "term.share.success": "Panoya Kopyalandı", + "term.topResult": "En İyi Sonuç", // Search Results + "term.sharedPlaylists": "Paylaşılan Listeler", // Search Results + "term.people": "Kişiler", // Search Results + "term.newpreset.name": "Yeni Önayar İsmi", // Equalizer Preset + "term.addedpreset": "Önayar Kaydedildi", + "term.deletepreset.warn": "Bu önayarı silmek istediğinize emin misiniz?", + "term.deletedpreset": "Önayar Silindi", + "term.musicVideos": "Video Klipler", // Search page friendlyTypes + "term.stations": "İstasyonlar", + "term.curators": "Editörler", + "term.appleCurators": "Apple Editörleri", + "term.radioShows": "Radio Şovları", + "term.recordLabels": "Kayıt Stüdyoları", + "term.videoExtras": "Ekstra Videolar", + "term.top": "En İyi", // Home "home.title": "Ana Sayfa", @@ -193,8 +212,12 @@ "action.export": "Export", "action.showAlbum": "Tüm Albümü Göster", "action.tray.minimize": "Görev Çubuğuna Küçült", - "action.tray.quit": "'den Çık", - "action.tray.show": "'i Göster", + "action.tray.quit": "Çık", + "action.tray.show": "Göster", + "action.update": "Güncelle", + "action.copy": "Kopyala", + "action.newpreset": "Yeni Önayar...", // Equalizer Preset + "action.deletepreset": "Önayarı Sil", // Settings - General "settings.header.general": "Genel Ayarlar", @@ -206,12 +229,25 @@ "settings.option.general.language.fun": "Mizahi Diller", "settings.option.general.language.unsorted": "Henüz Tamamlanmamış Diller", + // Update Cider + "settings.option.general.updateCider": "Güncellemeleri Kontrol Et", // Button. Refer to term.check for the check button + "settings.option.general.updateCider.branch": "Seçilen GitHub Versiyonu", // Dropdown + "settings.option.general.updateCider.branch.description": "Cider'in hangi versiyonuna güncelleneceğini seçin", + "settings.option.general.updateCider.branch.main": "Stabil", + "settings.option.general.updateCider.branch.develop": "Deneysel", + // Settings - Audio "settings.header.audio": "Çalma / Oynatma", "settings.header.audio.description": "Cider'in sizin için en iyi dinleme deneyimini sağlayabilmesi için ses ayarlarınızı yapın.", "settings.option.audio.quality": "Ses Kalitesi", // Dropdown + "settings.header.audio.quality.hireslossless": "Yüksek Çözünürlüklü Kayıpsız", + "settings.header.audio.quality.hireslossless.description": "24-bit/192 kHz'e kadar", + "settings.header.audio.quality.lossless": "Kayıpsız", + "settings.header.audio.quality.lossless.description": "24-bit/48 kHz'e kadar", "settings.header.audio.quality.high": "Yüksek Kalite", - "settings.header.audio.quality.low": "Yüksek Verimlilik", + "settings.header.audio.quality.high.description": "256 kbps", + "settings.header.audio.quality.standard": "Standart", + "settings.header.audio.quality.standard.description": "64 kbps", "settings.header.audio.quality.auto": "Otomatik", "settings.option.audio.seamlessTransition": "Kesintisiz Ses Geçişi", // Toggle "settings.option.audio.enableAdvancedFunctionality": "Gelişmiş Ses Deneyimi", // Toggle @@ -220,6 +256,12 @@ "settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "Ses normalleştirme alçak ve yüksek sesli şarkıları dengeler ve daha düzgün bir dinleme deneyimi sağlar.", "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "Uzamsal Ses", // Toggle "settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "Sesi uzamsallaştırın ve sesi daha 3 boyutlu hale getirin (not: Bu Dolby Atmos değildir)", + "settings.option.audio.enableAdvancedFunctionality.ciderPPE": "Cider Adrenalin Prosesörü™️", // Toggle + "settings.option.audio.enableAdvancedFunctionality.ciderPPE.description": "Müziğin hem daha zengin hem de daha canlı duyulmasını sağlayan Psikoakustik Geliştirme Sistemi | Maikiwi tarafından tasarlanmıştır.", + "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength": "CAP Kuvveti", // Toggle + "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.description": "Sese yapılan işlemin gücünü değiştirir. (Agresif istenmeyen sonuçlar doğurabilir)", + "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.standard": "Standart", + "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.aggressive": "Agresif", // Settings - Visual "settings.header.visual": "Görünüm", @@ -243,8 +285,12 @@ "settings.option.visual.hardwareAcceleration.description": "Etki etmesi için uygulamayı yeniden başlatmak gerekir.", "settings.header.visual.hardwareAcceleration.default": "Varsayılan", "settings.header.visual.hardwareAcceleration.webGPU": "Gelişmiş", - // Refer to term.disabled for the disabled option "settings.option.visual.showPersonalInfo": "Kullanıcı Adımı Göster", // Toggle + "settings.header.visual.theme": "Tema", + + // Settings - Visual - Theme name + "settings.option.visual.theme.default": "Cider", + "settings.option.visual.theme.dark": "Karanlık", // Settings - Lyrics "settings.header.lyrics": "Şarkı Sözleri", @@ -274,12 +320,10 @@ "settings.header.experimental": "Deneysel", "settings.header.experimental.description": "Cider'deki deneysel özelliklere erişim sağlayın. (Not: Bazı özellikler düzgün çalışmayabilir.)", "settings.option.experimental.compactUI": "Kompakt Arayüz", // Toggle - "settings.option.experimental.closeButtonBehaviour": "Kapat düğmesi davranışı", - "settings.option.experimental.closeButtonBehaviour.quit": "Cider'den çık", - "settings.option.experimental.closeButtonBehaviour.minimizeTaskbar": "Simge durumuna küçült", - "settings.option.experimental.closeButtonBehaviour.minimizeTray": "Görev çubuğuna küçült", - // Refer to term.disabled & term.enabled - + "settings.option.experimental.close_button_hide": "Kapatma Düğmesi Cider'i Küçültür", + "settings.option.experimental.copy_log": "Günlüğü Panoya Kopyala", + "settings.option.experimental.inline_playlists": "Listeleri ve Albümleri Açılır Pencere İle göster", + // Spatialization Menu "spatial.notTurnedOn": "Uzamsal ses devre dışı. Kullanabilmek için lütfen önce etkinleştirin.", "spatial.spatialProperties" : "Uzamsal Özellikler", @@ -310,5 +354,4 @@ //About "about.thanks": "Cider Collective Ekibine ve tüm katkıda bulunanlara çok teşekkür ederiz." - } \ No newline at end of file From 104006c0eca30b074403932e741d7e864237f67a Mon Sep 17 00:00:00 2001 From: Quacksire <19170969+quacksire@users.noreply.github.com> Date: Mon, 7 Feb 2022 19:32:40 -0800 Subject: [PATCH 007/337] unbork unbork unbork bonk --- resources/appendCommitToVersion.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/appendCommitToVersion.js b/resources/appendCommitToVersion.js index 123deba9..c38a58c6 100644 --- a/resources/appendCommitToVersion.js +++ b/resources/appendCommitToVersion.js @@ -11,7 +11,7 @@ var package = JSON.parse(data); pvers = package.version.match(/\d+\./g) // https://circleci.com/docs/2.0/env-vars/#built-in-environment-variables -package.version = `${pvers[0]}.${pvers[1]}.${process.env['CIRCLE_BUILD_NUM']}` +package.version = ${pvers[0]}${pvers[1]}${process.env['CIRCLE_BUILD_NUM']} fs.writeFile('package.json', JSON.stringify(package), err => { From 13ce2941816d4e47e30987aa1bb0c8796c0b31da Mon Sep 17 00:00:00 2001 From: Quacksire <19170969+quacksire@users.noreply.github.com> Date: Mon, 7 Feb 2022 19:35:44 -0800 Subject: [PATCH 008/337] unbork unbork unbork unbork bonk --- resources/appendCommitToVersion.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/appendCommitToVersion.js b/resources/appendCommitToVersion.js index c38a58c6..ef40f330 100644 --- a/resources/appendCommitToVersion.js +++ b/resources/appendCommitToVersion.js @@ -11,7 +11,7 @@ var package = JSON.parse(data); pvers = package.version.match(/\d+\./g) // https://circleci.com/docs/2.0/env-vars/#built-in-environment-variables -package.version = ${pvers[0]}${pvers[1]}${process.env['CIRCLE_BUILD_NUM']} +package.version = `${pvers[0]}${pvers[1]}${process.env['CIRCLE_BUILD_NUM']}` fs.writeFile('package.json', JSON.stringify(package), err => { From a9aea9af99859fb463c373ba55c017346629b6c2 Mon Sep 17 00:00:00 2001 From: Maikiwi Date: Mon, 7 Feb 2022 19:58:54 -0800 Subject: [PATCH 009/337] fix volume steps --- src/main/base/store.ts | 3 ++- src/renderer/index.js | 6 +++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/main/base/store.ts b/src/main/base/store.ts index df5edc19..da89a70a 100644 --- a/src/main/base/store.ts +++ b/src/main/base/store.ts @@ -27,7 +27,8 @@ export class Store { }, "audio": { "volume": 1, - "volumeStep": 0.02, + "volumeStep": 0.1, + "maxVolume": 1, "lastVolume": 1, "muted": false, "quality": "HIGH", diff --git a/src/renderer/index.js b/src/renderer/index.js index 4c5a5519..5e58911c 100644 --- a/src/renderer/index.js +++ b/src/renderer/index.js @@ -3212,8 +3212,8 @@ const app = new Vue({ }, volumeUp() { if ((app.mk.volume + app.cfg.audio.volumeStep) > 1) { - app.mk.volume = 1; - console.log('setting to 1') + app.mk.volume = app.cfg.audio.maxVolume; + console.log('setting max volume') } else { console.log('volume up') app.mk.volume += app.cfg.audio.volumeStep; @@ -3222,7 +3222,7 @@ const app = new Vue({ volumeDown() { if ((app.mk.volume - app.cfg.audio.volumeStep) < 0) { app.mk.volume = 0; - console.log('settings to 0') + console.log('setting volume to 0') } else { console.log('volume down') app.mk.volume -= app.cfg.audio.volumeStep; From ea7b06003c4be18f47532a17ae39fdcf04b8dd60 Mon Sep 17 00:00:00 2001 From: Maikiwi Date: Mon, 7 Feb 2022 20:39:17 -0800 Subject: [PATCH 010/337] Indonesian Translation courtesy of crystalshower#9918 --- src/i18n/in_ID.jsonc | 357 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 357 insertions(+) create mode 100644 src/i18n/in_ID.jsonc diff --git a/src/i18n/in_ID.jsonc b/src/i18n/in_ID.jsonc new file mode 100644 index 00000000..91e63524 --- /dev/null +++ b/src/i18n/in_ID.jsonc @@ -0,0 +1,357 @@ +{ // Base File + // i18n Info + "i18n.languageName": "Bahasa Indonesia", // name of language in native language + "i18n.languageNameEnglish": "Indonesian", // name of language in English + "i18n.category": "main", // main = real language, fun = fun community languages + "i18n.authors": "@crystalshower", // Authors, if you contribute to this file feel free to add your name seperated with a space + + // App info + "app.name": "Cider", + + "date.format": "${d} ${m}, ${y}", + + // Dialogs + "dialog.cancel": "Batal", + "dialog.ok": "OK", + + // Notification + "notification.updatingLibrarySongs": "Memperbarui Pustaka lagu...", + "notification.updatingLibraryAlbums": "Memperbarui Pustaka album...", + "notification.updatingLibraryArtists": "Memperbarui Pustaka artis...", + + // Terms + "term.appleInc": "Apple Inc.", + "term.appleMusic": "Apple Music", + "term.applePodcasts": "Apple Podcasts", + "term.itunes": "iTunes", + "term.github": "GitHub", + "term.discord": "Discord", + "term.learnMore": "Pelajari lebih lanjut", + "term.accountSettings": "Pengaturan Akun", + "term.logout": "Keluar", + "term.login": "Masuk", + "term.about": "Tentang", + "term.privateSession": "Sesi Pribadi", + "term.queue": "Antrian", + "term.history": "Riwayat", + "term.search": "Cari", + "term.library": "Pustaka", + "term.listenNow": "Dengarkan Sekarang", + "term.browse": "Telusuri", + "term.radio": "Radio", + "term.recentlyAdded": "Baru Ditambahkan", + "term.songs": "Lagu", + "term.albums": "Album", + "term.artists": "Artis", + "term.podcasts": "Podcasts", + "term.playlists": "Playlist", + "term.playlist": "Playlist", + "term.newPlaylist": "Playlist Baru", + "term.newPlaylistFolder": "Folder Playlist Baru", + "term.createNewPlaylist": "Buat Playlist Baru", + "term.createNewPlaylistFolder": "Buat Folder Playlist Baru", + "term.deletePlaylist": "Yakin ingin menghapus playlist ini?", + "term.play": "Mainkan", + "term.pause": "Jeda", + "term.previous": "Sebelumnya", + "term.next": "Selanjutnya", + "term.shuffle": "Acak", + "term.repeat": "Ulangi", + "term.volume": "Volume", + "term.mute": "Bisu", + "term.unmute": "Bunyikan", + "term.share": "Bagikan", + "term.share.success": "Disalin ke clipboard", + "term.settings": "Pengaturan", + "term.seeAll": "Lihat Semua", + "term.sortBy": "Urutkan Berdasarkan", + "term.sortBy.album": "Album", + "term.sortBy.artist": "Artis", + "term.sortBy.name": "Nama", + "term.sortBy.genre": "Genre", + "term.sortBy.releaseDate": "Tanggal Rilis", + "term.sortBy.duration": "Durasi", + "term.sortOrder": "A-Z", + "term.sortOrder.ascending": "Terkecil", + "term.sortOrder.descending": "Terbesar", + "term.viewAs": "Lihat Sebagai", + "term.viewAs.coverArt": "Cover Art", + "term.viewAs.list": "Daftar", + "term.size": "Ukuran", + "term.size.normal": "Normal", + "term.size.compact": "Kompak", + "term.enable": "Aktifkan", + "term.disable": "Nonaktifkan", + "term.enabled": "Diaktifkan", + "term.disabled": "Dinonaktikan", + "term.connect": "Sambungkan", + "term.connecting": "Menyambungkan", + "term.disconnect": "Terputus", + "term.authed": "Diotentikasi", + "term.confirm": "Konfirmasi?", + "term.more": "Selebihnya", + "term.less": "Lebih Sedikit", + "term.showMore": "Tampilkan lebih banyak", + "term.showLess": "Tampilkan lebih sedikit", + "term.topSongs": "Lagu Teratas", + "term.latestReleases": "Rilis Terbaru", + "term.time.added": "Ditambahkan", + "term.time.released": "Dirilis", + "term.time.updated": "Diperbarui", + "term.time.hours": "jam", + "term.time.hour": "jam", + "term.time.minutes": "menit", + "term.time.minute": "menit", + "term.time.seconds": "detik", + "term.time.second": "detik", + "term.fullscreenView": "Mode Layar Penuh", + "term.defaultView": "Mode Default", + "term.audioSettings": "Pengaturan Audio", + "term.clearAll": "Bersihkan Semua", + "term.recentStations": "Stasiun Terbaru", + "term.language": "Bahasa", + "term.funLanguages": "Senang-senang", + "term.noLyrics": "Memuat... / Lirik tidak ditermukan./ Instrumental.", + "term.copyright": "Hak cipta", + "term.rightsReserved": "Hak cipta dilindungi Undang-undang.", + "term.sponsor": "Sponsori proyek ini", + "term.ciderTeam": "Cider Team", + "term.developer": "Pengembang", + "term.socialTeam": "Social Team", + "term.socials": "Sosial", + "term.contributors": "Kontributor", + "term.equalizer": "Equalizer", + "term.reset": "Atur Ulang", + "term.tracks": "lagu", // Assume x amount of tracks. e.g. 50 tracks + "term.videos": "Video", + "term.menu": "Menu", + "term.check": "Cek", + "term.aboutArtist": "Tentang {{artistName}}", // e.g. 'About Doja Cat' + "term.topResult": "Hasil Teratas", // Search Results + "term.sharedPlaylists": "Playlist yang dibagikan", // Search Results + "term.people": "Orang", // Search Results + "term.newpreset.name": "Nama Preset EQ Baru", // Equalizer Preset + "term.addedpreset": "Preset Ditambahkan", + "term.deletepreset.warn": "Yakin ingin menghapus preset ini?", + "term.deletedpreset": "Preset dihapus", + "term.musicVideos": "Video Musik", // Search page friendlyTypes + "term.stations": "Stasiun", + "term.curators": "Kurator", + "term.appleCurators": "Kurator Apple", + "term.radioShows": "Acara Radio", + "term.recordLabels": "Label Rekaman", + "term.videoExtras": "Bonus Video", + "term.top": "Atas", + + // Home + "home.title": "Beranda", + "home.recentlyPlayed": "Baru Dimainkan", + "home.recentlyAdded": "Baru Ditambahkan", + "home.artistsFeed": "Artists Feed Anda", + "home.artistsFeed.noArtist": "Ikuti beberapa artis terlebih dahulu dan rilisan terbaru mereka akan ada di sini", + "home.madeForYou": "Dibuat Untuk Kamu", + "home.friendsListeningTo": "Teman Sedang Mendengarkan", + "home.followedArtists": "Artis Diikuti", + + // Errors + "error.appleMusicSubRequired": "Apple Music memerlukan langganan.", + "error.connectionError": "Terjadi masalah saat menyambungkan ke Apple Music.", + "error.noResults": "Tidak ada hasil.", + "error.noResults.description": "Coba pencarian baru.", + + // Podcasts + "podcast.followOnCider": "Ikuti Di Cider", + "podcast.followedOnCider": "Mengikuti Di Cider", + "podcast.subscribeOnItunes": "Langganan Di iTunes", + "podcast.subscribedOnItunes": "Berlangganan Di iTunes", + "podcast.itunesStore": "iTunes Store", + "podcast.episodes": "Episode", + "podcast.playEpisode": "Mainkan Episode", + "podcast.website": "Website Podcast", + + // Actions + "action.addToLibrary": "Tambahkan ke Pustaka", + "action.addToLibrary.success": "Ditambahkan ke Pustaka", + "action.addToLibrary.error": "Terjadi Kesalahan Saat Menambahkan Pustaka", + "action.removeFromLibrary": "Hapus dari Pustaka", + "action.removeFromLibrary.success": "Dihapus dari Pustaka", + "action.addToQueue": "Tambahkan ke Antrian", + "action.addToQueue.success": "Ditambahkan ke Antrian", + "action.addToQueue.error": "Terjadi Kesalahan Saat Menambahkan ke Antrean", + "action.removeFromQueue": "Hapus dari Antrian", + "action.removeFromQueue.success": "Dihapus dari Antrian", + "action.removeFromQueue.error": "Terjadi Kesalahan Saat Menghapus Antrian", + "action.createPlaylist": "Buat Playlist Baru", + "action.addToPlaylist": "Tambahkan ke Playlist", + "action.removeFromPlaylist": "Hapus dari Playlist", + "action.addToFavorites": "Tambahkan ke Favorit", + "action.follow": "Ikuti", + "action.follow.success": "Diikuti", + "action.follow.error": "Kesalahan Dalam Mengikuti", + "action.unfollow": "Berhenti Mengikuti", + "action.unfollow.success": "Sudah Tidak Mengikuti", + "action.unfollow.error": "Terjadi Kesalahan Saat Berhenti Mengikuti", + "action.playNext": "Mainkan Selanjutnya", + "action.playLater": "Mainkan Nanti", + "action.startRadio": "Mulai Radio", + "action.goToArtist": "Lihat Halaman Artis", + "action.goToAlbum": "Lihat Halaman Album", + "action.moveToTop": "Pindah ke Atas", + "action.share": "Bagikan", + "action.rename": "Ubah Nama", + "action.love": "Suka", + "action.unlove": "Batal Suka", + "action.dislike": "Tidak Suka", + "action.undoDislike": "Batalkan Tidak Suka", + "action.showWebRemoteQR": "Remot Web", + "action.playTracksNext": "Mainkan ${app.selectedMediaItems.length} lagu selanjutnya", + "action.playTracksLater": "Mainkan ${app.selectedMediaItems.length} lagu nanti", + "action.removeTracks": "Hapus ${self.selectedItems.length} lagu dari antrian", + "action.import": "Impor", + "action.export": "Ekspor", + "action.showAlbum": "Tampilkan Album Sepenuhnya", + "action.tray.minimize": "Sembunyikan ke Tray", + "action.tray.quit": "Keluar", + "action.tray.show": "Tampilkan", + "action.update": "Perbarui", + "action.copy": "Salin", + "action.newpreset": "Preset Baru...", // Equalizer Preset + "action.deletepreset": "Hapus Preset", + + // Settings - General + "settings.header.general": "Umum", + "settings.header.general.description": "Sesuaikan pengaturan umum untuk Cider.", + "settings.option.general.language": "Bahasa", + + // Language optgroups + "settings.option.general.language.main": "Bahasa", + "settings.option.general.language.fun": "Bahasa Candaan", + "settings.option.general.language.unsorted": "Tidak disortir", + + // Update Cider + "settings.option.general.updateCider": "Perbarui Cider", // Button. Refer to term.check for the check button + "settings.option.general.updateCider.branch": "Branch Pembaruan Cider", // Dropdown + "settings.option.general.updateCider.branch.description": "Pilih branch untuk memperbarui Cider", + "settings.option.general.updateCider.branch.main": "Stable", + "settings.option.general.updateCider.branch.develop": "Development", + + // Settings - Audio + "settings.header.audio": "Audio", + "settings.header.audio.description": "Sesuaikan pengaturan audio untuk Cider.", + "settings.option.audio.quality": "Kualitas Audio", // Dropdown + "settings.header.audio.quality.hireslossless": "Hi-Res Lossless", + "settings.header.audio.quality.hireslossless.description": "sampai dari 24-bit/192 kHz", + "settings.header.audio.quality.lossless": "Lossless", + "settings.header.audio.quality.lossless.description": "sampai dari 24-bit/48 kHz", + "settings.header.audio.quality.high": "Tinggi", + "settings.header.audio.quality.high.description": "256 kbps", + "settings.header.audio.quality.standard": "Standar", + "settings.header.audio.quality.standard.description": "64 kbps", + "settings.option.audio.seamlessTransition": "Transisi Audio Mulus", // Toggle + "settings.option.audio.enableAdvancedFunctionality": "Aktifkan Fungsi Lanjutan", // Toggle + "settings.option.audio.enableAdvancedFunctionality.description": "Mengaktifkan fungsionalitas AudioContext memungkinkan fitur audio yang lanjutan seperti Normalisasi Audio, Equalizer dan Visualizer. Namun pada beberapa perangkat dapat menyebabkan tersendatnya audio.", + "settings.option.audio.enableAdvancedFunctionality.ciderPPE": "Cider Adrenaline Processor™️", // Toggle + "settings.option.audio.enableAdvancedFunctionality.ciderPPE.description": "Peningkatan Psikoakustik yang membuat semuanya terdengar lebih jelas dan lebih hidup | Dirancang oleh Maikiwi.", + "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength": "Kekuatan CAP", // Toggle + "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.description": "Mengubah kekuatan pemrosesan yang dilakukan pada audio. (Agresif dapat menghasilkan hasil yang tidak diinginkan)", + "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.standard": "Standar", + "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.aggressive": "Agresif", + "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "Normalisasi Audio", // Toggle + "settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "Menormalkan puncak volume untuk masing-masing lagu demi menciptakan pengalaman mendengarkan yang lebih seragam.", + "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "Spasialisasi Audio", // Toggle + "settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "Atur ruang audio dan buat audio lebih 3 dimensi (NB: Bukan Dolby Atmos)", + + // Settings - Visual + "settings.header.visual": "Visual", + "settings.header.visual.description": "Sesuaikan pengaturan visual untuk Cider.", + "settings.option.visual.windowBackgroundStyle": "Gaya Latar Belakang Jendela", // Toggle + "settings.header.visual.windowBackgroundStyle.none": "Tidak Ada", + "settings.header.visual.windowBackgroundStyle.artwork": "Artwork", + "settings.header.visual.windowBackgroundStyle.image": "Gambar", + "settings.option.visual.animatedArtwork": "Artwork Bergerak", // Dropdown + "settings.header.visual.animatedArtwork.always": "Selalu", + "settings.header.visual.animatedArtwork.limited": "Terbatas untuk halaman dan entri khusus", + "settings.header.visual.animatedArtwork.disable": "Matikan di semua tempat", + "settings.option.visual.animatedArtworkQuality": "Kualitas Artwork Bergerak", // Dropdown + "settings.header.visual.animatedArtworkQuality.low": "Rendah", + "settings.header.visual.animatedArtworkQuality.medium": "Medium", + "settings.header.visual.animatedArtworkQuality.high": "Tinggi", + "settings.header.visual.animatedArtworkQuality.veryHigh": "Sangat Tinggi", + "settings.header.visual.animatedArtworkQuality.extreme": "Paling Tinggi", + "settings.option.visual.animatedWindowBackground": "Jendela Latar Belakang Bergerak", // Toggle + "settings.option.visual.hardwareAcceleration": "Akselerasi Perangkat Keras (HW Acceleration)", // Dropdown + "settings.option.visual.hardwareAcceleration.description": "Membutuhkan dibuka ulang", + "settings.header.visual.hardwareAcceleration.default": "Default", + "settings.header.visual.hardwareAcceleration.webGPU": "WebGPU", + "settings.header.visual.theme": "Tema", + + // Settings - Visual - Theme name + "settings.option.visual.theme.default": "Cider", + "settings.option.visual.theme.dark": "Gelap", + // Refer to term.disabled for the disabled option + "settings.option.visual.showPersonalInfo": "Tampilkan Info Pribadi", // Toggle + + // Settings - Lyrics + "settings.header.lyrics": "Lyrics", + "settings.header.lyrics.description": "Sesuaikan pengaturan lirik untuk Cider.", + "settings.option.lyrics.enableMusixmatch": "Aktifkan Lirik Musixmatch", // Toggle + "settings.option.lyrics.enableMusixmatchKaraoke": "Aktifkan Mode Karaoke (khusus Musixmatch)", // Toggle + "settings.option.lyrics.musixmatchPreferredLanguage": "Bahasa Terjemahan Musixmatch", // Dropdown + "settings.option.lyrics.enableYoutubeLyrics": "Aktifkan Lirik Youtube untuk Video Musik", // Toggle + + // Settings - Connectivity + "settings.header.connectivity": "Konektivitas", + "settings.header.connectivity.description": "Sesuaikan pengaturan konektivitas untuk Cider.", + "settings.option.connectivity.discordRPC": "Discord Rich Presence", // Dropdown + "settings.option.connectivity.playbackNotifications": "Pemberitahuan Pemutaran", // Toggle + // Refer to term.disabled for the disabled option + "settings.header.connectivity.discordRPC.cider": "Tampilkan sebagai 'Cider'", + "settings.header.connectivity.discordRPC.appleMusic": "Tampilkan sebagai 'Apple Music'", + "settings.option.connectivity.discordRPC.clearOnPause": "Sembunyikan Discord Rich Presence saat dijeda", // Toggle + "settings.option.connectivity.lastfmScrobble": "Last.fm Scrobbling", // Option to Connect + "settings.option.connectivity.lastfmScrobble.delay": "Delay Last.fm Scrobble (%)", + "settings.option.connectivity.lastfmScrobble.nowPlaying": "Aktifkan Last.fm Now Playing", + "settings.option.connectivity.lastfmScrobble.removeFeatured": "Hapus featuring artist dari judul lagu (Last.fm)", + "settings.option.connectivity.lastfmScrobble.filterLoop": "Filter lagu yang diulang (Last.fm)", + // Refer to term.connect for the connect button + + // Settings - Experimental + "settings.header.experimental": "Eksperimental", + "settings.header.experimental.description": "Sesuaikan pengaturan eksperimental untuk Cider.", + "settings.option.experimental.compactUI": "UI Kompak", // Toggle + "settings.option.experimental.close_button_hide": "Tombol Tutup Menyembunyikan Aplikasi", + "settings.option.experimental.copy_log": "Salin log ke clipboard", + "settings.option.experimental.inline_playlists": "Playlist dan Album Sebaris", + + // Refer to term.disabled & term.enabled + // Spatialization Menu + "spatial.notTurnedOn": "Spasialisasi Audio dinonaktifkan. Untuk menggunakan, aktifkan terlebih dahulu.", + "spatial.spatialProperties": "Spatial Properties", + "spatial.width": "Lebar", + "spatial.height": "Tinggi", + "spatial.depth": "Kedalaman", + "spatial.gain": "Gain", + "spatial.roomMaterials": "Bahan Ruangan", + "spatial.roomDimensions": "Dimensi Ruangan", + "spatial.roomPositions": "Posisi Ruangan", + "spatial.setDimensions": "Atur Dimensi", + "spatial.setPositions": "Atur Posisi", + "spatial.up": "Atas", + "spatial.front": "Depan", + "spatial.left": "Kiri", + "spatial.right": "Kanan", + "spatial.back": "Belakang", + "spatial.down": "Bawah", + "spatial.listener": "Pendegar", + "spatial.audioSource": "Sumber Audio", + + // Settings - Unfinished + "settings.header.unfinished": "Belum Diselesaikan", + + // Web Remote + "remote.web.title": "Remote Cider", + "remote.web.description": "Pindai kode QR untuk memasangkan ponsel Anda dengan Cider.", + + // About + "about.thanks": "Terima kasih yang sebesar-besarnya kepada Cider Collective Team dan semua kontributor kami." + } \ No newline at end of file From d558d1fd4654b188e11ad72210a2c02d2d8d3bfc Mon Sep 17 00:00:00 2001 From: Maikiwi Date: Mon, 7 Feb 2022 20:43:33 -0800 Subject: [PATCH 011/337] more volume thingies --- src/renderer/views/app/chrome-top.ejs | 2 +- src/renderer/views/components/miniplayer.ejs | 2 +- src/web-remote/views/index.ejs | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/renderer/views/app/chrome-top.ejs b/src/renderer/views/app/chrome-top.ejs index e38ee43e..fa2e3012 100644 --- a/src/renderer/views/app/chrome-top.ejs +++ b/src/renderer/views/app/chrome-top.ejs @@ -108,7 +108,7 @@
-
diff --git a/src/renderer/views/components/miniplayer.ejs b/src/renderer/views/components/miniplayer.ejs index 40ecabe9..606ea49a 100644 --- a/src/renderer/views/components/miniplayer.ejs +++ b/src/renderer/views/components/miniplayer.ejs @@ -83,7 +83,7 @@
-
diff --git a/src/web-remote/views/index.ejs b/src/web-remote/views/index.ejs index 46915075..ad46c5a5 100644 --- a/src/web-remote/views/index.ejs +++ b/src/web-remote/views/index.ejs @@ -172,7 +172,7 @@
-
From 00ec349f711d9a1e76a5b590659ec18dab84a1bf Mon Sep 17 00:00:00 2001 From: Maikiwi Date: Mon, 7 Feb 2022 23:06:14 -0800 Subject: [PATCH 012/337] Fix fix fix volume steps --- src/renderer/views/app/chrome-top.ejs | 2 +- src/renderer/views/components/fullscreen.ejs | 2 +- src/renderer/views/components/miniplayer.ejs | 2 +- src/web-remote/views/index.ejs | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/renderer/views/app/chrome-top.ejs b/src/renderer/views/app/chrome-top.ejs index fa2e3012..422fb24c 100644 --- a/src/renderer/views/app/chrome-top.ejs +++ b/src/renderer/views/app/chrome-top.ejs @@ -108,7 +108,7 @@
-
diff --git a/src/renderer/views/components/fullscreen.ejs b/src/renderer/views/components/fullscreen.ejs index 51093c60..e2c30f33 100644 --- a/src/renderer/views/components/fullscreen.ejs +++ b/src/renderer/views/components/fullscreen.ejs @@ -80,7 +80,7 @@
-
diff --git a/src/renderer/views/components/miniplayer.ejs b/src/renderer/views/components/miniplayer.ejs index 606ea49a..8c268588 100644 --- a/src/renderer/views/components/miniplayer.ejs +++ b/src/renderer/views/components/miniplayer.ejs @@ -83,7 +83,7 @@
-
diff --git a/src/web-remote/views/index.ejs b/src/web-remote/views/index.ejs index ad46c5a5..46915075 100644 --- a/src/web-remote/views/index.ejs +++ b/src/web-remote/views/index.ejs @@ -172,7 +172,7 @@
-
From 0f6fe2c84cd531ba342a90b4dda0c435bc84b658 Mon Sep 17 00:00:00 2001 From: Maikiwi Date: Mon, 7 Feb 2022 23:11:59 -0800 Subject: [PATCH 013/337] fix CAP (I think) --- src/renderer/audio/audio.js | 17 +++++++++-------- src/renderer/views/components/equalizer.ejs | 4 ++-- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/src/renderer/audio/audio.js b/src/renderer/audio/audio.js index c22ef29c..f195e0c8 100644 --- a/src/renderer/audio/audio.js +++ b/src/renderer/audio/audio.js @@ -30,7 +30,7 @@ var CiderAudio = { CiderAudio.audioNodes.gainNode.disconnect(); } catch(e){} try{ CiderAudio.audioNodes.spatialNode.disconnect();} catch(e){} try{ - CiderAudio.audioNodes.preampNode.disconnect(); + // CiderAudio.audioNodes.preampNode.disconnect(); for (var i of CiderAudio.audioNodes.llpw){ i.disconnect(); } @@ -146,12 +146,13 @@ var CiderAudio = { CiderAudio.audioNodes.llpw[i].Q.value = LLPW_Q[i]; CiderAudio.audioNodes.llpw[i].gain.value = LLPW_GAIN[i] * app.cfg.audio.ciderPPE_value * CiderAudio.audioNodes.llpwEnabled; } - + /** CiderAudio.audioNodes.preampNode = CiderAudio.context.createBiquadFilter(); CiderAudio.audioNodes.preampNode.type = 'highshelf'; CiderAudio.audioNodes.preampNode.frequency.value = 0; // Passthrough - if (CiderAudio.audioNodes.llpwEnabled === 1) {CiderAudio.audioNodes.preampNode.gain.value = (-Math.max(...app.cfg.audio.equalizer.gain.concat(CiderAudio.audioNodes.llpw[23].gain.value)));} - else {CiderAudio.audioNodes.preampNode.gain.value = (-Math.max(...app.cfg.audio.equalizer.gain));} + CiderAudio.audioNodes.preampNode.gain.value = 0; + /** if (CiderAudio.audioNodes.llpwEnabled === 1) {CiderAudio.audioNodes.preampNode.gain.value = (-Math.max(...app.cfg.audio.equalizer.gain.concat(CiderAudio.audioNodes.llpw[23].gain.value)));} + else {CiderAudio.audioNodes.preampNode.gain.value = (-Math.max(...app.cfg.audio.equalizer.gain));}*/ for (i = 0; i < VIBRANTBASSBANDS.length; i++) { CiderAudio.audioNodes.vibrantbassNode[i] = CiderAudio.context.createBiquadFilter(); @@ -164,14 +165,14 @@ var CiderAudio = { if (app.cfg.audio.spatial) { try{ CiderAudio.audioNodes.spatialNode.output.disconnect(CiderAudio.context.destination); } catch(e){} - CiderAudio.audioNodes.spatialNode.output.connect(CiderAudio.audioNodes.preampNode); + CiderAudio.audioNodes.spatialNode.output.connect(CiderAudio.audioNodes.llpw[0]); } else { try{ CiderAudio.audioNodes.gainNode.disconnect(CiderAudio.context.destination);} catch(e){} - CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.preampNode); + CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.llpw[0]); } - - CiderAudio.audioNodes.preampNode.connect(CiderAudio.audioNodes.llpw[0]); + + // CiderAudio.audioNodes.preampNode.connect(CiderAudio.audioNodes.llpw[0]); for (i = 1; i < LLPW_FREQUENCIES.length; i ++) { CiderAudio.audioNodes.llpw[i-1].connect(CiderAudio.audioNodes.llpw[i]); diff --git a/src/renderer/views/components/equalizer.ejs b/src/renderer/views/components/equalizer.ejs index 2d4f6f3b..af6b4c85 100644 --- a/src/renderer/views/components/equalizer.ejs +++ b/src/renderer/views/components/equalizer.ejs @@ -324,8 +324,8 @@ } }, changePreamp() { - if (CiderAudio.audioNodes.llpwEnabled === 1) {CiderAudio.audioNodes.preampNode.gain.value = (-Math.max(...app.cfg.audio.equalizer.gain.concat(CiderAudio.audioNodes.llpw[23].gain.value)));} - else {CiderAudio.audioNodes.preampNode.gain.value = (-Math.max(...app.cfg.audio.equalizer.gain));} + /** if (CiderAudio.audioNodes.llpwEnabled === 1) {CiderAudio.audioNodes.preampNode.gain.value = (-Math.max(...app.cfg.audio.equalizer.gain.concat(CiderAudio.audioNodes.llpw[23].gain.value)));} + else {CiderAudio.audioNodes.preampNode.gain.value = (-Math.max(...app.cfg.audio.equalizer.gain));} */ }, changeGain(i) { CiderAudio.audioNodes.audioBands[i].gain.value = app.cfg.audio.equalizer.gain[i] * app.cfg.audio.equalizer.mix From 3cb8e35f4e9d608712367a8b5dd36681f5ca57d4 Mon Sep 17 00:00:00 2001 From: vapormusic Date: Tue, 8 Feb 2022 14:25:12 +0700 Subject: [PATCH 014/337] arm64 mac --- package.json | 5 +++-- resources/afterPack.js | 9 +++++++-- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/package.json b/package.json index 657f87ec..f0b7b85a 100644 --- a/package.json +++ b/package.json @@ -23,7 +23,8 @@ "start:darwin": "yarn build && ELECTRON_ENABLE_LOGGING=true && electron ./build/index.js --enable-accelerated-mjpeg-decode --enable-accelerated-video --disable-gpu-driver-bug-workarounds --ignore-gpu-blacklist --enable-native-gpu-memory-buffers", "pack": "electron-builder --dir", "dist": "yarn build && electron-builder", - "dist:mac": "yarn build && electron-builder --mac --universal", + "dist:macarm" : "yarn build && electron-builder --mac --arm64", + "dist:universalNotWorking": "yarn build && electron-builder --mac --universal", "dist:all": "yarn build && electron-builder -mwl", "msft": "yarn build && electron-builder -c msft-package.json", "postinstall": "electron-builder install-app-deps", @@ -66,7 +67,7 @@ "@types/qrcode-terminal": "^0.12.0", "@types/ws": "^8.2.2", "electron": "git+https://github.com/castlabs/electron-releases.git", - "electron-builder": "^22.14.5", + "electron-builder": "^22.14.13", "electron-webpack": "^2.8.2", "musickit-typescript": "^1.2.4", "playwright": "^1.18.1", diff --git a/resources/afterPack.js b/resources/afterPack.js index 6c677c49..c70017c1 100644 --- a/resources/afterPack.js +++ b/resources/afterPack.js @@ -1,5 +1,6 @@ exports.default = function(context) { const { execSync } = require('child_process') + const fs = require('fs') if (process.platform !== 'darwin') return @@ -8,11 +9,15 @@ exports.default = function(context) { execSync('python3 -m pip install --upgrade castlabs-evs') console.log('Castlabs-evs update complete') - + console.log('VMP signing start') - + if (fs.existsSync('dist/mac')) execSync('python3 -m castlabs_evs.vmp -n sign-pkg dist/mac',{stdio: 'inherit'}) + if (fs.existsSync('dist/mac-arm64')) + execSync('python3 -m castlabs_evs.vmp -n sign-pkg dist/mac-arm64 -z',{stdio: 'inherit'}) + if (fs.existsSync('dist/mac-x64')) + execSync('python3 -m castlabs_evs.vmp -n sign-pkg dist/mac-x64',{stdio: 'inherit'}) console.log('VMP signing complete') } \ No newline at end of file From abea1a150d7f9d6e9312c5837872bcb8ce89481e Mon Sep 17 00:00:00 2001 From: vapormusic Date: Tue, 8 Feb 2022 14:57:55 +0700 Subject: [PATCH 015/337] the only way i think of to fix nsis that works --- package.json | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/package.json b/package.json index f0b7b85a..d232d542 100644 --- a/package.json +++ b/package.json @@ -171,7 +171,6 @@ "target": [ "dmg" ] - }, - "artifactName": "${productName}.${ext}" + } } } From 396c4c712161607e166dd1252d30f85cbd1c0530 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AE=A5=E5=8F=A1?= <46503943+jay900604@users.noreply.github.com> Date: Tue, 8 Feb 2022 23:44:27 +0800 Subject: [PATCH 016/337] Update zh_TW.jsonc (#385) --- src/i18n/zh_TW.jsonc | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/i18n/zh_TW.jsonc b/src/i18n/zh_TW.jsonc index 5a7ef4da..c2190a45 100644 --- a/src/i18n/zh_TW.jsonc +++ b/src/i18n/zh_TW.jsonc @@ -202,6 +202,10 @@ // Update Cider "settings.option.general.updateCider": "更新 Cider", // Button + "settings.option.general.updateCider.branch": "Cider 更新通道", // Dropdown + "settings.option.general.updateCider.branch.description": "選擇您要接收 Cider 軟體更新的通道", + "settings.option.general.updateCider.branch.main": "穩定版(建議)", + "settings.option.general.updateCider.branch.develop": "開發者測試版(不穩定)", // Settings - Audio "settings.header.audio": "音訊", @@ -325,4 +329,4 @@ //About "about.thanks": "著重感謝 Cider Collective 的成員以及所有為項目付出的貢獻者。" -} \ No newline at end of file +} From 0161a6063a5ae96494808488da14b160d646a5eb Mon Sep 17 00:00:00 2001 From: Crystal <55697230+crystalshower@users.noreply.github.com> Date: Tue, 8 Feb 2022 22:45:12 +0700 Subject: [PATCH 017/337] grammar improvement (#379) --- src/i18n/in_ID.jsonc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/i18n/in_ID.jsonc b/src/i18n/in_ID.jsonc index 91e63524..d9d28529 100644 --- a/src/i18n/in_ID.jsonc +++ b/src/i18n/in_ID.jsonc @@ -147,7 +147,7 @@ "home.title": "Beranda", "home.recentlyPlayed": "Baru Dimainkan", "home.recentlyAdded": "Baru Ditambahkan", - "home.artistsFeed": "Artists Feed Anda", + "home.artistsFeed": "Feed Artis Anda", "home.artistsFeed.noArtist": "Ikuti beberapa artis terlebih dahulu dan rilisan terbaru mereka akan ada di sini", "home.madeForYou": "Dibuat Untuk Kamu", "home.friendsListeningTo": "Teman Sedang Mendengarkan", @@ -249,7 +249,7 @@ "settings.header.audio.quality.standard.description": "64 kbps", "settings.option.audio.seamlessTransition": "Transisi Audio Mulus", // Toggle "settings.option.audio.enableAdvancedFunctionality": "Aktifkan Fungsi Lanjutan", // Toggle - "settings.option.audio.enableAdvancedFunctionality.description": "Mengaktifkan fungsionalitas AudioContext memungkinkan fitur audio yang lanjutan seperti Normalisasi Audio, Equalizer dan Visualizer. Namun pada beberapa perangkat dapat menyebabkan tersendatnya audio.", + "settings.option.audio.enableAdvancedFunctionality.description": "Mengaktifkan fungsionalitas AudioContext memungkinkan fitur audio lanjutan seperti Normalisasi Audio, Equalizer dan Visualizer. Namun pada beberapa perangkat dapat menyebabkan tersendatnya audio.", "settings.option.audio.enableAdvancedFunctionality.ciderPPE": "Cider Adrenaline Processor™️", // Toggle "settings.option.audio.enableAdvancedFunctionality.ciderPPE.description": "Peningkatan Psikoakustik yang membuat semuanya terdengar lebih jelas dan lebih hidup | Dirancang oleh Maikiwi.", "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength": "Kekuatan CAP", // Toggle From 7230ecb0808345ee9dc9f90e626515610e1f12c4 Mon Sep 17 00:00:00 2001 From: KaHim Chan Date: Tue, 8 Feb 2022 23:45:59 +0800 Subject: [PATCH 018/337] Irregular update 08/02 (#378) --- src/i18n/README.md | 24 +- src/i18n/de_DE.jsonc | 20 +- src/i18n/el_GR.jsonc | 22 +- src/i18n/en_HODOR.jsonc | 17 +- src/i18n/en_OWO.jsonc | 6 +- src/i18n/en_PISS.jsonc | 4 +- src/i18n/en_SGA.jsonc | 25 +- src/i18n/en_US.jsonc | 14 +- src/i18n/es_ES.jsonc | 6 +- src/i18n/fr_CA.jsonc | 16 +- src/i18n/fr_FR.jsonc | 696 +++++++++++++------------- src/i18n/hu_HU.jsonc | 4 +- src/i18n/it_IT.jsonc | 15 +- src/i18n/ja_JP.jsonc | 21 +- src/i18n/ko_KR.jsonc | 4 +- src/i18n/pt_BR.jsonc | 37 +- src/i18n/sv_SE.jsonc | 6 +- src/i18n/tr_TR.jsonc | 18 +- src/i18n/zh_CN.jsonc | 20 +- src/i18n/zh_HK.jsonc | 71 +-- src/i18n/zh_TW.jsonc | 15 +- src/i18n/zh_yue.jsonc | 10 +- src/renderer/index.js | 8 +- src/renderer/views/pages/about.ejs | 6 + src/renderer/views/pages/settings.ejs | 4 +- 25 files changed, 617 insertions(+), 472 deletions(-) diff --git a/src/i18n/README.md b/src/i18n/README.md index 1f5d47d4..db061fbd 100644 --- a/src/i18n/README.md +++ b/src/i18n/README.md @@ -1,4 +1,4 @@ -# Cider i18n +# Cider i18n Notices & Changelog Some notes about Cider's i18n support. @@ -21,7 +21,7 @@ been modified, the ones not mentioned in the list need modifying. * `term.sharedPlaylists`: "Shared Playlists" - Added for `en_US`. * `term.people`: "People" - Added for `en_US`. -Updated 02/02/2022 17:16 UTC +Update 02/02/2022 17:16 UTC * `term.newpreset.name`: Added for `en_US`. * `term.addedpreset`: Added for `en_US`. @@ -38,7 +38,7 @@ Updated 02/02/2022 17:16 UTC * `action.newpreset`: Added for `en_US`. * `action.deletepreset`: Added for `en_US`. -Updated 04/02/2022 10:00 UTC +Update 04/02/2022 10:00 UTC * `term.history`: Added for `en_US`. * `action.copy`: Added for `en_US`. @@ -64,4 +64,20 @@ Update 06/02/2022 10:35 UTC * `settings.header.audio.quality.high.description`: Added for `en_US`. * `settings.header.audio.quality.auto`: Removed as default for MusicKit is 256. * `settings.header.audio.quality.standard`: Replaced `settings.header.audio.quality.low` to match MusicKit naming. -* `settings.header.audio.quality.standard.description`: Added for `en_US`. \ No newline at end of file +* `settings.header.audio.quality.standard.description`: Added for `en_US`. + +Update 08/02/2022 10:20 UTC + +* `settings.option.general.updateCider`: Added for `en_US`. +* `settings.option.general.updateCider.branch`: Added for `en_US`. +* `settings.option.general.updateCider.branch.description`: Added for `en_US`. +* `settings.option.general.updateCider.branch.main`: Added for `en_US`. +* `settings.option.general.updateCider.branch.develop`: Added for `en_US`. +* `settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength`: Added for `en_US`. +* `settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.description`: Added for `en_US`. +* `settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.standard`: Added for `en_US`. +* `settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.aggressive`: Added for `en_US`. +* `settings.warn.audio.enableAdvancedFunctionality.ciderPPE.compatibility`: Added for `en_US`. +* `settings.warn.audio.enableAdvancedFunctionality.audioSpatialization.compatibility`: Added for `en_US`. +* `term.requestError`: Added for `en_US`. +* `term.song.link.generate`: Added for `en_US`. \ No newline at end of file diff --git a/src/i18n/de_DE.jsonc b/src/i18n/de_DE.jsonc index b5ef5017..57c29597 100644 --- a/src/i18n/de_DE.jsonc +++ b/src/i18n/de_DE.jsonc @@ -1,7 +1,7 @@ -{ // Base File +{ // i18n Info - "i18n.languageName": "Deutsch", // name of language in native language + "i18n.languageName": "Deutsch", // name of language in native language "i18n.languageNameEnglish": "German", // name of language in English "i18n.category": "main", // main = real language, fun = fun community languages "i18n.authors": "@motz0815", // Authors, if you contribute to this file feel free to add your name seperated with a space @@ -19,6 +19,7 @@ "notification.updatingLibrarySongs": "Aktualisiere Songs...", "notification.updatingLibraryAlbums": "Aktualisiere Alben...", "notification.updatingLibraryArtists": "Aktualisiere Künstler...", + // Terms "term.appleInc": "Apple Inc.", "term.appleMusic": "Apple Music", @@ -117,7 +118,6 @@ "term.tracks": "Lieder", // Assume x amount of tracks. e.g. 50 tracks "term.videos": "Videos", "term.menu": "Menü", - "action.showAlbum": "Zeige ganzes Album", // Home "home.title": "Home", @@ -128,13 +128,14 @@ "home.madeForYou": "Für dich gemacht", "home.friendsListeningTo": "Freunde hören", "home.followedArtists": "Gefolgte Künstler", + // Errors "error.appleMusicSubRequired": "Apple Music benötigt ein Abonnement.", "error.connectionError": "Es ist ein Fehler aufgetreten, während sich mit Apple Music verbunden wurde.", "error.noResults": "Keine Ergebnisse.", "error.noResults.description": "Versuche einen anderen Suchbegriff.", - //Podcasts + // Podcasts "podcast.followOnCider": "Folge auf Cider", "podcast.followedOnCider": "Gefolgt auf Cider", "podcast.subscribeOnItunes": "Folge auf iTunes", @@ -183,6 +184,7 @@ "action.removeTracks": "Entferne ${self.selectedItems.length} Lieder aus der Warteschlange", "action.import": "Importieren", "action.export": "Exportieren", + "action.showAlbum": "Zeige ganzes Album", // Settings - General "settings.header.general": "Allgemein", @@ -193,6 +195,8 @@ "settings.option.general.language.main": "Sprachen", "settings.option.general.language.fun": "Lustige Sprachen", "settings.option.general.language.unsorted": "Unsortiert", + + // Update Cider // Settings - Audio "settings.header.audio": "Audio", @@ -208,6 +212,7 @@ "settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "Normalisiert die Lautstärke aller Lieder, um die Hörerfahrung einheitlicher zu machen.", "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "Räumliches Audio", // Toggle "settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "Macht die Musik räumlicher (3D-Effekt) (Beachte: Dies ist kein Dolby Atmos)", + // Settings - Visual "settings.header.visual": "Visuell", "settings.header.visual.description": "Passe die visuellen Einstellungen für Cider an.", @@ -230,6 +235,9 @@ "settings.option.visual.hardwareAcceleration.description": "Erfordert Neustart der Anwendung", "settings.header.visual.hardwareAcceleration.default": "Normal", "settings.header.visual.hardwareAcceleration.webGPU": "WebGPU", + + // Settings - Visual - Theme name + // Refer to term.disabled for the disabled option "settings.option.visual.showPersonalInfo": "Persönliche Daten anzeigen", // Toggle @@ -265,8 +273,8 @@ "settings.option.experimental.closeButtonBehaviour.quit": "Cider Schließen", "settings.option.experimental.closeButtonBehaviour.minimizeTaskbar": "In Taskleiste minimieren", "settings.option.experimental.closeButtonBehaviour.minimizeTray": "In den Tray minimieren", + // Refer to term.disabled & term.enabled - // Spatialization Menu "spatial.spatialProperties" : "Räumliche Einstellungen", "spatial.width" : "Breite", @@ -296,4 +304,4 @@ // About "about.thanks": "Vielen lieben Dank an das Cider Collective Team und an alle Mithelfer." -} +} \ No newline at end of file diff --git a/src/i18n/el_GR.jsonc b/src/i18n/el_GR.jsonc index ca100520..9ab932d7 100644 --- a/src/i18n/el_GR.jsonc +++ b/src/i18n/el_GR.jsonc @@ -1,10 +1,10 @@ { // i18n Info - "i18n.languageName": "Ελληνικά", - "i18n.languageNameEnglish": "Greek", - "i18n.category": "main", - "i18n.authors": "@down-bad", + "i18n.languageName": "Ελληνικά", // name of language in native language + "i18n.languageNameEnglish": "Greek", // name of language in English + "i18n.category": "main", // main = real language, fun = fun community languages + "i18n.authors": "@down-bad", // Authors, if you contribute to this file feel free to add your name seperated with a space // App info "app.name": "Cider", @@ -19,6 +19,7 @@ "notification.updatingLibrarySongs": "Ενημέρωση βιβλιοθήκης τραγουδιών...", "notification.updatingLibraryAlbums": "Ενημέρωση βιβλιοθήκης άλμπουμ...", "notification.updatingLibraryArtists": "Ενημέρωση βιβλιοθήκης καλλιτεχνών...", + // Terms "term.appleInc": "Apple Inc.", "term.appleMusic": "Apple Music", @@ -117,7 +118,6 @@ "term.tracks": "τραγούδια", // Assume x amount of tracks. e.g. 50 tracks "term.videos": "Βίντεο", "term.menu": "Μενού", - "action.showAlbum": "Εμφάνιση ολόκληρου άλμπουμ", // Home "home.title": "Αρχική", @@ -128,13 +128,14 @@ "home.madeForYou": "Δημιουργήθηκε για εσάς", "home.friendsListeningTo": "Οι φίλοι σου ακούν", "home.followedArtists": "Καλλιτέχνες που ακολουθείτε", + // Errors "error.appleMusicSubRequired": "Το Apple Music απαιτεί μια συνδρομή.", "error.connectionError": "Δεν είναι δυνατή η σύνδεση με το Apple Music.", "error.noResults": "Κανένα αποτέλεσμα.", "error.noResults.description": "Δοκιμάστε μια νέα αναζήτηση.", - //Podcasts + // Podcasts "podcast.followOnCider": "Ακολούθηση στο Cider", "podcast.followedOnCider": "Ακολουθείτε στο Cider", "podcast.subscribeOnItunes": "Συνδρομή στο iTunes", @@ -183,6 +184,7 @@ "action.removeTracks": "Αφαίρεση ${self.selectedItems.length} τραγουδιών από την ουρά", "action.import": "Εισαγωγή", "action.export": "Εξαγωγή", + "action.showAlbum": "Εμφάνιση ολόκληρου άλμπουμ", // Settings - General "settings.header.general": "Γενικά", @@ -193,6 +195,8 @@ "settings.option.general.language.main": "Γλώσσες", "settings.option.general.language.fun": "Γλώσσες για πλάκα", "settings.option.general.language.unsorted": "Αταξινόμητες", + + // Update Cider // Settings - Audio "settings.header.audio": "Ήχος", @@ -208,6 +212,7 @@ "settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "Κανονικοποιεί την ένταση για μεμονωμένα κομμάτια για μια πιο ομοιόμορφη εμπειρία ακρόασης.", "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "Χωρικοποίηση Ήχου", // Toggle "settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "Πιο τρισδιάστατος και χωρικοποιημένος ήχος (σημείωση: Αυτό δεν είναι Dolby Atmos)", + // Settings - Visual "settings.header.visual": "Οπτικά", "settings.header.visual.description": "Προσαρμογή οπτικών ρυθμίσεων για το Cider.", @@ -230,6 +235,9 @@ "settings.option.visual.hardwareAcceleration.description": "Απαιτεί επανεκκίνηση", "settings.header.visual.hardwareAcceleration.default": "Προεπιλογή", "settings.header.visual.hardwareAcceleration.webGPU": "WebGPU", + + // Settings - Visual - Theme name + // Refer to term.disabled for the disabled option "settings.option.visual.showPersonalInfo": "Εμφάνιση προσωπικών στοιχείων", // Toggle @@ -265,8 +273,8 @@ "settings.option.experimental.closeButtonBehaviour.quit": "Έξοδος του Cider", "settings.option.experimental.closeButtonBehaviour.minimizeTaskbar": "Ελαχιστοποίηση στη γραμμή εργασιών", "settings.option.experimental.closeButtonBehaviour.minimizeTray": "Ελαχιστοποίηση στη γωνία γραμμής εργασιών", + // Refer to term.disabled & term.enabled - // Spatialization Menu "spatial.spatialProperties" : "Χωρικές Ιδιότητες", "spatial.width" : "Πλάτος", diff --git a/src/i18n/en_HODOR.jsonc b/src/i18n/en_HODOR.jsonc index e925e968..57014914 100644 --- a/src/i18n/en_HODOR.jsonc +++ b/src/i18n/en_HODOR.jsonc @@ -1,7 +1,7 @@ { // HODOR // i18n Info - "i18n.languageName": "HODOR", // name of language in native language + "i18n.languageName": "HODOR", // name of language in native language "i18n.languageNameEnglish": "HODOR", // name of language in English "i18n.category": "fun", // main = real language, fun = fun community languages "i18n.authors": "HODOR", // Authors, if you contribute to this file feel free to add your name seperated with a space @@ -19,6 +19,7 @@ "notification.updatingLibrarySongs": "UPDATING HODOR HODORS...", "notification.updatingLibraryAlbums": "UPDATING HODOR HODORBUMS...", "notification.updatingLibraryArtists": "UPDATING HODOR HODORTISTS...", + // Terms "term.appleInc": "HODOR Inc.", "term.appleMusic": "HODOR MUSIC", @@ -139,7 +140,7 @@ "error.noResults": "NO HODOR.", "error.noResults.description": "TRY NEW HODOR.", - //Podcasts + // Podcasts "podcast.followOnCider": "FOLLOW ON HODOR", "podcast.followedOnCider": "FOLLOWING ON HODOR", "podcast.subscribeOnItunes": "SUBSCRIBE ON iHODOR", @@ -190,12 +191,11 @@ "action.import": "HODOR IN", "action.export": "HODOR OUT", "action.showAlbum": "SHOW HODOR HODOR", - // Waiting on Core for moving plugin to app.ts "action.tray.minimize": "HODOR TO TRAY", "action.tray.quit": "HODOR", "action.tray.show": "SEE", - // Settings - General (Reserved) + // Settings - General "settings.header.general": "HODORAL", "settings.header.general.description": "HODOR HODORAL HODOR FOR HODOR.", "settings.option.general.language": "HODOR SPEAKS", @@ -205,6 +205,8 @@ "settings.option.general.language.fun": "HODOR HODORS", "settings.option.general.language.unsorted": "NO HODORS", + // Update Cider + // Settings - Audio "settings.header.audio": "HODOR HEARS", "settings.header.audio.description": "ADJUST HODOR EARS FOR HODOR HODOR.", @@ -219,6 +221,7 @@ "settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "NORMALIZES HODOR VOLUME FOR INDIVIDUAL HODORS TO HODOR A MORE HODOR LISTENING HODOR.", "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "HODOR SPATIALIZATION", // Toggle "settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "SPATIALIZE HODOR AND MAKE HODOR MORE 3-HODOR (HODOR: THIS IS NOT HODOR ATMOS)", + // Settings - Visual "settings.header.visual": "HODOR SEES", "settings.header.visual.description": "ADJUST HODOR EYES FOR HODOR.", @@ -241,6 +244,9 @@ "settings.option.visual.hardwareAcceleration.description": "NEED RE HODOR", "settings.header.visual.hardwareAcceleration.default": "HODOR.", "settings.header.visual.hardwareAcceleration.webGPU": "WEB HODOR!!", + + // Settings - Visual - Theme name + // Refer to term.disabled for the disabled option "settings.option.visual.showPersonalInfo": "SHOW HODOR NAME?", // Toggle @@ -276,8 +282,8 @@ "settings.option.experimental.closeButtonBehaviour.quit": "END HODOR", "settings.option.experimental.closeButtonBehaviour.minimizeTaskbar": "MINIMIZE HODOR TO HODORBAR", "settings.option.experimental.closeButtonBehaviour.minimizeTray": "MINIMIZE HODOR TO HODORAY", + // Refer to term.disabled & term.enabled - // Spatialization Menu "spatial.notTurnedOn": "HODOR SPATIALIZATION IS HODOR. TO HODOR, PLEASE HODOR IT HODOR.", "spatial.spatialProperties" : "SPATIAL HODOR", @@ -308,5 +314,4 @@ //About "about.thanks": "HODOR THANKS TO THE HODOR TEAM AND ALL OF OUR HODORS." - } \ No newline at end of file diff --git a/src/i18n/en_OWO.jsonc b/src/i18n/en_OWO.jsonc index 7e15e260..95c680e9 100644 --- a/src/i18n/en_OWO.jsonc +++ b/src/i18n/en_OWO.jsonc @@ -1,4 +1,5 @@ -{ // Base File +{ + // i18n Info "i18n.languageName": "Engwish (OwO)", // name of language in native language "i18n.languageNameEnglish": "Engwish (OwO)", // name of language in English @@ -280,6 +281,9 @@ "settings.option.visual.hardwareAcceleration.description": "Wequiwes wewaunch", "settings.header.visual.hardwareAcceleration.default": "Defauwt", "settings.header.visual.hardwareAcceleration.webGPU": "WebGPU", + + // Settings - Visual - Theme name + // Refer to term.disabled for the disabled option "settings.option.visual.showPersonalInfo": "Show Pewsonaw Info", // Toggle diff --git a/src/i18n/en_PISS.jsonc b/src/i18n/en_PISS.jsonc index 619ca375..b83885ac 100644 --- a/src/i18n/en_PISS.jsonc +++ b/src/i18n/en_PISS.jsonc @@ -1,4 +1,5 @@ -{ // Base File +{ + // i18n Info "i18n.languageName": "piss", // name of language in native language "i18n.languageNameEnglish": "English (piss)", // name of language in English @@ -280,6 +281,7 @@ // Settings - Visual - Theme name "settings.option.visual.theme.default": "regular piss", "settings.option.visual.theme.dark": "black piss", + // Refer to term.disabled for the disabled option "settings.option.visual.showPersonalInfo": "show yourself to the pissiverse", // Toggle diff --git a/src/i18n/en_SGA.jsonc b/src/i18n/en_SGA.jsonc index a04520b5..2174befe 100644 --- a/src/i18n/en_SGA.jsonc +++ b/src/i18n/en_SGA.jsonc @@ -1,4 +1,5 @@ { + // i18n Info "i18n.languageName": "┤ᖋ|:ᖋᔮᒣ╎ᔮ ᖋ|:i!⍑ᖋᕊᒷᒣ", // name of language in native language "i18n.languageNameEnglish": "Galactic Alphabet", // name of language in English @@ -134,6 +135,8 @@ "term.addedpreset": "ᖋ↸↸ᒷ↸ i!∷ᒷϟᒷᒣ", "term.deletepreset.warn": "ᖋ∷ᒷ ॥ᒍ⚍ ϟ⚍∷ᒷ ॥ᒍ⚍ ∴ᖋリᒣ ᒣᒍ ↸ᒷ|:ᒷᒣᒷ ᒣ⍑╎ϟ i!∷ᒷϟᒷᒣ?", "term.deletedpreset": "∷ᒷᒲᒍ⍊ᒷ↸ i!∷ᒷϟᒷᒣ", + "term.requestError": "ᒣ⍑ᒷ∷ᒷ ∴ᖋϟ ᖋ i!∷ᒍᕊ|:ᒷᒲ ∴╎ᒣ⍑ ᒣ⍑ᒷ ∷ᒷᑑ⚍ᒷϟᒣ.", + "term.song.link.generate": "┤ᒷᒣᒣ╎リ┤ ϟᒍリ┤.|:╎リ·ǀ· ϟ⍑ᖋ∷ᒷ ⚍∷|:...", "term.musicVideos": "ᒲ⚍ϟ╎ᔮ ⍊╎↸ᒷᒍϟ", // Search page friendlyTypes "term.stations": "ϟᒣᖋᒣ╎ᒍリϟ", "term.curators": "ᔮ⚍∷ᖋᒣᒍ∷ϟ", @@ -230,6 +233,10 @@ // Update Cider "settings.option.general.updateCider": "⚍i!↸ᖋᒣᒷ ᔮ╎↸ᒷ∷", + "settings.option.general.updateCider.branch": "ᔮ╎↸ᒷ∷ ⚍i!↸ᖋᒣᒷ ᕊ∷ᖋリᔮ⍑", // Dropdown + "settings.option.general.updateCider.branch.description": "ϟᒷ|:ᒷᔮᒣ ᒣ⍑ᒷ ᕊ∷ᖋリᔮ⍑ ᒣᒍ ⚍i!↸ᖋᒣᒷ ᔮ╎↸ᒷ∷ ᒣᒍ", + "settings.option.general.updateCider.branch.main": "ϟᒣᖋᕊ|:ᒷ", + "settings.option.general.updateCider.branch.develop": "↸ᒷ⍊ᒷ|:ᒍi!ᒲᒷリᒣ", // Settings - Audio "settings.header.audio": "ᖋ⚍↸╎ᒍ", @@ -240,18 +247,25 @@ "settings.header.audio.quality.lossless": "|:ᒍϟϟ|:ᒷϟϟ", "settings.header.audio.quality.lossless.description": "(⚍i! ᒣᒍ 24-ᕊ╎ᒣ/48 ·ǀ·⍑∩)", "settings.header.audio.quality.high": "⍑╎┤⍑", - "settings.header.audio.quality.low": "|:ᒍ∴", - "settings.header.audio.quality.auto": "ᖋ⚍ᒣᒍ", + "settings.header.audio.quality.high.description": "256 ·ǀ·ᕊi!ϟ", + "settings.header.audio.quality.standard": "ϟᒣᖋリ↸ᖋ∷↸", + "settings.header.audio.quality.standard.description": "64 ·ǀ·ᕊi!ϟ", "settings.option.audio.seamlessTransition": "ϟᒷᖋᒲ|:ᒷϟϟ ᖋ⚍↸╎ᒍ ᒣ∷ᖋリϟ╎ᒣ╎ᒍリ", // Toggle "settings.option.audio.enableAdvancedFunctionality": "ᒷリᖋᕊ|:ᒷ ᖋ↸⍊ᖋリᔮᒷ↸ ⎓⚍リᔮᒣ╎ᒍリᖋ|:╎ᒣ॥", // Toggle "settings.option.audio.enableAdvancedFunctionality.description": "ᒷリᖋᕊ|:╎リ┤ ᖋ⚍↸╎ᒍᔮᒍリᒣᒷ/ᒣ ⎓⚍リᔮᒣ╎ᒍリᖋ|:╎ᒣ॥ ∴╎|:|: ᖋ|:|:ᒍ∴ ⎓ᒍ∷ ᒷ/ᒣᒷリ↸ᒷ↸ ᖋ⚍↸╎ᒍ ⎓ᒷᖋᒣ⚍∷ᒷϟ |:╎·ǀ·ᒷ ᖋ⚍↸╎ᒍ リᒍ∷ᒲᖋ|:╎∩ᖋᒣ╎ᒍリ , ᒷᑑ⚍ᖋ|:╎∩ᒷ∷ϟ ᖋリ↸ ⍊╎ϟ⚍ᖋ|:╎∩ᒷ∷ϟ, ⍑ᒍ∴ᒷ⍊ᒷ∷ ᒍリ ϟᒍᒲᒷ ϟ॥ϟᒣᒷᒲϟ ᒣ⍑╎ϟ ᒲᖋ॥ ᔮᖋ⚍ϟᒷ ϟᒣ⚍ᒣᒣᒷ∷╎リ┤ ╎リ ᖋ⚍↸╎ᒍ ᒣ∷ᖋᔮ·ǀ·ϟ.", - "settings.option.audio.enableAdvancedFunctionality.decryptLLPW": "↸ᒷᔮ∷॥i!ᒣ |:ᒍϟϟ|:ᒷϟϟ i!|:ᖋ॥ᕊᖋᔮ·ǀ· ∴ᒍ∷·ǀ·⎓|:ᒍ∴", // Toggle - "settings.option.audio.enableAdvancedFunctionality.decryptLLPW.description": "ᒷリᖋᕊ|:ᒷϟ ᒣ⍑ᒷ ᖋᕊ╎|:╎ᒣ॥ ⎓ᒍ∷ ᔮ╎↸ᒷ∷ ᒣᒍ ↸ᒷᔮ∷॥i!ᒣ |:ᒍϟϟ|:ᒷϟϟ ᖋ⚍↸╎ᒍ ⎓╎|:ᒷϟ. ᖋ ᒲ╎リᒍ∷ i!ᒷ∷⎓ᒍ∷ᒲᖋリᔮᒷ ⍑╎ᒣ ∴╎|:|: ᒍᔮᔮ⚍∷.", + "settings.option.audio.enableAdvancedFunctionality.ciderPPE": "ᔮ╎↸ᒷ∷ ᖋ↸∷ᒷリᖋ|:╎リᒷ i!∷ᒍᔮᒷϟϟᒍ∷™️", // Toggle + "settings.option.audio.enableAdvancedFunctionality.ciderPPE.description": "i!ϟ॥ᔮ⍑ᒍᖋᔮᒍ⚍ϟᒣ╎ᔮ ᒷリ⍑ᖋリᔮᒷᒲᒷリᒣϟ ᒣ⍑ᖋᒣ ᒲᖋ·ǀ·ᒷϟ ᒷ⍊ᒷ∷॥ᒣ⍑╎リ┤ ϟᒍ⚍リ↸ ᕊᒍᒣ⍑ ∷╎ᔮ⍑ᒷ∷ ᖋリ↸ ᒲᒍ∷ᒷ |:╎⍊ᒷ|:॥ | ↸ᒷϟ╎┤リᒷ↸ ᕊ॥ ᒲᖋ╎·ǀ·╎∴╎.", + "settings.warn.audio.enableAdvancedFunctionality.ciderPPE.compatibility": "ᔮᖋi! ╎ϟ リᒍᒣ ᔮᒍᒲi!ᖋᒣ╎ᕊ|:ᒷ ∴╎ᒣ⍑ ϟi!ᖋᒣ╎ᖋ|:╎∩ᖋᒣ╎ᒍリ. i!|:ᒷᖋϟᒷ ↸╎ϟᖋᕊ|:ᒷ ϟi!ᖋᒣ╎ᖋ|:╎∩ᖋᒣ╎ᒍリ ᒣᒍ ᔮᒍリᒣ╎リ⚍ᒷ.", + "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength": "ᔮᖋi! ϟᒣ∷ᒷリ┤ᒣ⍑", // Toggle + "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.description": "ᔮ⍑ᖋリ┤ᒷϟ ᒣ⍑ᒷ ϟᒣ∷ᒷリ┤ᒣ⍑ ᒍ⎓ ᒣ⍑ᒷ i!∷ᒍᔮᒷϟϟ╎リ┤ ↸ᒍリᒷ ᒣᒍ ᒣ⍑ᒷ ᖋ⚍↸╎ᒍ. (ᖋ┤┤∷ᒷϟϟ╎⍊ᒷ ᒲᖋ॥ ॥╎ᒷ|:↸ ⚍リ↸ᒷϟ╎∷ᖋᕊ|:ᒷ ∷ᒷϟ⚍|:ᒣϟ)", + "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.standard": "ϟᒣᖋリ↸ᖋ∷↸", + "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.aggressive": "ᖋ┤┤∷ᒷϟϟ╎⍊ᒷ", "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "ᖋ⚍↸╎ᒍ リᒍ∷ᒲᖋ|:╎∩ᖋᒣ╎ᒍリ", // Toggle "settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "リᒍ∷ᒲᖋ|:╎∩ᒷϟ i!ᒷᖋ·ǀ· ⍊ᒍ|:⚍ᒲᒷ ⎓ᒍ∷ ╎リ↸╎⍊╎↸⚍ᖋ|: ᒣ∷ᖋᔮ·ǀ·ϟ ᒣᒍ ᔮ∷ᒷᖋᒣᒷ ᖋ ᒲᒍ∷ᒷ ⚍リ╎⎓ᒍ∷ᒲ |:╎ϟᒣᒷリ╎リ┤ ᒷ/i!ᒷ∷╎ᒷリᔮᒷ.", "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "ᖋ⚍↸╎ᒍ ϟi!ᖋᒣ╎ᖋ|:╎∩ᖋᒣ╎ᒍリ", // Toggle "settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "ϟi!ᖋᒣ╎ᖋ|:╎∩ᒷ ᖋ⚍↸╎ᒍ ᖋリ↸ ᒲᖋ·ǀ·ᒷ ᖋ⚍↸╎ᒍ ᒲᒍ∷ᒷ 3-↸╎ᒲᒷリϟ╎ᒍリᖋ|: (リᒍᒣᒷ: ᒣ⍑╎ϟ ╎ϟ リᒍᒣ ↸ᒍ|:ᕊ॥ ᖋᒣᒲᒍϟ)", - + "settings.warn.audio.enableAdvancedFunctionality.audioSpatialization.compatibility": "ϟi!ᖋᒣ╎ᖋ|:╎∩ᖋᒣ╎ᒍリ ╎ϟ リᒍᒣ ᔮᒍᒲi!ᖋᒣ╎ᕊ|:ᒷ ∴╎ᒣ⍑ ᔮᖋi!. i!|:ᒷᖋϟᒷ ↸╎ϟᖋᕊ|:ᒷ ᔮᖋi! ᒣᒍ ᔮᒍリᒣ╎リ⚍ᒷ.", + // Settings - Visual "settings.header.visual": "⍊╎ϟ⚍ᖋ|:", "settings.header.visual.description": "ᖋ↸⋮⚍ϟᒣ ᒣ⍑ᒷ ⍊╎ϟ⚍ᖋ| ϟᒷᒣᒣ╎リ┤ϟ ⎓ᒍ∷ ᔮ╎↸ᒷ∷.", @@ -279,6 +293,7 @@ // Settings - Visual - Theme name "settings.option.visual.theme.default": "ᔮ╎↸ᒷ∷", "settings.option.visual.theme.dark": "↸ᖋ∷·ǀ·", + // Refer to term.disabled for the disabled option "settings.option.visual.showPersonalInfo": "ϟ⍑ᒍ∴ i!ᒷ∷ϟᒍリᖋ|: ╎リ⎓ᒍ", // Toggle diff --git a/src/i18n/en_US.jsonc b/src/i18n/en_US.jsonc index 2bce04b9..b4369a35 100644 --- a/src/i18n/en_US.jsonc +++ b/src/i18n/en_US.jsonc @@ -1,9 +1,10 @@ { // Base File + // i18n Info "i18n.languageName": "English (US)", // name of language in native language "i18n.languageNameEnglish": "English (US)", // name of language in English "i18n.category": "main", // main = real language, fun = fun community languages - "i18n.authors": "@maikirakiwi", // Authors, if you contribute to this file feel free to add your name seperated with a space + "i18n.authors": "@maikirakiwi @kyw504100", // Authors, if you contribute to this file feel free to add your name seperated with a space // App info "app.name": "Cider", @@ -134,6 +135,8 @@ "term.addedpreset": "Added Preset", "term.deletepreset.warn": "Are you sure you want to delete this preset?", "term.deletedpreset": "Removed preset", + "term.requestError": "There was a problem with the request.", + "term.song.link.generate": "Getting song.link share URL...", "term.musicVideos": "Music Videos", // Search page friendlyTypes "term.stations": "Stations", "term.curators": "Curators", @@ -252,6 +255,7 @@ "settings.option.audio.enableAdvancedFunctionality.description": "Enabling AudioContext functionality will allow for extended audio features like Audio Normalization , Equalizers and Visualizers, however on some systems this may cause stuttering in audio tracks.", "settings.option.audio.enableAdvancedFunctionality.ciderPPE": "Cider Adrenaline Processor™️", // Toggle "settings.option.audio.enableAdvancedFunctionality.ciderPPE.description": "Psychoacoustic Enhancements that makes everything sound both richer and more lively | Designed by Maikiwi.", + "settings.warn.audio.enableAdvancedFunctionality.ciderPPE.compatibility": "CAP is not compatible with Spatialization. Please disable Spatialization to continue.", "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength": "CAP Strength", // Toggle "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.description": "Changes the strength of the processing done to the audio. (Aggressive may yield undesirable results)", "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.standard": "Standard", @@ -260,6 +264,7 @@ "settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "Normalizes peak volume for individual tracks to create a more uniform listening experience.", "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "Audio Spatialization", // Toggle "settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "Spatialize audio and make audio more 3-dimensional (note: This is not Dolby Atmos)", + "settings.warn.audio.enableAdvancedFunctionality.audioSpatialization.compatibility": "Spatialization is not compatible with CAP. Please disable CAP to continue.", // Settings - Visual "settings.header.visual": "Visual", @@ -288,6 +293,7 @@ // Settings - Visual - Theme name "settings.option.visual.theme.default": "Cider", "settings.option.visual.theme.dark": "Dark", + // Refer to term.disabled for the disabled option "settings.option.visual.showPersonalInfo": "Show Personal Info", // Toggle @@ -344,14 +350,14 @@ "spatial.down": "Down", "spatial.listener": "Listener", "spatial.audioSource": "Audio Source", - + // Settings - Unfinished "settings.header.unfinished": "Unfinished", - + // Web Remote "remote.web.title": "Cider Remote", "remote.web.description": "Scan the QR code to pair your phone up with this Cider instance", - + // About "about.thanks": "Major thanks to the Cider Collective Team and all of our contributors." } \ No newline at end of file diff --git a/src/i18n/es_ES.jsonc b/src/i18n/es_ES.jsonc index 9a0bf149..89845ac3 100644 --- a/src/i18n/es_ES.jsonc +++ b/src/i18n/es_ES.jsonc @@ -1,4 +1,5 @@ -{ // Base File +{ + // i18n Info "i18n.languageName": "Español (ES)", // name of language in native language "i18n.languageNameEnglish": "Spanish (Spain)", // name of language in English @@ -248,6 +249,9 @@ "settings.option.visual.hardwareAcceleration.description": "La app requiere reinicio", "settings.header.visual.hardwareAcceleration.default": "Por defecto", "settings.header.visual.hardwareAcceleration.webGPU": "WebGPU", + + // Settings - Visual - Theme name + // Refer to term.disabled for the disabled option "settings.option.visual.showPersonalInfo": "Mostrar información personal", // Toggle diff --git a/src/i18n/fr_CA.jsonc b/src/i18n/fr_CA.jsonc index 132cf845..c05df4c7 100644 --- a/src/i18n/fr_CA.jsonc +++ b/src/i18n/fr_CA.jsonc @@ -1,7 +1,7 @@ -{ // Base File +{ // i18n Info - "i18n.languageName": "Français (CA)", // name of language in native language + "i18n.languageName": "Français (CA)", // name of language in native language "i18n.languageNameEnglish": "French (CA)", // name of language in English "i18n.category": "main", // main = real language, fun = fun community languages "i18n.authors": "brock#7527", // Authors, if you contribute to this file feel free to add your name seperated with a space @@ -19,6 +19,7 @@ "notification.updatingLibrarySongs": "Rafraîchir des chansons...", "notification.updatingLibraryAlbums": "Rafraîchir des albums...", "notification.updatingLibraryArtists": "Rafraîchir des artistes...", + // Terms "term.appleInc": "Apple Inc.", "term.appleMusic": "Apple Music", @@ -128,13 +129,14 @@ "home.madeForYou": "Creér pour toi", "home.friendsListeningTo": "Amis écoutant", "home.followedArtists": "Artistes suivis", + // Errors "error.appleMusicSubRequired": "Apple Music nécessite un abonnement.", "error.connectionError": "Un problème est survenu lors de la connexion à Apple Music.", "error.noResults": "Pas de resultats.", "error.noResults.description": "Essayez une nouvelle recherche.", - //Podcasts + // Podcasts "podcast.followOnCider": "Suivez sur Cider", "podcast.followedOnCider": "Suivi sur Cider", "podcast.subscribeOnItunes": "S'abonner sur iTunes", @@ -193,6 +195,8 @@ "settings.option.general.language.main": "Langue", "settings.option.general.language.fun": "Langues amusantes", "settings.option.general.language.unsorted": "Non trié", + + // Update Cider // Settings - Audio "settings.header.audio": "Audio", @@ -208,6 +212,7 @@ "settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "Normalise le volume maximal des pistes individuelles pour créer une expérience d'écoute plus uniforme.", "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "Audio Spatialization", // Toggle "settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "Spatialisez l'audio et rendez l'audio plus tridimensionnel (remarque: il ne s'agit pas de Dolby Atmos)", + // Settings - Visual "settings.header.visual": "Visuel", "settings.header.visual.description": "Ajustez les réglages visuels de Cider.", @@ -230,6 +235,9 @@ "settings.option.visual.hardwareAcceleration.description": "Nécessite une relance", "settings.header.visual.hardwareAcceleration.default": "Défaut", "settings.header.visual.hardwareAcceleration.webGPU": "WebGPU", + + // Settings - Visual - Theme name + // Refer to term.disabled for the disabled option "settings.option.visual.showPersonalInfo": "Afficher les informations personnelles", // Toggle @@ -265,8 +273,8 @@ "settings.option.experimental.closeButtonBehaviour.quit": "Quitter Cider", "settings.option.experimental.closeButtonBehaviour.minimizeTaskbar": "Réduire à la barre des tâches", "settings.option.experimental.closeButtonBehaviour.minimizeTray": "Réduire dans le bac", + // Refer to term.disabled & term.enabled - // Spatialization Menu "spatial.spatialProperties" : "Propriétés spatiales", "spatial.width" : "Largeur", diff --git a/src/i18n/fr_FR.jsonc b/src/i18n/fr_FR.jsonc index cf05144b..910f23c7 100644 --- a/src/i18n/fr_FR.jsonc +++ b/src/i18n/fr_FR.jsonc @@ -1,349 +1,351 @@ -{ // Base File - // i18n Info - "i18n.languageName": "Français", // name of language in native language - "i18n.languageNameEnglish": "French", // name of language in English - "i18n.category": "main", // main = real language, fun = fun community languages - "i18n.authors": "@ErwanGit", // Authors, if you contribute to this file feel free to add your name seperated with a space - - // App info - "app.name": "Cider", - - "date.format": "${d} ${m} ${y}", - - // Dialogs - "dialog.cancel": "Annuler", - "dialog.ok": "OK", - - // Notification - "notification.updatingLibrarySongs": "Mise à jour des chansons de la bibliothèque...", - "notification.updatingLibraryAlbums": "Mise à jour des albums de la bibliothèque...", - "notification.updatingLibraryArtists": "Mise à jour des artistes de la bibliothèque...", - - // Terms - "term.appleInc": "Apple Inc.", - "term.appleMusic": "Apple Music", - "term.applePodcasts": "Apple Podcasts", - "term.itunes": "iTunes", - "term.github": "GitHub", - "term.discord": "Discord", - "term.learnMore": "En savoir plus", - "term.accountSettings": "Paramètres du compte", - "term.logout": "Déconnexion", - "term.login": "Connexion", - "term.about": "À propos", - "term.privateSession": "Session privée", - "term.queue": "File d'attente", - "term.history": "Historique", - "term.search": "Recherche", - "term.library": "Bibliothèque", - "term.listenNow": "Écoutez maintenant", - "term.browse": "Explorer", - "term.radio": "Radio", - "term.recentlyAdded": "Ajouté récemment", - "term.songs": "Musiques", - "term.albums": "Albums", - "term.artists": "Artistes", - "term.podcasts": "Podcasts", - "term.playlists": "Playlists", - "term.playlist": "Playlist", - "term.newPlaylist": "Nouvelle Playlist", - "term.newPlaylistFolder": "Nouveau dossier de playlist", - "term.createNewPlaylist": "Créer une nouvelle playlist", - "term.createNewPlaylistFolder": "Create New Playlist Folder", - "term.deletePlaylist": "Êtes-vous sûr de vouloir supprimer cette playlist ?", - "term.play": "Lecture", - "term.pause": "Pause", - "term.previous": "Précédent", - "term.next": "Suivant", - "term.shuffle": "Aléatoire", - "term.repeat": "Répéter", - "term.volume": "Volume", - "term.mute": "Rendre muet", - "term.unmute": "Ne plus rendre muet", - "term.share": "Partager", - "term.settings": "Paramètres", - "term.share.success": "Copié dans le presse-papier", - "term.seeAll": "Voir tout", - "term.sortBy": "Trier par", - "term.sortBy.album": "Album", - "term.sortBy.artist": "Artiste", - "term.sortBy.name": "Nom", - "term.sortBy.genre": "Genre", - "term.sortBy.releaseDate": "Date de sortie", - "term.sortBy.duration": "Durée", - "term.sortOrder": "A-Z", - "term.sortOrder.ascending": "Ascendant", - "term.sortOrder.descending": "Descendant", - "term.viewAs": "Voir comme", - "term.viewAs.coverArt": "Pochette d'album", - "term.viewAs.list": "Liste", - "term.size": "Taille", - "term.size.normal": "Normal", - "term.size.compact": "Compacte", - "term.enable": "Activer", - "term.disable": "Désactiver", - "term.enabled": "Activé", - "term.disabled": "Désactivé", - "term.connect": "Connecter", - "term.connecting": "Connexion", - "term.disconnect": "Déconnexion", - "term.authed": "Authentifié", - "term.confirm": "Confirmer ?", - "term.more": "Plus", - "term.less": "Moins", - "term.showMore": "Afficher plus", - "term.showLess": "Afficher moins", - "term.topSongs": "Meilleurs titres", - "term.latestReleases": "Dernières sorties", - "term.time.added": "Ajouté", - "term.time.released": "Publié", - "term.time.updated": "Mis à jour", - "term.time.hours": "heures", - "term.time.hour": "heure", - "term.time.minutes": "minutes", - "term.time.minute": "minute", - "term.time.seconds": "secondes", - "term.time.second": "seconde", - "term.fullscreenView": "Vue plein écran", - "term.defaultView": "Vue par défaut", - "term.spacializedAudioSetting": "Paramètres audio spatialisés", - "term.clearAll": "Tout effacer", - "term.recentStations": "Stations récentes", - "term.language": "Langue", - "term.funLanguages": "Amusant", - "term.noLyrics": "Chargement... / Paroles non trouvé./ Instrumental.", - "term.copyright": "Copyright", - "term.rightsReserved": "Tous droits réservés.", - "term.sponsor": "Soutenez ce projet", - "term.ciderTeam": "Équipe Cider", - "term.developer": "Développeur", - "term.socialTeam": "Équipe de communication", - "term.socials": "Réseaux sociaux", - "term.contributors": "Contributeurs", - "term.equalizer": "Égaliseur", - "term.reset": "Réinitialiser", - "term.tracks": "musiques", // Assume x amount of tracks. e.g. 50 tracks - "term.videos": "Vidéos", - "term.menu": "Menu", - "term.check": "Vérifier", - "term.aboutArtist": "À propos de {{artistName}}", // e.g. 'About Doja Cat' - "term.topResult": "Meilleurs résultats", // Search Results - "term.sharedPlaylists": "Playlists partagées", // Search Results - "term.people": "Personnes", // Search Results - "term.newpreset.name": "Nouveau nom du préréglage de l'égaliseur", // Equalizer Preset - "term.addedpreset": "Ajout d'un préréglage", - "term.deletepreset.warn": "Êtes-vous sûr de vouloir supprimer ce préréglage ?", - "term.deletedpreset": "Suppression d'un préréglage", - "term.musicVideos": "Vidéos musicales", // Search page friendlyTypes - "term.stations": "Stations", - "term.curators": "Curateurs", - "term.appleCurators": "Curateurs Apple", - "term.radioShows": "Émissions de radio", - "term.recordLabels": "Labels de disques", - "term.videoExtras": "Vidéos bonus", - "term.top": "Top", - - // Home - "home.title": "Accueil", - "home.recentlyPlayed": "Joué récemment", - "home.recentlyAdded": "Récemment ajouté", - "home.artistsFeed": "Votre file d'artistes", - "home.artistsFeed.noArtist": "Suivez d'abord certains artistes et leurs dernières sorties seront ici", - "home.madeForYou": "Fait pour vous", - "home.friendsListeningTo": "Vos amis écoutent", - "home.followedArtists": "Artistes suivis", - - // Errors - "error.appleMusicSubRequired": "Apple Music nécessite un abonnement.", - "error.connectionError": "Il y a eu un problème de connexion à Apple Music.", - "error.noResults": "Aucun résultat.", - "error.noResults.description": "Essayez une nouvelle recherche.", - - // Podcasts - "podcast.followOnCider": "Suivre sur Cider", - "podcast.followedOnCider": "Suivi sur Cider", - "podcast.subscribeOnItunes": "Suivre sur iTunes", - "podcast.subscribedOnItunes": "Suivi sur iTunes", - "podcast.itunesStore": "iTunes Store", - "podcast.episodes": "Épisodes", - "podcast.playEpisode": "Lire l'épisode", - "podcast.website": "Site du podcast", - - // Actions - "action.addToLibrary": "Ajouter à la bibliothèque", - "action.addToLibrary.success": "Ajouté à la bibliothèque", - "action.addToLibrary.error": "Erreur lors de l'ajout à la bibliothèque", - "action.removeFromLibrary": "Retirer de la bibliothèque", - "action.removeFromLibrary.success": "Retiré de la bibliothèque", - "action.addToQueue": "Ajouter à la file d'attente", - "action.addToQueue.success": "Ajouté à la file d'attente", - "action.addToQueue.error": "Erreur lors de l'ajout à la file d'attente", - "action.removeFromQueue": "Retirer de la file d'attente", - "action.removeFromQueue.success": "Retiré de la file d'attente", - "action.removeFromQueue.error": "Erreur lors du retrait de la file d'attente", - "action.createPlaylist": "Créer une nouvelle playlist", - "action.addToPlaylist": "Ajouter à une playlist", - "action.removeFromPlaylist": "Retirer de la playlist", - "action.addToFavorites": "Ajouter aux favoris", - "action.follow": "Suivre", - "action.follow.success": "Suivi", - "action.follow.error": "Erreur lors de l'abonnement", - "action.unfollow": "Se désabonner", - "action.unfollow.success": "Désabonné", - "action.unfollow.error": "Erreur lors du désabonnement", - "action.playNext": "Jouer après", - "action.playLater": "Jouer plus tard", - "action.startRadio": "Lancer la radio", - "action.goToArtist": "Aller à l'artiste", - "action.goToAlbum": "Aller à l'album", - "action.moveToTop": "Haut de page", - "action.share": "Partager", - "action.rename": "Renommer", - "action.love": "Aimer", - "action.unlove": "Ne plus aimer", - "action.dislike": "Je n'aime pas", - "action.undoDislike": "Je n'aime plus", - "action.showWebRemoteQR": "Afficher le QR Code de la télécommande à distance", - "action.playTracksNext": "Jouer ${app.selectedMediaItems.length} musiques après", - "action.playTracksLater": "Jouer ${app.selectedMediaItems.length} musiques plus tard", - "action.removeTracks": "Retirer ${self.selectedItems.length} musiques de la file d'attente", - "action.import": "Importer", - "action.export": "Exporter", - "action.showAlbum": "Afficher l'album complet", - "action.tray.minimize": "Réduire dans la barre d'outils", - "action.tray.quit": "Quitter", - "action.tray.show": "Afficher", - "action.update": "Mettre à jour", - "action.copy": "Copier", - "action.newpreset": "Nouveau préréglage...", // Equalizer Preset - "action.deletepreset": "Supprimer le préréglage", - - // Settings - General - "settings.header.general": "Général", - "settings.header.general.description": "Ajuster les paramètres généraux de Cider.", - "settings.option.general.language": "Langue", - - // Language optgroups - "settings.option.general.language.main": "Langues", - "settings.option.general.language.fun": "Langues amusantes", - "settings.option.general.language.unsorted": "Non trié", +{ - // Update Cider - "settings.option.general.updateCider": "Mettre à jour Cider", // Button - - // Settings - Audio - "settings.header.audio": "Audio", - "settings.header.audio.description": "Ajuster les paramètres audio de Cider.", - "settings.option.audio.quality": "Qualité Audio", // Dropdown - "settings.header.audio.quality.hireslossless": "Lossless haute qualité (Hi-Res)", - "settings.header.audio.quality.hireslossless.description": "(jusqu'à 24 bits/192 kHz)", - "settings.header.audio.quality.lossless": "Lossless", - "settings.header.audio.quality.lossless.description": "(jusqu'à 24 bits/48 kHz)", - "settings.header.audio.quality.enhanced": "Amélioré", - "settings.header.audio.quality.high": "Élevée", - "settings.header.audio.quality.low": "Faible", - "settings.header.audio.quality.auto": "Automatique", - "settings.option.audio.seamlessTransition": "Fondu audio transparent", // Toggle - "settings.option.audio.enableAdvancedFunctionality": "Activer les fonctions avancées", // Toggle - "settings.option.audio.enableAdvancedFunctionality.description": "L'activation de la fonctionnalité AudioContext permet d'utiliser des fonctions audio étendues telles que la normalisation du son, les égaliseurs et les visualiseurs. Toutefois, sur certains systèmes, cela peut provoquer des bégaiements dans les pistes audio.", - "settings.option.audio.enableAdvancedFunctionality.ciderPPE": "Moteur de traitement psycho-acoustique Cider", // Toggle - "settings.option.audio.enableAdvancedFunctionality.ciderPPE.description": "Un processus de traitement qui fait croire à votre cerveau que les fichiers sont de meilleure qualité.", - "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "Normalisation du son", // Toggle - "settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "Normalise le volume maximal des pistes individuelles pour créer une expérience d'écoute plus uniforme.", - "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "Spatialisation audio", // Toggle - "settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "Spatialiser l'audio et rendre l'audio plus tridimensionnel (note: Ce n'est pas Dolby Atmos)", - - // Settings - Visual - "settings.header.visual": "Visuel", - "settings.header.visual.description": "Ajuster les paramètres visuels de Cider.", - "settings.option.visual.windowBackgroundStyle": "Style d'arrière-plan de la fenêtre", // Toggle - "settings.header.visual.windowBackgroundStyle.none": "Aucun", - "settings.header.visual.windowBackgroundStyle.artwork": "Pochette d'album", - "settings.header.visual.windowBackgroundStyle.image": "Image", - "settings.option.visual.animatedArtwork": "Pochette d'album animée", // Dropdown - "settings.header.visual.animatedArtwork.always": "Toujours", - "settings.header.visual.animatedArtwork.limited": "Limité aux pages et aux entrées spéciales", - "settings.header.visual.animatedArtwork.disable": "Désactiver partout", - "settings.option.visual.animatedArtworkQuality": "Qualité de la pochette d'album animée", // Dropdown - "settings.header.visual.animatedArtworkQuality.low": "Faible", - "settings.header.visual.animatedArtworkQuality.medium": "Moyen", - "settings.header.visual.animatedArtworkQuality.high": "Élevée", - "settings.header.visual.animatedArtworkQuality.veryHigh": "Très élevée", - "settings.header.visual.animatedArtworkQuality.extreme": "Extrême", - "settings.option.visual.animatedWindowBackground": "Arrière-plan de fenêtre animé", // Toggle - "settings.option.visual.hardwareAcceleration": "Accélération matérielle", // Dropdown - "settings.option.visual.hardwareAcceleration.description": "Nécessite un relancement", - "settings.header.visual.hardwareAcceleration.default": "Défaut", - "settings.header.visual.hardwareAcceleration.webGPU": "WebGPU", - "settings.header.visual.theme": "Thème", - - // Settings - Visual - Theme name - "settings.option.visual.theme.default": "Cider", - "settings.option.visual.theme.dark": "Sombre", - // Refer to term.disabled for the disabled option - "settings.option.visual.showPersonalInfo": "Afficher vos informations personnelles", // Toggle - - // Settings - Lyrics - "settings.header.lyrics": "Paroles", - "settings.header.lyrics.description": "Ajuster les paramètres des paroles pour Cider.", - "settings.option.lyrics.enableMusixmatch": "Activer les paroles Musixmatch", // Toggle - "settings.option.lyrics.enableMusixmatchKaraoke": "Activer le mode karaoké (Musixmatch seulement)", // Toggle - "settings.option.lyrics.musixmatchPreferredLanguage": "Langue préférée pour les traductions Musixmatch", // Dropdown - "settings.option.lyrics.enableYoutubeLyrics": "Activer les paroles YouTube pour les vidéos de musique", // Toggle - - // Settings - Connectivity - "settings.header.connectivity": "Connectivité", - "settings.header.connectivity.description": "Ajuster les paramètres de connectivité de Cider.", - "settings.option.connectivity.discordRPC": "Discord Rich Presence", // Dropdown - "settings.option.connectivity.playbackNotifications": "Notifications de lecture", // Toggle - // Refer to term.disabled for the disabled option - "settings.header.connectivity.discordRPC.cider": "Afficher comme 'Cider'", - "settings.header.connectivity.discordRPC.appleMusic": "Afficher comme 'Apple Music'", - "settings.option.connectivity.discordRPC.clearOnPause": "Désactiver le Discord Rich Presence quand la musique est en pause", // Toggle - "settings.option.connectivity.lastfmScrobble": "Scrobble LastFM", // Option to Connect - "settings.option.connectivity.lastfmScrobble.delay": "Délai de Scrobble LastFM (%)", - "settings.option.connectivity.lastfmScrobble.nowPlaying": "Activer la lecture en cours sur LastFM", - "settings.option.connectivity.lastfmScrobble.removeFeatured": "Supprimer les artistes en vedette du titre de la chanson (LastFM)", - "settings.option.connectivity.lastfmScrobble.filterLoop": "Filtrer les titres en boucle (LastFM)", - // Refer to term.connect for the connect button - - // Settings - Experimental - "settings.header.experimental": "Expérimental", - "settings.header.experimental.description": "Ajuster les paramètres expérimentaux de Cider.", - "settings.option.experimental.compactUI": "Interface utilisateur compacte", // Toggle - "settings.option.experimental.close_button_hide": "Le bouton de fermeture doit masquer l'application", - "settings.option.experimental.copy_log": "Copier les logs dans le presse-papier", - "settings.option.experimental.inline_playlists": "Playlists et albums en ligne", - - // Refer to term.disabled & term.enabled - // Spatialization Menu - "spatial.notTurnedOn": "La spatialisation audio est désactivée. Pour l'utiliser, vous devez d'abord l'activer.", - "spatial.spatialProperties": "Propriétés spatiales", - "spatial.width": "Largeur", - "spatial.height": "Hauteur", - "spatial.depth": "Profondeur", - "spatial.gain": "Gain", - "spatial.roomMaterials": "Matériaux de la pièce", - "spatial.roomDimensions": "Dimensions de la pièce", - "spatial.roomPositions": "Positions de la pièce", - "spatial.setDimensions": "Définir les dimensions", - "spatial.setPositions": "Définir les positions", - "spatial.up": "Haut", - "spatial.front": "Avant", - "spatial.left": "Gauche", - "spatial.right": "Droite", - "spatial.back": "Retour", - "spatial.down": "Bas", - "spatial.listener": "Auditeur", - "spatial.audioSource": "Source Audio", - - // Settings - Unfinished - "settings.header.unfinished": "Inachevée", - - // Web Remote - "remote.web.title": "Cider à distance", - "remote.web.description": "Scanner le QR code pour associer votre téléphone avec cette instance Cider", - - // About - "about.thanks": "Un grand merci à l'équipe de la Cider Collective et à tous nos contributeurs." + // i18n Info + "i18n.languageName": "Français", // name of language in native language + "i18n.languageNameEnglish": "French", // name of language in English + "i18n.category": "main", // main = real language, fun = fun community languages + "i18n.authors": "@ErwanGit", // Authors, if you contribute to this file feel free to add your name seperated with a space + + // App info + "app.name": "Cider", + + "date.format": "${d} ${m} ${y}", + + // Dialogs + "dialog.cancel": "Annuler", + "dialog.ok": "OK", + + // Notification + "notification.updatingLibrarySongs": "Mise à jour des chansons de la bibliothèque...", + "notification.updatingLibraryAlbums": "Mise à jour des albums de la bibliothèque...", + "notification.updatingLibraryArtists": "Mise à jour des artistes de la bibliothèque...", + + // Terms + "term.appleInc": "Apple Inc.", + "term.appleMusic": "Apple Music", + "term.applePodcasts": "Apple Podcasts", + "term.itunes": "iTunes", + "term.github": "GitHub", + "term.discord": "Discord", + "term.learnMore": "En savoir plus", + "term.accountSettings": "Paramètres du compte", + "term.logout": "Déconnexion", + "term.login": "Connexion", + "term.about": "À propos", + "term.privateSession": "Session privée", + "term.queue": "File d'attente", + "term.history": "Historique", + "term.search": "Recherche", + "term.library": "Bibliothèque", + "term.listenNow": "Écoutez maintenant", + "term.browse": "Explorer", + "term.radio": "Radio", + "term.recentlyAdded": "Ajouté récemment", + "term.songs": "Musiques", + "term.albums": "Albums", + "term.artists": "Artistes", + "term.podcasts": "Podcasts", + "term.playlists": "Playlists", + "term.playlist": "Playlist", + "term.newPlaylist": "Nouvelle Playlist", + "term.newPlaylistFolder": "Nouveau dossier de playlist", + "term.createNewPlaylist": "Créer une nouvelle playlist", + "term.createNewPlaylistFolder": "Create New Playlist Folder", + "term.deletePlaylist": "Êtes-vous sûr de vouloir supprimer cette playlist ?", + "term.play": "Lecture", + "term.pause": "Pause", + "term.previous": "Précédent", + "term.next": "Suivant", + "term.shuffle": "Aléatoire", + "term.repeat": "Répéter", + "term.volume": "Volume", + "term.mute": "Rendre muet", + "term.unmute": "Ne plus rendre muet", + "term.share": "Partager", + "term.settings": "Paramètres", + "term.share.success": "Copié dans le presse-papier", + "term.seeAll": "Voir tout", + "term.sortBy": "Trier par", + "term.sortBy.album": "Album", + "term.sortBy.artist": "Artiste", + "term.sortBy.name": "Nom", + "term.sortBy.genre": "Genre", + "term.sortBy.releaseDate": "Date de sortie", + "term.sortBy.duration": "Durée", + "term.sortOrder": "A-Z", + "term.sortOrder.ascending": "Ascendant", + "term.sortOrder.descending": "Descendant", + "term.viewAs": "Voir comme", + "term.viewAs.coverArt": "Pochette d'album", + "term.viewAs.list": "Liste", + "term.size": "Taille", + "term.size.normal": "Normal", + "term.size.compact": "Compacte", + "term.enable": "Activer", + "term.disable": "Désactiver", + "term.enabled": "Activé", + "term.disabled": "Désactivé", + "term.connect": "Connecter", + "term.connecting": "Connexion", + "term.disconnect": "Déconnexion", + "term.authed": "Authentifié", + "term.confirm": "Confirmer ?", + "term.more": "Plus", + "term.less": "Moins", + "term.showMore": "Afficher plus", + "term.showLess": "Afficher moins", + "term.topSongs": "Meilleurs titres", + "term.latestReleases": "Dernières sorties", + "term.time.added": "Ajouté", + "term.time.released": "Publié", + "term.time.updated": "Mis à jour", + "term.time.hours": "heures", + "term.time.hour": "heure", + "term.time.minutes": "minutes", + "term.time.minute": "minute", + "term.time.seconds": "secondes", + "term.time.second": "seconde", + "term.fullscreenView": "Vue plein écran", + "term.defaultView": "Vue par défaut", + "term.spacializedAudioSetting": "Paramètres audio spatialisés", + "term.clearAll": "Tout effacer", + "term.recentStations": "Stations récentes", + "term.language": "Langue", + "term.funLanguages": "Amusant", + "term.noLyrics": "Chargement... / Paroles non trouvé./ Instrumental.", + "term.copyright": "Copyright", + "term.rightsReserved": "Tous droits réservés.", + "term.sponsor": "Soutenez ce projet", + "term.ciderTeam": "Équipe Cider", + "term.developer": "Développeur", + "term.socialTeam": "Équipe de communication", + "term.socials": "Réseaux sociaux", + "term.contributors": "Contributeurs", + "term.equalizer": "Égaliseur", + "term.reset": "Réinitialiser", + "term.tracks": "musiques", // Assume x amount of tracks. e.g. 50 tracks + "term.videos": "Vidéos", + "term.menu": "Menu", + "term.check": "Vérifier", + "term.aboutArtist": "À propos de {{artistName}}", // e.g. 'About Doja Cat' + "term.topResult": "Meilleurs résultats", // Search Results + "term.sharedPlaylists": "Playlists partagées", // Search Results + "term.people": "Personnes", // Search Results + "term.newpreset.name": "Nouveau nom du préréglage de l'égaliseur", // Equalizer Preset + "term.addedpreset": "Ajout d'un préréglage", + "term.deletepreset.warn": "Êtes-vous sûr de vouloir supprimer ce préréglage ?", + "term.deletedpreset": "Suppression d'un préréglage", + "term.musicVideos": "Vidéos musicales", // Search page friendlyTypes + "term.stations": "Stations", + "term.curators": "Curateurs", + "term.appleCurators": "Curateurs Apple", + "term.radioShows": "Émissions de radio", + "term.recordLabels": "Labels de disques", + "term.videoExtras": "Vidéos bonus", + "term.top": "Top", + + // Home + "home.title": "Accueil", + "home.recentlyPlayed": "Joué récemment", + "home.recentlyAdded": "Récemment ajouté", + "home.artistsFeed": "Votre file d'artistes", + "home.artistsFeed.noArtist": "Suivez d'abord certains artistes et leurs dernières sorties seront ici", + "home.madeForYou": "Fait pour vous", + "home.friendsListeningTo": "Vos amis écoutent", + "home.followedArtists": "Artistes suivis", + + // Errors + "error.appleMusicSubRequired": "Apple Music nécessite un abonnement.", + "error.connectionError": "Il y a eu un problème de connexion à Apple Music.", + "error.noResults": "Aucun résultat.", + "error.noResults.description": "Essayez une nouvelle recherche.", + + // Podcasts + "podcast.followOnCider": "Suivre sur Cider", + "podcast.followedOnCider": "Suivi sur Cider", + "podcast.subscribeOnItunes": "Suivre sur iTunes", + "podcast.subscribedOnItunes": "Suivi sur iTunes", + "podcast.itunesStore": "iTunes Store", + "podcast.episodes": "Épisodes", + "podcast.playEpisode": "Lire l'épisode", + "podcast.website": "Site du podcast", + + // Actions + "action.addToLibrary": "Ajouter à la bibliothèque", + "action.addToLibrary.success": "Ajouté à la bibliothèque", + "action.addToLibrary.error": "Erreur lors de l'ajout à la bibliothèque", + "action.removeFromLibrary": "Retirer de la bibliothèque", + "action.removeFromLibrary.success": "Retiré de la bibliothèque", + "action.addToQueue": "Ajouter à la file d'attente", + "action.addToQueue.success": "Ajouté à la file d'attente", + "action.addToQueue.error": "Erreur lors de l'ajout à la file d'attente", + "action.removeFromQueue": "Retirer de la file d'attente", + "action.removeFromQueue.success": "Retiré de la file d'attente", + "action.removeFromQueue.error": "Erreur lors du retrait de la file d'attente", + "action.createPlaylist": "Créer une nouvelle playlist", + "action.addToPlaylist": "Ajouter à une playlist", + "action.removeFromPlaylist": "Retirer de la playlist", + "action.addToFavorites": "Ajouter aux favoris", + "action.follow": "Suivre", + "action.follow.success": "Suivi", + "action.follow.error": "Erreur lors de l'abonnement", + "action.unfollow": "Se désabonner", + "action.unfollow.success": "Désabonné", + "action.unfollow.error": "Erreur lors du désabonnement", + "action.playNext": "Jouer après", + "action.playLater": "Jouer plus tard", + "action.startRadio": "Lancer la radio", + "action.goToArtist": "Aller à l'artiste", + "action.goToAlbum": "Aller à l'album", + "action.moveToTop": "Haut de page", + "action.share": "Partager", + "action.rename": "Renommer", + "action.love": "Aimer", + "action.unlove": "Ne plus aimer", + "action.dislike": "Je n'aime pas", + "action.undoDislike": "Je n'aime plus", + "action.showWebRemoteQR": "Afficher le QR Code de la télécommande à distance", + "action.playTracksNext": "Jouer ${app.selectedMediaItems.length} musiques après", + "action.playTracksLater": "Jouer ${app.selectedMediaItems.length} musiques plus tard", + "action.removeTracks": "Retirer ${self.selectedItems.length} musiques de la file d'attente", + "action.import": "Importer", + "action.export": "Exporter", + "action.showAlbum": "Afficher l'album complet", + "action.tray.minimize": "Réduire dans la barre d'outils", + "action.tray.quit": "Quitter", + "action.tray.show": "Afficher", + "action.update": "Mettre à jour", + "action.copy": "Copier", + "action.newpreset": "Nouveau préréglage...", // Equalizer Preset + "action.deletepreset": "Supprimer le préréglage", + + // Settings - General + "settings.header.general": "Général", + "settings.header.general.description": "Ajuster les paramètres généraux de Cider.", + "settings.option.general.language": "Langue", + + // Language optgroups + "settings.option.general.language.main": "Langues", + "settings.option.general.language.fun": "Langues amusantes", + "settings.option.general.language.unsorted": "Non trié", + + // Update Cider + "settings.option.general.updateCider": "Mettre à jour Cider", // Button + + // Settings - Audio + "settings.header.audio": "Audio", + "settings.header.audio.description": "Ajuster les paramètres audio de Cider.", + "settings.option.audio.quality": "Qualité Audio", // Dropdown + "settings.header.audio.quality.hireslossless": "Lossless haute qualité (Hi-Res)", + "settings.header.audio.quality.hireslossless.description": "(jusqu'à 24 bits/192 kHz)", + "settings.header.audio.quality.lossless": "Lossless", + "settings.header.audio.quality.lossless.description": "(jusqu'à 24 bits/48 kHz)", + "settings.header.audio.quality.enhanced": "Amélioré", + "settings.header.audio.quality.high": "Élevée", + "settings.header.audio.quality.low": "Faible", + "settings.header.audio.quality.auto": "Automatique", + "settings.option.audio.seamlessTransition": "Fondu audio transparent", // Toggle + "settings.option.audio.enableAdvancedFunctionality": "Activer les fonctions avancées", // Toggle + "settings.option.audio.enableAdvancedFunctionality.description": "L'activation de la fonctionnalité AudioContext permet d'utiliser des fonctions audio étendues telles que la normalisation du son, les égaliseurs et les visualiseurs. Toutefois, sur certains systèmes, cela peut provoquer des bégaiements dans les pistes audio.", + "settings.option.audio.enableAdvancedFunctionality.ciderPPE": "Moteur de traitement psycho-acoustique Cider", // Toggle + "settings.option.audio.enableAdvancedFunctionality.ciderPPE.description": "Un processus de traitement qui fait croire à votre cerveau que les fichiers sont de meilleure qualité.", + "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "Normalisation du son", // Toggle + "settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "Normalise le volume maximal des pistes individuelles pour créer une expérience d'écoute plus uniforme.", + "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "Spatialisation audio", // Toggle + "settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "Spatialiser l'audio et rendre l'audio plus tridimensionnel (note: Ce n'est pas Dolby Atmos)", + + // Settings - Visual + "settings.header.visual": "Visuel", + "settings.header.visual.description": "Ajuster les paramètres visuels de Cider.", + "settings.option.visual.windowBackgroundStyle": "Style d'arrière-plan de la fenêtre", // Toggle + "settings.header.visual.windowBackgroundStyle.none": "Aucun", + "settings.header.visual.windowBackgroundStyle.artwork": "Pochette d'album", + "settings.header.visual.windowBackgroundStyle.image": "Image", + "settings.option.visual.animatedArtwork": "Pochette d'album animée", // Dropdown + "settings.header.visual.animatedArtwork.always": "Toujours", + "settings.header.visual.animatedArtwork.limited": "Limité aux pages et aux entrées spéciales", + "settings.header.visual.animatedArtwork.disable": "Désactiver partout", + "settings.option.visual.animatedArtworkQuality": "Qualité de la pochette d'album animée", // Dropdown + "settings.header.visual.animatedArtworkQuality.low": "Faible", + "settings.header.visual.animatedArtworkQuality.medium": "Moyen", + "settings.header.visual.animatedArtworkQuality.high": "Élevée", + "settings.header.visual.animatedArtworkQuality.veryHigh": "Très élevée", + "settings.header.visual.animatedArtworkQuality.extreme": "Extrême", + "settings.option.visual.animatedWindowBackground": "Arrière-plan de fenêtre animé", // Toggle + "settings.option.visual.hardwareAcceleration": "Accélération matérielle", // Dropdown + "settings.option.visual.hardwareAcceleration.description": "Nécessite un relancement", + "settings.header.visual.hardwareAcceleration.default": "Défaut", + "settings.header.visual.hardwareAcceleration.webGPU": "WebGPU", + "settings.header.visual.theme": "Thème", + + // Settings - Visual - Theme name + "settings.option.visual.theme.default": "Cider", + "settings.option.visual.theme.dark": "Sombre", + + // Refer to term.disabled for the disabled option + "settings.option.visual.showPersonalInfo": "Afficher vos informations personnelles", // Toggle + + // Settings - Lyrics + "settings.header.lyrics": "Paroles", + "settings.header.lyrics.description": "Ajuster les paramètres des paroles pour Cider.", + "settings.option.lyrics.enableMusixmatch": "Activer les paroles Musixmatch", // Toggle + "settings.option.lyrics.enableMusixmatchKaraoke": "Activer le mode karaoké (Musixmatch seulement)", // Toggle + "settings.option.lyrics.musixmatchPreferredLanguage": "Langue préférée pour les traductions Musixmatch", // Dropdown + "settings.option.lyrics.enableYoutubeLyrics": "Activer les paroles YouTube pour les vidéos de musique", // Toggle + + // Settings - Connectivity + "settings.header.connectivity": "Connectivité", + "settings.header.connectivity.description": "Ajuster les paramètres de connectivité de Cider.", + "settings.option.connectivity.discordRPC": "Discord Rich Presence", // Dropdown + "settings.option.connectivity.playbackNotifications": "Notifications de lecture", // Toggle + // Refer to term.disabled for the disabled option + "settings.header.connectivity.discordRPC.cider": "Afficher comme 'Cider'", + "settings.header.connectivity.discordRPC.appleMusic": "Afficher comme 'Apple Music'", + "settings.option.connectivity.discordRPC.clearOnPause": "Désactiver le Discord Rich Presence quand la musique est en pause", // Toggle + "settings.option.connectivity.lastfmScrobble": "Scrobble LastFM", // Option to Connect + "settings.option.connectivity.lastfmScrobble.delay": "Délai de Scrobble LastFM (%)", + "settings.option.connectivity.lastfmScrobble.nowPlaying": "Activer la lecture en cours sur LastFM", + "settings.option.connectivity.lastfmScrobble.removeFeatured": "Supprimer les artistes en vedette du titre de la chanson (LastFM)", + "settings.option.connectivity.lastfmScrobble.filterLoop": "Filtrer les titres en boucle (LastFM)", + // Refer to term.connect for the connect button + + // Settings - Experimental + "settings.header.experimental": "Expérimental", + "settings.header.experimental.description": "Ajuster les paramètres expérimentaux de Cider.", + "settings.option.experimental.compactUI": "Interface utilisateur compacte", // Toggle + "settings.option.experimental.close_button_hide": "Le bouton de fermeture doit masquer l'application", + "settings.option.experimental.copy_log": "Copier les logs dans le presse-papier", + "settings.option.experimental.inline_playlists": "Playlists et albums en ligne", + + // Refer to term.disabled & term.enabled + // Spatialization Menu + "spatial.notTurnedOn": "La spatialisation audio est désactivée. Pour l'utiliser, vous devez d'abord l'activer.", + "spatial.spatialProperties": "Propriétés spatiales", + "spatial.width": "Largeur", + "spatial.height": "Hauteur", + "spatial.depth": "Profondeur", + "spatial.gain": "Gain", + "spatial.roomMaterials": "Matériaux de la pièce", + "spatial.roomDimensions": "Dimensions de la pièce", + "spatial.roomPositions": "Positions de la pièce", + "spatial.setDimensions": "Définir les dimensions", + "spatial.setPositions": "Définir les positions", + "spatial.up": "Haut", + "spatial.front": "Avant", + "spatial.left": "Gauche", + "spatial.right": "Droite", + "spatial.back": "Retour", + "spatial.down": "Bas", + "spatial.listener": "Auditeur", + "spatial.audioSource": "Source Audio", + + // Settings - Unfinished + "settings.header.unfinished": "Inachevée", + + // Web Remote + "remote.web.title": "Cider à distance", + "remote.web.description": "Scanner le QR code pour associer votre téléphone avec cette instance Cider", + + // About + "about.thanks": "Un grand merci à l'équipe de la Cider Collective et à tous nos contributeurs." } \ No newline at end of file diff --git a/src/i18n/hu_HU.jsonc b/src/i18n/hu_HU.jsonc index 7f2e65ff..28882427 100644 --- a/src/i18n/hu_HU.jsonc +++ b/src/i18n/hu_HU.jsonc @@ -1,4 +1,5 @@ -{ // Base File +{ + // i18n Info "i18n.languageName": "Magyar", // name of language in native language "i18n.languageNameEnglish": "Hungarian", // name of language in English @@ -283,6 +284,7 @@ // Settings - Visual - Theme name "settings.option.visual.theme.default": "Cider", "settings.option.visual.theme.dark": "Sötét", + // Refer to term.disabled for the disabled option "settings.option.visual.showPersonalInfo": "Személyes adatok mutatása", // Toggle diff --git a/src/i18n/it_IT.jsonc b/src/i18n/it_IT.jsonc index 5c3589f0..be903cd5 100644 --- a/src/i18n/it_IT.jsonc +++ b/src/i18n/it_IT.jsonc @@ -1,4 +1,4 @@ -{ // Base File +{ // i18n Info "i18n.languageName": "Italiano", // name of language in native language @@ -19,6 +19,7 @@ "notification.updatingLibrarySongs": "Aggiornamento raccolta brani...", "notification.updatingLibraryAlbums": "Aggornamento raccolta album...", "notification.updatingLibraryArtists": "Aggiornamento raccolta artisti...", + // Terms "term.appleInc": "Apple Inc.", "term.appleMusic": "Apple Music", @@ -134,13 +135,14 @@ "home.madeForYou": "Per Te", "home.friendsListeningTo": "Ascoltato da Amici", "home.followedArtists": "Artisti Seguiti", + // Errors "error.appleMusicSubRequired": "Apple Music ha bisogno di un abbonamento.", "error.connectionError": "C'è stato un problema nella connessione a Apple Music.", "error.noResults": "Nessun risultato.", "error.noResults.description": "Prova un'altra ricerca.", - //Podcasts + // Podcasts "podcast.followOnCider": "Segui in Cider", "podcast.followedOnCider": "Seguiti in Cider", "podcast.subscribeOnItunes": "Iscriviti in iTunes", @@ -191,7 +193,6 @@ "action.import": "Importa", "action.export": "Esporta", "action.showAlbum": "Mostra Album Intero", - // Waiting on Core for moving plugin to app.ts "action.tray.minimize": "Minimizza nel tray", "action.tray.quit": "Chiudi", "action.tray.show": "Mostra", @@ -205,6 +206,8 @@ "settings.option.general.language.main": "Lingue", "settings.option.general.language.fun": "Lingue da Scherzo", "settings.option.general.language.unsorted": "Non ordinato", + + // Update Cider // Settings - Audio "settings.header.audio": "Audio", @@ -220,6 +223,7 @@ "settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "Normalizza il volume massimo nei brani per un'esperienza d'ascolto più uniforme.", "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "Spazializzazione Audio", // Toggle "settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "Spazializza l'audio per dare un effetto più tridimensionale (nota: questo non è Dolby Atmos)", + // Settings - Visual "settings.header.visual": "Visuale", "settings.header.visual.description": "Cambia le impostazioni visuali per Cider.", @@ -242,6 +246,9 @@ "settings.option.visual.hardwareAcceleration.description": "Richiede riavvio del'app", "settings.header.visual.hardwareAcceleration.default": "Normale", "settings.header.visual.hardwareAcceleration.webGPU": "WebGPU", + + // Settings - Visual - Theme name + // Refer to term.disabled for the disabled option "settings.option.visual.showPersonalInfo": "Mostra Informazione Personale", // Toggle @@ -277,8 +284,8 @@ "settings.option.experimental.closeButtonBehaviour.quit": "Chiudi Cider", "settings.option.experimental.closeButtonBehaviour.minimizeTaskbar": "Minimizza", "settings.option.experimental.closeButtonBehaviour.minimizeTray": "Minimizza Nel Tray", + // Refer to term.disabled & term.enabled - // Spatialization Menu "spatial.notTurnedOn": "Spazializzazione Audio è disattivata. Attivala prima.", "spatial.spatialProperties" : "Proprietà Spaziali", diff --git a/src/i18n/ja_JP.jsonc b/src/i18n/ja_JP.jsonc index 7b31f748..9729be9b 100644 --- a/src/i18n/ja_JP.jsonc +++ b/src/i18n/ja_JP.jsonc @@ -1,4 +1,5 @@ { + // i18n Info "i18n.languageName": "日本語", // name of language in native language "i18n.languageNameEnglish": "Japanese", // name of language in English @@ -135,7 +136,7 @@ "error.noResults": "見つかりませんでした", "error.noResults.description": "もう一度お試しください。", - //Podcasts + // Podcasts "podcast.followOnCider": "Ciderでフォロー", "podcast.followedOnCider": "フォロー中", "podcast.subscribeOnItunes": "iTunesで購読", @@ -192,7 +193,16 @@ "action.copy": "コピー", "action.newpreset": "ニュープリセット", // Equalizer Preset "action.deletepreset": "プリセットを削除", // Equalizer Preset + + // Settings - General + "settings.header.general": "一般", + "settings.header.general.description": "Ciderの一般設定", + // Language optgroups + + // Update Cider + "settings.option.general.updateCider": "Cider 更新", // Button + // Settings - Audio "settings.header.audio": "オーディオ", "settings.header.audio.description": "Ciderのオーディオ設定", @@ -240,12 +250,12 @@ "settings.option.visual.hardwareAcceleration.description": "アプリを再起動する必要があります", "settings.header.visual.hardwareAcceleration.default": "既定", "settings.header.visual.hardwareAcceleration.webGPU": "WebGPU", + + // Settings - Visual - Theme name + // Refer to term.disabled for the disabled option "settings.option.visual.showPersonalInfo": "プロフィールを表示", // Toggle - // Settings - General (Reserved) - "settings.header.general": "一般", - "settings.header.general.description": "Ciderの一般設定", // Settings - Lyrics "settings.header.lyrics": "歌詞", @@ -268,9 +278,6 @@ "settings.option.connectivity.lastfmScrobble.nowPlaying": "Enable LastFM Now Playing", "settings.option.connectivity.lastfmScrobble.removeFeatured": "Remove featuring artists from song title (LastFM)", // Refer to term.connect for the connect button - - // Settings - General - Update Cider - "settings.option.general.updateCider": "Cider 更新", // Button // Settings - Experimental "settings.header.experimental": "試験的な機能", diff --git a/src/i18n/ko_KR.jsonc b/src/i18n/ko_KR.jsonc index b821d188..583fada8 100644 --- a/src/i18n/ko_KR.jsonc +++ b/src/i18n/ko_KR.jsonc @@ -1,4 +1,5 @@ -{ // Base File +{ + // i18n Info "i18n.languageName": "한국어 (KR)", // name of language in native language "i18n.languageNameEnglish": "Korean (KR)", // name of language in English @@ -273,6 +274,7 @@ // Settings - Visual - Theme name "settings.option.visual.theme.default": "Cider", "settings.option.visual.theme.dark": "다크", + // Refer to term.disabled for the disabled option "settings.option.visual.showPersonalInfo": "개인 정보 보기", // Toggle diff --git a/src/i18n/pt_BR.jsonc b/src/i18n/pt_BR.jsonc index dad04de4..fce8bbef 100644 --- a/src/i18n/pt_BR.jsonc +++ b/src/i18n/pt_BR.jsonc @@ -1,15 +1,16 @@ -{ // Base File +{ + + // i18n Info + "i18n.languageName": "Português ( brasileiro )", // name of language in native language + "i18n.languageNameEnglish": "Portuguese (Brazil)", // name of language in English + "i18n.category": "main", // main = real language, fun = fun community languages + "i18n.authors": "", // Authors, if you contribute to this file feel free to add your name seperated with a space + // App info "app.name": "Cider", "date.format": "${d} ${m}, ${y}", - // i18n Info - "i18n.languageName": "Português ( brasileiro )", // name of language in native language - "i18n.languageNameEnglish": "Portuguese (Brazil)", // name of language in English - "i18n.category": "main", // main = real language, fun = fun community languages - "i18n.authors": "", // Authors, if you contribute to this file feel free to add your name seperated with a space - // Dialogs "dialog.cancel": "Cancelar", "dialog.ok": "OK", @@ -105,6 +106,7 @@ "home.madeForYou": "Feito para Você", "home.friendsListeningTo": "Amigos Ouvindo", "home.followedArtists": "Artistas Seguidos", + // Errors "error.appleMusicSubRequired": "Necessário uma assinatura Apple Music.", @@ -142,6 +144,15 @@ "action.dislike": "Não Gostar", "action.undoDislike": "Deixar de Não Gostar", "action.showWebRemoteQR": "Mostrar o QR para Página Remota", + + // Settings - General + "settings.header.general": "Principal", + "settings.header.general.description": "Ajustar as definiçoes principais no Cider.", + + // Language optgroups + + // Update Cider + // Settings - Audio "settings.header.audio": "Audio", "settings.header.audio.description": "Ajustar as definições de audio no Cider.", @@ -156,6 +167,7 @@ "settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "Normaliza o volume alto para faixas individuais para criar uma experiência de audição mais uniforme.", "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "Audio Espacial", // Toggle "settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "Espacialize o áudio e torne o áudio mais tridimensional (nota: isto não é Dolby Atmos)", + // Settings - Visual "settings.header.visual": "Visual", "settings.header.visual.description": "Ajustar as Definições de Visual do Cider.", @@ -178,12 +190,10 @@ "settings.header.visual.hardwareAcceleration.default": "Normal", "settings.header.visual.hardwareAcceleration.webGPU": "WebGPU", + // Settings - Visual - Theme name // Refer to term.disabled for the disabled option "settings.option.visual.showPersonalInfo": "Mostrar Informaçoes Pessoais", // Toggle - // Settings - General (Reserved) - "settings.header.general": "Principal", - "settings.header.general.description": "Ajustar as definiçoes principais no Cider.", // Settings - Lyrics "settings.header.lyrics": "Letras", @@ -211,8 +221,8 @@ "settings.header.experimental": "Experimental", "settings.header.experimental.description": "Ajustar as definições experimental no Cider.", "settings.option.experimental.compactUI": "UI Compacto", // Toggle - // Refer to term.disabled & term.enabled + // Refer to term.disabled & term.enabled // Spatialization Menu "spatial.spatialProperties" : "Propriedades do Espacial", "spatial.width" : "Largura", @@ -232,13 +242,12 @@ "spatial.listener" : "Ouvinte", "spatial.audioSource" : "Fonte de Audio", - - - // Settings - Unfinished "settings.header.unfinished": "Inacabado", // Web Remote "remote.web.title": "Cider Remoto", "remote.web.description": "Digitalize o código QR para emparelhar seu telefone com esta instância Cider" + + // About } \ No newline at end of file diff --git a/src/i18n/sv_SE.jsonc b/src/i18n/sv_SE.jsonc index abdd2d29..bd47879b 100644 --- a/src/i18n/sv_SE.jsonc +++ b/src/i18n/sv_SE.jsonc @@ -1,4 +1,5 @@ -{ // Base File +{ + // i18n Info "i18n.languageName": "Svenska (SE)", // name of language in native language "i18n.languageNameEnglish": "Swedish (SE)", // name of language in English @@ -248,6 +249,9 @@ "settings.option.visual.hardwareAcceleration.description": "kräver omstart", "settings.header.visual.hardwareAcceleration.default": "Standard", "settings.header.visual.hardwareAcceleration.webGPU": "WebGPU", + + // Settings - Visual - Theme name + // Refer to term.disabled for the disabled option "settings.option.visual.showPersonalInfo": "Visa personlig information", // Toggle diff --git a/src/i18n/tr_TR.jsonc b/src/i18n/tr_TR.jsonc index 828ecb59..214b2e17 100644 --- a/src/i18n/tr_TR.jsonc +++ b/src/i18n/tr_TR.jsonc @@ -1,4 +1,5 @@ { + // i18n Info "i18n.languageName": "Türkçe", // name of language in native language "i18n.languageNameEnglish": "Turkish", // name of language in English @@ -160,7 +161,7 @@ "error.noResults": "Hiç sonuç yok", "error.noResults.description": "Tekrar deneyin.", - //Podcasts + // Podcasts "podcast.followOnCider": "Cider'de Takip Et", "podcast.followedOnCider": "Cider'de Takip Ediliyor", "podcast.subscribeOnItunes": "itunes'de Abone Ol", @@ -252,16 +253,16 @@ "settings.option.audio.seamlessTransition": "Kesintisiz Ses Geçişi", // Toggle "settings.option.audio.enableAdvancedFunctionality": "Gelişmiş Ses Deneyimi", // Toggle "settings.option.audio.enableAdvancedFunctionality.description": "Gelişmiş ses deneyiminin etkinleştirilmesi, Ses Normalleştirme, Ekolayzer ve Görselleştirici gibi genişletilmiş ses özelliklerine izin verir, ancak bu durum bazı sistemlerde seste bozulmalara neden olabilir.", - "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "Ses Normalleştirme", // Toggle - "settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "Ses normalleştirme alçak ve yüksek sesli şarkıları dengeler ve daha düzgün bir dinleme deneyimi sağlar.", - "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "Uzamsal Ses", // Toggle - "settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "Sesi uzamsallaştırın ve sesi daha 3 boyutlu hale getirin (not: Bu Dolby Atmos değildir)", "settings.option.audio.enableAdvancedFunctionality.ciderPPE": "Cider Adrenalin Prosesörü™️", // Toggle "settings.option.audio.enableAdvancedFunctionality.ciderPPE.description": "Müziğin hem daha zengin hem de daha canlı duyulmasını sağlayan Psikoakustik Geliştirme Sistemi | Maikiwi tarafından tasarlanmıştır.", "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength": "CAP Kuvveti", // Toggle "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.description": "Sese yapılan işlemin gücünü değiştirir. (Agresif istenmeyen sonuçlar doğurabilir)", "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.standard": "Standart", "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.aggressive": "Agresif", + "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "Ses Normalleştirme", // Toggle + "settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "Ses normalleştirme alçak ve yüksek sesli şarkıları dengeler ve daha düzgün bir dinleme deneyimi sağlar.", + "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "Uzamsal Ses", // Toggle + "settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "Sesi uzamsallaştırın ve sesi daha 3 boyutlu hale getirin (not: Bu Dolby Atmos değildir)", // Settings - Visual "settings.header.visual": "Görünüm", @@ -285,13 +286,15 @@ "settings.option.visual.hardwareAcceleration.description": "Etki etmesi için uygulamayı yeniden başlatmak gerekir.", "settings.header.visual.hardwareAcceleration.default": "Varsayılan", "settings.header.visual.hardwareAcceleration.webGPU": "Gelişmiş", - "settings.option.visual.showPersonalInfo": "Kullanıcı Adımı Göster", // Toggle "settings.header.visual.theme": "Tema", // Settings - Visual - Theme name "settings.option.visual.theme.default": "Cider", "settings.option.visual.theme.dark": "Karanlık", + // Refer to term.disabled for the disabled option + "settings.option.visual.showPersonalInfo": "Kullanıcı Adımı Göster", // Toggle + // Settings - Lyrics "settings.header.lyrics": "Şarkı Sözleri", "settings.header.lyrics.description": "Cider'in şarkı sözlerini nasıl görüntülemesini istediğini buradan ayarlayın.", @@ -324,12 +327,14 @@ "settings.option.experimental.copy_log": "Günlüğü Panoya Kopyala", "settings.option.experimental.inline_playlists": "Listeleri ve Albümleri Açılır Pencere İle göster", + // Refer to term.disabled & term.enabled // Spatialization Menu "spatial.notTurnedOn": "Uzamsal ses devre dışı. Kullanabilmek için lütfen önce etkinleştirin.", "spatial.spatialProperties" : "Uzamsal Özellikler", "spatial.width" : "Genişlik", "spatial.height" : "Yükseklik", "spatial.depth" : "Derinlik", + "spatial.gain" : "Kazanç", "spatial.roomMaterials" : "Oda Materyalleri", "spatial.roomDimensions" : "Oda Ölçüleri", "spatial.roomPositions" : "Oda Pozisyonu", @@ -343,7 +348,6 @@ "spatial.down" : "Aşağı", "spatial.listener" : "Dinleyici", "spatial.audioSource" : "Ses Kaynağı", - "spatial.gain" : "Kazanç", // Settings - Unfinished "settings.header.unfinished": "Geliştirme Aşamasında", diff --git a/src/i18n/zh_CN.jsonc b/src/i18n/zh_CN.jsonc index 8844e83b..75ea8e2d 100644 --- a/src/i18n/zh_CN.jsonc +++ b/src/i18n/zh_CN.jsonc @@ -1,4 +1,5 @@ { + // i18n Info "i18n.languageName": "简体中文(中国)", // name of language in native language "i18n.languageNameEnglish": "Simp. Chinese (China)", // name of language in English @@ -190,6 +191,15 @@ "action.tray.show": "显示", "action.update": "更新", + // Settings - General + "settings.header.general": "通用", + "settings.header.general.description": "调整 Cider 的通用设置", + + // Language optgroups + + // Update Cider + "settings.option.general.updateCider": "更新 Cider", // Button + // Settings - Audio "settings.header.audio": "音频", "settings.header.audio.description": "调整 Cider 的音频设置", @@ -233,16 +243,12 @@ "settings.option.visual.hardwareAcceleration.description": "需要重启 Cider 才会生效", "settings.header.visual.hardwareAcceleration.default": "默认", "settings.header.visual.hardwareAcceleration.webGPU": "WebGPU", + + // Settings - Visual - Theme name + // Refer to term.disabled for the disabled option "settings.option.visual.showPersonalInfo": "显示个人资料", // Toggle - // Settings - General (Reserved) - "settings.header.general": "通用", - "settings.header.general.description": "调整 Cider 的通用设置", - - // Settings - General - Update Cider - "settings.option.general.updateCider": "更新 Cider", // Button - // Settings - Lyrics "settings.header.lyrics": "歌词", "settings.header.lyrics.description": "调整 Cider 的歌词设置", diff --git a/src/i18n/zh_HK.jsonc b/src/i18n/zh_HK.jsonc index b0618dae..516ff4b6 100644 --- a/src/i18n/zh_HK.jsonc +++ b/src/i18n/zh_HK.jsonc @@ -1,24 +1,25 @@ { + // i18n Info "i18n.languageName": "繁體中文(香港)", // name of language in native language "i18n.languageNameEnglish": "Trad. Chinese (Hong Kong)", // name of language in English "i18n.category": "main", // main = real language, fun = fun community languages "i18n.authors": "@kyw504100 @maikirakiwi", // Authors, if you contribute to this file feel free to add your name seperated with a space - + // App info "app.name": "Cider", - + "date.format": "${y}年${m}月${d}日", - + // Dialogs "dialog.cancel": "取消", "dialog.ok": "確認", - + // Notification "notification.updatingLibrarySongs": "正在更新資料庫的歌曲...", "notification.updatingLibraryAlbums": "正在更新資料庫的專輯...", "notification.updatingLibraryArtists": "正在更新資料庫的藝人...", - + // Terms "term.appleInc": "Apple Inc.", "term.appleMusic": "Apple Music", // Follows brand term @@ -134,15 +135,17 @@ "term.addedpreset": "已新增", "term.deletepreset.warn": "你確認要刪除這個範本?", "term.deletedpreset": "已刪除", + "term.requestError": "處理請求時發生錯誤", + "term.song.link.generate": "正在生成 song.link 分享連結...", "term.musicVideos": "MV", // Search page friendlyTypes "term.stations": "電台", - //"term.curators": "Curators", - //"term.appleCurators": "Apple Curators", + //"term.curators": "Curators", + //"term.appleCurators": "Apple Curators", "term.radioShows": "廣播單集", "term.recordLabels": "唱片公司", "term.videoExtras": "影片特輯", - //"term.top": "Top", - + //"term.top": "Top", + // Home "home.title": "主頁", "home.recentlyPlayed": "最近播放", @@ -152,13 +155,13 @@ "home.madeForYou": "為您推薦", "home.friendsListeningTo": "朋友正在聆聽", "home.followedArtists": "追蹤的藝人", - + // Errors "error.appleMusicSubRequired": "需要訂閱Apple Music以使用Cider", "error.connectionError": "無法連接到 Apple Music。", "error.noResults": "沒有結果", "error.noResults.description": "請嘗試新的搜尋內容。", - + // Podcasts "podcast.followOnCider": "在Cider上追蹤", "podcast.followedOnCider": "已在Cider上追蹤", @@ -168,7 +171,7 @@ "podcast.episodes": "單集", "podcast.playEpisode": "播放單集", "podcast.website": "Podcast 網頁", - + // Actions "action.addToLibrary": "加入資料庫", "action.addToLibrary.success": "成功加入資料庫", @@ -215,7 +218,7 @@ "action.tray.show": "顯示", "action.update": "更新", "action.copy": "複製", - "action.newpreset": "新增範本", //Equallizer preset + "action.newpreset": "新增範本", // Equallizer preset "action.deletepreset": "刪除範本", // Settings - General @@ -230,6 +233,10 @@ // Update Cider "settings.option.general.updateCider": "更新 Cider", // Button + "settings.option.general.updateCider.branch": "Cider 更新通道", // Dropdown + "settings.option.general.updateCider.branch.description": "選擇你想要接收來自哪個通道的更新", + "settings.option.general.updateCider.branch.main": "穩定", + "settings.option.general.updateCider.branch.develop": "測試", // Settings - Audio "settings.header.audio": "音訊", @@ -240,18 +247,25 @@ "settings.header.audio.quality.lossless": "無損壓縮", "settings.header.audio.quality.lossless.description": "(高達 24-bit/48 kHz)", "settings.header.audio.quality.high": "高素質", - "settings.header.audio.quality.low": "高效率", - "settings.header.audio.quality.auto": "自動", + //"settings.header.audio.quality.high.description": "256 kbps", + "settings.header.audio.quality.standard": "高效率", + //"settings.header.audio.quality.standard.description": "64 kbps", "settings.option.audio.seamlessTransition": "無縫播放", // Toggle "settings.option.audio.enableAdvancedFunctionality": "進階功能", // Toggle "settings.option.audio.enableAdvancedFunctionality.description": "啟用 AudioContext 將解鎖類似音量平衡和均衡器的進階功能。但是會在一些電腦造成音樂卡頓。", - "settings.option.audio.enableAdvancedFunctionality.decryptLLPW": "無損壓縮解碼", // Toggle - "settings.option.audio.enableAdvancedFunctionality.decryptLLPW.description": "提供 Cider 解碼無損壓縮檔案的能力,但相應地會增加電腦的工作量。", + "settings.option.audio.enableAdvancedFunctionality.ciderPPE": "Cider 數碼音訊增強處理™️", // Toggle + "settings.option.audio.enableAdvancedFunctionality.ciderPPE.description": "能夠欺騙你的大腦讓你感受到近似無損壓縮的音質 | 由 Maikiwi 設計", + "settings.warn.audio.enableAdvancedFunctionality.ciderPPE.compatibility": "音訊增強處理不兼容於空間音訊,請先停用空間音訊。", + "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength": "數碼音訊增強處理設定", // Toggle + "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.description": "將更改音訊處理的激進程度(激進型選項有可能會引起雜訊)", + "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.standard": "標準型", + "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.aggressive": "激進型", "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "音量平衡", // Toggle "settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "將平衡輕柔和響亮的歌曲,建立更統一的聆聽體驗。", "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "空間音訊", // Toggle "settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "將音訊進行空間化處理來製造一個更立體的聆聽體驗(注:此功能不是官方的杜比全景聲)", - + "settings.warn.audio.enableAdvancedFunctionality.audioSpatialization.compatibility": "空間音訊不兼容於音訊增強處理,請先停用音訊增強處理。", + // Settings - Visual "settings.header.visual": "外觀", "settings.header.visual.description": "調整Cider的外觀", @@ -275,10 +289,11 @@ "settings.header.visual.hardwareAcceleration.default": "預設", "settings.header.visual.hardwareAcceleration.webGPU": "WebGPU", "settings.header.visual.theme": "主題", - + // Settings - Visual - Theme name "settings.option.visual.theme.default": "預設", "settings.option.visual.theme.dark": "午夜暗", + // Refer to term.disabled for the disabled option "settings.option.visual.showPersonalInfo": "顯示個人檔案", // Toggle @@ -289,7 +304,7 @@ "settings.option.lyrics.enableMusixmatchKaraoke": "啟用卡拉OK模式(僅限Musixmatch)", // Toggle "settings.option.lyrics.musixmatchPreferredLanguage": "Musixmatch 歌詞語言偏好", // Dropdown "settings.option.lyrics.enableYoutubeLyrics": "播放 MV 時使用 YouTube 歌詞", // Toggle - + // Settings - Connectivity "settings.header.connectivity": "外部連結", "settings.header.connectivity.description": "調整Cider與外部的連結", @@ -303,18 +318,18 @@ "settings.option.connectivity.lastfmScrobble.delay": "Last.fm Scrobble 延遲 (%)", "settings.option.connectivity.lastfmScrobble.nowPlaying": "啟用 Last.fm 正在播放", "settings.option.connectivity.lastfmScrobble.removeFeatured": "從歌名中移除藝人推薦 (Last.fm)", - //"settings.option.connectivity.lastfmScrobble.filterLoop": "Filter looped track (Last.fm)", + //"settings.option.connectivity.lastfmScrobble.filterLoop": "Filter looped track (Last.fm)", // Refer to term.connect for the connect button - + // Settings - Experimental "settings.header.experimental": "實驗性功能", "settings.header.experimental.description": "調整Cider的實驗性功能", "settings.option.experimental.compactUI": "緊凑型 UI", // Toggle "settings.option.experimental.close_button_hide": "以關閉按鈕來隱藏 Cider", "settings.option.experimental.copy_log": "複製運行記錄檔至剪貼簿", - //"settings.option.experimental.inline_playlists": "Inline Playlists and Albums", - + //"settings.option.experimental.inline_playlists": "Inline Playlists and Albums", // Refer to term.disabled & term.enabled + // Spatialization Menu "spatial.notTurnedOn": "請先在設定中啟用空間音訊。", "spatial.spatialProperties": "空間音訊屬性", @@ -335,14 +350,14 @@ "spatial.down": "下方", "spatial.listener": "觀眾", "spatial.audioSource": "音源", - + // Settings - Unfinished "settings.header.unfinished": "未完成", - + // Web Remote "remote.web.title": "遙距控制 Cider", "remote.web.description": "掃描以下的二維碼以控制 Cider", - - // About + + //About "about.thanks": "感謝 Cider Collective 以及所有貢獻者所作出的貢獻。" } \ No newline at end of file diff --git a/src/i18n/zh_TW.jsonc b/src/i18n/zh_TW.jsonc index c2190a45..aa238675 100644 --- a/src/i18n/zh_TW.jsonc +++ b/src/i18n/zh_TW.jsonc @@ -1,9 +1,10 @@ { + // i18n Info "i18n.languageName": "繁體中文(台灣)", // name of language in native language "i18n.languageNameEnglish": "Trad. Chinese (Taiwan)", // name of language in English "i18n.category": "main", // main = real language, fun = fun community languages - "i18n.authors": "@maikirakiwi @jay900604", // Authors, if you contribute to this file feel free to add your name seperated with a space + "i18n.authors": "@maikirakiwi @jay900604 @kyw504100", // Authors, if you contribute to this file feel free to add your name seperated with a space // App info "app.name": "Cider", @@ -194,6 +195,10 @@ "action.copy": "複製", "action.newpreset": "新增預設", // Equalizer Preset "action.deletepreset": "刪除預設", // Equalizer Preset + + // Settings - General + "settings.header.general": "一般", + "settings.header.general.description": "調整 Cider 的一般設定", // Language optgroups "settings.option.general.language.main": "語言", @@ -239,7 +244,7 @@ "settings.option.visual.windowBackgroundStyle": "視窗背景樣式", // Toggle "settings.header.visual.windowBackgroundStyle.none": "空白", "settings.header.visual.windowBackgroundStyle.artwork": "專輯封面", - "settings.header.visual.windowBackgroundStyle.image": "圖片", + "settings.header.visual.windowBackgroundStyle.image": "圖片", "settings.option.visual.animatedArtwork": "動態專輯封面", // Dropdown "settings.header.visual.animatedArtwork.always": "總是顯示", "settings.header.visual.animatedArtwork.limited": "只在藝人頁面和專輯封面顯示", @@ -256,16 +261,14 @@ "settings.header.visual.hardwareAcceleration.default": "預設", "settings.header.visual.hardwareAcceleration.webGPU": "WebGPU", "settings.header.visual.theme": "主題", + // Settings - Visual - Theme name "settings.option.visual.theme.default": "Cider", "settings.option.visual.theme.dark": "暗黑模式", + // Refer to term.disabled for the disabled option "settings.option.visual.showPersonalInfo": "顯示個人檔案", // Toggle - // Settings - General (Reserved) - "settings.header.general": "一般", - "settings.header.general.description": "調整 Cider 的一般設定", - // Settings - Lyrics "settings.header.lyrics": "歌詞", "settings.header.lyrics.description": "調整 Cider 的歌詞設定", diff --git a/src/i18n/zh_yue.jsonc b/src/i18n/zh_yue.jsonc index 6fec3bfb..e7f296d9 100644 --- a/src/i18n/zh_yue.jsonc +++ b/src/i18n/zh_yue.jsonc @@ -1,4 +1,5 @@ { + // i18n Info "i18n.languageName": "廣東話(香港)", // name of language in native language "i18n.languageNameEnglish": "Cantonese (Hong Kong)", // name of language in English @@ -136,12 +137,12 @@ "term.deletedpreset": "刪除咗", "term.musicVideos": "MV", // Search page friendlyTypes "term.stations": "電台", - //"term.curators": "Curators", - //"term.appleCurators": "Apple Curators", + //"term.curators": "Curators", + //"term.appleCurators": "Apple Curators", "term.radioShows": "電台單集", "term.recordLabels": "唱片公司", "term.videoExtras": "相關嘅片", - //"term.top": "Top", + //"term.top": "Top", // Home "home.title": "主頁", @@ -273,6 +274,7 @@ // Settings - Visual - Theme name "settings.option.visual.theme.default": "預設", "settings.option.visual.theme.dark": "黑色", + // Refer to term.disabled for the disabled option "settings.option.visual.showPersonalInfo": "顯示個人檔案", // Toggle @@ -306,7 +308,7 @@ "settings.option.experimental.compactUI": "逼啲既 UI", // Toggle "settings.option.experimental.close_button_hide": "㩒交叉制嚟隱藏 Cider", "settings.option.experimental.copy_log": "將log複製喺剪貼簿", - //"settings.option.experimental.inline_playlists": "Inline Playlists and Albums", + //"settings.option.experimental.inline_playlists": "Inline Playlists and Albums", // Refer to term.disabled & term.enabled // Spatialization Menu diff --git a/src/renderer/index.js b/src/renderer/index.js index 5e58911c..5a052a96 100644 --- a/src/renderer/index.js +++ b/src/renderer/index.js @@ -272,7 +272,7 @@ const app = new Vue({ }, methods: { songLinkShare(amUrl) { - notyf.open({type: "info", message: "Getting song.link share URL..."}) + notyf.open({type: "info", message: app.getLz('term.song.link.generate')}) let self = this httpRequest = new XMLHttpRequest(); httpRequest.open('GET', `https://api.song.link/v1-alpha.1/links?url=${amUrl}&userCountry=US`, true); @@ -285,7 +285,7 @@ const app = new Vue({ self.copyToClipboard(response.pageUrl) } else { console.log('There was a problem with the request.'); - notyf.error("There was a problem with the request.") + notyf.error(app.getLz('term.requestError')) } } } @@ -2284,7 +2284,7 @@ const app = new Vue({ this.mk.addToLibrary(id).then((data) => { self.getLibrarySongsFull(true) }) - notyf.success('Added to library.'); + notyf.success(app.getLz('action.addToLibrary.success')); }, removeFromLibrary(kind, id) { let self = this @@ -2296,7 +2296,7 @@ const app = new Vue({ }).then((data) => { self.getLibrarySongsFull(true) }) - notyf.success('Removed from library.') + notyf.success(app.getLz('action.removeFromLibrary.success')) }, async losslessBadge() { diff --git a/src/renderer/views/pages/about.ejs b/src/renderer/views/pages/about.ejs index 69cf3a3d..f1fd1fb3 100644 --- a/src/renderer/views/pages/about.ejs +++ b/src/renderer/views/pages/about.ejs @@ -87,6 +87,12 @@ role: app.getLz('term.developer'), avatar: 'https://avatars.githubusercontent.com/u/27716185?v=4' }, + { + name: 'Maikiwi', + link: 'https://github.com/maikirakiwi', + role: app.getLz('term.developer'), + avatar: 'https://avatars.githubusercontent.com/u/74925636?v=4' + }, { name: 'Void', link: 'https://twitter.com/MoonyVoid', diff --git a/src/renderer/views/pages/settings.ejs b/src/renderer/views/pages/settings.ejs index 0ed575bc..8c856a12 100644 --- a/src/renderer/views/pages/settings.ejs +++ b/src/renderer/views/pages/settings.ejs @@ -824,7 +824,7 @@ if (app.cfg.advanced.ciderPPE) { if (app.cfg.audio.spatial) { app.cfg.advanced.ciderPPE = false; - notyf.error("CAP is not compatible with Spatialization. Please disable Spatialization to continue.") + notyf.error(app.getLz('settings.warn.audio.enableAdvancedFunctionality.ciderPPE.compatibility')) } } }, @@ -836,7 +836,7 @@ else { CiderAudio.spatialOff() app.cfg.audio.spatial = false; - notyf.error("Spatialization is not compatible with CAP. Please disable CAP to continue.") + notyf.error(app.getLz('settings.warn.audio.enableAdvancedFunctionality.audioSpatialization.compatibility')) } } else { CiderAudio.spatialOff() From 9eb9684abcfbdb7757f8c36ba76a1f157b9bd07e Mon Sep 17 00:00:00 2001 From: Keefe Eilish Date: Tue, 8 Feb 2022 21:16:12 +0530 Subject: [PATCH 019/337] Starting Hindi translation (#382) --- src/i18n/hi_IN.jsonc | 358 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 358 insertions(+) create mode 100644 src/i18n/hi_IN.jsonc diff --git a/src/i18n/hi_IN.jsonc b/src/i18n/hi_IN.jsonc new file mode 100644 index 00000000..ddeef8b4 --- /dev/null +++ b/src/i18n/hi_IN.jsonc @@ -0,0 +1,358 @@ +{ + // Base File + // i18n Info + "i18n.languageName": "English (US)", // name of language in native language + "i18n.languageNameEnglish": "English (US)", // name of language in English + "i18n.category": "main", // main = real language, fun = fun community languages + "i18n.authors": "@maikirakiwi @vringster", // Authors, if you contribute to this file feel free to add your name seperated with a space + + // App info + "app.name": "Cider", + + "date.format": "${m} ${d}, ${y}", + + // Dialogs + "dialog.cancel": "रोकें", + "dialog.ok": "ठीक है", + + // Notification + "notification.updatingLibrarySongs": "अपडेटिंग लाइब्रेरी के गाने...", + "notification.updatingLibraryAlbums": "अपडेटिंग लाइब्रेरी के एल्बम...", + "notification.updatingLibraryArtists": "अपडेटिंग लाइब्रेरी के कलाकार...", + + // Terms + "term.appleInc": "Apple Inc.", + "term.appleMusic": "Apple Music", + "term.applePodcasts": "Apple Podcasts", + "term.itunes": "iTunes", + "term.github": "GitHub", + "term.discord": "Discord", + "term.learnMore": "और जानिए", + "term.accountSettings": "खाता सेटिंग्स", + "term.logout": "लॉग आऊट", + "term.login": "लॉग इन", + "term.about": "के बारे में", + "term.privateSession": "गुप्त सैशन", + "term.queue": "कतार", + "term.history": "हिस्टरी", + "term.search": "खोज करें", + "term.library": "लाइब्रेरी", + "term.listenNow": "अभी सुनियें", + "term.browse": "ब्राउज़", + "term.radio": "रेडियो", + "term.recentlyAdded": "हाल ही में जोड़ें हुए", + "term.songs": "गाने", + "term.albums": "एल्बम", + "term.artists": "कलाकार", + "term.podcasts": "पॉडकास्टस", + "term.playlists": "प्लेलिस्ट्स", + "term.playlist": "प्लेलिस्ट", + "term.newPlaylist": "नई प्लेलिस्ट्स", + "term.newPlaylistFolder": "नई प्लेलिस्ट्स फ़ोल्डर", + "term.createNewPlaylist": "नई प्लेलिस्ट्स बनाएं", + "term.createNewPlaylistFolder": "नई प्लेलिस्ट्स फ़ोल्डर बनाएं", + "term.deletePlaylist": "क्या आप वाकई इस प्लेलिस्ट को हटाना चाहते हैं", + "term.play": "प्ले", + "term.pause": "ठहराव", + "term.previous": "पिछले", + "term.next": "अगले", + "term.shuffle": "शफल", + "term.repeat": "रिपीट", + "term.volume": "वॉल्यूम", + "term.mute": "म्यूट", + "term.unmute": "अनम्यूट", + "term.share": "शेयर", + "term.share.success": "क्लिपबोर्ड में कॉपीड", + "term.settings": "सेटिंग्स", + "term.seeAll": "सभी देखें", + "term.sortBy": "सॉर्ट बाये", + "term.sortBy.album": "एल्बम", + "term.sortBy.artist": "कलाकार", + "term.sortBy.name": "नाम", + "term.sortBy.genre": "शैली", + "term.sortBy.releaseDate": "रिलीज़ की तारीख", + "term.sortBy.duration": "लंबाई", + "term.sortOrder": "ए-ज़ी", + "term.sortOrder.ascending": "असेंडिंग", + "term.sortOrder.descending": "डिसेंडिंग", + "term.viewAs": "वियू ऐस", + "term.viewAs.coverArt": "कवर आर्ट", + "term.viewAs.list": "सूची", + "term.size": "साइज़", + "term.size.normal": "साधारण", + "term.size.compact": "पिचका हुआ", + "term.enable": "खोलें", + "term.disable": "बंद", + "term.enabled": "खोला हुआ", + "term.disabled": "बंद हुआ हुआ", + "term.connect": "कनेक्ट", + "term.connecting": "कनेक्टिंग", + "term.disconnect": "डिसकनेक्ट", + "term.authed": "प्रमाणित", + "term.confirm": "पक्का?", + "term.more": "ज़्यादा", + "term.less": "कम", + "term.showMore": "दिखाएं ज़्यादा", + "term.showLess": "दिखाएं कम", + "term.topSongs": "Top Songs", + "term.latestReleases": "Latest Releases", + "term.time.added": "Added", + "term.time.released": "Released", + "term.time.updated": "Updated", + "term.time.hours": "hours", + "term.time.hour": "hour", + "term.time.minutes": "minutes", + "term.time.minute": "minute", + "term.time.seconds": "seconds", + "term.time.second": "second", + "term.fullscreenView": "Fullscreen View", + "term.defaultView": "Default View", + "term.audioSettings": "Audio Settings", + "term.clearAll": "Clear All", + "term.recentStations": "Recent Stations", + "term.language": "Language", + "term.funLanguages": "Fun", + "term.noLyrics": "Loading... / Lyrics not found./ Instrumental.", + "term.copyright": "Copyright", + "term.rightsReserved": "All Rights Reserved.", + "term.sponsor": "Sponsor this project", + "term.ciderTeam": "Cider Team", + "term.developer": "Developer", + "term.socialTeam": "Social Team", + "term.socials": "Socials", + "term.contributors": "Contributors", + "term.equalizer": "Equalizer", + "term.reset": "Reset", + "term.tracks": "tracks", // Assume x amount of tracks. e.g. 50 tracks + "term.videos": "Videos", + "term.menu": "Menu", + "term.check": "Check", + "term.aboutArtist": "About {{artistName}}", // e.g. 'About Doja Cat' + "term.topResult": "Top Result", // Search Results + "term.sharedPlaylists": "Shared Playlists", // Search Results + "term.people": "People", // Search Results + "term.newpreset.name": "नई EQ Preset Name", // Equalizer Preset + "term.addedpreset": "Added Preset", + "term.deletepreset.warn": "Are you sure you want to delete this preset?", + "term.deletedpreset": "Removed preset", + "term.musicVideos": "Music Videos", // Search page friendlyTypes + "term.stations": "Stations", + "term.curators": "Curators", + "term.appleCurators": "Apple Curators", + "term.radioShows": "Radio Shows", + "term.recordLabels": "Record Labels", + "term.videoExtras": "Video Extras", + "term.top": "Top", + + // Home + "home.title": "Home", + "home.recentlyPlayed": "Recently Played", + "home.recentlyAdded": "Recently Added", + "home.artistsFeed": "Your Artists Feed", + "home.artistsFeed.noArtist": "Follow some artists first and their latest releases will be here", + "home.madeForYou": "Made For You", + "home.friendsListeningTo": "Friends Listening To", + "home.followedArtists": "Followed Artists", + + // Errors + "error.appleMusicSubRequired": "Apple Music requires a subscription.", + "error.connectionError": "There was a problem connecting to Apple Music.", + "error.noResults": "No Results.", + "error.noResults.description": "Try a नई search.", + + // Podcasts + "podcast.followOnCider": "Follow On Cider", + "podcast.followedOnCider": "Following On Cider", + "podcast.subscribeOnItunes": "Subscribe On iTunes", + "podcast.subscribedOnItunes": "Subscribed On iTunes", + "podcast.itunesStore": "iTunes Store", + "podcast.episodes": "Episodes", + "podcast.playEpisode": "Play Episode", + "podcast.website": "Podcast Website", + + // Actions + "action.addToLibrary": "Add to Library", + "action.addToLibrary.success": "Added to Library", + "action.addToLibrary.error": "Error Adding to Library", + "action.removeFromLibrary": "Remove from Library", + "action.removeFromLibrary.success": "Removed from Library", + "action.addToQueue": "Add to Queue", + "action.addToQueue.success": "Added to Queue", + "action.addToQueue.error": "Error Adding to Queue", + "action.removeFromQueue": "Remove from Queue", + "action.removeFromQueue.success": "Removed from Queue", + "action.removeFromQueue.error": "Error Removing from Queue", + "action.createPlaylist": "बनाएं a नई Playlist", + "action.addToPlaylist": "Add to Playlist", + "action.removeFromPlaylist": "Remove from Playlist", + "action.addToFavorites": "Add to Favorites", + "action.follow": "Follow", + "action.follow.success": "Followed", + "action.follow.error": "Error Following", + "action.unfollow": "Unfollow", + "action.unfollow.success": "Unfollowed", + "action.unfollow.error": "Error Unfollowing", + "action.playNext": "Play Next", + "action.playLater": "Play Later", + "action.startRadio": "Start Radio", + "action.goToArtist": "Go to Artist", + "action.goToAlbum": "Go to Album", + "action.moveToTop": "Move to top", + "action.share": "Share", + "action.rename": "Rename", + "action.love": "Love", + "action.unlove": "Unlove", + "action.dislike": "Dislike", + "action.undoDislike": "Undo dislike", + "action.showWebRemoteQR": "Web Remote", + "action.playTracksNext": "Play ${app.selectedMediaItems.length} tracks next", + "action.playTracksLater": "Play ${app.selectedMediaItems.length} tracks later", + "action.removeTracks": "Remove ${self.selectedItems.length} tracks from queue", + "action.import": "Import", + "action.export": "Export", + "action.showAlbum": "दिखाएं Complete Album", + "action.tray.minimize": "Minimize to Tray", + "action.tray.quit": "Quit", + "action.tray.show": "दिखाएं", + "action.update": "Update", + "action.copy": "Copy", + "action.newpreset": "नई Preset...", // Equalizer Preset + "action.deletepreset": "Delete Preset", + + // Settings - General + "settings.header.general": "General", + "settings.header.general.description": "Adjust the general settings for Cider.", + "settings.option.general.language": "Language", + + // Language optgroups + "settings.option.general.language.main": "Languages", + "settings.option.general.language.fun": "Fun Languages", + "settings.option.general.language.unsorted": "Unsorted", + + // Update Cider + "settings.option.general.updateCider": "Update Cider", // Button. Refer to term.check for the check button + "settings.option.general.updateCider.branch": "Cider Update Branch", // Dropdown + "settings.option.general.updateCider.branch.description": "Select the branch to update Cider to", + "settings.option.general.updateCider.branch.main": "Stable", + "settings.option.general.updateCider.branch.develop": "Development", + + // Settings - Audio + "settings.header.audio": "Audio", + "settings.header.audio.description": "Adjust the audio settings for Cider.", + "settings.option.audio.quality": "Audio Quality", // Dropdown + "settings.header.audio.quality.hireslossless": "Hi-Res Lossless", + "settings.header.audio.quality.hireslossless.description": "up to 24-bit/192 kHz", + "settings.header.audio.quality.lossless": "Lossless", + "settings.header.audio.quality.lossless.description": "up to 24-bit/48 kHz", + "settings.header.audio.quality.high": "High", + "settings.header.audio.quality.high.description": "256 kbps", + "settings.header.audio.quality.standard": "Standard", + "settings.header.audio.quality.standard.description": "64 kbps", + "settings.option.audio.seamlessTransition": "Seamless Audio Transition", // Toggle + "settings.option.audio.enableAdvancedFunctionality": "Enable Advanced Functionality", // Toggle + "settings.option.audio.enableAdvancedFunctionality.description": "Enabling AudioContext functionality will allow for extended audio features like Audio Normalization , Equalizers and Visualizers, however on some systems this may cause stuttering in audio tracks.", + "settings.option.audio.enableAdvancedFunctionality.ciderPPE": "Cider Adrenaline Processor™️", // Toggle + "settings.option.audio.enableAdvancedFunctionality.ciderPPE.description": "Psychoacoustic Enhancements that makes everything sound both richer and more lively | Designed by Maikiwi.", + "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength": "CAP Strength", // Toggle + "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.description": "Changes the strength of the processing done to the audio. (Aggressive may yield undesirable results)", + "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.standard": "Standard", + "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.aggressive": "Aggressive", + "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "Audio Normalization", // Toggle + "settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "Normalizes peak volume for individual tracks to create a more uniform listening experience.", + "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "Audio Spatialization", // Toggle + "settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "Spatialize audio and make audio more 3-dimensional (note: This is not Dolby Atmos)", + + // Settings - Visual + "settings.header.visual": "Visual", + "settings.header.visual.description": "Adjust the visual settings for Cider.", + "settings.option.visual.windowBackgroundStyle": "Window Background Style", // Toggle + "settings.header.visual.windowBackgroundStyle.none": "None", + "settings.header.visual.windowBackgroundStyle.artwork": "Artwork", + "settings.header.visual.windowBackgroundStyle.image": "Image", + "settings.option.visual.animatedArtwork": "Animated Artwork", // Dropdown + "settings.header.visual.animatedArtwork.always": "Always", + "settings.header.visual.animatedArtwork.limited": "Limited to pages and special entries", + "settings.header.visual.animatedArtwork.disable": "Disable everywhere", + "settings.option.visual.animatedArtworkQuality": "Animated Artwork Quality", // Dropdown + "settings.header.visual.animatedArtworkQuality.low": "Low", + "settings.header.visual.animatedArtworkQuality.medium": "Medium", + "settings.header.visual.animatedArtworkQuality.high": "High", + "settings.header.visual.animatedArtworkQuality.veryHigh": "Very High", + "settings.header.visual.animatedArtworkQuality.extreme": "Extreme", + "settings.option.visual.animatedWindowBackground": "Animated Window Background", // Toggle + "settings.option.visual.hardwareAcceleration": "Hardware Acceleration", // Dropdown + "settings.option.visual.hardwareAcceleration.description": "Requires relaunch", + "settings.header.visual.hardwareAcceleration.default": "Default", + "settings.header.visual.hardwareAcceleration.webGPU": "WebGPU", + "settings.header.visual.theme": "Theme", + + // Settings - Visual - Theme name + "settings.option.visual.theme.default": "Cider", + "settings.option.visual.theme.dark": "Dark", + // Refer to term.disabled for the disabled option + "settings.option.visual.showPersonalInfo": "दिखाएं Personal Info", // Toggle + + // Settings - Lyrics + "settings.header.lyrics": "Lyrics", + "settings.header.lyrics.description": "Adjust the lyrics settings for Cider.", + "settings.option.lyrics.enableMusixmatch": "Enable Musixmatch Lyrics", // Toggle + "settings.option.lyrics.enableMusixmatchKaraoke": "Enable Karaoke Mode (Musixmatch only)", // Toggle + "settings.option.lyrics.musixmatchPreferredLanguage": "Musixmatch Translation Preferred Language", // Dropdown + "settings.option.lyrics.enableYoutubeLyrics": "Enable Youtube Lyrics for Music Videos", // Toggle + + // Settings - Connectivity + "settings.header.connectivity": "Connectivity", + "settings.header.connectivity.description": "Adjust the connectivity settings for Cider.", + "settings.option.connectivity.discordRPC": "Discord Rich Presence", // Dropdown + "settings.option.connectivity.playbackNotifications": "Playback Notifications", // Toggle + // Refer to term.disabled for the disabled option + "settings.header.connectivity.discordRPC.cider": "Display as 'Cider'", + "settings.header.connectivity.discordRPC.appleMusic": "Display as 'Apple Music'", + "settings.option.connectivity.discordRPC.clearOnPause": "Clear Discord Rich Presence on Pause", // Toggle + "settings.option.connectivity.lastfmScrobble": "Last.fm Scrobbling", // Option to Connect + "settings.option.connectivity.lastfmScrobble.delay": "Last.fm Scrobble Delay (%)", + "settings.option.connectivity.lastfmScrobble.nowPlaying": "Enable Last.fm Now Playing", + "settings.option.connectivity.lastfmScrobble.removeFeatured": "Remove featuring artists from song title (Last.fm)", + "settings.option.connectivity.lastfmScrobble.filterLoop": "Filter looped track (Last.fm)", + // Refer to term.connect for the connect button + + // Settings - Experimental + "settings.header.experimental": "Experimental", + "settings.header.experimental.description": "Adjust the experimental settings for Cider.", + "settings.option.experimental.compactUI": "Compact UI", // Toggle + "settings.option.experimental.close_button_hide": "Close Button Should Hide the Application", + "settings.option.experimental.copy_log": "Copy logs to clipboard", + "settings.option.experimental.inline_playlists": "Inline Playlists and Albums", + + // Refer to term.disabled & term.enabled + // Spatialization Menu + "spatial.notTurnedOn": "Audio Spatialization is disabled. To use, please enable it first.", + "spatial.spatialProperties": "Spatial Properties", + "spatial.width": "Width", + "spatial.height": "Height", + "spatial.depth": "Depth", + "spatial.gain": "Gain", + "spatial.roomMaterials": "Room Materials", + "spatial.roomDimensions": "Room Dimensions", + "spatial.roomPositions": "Room Positions", + "spatial.setDimensions": "Set Dimensions", + "spatial.setPositions": "Set Positions", + "spatial.up": "Up", + "spatial.front": "Front", + "spatial.left": "Left", + "spatial.right": "Right", + "spatial.back": "Back", + "spatial.down": "Down", + "spatial.listener": "Listener", + "spatial.audioSource": "Audio Source", + + // Settings - Unfinished + "settings.header.unfinished": "Unfinished", + + // Web Remote + "remote.web.title": "Cider Remote", + "remote.web.description": "Scan the QR code to pair your phone up with this Cider instance", + + // About + "about.thanks": "Major thanks to the Cider Collective Team and all of our contributors." +} From 481c0be89757396ac0c0bab2b41bd01a9abeaa07 Mon Sep 17 00:00:00 2001 From: Jozen Blue Martinez Date: Tue, 8 Feb 2022 23:47:00 +0800 Subject: [PATCH 020/337] Fix loading external plugins. (#380) --- src/main/base/plugins.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/base/plugins.ts b/src/main/base/plugins.ts index 4ffb1042..f4f1d2ec 100644 --- a/src/main/base/plugins.ts +++ b/src/main/base/plugins.ts @@ -33,7 +33,7 @@ export class Plugins { if (fs.existsSync(this.userPluginsPath)) { fs.readdirSync(this.userPluginsPath).forEach(file => { if (file.endsWith('.ts') || file.endsWith('.js')) { - const plugin = require(path.join(this.userPluginsPath, file)).default; + const plugin = require(path.join(this.userPluginsPath, file)); file = file.replace('.ts', '').replace('.js', ''); if (plugins[file] || plugin in plugins) { console.log(`[${plugin.name}] Plugin already loaded / Duplicate Class Name`); From b182a90b8a4176f993d9115c357a72d4cdecaeba Mon Sep 17 00:00:00 2001 From: Juraj <75269827+jurosic@users.noreply.github.com> Date: Tue, 8 Feb 2022 17:17:29 +0000 Subject: [PATCH 021/337] FIxed things in slovak translation that i realized were wrong when i fell asleep, weird (#381) * Added slovak translation * fixed stuff * Update sk_SK.jsonc * added missing translations * slovak grammar is hard okay >:( * localhost:9000 and vibrant bass go to a bar and the bartender says, we dont serve bad memes here * mistake has been spotted * Update sk_SK.jsonc * Update sk_SK.jsonc Co-authored-by: Quacksire <19170969+quacksire@users.noreply.github.com> --- src/i18n/sk_SK.jsonc | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/src/i18n/sk_SK.jsonc b/src/i18n/sk_SK.jsonc index 95100010..bba5ed51 100644 --- a/src/i18n/sk_SK.jsonc +++ b/src/i18n/sk_SK.jsonc @@ -4,7 +4,7 @@ "i18n.languageName": "Slovenčina (SK)", // name of language in native language "i18n.languageNameEnglish": "Slovak (SK)", // name of language in English "i18n.category": "main", // main = real language, fun = fun community languages - "i18n.authors": "@jurosic", // Authors, if you contribute to this file feel free to add your name seperated with a space + "i18n.authors": "@jurosic-JurajJanosik", // Authors, if you contribute to this file feel free to add your name seperated with a space // App info "app.name": "Cider", @@ -31,7 +31,7 @@ "term.logout": "Odhlásiť", "term.login": "Prihlásiť", "term.about": "About", - "term.privateSession": "Osobný Session", + "term.privateSession": "Skuromn Počúvanie", "term.queue": "Poradie", "term.search": "Vyhládavať", "term.library": "Knižnica", @@ -76,8 +76,8 @@ "term.viewAs.coverArt": "Náhľadovka", "term.viewAs.list": "List", "term.size": "Velkosť", - "term.size.normal": "Normal", - "term.size.compact": "Compact", + "term.size.normal": "Normálny", + "term.size.compact": "Kompaktný", "term.enable": "Zapnúť", "term.disable": "Vypnúť", "term.enabled": "Zapnuté", @@ -199,7 +199,7 @@ "action.update": "Aktualizovať", // Settings - General - "settings.header.general": "všeobecné", + "settings.header.general": "Všeobecné", "settings.header.general.description": "Zmeniť všeobecné nastavenia pre Cider.", "settings.option.general.language": "Jazyk", @@ -218,6 +218,12 @@ "settings.option.audio.seamlessTransition": "Hladký Prevod Zvuku", // Toggle "settings.option.audio.enableAdvancedFunctionality": "Zapnút Pokročilé Nastavenia Zvuku", // Toggle "settings.option.audio.enableAdvancedFunctionality.description": "Zapnutie AudioContext funkcionality dovolí rozšírené funkcie zvuku ako Zvuková Normalizávia , Equalizéry a Visualízery, ale na niektorých systémoch to može spôsobiť problémy so zvukom.", + "settings.option.audio.enableAdvancedFunctionality.ciderPPE": "Cider Adrenaline Processor™️", // Toggle + "settings.option.audio.enableAdvancedFunctionality.ciderPPE.description": "Psychoakustické Vylepšenia ktoré urobia zvuk viac bohatý a živý | Urobil Maikiwi.", + "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength": "CAP Sila", // Toggle + "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.description": "Zmení silu CAP (Agresívná môže spôsobiť nežiadané výsledky)", + "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.standard": "Štandardná", + "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.aggressive": "Agresívná", "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "Normalízacia Zvuku", // Toggle "settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "Normalizuje silu zvuku v pesničkách pre hľadší počúvací zážitok", "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "Priestorový Zvuk", // Toggle @@ -244,6 +250,10 @@ "settings.option.visual.hardwareAcceleration.description": "Vyžaduje Reštart", "settings.header.visual.hardwareAcceleration.default": "Predvoľba", "settings.header.visual.hardwareAcceleration.webGPU": "WebGPU", + "settings.header.visual.theme": "Theme", + // Settings - Visual - Theme name + "settings.option.visual.theme.default": "Cider", + "settings.option.visual.theme.dark": "Dark", // Refer to term.disabled for the disabled option "settings.option.visual.showPersonalInfo": "Zobraziť osobné informácie", // Toggle @@ -274,8 +284,8 @@ // Settings - Experimental "settings.header.experimental": "Experimentálne", "settings.header.experimental.description": "Zmeniť experimentálne nastavenia pre Cider.", - "settings.option.experimental.compactUI": "Compact UI", // Toggle - "settings.option.experimental.close_button_hide": "Zatvoriť by malo skriť aplikáciu", + "settings.option.experimental.compactUI": "Kompaktný UI", // Toggle + "settings.option.experimental.close_button_hide": "Zatvaranie aplikácie ju malo skriť", // Refer to term.disabled & term.enabled // Spatialization Menu From 195b4c93fbb38016a1f994345a5814fdff5a2e92 Mon Sep 17 00:00:00 2001 From: vapormusic Date: Wed, 9 Feb 2022 00:56:59 +0700 Subject: [PATCH 022/337] encode uri --- src/renderer/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/renderer/index.js b/src/renderer/index.js index 5a052a96..4ddf7905 100644 --- a/src/renderer/index.js +++ b/src/renderer/index.js @@ -2891,7 +2891,7 @@ const app = new Vue({ return } //this.mk.api.v3.music(`/v1/catalog/${app.mk.storefrontId}/search?term=${this.search.term}` - this.mk.api.v3.music(`/v1/catalog/${app.mk.storefrontId}/search?term=${this.search.term}`, { + this.mk.api.v3.music(`/v1/catalog/${app.mk.storefrontId}/search?term=${encodeURIComponent(this.search.term)}`, { types: "activities,albums,apple-curators,artists,curators,editorial-items,music-movies,music-videos,playlists,songs,stations,tv-episodes,uploaded-videos,record-labels", "relate[editorial-items]": "contents", "include[editorial-items]": "contents", From dc386c5bd410ddd13348057acf0abaf2f3058fc9 Mon Sep 17 00:00:00 2001 From: vapormusic Date: Wed, 9 Feb 2022 00:57:57 +0700 Subject: [PATCH 023/337] typo --- src/renderer/views/components/audio-settings.ejs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/renderer/views/components/audio-settings.ejs b/src/renderer/views/components/audio-settings.ejs index 379cf9ae..512db50e 100644 --- a/src/renderer/views/components/audio-settings.ejs +++ b/src/renderer/views/components/audio-settings.ejs @@ -13,7 +13,7 @@
{{app.getLz('term.equalizer')}}
@@ -38,7 +38,7 @@ app.modals.equalizer = true app.modals.audioSettings = false }, - openSpacialAudio() { + openSpatialAudio() { if(app.cfg.audio.spatial) { app.modals.spatialProperties = true app.modals.audioSettings = false From 9201b7091cfaf06a7e2da412f44a6120236001bc Mon Sep 17 00:00:00 2001 From: Amaru8 <52407090+Amaru8@users.noreply.github.com> Date: Tue, 8 Feb 2022 19:00:51 +0000 Subject: [PATCH 024/337] Updated icon files in Web Remote (#389) --- src/web-remote/icon-192x192.png | Bin 17166 -> 7313 bytes src/web-remote/icon-256x256.png | Bin 16442 -> 10085 bytes src/web-remote/icon-384x384.png | Bin 43738 -> 16360 bytes src/web-remote/icon-512x512.png | Bin 38363 -> 23392 bytes 4 files changed, 0 insertions(+), 0 deletions(-) diff --git a/src/web-remote/icon-192x192.png b/src/web-remote/icon-192x192.png index 05834da24a8b7a426d6f5b3359b3dbe4e71f4775..73f1a793a5518c09ec8fb2793514c2b517b27ae0 100644 GIT binary patch literal 7313 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 literal 17166 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 N002ovPDHLkV1nLt@(=(3 diff --git a/src/web-remote/icon-256x256.png b/src/web-remote/icon-256x256.png index cb75e71b666f0fe9e72e6d3dab70a576b3d621d6..6f39989360a3051460aa19a9f5e0e40e9fa035a9 100644 GIT binary patch literal 10085 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 OK;xdaN~N+**#7|i8T-os literal 16442 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 aIVEcSQYHjWnLu?uprc`+Ua4vq@xK5k2lfg8 literal 43738 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

3zQXJO!S%09#+j;K`l~YG+Q<+xp#A-u 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 diff --git a/src/web-remote/icon-512x512.png b/src/web-remote/icon-512x512.png index f4a96312fa1083f04c62446eedd61120c942f445..ae74febb2ed9617f7ea4685d66f3ce459474e4e1 100644 GIT binary patch literal 23392 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

MA!? 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 From 2b6246ddaa1405fe0774c55bb8cad390638e938c Mon Sep 17 00:00:00 2001 From: KaHim Chan Date: Wed, 9 Feb 2022 04:46:38 +0800 Subject: [PATCH 025/337] Irregular update 09/02 (#388) --- src/i18n/hi_IN.jsonc | 5 +- src/i18n/in_ID.jsonc | 712 ++++++++++--------- src/i18n/sk_SK.jsonc | 21 +- src/renderer/views/components/miniplayer.ejs | 14 +- 4 files changed, 384 insertions(+), 368 deletions(-) diff --git a/src/i18n/hi_IN.jsonc b/src/i18n/hi_IN.jsonc index ddeef8b4..ad96e8f3 100644 --- a/src/i18n/hi_IN.jsonc +++ b/src/i18n/hi_IN.jsonc @@ -1,5 +1,5 @@ { - // Base File + // i18n Info "i18n.languageName": "English (US)", // name of language in native language "i18n.languageNameEnglish": "English (US)", // name of language in English @@ -289,6 +289,7 @@ // Settings - Visual - Theme name "settings.option.visual.theme.default": "Cider", "settings.option.visual.theme.dark": "Dark", + // Refer to term.disabled for the disabled option "settings.option.visual.showPersonalInfo": "दिखाएं Personal Info", // Toggle @@ -355,4 +356,4 @@ // About "about.thanks": "Major thanks to the Cider Collective Team and all of our contributors." -} +} \ No newline at end of file diff --git a/src/i18n/in_ID.jsonc b/src/i18n/in_ID.jsonc index d9d28529..8e4a445b 100644 --- a/src/i18n/in_ID.jsonc +++ b/src/i18n/in_ID.jsonc @@ -1,357 +1,359 @@ -{ // Base File - // i18n Info - "i18n.languageName": "Bahasa Indonesia", // name of language in native language - "i18n.languageNameEnglish": "Indonesian", // name of language in English - "i18n.category": "main", // main = real language, fun = fun community languages - "i18n.authors": "@crystalshower", // Authors, if you contribute to this file feel free to add your name seperated with a space - - // App info - "app.name": "Cider", - - "date.format": "${d} ${m}, ${y}", - - // Dialogs - "dialog.cancel": "Batal", - "dialog.ok": "OK", - - // Notification - "notification.updatingLibrarySongs": "Memperbarui Pustaka lagu...", - "notification.updatingLibraryAlbums": "Memperbarui Pustaka album...", - "notification.updatingLibraryArtists": "Memperbarui Pustaka artis...", - - // Terms - "term.appleInc": "Apple Inc.", - "term.appleMusic": "Apple Music", - "term.applePodcasts": "Apple Podcasts", - "term.itunes": "iTunes", - "term.github": "GitHub", - "term.discord": "Discord", - "term.learnMore": "Pelajari lebih lanjut", - "term.accountSettings": "Pengaturan Akun", - "term.logout": "Keluar", - "term.login": "Masuk", - "term.about": "Tentang", - "term.privateSession": "Sesi Pribadi", - "term.queue": "Antrian", - "term.history": "Riwayat", - "term.search": "Cari", - "term.library": "Pustaka", - "term.listenNow": "Dengarkan Sekarang", - "term.browse": "Telusuri", - "term.radio": "Radio", - "term.recentlyAdded": "Baru Ditambahkan", - "term.songs": "Lagu", - "term.albums": "Album", - "term.artists": "Artis", - "term.podcasts": "Podcasts", - "term.playlists": "Playlist", - "term.playlist": "Playlist", - "term.newPlaylist": "Playlist Baru", - "term.newPlaylistFolder": "Folder Playlist Baru", - "term.createNewPlaylist": "Buat Playlist Baru", - "term.createNewPlaylistFolder": "Buat Folder Playlist Baru", - "term.deletePlaylist": "Yakin ingin menghapus playlist ini?", - "term.play": "Mainkan", - "term.pause": "Jeda", - "term.previous": "Sebelumnya", - "term.next": "Selanjutnya", - "term.shuffle": "Acak", - "term.repeat": "Ulangi", - "term.volume": "Volume", - "term.mute": "Bisu", - "term.unmute": "Bunyikan", - "term.share": "Bagikan", - "term.share.success": "Disalin ke clipboard", - "term.settings": "Pengaturan", - "term.seeAll": "Lihat Semua", - "term.sortBy": "Urutkan Berdasarkan", - "term.sortBy.album": "Album", - "term.sortBy.artist": "Artis", - "term.sortBy.name": "Nama", - "term.sortBy.genre": "Genre", - "term.sortBy.releaseDate": "Tanggal Rilis", - "term.sortBy.duration": "Durasi", - "term.sortOrder": "A-Z", - "term.sortOrder.ascending": "Terkecil", - "term.sortOrder.descending": "Terbesar", - "term.viewAs": "Lihat Sebagai", - "term.viewAs.coverArt": "Cover Art", - "term.viewAs.list": "Daftar", - "term.size": "Ukuran", - "term.size.normal": "Normal", - "term.size.compact": "Kompak", - "term.enable": "Aktifkan", - "term.disable": "Nonaktifkan", - "term.enabled": "Diaktifkan", - "term.disabled": "Dinonaktikan", - "term.connect": "Sambungkan", - "term.connecting": "Menyambungkan", - "term.disconnect": "Terputus", - "term.authed": "Diotentikasi", - "term.confirm": "Konfirmasi?", - "term.more": "Selebihnya", - "term.less": "Lebih Sedikit", - "term.showMore": "Tampilkan lebih banyak", - "term.showLess": "Tampilkan lebih sedikit", - "term.topSongs": "Lagu Teratas", - "term.latestReleases": "Rilis Terbaru", - "term.time.added": "Ditambahkan", - "term.time.released": "Dirilis", - "term.time.updated": "Diperbarui", - "term.time.hours": "jam", - "term.time.hour": "jam", - "term.time.minutes": "menit", - "term.time.minute": "menit", - "term.time.seconds": "detik", - "term.time.second": "detik", - "term.fullscreenView": "Mode Layar Penuh", - "term.defaultView": "Mode Default", - "term.audioSettings": "Pengaturan Audio", - "term.clearAll": "Bersihkan Semua", - "term.recentStations": "Stasiun Terbaru", - "term.language": "Bahasa", - "term.funLanguages": "Senang-senang", - "term.noLyrics": "Memuat... / Lirik tidak ditermukan./ Instrumental.", - "term.copyright": "Hak cipta", - "term.rightsReserved": "Hak cipta dilindungi Undang-undang.", - "term.sponsor": "Sponsori proyek ini", - "term.ciderTeam": "Cider Team", - "term.developer": "Pengembang", - "term.socialTeam": "Social Team", - "term.socials": "Sosial", - "term.contributors": "Kontributor", - "term.equalizer": "Equalizer", - "term.reset": "Atur Ulang", - "term.tracks": "lagu", // Assume x amount of tracks. e.g. 50 tracks - "term.videos": "Video", - "term.menu": "Menu", - "term.check": "Cek", - "term.aboutArtist": "Tentang {{artistName}}", // e.g. 'About Doja Cat' - "term.topResult": "Hasil Teratas", // Search Results - "term.sharedPlaylists": "Playlist yang dibagikan", // Search Results - "term.people": "Orang", // Search Results - "term.newpreset.name": "Nama Preset EQ Baru", // Equalizer Preset - "term.addedpreset": "Preset Ditambahkan", - "term.deletepreset.warn": "Yakin ingin menghapus preset ini?", - "term.deletedpreset": "Preset dihapus", - "term.musicVideos": "Video Musik", // Search page friendlyTypes - "term.stations": "Stasiun", - "term.curators": "Kurator", - "term.appleCurators": "Kurator Apple", - "term.radioShows": "Acara Radio", - "term.recordLabels": "Label Rekaman", - "term.videoExtras": "Bonus Video", - "term.top": "Atas", - - // Home - "home.title": "Beranda", - "home.recentlyPlayed": "Baru Dimainkan", - "home.recentlyAdded": "Baru Ditambahkan", - "home.artistsFeed": "Feed Artis Anda", - "home.artistsFeed.noArtist": "Ikuti beberapa artis terlebih dahulu dan rilisan terbaru mereka akan ada di sini", - "home.madeForYou": "Dibuat Untuk Kamu", - "home.friendsListeningTo": "Teman Sedang Mendengarkan", - "home.followedArtists": "Artis Diikuti", - - // Errors - "error.appleMusicSubRequired": "Apple Music memerlukan langganan.", - "error.connectionError": "Terjadi masalah saat menyambungkan ke Apple Music.", - "error.noResults": "Tidak ada hasil.", - "error.noResults.description": "Coba pencarian baru.", - - // Podcasts - "podcast.followOnCider": "Ikuti Di Cider", - "podcast.followedOnCider": "Mengikuti Di Cider", - "podcast.subscribeOnItunes": "Langganan Di iTunes", - "podcast.subscribedOnItunes": "Berlangganan Di iTunes", - "podcast.itunesStore": "iTunes Store", - "podcast.episodes": "Episode", - "podcast.playEpisode": "Mainkan Episode", - "podcast.website": "Website Podcast", - - // Actions - "action.addToLibrary": "Tambahkan ke Pustaka", - "action.addToLibrary.success": "Ditambahkan ke Pustaka", - "action.addToLibrary.error": "Terjadi Kesalahan Saat Menambahkan Pustaka", - "action.removeFromLibrary": "Hapus dari Pustaka", - "action.removeFromLibrary.success": "Dihapus dari Pustaka", - "action.addToQueue": "Tambahkan ke Antrian", - "action.addToQueue.success": "Ditambahkan ke Antrian", - "action.addToQueue.error": "Terjadi Kesalahan Saat Menambahkan ke Antrean", - "action.removeFromQueue": "Hapus dari Antrian", - "action.removeFromQueue.success": "Dihapus dari Antrian", - "action.removeFromQueue.error": "Terjadi Kesalahan Saat Menghapus Antrian", - "action.createPlaylist": "Buat Playlist Baru", - "action.addToPlaylist": "Tambahkan ke Playlist", - "action.removeFromPlaylist": "Hapus dari Playlist", - "action.addToFavorites": "Tambahkan ke Favorit", - "action.follow": "Ikuti", - "action.follow.success": "Diikuti", - "action.follow.error": "Kesalahan Dalam Mengikuti", - "action.unfollow": "Berhenti Mengikuti", - "action.unfollow.success": "Sudah Tidak Mengikuti", - "action.unfollow.error": "Terjadi Kesalahan Saat Berhenti Mengikuti", - "action.playNext": "Mainkan Selanjutnya", - "action.playLater": "Mainkan Nanti", - "action.startRadio": "Mulai Radio", - "action.goToArtist": "Lihat Halaman Artis", - "action.goToAlbum": "Lihat Halaman Album", - "action.moveToTop": "Pindah ke Atas", - "action.share": "Bagikan", - "action.rename": "Ubah Nama", - "action.love": "Suka", - "action.unlove": "Batal Suka", - "action.dislike": "Tidak Suka", - "action.undoDislike": "Batalkan Tidak Suka", - "action.showWebRemoteQR": "Remot Web", - "action.playTracksNext": "Mainkan ${app.selectedMediaItems.length} lagu selanjutnya", - "action.playTracksLater": "Mainkan ${app.selectedMediaItems.length} lagu nanti", - "action.removeTracks": "Hapus ${self.selectedItems.length} lagu dari antrian", - "action.import": "Impor", - "action.export": "Ekspor", - "action.showAlbum": "Tampilkan Album Sepenuhnya", - "action.tray.minimize": "Sembunyikan ke Tray", - "action.tray.quit": "Keluar", - "action.tray.show": "Tampilkan", - "action.update": "Perbarui", - "action.copy": "Salin", - "action.newpreset": "Preset Baru...", // Equalizer Preset - "action.deletepreset": "Hapus Preset", - - // Settings - General - "settings.header.general": "Umum", - "settings.header.general.description": "Sesuaikan pengaturan umum untuk Cider.", - "settings.option.general.language": "Bahasa", - - // Language optgroups - "settings.option.general.language.main": "Bahasa", - "settings.option.general.language.fun": "Bahasa Candaan", - "settings.option.general.language.unsorted": "Tidak disortir", +{ + + // i18n Info + "i18n.languageName": "Bahasa Indonesia", // name of language in native language + "i18n.languageNameEnglish": "Indonesian", // name of language in English + "i18n.category": "main", // main = real language, fun = fun community languages + "i18n.authors": "@crystalshower", // Authors, if you contribute to this file feel free to add your name seperated with a space - // Update Cider - "settings.option.general.updateCider": "Perbarui Cider", // Button. Refer to term.check for the check button - "settings.option.general.updateCider.branch": "Branch Pembaruan Cider", // Dropdown - "settings.option.general.updateCider.branch.description": "Pilih branch untuk memperbarui Cider", - "settings.option.general.updateCider.branch.main": "Stable", - "settings.option.general.updateCider.branch.develop": "Development", - - // Settings - Audio - "settings.header.audio": "Audio", - "settings.header.audio.description": "Sesuaikan pengaturan audio untuk Cider.", - "settings.option.audio.quality": "Kualitas Audio", // Dropdown - "settings.header.audio.quality.hireslossless": "Hi-Res Lossless", - "settings.header.audio.quality.hireslossless.description": "sampai dari 24-bit/192 kHz", - "settings.header.audio.quality.lossless": "Lossless", - "settings.header.audio.quality.lossless.description": "sampai dari 24-bit/48 kHz", - "settings.header.audio.quality.high": "Tinggi", - "settings.header.audio.quality.high.description": "256 kbps", - "settings.header.audio.quality.standard": "Standar", - "settings.header.audio.quality.standard.description": "64 kbps", - "settings.option.audio.seamlessTransition": "Transisi Audio Mulus", // Toggle - "settings.option.audio.enableAdvancedFunctionality": "Aktifkan Fungsi Lanjutan", // Toggle - "settings.option.audio.enableAdvancedFunctionality.description": "Mengaktifkan fungsionalitas AudioContext memungkinkan fitur audio lanjutan seperti Normalisasi Audio, Equalizer dan Visualizer. Namun pada beberapa perangkat dapat menyebabkan tersendatnya audio.", - "settings.option.audio.enableAdvancedFunctionality.ciderPPE": "Cider Adrenaline Processor™️", // Toggle - "settings.option.audio.enableAdvancedFunctionality.ciderPPE.description": "Peningkatan Psikoakustik yang membuat semuanya terdengar lebih jelas dan lebih hidup | Dirancang oleh Maikiwi.", - "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength": "Kekuatan CAP", // Toggle - "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.description": "Mengubah kekuatan pemrosesan yang dilakukan pada audio. (Agresif dapat menghasilkan hasil yang tidak diinginkan)", - "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.standard": "Standar", - "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.aggressive": "Agresif", - "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "Normalisasi Audio", // Toggle - "settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "Menormalkan puncak volume untuk masing-masing lagu demi menciptakan pengalaman mendengarkan yang lebih seragam.", - "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "Spasialisasi Audio", // Toggle - "settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "Atur ruang audio dan buat audio lebih 3 dimensi (NB: Bukan Dolby Atmos)", - - // Settings - Visual - "settings.header.visual": "Visual", - "settings.header.visual.description": "Sesuaikan pengaturan visual untuk Cider.", - "settings.option.visual.windowBackgroundStyle": "Gaya Latar Belakang Jendela", // Toggle - "settings.header.visual.windowBackgroundStyle.none": "Tidak Ada", - "settings.header.visual.windowBackgroundStyle.artwork": "Artwork", - "settings.header.visual.windowBackgroundStyle.image": "Gambar", - "settings.option.visual.animatedArtwork": "Artwork Bergerak", // Dropdown - "settings.header.visual.animatedArtwork.always": "Selalu", - "settings.header.visual.animatedArtwork.limited": "Terbatas untuk halaman dan entri khusus", - "settings.header.visual.animatedArtwork.disable": "Matikan di semua tempat", - "settings.option.visual.animatedArtworkQuality": "Kualitas Artwork Bergerak", // Dropdown - "settings.header.visual.animatedArtworkQuality.low": "Rendah", - "settings.header.visual.animatedArtworkQuality.medium": "Medium", - "settings.header.visual.animatedArtworkQuality.high": "Tinggi", - "settings.header.visual.animatedArtworkQuality.veryHigh": "Sangat Tinggi", - "settings.header.visual.animatedArtworkQuality.extreme": "Paling Tinggi", - "settings.option.visual.animatedWindowBackground": "Jendela Latar Belakang Bergerak", // Toggle - "settings.option.visual.hardwareAcceleration": "Akselerasi Perangkat Keras (HW Acceleration)", // Dropdown - "settings.option.visual.hardwareAcceleration.description": "Membutuhkan dibuka ulang", - "settings.header.visual.hardwareAcceleration.default": "Default", - "settings.header.visual.hardwareAcceleration.webGPU": "WebGPU", - "settings.header.visual.theme": "Tema", - - // Settings - Visual - Theme name - "settings.option.visual.theme.default": "Cider", - "settings.option.visual.theme.dark": "Gelap", - // Refer to term.disabled for the disabled option - "settings.option.visual.showPersonalInfo": "Tampilkan Info Pribadi", // Toggle - - // Settings - Lyrics - "settings.header.lyrics": "Lyrics", - "settings.header.lyrics.description": "Sesuaikan pengaturan lirik untuk Cider.", - "settings.option.lyrics.enableMusixmatch": "Aktifkan Lirik Musixmatch", // Toggle - "settings.option.lyrics.enableMusixmatchKaraoke": "Aktifkan Mode Karaoke (khusus Musixmatch)", // Toggle - "settings.option.lyrics.musixmatchPreferredLanguage": "Bahasa Terjemahan Musixmatch", // Dropdown - "settings.option.lyrics.enableYoutubeLyrics": "Aktifkan Lirik Youtube untuk Video Musik", // Toggle - - // Settings - Connectivity - "settings.header.connectivity": "Konektivitas", - "settings.header.connectivity.description": "Sesuaikan pengaturan konektivitas untuk Cider.", - "settings.option.connectivity.discordRPC": "Discord Rich Presence", // Dropdown - "settings.option.connectivity.playbackNotifications": "Pemberitahuan Pemutaran", // Toggle - // Refer to term.disabled for the disabled option - "settings.header.connectivity.discordRPC.cider": "Tampilkan sebagai 'Cider'", - "settings.header.connectivity.discordRPC.appleMusic": "Tampilkan sebagai 'Apple Music'", - "settings.option.connectivity.discordRPC.clearOnPause": "Sembunyikan Discord Rich Presence saat dijeda", // Toggle - "settings.option.connectivity.lastfmScrobble": "Last.fm Scrobbling", // Option to Connect - "settings.option.connectivity.lastfmScrobble.delay": "Delay Last.fm Scrobble (%)", - "settings.option.connectivity.lastfmScrobble.nowPlaying": "Aktifkan Last.fm Now Playing", - "settings.option.connectivity.lastfmScrobble.removeFeatured": "Hapus featuring artist dari judul lagu (Last.fm)", - "settings.option.connectivity.lastfmScrobble.filterLoop": "Filter lagu yang diulang (Last.fm)", - // Refer to term.connect for the connect button - - // Settings - Experimental - "settings.header.experimental": "Eksperimental", - "settings.header.experimental.description": "Sesuaikan pengaturan eksperimental untuk Cider.", - "settings.option.experimental.compactUI": "UI Kompak", // Toggle - "settings.option.experimental.close_button_hide": "Tombol Tutup Menyembunyikan Aplikasi", - "settings.option.experimental.copy_log": "Salin log ke clipboard", - "settings.option.experimental.inline_playlists": "Playlist dan Album Sebaris", - - // Refer to term.disabled & term.enabled - // Spatialization Menu - "spatial.notTurnedOn": "Spasialisasi Audio dinonaktifkan. Untuk menggunakan, aktifkan terlebih dahulu.", - "spatial.spatialProperties": "Spatial Properties", - "spatial.width": "Lebar", - "spatial.height": "Tinggi", - "spatial.depth": "Kedalaman", - "spatial.gain": "Gain", - "spatial.roomMaterials": "Bahan Ruangan", - "spatial.roomDimensions": "Dimensi Ruangan", - "spatial.roomPositions": "Posisi Ruangan", - "spatial.setDimensions": "Atur Dimensi", - "spatial.setPositions": "Atur Posisi", - "spatial.up": "Atas", - "spatial.front": "Depan", - "spatial.left": "Kiri", - "spatial.right": "Kanan", - "spatial.back": "Belakang", - "spatial.down": "Bawah", - "spatial.listener": "Pendegar", - "spatial.audioSource": "Sumber Audio", - - // Settings - Unfinished - "settings.header.unfinished": "Belum Diselesaikan", - - // Web Remote - "remote.web.title": "Remote Cider", - "remote.web.description": "Pindai kode QR untuk memasangkan ponsel Anda dengan Cider.", - - // About - "about.thanks": "Terima kasih yang sebesar-besarnya kepada Cider Collective Team dan semua kontributor kami." + // App info + "app.name": "Cider", + + "date.format": "${d} ${m}, ${y}", + + // Dialogs + "dialog.cancel": "Batal", + "dialog.ok": "OK", + + // Notification + "notification.updatingLibrarySongs": "Memperbarui Pustaka lagu...", + "notification.updatingLibraryAlbums": "Memperbarui Pustaka album...", + "notification.updatingLibraryArtists": "Memperbarui Pustaka artis...", + + // Terms + "term.appleInc": "Apple Inc.", + "term.appleMusic": "Apple Music", + "term.applePodcasts": "Apple Podcasts", + "term.itunes": "iTunes", + "term.github": "GitHub", + "term.discord": "Discord", + "term.learnMore": "Pelajari lebih lanjut", + "term.accountSettings": "Pengaturan Akun", + "term.logout": "Keluar", + "term.login": "Masuk", + "term.about": "Tentang", + "term.privateSession": "Sesi Pribadi", + "term.queue": "Antrian", + "term.history": "Riwayat", + "term.search": "Cari", + "term.library": "Pustaka", + "term.listenNow": "Dengarkan Sekarang", + "term.browse": "Telusuri", + "term.radio": "Radio", + "term.recentlyAdded": "Baru Ditambahkan", + "term.songs": "Lagu", + "term.albums": "Album", + "term.artists": "Artis", + "term.podcasts": "Podcasts", + "term.playlists": "Playlist", + "term.playlist": "Playlist", + "term.newPlaylist": "Playlist Baru", + "term.newPlaylistFolder": "Folder Playlist Baru", + "term.createNewPlaylist": "Buat Playlist Baru", + "term.createNewPlaylistFolder": "Buat Folder Playlist Baru", + "term.deletePlaylist": "Yakin ingin menghapus playlist ini?", + "term.play": "Mainkan", + "term.pause": "Jeda", + "term.previous": "Sebelumnya", + "term.next": "Selanjutnya", + "term.shuffle": "Acak", + "term.repeat": "Ulangi", + "term.volume": "Volume", + "term.mute": "Bisu", + "term.unmute": "Bunyikan", + "term.share": "Bagikan", + "term.share.success": "Disalin ke clipboard", + "term.settings": "Pengaturan", + "term.seeAll": "Lihat Semua", + "term.sortBy": "Urutkan Berdasarkan", + "term.sortBy.album": "Album", + "term.sortBy.artist": "Artis", + "term.sortBy.name": "Nama", + "term.sortBy.genre": "Genre", + "term.sortBy.releaseDate": "Tanggal Rilis", + "term.sortBy.duration": "Durasi", + "term.sortOrder": "A-Z", + "term.sortOrder.ascending": "Terkecil", + "term.sortOrder.descending": "Terbesar", + "term.viewAs": "Lihat Sebagai", + "term.viewAs.coverArt": "Cover Art", + "term.viewAs.list": "Daftar", + "term.size": "Ukuran", + "term.size.normal": "Normal", + "term.size.compact": "Kompak", + "term.enable": "Aktifkan", + "term.disable": "Nonaktifkan", + "term.enabled": "Diaktifkan", + "term.disabled": "Dinonaktikan", + "term.connect": "Sambungkan", + "term.connecting": "Menyambungkan", + "term.disconnect": "Terputus", + "term.authed": "Diotentikasi", + "term.confirm": "Konfirmasi?", + "term.more": "Selebihnya", + "term.less": "Lebih Sedikit", + "term.showMore": "Tampilkan lebih banyak", + "term.showLess": "Tampilkan lebih sedikit", + "term.topSongs": "Lagu Teratas", + "term.latestReleases": "Rilis Terbaru", + "term.time.added": "Ditambahkan", + "term.time.released": "Dirilis", + "term.time.updated": "Diperbarui", + "term.time.hours": "jam", + "term.time.hour": "jam", + "term.time.minutes": "menit", + "term.time.minute": "menit", + "term.time.seconds": "detik", + "term.time.second": "detik", + "term.fullscreenView": "Mode Layar Penuh", + "term.defaultView": "Mode Default", + "term.audioSettings": "Pengaturan Audio", + "term.clearAll": "Bersihkan Semua", + "term.recentStations": "Stasiun Terbaru", + "term.language": "Bahasa", + "term.funLanguages": "Senang-senang", + "term.noLyrics": "Memuat... / Lirik tidak ditermukan./ Instrumental.", + "term.copyright": "Hak cipta", + "term.rightsReserved": "Hak cipta dilindungi Undang-undang.", + "term.sponsor": "Sponsori proyek ini", + "term.ciderTeam": "Cider Team", + "term.developer": "Pengembang", + "term.socialTeam": "Social Team", + "term.socials": "Sosial", + "term.contributors": "Kontributor", + "term.equalizer": "Equalizer", + "term.reset": "Atur Ulang", + "term.tracks": "lagu", // Assume x amount of tracks. e.g. 50 tracks + "term.videos": "Video", + "term.menu": "Menu", + "term.check": "Cek", + "term.aboutArtist": "Tentang {{artistName}}", // e.g. 'About Doja Cat' + "term.topResult": "Hasil Teratas", // Search Results + "term.sharedPlaylists": "Playlist yang dibagikan", // Search Results + "term.people": "Orang", // Search Results + "term.newpreset.name": "Nama Preset EQ Baru", // Equalizer Preset + "term.addedpreset": "Preset Ditambahkan", + "term.deletepreset.warn": "Yakin ingin menghapus preset ini?", + "term.deletedpreset": "Preset dihapus", + "term.musicVideos": "Video Musik", // Search page friendlyTypes + "term.stations": "Stasiun", + "term.curators": "Kurator", + "term.appleCurators": "Kurator Apple", + "term.radioShows": "Acara Radio", + "term.recordLabels": "Label Rekaman", + "term.videoExtras": "Bonus Video", + "term.top": "Atas", + + // Home + "home.title": "Beranda", + "home.recentlyPlayed": "Baru Dimainkan", + "home.recentlyAdded": "Baru Ditambahkan", + "home.artistsFeed": "Feed Artis Anda", + "home.artistsFeed.noArtist": "Ikuti beberapa artis terlebih dahulu dan rilisan terbaru mereka akan ada di sini", + "home.madeForYou": "Dibuat Untuk Kamu", + "home.friendsListeningTo": "Teman Sedang Mendengarkan", + "home.followedArtists": "Artis Diikuti", + + // Errors + "error.appleMusicSubRequired": "Apple Music memerlukan langganan.", + "error.connectionError": "Terjadi masalah saat menyambungkan ke Apple Music.", + "error.noResults": "Tidak ada hasil.", + "error.noResults.description": "Coba pencarian baru.", + + // Podcasts + "podcast.followOnCider": "Ikuti Di Cider", + "podcast.followedOnCider": "Mengikuti Di Cider", + "podcast.subscribeOnItunes": "Langganan Di iTunes", + "podcast.subscribedOnItunes": "Berlangganan Di iTunes", + "podcast.itunesStore": "iTunes Store", + "podcast.episodes": "Episode", + "podcast.playEpisode": "Mainkan Episode", + "podcast.website": "Website Podcast", + + // Actions + "action.addToLibrary": "Tambahkan ke Pustaka", + "action.addToLibrary.success": "Ditambahkan ke Pustaka", + "action.addToLibrary.error": "Terjadi Kesalahan Saat Menambahkan Pustaka", + "action.removeFromLibrary": "Hapus dari Pustaka", + "action.removeFromLibrary.success": "Dihapus dari Pustaka", + "action.addToQueue": "Tambahkan ke Antrian", + "action.addToQueue.success": "Ditambahkan ke Antrian", + "action.addToQueue.error": "Terjadi Kesalahan Saat Menambahkan ke Antrean", + "action.removeFromQueue": "Hapus dari Antrian", + "action.removeFromQueue.success": "Dihapus dari Antrian", + "action.removeFromQueue.error": "Terjadi Kesalahan Saat Menghapus Antrian", + "action.createPlaylist": "Buat Playlist Baru", + "action.addToPlaylist": "Tambahkan ke Playlist", + "action.removeFromPlaylist": "Hapus dari Playlist", + "action.addToFavorites": "Tambahkan ke Favorit", + "action.follow": "Ikuti", + "action.follow.success": "Diikuti", + "action.follow.error": "Kesalahan Dalam Mengikuti", + "action.unfollow": "Berhenti Mengikuti", + "action.unfollow.success": "Sudah Tidak Mengikuti", + "action.unfollow.error": "Terjadi Kesalahan Saat Berhenti Mengikuti", + "action.playNext": "Mainkan Selanjutnya", + "action.playLater": "Mainkan Nanti", + "action.startRadio": "Mulai Radio", + "action.goToArtist": "Lihat Halaman Artis", + "action.goToAlbum": "Lihat Halaman Album", + "action.moveToTop": "Pindah ke Atas", + "action.share": "Bagikan", + "action.rename": "Ubah Nama", + "action.love": "Suka", + "action.unlove": "Batal Suka", + "action.dislike": "Tidak Suka", + "action.undoDislike": "Batalkan Tidak Suka", + "action.showWebRemoteQR": "Remot Web", + "action.playTracksNext": "Mainkan ${app.selectedMediaItems.length} lagu selanjutnya", + "action.playTracksLater": "Mainkan ${app.selectedMediaItems.length} lagu nanti", + "action.removeTracks": "Hapus ${self.selectedItems.length} lagu dari antrian", + "action.import": "Impor", + "action.export": "Ekspor", + "action.showAlbum": "Tampilkan Album Sepenuhnya", + "action.tray.minimize": "Sembunyikan ke Tray", + "action.tray.quit": "Keluar", + "action.tray.show": "Tampilkan", + "action.update": "Perbarui", + "action.copy": "Salin", + "action.newpreset": "Preset Baru...", // Equalizer Preset + "action.deletepreset": "Hapus Preset", + + // Settings - General + "settings.header.general": "Umum", + "settings.header.general.description": "Sesuaikan pengaturan umum untuk Cider.", + "settings.option.general.language": "Bahasa", + + // Language optgroups + "settings.option.general.language.main": "Bahasa", + "settings.option.general.language.fun": "Bahasa Candaan", + "settings.option.general.language.unsorted": "Tidak disortir", + + // Update Cider + "settings.option.general.updateCider": "Perbarui Cider", // Button. Refer to term.check for the check button + "settings.option.general.updateCider.branch": "Branch Pembaruan Cider", // Dropdown + "settings.option.general.updateCider.branch.description": "Pilih branch untuk memperbarui Cider", + "settings.option.general.updateCider.branch.main": "Stable", + "settings.option.general.updateCider.branch.develop": "Development", + + // Settings - Audio + "settings.header.audio": "Audio", + "settings.header.audio.description": "Sesuaikan pengaturan audio untuk Cider.", + "settings.option.audio.quality": "Kualitas Audio", // Dropdown + "settings.header.audio.quality.hireslossless": "Hi-Res Lossless", + "settings.header.audio.quality.hireslossless.description": "sampai dari 24-bit/192 kHz", + "settings.header.audio.quality.lossless": "Lossless", + "settings.header.audio.quality.lossless.description": "sampai dari 24-bit/48 kHz", + "settings.header.audio.quality.high": "Tinggi", + "settings.header.audio.quality.high.description": "256 kbps", + "settings.header.audio.quality.standard": "Standar", + "settings.header.audio.quality.standard.description": "64 kbps", + "settings.option.audio.seamlessTransition": "Transisi Audio Mulus", // Toggle + "settings.option.audio.enableAdvancedFunctionality": "Aktifkan Fungsi Lanjutan", // Toggle + "settings.option.audio.enableAdvancedFunctionality.description": "Mengaktifkan fungsionalitas AudioContext memungkinkan fitur audio lanjutan seperti Normalisasi Audio, Equalizer dan Visualizer. Namun pada beberapa perangkat dapat menyebabkan tersendatnya audio.", + "settings.option.audio.enableAdvancedFunctionality.ciderPPE": "Cider Adrenaline Processor™️", // Toggle + "settings.option.audio.enableAdvancedFunctionality.ciderPPE.description": "Peningkatan Psikoakustik yang membuat semuanya terdengar lebih jelas dan lebih hidup | Dirancang oleh Maikiwi.", + "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength": "Kekuatan CAP", // Toggle + "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.description": "Mengubah kekuatan pemrosesan yang dilakukan pada audio. (Agresif dapat menghasilkan hasil yang tidak diinginkan)", + "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.standard": "Standar", + "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.aggressive": "Agresif", + "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "Normalisasi Audio", // Toggle + "settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "Menormalkan puncak volume untuk masing-masing lagu demi menciptakan pengalaman mendengarkan yang lebih seragam.", + "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "Spasialisasi Audio", // Toggle + "settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "Atur ruang audio dan buat audio lebih 3 dimensi (NB: Bukan Dolby Atmos)", + + // Settings - Visual + "settings.header.visual": "Visual", + "settings.header.visual.description": "Sesuaikan pengaturan visual untuk Cider.", + "settings.option.visual.windowBackgroundStyle": "Gaya Latar Belakang Jendela", // Toggle + "settings.header.visual.windowBackgroundStyle.none": "Tidak Ada", + "settings.header.visual.windowBackgroundStyle.artwork": "Artwork", + "settings.header.visual.windowBackgroundStyle.image": "Gambar", + "settings.option.visual.animatedArtwork": "Artwork Bergerak", // Dropdown + "settings.header.visual.animatedArtwork.always": "Selalu", + "settings.header.visual.animatedArtwork.limited": "Terbatas untuk halaman dan entri khusus", + "settings.header.visual.animatedArtwork.disable": "Matikan di semua tempat", + "settings.option.visual.animatedArtworkQuality": "Kualitas Artwork Bergerak", // Dropdown + "settings.header.visual.animatedArtworkQuality.low": "Rendah", + "settings.header.visual.animatedArtworkQuality.medium": "Medium", + "settings.header.visual.animatedArtworkQuality.high": "Tinggi", + "settings.header.visual.animatedArtworkQuality.veryHigh": "Sangat Tinggi", + "settings.header.visual.animatedArtworkQuality.extreme": "Paling Tinggi", + "settings.option.visual.animatedWindowBackground": "Jendela Latar Belakang Bergerak", // Toggle + "settings.option.visual.hardwareAcceleration": "Akselerasi Perangkat Keras (HW Acceleration)", // Dropdown + "settings.option.visual.hardwareAcceleration.description": "Membutuhkan dibuka ulang", + "settings.header.visual.hardwareAcceleration.default": "Default", + "settings.header.visual.hardwareAcceleration.webGPU": "WebGPU", + "settings.header.visual.theme": "Tema", + + // Settings - Visual - Theme name + "settings.option.visual.theme.default": "Cider", + "settings.option.visual.theme.dark": "Gelap", + + // Refer to term.disabled for the disabled option + "settings.option.visual.showPersonalInfo": "Tampilkan Info Pribadi", // Toggle + + // Settings - Lyrics + "settings.header.lyrics": "Lyrics", + "settings.header.lyrics.description": "Sesuaikan pengaturan lirik untuk Cider.", + "settings.option.lyrics.enableMusixmatch": "Aktifkan Lirik Musixmatch", // Toggle + "settings.option.lyrics.enableMusixmatchKaraoke": "Aktifkan Mode Karaoke (khusus Musixmatch)", // Toggle + "settings.option.lyrics.musixmatchPreferredLanguage": "Bahasa Terjemahan Musixmatch", // Dropdown + "settings.option.lyrics.enableYoutubeLyrics": "Aktifkan Lirik Youtube untuk Video Musik", // Toggle + + // Settings - Connectivity + "settings.header.connectivity": "Konektivitas", + "settings.header.connectivity.description": "Sesuaikan pengaturan konektivitas untuk Cider.", + "settings.option.connectivity.discordRPC": "Discord Rich Presence", // Dropdown + "settings.option.connectivity.playbackNotifications": "Pemberitahuan Pemutaran", // Toggle + // Refer to term.disabled for the disabled option + "settings.header.connectivity.discordRPC.cider": "Tampilkan sebagai 'Cider'", + "settings.header.connectivity.discordRPC.appleMusic": "Tampilkan sebagai 'Apple Music'", + "settings.option.connectivity.discordRPC.clearOnPause": "Sembunyikan Discord Rich Presence saat dijeda", // Toggle + "settings.option.connectivity.lastfmScrobble": "Last.fm Scrobbling", // Option to Connect + "settings.option.connectivity.lastfmScrobble.delay": "Delay Last.fm Scrobble (%)", + "settings.option.connectivity.lastfmScrobble.nowPlaying": "Aktifkan Last.fm Now Playing", + "settings.option.connectivity.lastfmScrobble.removeFeatured": "Hapus featuring artist dari judul lagu (Last.fm)", + "settings.option.connectivity.lastfmScrobble.filterLoop": "Filter lagu yang diulang (Last.fm)", + // Refer to term.connect for the connect button + + // Settings - Experimental + "settings.header.experimental": "Eksperimental", + "settings.header.experimental.description": "Sesuaikan pengaturan eksperimental untuk Cider.", + "settings.option.experimental.compactUI": "UI Kompak", // Toggle + "settings.option.experimental.close_button_hide": "Tombol Tutup Menyembunyikan Aplikasi", + "settings.option.experimental.copy_log": "Salin log ke clipboard", + "settings.option.experimental.inline_playlists": "Playlist dan Album Sebaris", + + // Refer to term.disabled & term.enabled + // Spatialization Menu + "spatial.notTurnedOn": "Spasialisasi Audio dinonaktifkan. Untuk menggunakan, aktifkan terlebih dahulu.", + "spatial.spatialProperties": "Spatial Properties", + "spatial.width": "Lebar", + "spatial.height": "Tinggi", + "spatial.depth": "Kedalaman", + "spatial.gain": "Gain", + "spatial.roomMaterials": "Bahan Ruangan", + "spatial.roomDimensions": "Dimensi Ruangan", + "spatial.roomPositions": "Posisi Ruangan", + "spatial.setDimensions": "Atur Dimensi", + "spatial.setPositions": "Atur Posisi", + "spatial.up": "Atas", + "spatial.front": "Depan", + "spatial.left": "Kiri", + "spatial.right": "Kanan", + "spatial.back": "Belakang", + "spatial.down": "Bawah", + "spatial.listener": "Pendegar", + "spatial.audioSource": "Sumber Audio", + + // Settings - Unfinished + "settings.header.unfinished": "Belum Diselesaikan", + + // Web Remote + "remote.web.title": "Remote Cider", + "remote.web.description": "Pindai kode QR untuk memasangkan ponsel Anda dengan Cider.", + + // About + "about.thanks": "Terima kasih yang sebesar-besarnya kepada Cider Collective Team dan semua kontributor kami." } \ No newline at end of file diff --git a/src/i18n/sk_SK.jsonc b/src/i18n/sk_SK.jsonc index bba5ed51..6d77106c 100644 --- a/src/i18n/sk_SK.jsonc +++ b/src/i18n/sk_SK.jsonc @@ -1,7 +1,7 @@ -{ // Base File +{ // i18n Info - "i18n.languageName": "Slovenčina (SK)", // name of language in native language + "i18n.languageName": "Slovenčina (SK)", // name of language in native language "i18n.languageNameEnglish": "Slovak (SK)", // name of language in English "i18n.category": "main", // main = real language, fun = fun community languages "i18n.authors": "@jurosic-JurajJanosik", // Authors, if you contribute to this file feel free to add your name seperated with a space @@ -19,6 +19,7 @@ "notification.updatingLibrarySongs": "Aktualizujem pesničky v knižnici...", "notification.updatingLibraryAlbums": "Aktualizujem albumy v knižnici...", "notification.updatingLibraryArtists": "Aktualizujem tvorcov v knižnici...", + // Terms "term.appleInc": "Apple Inc.", "term.appleMusic": "Apple Music", @@ -125,7 +126,6 @@ "term.menu": "Menu", "term.check": "Skontrolovať", "term.aboutArtist": "Viac o {{artistName}}", // e.g. 'About Doja Cat' - "term.updateCider": "Aktualizovať Cider", // Home "home.title": "Domov", @@ -136,13 +136,14 @@ "home.madeForYou": "Robené Pre Teba", "home.friendsListeningTo": "Kamaráti počúvajú", "home.followedArtists": "Sledovaný Tvorcovia", + // Errors "error.appleMusicSubRequired": "Apple Music potrebuje subscription.", "error.connectionError": "Pri pripojovaní ku Apple Music sa vyskytol problém", "error.noResults": "Žiadne výsledky", "error.noResults.description": "Skús nové vyhľádavanie", - //Podcasts + // Podcasts "podcast.followOnCider": "Sleduj na Cider", "podcast.followedOnCider": "Sledované na Cider", "podcast.subscribeOnItunes": "Odoberaj na iTunes", @@ -208,6 +209,9 @@ "settings.option.general.language.fun": "Zábanve Jazyky", "settings.option.general.language.unsorted": "Nepotriedené", + // Update Cider + "settings.option.general.updateCider": "Aktualizovať Cider", + // Settings - Audio "settings.header.audio": "Zvuk", "settings.header.audio.description": "Zmeniť nastavenia zvuku pre Cider.", @@ -228,6 +232,7 @@ "settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "Normalizuje silu zvuku v pesničkách pre hľadší počúvací zážitok", "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "Priestorový Zvuk", // Toggle "settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "Priestorový zvuk urobí zvuk 3-dimenzionálny (poznámka: Toto nie je Dolby Atmos)", + // Settings - Visual "settings.header.visual": "Visuálne", "settings.header.visual.description": "Zmenit Visuálne nastavenia pre Cider.", @@ -251,9 +256,11 @@ "settings.header.visual.hardwareAcceleration.default": "Predvoľba", "settings.header.visual.hardwareAcceleration.webGPU": "WebGPU", "settings.header.visual.theme": "Theme", + // Settings - Visual - Theme name "settings.option.visual.theme.default": "Cider", "settings.option.visual.theme.dark": "Dark", + // Refer to term.disabled for the disabled option "settings.option.visual.showPersonalInfo": "Zobraziť osobné informácie", // Toggle @@ -284,10 +291,12 @@ // Settings - Experimental "settings.header.experimental": "Experimentálne", "settings.header.experimental.description": "Zmeniť experimentálne nastavenia pre Cider.", + "settings.option.experimental.compactUI": "Compact UI", // Toggle + "settings.option.experimental.close_button_hide": "Zatvoriť by malo skriť aplikáciu", "settings.option.experimental.compactUI": "Kompaktný UI", // Toggle "settings.option.experimental.close_button_hide": "Zatvaranie aplikácie ju malo skriť", - // Refer to term.disabled & term.enabled + // Refer to term.disabled & term.enabled // Spatialization Menu "spatial.notTurnedOn": "Priestorový Zvuk je vypnutý. Prosím najprv ho zapnite.", "spatial.spatialProperties": "Špeciálne Nastavenia", @@ -318,4 +327,4 @@ // About "about.thanks": "Ďakujeme Cider Tímu, Komunite a Kontribútorom, bez vás by to nebolo možné." -} +} \ No newline at end of file diff --git a/src/renderer/views/components/miniplayer.ejs b/src/renderer/views/components/miniplayer.ejs index 8c268588..11ef521d 100644 --- a/src/renderer/views/components/miniplayer.ejs +++ b/src/renderer/views/components/miniplayer.ejs @@ -6,11 +6,15 @@ 📌

- - + + + + + + + +
From b7fb674d68c5b5185495e38d4b7231dcf07f9d7f Mon Sep 17 00:00:00 2001 From: Jozen Blue Martinez Date: Wed, 9 Feb 2022 05:40:57 +0800 Subject: [PATCH 026/337] Create WebNowPlaying plugin (#393) --- src/main/plugins/webNowPlaying.ts | 227 ++++++++++++++++++++++++++++++ 1 file changed, 227 insertions(+) create mode 100644 src/main/plugins/webNowPlaying.ts diff --git a/src/main/plugins/webNowPlaying.ts b/src/main/plugins/webNowPlaying.ts new file mode 100644 index 00000000..25673133 --- /dev/null +++ b/src/main/plugins/webNowPlaying.ts @@ -0,0 +1,227 @@ +import * as WebSocket from 'ws'; + +/** + * 0-pad a number. + * @param {Number} number + * @param {Number} length + * @returns String + */ +const pad = (number: number, length: number) => String(number).padStart(length, '0'); + +/** + * Convert seconds to a time string acceptable to Rainmeter + * https://github.com/tjhrulz/WebNowPlaying-BrowserExtension/blob/master/WebNowPlaying.js#L50-L59 + * @param {Number} timeInSeconds + * @returns String + */ +const convertTimeToString = (timeInSeconds: number) => { + const timeInMinutes = timeInSeconds / 60; + if (timeInMinutes < 60) { + return timeInMinutes + ":" + pad(timeInSeconds % 60, 2); + } + return timeInMinutes / 60 + ":" + pad(timeInMinutes % 60, 2) + ":" + pad(timeInSeconds % 60, 2); +} + +export default class WebNowPlaying { + /** + * Base Plugin Details (Eventually implemented into a GUI in settings) + */ + public name: string = 'WebNowPlaying'; + public description: string = 'Song info and playback control for the Rainmeter WebNowPlaying plugin.'; + public version: string = '1.0.0'; + public author: string = 'Zennn '; + + private _win: any; + private ws: any = null; + private wsapiConn: any = null; + private playerName: string = 'Cider'/* Apple Music */; + + constructor() { + console.debug(`[Plugin][${this.name}] Loading Complete.`); + } + + sendSongInfo(attributes: any) { + if (!this.ws || this.ws.readyState !== WebSocket.OPEN) return; + + const fields = ['STATE', 'TITLE', 'ARTIST', 'ALBUM', 'COVER', 'DURATION', 'POSITION', 'VOLUME', 'REPEAT', 'SHUFFLE']; + fields.forEach((field) => { + try { + let value: any = ''; + switch (field) { + case 'STATE': + value = attributes.status ? 1 : 2; + break; + case 'TITLE': + value = attributes.name; + break; + case 'ARTIST': + value = attributes.artistName; + break; + case 'ALBUM': + value = attributes.albumName; + break; + case 'COVER': + value = attributes.artwork.url.replace('{w}', attributes.artwork.width).replace('{h}', attributes.artwork.height); + break; + case 'DURATION': + value = convertTimeToString(attributes.durationInMillis / 1000); + break; + case 'POSITION': + value = convertTimeToString((attributes.durationInMillis - attributes.remainingTime) / 1000); + break; + case 'VOLUME': + value = attributes.volume * 100; + break; + case 'REPEAT': + value = attributes.repeatMode; + break; + case 'SHUFFLE': + value = attributes.shuffleMode; + break; + } + this.ws.send(`${field}:${value}`); + } catch (error) { + if (this.ws.readyState === WebSocket.OPEN) { + this.ws.send(`Error:Error updating ${field} for ${this.playerName}`); + this.ws.send(`ErrorD:${error}`); + } + } + }); + } + + fireEvent(evt: any) { + if (!evt.data) return; + let value = ''; + if (evt.data.split(/ (.+)/).length > 1) { + value = evt.data.split(/ (.+)/)[1]; + } + const eventName = evt.data.split(' ')[0].toLowerCase(); + + try { + switch (eventName) { + case 'playpause': + this._win.webContents.executeJavaScript('MusicKitInterop.playPause()').catch(console.error); + break; + case 'next': + this._win.webContents.executeJavaScript('MusicKitInterop.next()').catch(console.error); + break; + case 'previous': + this._win.webContents.executeJavaScript('MusicKitInterop.previous()').catch(console.error); + break; + case 'setposition': + this._win.webContents.executeJavaScript(`MusicKit.getInstance().seekToTime(${parseFloat(value)})`); + break; + case 'setvolume': + this._win.webContents.executeJavaScript(`MusicKit.getInstance().volume = ${parseFloat(value) / 100}`); + break; + case 'repeat': + this._win.webContents.executeJavaScript('wsapi.toggleRepeat()').catch(console.error); + break; + case 'shuffle': + this._win.webContents.executeJavaScript('wsapi.toggleShuffle()').catch(console.error); + break; + case 'togglethumbsup': + // not implemented + break; + case 'togglethumbsdown': + // not implemented + break; + case 'rating': + // not implemented + break; + } + } catch (error) { + console.debug(error); + if (this.ws.readyState === WebSocket.OPEN) { + this.ws.send(`Error:Error sending event to ${this.playerName}`); + this.ws.send(`ErrorD:${error}`); + } + } + } + + /** + * Runs on app ready + */ + onReady(win: any) { + this._win = win; + + // Connect to Rainmeter plugin and retry on disconnect. + const init = () => { + try { + this.ws = new WebSocket('ws://127.0.0.1:8974/'); + let retry: NodeJS.Timeout; + this.ws.onopen = (() => { + console.info('[WebNowPlaying] Connected to Rainmeter'); + this.ws.send(`PLAYER:${this.playerName}`); + }).bind(this); + + this.ws.onclose = () => { + clearTimeout(retry); + retry = setTimeout(init, 2000); + }; + + this.ws.onerror = () => { + clearTimeout(retry); + this.ws.close(); + }; + + this.ws.onmessage = this.fireEvent?.bind(this); + } catch (error) { + console.error(error); + } + }; + + init(); + + // Connect to wsapi. Only used to update progress. + try { + this.wsapiConn = new WebSocket('ws://127.0.0.1:26369/'); + + this.wsapiConn.onopen = () => { + console.info('[WebNowPlaying] Connected to wsapi'); + }; + + this.wsapiConn.onmessage = (evt: { data: string; }) => { + const response = JSON.parse(evt.data); + if (response.type === 'playbackStateUpdate') { + this.sendSongInfo(response.data); + } + }; + } catch (error) { + console.error(error); + } + + console.debug(`[Plugin][${this.name}] Ready.`); + } + + /** + * Runs on app stop + */ + onBeforeQuit() { + if (this.ws) { + this.ws.send('STATE:0'); + this.ws.onclose = null; // disable onclose handler first to stop it from retrying + this.ws.close(); + } + if (this.wsapiConn) { + this.wsapiConn.close(); + } + console.debug(`[Plugin][${this.name}] Stopped.`); + } + + /** + * Runs on playback State Change + * @param attributes Music Attributes (attributes.status = current state) + */ + onPlaybackStateDidChange(attributes: any) { + this.sendSongInfo(attributes); + } + + /** + * Runs on song change + * @param attributes Music Attributes + */ + onNowPlayingItemDidChange(attributes: any) { + this.sendSongInfo(attributes); + } +} From 43bf12d2847ab3ce1a0e463f8d37aa7b26b66bf8 Mon Sep 17 00:00:00 2001 From: Amaru8 <52407090+Amaru8@users.noreply.github.com> Date: Wed, 9 Feb 2022 02:17:02 +0100 Subject: [PATCH 027/337] Translation update (#395) * Update Hungarian (hu_HU) language file * Temporary fix for Hindi language i18n info --- src/i18n/hi_IN.jsonc | 4 ++-- src/i18n/hu_HU.jsonc | 18 +++++++++++------- 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/src/i18n/hi_IN.jsonc b/src/i18n/hi_IN.jsonc index ad96e8f3..e1127d2c 100644 --- a/src/i18n/hi_IN.jsonc +++ b/src/i18n/hi_IN.jsonc @@ -1,8 +1,8 @@ { // i18n Info - "i18n.languageName": "English (US)", // name of language in native language - "i18n.languageNameEnglish": "English (US)", // name of language in English + "i18n.languageName": "हिन्दी", // name of language in native language + "i18n.languageNameEnglish": "Hindi", // name of language in English "i18n.category": "main", // main = real language, fun = fun community languages "i18n.authors": "@maikirakiwi @vringster", // Authors, if you contribute to this file feel free to add your name seperated with a space diff --git a/src/i18n/hu_HU.jsonc b/src/i18n/hu_HU.jsonc index 28882427..382679d7 100644 --- a/src/i18n/hu_HU.jsonc +++ b/src/i18n/hu_HU.jsonc @@ -106,7 +106,7 @@ "term.time.second": "másodperc", "term.fullscreenView": "Teljes képernyős mód", "term.defaultView": "Alapértelmezett nézet", - "term.spacializedAudioSetting": "Térbeli hang", + "term.audioSettings": "Hangbeállítások", "term.clearAll": "Összes törlése", "term.recentStations": "Nemrég játszott", "term.language": "Nyelv", @@ -131,9 +131,9 @@ "term.sharedPlaylists": "Megosztott lejátszási listák", // Search Results "term.people": "Profilok", // Search Results "term.newpreset.name": "New EQ Preset Name", // Equalizer Preset - "term.addedpreset": "Preset hozzáadva", - "term.deletepreset.warn": "Are you sure you want to delete this preset?", - "term.deletedpreset": "Preset törölve", + "term.addedpreset": "Előbeállítás hozzáadva", + "term.deletepreset.warn": "Biztos törölni szeretnéd ezt az előbeállítást?", + "term.deletedpreset": "Előbeállítás törölve", "term.musicVideos": "Videóklipek", // Search page friendlyTypes "term.stations": "Állomások", "term.curators": "Curators", @@ -229,7 +229,11 @@ "settings.option.general.language.unsorted": "Azonosítatlan", // Update Cider - "settings.option.general.updateCider": "A Cider frissítése", // Button + "settings.option.general.updateCider": "Cider frissítése", // Button. Refer to term.check for the check button + "settings.option.general.updateCider.branch": "Verzió kiválasztása", // Dropdown + "settings.option.general.updateCider.branch.description": "Válaszd ki a Cider melyik verziójára szeretnél frissíteni", + "settings.option.general.updateCider.branch.main": "Normál", + "settings.option.general.updateCider.branch.develop": "Fejlesztői", // Settings - Audio "settings.header.audio": "Hang", @@ -260,7 +264,7 @@ // Settings - Visual "settings.header.visual": "Vizuális", "settings.header.visual.description": "A Cider vizuális beállításainak módosítása.", - "settings.option.visual.windowBackgroundStyle": "Ablak háttér stílusa", // Toggle + "settings.option.visual.windowBackgroundStyle": "Ablakháttér stílusa", // Toggle "settings.header.visual.windowBackgroundStyle.none": "Sehol", "settings.header.visual.windowBackgroundStyle.artwork": "Borító", "settings.header.visual.windowBackgroundStyle.image": "Kép", @@ -315,7 +319,7 @@ // Settings - Experimental "settings.header.experimental": "Kísérleti", "settings.header.experimental.description": "A Cider kísérleti beállításainak módosítása.", - "settings.option.experimental.compactUI": "Kompakt UI", // Toggle + "settings.option.experimental.compactUI": "Kompakt felület", // Toggle "settings.option.experimental.close_button_hide": "A bezárás gomb rejtse el az alkalmazást", "settings.option.experimental.copy_log": "Napló másolása a vágólapra", "settings.option.experimental.inline_playlists": "Inline Playlists and Albums", From 988b10a13f11b100dc2d15a728c449b2b21d18c8 Mon Sep 17 00:00:00 2001 From: Jozen Blue Martinez Date: Wed, 9 Feb 2022 09:19:42 +0800 Subject: [PATCH 028/337] Various WebNowPlaying plugin updates (#394) * Create WebNowPlaying plugin * Only run WebNowPlaying plugin on win32 * [WebNowPlaying] Fix time formatting * [WebNowPlaying] Minor code cleanup Co-authored-by: Quacksire <19170969+quacksire@users.noreply.github.com> --- src/main/plugins/webNowPlaying.ts | 35 ++++++++++++++++++++++--------- 1 file changed, 25 insertions(+), 10 deletions(-) diff --git a/src/main/plugins/webNowPlaying.ts b/src/main/plugins/webNowPlaying.ts index 25673133..2787e4c1 100644 --- a/src/main/plugins/webNowPlaying.ts +++ b/src/main/plugins/webNowPlaying.ts @@ -14,12 +14,12 @@ const pad = (number: number, length: number) => String(number).padStart(length, * @param {Number} timeInSeconds * @returns String */ -const convertTimeToString = (timeInSeconds: number) => { - const timeInMinutes = timeInSeconds / 60; + const convertTimeToString = (timeInSeconds: number) => { + const timeInMinutes = Math.floor(timeInSeconds / 60); if (timeInMinutes < 60) { - return timeInMinutes + ":" + pad(timeInSeconds % 60, 2); + return timeInMinutes + ":" + pad(Math.floor(timeInSeconds % 60), 2); } - return timeInMinutes / 60 + ":" + pad(timeInMinutes % 60, 2) + ":" + pad(timeInSeconds % 60, 2); + return Math.floor(timeInMinutes / 60) + ":" + pad(Math.floor(timeInMinutes % 60), 2) + ":" + pad(Math.floor(timeInSeconds % 60), 2); } export default class WebNowPlaying { @@ -40,7 +40,20 @@ export default class WebNowPlaying { console.debug(`[Plugin][${this.name}] Loading Complete.`); } - sendSongInfo(attributes: any) { + /** + * Blocks non-windows systems from running this plugin + * @private + * @decorator + */ + private static windowsOnly(_target: any, _propertyKey: string, descriptor: PropertyDescriptor) { + if (process.platform !== 'win32') { + descriptor.value = function () { + return + } + } + } + + private sendSongInfo(attributes: any) { if (!this.ws || this.ws.readyState !== WebSocket.OPEN) return; const fields = ['STATE', 'TITLE', 'ARTIST', 'ALBUM', 'COVER', 'DURATION', 'POSITION', 'VOLUME', 'REPEAT', 'SHUFFLE']; @@ -88,8 +101,7 @@ export default class WebNowPlaying { } }); } - - fireEvent(evt: any) { + private fireEvent(evt: any) { if (!evt.data) return; let value = ''; if (evt.data.split(/ (.+)/).length > 1) { @@ -142,7 +154,8 @@ export default class WebNowPlaying { /** * Runs on app ready */ - onReady(win: any) { + @WebNowPlaying.windowsOnly + public onReady(win: any) { this._win = win; // Connect to Rainmeter plugin and retry on disconnect. @@ -197,7 +210,8 @@ export default class WebNowPlaying { /** * Runs on app stop */ - onBeforeQuit() { + @WebNowPlaying.windowsOnly + public onBeforeQuit() { if (this.ws) { this.ws.send('STATE:0'); this.ws.onclose = null; // disable onclose handler first to stop it from retrying @@ -221,7 +235,8 @@ export default class WebNowPlaying { * Runs on song change * @param attributes Music Attributes */ - onNowPlayingItemDidChange(attributes: any) { + @WebNowPlaying.windowsOnly + public onNowPlayingItemDidChange(attributes: any) { this.sendSongInfo(attributes); } } From f30bc3215bdbb5a6745bf1fe02697420ddeae661 Mon Sep 17 00:00:00 2001 From: Brandon <52553007+crypticplank@users.noreply.github.com> Date: Tue, 8 Feb 2022 20:26:31 -0500 Subject: [PATCH 029/337] Switch to v1 V1 adds Websockets iCloud artwork api better json responses --- src/renderer/index.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/renderer/index.js b/src/renderer/index.js index 4ddf7905..1caa41fc 100644 --- a/src/renderer/index.js +++ b/src/renderer/index.js @@ -3692,7 +3692,7 @@ document.addEventListener('musickitloaded', function () { function initMusicKit() { let parsedJson = JSON.parse(this.responseText) MusicKit.configure({ - developerToken: parsedJson.Key, + developerToken: parsedJson.token, app: { name: 'Apple Music', build: '1978.4.1', @@ -3716,7 +3716,7 @@ document.addEventListener('musickitloaded', function () { fallbackinitMusicKit() } }; - request.open("GET", "https://api.cider.sh/"); + request.open("GET", "https://api.cider.sh/v1/"); request.send(); // check for widevine failure and reconfigure the instance. From 479e2024baaa848babf5da4fb203731577046b4f Mon Sep 17 00:00:00 2001 From: vapormusic Date: Wed, 9 Feb 2022 10:25:10 +0700 Subject: [PATCH 030/337] fix this --- .gitignore | 1 + resources/afterPack.js | 5 ++++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index acc6dfb9..a7130433 100644 --- a/.gitignore +++ b/.gitignore @@ -318,3 +318,4 @@ keys.sh package-lock.json yarn.lock +resources/b64.txt diff --git a/resources/afterPack.js b/resources/afterPack.js index c70017c1..f37d1c48 100644 --- a/resources/afterPack.js +++ b/resources/afterPack.js @@ -4,7 +4,8 @@ exports.default = function(context) { if (process.platform !== 'darwin') return - + + fs.unlinkSync(context.appOutDir + '/Cider.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/Electron Framework.sig') console.log('Castlabs-evs update start') execSync('python3 -m pip install --upgrade castlabs-evs') console.log('Castlabs-evs update complete') @@ -12,6 +13,8 @@ exports.default = function(context) { console.log('VMP signing start') + if (fs.existsSync('dist/mac-universal')) + execSync('python3 -m castlabs_evs.vmp -n sign-pkg dist/mac-universal',{stdio: 'inherit'}) if (fs.existsSync('dist/mac')) execSync('python3 -m castlabs_evs.vmp -n sign-pkg dist/mac',{stdio: 'inherit'}) if (fs.existsSync('dist/mac-arm64')) From 60e4bfbd0eca3ec3931bf8e43b6cc835712c4007 Mon Sep 17 00:00:00 2001 From: Maikiwi Date: Tue, 8 Feb 2022 19:53:28 -0800 Subject: [PATCH 031/337] Update ja_JP.jsonc --- src/i18n/ja_JP.jsonc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/i18n/ja_JP.jsonc b/src/i18n/ja_JP.jsonc index 9729be9b..c13bc722 100644 --- a/src/i18n/ja_JP.jsonc +++ b/src/i18n/ja_JP.jsonc @@ -218,9 +218,9 @@ "settings.option.audio.seamlessTransition": "曲間なしで再生", // Toggle "settings.option.audio.enableAdvancedFunctionality": "先進的な機能", // Toggle "settings.option.audio.enableAdvancedFunctionality.description": "AudioContext 機能を有効にすると、オーディオノーマライズ、空間オーディオ、イコライザーなどの機能を使用できますが、音が途切れるかもしれません。", // Toggle - "settings.option.audio.enableAdvancedFunctionality.ciderPPE": "Cider AEP™️", // Toggle + "settings.option.audio.enableAdvancedFunctionality.ciderPPE": "Cider Adrenaline Processor™️", // Toggle "settings.option.audio.enableAdvancedFunctionality.ciderPPE.description": "圧縮音源を高解像度に処理することによって、ロスレス相当の音質に向上させます。", // Toggle - "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength": "AEPの強さ", // Toggle + "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength": "CAPの強さ", // Toggle "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.description": "Changes the strength of the processing done to the audio. (Aggressive may yield undesirable results)", "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.standard": "標準", "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.aggressive": "高", From 00c52712440d4216f5b375b7c586c1582ca7cafb Mon Sep 17 00:00:00 2001 From: Maikiwi Date: Tue, 8 Feb 2022 20:01:43 -0800 Subject: [PATCH 032/337] alignmnt of preset butt --- src/renderer/views/components/equalizer.ejs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/renderer/views/components/equalizer.ejs b/src/renderer/views/components/equalizer.ejs index af6b4c85..a999e073 100644 --- a/src/renderer/views/components/equalizer.ejs +++ b/src/renderer/views/components/equalizer.ejs @@ -5,7 +5,7 @@
- From ffec528b9defe5fc16f0ca2421840837925585f2 Mon Sep 17 00:00:00 2001 From: vapormusic Date: Wed, 9 Feb 2022 11:40:45 +0700 Subject: [PATCH 033/337] universal attempt --- resources/afterPack.js | 9 +- resources/macPackager.js | 399 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 406 insertions(+), 2 deletions(-) create mode 100644 resources/macPackager.js diff --git a/resources/afterPack.js b/resources/afterPack.js index f37d1c48..55dcbc91 100644 --- a/resources/afterPack.js +++ b/resources/afterPack.js @@ -5,12 +5,17 @@ exports.default = function(context) { if (process.platform !== 'darwin') return - fs.unlinkSync(context.appOutDir + '/Cider.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/Electron Framework.sig') + if (fs.existsSync('dist/mac-universal--x64/Cider.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/Electron Framework.sig')) + fs.unlinkSync('dist/mac-universal--x64/Cider.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/Electron Framework.sig') + if (fs.existsSync('dist/mac-universal--arm64/Cider.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/Electron Framework.sig')) + fs.unlinkSync('dist/mac-universal--arm64/Cider.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/Electron Framework.sig') console.log('Castlabs-evs update start') execSync('python3 -m pip install --upgrade castlabs-evs') console.log('Castlabs-evs update complete') - + // xcode 13 + if (fs.existsSync('dist/mac-universal--x64') && fs.existsSync('dist/mac-universal--arm64')) + execSync("cp 'dist/mac-universal--x64/Cider.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/MainMenu.nib/keyedobjects-101300.nib' 'dist/mac-universal--arm64/Cider.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Resources/MainMenu.nib/keyedobjects-101300.nib'",{stdio: 'inherit'}) console.log('VMP signing start') if (fs.existsSync('dist/mac-universal')) diff --git a/resources/macPackager.js b/resources/macPackager.js new file mode 100644 index 00000000..24d56d81 --- /dev/null +++ b/resources/macPackager.js @@ -0,0 +1,399 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const bluebird_lst_1 = require("bluebird-lst"); +const builder_util_1 = require("builder-util"); +const electron_osx_sign_1 = require("electron-osx-sign"); +const promises_1 = require("fs/promises"); +const lazy_val_1 = require("lazy-val"); +const path = require("path"); +const fs_1 = require("builder-util/out/fs"); +const promise_1 = require("builder-util/out/promise"); +const appInfo_1 = require("./appInfo"); +const macCodeSign_1 = require("./codeSign/macCodeSign"); +const core_1 = require("./core"); +const platformPackager_1 = require("./platformPackager"); +const ArchiveTarget_1 = require("./targets/ArchiveTarget"); +const pkg_1 = require("./targets/pkg"); +const targetFactory_1 = require("./targets/targetFactory"); +const macosVersion_1 = require("./util/macosVersion"); +const pathManager_1 = require("./util/pathManager"); +const fs = require("fs/promises"); +class MacPackager extends platformPackager_1.PlatformPackager { + constructor(info) { + super(info, core_1.Platform.MAC); + this.codeSigningInfo = new lazy_val_1.Lazy(() => { + const cscLink = this.getCscLink(); + if (cscLink == null || process.platform !== "darwin") { + return Promise.resolve({ keychainFile: process.env.CSC_KEYCHAIN || null }); + } + return macCodeSign_1.createKeychain({ + tmpDir: this.info.tempDirManager, + cscLink, + cscKeyPassword: this.getCscPassword(), + cscILink: platformPackager_1.chooseNotNull(this.platformSpecificBuildOptions.cscInstallerLink, process.env.CSC_INSTALLER_LINK), + cscIKeyPassword: platformPackager_1.chooseNotNull(this.platformSpecificBuildOptions.cscInstallerKeyPassword, process.env.CSC_INSTALLER_KEY_PASSWORD), + currentDir: this.projectDir, + }).then(result => { + const keychainFile = result.keychainFile; + if (keychainFile != null) { + this.info.disposeOnBuildFinish(() => macCodeSign_1.removeKeychain(keychainFile)); + } + return result; + }); + }); + this._iconPath = new lazy_val_1.Lazy(() => this.getOrConvertIcon("icns")); + } + get defaultTarget() { + return this.info.framework.macOsDefaultTargets; + } + // eslint-disable-next-line @typescript-eslint/no-unused-vars + prepareAppInfo(appInfo) { + return new appInfo_1.AppInfo(this.info, this.platformSpecificBuildOptions.bundleVersion, this.platformSpecificBuildOptions); + } + async getIconPath() { + return this._iconPath.value; + } + createTargets(targets, mapper) { + for (const name of targets) { + switch (name) { + case core_1.DIR_TARGET: + break; + case "dmg": { + // eslint-disable-next-line @typescript-eslint/no-var-requires + const { DmgTarget } = require("dmg-builder"); + mapper(name, outDir => new DmgTarget(this, outDir)); + break; + } + case "zip": + // https://github.com/electron-userland/electron-builder/issues/2313 + mapper(name, outDir => new ArchiveTarget_1.ArchiveTarget(name, outDir, this, true)); + break; + case "pkg": + mapper(name, outDir => new pkg_1.PkgTarget(this, outDir)); + break; + default: + mapper(name, outDir => (name === "mas" || name === "mas-dev" ? new targetFactory_1.NoOpTarget(name) : targetFactory_1.createCommonTarget(name, outDir, this))); + break; + } + } + } + async doPack(outDir, appOutDir, platformName, arch, platformSpecificBuildOptions, targets) { + switch (arch) { + default: { + return super.doPack(outDir, appOutDir, platformName, arch, platformSpecificBuildOptions, targets); + } + case builder_util_1.Arch.universal: { + const x64Arch = builder_util_1.Arch.x64; + const x64AppOutDir = appOutDir + "--" + builder_util_1.Arch[x64Arch]; + await super.doPack(outDir, x64AppOutDir, platformName, x64Arch, platformSpecificBuildOptions, targets, false, true); + const arm64Arch = builder_util_1.Arch.arm64; + const arm64AppOutPath = appOutDir + "--" + builder_util_1.Arch[arm64Arch]; + await super.doPack(outDir, arm64AppOutPath, platformName, arm64Arch, platformSpecificBuildOptions, targets, false, true); + const framework = this.info.framework; + builder_util_1.log.info({ + platform: platformName, + arch: builder_util_1.Arch[arch], + [`${framework.name}`]: framework.version, + appOutDir: builder_util_1.log.filePath(appOutDir), + }, `packaging`); + const appFile = `${this.appInfo.productFilename}.app`; + const { makeUniversalApp } = require("@electron/universal"); + await makeUniversalApp({ + x64AppPath: path.join(x64AppOutDir, appFile), + arm64AppPath: path.join(arm64AppOutPath, appFile), + outAppPath: path.join(appOutDir, appFile), + force: true, + }); + await fs.rm(x64AppOutDir, { recursive: true, force: true }); + await fs.rm(arm64AppOutPath, { recursive: true, force: true }); + const packContext = { + appOutDir, + outDir, + arch, + targets, + packager: this, + electronPlatformName: platformName, + } + await this.info.afterPack(packContext) + if (framework.afterPack != null) { + await framework.afterPack(packContext) + } + await this.doSignAfterPack(outDir, appOutDir, platformName, arch, platformSpecificBuildOptions, targets); + break; + } + } + } + async pack(outDir, arch, targets, taskManager) { + let nonMasPromise = null; + const hasMas = targets.length !== 0 && targets.some(it => it.name === "mas" || it.name === "mas-dev"); + const prepackaged = this.packagerOptions.prepackaged; + if (!hasMas || targets.length > 1) { + const appPath = prepackaged == null ? path.join(this.computeAppOutDir(outDir, arch), `${this.appInfo.productFilename}.app`) : prepackaged; + nonMasPromise = (prepackaged + ? Promise.resolve() + : this.doPack(outDir, path.dirname(appPath), this.platform.nodeName, arch, this.platformSpecificBuildOptions, targets)).then(() => this.packageInDistributableFormat(appPath, arch, targets, taskManager)); + } + for (const target of targets) { + const targetName = target.name; + if (!(targetName === "mas" || targetName === "mas-dev")) { + continue; + } + const masBuildOptions = builder_util_1.deepAssign({}, this.platformSpecificBuildOptions, this.config.mas); + if (targetName === "mas-dev") { + builder_util_1.deepAssign(masBuildOptions, this.config.masDev, { + type: "development", + }); + } + const targetOutDir = path.join(outDir, `${targetName}${builder_util_1.getArchSuffix(arch)}`); + if (prepackaged == null) { + await this.doPack(outDir, targetOutDir, "mas", arch, masBuildOptions, [target]); + await this.sign(path.join(targetOutDir, `${this.appInfo.productFilename}.app`), targetOutDir, masBuildOptions, arch); + } + else { + await this.sign(prepackaged, targetOutDir, masBuildOptions, arch); + } + } + if (nonMasPromise != null) { + await nonMasPromise; + } + } + async sign(appPath, outDir, masOptions, arch) { + if (!macCodeSign_1.isSignAllowed()) { + return; + } + const isMas = masOptions != null; + const options = masOptions == null ? this.platformSpecificBuildOptions : masOptions; + const qualifier = options.identity; + if (!isMas && qualifier === null) { + if (this.forceCodeSigning) { + throw new builder_util_1.InvalidConfigurationError("identity explicitly is set to null, but forceCodeSigning is set to true"); + } + builder_util_1.log.info({ reason: "identity explicitly is set to null" }, "skipped macOS code signing"); + return; + } + const keychainFile = (await this.codeSigningInfo.value).keychainFile; + const explicitType = options.type; + const type = explicitType || "distribution"; + const isDevelopment = type === "development"; + const certificateTypes = getCertificateTypes(isMas, isDevelopment); + let identity = null; + for (const certificateType of certificateTypes) { + identity = await macCodeSign_1.findIdentity(certificateType, qualifier, keychainFile); + if (identity != null) { + break; + } + } + if (identity == null) { + if (!isMas && !isDevelopment && explicitType !== "distribution") { + identity = await macCodeSign_1.findIdentity("Mac Developer", qualifier, keychainFile); + if (identity != null) { + builder_util_1.log.warn("Mac Developer is used to sign app — it is only for development and testing, not for production"); + } + } + if (identity == null) { + await macCodeSign_1.reportError(isMas, certificateTypes, qualifier, keychainFile, this.forceCodeSigning); + return; + } + } + if (!macosVersion_1.isMacOsHighSierra()) { + throw new builder_util_1.InvalidConfigurationError("macOS High Sierra 10.13.6 is required to sign"); + } + let filter = options.signIgnore; + if (Array.isArray(filter)) { + if (filter.length == 0) { + filter = null; + } + } + else if (filter != null) { + filter = filter.length === 0 ? null : [filter]; + } + const filterRe = filter == null ? null : filter.map(it => new RegExp(it)); + let binaries = options.binaries || undefined; + if (binaries) { + // Accept absolute paths for external binaries, else resolve relative paths from the artifact's app Contents path. + const userDefinedBinaries = await Promise.all(binaries.map(async (destination) => { + if (await fs_1.statOrNull(destination)) { + return destination; + } + return path.resolve(appPath, destination); + })); + // Insert at front to prioritize signing. We still sort by depth next + binaries = userDefinedBinaries.concat(binaries); + builder_util_1.log.info("Signing addtional user-defined binaries: " + JSON.stringify(userDefinedBinaries, null, 1)); + } + const signOptions = { + "identity-validation": false, + // https://github.com/electron-userland/electron-builder/issues/1699 + // kext are signed by the chipset manufacturers. You need a special certificate (only available on request) from Apple to be able to sign kext. + ignore: (file) => { + if (filterRe != null) { + for (const regExp of filterRe) { + if (regExp.test(file)) { + return true; + } + } + } + return (file.endsWith(".kext") || + file.startsWith("/Contents/PlugIns", appPath.length) || + file.includes("/node_modules/puppeteer/.local-chromium") || + file.includes("/node_modules/playwright-firefox/.local-browsers") || + file.includes("/node_modules/playwright/.local-browsers")); + /* Those are browser automating modules, browser (chromium, nightly) cannot be signed + https://github.com/electron-userland/electron-builder/issues/2010 + https://github.com/electron-userland/electron-builder/issues/5383 + */ + }, + identity: identity, + type, + platform: isMas ? "mas" : "darwin", + version: this.config.electronVersion, + app: appPath, + keychain: keychainFile || undefined, + binaries, + timestamp: isMas ? masOptions === null || masOptions === void 0 ? void 0 : masOptions.timestamp : options.timestamp, + requirements: isMas || this.platformSpecificBuildOptions.requirements == null ? undefined : await this.getResource(this.platformSpecificBuildOptions.requirements), + // https://github.com/electron-userland/electron-osx-sign/issues/196 + // will fail on 10.14.5+ because a signed but unnotarized app is also rejected. + "gatekeeper-assess": options.gatekeeperAssess === true, + // https://github.com/electron-userland/electron-builder/issues/1480 + "strict-verify": options.strictVerify, + hardenedRuntime: isMas ? masOptions && masOptions.hardenedRuntime === true : options.hardenedRuntime !== false, + }; + await this.adjustSignOptions(signOptions, masOptions); + builder_util_1.log.info({ + file: builder_util_1.log.filePath(appPath), + identityName: identity.name, + identityHash: identity.hash, + provisioningProfile: signOptions["provisioning-profile"] || "none", + }, "signing"); + await this.doSign(signOptions); + // https://github.com/electron-userland/electron-builder/issues/1196#issuecomment-312310209 + if (masOptions != null && !isDevelopment) { + const certType = isDevelopment ? "Mac Developer" : "3rd Party Mac Developer Installer"; + const masInstallerIdentity = await macCodeSign_1.findIdentity(certType, masOptions.identity, keychainFile); + if (masInstallerIdentity == null) { + throw new builder_util_1.InvalidConfigurationError(`Cannot find valid "${certType}" identity to sign MAS installer, please see https://electron.build/code-signing`); + } + // mas uploaded to AppStore, so, use "-" instead of space for name + const artifactName = this.expandArtifactNamePattern(masOptions, "pkg", arch); + const artifactPath = path.join(outDir, artifactName); + await this.doFlat(appPath, artifactPath, masInstallerIdentity, keychainFile); + await this.dispatchArtifactCreated(artifactPath, null, builder_util_1.Arch.x64, this.computeSafeArtifactName(artifactName, "pkg", arch, true, this.platformSpecificBuildOptions.defaultArch)); + } + } + async adjustSignOptions(signOptions, masOptions) { + const resourceList = await this.resourceList; + const customSignOptions = masOptions || this.platformSpecificBuildOptions; + const entitlementsSuffix = masOptions == null ? "mac" : "mas"; + let entitlements = customSignOptions.entitlements; + if (entitlements == null) { + const p = `entitlements.${entitlementsSuffix}.plist`; + if (resourceList.includes(p)) { + entitlements = path.join(this.info.buildResourcesDir, p); + } + else { + entitlements = pathManager_1.getTemplatePath("entitlements.mac.plist"); + } + } + signOptions.entitlements = entitlements; + let entitlementsInherit = customSignOptions.entitlementsInherit; + if (entitlementsInherit == null) { + const p = `entitlements.${entitlementsSuffix}.inherit.plist`; + if (resourceList.includes(p)) { + entitlementsInherit = path.join(this.info.buildResourcesDir, p); + } + else { + entitlementsInherit = pathManager_1.getTemplatePath("entitlements.mac.plist"); + } + } + signOptions["entitlements-inherit"] = entitlementsInherit; + if (customSignOptions.provisioningProfile != null) { + signOptions["provisioning-profile"] = customSignOptions.provisioningProfile; + } + signOptions["entitlements-loginhelper"] = customSignOptions.entitlementsLoginHelper; + } + //noinspection JSMethodCanBeStatic + async doSign(opts) { + return electron_osx_sign_1.signAsync(opts); + } + //noinspection JSMethodCanBeStatic + async doFlat(appPath, outFile, identity, keychain) { + // productbuild doesn't created directory for out file + await promises_1.mkdir(path.dirname(outFile), { recursive: true }); + const args = pkg_1.prepareProductBuildArgs(identity, keychain); + args.push("--component", appPath, "/Applications"); + args.push(outFile); + return await builder_util_1.exec("productbuild", args); + } + getElectronSrcDir(dist) { + return path.resolve(this.projectDir, dist, this.info.framework.distMacOsAppName); + } + getElectronDestinationDir(appOutDir) { + return path.join(appOutDir, this.info.framework.distMacOsAppName); + } + // todo fileAssociations + async applyCommonInfo(appPlist, contentsPath) { + const appInfo = this.appInfo; + const appFilename = appInfo.productFilename; + // https://github.com/electron-userland/electron-builder/issues/1278 + appPlist.CFBundleExecutable = appFilename.endsWith(" Helper") ? appFilename.substring(0, appFilename.length - " Helper".length) : appFilename; + const icon = await this.getIconPath(); + if (icon != null) { + const oldIcon = appPlist.CFBundleIconFile; + const resourcesPath = path.join(contentsPath, "Resources"); + if (oldIcon != null) { + await fs_1.unlinkIfExists(path.join(resourcesPath, oldIcon)); + } + const iconFileName = "icon.icns"; + appPlist.CFBundleIconFile = iconFileName; + await fs_1.copyFile(icon, path.join(resourcesPath, iconFileName)); + } + appPlist.CFBundleName = appInfo.productName; + appPlist.CFBundleDisplayName = appInfo.productName; + const minimumSystemVersion = this.platformSpecificBuildOptions.minimumSystemVersion; + if (minimumSystemVersion != null) { + appPlist.LSMinimumSystemVersion = minimumSystemVersion; + } + appPlist.CFBundleIdentifier = appInfo.macBundleIdentifier; + appPlist.CFBundleShortVersionString = this.platformSpecificBuildOptions.bundleShortVersion || appInfo.version; + appPlist.CFBundleVersion = appInfo.buildVersion; + builder_util_1.use(this.platformSpecificBuildOptions.category || this.config.category, it => (appPlist.LSApplicationCategoryType = it)); + appPlist.NSHumanReadableCopyright = appInfo.copyright; + if (this.platformSpecificBuildOptions.darkModeSupport) { + appPlist.NSRequiresAquaSystemAppearance = false; + } + const extendInfo = this.platformSpecificBuildOptions.extendInfo; + if (extendInfo != null) { + Object.assign(appPlist, extendInfo); + } + } + async signApp(packContext, isAsar) { + const appFileName = `${this.appInfo.productFilename}.app`; + await bluebird_lst_1.default.map(promises_1.readdir(packContext.appOutDir), (file) => { + if (file === appFileName) { + return this.sign(path.join(packContext.appOutDir, file), null, null, null); + } + return null; + }); + if (!isAsar) { + return; + } + const outResourcesDir = path.join(packContext.appOutDir, "resources", "app.asar.unpacked"); + await bluebird_lst_1.default.map(promise_1.orIfFileNotExist(promises_1.readdir(outResourcesDir), []), (file) => { + if (file.endsWith(".app")) { + return this.sign(path.join(outResourcesDir, file), null, null, null); + } + else { + return null; + } + }); + } +} +exports.default = MacPackager; +function getCertificateTypes(isMas, isDevelopment) { + if (isDevelopment) { + return isMas ? ["Mac Developer", "Apple Development"] : ["Developer ID Application"]; + } + return isMas ? ["Apple Distribution"] : ["Developer ID Application"]; +} +//# sourceMappingURL=macPackager.js.map \ No newline at end of file From 748db1030a9b8b9380b00e26990338e02dfe5385 Mon Sep 17 00:00:00 2001 From: cryptofyre Date: Tue, 8 Feb 2022 23:27:28 -0600 Subject: [PATCH 034/337] fuck widevine piss drm. --- package.json | 4 ++-- src/main/index.ts | 5 ++++- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index d232d542..f4ed5a4b 100644 --- a/package.json +++ b/package.json @@ -97,9 +97,9 @@ } ], "build": { - "electronVersion": "16.0.7", + "electronVersion": "16.0.8", "electronDownload": { - "version": "16.0.7+wvcus", + "version": "16.0.8+wvcus", "mirror": "https://github.com/castlabs/electron-releases/releases/download/v" }, "appId": "cider", diff --git a/src/main/index.ts b/src/main/index.ts index e5ca6772..7c7a085c 100644 --- a/src/main/index.ts +++ b/src/main/index.ts @@ -41,10 +41,13 @@ app.on('ready', () => { require('vue-devtools').install() } - components.whenReady().then(async () => { + app.whenReady().then(async () => { + await components.whenReady(); const bw = new BrowserWindow() const win = await bw.createWindow() + console.log('[Cider][Widevine] Status:', components.status()); + win.on("ready-to-show", () => { Cider.bwCreated(); CiderPlug.callPlugins('onReady', win); From 308193061d7c08c3d0e85ca94e52d4415dc4989b Mon Sep 17 00:00:00 2001 From: Maikiwi Date: Tue, 8 Feb 2022 22:02:05 -0800 Subject: [PATCH 035/337] volume max for web remote so I don't go deaf --- src/main/base/wsapi.ts | 14 ++++++++++++++ src/renderer/js/WSAPI_Interop.js | 3 +++ src/web-remote/index.js | 9 +++++++++ src/web-remote/views/index.ejs | 2 +- 4 files changed, 27 insertions(+), 1 deletion(-) diff --git a/src/main/base/wsapi.ts b/src/main/base/wsapi.ts index bfd62c9f..95d2b521 100644 --- a/src/main/base/wsapi.ts +++ b/src/main/base/wsapi.ts @@ -61,6 +61,9 @@ export class wsapi { electron.ipcMain.on('wsapi-returnLyrics', (_event: any, arg: any) => { this.returnLyrics(JSON.parse(arg)); }); + electron.ipcMain.on('wsapi-returnvolumeMax', (_event: any, arg: any) => { + this.returnmaxVolume(JSON.parse(arg)); + }); this.wss = new WebSocketServer({ port: this.port, perMessageDeflate: { @@ -162,6 +165,10 @@ export class wsapi { this._win.webContents.executeJavaScript(`MusicKit.getInstance().stop()`); response.message = "Stopped"; break; + case "volumeMax": + this._win.webContents.executeJavaScript(`wsapi.getmaxVolume()`); + response.message = "maxVolume"; + break; case "volume": this._win.webContents.executeJavaScript(`MusicKit.getInstance().volume = ${parseFloat(data.volume)}`); response.message = "Volume"; @@ -295,4 +302,11 @@ export class wsapi { client.send(JSON.stringify(response)); }); } + + returnmaxVolume(vol: any) { + const response: standardResponse = {status: 0, data: vol, message: "OK", type: "maxVolume"}; + this.clients.forEach(function each(client: any) { + client.send(JSON.stringify(response)); + }); + } } \ No newline at end of file diff --git a/src/renderer/js/WSAPI_Interop.js b/src/renderer/js/WSAPI_Interop.js index 525ad47e..422c96b3 100644 --- a/src/renderer/js/WSAPI_Interop.js +++ b/src/renderer/js/WSAPI_Interop.js @@ -107,5 +107,8 @@ const wsapi = { }else{ MusicKit.getInstance().repeatMode = 0 } + }, + getmaxVolume() { + ipcRenderer.send('wsapi-returnvolumeMax',JSON.stringify(app.cfg.audio.maxVolume)); } } \ No newline at end of file diff --git a/src/web-remote/index.js b/src/web-remote/index.js index 44f8d1c0..3a8b522b 100644 --- a/src/web-remote/index.js +++ b/src/web-remote/index.js @@ -13,6 +13,7 @@ var app = new Vue({ player: { currentMediaItem: {}, songActions: false, + maxVolume: 1, lyrics: {}, lyricsMediaItem: {}, lyricsDebug: { @@ -161,6 +162,11 @@ var app = new Vue({ volume: volume })); }, + getVolumeMax() { + socket.send(JSON.stringify({ + action: "volumeMax", + })); + }, getQueue() { socket.send(JSON.stringify({ action: "get-queue" @@ -570,6 +576,9 @@ var app = new Vue({ self.updatePlaybackState(response.data) } break; + case "maxVolume": + this.player.maxVolume = response.data; + break; } // console.log(e.data); } diff --git a/src/web-remote/views/index.ejs b/src/web-remote/views/index.ejs index 46915075..de38dc44 100644 --- a/src/web-remote/views/index.ejs +++ b/src/web-remote/views/index.ejs @@ -172,7 +172,7 @@
-
From 63b129390352b6dce4781b0d8b877b81f2516dba Mon Sep 17 00:00:00 2001 From: booploops <49113086+booploops@users.noreply.github.com> Date: Wed, 9 Feb 2022 03:30:52 -0800 Subject: [PATCH 036/337] added vue-horizontal --- src/renderer/index.js | 1 + src/renderer/js/smoothscroll.js | 434 ++++++++++++++++++ src/renderer/js/vue-horizontal.js | 1 + src/renderer/style.less | 19 +- .../mediaitem-scroller-horizontal-large.ejs | 10 +- .../mediaitem-scroller-horizontal-mvview.ejs | 4 +- .../mediaitem-scroller-horizontal-sp.ejs | 10 +- .../mediaitem-scroller-horizontal.ejs | 4 +- src/renderer/views/main.ejs | 2 + src/renderer/views/pages/artist-feed.ejs | 22 +- src/renderer/views/pages/cider-playlist.ejs | 6 +- src/renderer/views/pages/home.ejs | 36 +- src/renderer/views/pages/zoo.ejs | 3 - 13 files changed, 486 insertions(+), 66 deletions(-) create mode 100644 src/renderer/js/smoothscroll.js create mode 100644 src/renderer/js/vue-horizontal.js diff --git a/src/renderer/index.js b/src/renderer/index.js index 1caa41fc..23be9306 100644 --- a/src/renderer/index.js +++ b/src/renderer/index.js @@ -1,3 +1,4 @@ +Vue.use(VueHorizontal); Vue.use(VueObserveVisibility); var notyf = new Notyf(); diff --git a/src/renderer/js/smoothscroll.js b/src/renderer/js/smoothscroll.js new file mode 100644 index 00000000..8c694ad6 --- /dev/null +++ b/src/renderer/js/smoothscroll.js @@ -0,0 +1,434 @@ +/* smoothscroll v0.4.4 - 2019 - Dustan Kasten, Jeremias Menichelli - MIT License */ +(function () { + 'use strict'; + + // polyfill + function polyfill() { + // aliases + var w = window; + var d = document; + + // return if scroll behavior is supported and polyfill is not forced + if ( + 'scrollBehavior' in d.documentElement.style && + w.__forceSmoothScrollPolyfill__ !== true + ) { + return; + } + + // globals + var Element = w.HTMLElement || w.Element; + var SCROLL_TIME = 468; + + // object gathering original scroll methods + var original = { + scroll: w.scroll || w.scrollTo, + scrollBy: w.scrollBy, + elementScroll: Element.prototype.scroll || scrollElement, + scrollIntoView: Element.prototype.scrollIntoView + }; + + // define timing method + var now = + w.performance && w.performance.now + ? w.performance.now.bind(w.performance) + : Date.now; + + /** + * indicates if a the current browser is made by Microsoft + * @method isMicrosoftBrowser + * @param {String} userAgent + * @returns {Boolean} + */ + function isMicrosoftBrowser(userAgent) { + var userAgentPatterns = ['MSIE ', 'Trident/', 'Edge/']; + + return new RegExp(userAgentPatterns.join('|')).test(userAgent); + } + + /* + * IE has rounding bug rounding down clientHeight and clientWidth and + * rounding up scrollHeight and scrollWidth causing false positives + * on hasScrollableSpace + */ + var ROUNDING_TOLERANCE = isMicrosoftBrowser(w.navigator.userAgent) ? 1 : 0; + + /** + * changes scroll position inside an element + * @method scrollElement + * @param {Number} x + * @param {Number} y + * @returns {undefined} + */ + function scrollElement(x, y) { + this.scrollLeft = x; + this.scrollTop = y; + } + + /** + * returns result of applying ease math function to a number + * @method ease + * @param {Number} k + * @returns {Number} + */ + function ease(k) { + return 0.5 * (1 - Math.cos(Math.PI * k)); + } + + /** + * indicates if a smooth behavior should be applied + * @method shouldBailOut + * @param {Number|Object} firstArg + * @returns {Boolean} + */ + function shouldBailOut(firstArg) { + if ( + firstArg === null || + typeof firstArg !== 'object' || + firstArg.behavior === undefined || + firstArg.behavior === 'auto' || + firstArg.behavior === 'instant' + ) { + // first argument is not an object/null + // or behavior is auto, instant or undefined + return true; + } + + if (typeof firstArg === 'object' && firstArg.behavior === 'smooth') { + // first argument is an object and behavior is smooth + return false; + } + + // throw error when behavior is not supported + throw new TypeError( + 'behavior member of ScrollOptions ' + + firstArg.behavior + + ' is not a valid value for enumeration ScrollBehavior.' + ); + } + + /** + * indicates if an element has scrollable space in the provided axis + * @method hasScrollableSpace + * @param {Node} el + * @param {String} axis + * @returns {Boolean} + */ + function hasScrollableSpace(el, axis) { + if (axis === 'Y') { + return el.clientHeight + ROUNDING_TOLERANCE < el.scrollHeight; + } + + if (axis === 'X') { + return el.clientWidth + ROUNDING_TOLERANCE < el.scrollWidth; + } + } + + /** + * indicates if an element has a scrollable overflow property in the axis + * @method canOverflow + * @param {Node} el + * @param {String} axis + * @returns {Boolean} + */ + function canOverflow(el, axis) { + var overflowValue = w.getComputedStyle(el, null)['overflow' + axis]; + + return overflowValue === 'auto' || overflowValue === 'scroll'; + } + + /** + * indicates if an element can be scrolled in either axis + * @method isScrollable + * @param {Node} el + * @param {String} axis + * @returns {Boolean} + */ + function isScrollable(el) { + var isScrollableY = hasScrollableSpace(el, 'Y') && canOverflow(el, 'Y'); + var isScrollableX = hasScrollableSpace(el, 'X') && canOverflow(el, 'X'); + + return isScrollableY || isScrollableX; + } + + /** + * finds scrollable parent of an element + * @method findScrollableParent + * @param {Node} el + * @returns {Node} el + */ + function findScrollableParent(el) { + while (el !== d.body && isScrollable(el) === false) { + el = el.parentNode || el.host; + } + + return el; + } + + /** + * self invoked function that, given a context, steps through scrolling + * @method step + * @param {Object} context + * @returns {undefined} + */ + function step(context) { + var time = now(); + var value; + var currentX; + var currentY; + var elapsed = (time - context.startTime) / SCROLL_TIME; + + // avoid elapsed times higher than one + elapsed = elapsed > 1 ? 1 : elapsed; + + // apply easing to elapsed time + value = ease(elapsed); + + currentX = context.startX + (context.x - context.startX) * value; + currentY = context.startY + (context.y - context.startY) * value; + + context.method.call(context.scrollable, currentX, currentY); + + // scroll more if we have not reached our destination + if (currentX !== context.x || currentY !== context.y) { + w.requestAnimationFrame(step.bind(w, context)); + } + } + + /** + * scrolls window or element with a smooth behavior + * @method smoothScroll + * @param {Object|Node} el + * @param {Number} x + * @param {Number} y + * @returns {undefined} + */ + function smoothScroll(el, x, y) { + var scrollable; + var startX; + var startY; + var method; + var startTime = now(); + + // define scroll context + if (el === d.body) { + scrollable = w; + startX = w.scrollX || w.pageXOffset; + startY = w.scrollY || w.pageYOffset; + method = original.scroll; + } else { + scrollable = el; + startX = el.scrollLeft; + startY = el.scrollTop; + method = scrollElement; + } + + // scroll looping over a frame + step({ + scrollable: scrollable, + method: method, + startTime: startTime, + startX: startX, + startY: startY, + x: x, + y: y + }); + } + + // ORIGINAL METHODS OVERRIDES + // w.scroll and w.scrollTo + w.scroll = w.scrollTo = function() { + // avoid action when no arguments are passed + if (arguments[0] === undefined) { + return; + } + + // avoid smooth behavior if not required + if (shouldBailOut(arguments[0]) === true) { + original.scroll.call( + w, + arguments[0].left !== undefined + ? arguments[0].left + : typeof arguments[0] !== 'object' + ? arguments[0] + : w.scrollX || w.pageXOffset, + // use top prop, second argument if present or fallback to scrollY + arguments[0].top !== undefined + ? arguments[0].top + : arguments[1] !== undefined + ? arguments[1] + : w.scrollY || w.pageYOffset + ); + + return; + } + + // LET THE SMOOTHNESS BEGIN! + smoothScroll.call( + w, + d.body, + arguments[0].left !== undefined + ? ~~arguments[0].left + : w.scrollX || w.pageXOffset, + arguments[0].top !== undefined + ? ~~arguments[0].top + : w.scrollY || w.pageYOffset + ); + }; + + // w.scrollBy + w.scrollBy = function() { + // avoid action when no arguments are passed + if (arguments[0] === undefined) { + return; + } + + // avoid smooth behavior if not required + if (shouldBailOut(arguments[0])) { + original.scrollBy.call( + w, + arguments[0].left !== undefined + ? arguments[0].left + : typeof arguments[0] !== 'object' ? arguments[0] : 0, + arguments[0].top !== undefined + ? arguments[0].top + : arguments[1] !== undefined ? arguments[1] : 0 + ); + + return; + } + + // LET THE SMOOTHNESS BEGIN! + smoothScroll.call( + w, + d.body, + ~~arguments[0].left + (w.scrollX || w.pageXOffset), + ~~arguments[0].top + (w.scrollY || w.pageYOffset) + ); + }; + + // Element.prototype.scroll and Element.prototype.scrollTo + Element.prototype.scroll = Element.prototype.scrollTo = function() { + // avoid action when no arguments are passed + if (arguments[0] === undefined) { + return; + } + + // avoid smooth behavior if not required + if (shouldBailOut(arguments[0]) === true) { + // if one number is passed, throw error to match Firefox implementation + if (typeof arguments[0] === 'number' && arguments[1] === undefined) { + throw new SyntaxError('Value could not be converted'); + } + + original.elementScroll.call( + this, + // use left prop, first number argument or fallback to scrollLeft + arguments[0].left !== undefined + ? ~~arguments[0].left + : typeof arguments[0] !== 'object' ? ~~arguments[0] : this.scrollLeft, + // use top prop, second argument or fallback to scrollTop + arguments[0].top !== undefined + ? ~~arguments[0].top + : arguments[1] !== undefined ? ~~arguments[1] : this.scrollTop + ); + + return; + } + + var left = arguments[0].left; + var top = arguments[0].top; + + // LET THE SMOOTHNESS BEGIN! + smoothScroll.call( + this, + this, + typeof left === 'undefined' ? this.scrollLeft : ~~left, + typeof top === 'undefined' ? this.scrollTop : ~~top + ); + }; + + // Element.prototype.scrollBy + Element.prototype.scrollBy = function() { + // avoid action when no arguments are passed + if (arguments[0] === undefined) { + return; + } + + // avoid smooth behavior if not required + if (shouldBailOut(arguments[0]) === true) { + original.elementScroll.call( + this, + arguments[0].left !== undefined + ? ~~arguments[0].left + this.scrollLeft + : ~~arguments[0] + this.scrollLeft, + arguments[0].top !== undefined + ? ~~arguments[0].top + this.scrollTop + : ~~arguments[1] + this.scrollTop + ); + + return; + } + + this.scroll({ + left: ~~arguments[0].left + this.scrollLeft, + top: ~~arguments[0].top + this.scrollTop, + behavior: arguments[0].behavior + }); + }; + + // Element.prototype.scrollIntoView + Element.prototype.scrollIntoView = function() { + // avoid smooth behavior if not required + if (shouldBailOut(arguments[0]) === true) { + original.scrollIntoView.call( + this, + arguments[0] === undefined ? true : arguments[0] + ); + + return; + } + + // LET THE SMOOTHNESS BEGIN! + var scrollableParent = findScrollableParent(this); + var parentRects = scrollableParent.getBoundingClientRect(); + var clientRects = this.getBoundingClientRect(); + + if (scrollableParent !== d.body) { + // reveal element inside parent + smoothScroll.call( + this, + scrollableParent, + scrollableParent.scrollLeft + clientRects.left - parentRects.left, + scrollableParent.scrollTop + clientRects.top - parentRects.top + ); + + // reveal parent in viewport unless is fixed + if (w.getComputedStyle(scrollableParent).position !== 'fixed') { + w.scrollBy({ + left: parentRects.left, + top: parentRects.top, + behavior: 'smooth' + }); + } + } else { + // reveal element in viewport + w.scrollBy({ + left: clientRects.left, + top: clientRects.top, + behavior: 'smooth' + }); + } + }; + } + + if (typeof exports === 'object' && typeof module !== 'undefined') { + // commonjs + module.exports = { polyfill: polyfill }; + } else { + // global + polyfill(); + } + + }()); + \ No newline at end of file diff --git a/src/renderer/js/vue-horizontal.js b/src/renderer/js/vue-horizontal.js new file mode 100644 index 00000000..723b63e9 --- /dev/null +++ b/src/renderer/js/vue-horizontal.js @@ -0,0 +1 @@ +var VueHorizontal=function(t,e){"use strict";function n(t){return t&&"object"==typeof t&&"default"in t?t:{default:t}}var i=n(e).default.extend({name:"VueHorizontal",data:function(){return{left:0,width:0,scrollWidth:0,hasPrev:!1,hasNext:!1,debounceId:void 0}},props:{button:{type:Boolean,default:function(){return!0}},buttonBetween:{type:Boolean,default:function(){return!0}},scroll:{type:Boolean,default:function(){return!1}},responsive:{type:Boolean,default:function(){return!1}},displacement:{type:Number,default:function(){return 1}},snap:{type:String,default:function(){return"start"}}},mounted:function(){this.onScrollDebounce()},beforeDestroy:function(){clearTimeout(this.debounceId)},methods:{children:function(){return this.$refs.container.children},findPrevSlot:function(t){for(var e=this.children(),n=0;n2.5)return void this.scrollToLeft(t.scrollLeft+o)}var l=t.clientWidth*this.displacement;this.scrollToLeft(t.scrollLeft+l)},scrollToIndex:function(t){var e=this.children();if(e[t]){var n=this.$refs.container,i=e[t].getBoundingClientRect().left-n.getBoundingClientRect().left;this.scrollToLeft(n.scrollLeft+i)}},scrollToLeft:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"smooth",n=this.$refs.container;n.scrollTo({left:t,behavior:e})},onScroll:function(){var t=this.$refs.container;t&&(this.$emit("scroll",{left:t.scrollLeft}),clearTimeout(this.debounceId),this.debounceId=setTimeout(this.onScrollDebounce,100))},onScrollDebounce:function(){var t=this;this.refresh((function(e){t.$emit("scroll-debounce",e)}))},refresh:function(t){var e=this;this.$nextTick((function(){var n=e.calculate();e.left=n.left,e.width=n.width,e.scrollWidth=n.scrollWidth,e.hasNext=n.hasNext,e.hasPrev=n.hasPrev,null==t||t(n)}))},calculate:function(){var t=this.$refs.container,e=this.children()[0];return{left:t.scrollLeft,width:t.clientWidth,scrollWidth:t.scrollWidth,hasNext:t.scrollWidth>t.scrollLeft+t.clientWidth+2.5,hasPrev:function(){var n,i;if(0===t.scrollLeft)return!1;var o=t.getBoundingClientRect().left,l=null!==(n=null==e||null===(i=e.getBoundingClientRect())||void 0===i?void 0:i.left)&&void 0!==n?n:0;return Math.abs(o-l)>=2.5}()}}}});function o(t,e,n,i,o,l,r,a,s,c){"boolean"!=typeof r&&(s=a,a=r,r=!1);const d="function"==typeof n?n.options:n;let h;if(t&&t.render&&(d.render=t.render,d.staticRenderFns=t.staticRenderFns,d._compiled=!0,o&&(d.functional=!0)),i&&(d._scopeId=i),l?(h=function(t){(t=t||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(t=__VUE_SSR_CONTEXT__),e&&e.call(this,s(t)),t&&t._registeredComponents&&t._registeredComponents.add(l)},d._ssrRegister=h):e&&(h=r?function(t){e.call(this,c(t,this.$root.$options.shadowRoot))}:function(t){e.call(this,a(t))}),h)if(d.functional){const t=d.render;d.render=function(e,n){return h.call(n),t(e,n)}}else{const t=d.beforeCreate;d.beforeCreate=t?[].concat(t,h):[h]}return n}const l="undefined"!=typeof navigator&&/msie [6-9]\\b/.test(navigator.userAgent.toLowerCase());function r(t){return(t,e)=>function(t,e){const n=l?e.media||"default":t,i=s[n]||(s[n]={ids:new Set,styles:[]});if(!i.ids.has(t)){i.ids.add(t);let n=e.source;if(e.map&&(n+="\n/*# sourceURL="+e.map.sources[0]+" */",n+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(e.map))))+" */"),i.element||(i.element=document.createElement("style"),i.element.type="text/css",e.media&&i.element.setAttribute("media",e.media),void 0===a&&(a=document.head||document.getElementsByTagName("head")[0]),a.appendChild(i.element)),"styleSheet"in i.element)i.styles.push(n),i.element.styleSheet.cssText=i.styles.filter(Boolean).join("\n");else{const t=i.ids.size-1,e=document.createTextNode(n),o=i.element.childNodes;o[t]&&i.element.removeChild(o[t]),o.length?i.element.insertBefore(e,o[t]):i.element.appendChild(e)}}}(t,e)}let a;const s={};var c=o({render:function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"vue-horizontal",staticStyle:{position:"relative",display:"flex"}},[t.button&&t.hasPrev?n("div",{staticClass:"v-hl-btn v-hl-btn-prev",class:{"v-hl-btn-between":t.buttonBetween},attrs:{role:"button"},on:{click:function(e){return e.stopPropagation(),t.prev(e)}}},[t._t("btn-prev",[n("svg",{staticClass:"v-hl-svg",attrs:{viewBox:"0 0 24 24","aria-label":"horizontal scroll area navigate to previous button"}},[n("path",{attrs:{d:"m9.8 12 5 5a1 1 0 1 1-1.4 1.4l-5.7-5.7a1 1 0 0 1 0-1.4l5.7-5.7a1 1 0 0 1 1.4 1.4l-5 5z"}})])])],2):t._e(),t._v(" "),t.button&&t.hasNext?n("div",{staticClass:"v-hl-btn v-hl-btn-next",class:{"v-hl-btn-between":t.buttonBetween},attrs:{role:"button"},on:{click:function(e){return e.stopPropagation(),t.next(e)}}},[t._t("btn-next",[n("svg",{staticClass:"v-hl-svg",attrs:{viewBox:"0 0 24 24","aria-label":"horizontal scroll area navigate to next button"}},[n("path",{attrs:{d:"m14.3 12.1-5-5a1 1 0 0 1 1.4-1.4l5.7 5.7a1 1 0 0 1 0 1.4l-5.7 5.7a1 1 0 0 1-1.4-1.4l5-5z"}})])])],2):t._e(),t._v(" "),n("div",{ref:"container",staticClass:"v-hl-container",class:{"v-hl-responsive":t.responsive,"v-hl-scroll":t.scroll,"v-hl-snap-start":"start"===t.snap,"v-hl-snap-center":"center"===t.snap,"v-hl-snap-end":"end"===t.snap},on:{"&scroll":function(e){return t.onScroll(e)}}},[t._t("default")],2)])},staticRenderFns:[]},(function(t){t&&t("data-v-45080727_0",{source:".v-hl-btn[data-v-45080727]{position:absolute;align-self:center;z-index:1;top:0;bottom:0;display:flex;align-items:center;cursor:pointer}.v-hl-btn-prev[data-v-45080727]{left:0}.v-hl-btn-prev.v-hl-btn-between[data-v-45080727]{transform:translateX(-50%)}.v-hl-btn-next[data-v-45080727]{right:0}.v-hl-btn-next.v-hl-btn-between[data-v-45080727]{transform:translateX(50%)}.v-hl-svg[data-v-45080727]{width:40px;height:40px;margin:6px;padding:6px;border-radius:20px;box-sizing:border-box;background:#fff;color:#000;fill:currentColor;box-shadow:0 1px 3px rgba(0,0,0,.12),0 1px 2px rgba(0,0,0,.24)}.v-hl-container[data-v-45080727]{display:flex;width:100%;margin:0;padding:0;border:none;box-sizing:content-box;overflow-x:scroll;overflow-y:hidden;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch}.v-hl-container>*[data-v-45080727]{flex-shrink:0;box-sizing:border-box;min-height:1px}.v-hl-snap-start>*[data-v-45080727]{scroll-snap-align:start}.v-hl-snap-center>*[data-v-45080727]{scroll-snap-align:center}.v-hl-snap-end>*[data-v-45080727]{scroll-snap-align:end}.v-hl-container[data-v-45080727]:not(.v-hl-scroll){scrollbar-width:none;-ms-overflow-style:none;padding-bottom:30px;margin-bottom:-30px;clip-path:inset(0 0 30px 0)}.v-hl-container[data-v-45080727]:not(.v-hl-scroll)::-webkit-scrollbar{width:0!important;height:0!important}.v-hl-responsive>*[data-v-45080727]{width:100%;margin-right:24px}.v-hl-responsive[data-v-45080727]>:last-child{margin-right:0}@media (min-width:640px){.v-hl-responsive>*[data-v-45080727]{width:calc((100% - 24px)/ 2)}}@media (min-width:768px){.v-hl-responsive>*[data-v-45080727]{width:calc((100% - 48px)/ 3)}}@media (min-width:1024px){.v-hl-responsive>*[data-v-45080727]{width:calc((100% - 72px)/ 4)}}@media (min-width:1280px){.v-hl-responsive>*[data-v-45080727]{width:calc((100% - 96px)/ 5)}}",map:void 0,media:void 0})}),i,"data-v-45080727",!1,void 0,!1,r,void 0,void 0),d=function(t){d.installed||(d.installed=!0,t.component("VueHorizontal",c))},h={install:d},u=null;return"undefined"!=typeof window?u=window.Vue:"undefined"!=typeof global&&(u=global.Vue),u&&u.use(h),c.install=d,t.default=c,Object.defineProperty(t,"__esModule",{value:!0}),t}({},Vue); \ No newline at end of file diff --git a/src/renderer/style.less b/src/renderer/style.less index 4b88be9c..358d34c7 100644 --- a/src/renderer/style.less +++ b/src/renderer/style.less @@ -3751,14 +3751,6 @@ input[type="range"].web-slider.display--small::-webkit-slider-thumb { /* horizontal media scroller */ .cd-hmedia-scroller { - margin: 0 auto; - display: flex; - flex-flow: row; - overflow-x: scroll; - overflow-y: hidden; - height: 284px; - align-items: center; - &::-webkit-scrollbar-thumb { box-shadow: none; } @@ -3767,16 +3759,9 @@ input[type="range"].web-slider.display--small::-webkit-slider-thumb { box-shadow: inset 0px 0px 10px 10px rgb(200 200 200 / 50%); } - &.small { - overflow-x: overlay; - height: 210px; - } - &.hmedia-scroller-card { - height: 370px; - .mediaitem-card { - margin: 12px; + margin: 16px; } } } @@ -4047,7 +4032,7 @@ input[type="range"].web-slider.display--small::-webkit-slider-thumb { .cd-mediaitem-square-sp { --spcolor: var(""); width: 190px; - height: 250px; + height: 245px; display: inline-flex; flex: 0 0 auto; flex-direction: column; diff --git a/src/renderer/views/components/mediaitem-scroller-horizontal-large.ejs b/src/renderer/views/components/mediaitem-scroller-horizontal-large.ejs index a8c709f6..0c26d60d 100644 --- a/src/renderer/views/components/mediaitem-scroller-horizontal-large.ejs +++ b/src/renderer/views/components/mediaitem-scroller-horizontal-large.ejs @@ -1,10 +1,8 @@ diff --git a/src/renderer/views/components/mediaitem-scroller-horizontal-mvview.ejs b/src/renderer/views/components/mediaitem-scroller-horizontal-mvview.ejs index a9c3a036..0f3e7bd7 100644 --- a/src/renderer/views/components/mediaitem-scroller-horizontal-mvview.ejs +++ b/src/renderer/views/components/mediaitem-scroller-horizontal-mvview.ejs @@ -1,5 +1,5 @@ diff --git a/src/renderer/views/components/mediaitem-scroller-horizontal-sp.ejs b/src/renderer/views/components/mediaitem-scroller-horizontal-sp.ejs index f7a5e4b3..d83cd68e 100644 --- a/src/renderer/views/components/mediaitem-scroller-horizontal-sp.ejs +++ b/src/renderer/views/components/mediaitem-scroller-horizontal-sp.ejs @@ -1,9 +1,11 @@ diff --git a/src/renderer/views/components/mediaitem-scroller-horizontal.ejs b/src/renderer/views/components/mediaitem-scroller-horizontal.ejs index e1413c7c..b01bfd63 100644 --- a/src/renderer/views/components/mediaitem-scroller-horizontal.ejs +++ b/src/renderer/views/components/mediaitem-scroller-horizontal.ejs @@ -1,10 +1,10 @@ diff --git a/src/renderer/views/main.ejs b/src/renderer/views/main.ejs index a4710132..55b4403d 100644 --- a/src/renderer/views/main.ejs +++ b/src/renderer/views/main.ejs @@ -19,6 +19,8 @@ + + diff --git a/src/renderer/views/pages/artist-feed.ejs b/src/renderer/views/pages/artist-feed.ejs index 2a354bd8..9c34d485 100644 --- a/src/renderer/views/pages/artist-feed.ejs +++ b/src/renderer/views/pages/artist-feed.ejs @@ -8,18 +8,16 @@

{{app.getLz('home.followedArtists')}}

-
- -
- - -
-
-
+ +
+ + +
+
diff --git a/src/renderer/views/pages/cider-playlist.ejs b/src/renderer/views/pages/cider-playlist.ejs index a34b3f94..74c81f7e 100644 --- a/src/renderer/views/pages/cider-playlist.ejs +++ b/src/renderer/views/pages/cider-playlist.ejs @@ -169,8 +169,10 @@

{{ data.views[view].attributes.title }}

-
- +
+
+ +
diff --git a/src/renderer/views/pages/home.ejs b/src/renderer/views/pages/home.ejs index f91ada8c..0a1abbb8 100644 --- a/src/renderer/views/pages/home.ejs +++ b/src/renderer/views/pages/home.ejs @@ -53,9 +53,9 @@

{{app.getLz('home.madeForYou')}}

- + + +
@@ -71,10 +71,10 @@
- + :item="item"> +
@@ -86,7 +86,7 @@ \ No newline at end of file diff --git a/src/renderer/views/pages/zoo.ejs b/src/renderer/views/pages/zoo.ejs index 298659f0..6b065883 100644 --- a/src/renderer/views/pages/zoo.ejs +++ b/src/renderer/views/pages/zoo.ejs @@ -5,8 +5,5 @@ {{ $store.state.test }}
-
- -
From 7f0b2da0bef4166653888d098c8514ec479b5f49 Mon Sep 17 00:00:00 2001 From: vapormusic Date: Wed, 9 Feb 2022 19:23:40 +0700 Subject: [PATCH 037/337] fix web remote volume slider, #317, cant run yarn start --- src/main/base/plugins.ts | 21 ++++++++++++++++----- src/renderer/index.js | 5 ++++- src/web-remote/views/index.ejs | 2 +- 3 files changed, 21 insertions(+), 7 deletions(-) diff --git a/src/main/base/plugins.ts b/src/main/base/plugins.ts index f4f1d2ec..3dc77b0f 100644 --- a/src/main/base/plugins.ts +++ b/src/main/base/plugins.ts @@ -33,13 +33,24 @@ export class Plugins { if (fs.existsSync(this.userPluginsPath)) { fs.readdirSync(this.userPluginsPath).forEach(file => { if (file.endsWith('.ts') || file.endsWith('.js')) { - const plugin = require(path.join(this.userPluginsPath, file)); - file = file.replace('.ts', '').replace('.js', ''); - if (plugins[file] || plugin in plugins) { - console.log(`[${plugin.name}] Plugin already loaded / Duplicate Class Name`); + if (!electron.app.isPackaged) { + const plugin = require(path.join(this.userPluginsPath, file)).default; + file = file.replace('.ts', '').replace('.js', ''); + if (plugins[file] || plugin in plugins) { + console.log(`[${plugin.name}] Plugin already loaded / Duplicate Class Name`); + } else { + plugins[file] = new plugin(electron.app, utils.getStore()); + } } else { - plugins[file] = new plugin(electron.app, utils.getStore()); + const plugin = require(path.join(this.userPluginsPath, file)); + file = file.replace('.ts', '').replace('.js', ''); + if (plugins[file] || plugin in plugins) { + console.log(`[${plugin.name}] Plugin already loaded / Duplicate Class Name`); + } else { + plugins[file] = new plugin(electron.app, utils.getStore()); + } } + } }); } diff --git a/src/renderer/index.js b/src/renderer/index.js index 23be9306..b50e35a7 100644 --- a/src/renderer/index.js +++ b/src/renderer/index.js @@ -293,7 +293,10 @@ const app = new Vue({ }, mainMenuVisibility(val) { if (val) { - (this.chrome.userinfo.id) ? this.chrome.menuOpened = !this.chrome.menuOpened : false + (this.mk.isAuthorized) ? this.chrome.menuOpened = !this.chrome.menuOpened : false; + if (!this.mk.isAuthorized){ + this.mk.authorize() + } } else { setTimeout(() => { this.chrome.menuOpened = false diff --git a/src/web-remote/views/index.ejs b/src/web-remote/views/index.ejs index de38dc44..9a6ec9a6 100644 --- a/src/web-remote/views/index.ejs +++ b/src/web-remote/views/index.ejs @@ -172,7 +172,7 @@
-
From cb7c6e092299b68ea39c1728baa257f929d2e016 Mon Sep 17 00:00:00 2001 From: booploops <49113086+booploops@users.noreply.github.com> Date: Wed, 9 Feb 2022 04:27:25 -0800 Subject: [PATCH 038/337] added listitem-horizontal --- src/main/base/browserwindow.ts | 1 + src/renderer/index.js | 7 + src/renderer/less/bootstrap.less | 5053 ++++++++++++++++- src/renderer/style.less | 27 +- .../views/components/listitem-horizontal.ejs | 43 + src/renderer/views/pages/artist.ejs | 47 +- src/renderer/views/pages/home.ejs | 16 +- 7 files changed, 5143 insertions(+), 51 deletions(-) create mode 100644 src/renderer/views/components/listitem-horizontal.ejs diff --git a/src/main/base/browserwindow.ts b/src/main/base/browserwindow.ts index 991ccbdf..ef6a0b94 100644 --- a/src/main/base/browserwindow.ts +++ b/src/main/base/browserwindow.ts @@ -66,6 +66,7 @@ export class BrowserWindow { "components/listennow-child", "components/mediaitem-mvview-sp", "components/animatedartwork-view", + "components/listitem-horizontal", "components/lyrics-view", "components/fullscreen", "components/miniplayer", diff --git a/src/renderer/index.js b/src/renderer/index.js index 23be9306..72e5e535 100644 --- a/src/renderer/index.js +++ b/src/renderer/index.js @@ -3569,6 +3569,13 @@ const app = new Vue({ darwinShare(url) { ipcRenderer.send('share-menu', url) }, + arrayToChunk(arr, chunkSize) { + let R = []; + for (let i = 0, len = arr.length; i < len; i += chunkSize) { + R.push(arr.slice(i, i + chunkSize)); + } + return R; + } } }) diff --git a/src/renderer/less/bootstrap.less b/src/renderer/less/bootstrap.less index 6dfc7821..4a7dd9d5 100644 --- a/src/renderer/less/bootstrap.less +++ b/src/renderer/less/bootstrap.less @@ -1104,4 +1104,5055 @@ fieldset:disabled .btn { .form-control { width:100%; -} \ No newline at end of file +} + +/*! + * Bootstrap Grid v5.1.1 (https://getbootstrap.com/) + * Copyright 2011-2021 The Bootstrap Authors + * Copyright 2011-2021 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + */ + :root { + --bs-blue: #0d6efd; + --bs-indigo: #6610f2; + --bs-purple: #6f42c1; + --bs-pink: #d63384; + --bs-red: #dc3545; + --bs-orange: #fd7e14; + --bs-yellow: #ffc107; + --bs-green: #198754; + --bs-teal: #20c997; + --bs-cyan: #0dcaf0; + --bs-white: #fff; + --bs-gray: #6c757d; + --bs-gray-dark: #343a40; + --bs-gray-100: #f8f9fa; + --bs-gray-200: #e9ecef; + --bs-gray-300: #dee2e6; + --bs-gray-400: #ced4da; + --bs-gray-500: #adb5bd; + --bs-gray-600: #6c757d; + --bs-gray-700: #495057; + --bs-gray-800: #343a40; + --bs-gray-900: #212529; + --bs-primary: #0d6efd; + --bs-secondary: #6c757d; + --bs-success: #198754; + --bs-info: #0dcaf0; + --bs-warning: #ffc107; + --bs-danger: #dc3545; + --bs-light: #f8f9fa; + --bs-dark: #212529; + --bs-primary-rgb: 13, 110, 253; + --bs-secondary-rgb: 108, 117, 125; + --bs-success-rgb: 25, 135, 84; + --bs-info-rgb: 13, 202, 240; + --bs-warning-rgb: 255, 193, 7; + --bs-danger-rgb: 220, 53, 69; + --bs-light-rgb: 248, 249, 250; + --bs-dark-rgb: 33, 37, 41; + --bs-white-rgb: 255, 255, 255; + --bs-black-rgb: 0, 0, 0; + --bs-body-color-rgb: 33, 37, 41; + --bs-body-bg-rgb: 255, 255, 255; + --bs-font-sans-serif: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; + --bs-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; + --bs-gradient: linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0)); + --bs-body-font-family: var(--bs-font-sans-serif); + --bs-body-font-size: 1rem; + --bs-body-font-weight: 400; + --bs-body-line-height: 1.5; + --bs-body-color: #212529; + --bs-body-bg: #fff; + } + + .container, + .container-fluid, + .container-xxl, + .container-xl, + .container-lg, + .container-md, + .container-sm { + width: 100%; + padding-right: var(--bs-gutter-x, 0.75rem); + padding-left: var(--bs-gutter-x, 0.75rem); + margin-right: auto; + margin-left: auto; + } + + @media (min-width: 576px) { + .container-sm, .container { + max-width: 540px; + } + } + @media (min-width: 768px) { + .container-md, .container-sm, .container { + max-width: 720px; + } + } + @media (min-width: 992px) { + .container-lg, .container-md, .container-sm, .container { + max-width: 960px; + } + } + @media (min-width: 1200px) { + .container-xl, .container-lg, .container-md, .container-sm, .container { + max-width: 1140px; + } + } + @media (min-width: 1400px) { + .container-xxl, .container-xl, .container-lg, .container-md, .container-sm, .container { + max-width: 1320px; + } + } + .row { + --bs-gutter-x: 1.5rem; + --bs-gutter-y: 0; + display: flex; + flex-wrap: wrap; + margin-top: calc(var(--bs-gutter-y) * -1); + margin-right: calc(var(--bs-gutter-x) * -.5); + margin-left: calc(var(--bs-gutter-x) * -.5); + } + .row > * { + box-sizing: border-box; + flex-shrink: 0; + width: 100%; + max-width: 100%; + padding-right: calc(var(--bs-gutter-x) * .5); + padding-left: calc(var(--bs-gutter-x) * .5); + margin-top: var(--bs-gutter-y); + } + + .col { + flex: 1 0 0%; + } + + .row-cols-auto > * { + flex: 0 0 auto; + width: auto; + } + + .row-cols-1 > * { + flex: 0 0 auto; + width: 100%; + } + + .row-cols-2 > * { + flex: 0 0 auto; + width: 50%; + } + + .row-cols-3 > * { + flex: 0 0 auto; + width: 33.3333333333%; + } + + .row-cols-4 > * { + flex: 0 0 auto; + width: 25%; + } + + .row-cols-5 > * { + flex: 0 0 auto; + width: 20%; + } + + .row-cols-6 > * { + flex: 0 0 auto; + width: 16.6666666667%; + } + + .col-auto { + flex: 0 0 auto; + width: auto; + } + + .col-1 { + flex: 0 0 auto; + width: 8.33333333%; + } + + .col-2 { + flex: 0 0 auto; + width: 16.66666667%; + } + + .col-3 { + flex: 0 0 auto; + width: 25%; + } + + .col-4 { + flex: 0 0 auto; + width: 33.33333333%; + } + + .col-5 { + flex: 0 0 auto; + width: 41.66666667%; + } + + .col-6 { + flex: 0 0 auto; + width: 50%; + } + + .col-7 { + flex: 0 0 auto; + width: 58.33333333%; + } + + .col-8 { + flex: 0 0 auto; + width: 66.66666667%; + } + + .col-9 { + flex: 0 0 auto; + width: 75%; + } + + .col-10 { + flex: 0 0 auto; + width: 83.33333333%; + } + + .col-11 { + flex: 0 0 auto; + width: 91.66666667%; + } + + .col-12 { + flex: 0 0 auto; + width: 100%; + } + + .offset-1 { + margin-left: 8.33333333%; + } + + .offset-2 { + margin-left: 16.66666667%; + } + + .offset-3 { + margin-left: 25%; + } + + .offset-4 { + margin-left: 33.33333333%; + } + + .offset-5 { + margin-left: 41.66666667%; + } + + .offset-6 { + margin-left: 50%; + } + + .offset-7 { + margin-left: 58.33333333%; + } + + .offset-8 { + margin-left: 66.66666667%; + } + + .offset-9 { + margin-left: 75%; + } + + .offset-10 { + margin-left: 83.33333333%; + } + + .offset-11 { + margin-left: 91.66666667%; + } + + .g-0, + .gx-0 { + --bs-gutter-x: 0; + } + + .g-0, + .gy-0 { + --bs-gutter-y: 0; + } + + .g-1, + .gx-1 { + --bs-gutter-x: 0.25rem; + } + + .g-1, + .gy-1 { + --bs-gutter-y: 0.25rem; + } + + .g-2, + .gx-2 { + --bs-gutter-x: 0.5rem; + } + + .g-2, + .gy-2 { + --bs-gutter-y: 0.5rem; + } + + .g-3, + .gx-3 { + --bs-gutter-x: 1rem; + } + + .g-3, + .gy-3 { + --bs-gutter-y: 1rem; + } + + .g-4, + .gx-4 { + --bs-gutter-x: 1.5rem; + } + + .g-4, + .gy-4 { + --bs-gutter-y: 1.5rem; + } + + .g-5, + .gx-5 { + --bs-gutter-x: 3rem; + } + + .g-5, + .gy-5 { + --bs-gutter-y: 3rem; + } + + @media (min-width: 576px) { + .col-sm { + flex: 1 0 0%; + } + + .row-cols-sm-auto > * { + flex: 0 0 auto; + width: auto; + } + + .row-cols-sm-1 > * { + flex: 0 0 auto; + width: 100%; + } + + .row-cols-sm-2 > * { + flex: 0 0 auto; + width: 50%; + } + + .row-cols-sm-3 > * { + flex: 0 0 auto; + width: 33.3333333333%; + } + + .row-cols-sm-4 > * { + flex: 0 0 auto; + width: 25%; + } + + .row-cols-sm-5 > * { + flex: 0 0 auto; + width: 20%; + } + + .row-cols-sm-6 > * { + flex: 0 0 auto; + width: 16.6666666667%; + } + + .col-sm-auto { + flex: 0 0 auto; + width: auto; + } + + .col-sm-1 { + flex: 0 0 auto; + width: 8.33333333%; + } + + .col-sm-2 { + flex: 0 0 auto; + width: 16.66666667%; + } + + .col-sm-3 { + flex: 0 0 auto; + width: 25%; + } + + .col-sm-4 { + flex: 0 0 auto; + width: 33.33333333%; + } + + .col-sm-5 { + flex: 0 0 auto; + width: 41.66666667%; + } + + .col-sm-6 { + flex: 0 0 auto; + width: 50%; + } + + .col-sm-7 { + flex: 0 0 auto; + width: 58.33333333%; + } + + .col-sm-8 { + flex: 0 0 auto; + width: 66.66666667%; + } + + .col-sm-9 { + flex: 0 0 auto; + width: 75%; + } + + .col-sm-10 { + flex: 0 0 auto; + width: 83.33333333%; + } + + .col-sm-11 { + flex: 0 0 auto; + width: 91.66666667%; + } + + .col-sm-12 { + flex: 0 0 auto; + width: 100%; + } + + .offset-sm-0 { + margin-left: 0; + } + + .offset-sm-1 { + margin-left: 8.33333333%; + } + + .offset-sm-2 { + margin-left: 16.66666667%; + } + + .offset-sm-3 { + margin-left: 25%; + } + + .offset-sm-4 { + margin-left: 33.33333333%; + } + + .offset-sm-5 { + margin-left: 41.66666667%; + } + + .offset-sm-6 { + margin-left: 50%; + } + + .offset-sm-7 { + margin-left: 58.33333333%; + } + + .offset-sm-8 { + margin-left: 66.66666667%; + } + + .offset-sm-9 { + margin-left: 75%; + } + + .offset-sm-10 { + margin-left: 83.33333333%; + } + + .offset-sm-11 { + margin-left: 91.66666667%; + } + + .g-sm-0, + .gx-sm-0 { + --bs-gutter-x: 0; + } + + .g-sm-0, + .gy-sm-0 { + --bs-gutter-y: 0; + } + + .g-sm-1, + .gx-sm-1 { + --bs-gutter-x: 0.25rem; + } + + .g-sm-1, + .gy-sm-1 { + --bs-gutter-y: 0.25rem; + } + + .g-sm-2, + .gx-sm-2 { + --bs-gutter-x: 0.5rem; + } + + .g-sm-2, + .gy-sm-2 { + --bs-gutter-y: 0.5rem; + } + + .g-sm-3, + .gx-sm-3 { + --bs-gutter-x: 1rem; + } + + .g-sm-3, + .gy-sm-3 { + --bs-gutter-y: 1rem; + } + + .g-sm-4, + .gx-sm-4 { + --bs-gutter-x: 1.5rem; + } + + .g-sm-4, + .gy-sm-4 { + --bs-gutter-y: 1.5rem; + } + + .g-sm-5, + .gx-sm-5 { + --bs-gutter-x: 3rem; + } + + .g-sm-5, + .gy-sm-5 { + --bs-gutter-y: 3rem; + } + } + @media (min-width: 768px) { + .col-md { + flex: 1 0 0%; + } + + .row-cols-md-auto > * { + flex: 0 0 auto; + width: auto; + } + + .row-cols-md-1 > * { + flex: 0 0 auto; + width: 100%; + } + + .row-cols-md-2 > * { + flex: 0 0 auto; + width: 50%; + } + + .row-cols-md-3 > * { + flex: 0 0 auto; + width: 33.3333333333%; + } + + .row-cols-md-4 > * { + flex: 0 0 auto; + width: 25%; + } + + .row-cols-md-5 > * { + flex: 0 0 auto; + width: 20%; + } + + .row-cols-md-6 > * { + flex: 0 0 auto; + width: 16.6666666667%; + } + + .col-md-auto { + flex: 0 0 auto; + width: auto; + } + + .col-md-1 { + flex: 0 0 auto; + width: 8.33333333%; + } + + .col-md-2 { + flex: 0 0 auto; + width: 16.66666667%; + } + + .col-md-3 { + flex: 0 0 auto; + width: 25%; + } + + .col-md-4 { + flex: 0 0 auto; + width: 33.33333333%; + } + + .col-md-5 { + flex: 0 0 auto; + width: 41.66666667%; + } + + .col-md-6 { + flex: 0 0 auto; + width: 50%; + } + + .col-md-7 { + flex: 0 0 auto; + width: 58.33333333%; + } + + .col-md-8 { + flex: 0 0 auto; + width: 66.66666667%; + } + + .col-md-9 { + flex: 0 0 auto; + width: 75%; + } + + .col-md-10 { + flex: 0 0 auto; + width: 83.33333333%; + } + + .col-md-11 { + flex: 0 0 auto; + width: 91.66666667%; + } + + .col-md-12 { + flex: 0 0 auto; + width: 100%; + } + + .offset-md-0 { + margin-left: 0; + } + + .offset-md-1 { + margin-left: 8.33333333%; + } + + .offset-md-2 { + margin-left: 16.66666667%; + } + + .offset-md-3 { + margin-left: 25%; + } + + .offset-md-4 { + margin-left: 33.33333333%; + } + + .offset-md-5 { + margin-left: 41.66666667%; + } + + .offset-md-6 { + margin-left: 50%; + } + + .offset-md-7 { + margin-left: 58.33333333%; + } + + .offset-md-8 { + margin-left: 66.66666667%; + } + + .offset-md-9 { + margin-left: 75%; + } + + .offset-md-10 { + margin-left: 83.33333333%; + } + + .offset-md-11 { + margin-left: 91.66666667%; + } + + .g-md-0, + .gx-md-0 { + --bs-gutter-x: 0; + } + + .g-md-0, + .gy-md-0 { + --bs-gutter-y: 0; + } + + .g-md-1, + .gx-md-1 { + --bs-gutter-x: 0.25rem; + } + + .g-md-1, + .gy-md-1 { + --bs-gutter-y: 0.25rem; + } + + .g-md-2, + .gx-md-2 { + --bs-gutter-x: 0.5rem; + } + + .g-md-2, + .gy-md-2 { + --bs-gutter-y: 0.5rem; + } + + .g-md-3, + .gx-md-3 { + --bs-gutter-x: 1rem; + } + + .g-md-3, + .gy-md-3 { + --bs-gutter-y: 1rem; + } + + .g-md-4, + .gx-md-4 { + --bs-gutter-x: 1.5rem; + } + + .g-md-4, + .gy-md-4 { + --bs-gutter-y: 1.5rem; + } + + .g-md-5, + .gx-md-5 { + --bs-gutter-x: 3rem; + } + + .g-md-5, + .gy-md-5 { + --bs-gutter-y: 3rem; + } + } + @media (min-width: 992px) { + .col-lg { + flex: 1 0 0%; + } + + .row-cols-lg-auto > * { + flex: 0 0 auto; + width: auto; + } + + .row-cols-lg-1 > * { + flex: 0 0 auto; + width: 100%; + } + + .row-cols-lg-2 > * { + flex: 0 0 auto; + width: 50%; + } + + .row-cols-lg-3 > * { + flex: 0 0 auto; + width: 33.3333333333%; + } + + .row-cols-lg-4 > * { + flex: 0 0 auto; + width: 25%; + } + + .row-cols-lg-5 > * { + flex: 0 0 auto; + width: 20%; + } + + .row-cols-lg-6 > * { + flex: 0 0 auto; + width: 16.6666666667%; + } + + .col-lg-auto { + flex: 0 0 auto; + width: auto; + } + + .col-lg-1 { + flex: 0 0 auto; + width: 8.33333333%; + } + + .col-lg-2 { + flex: 0 0 auto; + width: 16.66666667%; + } + + .col-lg-3 { + flex: 0 0 auto; + width: 25%; + } + + .col-lg-4 { + flex: 0 0 auto; + width: 33.33333333%; + } + + .col-lg-5 { + flex: 0 0 auto; + width: 41.66666667%; + } + + .col-lg-6 { + flex: 0 0 auto; + width: 50%; + } + + .col-lg-7 { + flex: 0 0 auto; + width: 58.33333333%; + } + + .col-lg-8 { + flex: 0 0 auto; + width: 66.66666667%; + } + + .col-lg-9 { + flex: 0 0 auto; + width: 75%; + } + + .col-lg-10 { + flex: 0 0 auto; + width: 83.33333333%; + } + + .col-lg-11 { + flex: 0 0 auto; + width: 91.66666667%; + } + + .col-lg-12 { + flex: 0 0 auto; + width: 100%; + } + + .offset-lg-0 { + margin-left: 0; + } + + .offset-lg-1 { + margin-left: 8.33333333%; + } + + .offset-lg-2 { + margin-left: 16.66666667%; + } + + .offset-lg-3 { + margin-left: 25%; + } + + .offset-lg-4 { + margin-left: 33.33333333%; + } + + .offset-lg-5 { + margin-left: 41.66666667%; + } + + .offset-lg-6 { + margin-left: 50%; + } + + .offset-lg-7 { + margin-left: 58.33333333%; + } + + .offset-lg-8 { + margin-left: 66.66666667%; + } + + .offset-lg-9 { + margin-left: 75%; + } + + .offset-lg-10 { + margin-left: 83.33333333%; + } + + .offset-lg-11 { + margin-left: 91.66666667%; + } + + .g-lg-0, + .gx-lg-0 { + --bs-gutter-x: 0; + } + + .g-lg-0, + .gy-lg-0 { + --bs-gutter-y: 0; + } + + .g-lg-1, + .gx-lg-1 { + --bs-gutter-x: 0.25rem; + } + + .g-lg-1, + .gy-lg-1 { + --bs-gutter-y: 0.25rem; + } + + .g-lg-2, + .gx-lg-2 { + --bs-gutter-x: 0.5rem; + } + + .g-lg-2, + .gy-lg-2 { + --bs-gutter-y: 0.5rem; + } + + .g-lg-3, + .gx-lg-3 { + --bs-gutter-x: 1rem; + } + + .g-lg-3, + .gy-lg-3 { + --bs-gutter-y: 1rem; + } + + .g-lg-4, + .gx-lg-4 { + --bs-gutter-x: 1.5rem; + } + + .g-lg-4, + .gy-lg-4 { + --bs-gutter-y: 1.5rem; + } + + .g-lg-5, + .gx-lg-5 { + --bs-gutter-x: 3rem; + } + + .g-lg-5, + .gy-lg-5 { + --bs-gutter-y: 3rem; + } + } + @media (min-width: 1200px) { + .col-xl { + flex: 1 0 0%; + } + + .row-cols-xl-auto > * { + flex: 0 0 auto; + width: auto; + } + + .row-cols-xl-1 > * { + flex: 0 0 auto; + width: 100%; + } + + .row-cols-xl-2 > * { + flex: 0 0 auto; + width: 50%; + } + + .row-cols-xl-3 > * { + flex: 0 0 auto; + width: 33.3333333333%; + } + + .row-cols-xl-4 > * { + flex: 0 0 auto; + width: 25%; + } + + .row-cols-xl-5 > * { + flex: 0 0 auto; + width: 20%; + } + + .row-cols-xl-6 > * { + flex: 0 0 auto; + width: 16.6666666667%; + } + + .col-xl-auto { + flex: 0 0 auto; + width: auto; + } + + .col-xl-1 { + flex: 0 0 auto; + width: 8.33333333%; + } + + .col-xl-2 { + flex: 0 0 auto; + width: 16.66666667%; + } + + .col-xl-3 { + flex: 0 0 auto; + width: 25%; + } + + .col-xl-4 { + flex: 0 0 auto; + width: 33.33333333%; + } + + .col-xl-5 { + flex: 0 0 auto; + width: 41.66666667%; + } + + .col-xl-6 { + flex: 0 0 auto; + width: 50%; + } + + .col-xl-7 { + flex: 0 0 auto; + width: 58.33333333%; + } + + .col-xl-8 { + flex: 0 0 auto; + width: 66.66666667%; + } + + .col-xl-9 { + flex: 0 0 auto; + width: 75%; + } + + .col-xl-10 { + flex: 0 0 auto; + width: 83.33333333%; + } + + .col-xl-11 { + flex: 0 0 auto; + width: 91.66666667%; + } + + .col-xl-12 { + flex: 0 0 auto; + width: 100%; + } + + .offset-xl-0 { + margin-left: 0; + } + + .offset-xl-1 { + margin-left: 8.33333333%; + } + + .offset-xl-2 { + margin-left: 16.66666667%; + } + + .offset-xl-3 { + margin-left: 25%; + } + + .offset-xl-4 { + margin-left: 33.33333333%; + } + + .offset-xl-5 { + margin-left: 41.66666667%; + } + + .offset-xl-6 { + margin-left: 50%; + } + + .offset-xl-7 { + margin-left: 58.33333333%; + } + + .offset-xl-8 { + margin-left: 66.66666667%; + } + + .offset-xl-9 { + margin-left: 75%; + } + + .offset-xl-10 { + margin-left: 83.33333333%; + } + + .offset-xl-11 { + margin-left: 91.66666667%; + } + + .g-xl-0, + .gx-xl-0 { + --bs-gutter-x: 0; + } + + .g-xl-0, + .gy-xl-0 { + --bs-gutter-y: 0; + } + + .g-xl-1, + .gx-xl-1 { + --bs-gutter-x: 0.25rem; + } + + .g-xl-1, + .gy-xl-1 { + --bs-gutter-y: 0.25rem; + } + + .g-xl-2, + .gx-xl-2 { + --bs-gutter-x: 0.5rem; + } + + .g-xl-2, + .gy-xl-2 { + --bs-gutter-y: 0.5rem; + } + + .g-xl-3, + .gx-xl-3 { + --bs-gutter-x: 1rem; + } + + .g-xl-3, + .gy-xl-3 { + --bs-gutter-y: 1rem; + } + + .g-xl-4, + .gx-xl-4 { + --bs-gutter-x: 1.5rem; + } + + .g-xl-4, + .gy-xl-4 { + --bs-gutter-y: 1.5rem; + } + + .g-xl-5, + .gx-xl-5 { + --bs-gutter-x: 3rem; + } + + .g-xl-5, + .gy-xl-5 { + --bs-gutter-y: 3rem; + } + } + @media (min-width: 1400px) { + .col-xxl { + flex: 1 0 0%; + } + + .row-cols-xxl-auto > * { + flex: 0 0 auto; + width: auto; + } + + .row-cols-xxl-1 > * { + flex: 0 0 auto; + width: 100%; + } + + .row-cols-xxl-2 > * { + flex: 0 0 auto; + width: 50%; + } + + .row-cols-xxl-3 > * { + flex: 0 0 auto; + width: 33.3333333333%; + } + + .row-cols-xxl-4 > * { + flex: 0 0 auto; + width: 25%; + } + + .row-cols-xxl-5 > * { + flex: 0 0 auto; + width: 20%; + } + + .row-cols-xxl-6 > * { + flex: 0 0 auto; + width: 16.6666666667%; + } + + .col-xxl-auto { + flex: 0 0 auto; + width: auto; + } + + .col-xxl-1 { + flex: 0 0 auto; + width: 8.33333333%; + } + + .col-xxl-2 { + flex: 0 0 auto; + width: 16.66666667%; + } + + .col-xxl-3 { + flex: 0 0 auto; + width: 25%; + } + + .col-xxl-4 { + flex: 0 0 auto; + width: 33.33333333%; + } + + .col-xxl-5 { + flex: 0 0 auto; + width: 41.66666667%; + } + + .col-xxl-6 { + flex: 0 0 auto; + width: 50%; + } + + .col-xxl-7 { + flex: 0 0 auto; + width: 58.33333333%; + } + + .col-xxl-8 { + flex: 0 0 auto; + width: 66.66666667%; + } + + .col-xxl-9 { + flex: 0 0 auto; + width: 75%; + } + + .col-xxl-10 { + flex: 0 0 auto; + width: 83.33333333%; + } + + .col-xxl-11 { + flex: 0 0 auto; + width: 91.66666667%; + } + + .col-xxl-12 { + flex: 0 0 auto; + width: 100%; + } + + .offset-xxl-0 { + margin-left: 0; + } + + .offset-xxl-1 { + margin-left: 8.33333333%; + } + + .offset-xxl-2 { + margin-left: 16.66666667%; + } + + .offset-xxl-3 { + margin-left: 25%; + } + + .offset-xxl-4 { + margin-left: 33.33333333%; + } + + .offset-xxl-5 { + margin-left: 41.66666667%; + } + + .offset-xxl-6 { + margin-left: 50%; + } + + .offset-xxl-7 { + margin-left: 58.33333333%; + } + + .offset-xxl-8 { + margin-left: 66.66666667%; + } + + .offset-xxl-9 { + margin-left: 75%; + } + + .offset-xxl-10 { + margin-left: 83.33333333%; + } + + .offset-xxl-11 { + margin-left: 91.66666667%; + } + + .g-xxl-0, + .gx-xxl-0 { + --bs-gutter-x: 0; + } + + .g-xxl-0, + .gy-xxl-0 { + --bs-gutter-y: 0; + } + + .g-xxl-1, + .gx-xxl-1 { + --bs-gutter-x: 0.25rem; + } + + .g-xxl-1, + .gy-xxl-1 { + --bs-gutter-y: 0.25rem; + } + + .g-xxl-2, + .gx-xxl-2 { + --bs-gutter-x: 0.5rem; + } + + .g-xxl-2, + .gy-xxl-2 { + --bs-gutter-y: 0.5rem; + } + + .g-xxl-3, + .gx-xxl-3 { + --bs-gutter-x: 1rem; + } + + .g-xxl-3, + .gy-xxl-3 { + --bs-gutter-y: 1rem; + } + + .g-xxl-4, + .gx-xxl-4 { + --bs-gutter-x: 1.5rem; + } + + .g-xxl-4, + .gy-xxl-4 { + --bs-gutter-y: 1.5rem; + } + + .g-xxl-5, + .gx-xxl-5 { + --bs-gutter-x: 3rem; + } + + .g-xxl-5, + .gy-xxl-5 { + --bs-gutter-y: 3rem; + } + } + .d-inline { + display: inline !important; + } + + .d-inline-block { + display: inline-block !important; + } + + .d-block { + display: block !important; + } + + .d-grid { + display: grid !important; + } + + .d-table { + display: table !important; + } + + .d-table-row { + display: table-row !important; + } + + .d-table-cell { + display: table-cell !important; + } + + .d-flex { + display: flex !important; + } + + .d-inline-flex { + display: inline-flex !important; + } + + .d-none { + display: none !important; + } + + .flex-fill { + flex: 1 1 auto !important; + } + + .flex-row { + flex-direction: row !important; + } + + .flex-column { + flex-direction: column !important; + } + + .flex-row-reverse { + flex-direction: row-reverse !important; + } + + .flex-column-reverse { + flex-direction: column-reverse !important; + } + + .flex-grow-0 { + flex-grow: 0 !important; + } + + .flex-grow-1 { + flex-grow: 1 !important; + } + + .flex-shrink-0 { + flex-shrink: 0 !important; + } + + .flex-shrink-1 { + flex-shrink: 1 !important; + } + + .flex-wrap { + flex-wrap: wrap !important; + } + + .flex-nowrap { + flex-wrap: nowrap !important; + } + + .flex-wrap-reverse { + flex-wrap: wrap-reverse !important; + } + + .justify-content-start { + justify-content: flex-start !important; + } + + .justify-content-end { + justify-content: flex-end !important; + } + + .justify-content-center { + justify-content: center !important; + } + + .justify-content-between { + justify-content: space-between !important; + } + + .justify-content-around { + justify-content: space-around !important; + } + + .justify-content-evenly { + justify-content: space-evenly !important; + } + + .align-items-start { + align-items: flex-start !important; + } + + .align-items-end { + align-items: flex-end !important; + } + + .align-items-center { + align-items: center !important; + } + + .align-items-baseline { + align-items: baseline !important; + } + + .align-items-stretch { + align-items: stretch !important; + } + + .align-content-start { + align-content: flex-start !important; + } + + .align-content-end { + align-content: flex-end !important; + } + + .align-content-center { + align-content: center !important; + } + + .align-content-between { + align-content: space-between !important; + } + + .align-content-around { + align-content: space-around !important; + } + + .align-content-stretch { + align-content: stretch !important; + } + + .align-self-auto { + align-self: auto !important; + } + + .align-self-start { + align-self: flex-start !important; + } + + .align-self-end { + align-self: flex-end !important; + } + + .align-self-center { + align-self: center !important; + } + + .align-self-baseline { + align-self: baseline !important; + } + + .align-self-stretch { + align-self: stretch !important; + } + + .order-first { + order: -1 !important; + } + + .order-0 { + order: 0 !important; + } + + .order-1 { + order: 1 !important; + } + + .order-2 { + order: 2 !important; + } + + .order-3 { + order: 3 !important; + } + + .order-4 { + order: 4 !important; + } + + .order-5 { + order: 5 !important; + } + + .order-last { + order: 6 !important; + } + + .m-0 { + margin: 0 !important; + } + + .m-1 { + margin: 0.25rem !important; + } + + .m-2 { + margin: 0.5rem !important; + } + + .m-3 { + margin: 1rem !important; + } + + .m-4 { + margin: 1.5rem !important; + } + + .m-5 { + margin: 3rem !important; + } + + .m-auto { + margin: auto !important; + } + + .mx-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + + .mx-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; + } + + .mx-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; + } + + .mx-3 { + margin-right: 1rem !important; + margin-left: 1rem !important; + } + + .mx-4 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; + } + + .mx-5 { + margin-right: 3rem !important; + margin-left: 3rem !important; + } + + .mx-auto { + margin-right: auto !important; + margin-left: auto !important; + } + + .my-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + + .my-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + + .my-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + + .my-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + + .my-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + + .my-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + + .my-auto { + margin-top: auto !important; + margin-bottom: auto !important; + } + + .mt-0 { + margin-top: 0 !important; + } + + .mt-1 { + margin-top: 0.25rem !important; + } + + .mt-2 { + margin-top: 0.5rem !important; + } + + .mt-3 { + margin-top: 1rem !important; + } + + .mt-4 { + margin-top: 1.5rem !important; + } + + .mt-5 { + margin-top: 3rem !important; + } + + .mt-auto { + margin-top: auto !important; + } + + .me-0 { + margin-right: 0 !important; + } + + .me-1 { + margin-right: 0.25rem !important; + } + + .me-2 { + margin-right: 0.5rem !important; + } + + .me-3 { + margin-right: 1rem !important; + } + + .me-4 { + margin-right: 1.5rem !important; + } + + .me-5 { + margin-right: 3rem !important; + } + + .me-auto { + margin-right: auto !important; + } + + .mb-0 { + margin-bottom: 0 !important; + } + + .mb-1 { + margin-bottom: 0.25rem !important; + } + + .mb-2 { + margin-bottom: 0.5rem !important; + } + + .mb-3 { + margin-bottom: 1rem !important; + } + + .mb-4 { + margin-bottom: 1.5rem !important; + } + + .mb-5 { + margin-bottom: 3rem !important; + } + + .mb-auto { + margin-bottom: auto !important; + } + + .ms-0 { + margin-left: 0 !important; + } + + .ms-1 { + margin-left: 0.25rem !important; + } + + .ms-2 { + margin-left: 0.5rem !important; + } + + .ms-3 { + margin-left: 1rem !important; + } + + .ms-4 { + margin-left: 1.5rem !important; + } + + .ms-5 { + margin-left: 3rem !important; + } + + .ms-auto { + margin-left: auto !important; + } + + .p-0 { + padding: 0 !important; + } + + .p-1 { + padding: 0.25rem !important; + } + + .p-2 { + padding: 0.5rem !important; + } + + .p-3 { + padding: 1rem !important; + } + + .p-4 { + padding: 1.5rem !important; + } + + .p-5 { + padding: 3rem !important; + } + + .px-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + + .px-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; + } + + .px-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; + } + + .px-3 { + padding-right: 1rem !important; + padding-left: 1rem !important; + } + + .px-4 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; + } + + .px-5 { + padding-right: 3rem !important; + padding-left: 3rem !important; + } + + .py-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + + .py-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + + .py-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + + .py-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + + .py-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + + .py-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + + .pt-0 { + padding-top: 0 !important; + } + + .pt-1 { + padding-top: 0.25rem !important; + } + + .pt-2 { + padding-top: 0.5rem !important; + } + + .pt-3 { + padding-top: 1rem !important; + } + + .pt-4 { + padding-top: 1.5rem !important; + } + + .pt-5 { + padding-top: 3rem !important; + } + + .pe-0 { + padding-right: 0 !important; + } + + .pe-1 { + padding-right: 0.25rem !important; + } + + .pe-2 { + padding-right: 0.5rem !important; + } + + .pe-3 { + padding-right: 1rem !important; + } + + .pe-4 { + padding-right: 1.5rem !important; + } + + .pe-5 { + padding-right: 3rem !important; + } + + .pb-0 { + padding-bottom: 0 !important; + } + + .pb-1 { + padding-bottom: 0.25rem !important; + } + + .pb-2 { + padding-bottom: 0.5rem !important; + } + + .pb-3 { + padding-bottom: 1rem !important; + } + + .pb-4 { + padding-bottom: 1.5rem !important; + } + + .pb-5 { + padding-bottom: 3rem !important; + } + + .ps-0 { + padding-left: 0 !important; + } + + .ps-1 { + padding-left: 0.25rem !important; + } + + .ps-2 { + padding-left: 0.5rem !important; + } + + .ps-3 { + padding-left: 1rem !important; + } + + .ps-4 { + padding-left: 1.5rem !important; + } + + .ps-5 { + padding-left: 3rem !important; + } + + @media (min-width: 576px) { + .d-sm-inline { + display: inline !important; + } + + .d-sm-inline-block { + display: inline-block !important; + } + + .d-sm-block { + display: block !important; + } + + .d-sm-grid { + display: grid !important; + } + + .d-sm-table { + display: table !important; + } + + .d-sm-table-row { + display: table-row !important; + } + + .d-sm-table-cell { + display: table-cell !important; + } + + .d-sm-flex { + display: flex !important; + } + + .d-sm-inline-flex { + display: inline-flex !important; + } + + .d-sm-none { + display: none !important; + } + + .flex-sm-fill { + flex: 1 1 auto !important; + } + + .flex-sm-row { + flex-direction: row !important; + } + + .flex-sm-column { + flex-direction: column !important; + } + + .flex-sm-row-reverse { + flex-direction: row-reverse !important; + } + + .flex-sm-column-reverse { + flex-direction: column-reverse !important; + } + + .flex-sm-grow-0 { + flex-grow: 0 !important; + } + + .flex-sm-grow-1 { + flex-grow: 1 !important; + } + + .flex-sm-shrink-0 { + flex-shrink: 0 !important; + } + + .flex-sm-shrink-1 { + flex-shrink: 1 !important; + } + + .flex-sm-wrap { + flex-wrap: wrap !important; + } + + .flex-sm-nowrap { + flex-wrap: nowrap !important; + } + + .flex-sm-wrap-reverse { + flex-wrap: wrap-reverse !important; + } + + .justify-content-sm-start { + justify-content: flex-start !important; + } + + .justify-content-sm-end { + justify-content: flex-end !important; + } + + .justify-content-sm-center { + justify-content: center !important; + } + + .justify-content-sm-between { + justify-content: space-between !important; + } + + .justify-content-sm-around { + justify-content: space-around !important; + } + + .justify-content-sm-evenly { + justify-content: space-evenly !important; + } + + .align-items-sm-start { + align-items: flex-start !important; + } + + .align-items-sm-end { + align-items: flex-end !important; + } + + .align-items-sm-center { + align-items: center !important; + } + + .align-items-sm-baseline { + align-items: baseline !important; + } + + .align-items-sm-stretch { + align-items: stretch !important; + } + + .align-content-sm-start { + align-content: flex-start !important; + } + + .align-content-sm-end { + align-content: flex-end !important; + } + + .align-content-sm-center { + align-content: center !important; + } + + .align-content-sm-between { + align-content: space-between !important; + } + + .align-content-sm-around { + align-content: space-around !important; + } + + .align-content-sm-stretch { + align-content: stretch !important; + } + + .align-self-sm-auto { + align-self: auto !important; + } + + .align-self-sm-start { + align-self: flex-start !important; + } + + .align-self-sm-end { + align-self: flex-end !important; + } + + .align-self-sm-center { + align-self: center !important; + } + + .align-self-sm-baseline { + align-self: baseline !important; + } + + .align-self-sm-stretch { + align-self: stretch !important; + } + + .order-sm-first { + order: -1 !important; + } + + .order-sm-0 { + order: 0 !important; + } + + .order-sm-1 { + order: 1 !important; + } + + .order-sm-2 { + order: 2 !important; + } + + .order-sm-3 { + order: 3 !important; + } + + .order-sm-4 { + order: 4 !important; + } + + .order-sm-5 { + order: 5 !important; + } + + .order-sm-last { + order: 6 !important; + } + + .m-sm-0 { + margin: 0 !important; + } + + .m-sm-1 { + margin: 0.25rem !important; + } + + .m-sm-2 { + margin: 0.5rem !important; + } + + .m-sm-3 { + margin: 1rem !important; + } + + .m-sm-4 { + margin: 1.5rem !important; + } + + .m-sm-5 { + margin: 3rem !important; + } + + .m-sm-auto { + margin: auto !important; + } + + .mx-sm-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + + .mx-sm-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; + } + + .mx-sm-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; + } + + .mx-sm-3 { + margin-right: 1rem !important; + margin-left: 1rem !important; + } + + .mx-sm-4 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; + } + + .mx-sm-5 { + margin-right: 3rem !important; + margin-left: 3rem !important; + } + + .mx-sm-auto { + margin-right: auto !important; + margin-left: auto !important; + } + + .my-sm-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + + .my-sm-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + + .my-sm-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + + .my-sm-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + + .my-sm-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + + .my-sm-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + + .my-sm-auto { + margin-top: auto !important; + margin-bottom: auto !important; + } + + .mt-sm-0 { + margin-top: 0 !important; + } + + .mt-sm-1 { + margin-top: 0.25rem !important; + } + + .mt-sm-2 { + margin-top: 0.5rem !important; + } + + .mt-sm-3 { + margin-top: 1rem !important; + } + + .mt-sm-4 { + margin-top: 1.5rem !important; + } + + .mt-sm-5 { + margin-top: 3rem !important; + } + + .mt-sm-auto { + margin-top: auto !important; + } + + .me-sm-0 { + margin-right: 0 !important; + } + + .me-sm-1 { + margin-right: 0.25rem !important; + } + + .me-sm-2 { + margin-right: 0.5rem !important; + } + + .me-sm-3 { + margin-right: 1rem !important; + } + + .me-sm-4 { + margin-right: 1.5rem !important; + } + + .me-sm-5 { + margin-right: 3rem !important; + } + + .me-sm-auto { + margin-right: auto !important; + } + + .mb-sm-0 { + margin-bottom: 0 !important; + } + + .mb-sm-1 { + margin-bottom: 0.25rem !important; + } + + .mb-sm-2 { + margin-bottom: 0.5rem !important; + } + + .mb-sm-3 { + margin-bottom: 1rem !important; + } + + .mb-sm-4 { + margin-bottom: 1.5rem !important; + } + + .mb-sm-5 { + margin-bottom: 3rem !important; + } + + .mb-sm-auto { + margin-bottom: auto !important; + } + + .ms-sm-0 { + margin-left: 0 !important; + } + + .ms-sm-1 { + margin-left: 0.25rem !important; + } + + .ms-sm-2 { + margin-left: 0.5rem !important; + } + + .ms-sm-3 { + margin-left: 1rem !important; + } + + .ms-sm-4 { + margin-left: 1.5rem !important; + } + + .ms-sm-5 { + margin-left: 3rem !important; + } + + .ms-sm-auto { + margin-left: auto !important; + } + + .p-sm-0 { + padding: 0 !important; + } + + .p-sm-1 { + padding: 0.25rem !important; + } + + .p-sm-2 { + padding: 0.5rem !important; + } + + .p-sm-3 { + padding: 1rem !important; + } + + .p-sm-4 { + padding: 1.5rem !important; + } + + .p-sm-5 { + padding: 3rem !important; + } + + .px-sm-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + + .px-sm-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; + } + + .px-sm-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; + } + + .px-sm-3 { + padding-right: 1rem !important; + padding-left: 1rem !important; + } + + .px-sm-4 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; + } + + .px-sm-5 { + padding-right: 3rem !important; + padding-left: 3rem !important; + } + + .py-sm-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + + .py-sm-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + + .py-sm-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + + .py-sm-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + + .py-sm-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + + .py-sm-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + + .pt-sm-0 { + padding-top: 0 !important; + } + + .pt-sm-1 { + padding-top: 0.25rem !important; + } + + .pt-sm-2 { + padding-top: 0.5rem !important; + } + + .pt-sm-3 { + padding-top: 1rem !important; + } + + .pt-sm-4 { + padding-top: 1.5rem !important; + } + + .pt-sm-5 { + padding-top: 3rem !important; + } + + .pe-sm-0 { + padding-right: 0 !important; + } + + .pe-sm-1 { + padding-right: 0.25rem !important; + } + + .pe-sm-2 { + padding-right: 0.5rem !important; + } + + .pe-sm-3 { + padding-right: 1rem !important; + } + + .pe-sm-4 { + padding-right: 1.5rem !important; + } + + .pe-sm-5 { + padding-right: 3rem !important; + } + + .pb-sm-0 { + padding-bottom: 0 !important; + } + + .pb-sm-1 { + padding-bottom: 0.25rem !important; + } + + .pb-sm-2 { + padding-bottom: 0.5rem !important; + } + + .pb-sm-3 { + padding-bottom: 1rem !important; + } + + .pb-sm-4 { + padding-bottom: 1.5rem !important; + } + + .pb-sm-5 { + padding-bottom: 3rem !important; + } + + .ps-sm-0 { + padding-left: 0 !important; + } + + .ps-sm-1 { + padding-left: 0.25rem !important; + } + + .ps-sm-2 { + padding-left: 0.5rem !important; + } + + .ps-sm-3 { + padding-left: 1rem !important; + } + + .ps-sm-4 { + padding-left: 1.5rem !important; + } + + .ps-sm-5 { + padding-left: 3rem !important; + } + } + @media (min-width: 768px) { + .d-md-inline { + display: inline !important; + } + + .d-md-inline-block { + display: inline-block !important; + } + + .d-md-block { + display: block !important; + } + + .d-md-grid { + display: grid !important; + } + + .d-md-table { + display: table !important; + } + + .d-md-table-row { + display: table-row !important; + } + + .d-md-table-cell { + display: table-cell !important; + } + + .d-md-flex { + display: flex !important; + } + + .d-md-inline-flex { + display: inline-flex !important; + } + + .d-md-none { + display: none !important; + } + + .flex-md-fill { + flex: 1 1 auto !important; + } + + .flex-md-row { + flex-direction: row !important; + } + + .flex-md-column { + flex-direction: column !important; + } + + .flex-md-row-reverse { + flex-direction: row-reverse !important; + } + + .flex-md-column-reverse { + flex-direction: column-reverse !important; + } + + .flex-md-grow-0 { + flex-grow: 0 !important; + } + + .flex-md-grow-1 { + flex-grow: 1 !important; + } + + .flex-md-shrink-0 { + flex-shrink: 0 !important; + } + + .flex-md-shrink-1 { + flex-shrink: 1 !important; + } + + .flex-md-wrap { + flex-wrap: wrap !important; + } + + .flex-md-nowrap { + flex-wrap: nowrap !important; + } + + .flex-md-wrap-reverse { + flex-wrap: wrap-reverse !important; + } + + .justify-content-md-start { + justify-content: flex-start !important; + } + + .justify-content-md-end { + justify-content: flex-end !important; + } + + .justify-content-md-center { + justify-content: center !important; + } + + .justify-content-md-between { + justify-content: space-between !important; + } + + .justify-content-md-around { + justify-content: space-around !important; + } + + .justify-content-md-evenly { + justify-content: space-evenly !important; + } + + .align-items-md-start { + align-items: flex-start !important; + } + + .align-items-md-end { + align-items: flex-end !important; + } + + .align-items-md-center { + align-items: center !important; + } + + .align-items-md-baseline { + align-items: baseline !important; + } + + .align-items-md-stretch { + align-items: stretch !important; + } + + .align-content-md-start { + align-content: flex-start !important; + } + + .align-content-md-end { + align-content: flex-end !important; + } + + .align-content-md-center { + align-content: center !important; + } + + .align-content-md-between { + align-content: space-between !important; + } + + .align-content-md-around { + align-content: space-around !important; + } + + .align-content-md-stretch { + align-content: stretch !important; + } + + .align-self-md-auto { + align-self: auto !important; + } + + .align-self-md-start { + align-self: flex-start !important; + } + + .align-self-md-end { + align-self: flex-end !important; + } + + .align-self-md-center { + align-self: center !important; + } + + .align-self-md-baseline { + align-self: baseline !important; + } + + .align-self-md-stretch { + align-self: stretch !important; + } + + .order-md-first { + order: -1 !important; + } + + .order-md-0 { + order: 0 !important; + } + + .order-md-1 { + order: 1 !important; + } + + .order-md-2 { + order: 2 !important; + } + + .order-md-3 { + order: 3 !important; + } + + .order-md-4 { + order: 4 !important; + } + + .order-md-5 { + order: 5 !important; + } + + .order-md-last { + order: 6 !important; + } + + .m-md-0 { + margin: 0 !important; + } + + .m-md-1 { + margin: 0.25rem !important; + } + + .m-md-2 { + margin: 0.5rem !important; + } + + .m-md-3 { + margin: 1rem !important; + } + + .m-md-4 { + margin: 1.5rem !important; + } + + .m-md-5 { + margin: 3rem !important; + } + + .m-md-auto { + margin: auto !important; + } + + .mx-md-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + + .mx-md-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; + } + + .mx-md-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; + } + + .mx-md-3 { + margin-right: 1rem !important; + margin-left: 1rem !important; + } + + .mx-md-4 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; + } + + .mx-md-5 { + margin-right: 3rem !important; + margin-left: 3rem !important; + } + + .mx-md-auto { + margin-right: auto !important; + margin-left: auto !important; + } + + .my-md-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + + .my-md-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + + .my-md-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + + .my-md-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + + .my-md-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + + .my-md-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + + .my-md-auto { + margin-top: auto !important; + margin-bottom: auto !important; + } + + .mt-md-0 { + margin-top: 0 !important; + } + + .mt-md-1 { + margin-top: 0.25rem !important; + } + + .mt-md-2 { + margin-top: 0.5rem !important; + } + + .mt-md-3 { + margin-top: 1rem !important; + } + + .mt-md-4 { + margin-top: 1.5rem !important; + } + + .mt-md-5 { + margin-top: 3rem !important; + } + + .mt-md-auto { + margin-top: auto !important; + } + + .me-md-0 { + margin-right: 0 !important; + } + + .me-md-1 { + margin-right: 0.25rem !important; + } + + .me-md-2 { + margin-right: 0.5rem !important; + } + + .me-md-3 { + margin-right: 1rem !important; + } + + .me-md-4 { + margin-right: 1.5rem !important; + } + + .me-md-5 { + margin-right: 3rem !important; + } + + .me-md-auto { + margin-right: auto !important; + } + + .mb-md-0 { + margin-bottom: 0 !important; + } + + .mb-md-1 { + margin-bottom: 0.25rem !important; + } + + .mb-md-2 { + margin-bottom: 0.5rem !important; + } + + .mb-md-3 { + margin-bottom: 1rem !important; + } + + .mb-md-4 { + margin-bottom: 1.5rem !important; + } + + .mb-md-5 { + margin-bottom: 3rem !important; + } + + .mb-md-auto { + margin-bottom: auto !important; + } + + .ms-md-0 { + margin-left: 0 !important; + } + + .ms-md-1 { + margin-left: 0.25rem !important; + } + + .ms-md-2 { + margin-left: 0.5rem !important; + } + + .ms-md-3 { + margin-left: 1rem !important; + } + + .ms-md-4 { + margin-left: 1.5rem !important; + } + + .ms-md-5 { + margin-left: 3rem !important; + } + + .ms-md-auto { + margin-left: auto !important; + } + + .p-md-0 { + padding: 0 !important; + } + + .p-md-1 { + padding: 0.25rem !important; + } + + .p-md-2 { + padding: 0.5rem !important; + } + + .p-md-3 { + padding: 1rem !important; + } + + .p-md-4 { + padding: 1.5rem !important; + } + + .p-md-5 { + padding: 3rem !important; + } + + .px-md-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + + .px-md-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; + } + + .px-md-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; + } + + .px-md-3 { + padding-right: 1rem !important; + padding-left: 1rem !important; + } + + .px-md-4 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; + } + + .px-md-5 { + padding-right: 3rem !important; + padding-left: 3rem !important; + } + + .py-md-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + + .py-md-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + + .py-md-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + + .py-md-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + + .py-md-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + + .py-md-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + + .pt-md-0 { + padding-top: 0 !important; + } + + .pt-md-1 { + padding-top: 0.25rem !important; + } + + .pt-md-2 { + padding-top: 0.5rem !important; + } + + .pt-md-3 { + padding-top: 1rem !important; + } + + .pt-md-4 { + padding-top: 1.5rem !important; + } + + .pt-md-5 { + padding-top: 3rem !important; + } + + .pe-md-0 { + padding-right: 0 !important; + } + + .pe-md-1 { + padding-right: 0.25rem !important; + } + + .pe-md-2 { + padding-right: 0.5rem !important; + } + + .pe-md-3 { + padding-right: 1rem !important; + } + + .pe-md-4 { + padding-right: 1.5rem !important; + } + + .pe-md-5 { + padding-right: 3rem !important; + } + + .pb-md-0 { + padding-bottom: 0 !important; + } + + .pb-md-1 { + padding-bottom: 0.25rem !important; + } + + .pb-md-2 { + padding-bottom: 0.5rem !important; + } + + .pb-md-3 { + padding-bottom: 1rem !important; + } + + .pb-md-4 { + padding-bottom: 1.5rem !important; + } + + .pb-md-5 { + padding-bottom: 3rem !important; + } + + .ps-md-0 { + padding-left: 0 !important; + } + + .ps-md-1 { + padding-left: 0.25rem !important; + } + + .ps-md-2 { + padding-left: 0.5rem !important; + } + + .ps-md-3 { + padding-left: 1rem !important; + } + + .ps-md-4 { + padding-left: 1.5rem !important; + } + + .ps-md-5 { + padding-left: 3rem !important; + } + } + @media (min-width: 992px) { + .d-lg-inline { + display: inline !important; + } + + .d-lg-inline-block { + display: inline-block !important; + } + + .d-lg-block { + display: block !important; + } + + .d-lg-grid { + display: grid !important; + } + + .d-lg-table { + display: table !important; + } + + .d-lg-table-row { + display: table-row !important; + } + + .d-lg-table-cell { + display: table-cell !important; + } + + .d-lg-flex { + display: flex !important; + } + + .d-lg-inline-flex { + display: inline-flex !important; + } + + .d-lg-none { + display: none !important; + } + + .flex-lg-fill { + flex: 1 1 auto !important; + } + + .flex-lg-row { + flex-direction: row !important; + } + + .flex-lg-column { + flex-direction: column !important; + } + + .flex-lg-row-reverse { + flex-direction: row-reverse !important; + } + + .flex-lg-column-reverse { + flex-direction: column-reverse !important; + } + + .flex-lg-grow-0 { + flex-grow: 0 !important; + } + + .flex-lg-grow-1 { + flex-grow: 1 !important; + } + + .flex-lg-shrink-0 { + flex-shrink: 0 !important; + } + + .flex-lg-shrink-1 { + flex-shrink: 1 !important; + } + + .flex-lg-wrap { + flex-wrap: wrap !important; + } + + .flex-lg-nowrap { + flex-wrap: nowrap !important; + } + + .flex-lg-wrap-reverse { + flex-wrap: wrap-reverse !important; + } + + .justify-content-lg-start { + justify-content: flex-start !important; + } + + .justify-content-lg-end { + justify-content: flex-end !important; + } + + .justify-content-lg-center { + justify-content: center !important; + } + + .justify-content-lg-between { + justify-content: space-between !important; + } + + .justify-content-lg-around { + justify-content: space-around !important; + } + + .justify-content-lg-evenly { + justify-content: space-evenly !important; + } + + .align-items-lg-start { + align-items: flex-start !important; + } + + .align-items-lg-end { + align-items: flex-end !important; + } + + .align-items-lg-center { + align-items: center !important; + } + + .align-items-lg-baseline { + align-items: baseline !important; + } + + .align-items-lg-stretch { + align-items: stretch !important; + } + + .align-content-lg-start { + align-content: flex-start !important; + } + + .align-content-lg-end { + align-content: flex-end !important; + } + + .align-content-lg-center { + align-content: center !important; + } + + .align-content-lg-between { + align-content: space-between !important; + } + + .align-content-lg-around { + align-content: space-around !important; + } + + .align-content-lg-stretch { + align-content: stretch !important; + } + + .align-self-lg-auto { + align-self: auto !important; + } + + .align-self-lg-start { + align-self: flex-start !important; + } + + .align-self-lg-end { + align-self: flex-end !important; + } + + .align-self-lg-center { + align-self: center !important; + } + + .align-self-lg-baseline { + align-self: baseline !important; + } + + .align-self-lg-stretch { + align-self: stretch !important; + } + + .order-lg-first { + order: -1 !important; + } + + .order-lg-0 { + order: 0 !important; + } + + .order-lg-1 { + order: 1 !important; + } + + .order-lg-2 { + order: 2 !important; + } + + .order-lg-3 { + order: 3 !important; + } + + .order-lg-4 { + order: 4 !important; + } + + .order-lg-5 { + order: 5 !important; + } + + .order-lg-last { + order: 6 !important; + } + + .m-lg-0 { + margin: 0 !important; + } + + .m-lg-1 { + margin: 0.25rem !important; + } + + .m-lg-2 { + margin: 0.5rem !important; + } + + .m-lg-3 { + margin: 1rem !important; + } + + .m-lg-4 { + margin: 1.5rem !important; + } + + .m-lg-5 { + margin: 3rem !important; + } + + .m-lg-auto { + margin: auto !important; + } + + .mx-lg-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + + .mx-lg-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; + } + + .mx-lg-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; + } + + .mx-lg-3 { + margin-right: 1rem !important; + margin-left: 1rem !important; + } + + .mx-lg-4 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; + } + + .mx-lg-5 { + margin-right: 3rem !important; + margin-left: 3rem !important; + } + + .mx-lg-auto { + margin-right: auto !important; + margin-left: auto !important; + } + + .my-lg-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + + .my-lg-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + + .my-lg-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + + .my-lg-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + + .my-lg-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + + .my-lg-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + + .my-lg-auto { + margin-top: auto !important; + margin-bottom: auto !important; + } + + .mt-lg-0 { + margin-top: 0 !important; + } + + .mt-lg-1 { + margin-top: 0.25rem !important; + } + + .mt-lg-2 { + margin-top: 0.5rem !important; + } + + .mt-lg-3 { + margin-top: 1rem !important; + } + + .mt-lg-4 { + margin-top: 1.5rem !important; + } + + .mt-lg-5 { + margin-top: 3rem !important; + } + + .mt-lg-auto { + margin-top: auto !important; + } + + .me-lg-0 { + margin-right: 0 !important; + } + + .me-lg-1 { + margin-right: 0.25rem !important; + } + + .me-lg-2 { + margin-right: 0.5rem !important; + } + + .me-lg-3 { + margin-right: 1rem !important; + } + + .me-lg-4 { + margin-right: 1.5rem !important; + } + + .me-lg-5 { + margin-right: 3rem !important; + } + + .me-lg-auto { + margin-right: auto !important; + } + + .mb-lg-0 { + margin-bottom: 0 !important; + } + + .mb-lg-1 { + margin-bottom: 0.25rem !important; + } + + .mb-lg-2 { + margin-bottom: 0.5rem !important; + } + + .mb-lg-3 { + margin-bottom: 1rem !important; + } + + .mb-lg-4 { + margin-bottom: 1.5rem !important; + } + + .mb-lg-5 { + margin-bottom: 3rem !important; + } + + .mb-lg-auto { + margin-bottom: auto !important; + } + + .ms-lg-0 { + margin-left: 0 !important; + } + + .ms-lg-1 { + margin-left: 0.25rem !important; + } + + .ms-lg-2 { + margin-left: 0.5rem !important; + } + + .ms-lg-3 { + margin-left: 1rem !important; + } + + .ms-lg-4 { + margin-left: 1.5rem !important; + } + + .ms-lg-5 { + margin-left: 3rem !important; + } + + .ms-lg-auto { + margin-left: auto !important; + } + + .p-lg-0 { + padding: 0 !important; + } + + .p-lg-1 { + padding: 0.25rem !important; + } + + .p-lg-2 { + padding: 0.5rem !important; + } + + .p-lg-3 { + padding: 1rem !important; + } + + .p-lg-4 { + padding: 1.5rem !important; + } + + .p-lg-5 { + padding: 3rem !important; + } + + .px-lg-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + + .px-lg-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; + } + + .px-lg-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; + } + + .px-lg-3 { + padding-right: 1rem !important; + padding-left: 1rem !important; + } + + .px-lg-4 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; + } + + .px-lg-5 { + padding-right: 3rem !important; + padding-left: 3rem !important; + } + + .py-lg-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + + .py-lg-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + + .py-lg-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + + .py-lg-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + + .py-lg-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + + .py-lg-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + + .pt-lg-0 { + padding-top: 0 !important; + } + + .pt-lg-1 { + padding-top: 0.25rem !important; + } + + .pt-lg-2 { + padding-top: 0.5rem !important; + } + + .pt-lg-3 { + padding-top: 1rem !important; + } + + .pt-lg-4 { + padding-top: 1.5rem !important; + } + + .pt-lg-5 { + padding-top: 3rem !important; + } + + .pe-lg-0 { + padding-right: 0 !important; + } + + .pe-lg-1 { + padding-right: 0.25rem !important; + } + + .pe-lg-2 { + padding-right: 0.5rem !important; + } + + .pe-lg-3 { + padding-right: 1rem !important; + } + + .pe-lg-4 { + padding-right: 1.5rem !important; + } + + .pe-lg-5 { + padding-right: 3rem !important; + } + + .pb-lg-0 { + padding-bottom: 0 !important; + } + + .pb-lg-1 { + padding-bottom: 0.25rem !important; + } + + .pb-lg-2 { + padding-bottom: 0.5rem !important; + } + + .pb-lg-3 { + padding-bottom: 1rem !important; + } + + .pb-lg-4 { + padding-bottom: 1.5rem !important; + } + + .pb-lg-5 { + padding-bottom: 3rem !important; + } + + .ps-lg-0 { + padding-left: 0 !important; + } + + .ps-lg-1 { + padding-left: 0.25rem !important; + } + + .ps-lg-2 { + padding-left: 0.5rem !important; + } + + .ps-lg-3 { + padding-left: 1rem !important; + } + + .ps-lg-4 { + padding-left: 1.5rem !important; + } + + .ps-lg-5 { + padding-left: 3rem !important; + } + } + @media (min-width: 1200px) { + .d-xl-inline { + display: inline !important; + } + + .d-xl-inline-block { + display: inline-block !important; + } + + .d-xl-block { + display: block !important; + } + + .d-xl-grid { + display: grid !important; + } + + .d-xl-table { + display: table !important; + } + + .d-xl-table-row { + display: table-row !important; + } + + .d-xl-table-cell { + display: table-cell !important; + } + + .d-xl-flex { + display: flex !important; + } + + .d-xl-inline-flex { + display: inline-flex !important; + } + + .d-xl-none { + display: none !important; + } + + .flex-xl-fill { + flex: 1 1 auto !important; + } + + .flex-xl-row { + flex-direction: row !important; + } + + .flex-xl-column { + flex-direction: column !important; + } + + .flex-xl-row-reverse { + flex-direction: row-reverse !important; + } + + .flex-xl-column-reverse { + flex-direction: column-reverse !important; + } + + .flex-xl-grow-0 { + flex-grow: 0 !important; + } + + .flex-xl-grow-1 { + flex-grow: 1 !important; + } + + .flex-xl-shrink-0 { + flex-shrink: 0 !important; + } + + .flex-xl-shrink-1 { + flex-shrink: 1 !important; + } + + .flex-xl-wrap { + flex-wrap: wrap !important; + } + + .flex-xl-nowrap { + flex-wrap: nowrap !important; + } + + .flex-xl-wrap-reverse { + flex-wrap: wrap-reverse !important; + } + + .justify-content-xl-start { + justify-content: flex-start !important; + } + + .justify-content-xl-end { + justify-content: flex-end !important; + } + + .justify-content-xl-center { + justify-content: center !important; + } + + .justify-content-xl-between { + justify-content: space-between !important; + } + + .justify-content-xl-around { + justify-content: space-around !important; + } + + .justify-content-xl-evenly { + justify-content: space-evenly !important; + } + + .align-items-xl-start { + align-items: flex-start !important; + } + + .align-items-xl-end { + align-items: flex-end !important; + } + + .align-items-xl-center { + align-items: center !important; + } + + .align-items-xl-baseline { + align-items: baseline !important; + } + + .align-items-xl-stretch { + align-items: stretch !important; + } + + .align-content-xl-start { + align-content: flex-start !important; + } + + .align-content-xl-end { + align-content: flex-end !important; + } + + .align-content-xl-center { + align-content: center !important; + } + + .align-content-xl-between { + align-content: space-between !important; + } + + .align-content-xl-around { + align-content: space-around !important; + } + + .align-content-xl-stretch { + align-content: stretch !important; + } + + .align-self-xl-auto { + align-self: auto !important; + } + + .align-self-xl-start { + align-self: flex-start !important; + } + + .align-self-xl-end { + align-self: flex-end !important; + } + + .align-self-xl-center { + align-self: center !important; + } + + .align-self-xl-baseline { + align-self: baseline !important; + } + + .align-self-xl-stretch { + align-self: stretch !important; + } + + .order-xl-first { + order: -1 !important; + } + + .order-xl-0 { + order: 0 !important; + } + + .order-xl-1 { + order: 1 !important; + } + + .order-xl-2 { + order: 2 !important; + } + + .order-xl-3 { + order: 3 !important; + } + + .order-xl-4 { + order: 4 !important; + } + + .order-xl-5 { + order: 5 !important; + } + + .order-xl-last { + order: 6 !important; + } + + .m-xl-0 { + margin: 0 !important; + } + + .m-xl-1 { + margin: 0.25rem !important; + } + + .m-xl-2 { + margin: 0.5rem !important; + } + + .m-xl-3 { + margin: 1rem !important; + } + + .m-xl-4 { + margin: 1.5rem !important; + } + + .m-xl-5 { + margin: 3rem !important; + } + + .m-xl-auto { + margin: auto !important; + } + + .mx-xl-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + + .mx-xl-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; + } + + .mx-xl-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; + } + + .mx-xl-3 { + margin-right: 1rem !important; + margin-left: 1rem !important; + } + + .mx-xl-4 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; + } + + .mx-xl-5 { + margin-right: 3rem !important; + margin-left: 3rem !important; + } + + .mx-xl-auto { + margin-right: auto !important; + margin-left: auto !important; + } + + .my-xl-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + + .my-xl-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + + .my-xl-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + + .my-xl-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + + .my-xl-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + + .my-xl-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + + .my-xl-auto { + margin-top: auto !important; + margin-bottom: auto !important; + } + + .mt-xl-0 { + margin-top: 0 !important; + } + + .mt-xl-1 { + margin-top: 0.25rem !important; + } + + .mt-xl-2 { + margin-top: 0.5rem !important; + } + + .mt-xl-3 { + margin-top: 1rem !important; + } + + .mt-xl-4 { + margin-top: 1.5rem !important; + } + + .mt-xl-5 { + margin-top: 3rem !important; + } + + .mt-xl-auto { + margin-top: auto !important; + } + + .me-xl-0 { + margin-right: 0 !important; + } + + .me-xl-1 { + margin-right: 0.25rem !important; + } + + .me-xl-2 { + margin-right: 0.5rem !important; + } + + .me-xl-3 { + margin-right: 1rem !important; + } + + .me-xl-4 { + margin-right: 1.5rem !important; + } + + .me-xl-5 { + margin-right: 3rem !important; + } + + .me-xl-auto { + margin-right: auto !important; + } + + .mb-xl-0 { + margin-bottom: 0 !important; + } + + .mb-xl-1 { + margin-bottom: 0.25rem !important; + } + + .mb-xl-2 { + margin-bottom: 0.5rem !important; + } + + .mb-xl-3 { + margin-bottom: 1rem !important; + } + + .mb-xl-4 { + margin-bottom: 1.5rem !important; + } + + .mb-xl-5 { + margin-bottom: 3rem !important; + } + + .mb-xl-auto { + margin-bottom: auto !important; + } + + .ms-xl-0 { + margin-left: 0 !important; + } + + .ms-xl-1 { + margin-left: 0.25rem !important; + } + + .ms-xl-2 { + margin-left: 0.5rem !important; + } + + .ms-xl-3 { + margin-left: 1rem !important; + } + + .ms-xl-4 { + margin-left: 1.5rem !important; + } + + .ms-xl-5 { + margin-left: 3rem !important; + } + + .ms-xl-auto { + margin-left: auto !important; + } + + .p-xl-0 { + padding: 0 !important; + } + + .p-xl-1 { + padding: 0.25rem !important; + } + + .p-xl-2 { + padding: 0.5rem !important; + } + + .p-xl-3 { + padding: 1rem !important; + } + + .p-xl-4 { + padding: 1.5rem !important; + } + + .p-xl-5 { + padding: 3rem !important; + } + + .px-xl-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + + .px-xl-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; + } + + .px-xl-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; + } + + .px-xl-3 { + padding-right: 1rem !important; + padding-left: 1rem !important; + } + + .px-xl-4 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; + } + + .px-xl-5 { + padding-right: 3rem !important; + padding-left: 3rem !important; + } + + .py-xl-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + + .py-xl-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + + .py-xl-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + + .py-xl-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + + .py-xl-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + + .py-xl-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + + .pt-xl-0 { + padding-top: 0 !important; + } + + .pt-xl-1 { + padding-top: 0.25rem !important; + } + + .pt-xl-2 { + padding-top: 0.5rem !important; + } + + .pt-xl-3 { + padding-top: 1rem !important; + } + + .pt-xl-4 { + padding-top: 1.5rem !important; + } + + .pt-xl-5 { + padding-top: 3rem !important; + } + + .pe-xl-0 { + padding-right: 0 !important; + } + + .pe-xl-1 { + padding-right: 0.25rem !important; + } + + .pe-xl-2 { + padding-right: 0.5rem !important; + } + + .pe-xl-3 { + padding-right: 1rem !important; + } + + .pe-xl-4 { + padding-right: 1.5rem !important; + } + + .pe-xl-5 { + padding-right: 3rem !important; + } + + .pb-xl-0 { + padding-bottom: 0 !important; + } + + .pb-xl-1 { + padding-bottom: 0.25rem !important; + } + + .pb-xl-2 { + padding-bottom: 0.5rem !important; + } + + .pb-xl-3 { + padding-bottom: 1rem !important; + } + + .pb-xl-4 { + padding-bottom: 1.5rem !important; + } + + .pb-xl-5 { + padding-bottom: 3rem !important; + } + + .ps-xl-0 { + padding-left: 0 !important; + } + + .ps-xl-1 { + padding-left: 0.25rem !important; + } + + .ps-xl-2 { + padding-left: 0.5rem !important; + } + + .ps-xl-3 { + padding-left: 1rem !important; + } + + .ps-xl-4 { + padding-left: 1.5rem !important; + } + + .ps-xl-5 { + padding-left: 3rem !important; + } + } + @media (min-width: 1400px) { + .d-xxl-inline { + display: inline !important; + } + + .d-xxl-inline-block { + display: inline-block !important; + } + + .d-xxl-block { + display: block !important; + } + + .d-xxl-grid { + display: grid !important; + } + + .d-xxl-table { + display: table !important; + } + + .d-xxl-table-row { + display: table-row !important; + } + + .d-xxl-table-cell { + display: table-cell !important; + } + + .d-xxl-flex { + display: flex !important; + } + + .d-xxl-inline-flex { + display: inline-flex !important; + } + + .d-xxl-none { + display: none !important; + } + + .flex-xxl-fill { + flex: 1 1 auto !important; + } + + .flex-xxl-row { + flex-direction: row !important; + } + + .flex-xxl-column { + flex-direction: column !important; + } + + .flex-xxl-row-reverse { + flex-direction: row-reverse !important; + } + + .flex-xxl-column-reverse { + flex-direction: column-reverse !important; + } + + .flex-xxl-grow-0 { + flex-grow: 0 !important; + } + + .flex-xxl-grow-1 { + flex-grow: 1 !important; + } + + .flex-xxl-shrink-0 { + flex-shrink: 0 !important; + } + + .flex-xxl-shrink-1 { + flex-shrink: 1 !important; + } + + .flex-xxl-wrap { + flex-wrap: wrap !important; + } + + .flex-xxl-nowrap { + flex-wrap: nowrap !important; + } + + .flex-xxl-wrap-reverse { + flex-wrap: wrap-reverse !important; + } + + .justify-content-xxl-start { + justify-content: flex-start !important; + } + + .justify-content-xxl-end { + justify-content: flex-end !important; + } + + .justify-content-xxl-center { + justify-content: center !important; + } + + .justify-content-xxl-between { + justify-content: space-between !important; + } + + .justify-content-xxl-around { + justify-content: space-around !important; + } + + .justify-content-xxl-evenly { + justify-content: space-evenly !important; + } + + .align-items-xxl-start { + align-items: flex-start !important; + } + + .align-items-xxl-end { + align-items: flex-end !important; + } + + .align-items-xxl-center { + align-items: center !important; + } + + .align-items-xxl-baseline { + align-items: baseline !important; + } + + .align-items-xxl-stretch { + align-items: stretch !important; + } + + .align-content-xxl-start { + align-content: flex-start !important; + } + + .align-content-xxl-end { + align-content: flex-end !important; + } + + .align-content-xxl-center { + align-content: center !important; + } + + .align-content-xxl-between { + align-content: space-between !important; + } + + .align-content-xxl-around { + align-content: space-around !important; + } + + .align-content-xxl-stretch { + align-content: stretch !important; + } + + .align-self-xxl-auto { + align-self: auto !important; + } + + .align-self-xxl-start { + align-self: flex-start !important; + } + + .align-self-xxl-end { + align-self: flex-end !important; + } + + .align-self-xxl-center { + align-self: center !important; + } + + .align-self-xxl-baseline { + align-self: baseline !important; + } + + .align-self-xxl-stretch { + align-self: stretch !important; + } + + .order-xxl-first { + order: -1 !important; + } + + .order-xxl-0 { + order: 0 !important; + } + + .order-xxl-1 { + order: 1 !important; + } + + .order-xxl-2 { + order: 2 !important; + } + + .order-xxl-3 { + order: 3 !important; + } + + .order-xxl-4 { + order: 4 !important; + } + + .order-xxl-5 { + order: 5 !important; + } + + .order-xxl-last { + order: 6 !important; + } + + .m-xxl-0 { + margin: 0 !important; + } + + .m-xxl-1 { + margin: 0.25rem !important; + } + + .m-xxl-2 { + margin: 0.5rem !important; + } + + .m-xxl-3 { + margin: 1rem !important; + } + + .m-xxl-4 { + margin: 1.5rem !important; + } + + .m-xxl-5 { + margin: 3rem !important; + } + + .m-xxl-auto { + margin: auto !important; + } + + .mx-xxl-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + + .mx-xxl-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; + } + + .mx-xxl-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; + } + + .mx-xxl-3 { + margin-right: 1rem !important; + margin-left: 1rem !important; + } + + .mx-xxl-4 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; + } + + .mx-xxl-5 { + margin-right: 3rem !important; + margin-left: 3rem !important; + } + + .mx-xxl-auto { + margin-right: auto !important; + margin-left: auto !important; + } + + .my-xxl-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + + .my-xxl-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + + .my-xxl-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + + .my-xxl-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + + .my-xxl-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + + .my-xxl-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + + .my-xxl-auto { + margin-top: auto !important; + margin-bottom: auto !important; + } + + .mt-xxl-0 { + margin-top: 0 !important; + } + + .mt-xxl-1 { + margin-top: 0.25rem !important; + } + + .mt-xxl-2 { + margin-top: 0.5rem !important; + } + + .mt-xxl-3 { + margin-top: 1rem !important; + } + + .mt-xxl-4 { + margin-top: 1.5rem !important; + } + + .mt-xxl-5 { + margin-top: 3rem !important; + } + + .mt-xxl-auto { + margin-top: auto !important; + } + + .me-xxl-0 { + margin-right: 0 !important; + } + + .me-xxl-1 { + margin-right: 0.25rem !important; + } + + .me-xxl-2 { + margin-right: 0.5rem !important; + } + + .me-xxl-3 { + margin-right: 1rem !important; + } + + .me-xxl-4 { + margin-right: 1.5rem !important; + } + + .me-xxl-5 { + margin-right: 3rem !important; + } + + .me-xxl-auto { + margin-right: auto !important; + } + + .mb-xxl-0 { + margin-bottom: 0 !important; + } + + .mb-xxl-1 { + margin-bottom: 0.25rem !important; + } + + .mb-xxl-2 { + margin-bottom: 0.5rem !important; + } + + .mb-xxl-3 { + margin-bottom: 1rem !important; + } + + .mb-xxl-4 { + margin-bottom: 1.5rem !important; + } + + .mb-xxl-5 { + margin-bottom: 3rem !important; + } + + .mb-xxl-auto { + margin-bottom: auto !important; + } + + .ms-xxl-0 { + margin-left: 0 !important; + } + + .ms-xxl-1 { + margin-left: 0.25rem !important; + } + + .ms-xxl-2 { + margin-left: 0.5rem !important; + } + + .ms-xxl-3 { + margin-left: 1rem !important; + } + + .ms-xxl-4 { + margin-left: 1.5rem !important; + } + + .ms-xxl-5 { + margin-left: 3rem !important; + } + + .ms-xxl-auto { + margin-left: auto !important; + } + + .p-xxl-0 { + padding: 0 !important; + } + + .p-xxl-1 { + padding: 0.25rem !important; + } + + .p-xxl-2 { + padding: 0.5rem !important; + } + + .p-xxl-3 { + padding: 1rem !important; + } + + .p-xxl-4 { + padding: 1.5rem !important; + } + + .p-xxl-5 { + padding: 3rem !important; + } + + .px-xxl-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + + .px-xxl-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; + } + + .px-xxl-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; + } + + .px-xxl-3 { + padding-right: 1rem !important; + padding-left: 1rem !important; + } + + .px-xxl-4 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; + } + + .px-xxl-5 { + padding-right: 3rem !important; + padding-left: 3rem !important; + } + + .py-xxl-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + + .py-xxl-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + + .py-xxl-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + + .py-xxl-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + + .py-xxl-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + + .py-xxl-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + + .pt-xxl-0 { + padding-top: 0 !important; + } + + .pt-xxl-1 { + padding-top: 0.25rem !important; + } + + .pt-xxl-2 { + padding-top: 0.5rem !important; + } + + .pt-xxl-3 { + padding-top: 1rem !important; + } + + .pt-xxl-4 { + padding-top: 1.5rem !important; + } + + .pt-xxl-5 { + padding-top: 3rem !important; + } + + .pe-xxl-0 { + padding-right: 0 !important; + } + + .pe-xxl-1 { + padding-right: 0.25rem !important; + } + + .pe-xxl-2 { + padding-right: 0.5rem !important; + } + + .pe-xxl-3 { + padding-right: 1rem !important; + } + + .pe-xxl-4 { + padding-right: 1.5rem !important; + } + + .pe-xxl-5 { + padding-right: 3rem !important; + } + + .pb-xxl-0 { + padding-bottom: 0 !important; + } + + .pb-xxl-1 { + padding-bottom: 0.25rem !important; + } + + .pb-xxl-2 { + padding-bottom: 0.5rem !important; + } + + .pb-xxl-3 { + padding-bottom: 1rem !important; + } + + .pb-xxl-4 { + padding-bottom: 1.5rem !important; + } + + .pb-xxl-5 { + padding-bottom: 3rem !important; + } + + .ps-xxl-0 { + padding-left: 0 !important; + } + + .ps-xxl-1 { + padding-left: 0.25rem !important; + } + + .ps-xxl-2 { + padding-left: 0.5rem !important; + } + + .ps-xxl-3 { + padding-left: 1rem !important; + } + + .ps-xxl-4 { + padding-left: 1.5rem !important; + } + + .ps-xxl-5 { + padding-left: 3rem !important; + } + } + @media print { + .d-print-inline { + display: inline !important; + } + + .d-print-inline-block { + display: inline-block !important; + } + + .d-print-block { + display: block !important; + } + + .d-print-grid { + display: grid !important; + } + + .d-print-table { + display: table !important; + } + + .d-print-table-row { + display: table-row !important; + } + + .d-print-table-cell { + display: table-cell !important; + } + + .d-print-flex { + display: flex !important; + } + + .d-print-inline-flex { + display: inline-flex !important; + } + + .d-print-none { + display: none !important; + } + } + \ No newline at end of file diff --git a/src/renderer/style.less b/src/renderer/style.less index 358d34c7..38b8251b 100644 --- a/src/renderer/style.less +++ b/src/renderer/style.less @@ -2977,7 +2977,7 @@ input[type="range"].web-slider.display--small::-webkit-slider-thumb { padding-top: var(--navigationBarHeight); .playlist-body { - padding: 0px var(--contentInnerPadding) 0px var(--contentInnerPadding); + padding: var(--contentInnerPadding) 2em; margin-top: -75px; } @@ -3445,7 +3445,7 @@ input[type="range"].web-slider.display--small::-webkit-slider-thumb { .artist-body { padding: 0px var(--contentInnerPadding) 0px var(--contentInnerPadding); - margin-top: -140px; + margin: -140px 20px; } &.animated > .artist-body { @@ -5410,26 +5410,19 @@ input[type="range"].web-slider.display--small::-webkit-slider-thumb { // Cider App +.listitem-horizontal { + .cd-mediaitem-list-item { + width: 350px; + height: 60px; + } +} + .mediaitem-list-item__grid { - overflow-x: overlay; - overflow-y: hidden; background: rgba(200, 200, 200, 0.05); border-radius: 10px; padding: var(--contentInnerPadding); box-shadow: rgba(0, 0, 0, 0.08) 0px 0px 0px 1px; - height: 300px; - display: flex; - align-items: center; - - .grid-body { - display: grid; - grid-auto-flow: column dense; - grid-template-rows: auto auto auto auto; - grid-gap: 0 6px; - padding: 2px 0; - justify-content: left; - width: 0; - } + width: 100%; .cd-mediaitem-list-item { width: 350px; diff --git a/src/renderer/views/components/listitem-horizontal.ejs b/src/renderer/views/components/listitem-horizontal.ejs new file mode 100644 index 00000000..73d74838 --- /dev/null +++ b/src/renderer/views/components/listitem-horizontal.ejs @@ -0,0 +1,43 @@ + + + \ No newline at end of file diff --git a/src/renderer/views/pages/artist.ejs b/src/renderer/views/pages/artist.ejs index d6c69394..07361202 100644 --- a/src/renderer/views/pages/artist.ejs +++ b/src/renderer/views/pages/artist.ejs @@ -57,35 +57,32 @@
-
+
+

{{app.getLz('term.latestReleases')}}

+
+ + +
+
+
-
-

{{app.getLz('term.latestReleases')}}

-
- - -
+
+

{{app.getLz('term.topSongs')}}

-
-
-
-

{{app.getLz('term.topSongs')}}

-
-
- -
-
-
-
- -
-
+
+
+
+
+
+ + +
+
+
+
diff --git a/src/renderer/views/pages/home.ejs b/src/renderer/views/pages/home.ejs index 0a1abbb8..f0350c49 100644 --- a/src/renderer/views/pages/home.ejs +++ b/src/renderer/views/pages/home.ejs @@ -3,11 +3,11 @@
-
-
+
+

{{app.getLz('home.recentlyPlayed')}}

-
+
@@ -20,11 +20,11 @@
-
-
+
+

{{app.getLz('home.artistsFeed')}}

-
+
@@ -63,10 +63,10 @@
-
+

{{app.getLz('home.friendsListeningTo')}}

-
+
From 9b574a1919213e47dd0dd1e99e764b72c329eaa5 Mon Sep 17 00:00:00 2001 From: vapormusic Date: Wed, 9 Feb 2022 21:17:10 +0700 Subject: [PATCH 039/337] use play button instead of add for library adding for album --- .gitignore | 5 +++++ src/renderer/views/components/mediaitem-list-item.ejs | 5 ++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index a7130433..f2383b33 100644 --- a/.gitignore +++ b/.gitignore @@ -319,3 +319,8 @@ keys.sh package-lock.json yarn.lock resources/b64.txt + + +savedconfig/cider-config.json +savedconfig/config.json +savedconfig/session.json diff --git a/src/renderer/views/components/mediaitem-list-item.ejs b/src/renderer/views/components/mediaitem-list-item.ejs index 132d7b24..76487b1e 100644 --- a/src/renderer/views/components/mediaitem-list-item.ejs +++ b/src/renderer/views/components/mediaitem-list-item.ejs @@ -16,9 +16,12 @@ + + + + +
\ No newline at end of file diff --git a/src/renderer/views/pages/home.ejs b/src/renderer/views/pages/home.ejs index 226dc360..e278248c 100644 --- a/src/renderer/views/pages/home.ejs +++ b/src/renderer/views/pages/home.ejs @@ -51,7 +51,14 @@
-

{{app.getLz('home.madeForYou')}}

+
+
+

{{app.getLz('home.madeForYou')}}

+
+
+ +
+
diff --git a/src/renderer/views/pages/replay.ejs b/src/renderer/views/pages/replay.ejs new file mode 100644 index 00000000..b41eb62d --- /dev/null +++ b/src/renderer/views/pages/replay.ejs @@ -0,0 +1,95 @@ + + \ No newline at end of file From 4e569365f8126f61937862f3d5c8f9d951a73b31 Mon Sep 17 00:00:00 2001 From: booploops <49113086+booploops@users.noreply.github.com> Date: Thu, 17 Feb 2022 02:08:28 -0800 Subject: [PATCH 235/337] replay, added this year --- .../views/components/listitem-horizontal.ejs | 6 +++++- .../views/components/mediaitem-list-item.ejs | 3 +++ src/renderer/views/pages/replay.ejs | 17 +++++++++-------- 3 files changed, 17 insertions(+), 9 deletions(-) diff --git a/src/renderer/views/components/listitem-horizontal.ejs b/src/renderer/views/components/listitem-horizontal.ejs index a8df81f4..0ee1bfaa 100644 --- a/src/renderer/views/components/listitem-horizontal.ejs +++ b/src/renderer/views/components/listitem-horizontal.ejs @@ -3,7 +3,7 @@
@@ -19,6 +19,10 @@ items: { type: Array, required: true + }, + "show-library-status": { + type: Boolean, + default: true } }, data: function () { diff --git a/src/renderer/views/components/mediaitem-list-item.ejs b/src/renderer/views/components/mediaitem-list-item.ejs index fc671c53..44288389 100644 --- a/src/renderer/views/components/mediaitem-list-item.ejs +++ b/src/renderer/views/components/mediaitem-list-item.ejs @@ -74,6 +74,9 @@
{{ msToMinSec(item.attributes.durationInMillis ?? 0) }}
+
+ {{ item.attributes.playCount }} +
diff --git a/src/renderer/views/pages/replay.ejs b/src/renderer/views/pages/replay.ejs index b41eb62d..7cb9c60c 100644 --- a/src/renderer/views/pages/replay.ejs +++ b/src/renderer/views/pages/replay.ejs @@ -1,8 +1,8 @@ diff --git a/src/renderer/views/pages/home.ejs b/src/renderer/views/pages/home.ejs index 226dc360..45fe4b57 100644 --- a/src/renderer/views/pages/home.ejs +++ b/src/renderer/views/pages/home.ejs @@ -49,9 +49,21 @@ +
+
+ +
+
-

{{app.getLz('home.madeForYou')}}

+
+
+

{{app.getLz('home.madeForYou')}}

+
+
+ +
+
@@ -98,7 +110,9 @@ artistFeed: [], showingArtistFeed: false, page: "main", - sectionsReady: [] + sectionsReady: [], + year: new Date().getFullYear(), + seenReplay: localStorage.getItem('seenReplay') } }, async mounted() { @@ -106,6 +120,10 @@ this.getListenNowData() await this.getArtistFeed() await this.getFavorites() + if (new Date().getMonth() == 11) { + this.seenReplay = false + localStorage.setItem('seenReplay', false) + } }, methods: { async seeAllHistory() { diff --git a/src/renderer/views/pages/library-songs.ejs b/src/renderer/views/pages/library-songs.ejs index 567d2884..b2e27ab5 100644 --- a/src/renderer/views/pages/library-songs.ejs +++ b/src/renderer/views/pages/library-songs.ejs @@ -15,8 +15,16 @@ v-model="library.songs.search" class="search-input">
-
+
+ +
-
-
- {{$root.getLz('settings.option.experimental.copy_log')}} -
-
- -
-
@@ -791,6 +811,9 @@ ipcRenderer.send('fetch-log') notyf.success(app.getLz('term.share.success')); }, + openAppData() { + ipcRenderer.send('open-appdata') + }, getLanguages: function () { let langs = this.$root.lzListing let categories = { From 951053ed46886b26cc166df296d8982bca704feb Mon Sep 17 00:00:00 2001 From: booploops <49113086+booploops@users.noreply.github.com> Date: Thu, 17 Feb 2022 19:31:17 -0800 Subject: [PATCH 251/337] added force-video to mediaitem-square --- src/renderer/less/pages.less | 25 +++++++++++++++++++ .../views/components/mediaitem-square.ejs | 5 ++++ src/renderer/views/pages/replay.ejs | 17 ++++++++++--- 3 files changed, 43 insertions(+), 4 deletions(-) diff --git a/src/renderer/less/pages.less b/src/renderer/less/pages.less index ee7ba294..013a4d72 100644 --- a/src/renderer/less/pages.less +++ b/src/renderer/less/pages.less @@ -924,6 +924,31 @@ } } + .replay-playlist-container { + .cd-mediaitem-square { + height: 230px; + width: 230px; + .info-rect { + display: none; + } + } + } + + .replay-video { + max-height: 300px; + max-width: 800px; + margin: 0 auto; + + .mediaitem-artwork { + max-height: 300px; + max-width: 800px; + } + + .mediaitem-artwork .animatedartwork-view-box .animated video { + object-fit: cover; + } + } + .top-genres-container { .genre-name { diff --git a/src/renderer/views/components/mediaitem-square.ejs b/src/renderer/views/components/mediaitem-square.ejs index 4248f1b7..6be015b1 100644 --- a/src/renderer/views/components/mediaitem-square.ejs +++ b/src/renderer/views/components/mediaitem-square.ejs @@ -12,6 +12,7 @@ :size="size" shadow="subtle" :bgcolor="getBgColor()" + :video-priority="forceVideo" :type="item.type">
@@ -103,7 +103,7 @@ Simulates the analog warmth modelled after the Korg Nutube 6P1
- +
@@ -149,7 +149,7 @@ {{$root.getLz('settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description')}}
- +
From 28ac72ed3459dbba8925a567be37d5c21730f17a Mon Sep 17 00:00:00 2001 From: vapormusic Date: Fri, 18 Feb 2022 14:35:15 +0700 Subject: [PATCH 259/337] fix playlist on listen now --- src/renderer/index.js | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/renderer/index.js b/src/renderer/index.js index c0b0442d..e8c19593 100644 --- a/src/renderer/index.js +++ b/src/renderer/index.js @@ -1319,6 +1319,14 @@ const app = new Vue({ extend: "offers,editorialVideo", "views": "appears-on,more-by-artist,related-videos,other-versions,you-might-also-like,video-extras,audio-extras", } + if (kind.includes("playlist")){ + params["include"] = "tracks"; + } + if (kind.includes("album")){ + params["include[albums]"] = "artists" + params["fields[artists]"] = "name,url" + params["fields[albums]"] = "artistName,artistUrl,artwork,contentRating,editorialArtwork,name,playParams,releaseDate,url" + } if (this.cfg.advanced.experiments.includes('inline-playlists')) { let showModal = kind.toString().includes("album") || kind.toString().includes("playlist") From 1aec27bc839b0ddcdeb3bd2ad1f5b938d42d4f8e Mon Sep 17 00:00:00 2001 From: vapormusic Date: Fri, 18 Feb 2022 21:38:30 +0700 Subject: [PATCH 260/337] fix #474 --- src/renderer/index.js | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/renderer/index.js b/src/renderer/index.js index e208b8e4..cb2ed420 100644 --- a/src/renderer/index.js +++ b/src/renderer/index.js @@ -3253,8 +3253,8 @@ const app = new Vue({ }, async getRating(item) { let type = item.type.slice(-1) === "s" ? item.type : item.type + "s" - let id = item.attributes.playParams.catalogId ? item.attributes.playParams.catalogId : item.id - if (item.id.startsWith("i.")) { + let id = item.attributes?.playParams?.catalogId ? item.attributes.playParams.catalogId : (item.attributes?.playParams?.id ?? item.id) + if (item.id && item.id.startsWith("i.")) { if (!type.startsWith("library-")) { type = "library-" + type } @@ -3270,8 +3270,8 @@ const app = new Vue({ }, love(item) { let type = item.type.slice(-1) === "s" ? item.type : item.type + "s" - let id = item.attributes.playParams.catalogId ? item.attributes.playParams.catalogId : item.id - if (item.id.startsWith("i.")) { + let id = item.attributes?.playParams?.catalogId ? item.attributes.playParams.catalogId : (item.attributes?.playParams?.id ?? item.id) + if (item.id && item.id.startsWith("i.")) { if (!type.startsWith("library-")) { type = "library-" + type } @@ -3291,8 +3291,8 @@ const app = new Vue({ }, dislike(item) { let type = item.type.slice(-1) === "s" ? item.type : item.type + "s" - let id = item.attributes.playParams.catalogId ? item.attributes.playParams.catalogId : item.id - if (item.id.startsWith("i.")) { + let id = item.attributes?.playParams?.catalogId ? item.attributes.playParams.catalogId : (item.attributes?.playParams?.id ?? item.id) + if (item.id && item.id.startsWith("i.")) { if (!type.startsWith("library-")) { type = "library-" + type } From 99425e65c32ca143153569ad66b78f8ec8470756 Mon Sep 17 00:00:00 2001 From: vapormusic Date: Fri, 18 Feb 2022 21:53:31 +0700 Subject: [PATCH 261/337] ok --- src/renderer/index.js | 8 ++++---- src/renderer/views/components/mediaitem-list-item.ejs | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/renderer/index.js b/src/renderer/index.js index cb2ed420..1bacbad9 100644 --- a/src/renderer/index.js +++ b/src/renderer/index.js @@ -3254,7 +3254,7 @@ const app = new Vue({ async getRating(item) { let type = item.type.slice(-1) === "s" ? item.type : item.type + "s" let id = item.attributes?.playParams?.catalogId ? item.attributes.playParams.catalogId : (item.attributes?.playParams?.id ?? item.id) - if (item.id && item.id.startsWith("i.")) { + if (item.id != null && (item.id.toString()).startsWith("i.")) { if (!type.startsWith("library-")) { type = "library-" + type } @@ -3271,7 +3271,7 @@ const app = new Vue({ love(item) { let type = item.type.slice(-1) === "s" ? item.type : item.type + "s" let id = item.attributes?.playParams?.catalogId ? item.attributes.playParams.catalogId : (item.attributes?.playParams?.id ?? item.id) - if (item.id && item.id.startsWith("i.")) { + if (item.id != null && (item.id.toString()).startsWith("i.")) { if (!type.startsWith("library-")) { type = "library-" + type } @@ -3292,7 +3292,7 @@ const app = new Vue({ dislike(item) { let type = item.type.slice(-1) === "s" ? item.type : item.type + "s" let id = item.attributes?.playParams?.catalogId ? item.attributes.playParams.catalogId : (item.attributes?.playParams?.id ?? item.id) - if (item.id && item.id.startsWith("i.")) { + if (item.id != null && (item.id.toString()).startsWith("i.")) { if (!type.startsWith("library-")) { type = "library-" + type } @@ -3860,7 +3860,7 @@ function fallbackinitMusicKit() { }, sourceType: 24, suppressErrorDialog: true - }); + }) setTimeout(() => { app.init() }, 1000) diff --git a/src/renderer/views/components/mediaitem-list-item.ejs b/src/renderer/views/components/mediaitem-list-item.ejs index 44288389..a3c4f621 100644 --- a/src/renderer/views/components/mediaitem-list-item.ejs +++ b/src/renderer/views/components/mediaitem-list-item.ejs @@ -474,7 +474,7 @@ menus.normal.headerItems.find(x => x.id == 'dislike').hidden = true } } catch (err) { - + console.log(err) } }, visibilityChanged: function (isVisible, entry) { From bb8e22cf9388a48a13d65ee8dccbd2162c6d8bd4 Mon Sep 17 00:00:00 2001 From: vapormusic Date: Fri, 18 Feb 2022 22:50:02 +0700 Subject: [PATCH 262/337] back button & media keys improvement --- src/main/base/wsapi.ts | 5 ++++- src/preload/cider-preload.js | 3 +++ src/renderer/index.js | 13 ++++++++++++- 3 files changed, 19 insertions(+), 2 deletions(-) diff --git a/src/main/base/wsapi.ts b/src/main/base/wsapi.ts index 619a0ac6..bb48d86a 100644 --- a/src/main/base/wsapi.ts +++ b/src/main/base/wsapi.ts @@ -183,7 +183,10 @@ export class wsapi { break; case "next": this._win.webContents.executeJavaScript(`if (MusicKit.getInstance().queue.nextPlayableItemIndex != -1 && MusicKit.getInstance().queue.nextPlayableItemIndex != null) { - MusicKit.getInstance().changeToMediaAtIndex(MusicKit.getInstance().queue.nextPlayableItemIndex);}`); + try { + app.prevButtonBackIndicator = false; + } catch (e) { } + MusicKit.getInstance().changeToMediaAtIndex(MusicKit.getInstance().queue.nextPlayableItemIndex);}`); response.message = "Next"; break; case "previous": diff --git a/src/preload/cider-preload.js b/src/preload/cider-preload.js index 243b7951..84a55e91 100644 --- a/src/preload/cider-preload.js +++ b/src/preload/cider-preload.js @@ -136,6 +136,9 @@ const MusicKitInterop = { }, next: () => { + try { + app.prevButtonBackIndicator = false; + } catch (e) { } if (MusicKit.getInstance().queue.nextPlayableItemIndex != -1 && MusicKit.getInstance().queue.nextPlayableItemIndex != null) MusicKit.getInstance().changeToMediaAtIndex(MusicKit.getInstance().queue.nextPlayableItemIndex); // MusicKit.getInstance().skipToNextItem().then(r => console.log(`[MusicKitInterop.next] Skipping to Next ${r}`)); diff --git a/src/renderer/index.js b/src/renderer/index.js index 1bacbad9..7daaa4b2 100644 --- a/src/renderer/index.js +++ b/src/renderer/index.js @@ -250,7 +250,8 @@ const app = new Vue({ items: {}, headerItems: {} } - } + }, + pauseButtonTimer : null }, watch: { cfg: { @@ -813,6 +814,8 @@ const app = new Vue({ this.page = "home" } + this.mediaKeyFixes() + setTimeout(() => { this.getSocialBadges() this.getBrowsePage(); @@ -1355,8 +1358,11 @@ const app = new Vue({ prevButton() { if (!app.prevButtonBackIndicator && app.mk.nowPlayingItem && app.mk.currentPlaybackTime > 2) { app.prevButtonBackIndicator = true; + try{clearTimeout(app.pauseButtonTimer)} catch (e){ } app.mk.seekToTime(0); + app.pauseButtonTimer = setTimeout(app.prevButtonBackIndicator = false,3000); } else { + try{clearTimeout(app.pauseButtonTimer)} catch (e){ } app.prevButtonBackIndicator = false; app.skipToPreviousItem() } @@ -3743,6 +3749,7 @@ const app = new Vue({ } }, skipToNextItem(){ + app.prevButtonBackIndicator = false; // app.mk.skipToNextItem() is buggy somehow so use this if (this.mk.queue.nextPlayableItemIndex != -1 && this.mk.queue.nextPlayableItemIndex != null) this.mk.changeToMediaAtIndex(this.mk.queue.nextPlayableItemIndex); @@ -3751,6 +3758,10 @@ const app = new Vue({ // app.mk.skipToPreviousItem() is buggy somehow so use this if (this.mk.queue.previousPlayableItemIndex != -1 && this.mk.queue.previousPlayableItemIndex != null) this.mk.changeToMediaAtIndex(this.mk.queue.previousPlayableItemIndex); + }, + mediaKeyFixes(){ + navigator.mediaSession.setActionHandler('previoustrack', function() { app.prevButton() }); + navigator.mediaSession.setActionHandler('nexttrack', function() { app.skipToNextItem() }); } } }) From a2e44ed0e8be3a79f961abecbffe77f75a5d6a38 Mon Sep 17 00:00:00 2001 From: vapormusic Date: Fri, 18 Feb 2022 22:50:46 +0700 Subject: [PATCH 263/337] ok --- src/renderer/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/renderer/index.js b/src/renderer/index.js index 7daaa4b2..a08eeb2d 100644 --- a/src/renderer/index.js +++ b/src/renderer/index.js @@ -1360,7 +1360,7 @@ const app = new Vue({ app.prevButtonBackIndicator = true; try{clearTimeout(app.pauseButtonTimer)} catch (e){ } app.mk.seekToTime(0); - app.pauseButtonTimer = setTimeout(app.prevButtonBackIndicator = false,3000); + app.pauseButtonTimer = setTimeout(() => {app.prevButtonBackIndicator = false},3000); } else { try{clearTimeout(app.pauseButtonTimer)} catch (e){ } app.prevButtonBackIndicator = false; From 6638e2dc048249ba6f75f046e55a5dfb254cecb9 Mon Sep 17 00:00:00 2001 From: Maikiwi Date: Fri, 18 Feb 2022 14:47:27 -0800 Subject: [PATCH 264/337] Innolab Merger (#479) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Sync I don't commit now is the conflict of tomorrow (#477) * Added update check if using MSS or MAS builds. need help implementing * fix locale / allow pl to show before list loading is fully done * oops * Also copy blockmap for partial download `[2022-02-15 17:28:30.126] [error] Cannot download differentially, fallback to full download: Error: Cannot download "https://478-429851205-gh.circle-artifacts.com/0/%7E/Cider/dist/artifacts/Cider-Setup-1.1.428.exe.blockmap", status 404: Not Found at ClientRequest. (C:\Program Files\Cider\resources\app.asar\node_modules\builder-util-runtime\src\httpExecutor.ts:288:11) at ClientRequest.emit (node:events:394:28) at ClientRequest.emit (node:domain:475:12) at SimpleURLLoaderWrapper. (node:electron/js2c/browser_init:105:6829) at SimpleURLLoaderWrapper.emit (node:events:394:28) at SimpleURLLoaderWrapper.emit (node:domain:475:12)` * more lang fix * Removed Discord clear on pause * Linux frame * fix #459 * Fix * exposed --songProgressColor and --songProgressBackground * revert * Revert "revert" This reverts commit 24313b53cf5b6fb37e8454175d91074c0f644cee. * ok? * Revert "ok?" This reverts commit 9218ccc88731b607f228ac712e3987d7baab668e. * ok * fix adding/remove mvs from library * Created audio controls menu * Added start-renderer command for easier testing * shitty floats shitty shitty * LastFM can be unique and have its own call * Revert "LastFM can be unique and have its own call" This reverts commit d36e1b19f65259743d07001db4942fe3932608de. * Revert "Merge branch 'develop' into develop" This reverts commit 5fa345e6c8107a5256649c6e15450add001afb56, reversing changes made to a02b633f49b94b05a925d65fb2bda0f267c0096a. * Revert "Revert "LastFM can be unique and have its own call"" This reverts commit f156083d48f866fcd69d590794a33e0b25c8d95d. * Revert "Merge branch 'ciderapp:develop' into develop" This reverts commit 20fd0c05da981a82b786254f0f1bbaa39c9d3fa0, reversing changes made to 4937e29fcfccc2e7bdbd1f8c0afdd6ce22b85af3. * lastfm changes * i hate lastfm like really really hate it * Revert "Merge remote-tracking branch 'origin/develop' into develop" This reverts commit 5b360e74faf937a6e54fda80e5851fc36707a528, reversing changes made to 548688341d953bd5cfe5f27b32a60fcc8b338c08. * Revert "Revert "Merge remote-tracking branch 'origin/develop' into develop"" This reverts commit 0fb6802ff35ad9cfd03e3ce50f4de768cdba750c. * Revert "Merge branch 'develop' of https://github.com/ciderapp/Cider into develop" This reverts commit bd3a2b6172097dbbffaf8e5d7b477ae0a340c71e, reversing changes made to 0fb6802ff35ad9cfd03e3ce50f4de768cdba750c. * volume step i18n * and git can go in the bin too * Added OpenAppData button in settings and updated layout/translations * change in translation README.md * margin: 0 on song-progress * fix np navigation on some songs * enables native linux chrome * replay wip * replay, added this year * fix for library status * added attributes.playparams.id * replay banner * changed colors * fancy animations * more fancy * some changes * add play button in library-songs page * fix * improve drag on topbar * Generating top genres, made buttons nicer on replay * changes to replay graphs * Revert "Merge branch 'innolab' into develop" This reverts commit b740f76e3c803bcfa158c5105316cf9acaed24ca, reversing changes made to a5746f08fa90d4a2f8dbec48c4608e1c77fb785d. * added force-video to mediaitem-square * Update zh_TW.jsonc (#468) Update TW language. Co-authored-by: Maikiwi * Update zh_TW.jsonc * frontend plugins first iteration * trans prep * macOS transparency * fix playlist on listen now * fix #474 * ok * back button & media keys improvement * ok Co-authored-by: child_duckling <19170969+quacksire@users.noreply.github.com> Co-authored-by: vapormusic Co-authored-by: JYW0803 <74043061+JYW0803@users.noreply.github.com> Co-authored-by: Core <64542347+coredev-uk@users.noreply.github.com> Co-authored-by: booploops <49113086+booploops@users.noreply.github.com> Co-authored-by: 宥叡 <46503943+jay900604@users.noreply.github.com> * refactored specialty settings and switch for two spatialization Co-authored-by: child_duckling <19170969+quacksire@users.noreply.github.com> Co-authored-by: vapormusic Co-authored-by: JYW0803 <74043061+JYW0803@users.noreply.github.com> Co-authored-by: Core <64542347+coredev-uk@users.noreply.github.com> Co-authored-by: booploops <49113086+booploops@users.noreply.github.com> Co-authored-by: 宥叡 <46503943+jay900604@users.noreply.github.com> --- src/main/base/store.ts | 25 +- src/renderer/audio/audio.js | 224 +++++++++++------- src/renderer/views/app/chrome-top.ejs | 2 +- .../views/components/audio-settings.ejs | 2 +- src/renderer/views/components/equalizer.ejs | 4 +- src/renderer/views/pages/settings.ejs | 26 +- 6 files changed, 172 insertions(+), 111 deletions(-) diff --git a/src/main/base/store.ts b/src/main/base/store.ts index 26629f9d..c97989cb 100644 --- a/src/main/base/store.ts +++ b/src/main/base/store.ts @@ -27,17 +27,26 @@ export class Store { }, "audio": { "volume": 1, - "volumeStep": 0.02, + "volumeStep": 0.1, "maxVolume": 1, "lastVolume": 1, "muted": false, "quality": "HIGH", "seamless_audio": true, "normalization": false, - "ciderPPE": false, - "ciderPPE_value": 0.5, - "analogWarmth": false, - "analogWarmth_value": 1.25, + "maikiwiAudio": { + "ciderPPE": false, + "ciderPPE_value": 0.5, + "analogWarmth": false, + "analogWarmth_value": 1.25, + "spatial": false, + "vibrantBass": { // Hard coded into the app. Don't include any of this config into exporting presets in store.ts + 'multiplier': 0, + 'frequencies': [17.182, 42.169, 53.763, 112.69, 119.65, 264.59, 336.57, 400.65, 505.48, 612.7, 838.7, 1155.3, 1175.6, 3406.8, 5158.6, 5968.1, 6999.9, 7468.6, 8862.9, 9666, 10109], + 'Q': [2.5, 0.388, 5, 5, 2.5, 7.071, 14.14, 10, 7.071, 14.14, 8.409, 0.372, 7.071, 10, 16.82, 7.071, 28.28, 20, 8.409, 40, 40], + 'gain': [-0.34, 2.49, 0.23, -0.49, 0.23, -0.12, 0.32, -0.29, 0.33, 0.19, -0.18, -1.27, -0.11, 0.25, -0.18, -0.53, 0.34, 1.32, 1.78, 0.41, -0.28] + } + }, "spatial": false, "spatial_properties": { "presets": [], @@ -68,12 +77,6 @@ export class Store { 'presets': [], 'userGenerated': false }, - "vibrantBass": { // Hard coded into the app. Don't include any of this config into exporting presets in store.ts - 'multiplier': 0, - 'frequencies': [17.182, 42.169, 53.763, 112.69, 119.65, 264.59, 336.57, 400.65, 505.48, 612.7, 838.7, 1155.3, 1175.6, 3406.8, 5158.6, 5968.1, 6999.9, 7468.6, 8862.9, 9666, 10109], - 'Q': [2.5, 0.388, 5, 5, 2.5, 7.071, 14.14, 10, 7.071, 14.14, 8.409, 0.372, 7.071, 10, 16.82, 7.071, 28.28, 20, 8.409, 40, 40], - 'gain': [-0.34, 2.49, 0.23, -0.49, 0.23, -0.12, 0.32, -0.29, 0.33, 0.19, -0.18, -1.27, -0.11, 0.25, -0.18, -0.53, 0.34, 1.32, 1.78, 0.41, -0.28] - } }, "visual": { "theme": "", diff --git a/src/renderer/audio/audio.js b/src/renderer/audio/audio.js index 1d21644e..f2b801b0 100644 --- a/src/renderer/audio/audio.js +++ b/src/renderer/audio/audio.js @@ -81,27 +81,7 @@ var CiderAudio = { }, spatialOn: function (){ - - - /** - CiderAudio.audioNodes.spatialNode = new ResonanceAudio(CiderAudio.context); - CiderAudio.audioNodes.spatialNode.connect(CiderAudio.context.destination); - let roomDimensions = { - width: 32, - height: 12, - depth: 32, - }; - let roomMaterials = { - // Room wall materials - left: 'metal', - right: 'metal', - front: 'brick-bare', - back: 'brick-bare', - down: 'acoustic-ceiling-tiles', - up: 'acoustic-ceiling-tiles', - }; - CiderAudio.audioNodes.spatialNode.setRoomProperties(roomDimensions, roomMaterials);*/ - + if (app.cfg.audio.maikiwiAudio.spatial === true) { CiderAudio.audioNodes.spatialNode = CiderAudio.context.createConvolver(); fetch('./audio/CiderSpatial_Conv.wav').then(async (impulseData) => { @@ -111,6 +91,29 @@ var CiderAudio = { }); CiderAudio.audioNodes.spatialNode.normalize = true; CiderAudio.audioNodes.spatialNode.connect(CiderAudio.context.destination); + } + else { + try{ + CiderAudio.audioNodes.gainNode.disconnect(CiderAudio.context.destination);} catch(e){} + CiderAudio.audioNodes.spatialNode = new ResonanceAudio(CiderAudio.context); + CiderAudio.audioNodes.spatialNode.output.connect(CiderAudio.context.destination); + let roomDimensions = { + width: 32, + height: 12, + depth: 32, + }; + let roomMaterials = { + // Room wall materials + left: 'metal', + right: 'metal', + front: 'brick-bare', + back: 'brick-bare', + down: 'acoustic-ceiling-tiles', + up: 'acoustic-ceiling-tiles', + }; + CiderAudio.audioNodes.spatialNode.setRoomProperties(roomDimensions, roomMaterials); + CiderAudio.audioNodes.spatialInput = CiderAudio.audioNodes.spatialNode.createSource(); + CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialInput.input);} }, spatialOff: function (){ CiderAudio.hierarchical_loading(); @@ -143,7 +146,7 @@ var CiderAudio = { CiderAudio.audioNodes.analogWarmth[i].type = 'peaking'; // 'peaking'; CiderAudio.audioNodes.analogWarmth[i].frequency.value = WARMTH_FREQUENCIES[i]; CiderAudio.audioNodes.analogWarmth[i].Q.value = WARMTH_Q[i]; - CiderAudio.audioNodes.analogWarmth[i].gain.value = WARMTH_GAIN[i] * app.cfg.audio.analogWarmth_value; + CiderAudio.audioNodes.analogWarmth[i].gain.value = WARMTH_GAIN[i] * app.cfg.audio.maikiwiAudio.analogWarmth_value; } for (i = 1; i < WARMTH_FREQUENCIES.length; i ++) { @@ -180,7 +183,7 @@ var CiderAudio = { CiderAudio.audioNodes.llpw[i].type = 'peaking'; // 'peaking'; CiderAudio.audioNodes.llpw[i].frequency.value = LLPW_FREQUENCIES[i]; CiderAudio.audioNodes.llpw[i].Q.value = LLPW_Q[i]; - CiderAudio.audioNodes.llpw[i].gain.value = LLPW_GAIN[i] * app.cfg.audio.ciderPPE_value; + CiderAudio.audioNodes.llpw[i].gain.value = LLPW_GAIN[i] * app.cfg.audio.maikiwiAudio.ciderPPE_value; } for (i = 1; i < LLPW_FREQUENCIES.length; i ++) { @@ -202,9 +205,9 @@ var CiderAudio = { }, vibrantbass_h2_1: function (status){ if (status === true) { - let VIBRANTBASSBANDS = app.cfg.audio.vibrantBass.frequencies; - let VIBRANTBASSGAIN = app.cfg.audio.vibrantBass.gain; - let VIBRANTBASSQ = app.cfg.audio.vibrantBass.Q; + let VIBRANTBASSBANDS = app.cfg.audio.maikiwiAudio.vibrantBass.frequencies; + let VIBRANTBASSGAIN = app.cfg.audio.maikiwiAudio.vibrantBass.gain; + let VIBRANTBASSQ = app.cfg.audio.maikiwiAudio.vibrantBass.Q; CiderAudio.audioNodes.vibrantbassNode = [] for (i = 0; i < VIBRANTBASSBANDS.length; i++) { @@ -212,7 +215,7 @@ var CiderAudio = { CiderAudio.audioNodes.vibrantbassNode[i].type = 'peaking'; // 'peaking'; CiderAudio.audioNodes.vibrantbassNode[i].frequency.value = VIBRANTBASSBANDS[i]; CiderAudio.audioNodes.vibrantbassNode[i].Q.value = VIBRANTBASSQ[i]; - CiderAudio.audioNodes.vibrantbassNode[i].gain.value = VIBRANTBASSGAIN[i] * app.cfg.audio.vibrantBass.multiplier; + CiderAudio.audioNodes.vibrantbassNode[i].gain.value = VIBRANTBASSGAIN[i] * app.cfg.audio.maikiwiAudio.vibrantBass.multiplier; } for (i = 1; i < VIBRANTBASSBANDS.length; i ++) { @@ -224,6 +227,7 @@ var CiderAudio = { }, hierarchical_unloading: function (){ + try {CiderAudio.audioNodes.spatialNode.output.disconnect();} catch(e){} try {CiderAudio.audioNodes.spatialNode.disconnect();} catch(e){} try {CiderAudio.audioNodes.gainNode.disconnect();} catch(e){} try {for (var i of CiderAudio.audioNodes.analogWarmth){i.disconnect();} CiderAudio.audioNodes.analogWarmth = []} catch(e){} @@ -237,35 +241,51 @@ var CiderAudio = { CiderAudio.hierarchical_unloading(); // Vibrant Bass, CAP, Analog Warmth, Spatial - if (app.cfg.audio.vibrantBass.multiplier !== 0 && - app.cfg.advanced.ciderPPE === true && + if (app.cfg.audio.maikiwiAudio.vibrantBass.multiplier !== 0 && + app.cfg.audio.maikiwiAudio.ciderPPE === true && app.cfg.audio.spatial === true && - app.cfg.audio.analogWarmth === true) { + app.cfg.audio.maikiwiAudio.analogWarmth === true) { CiderAudio.vibrantbass_h2_1(true) CiderAudio.llpw_h2_2(true, 2); CiderAudio.analogWarmth_h2_3(true, 3); - CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialNode); - CiderAudio.audioNodes.spatialNode.connect(CiderAudio.audioNodes.analogWarmth[0]); - console.log('[Cider][Audio] Vibrant Bass, CAP, Analog Warmth, Spatial') + + if (app.cfg.audio.maikiwiAudio.spatial === true) { + CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialNode); + CiderAudio.audioNodes.spatialNode.connect(CiderAudio.audioNodes.analogWarmth[0]); + console.log('[Cider][Audio] Vibrant Bass, CAP, Analog Warmth, Maikiwi Spatial') + } + else { + CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialInput.input); + CiderAudio.audioNodes.spatialNode.output.connect(CiderAudio.audioNodes.analogWarmth[0]); + console.log('[Cider][Audio] Vibrant Bass, CAP, Analog Warmth, Spatial') + } } // Vibrant Bass, CAP, Spatial - else if (app.cfg.audio.vibrantBass.multiplier !== 0 && - app.cfg.advanced.ciderPPE === true && + else if (app.cfg.audio.maikiwiAudio.vibrantBass.multiplier !== 0 && + app.cfg.audio.maikiwiAudio.ciderPPE === true && app.cfg.audio.spatial === true && - app.cfg.audio.analogWarmth === false) { + app.cfg.audio.maikiwiAudio.analogWarmth === false) { CiderAudio.vibrantbass_h2_1(true) CiderAudio.llpw_h2_2(true, 2); - CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialNode); - CiderAudio.audioNodes.spatialNode.connect(CiderAudio.audioNodes.llpw[0]); - console.log('[Cider][Audio] Vibrant Bass, CAP, Spatial') + if (app.cfg.audio.maikiwiAudio.spatial === true) { + CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialNode); + CiderAudio.audioNodes.spatialNode.connect(CiderAudio.audioNodes.llpw[0]); + console.log('[Cider][Audio] Vibrant Bass, CAP, Maikiwi Spatial') + } + else { + CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialInput.input); + CiderAudio.audioNodes.spatialNode.output.connect(CiderAudio.audioNodes.llpw[0]); + console.log('[Cider][Audio] Vibrant Bass, CAP, Spatial') + } + } // Vibrant Bass, CAP, Analog Warmth - else if (app.cfg.audio.vibrantBass.multiplier !== 0 && - app.cfg.advanced.ciderPPE === true && + else if (app.cfg.audio.maikiwiAudio.vibrantBass.multiplier !== 0 && + app.cfg.audio.maikiwiAudio.ciderPPE === true && app.cfg.audio.spatial === false && - app.cfg.audio.analogWarmth === true) { + app.cfg.audio.maikiwiAudio.analogWarmth === true) { CiderAudio.vibrantbass_h2_1(true) CiderAudio.llpw_h2_2(true, 2); @@ -274,33 +294,46 @@ var CiderAudio = { console.log('[Cider][Audio] Vibrant Bass, CAP, Analog Warmth') } // CAP, Spatial - else if (app.cfg.audio.vibrantBass.multiplier === 0 && - app.cfg.advanced.ciderPPE === true && + else if (app.cfg.audio.maikiwiAudio.vibrantBass.multiplier === 0 && + app.cfg.audio.maikiwiAudio.ciderPPE === true && app.cfg.audio.spatial === true && - app.cfg.audio.analogWarmth === false) { + app.cfg.audio.maikiwiAudio.analogWarmth === false) { CiderAudio.llpw_h2_2(true, 1); - CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialNode); - CiderAudio.audioNodes.spatialNode.connect(CiderAudio.audioNodes.llpw[0]); - console.log('[Cider][Audio] CAP, Spatial') + if (app.cfg.audio.maikiwiAudio.spatial === true) { + CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialNode); + CiderAudio.audioNodes.spatialNode.connect(CiderAudio.audioNodes.llpw[0]); + console.log('[Cider][Audio] Maikiwi Spatial') + } + else { + CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialInput.input); + CiderAudio.audioNodes.spatialNode.output.connect(CiderAudio.audioNodes.llpw[0]); + console.log('[Cider][Audio] CAP, Spatial') + } } // Analog Warmth, Spatial - else if (app.cfg.audio.vibrantBass.multiplier === 0 && - app.cfg.advanced.ciderPPE === false && + else if (app.cfg.audio.maikiwiAudio.vibrantBass.multiplier === 0 && + app.cfg.audio.maikiwiAudio.ciderPPE === false && app.cfg.audio.spatial === true && - app.cfg.audio.analogWarmth === true) { + app.cfg.audio.maikiwiAudio.analogWarmth === true) { - CCiderAudio.analogWarmth_h2_3(true, 1); - //CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialInput.input); - CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialNode); - CiderAudio.audioNodes.spatialNode.connect(CiderAudio.audioNodes.analogWarmth[0]); - console.log('[Cider][Audio] Analog Warmth, Spatial') + CiderAudio.analogWarmth_h2_3(true, 1); + if (app.cfg.audio.maikiwiAudio.spatial === true) { + CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialNode); + CiderAudio.audioNodes.spatialNode.connect(CiderAudio.audioNodes.analogWarmth[0]); + console.log('[Cider][Audio] Analog Warmth, Maikiwi Spatial') + } + else { + CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialInput.input); + CiderAudio.audioNodes.spatialNode.output.connect(CiderAudio.audioNodes.analogWarmth[0]); + console.log('[Cider][Audio] Analog Warmth, Spatial') + } } // CAP, Analog Warmth - else if (app.cfg.audio.vibrantBass.multiplier === 0 && - app.cfg.advanced.ciderPPE === true && + else if (app.cfg.audio.maikiwiAudio.vibrantBass.multiplier === 0 && + app.cfg.audio.maikiwiAudio.ciderPPE === true && app.cfg.audio.spatial === false && - app.cfg.audio.analogWarmth === true) { + app.cfg.audio.maikiwiAudio.analogWarmth === true) { CiderAudio.llpw_h2_2(true, 1); CiderAudio.analogWarmth_h2_3(true, 3); @@ -308,10 +341,10 @@ var CiderAudio = { console.log('[Cider][Audio] CAP and Analog Warmth') } // Vibrant Bass, Analog Warmth - else if (app.cfg.audio.vibrantBass.multiplier !== 0 && - app.cfg.advanced.ciderPPE === false && + else if (app.cfg.audio.maikiwiAudio.vibrantBass.multiplier !== 0 && + app.cfg.audio.maikiwiAudio.ciderPPE === false && app.cfg.audio.spatial === false && - app.cfg.audio.analogWarmth === true) { + app.cfg.audio.maikiwiAudio.analogWarmth === true) { CiderAudio.vibrantbass_h2_1(true) CiderAudio.analogWarmth_h2_3(true, 2); @@ -320,10 +353,10 @@ var CiderAudio = { } // Vibrant Bass, CAP - else if (app.cfg.audio.vibrantBass.multiplier !== 0 && - app.cfg.advanced.ciderPPE === true && + else if (app.cfg.audio.maikiwiAudio.vibrantBass.multiplier !== 0 && + app.cfg.audio.maikiwiAudio.ciderPPE === true && app.cfg.audio.spatial === false && - app.cfg.audio.analogWarmth === false) { + app.cfg.audio.maikiwiAudio.analogWarmth === false) { CiderAudio.vibrantbass_h2_1(true) CiderAudio.llpw_h2_2(true, 2); @@ -331,53 +364,66 @@ var CiderAudio = { console.log('[Cider][Audio] Vibrant Bass, CAP') } // Vibrant Bass, Spatial - else if (app.cfg.audio.vibrantBass.multiplier !== 0 && - app.cfg.advanced.ciderPPE === false && + else if (app.cfg.audio.maikiwiAudio.vibrantBass.multiplier !== 0 && + app.cfg.audio.maikiwiAudio.ciderPPE === false && app.cfg.audio.spatial === true && - app.cfg.audio.analogWarmth === false) { + app.cfg.audio.maikiwiAudio.analogWarmth === false) { CiderAudio.vibrantbass_h2_1(true) - //CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialInput.input); - CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialNode); - CiderAudio.audioNodes.spatialNode.connect(CiderAudio.audioNodes.vibrantbassNode[0]); - console.log('[Cider][Audio] Vibrant Bass, Spatial') + if (app.cfg.audio.maikiwiAudio.spatial === true) { + CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialNode); + CiderAudio.audioNodes.spatialNode.connect(CiderAudio.audioNodes.vibrantbassNode[0]); + console.log('[Cider][Audio] Vibrant Bass, Maikiwi Spatial') + } + else { + CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialInput.input); + CiderAudio.audioNodes.spatialNode.output.connect(CiderAudio.audioNodes.vibrantbassNode[0]); + console.log('[Cider][Audio] Vibrant Bass, Spatial') + } + } // Vibrant Bass - else if (app.cfg.audio.vibrantBass.multiplier !== 0 && - app.cfg.advanced.ciderPPE === false && + else if (app.cfg.audio.maikiwiAudio.vibrantBass.multiplier !== 0 && + app.cfg.audio.maikiwiAudio.ciderPPE === false && app.cfg.audio.spatial === false && - app.cfg.audio.analogWarmth === false) { + app.cfg.audio.maikiwiAudio.analogWarmth === false) { CiderAudio.vibrantbass_h2_1(true) CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.vibrantbassNode[0]); console.log('[Cider][Audio] Vibrant Bass') } // CAP - else if (app.cfg.audio.vibrantBass.multiplier === 0 && - app.cfg.advanced.ciderPPE === true && + else if (app.cfg.audio.maikiwiAudio.vibrantBass.multiplier === 0 && + app.cfg.audio.maikiwiAudio.ciderPPE === true && app.cfg.audio.spatial === false && - app.cfg.audio.analogWarmth === false) { + app.cfg.audio.maikiwiAudio.analogWarmth === false) { CiderAudio.llpw_h2_2(true, 1); CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.llpw[0]); console.log('[Cider][Audio] CAP') } // Analog Warmth - else if (app.cfg.audio.vibrantBass.multiplier === 0 && - app.cfg.advanced.ciderPPE === false && - app.cfg.audio.spatial === false && - app.cfg.audio.analogWarmth === true) { + else if (app.cfg.audio.maikiwiAudio.vibrantBass.multiplier === 0 && + app.cfg.audio.maikiwiAudio.ciderPPE === false && + app.cfg.audio.maikiwiAudio.spatial === false && + app.cfg.audio.maikiwiAudio.analogWarmth === true) { CiderAudio.analogWarmth_h2_3(true, 1); CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.analogWarmth[0]); console.log('[Cider][Audio] Analog Warmth') } // Spatial - else if (app.cfg.audio.vibrantBass.multiplier === 0 && - app.cfg.advanced.ciderPPE === false && + else if (app.cfg.audio.maikiwiAudio.vibrantBass.multiplier === 0 && + app.cfg.audio.maikiwiAudio.ciderPPE === false && app.cfg.audio.spatial === true && - app.cfg.audio.analogWarmth === false){ - //CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialInput.input); - CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialNode); - CiderAudio.audioNodes.spatialNode.connect(CiderAudio.audioNodes.audioBands[0]); - console.log('[Cider][Audio] Spatial') + app.cfg.audio.maikiwiAudio.analogWarmth === false){ + if (app.cfg.audio.maikiwiAudio.spatial === true) { + CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialNode); + CiderAudio.audioNodes.spatialNode.connect(CiderAudio.audioNodes.audioBands[0]); + console.log('[Cider][Audio] Maikiwi Spatial') + } + else { + CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialInput.input); + CiderAudio.audioNodes.spatialNode.output.connect(CiderAudio.audioNodes.audioBands[0]); + console.log('[Cider][Audio] Spatial') + } } // Nothing diff --git a/src/renderer/views/app/chrome-top.ejs b/src/renderer/views/app/chrome-top.ejs index a80eab05..0ea9c415 100644 --- a/src/renderer/views/app/chrome-top.ejs +++ b/src/renderer/views/app/chrome-top.ejs @@ -57,7 +57,7 @@ v-if="mk.nowPlayingItem['attributes']['contentRating'] == 'explicit'" style="display: inline-block">
-
+
{{$root.getLz('settings.option.audio.enableAdvancedFunctionality.ciderPPE.description')}}
- +
-
+
{{$root.getLz('settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength')}}
@@ -103,10 +103,10 @@ Simulates the analog warmth modelled after the Korg Nutube 6P1
- +
-
+
Analog Warmth Intensity
@@ -152,6 +152,16 @@
+
+
+ Cider Tuned Spatialization +
+ Pre-tuned Spatializing Effect by the Cider Dev Team, disables the customizable settings of Audio Spatialization. +
+
+ +
+
{{$root.getLz('settings.header.visual')}} @@ -874,7 +884,7 @@ CiderAudio.hierarchical_loading(); } } else { - app.cfg.advanced.ciderPPE = false; + app.cfg.audio.maikiwiAudio.ciderPPE = false; CiderAudio.off(); } }, @@ -887,10 +897,12 @@ }, toggleSpatial: function () { if (app.cfg.audio.spatial) { - if (app.cfg.advanced.ciderPPE === true) { + if (app.cfg.audio.maikiwiAudio.ciderPPE === true && app.cfg.audio.maikiwiAudio.spatial === false) { CiderAudio.spatialOff() app.cfg.audio.spatial = false; - notyf.error(app.getLz('settings.warn.audio.enableAdvancedFunctionality.audioSpatialization.compatibility')) + notyf.error(app.getLz('settings.warn.audio.enableAdvancedFunctionality.audioSpatialization.compatibility')) + try { + CiderAudio.hierarchical_loading();} catch(e) {} } else { CiderAudio.spatialOn() From 77464764308284f0d55481b1077587120d5f5509 Mon Sep 17 00:00:00 2001 From: Maikiwi Date: Fri, 18 Feb 2022 16:37:42 -0800 Subject: [PATCH 265/337] Cider Tuned Spat V2 (actually v like 120 something) --- src/renderer/audio/CiderSpatial_Conv_v2.wav | Bin 0 -> 384044 bytes src/renderer/audio/audio.js | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 src/renderer/audio/CiderSpatial_Conv_v2.wav diff --git a/src/renderer/audio/CiderSpatial_Conv_v2.wav b/src/renderer/audio/CiderSpatial_Conv_v2.wav new file mode 100644 index 0000000000000000000000000000000000000000..dad94064fd4e465b57e33acf6c7bfb34389eccdb GIT binary patch literal 384044 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 PYMOL4-3Ws`)#?8Lvc1SS literal 0 HcmV?d00001 diff --git a/src/renderer/audio/audio.js b/src/renderer/audio/audio.js index f2b801b0..025edc5e 100644 --- a/src/renderer/audio/audio.js +++ b/src/renderer/audio/audio.js @@ -84,7 +84,7 @@ var CiderAudio = { if (app.cfg.audio.maikiwiAudio.spatial === true) { CiderAudio.audioNodes.spatialNode = CiderAudio.context.createConvolver(); - fetch('./audio/CiderSpatial_Conv.wav').then(async (impulseData) => { + fetch('./audio/CiderSpatial_Conv_v2.wav').then(async (impulseData) => { let bufferedImpulse = await impulseData.arrayBuffer(); CiderAudio.audioNodes.spatialNode.buffer = await CiderAudio.context.decodeAudioData(bufferedImpulse); From d0a90f565d09d311637cc5561e96ec7dc2255605 Mon Sep 17 00:00:00 2001 From: Maikiwi Date: Fri, 18 Feb 2022 16:44:11 -0800 Subject: [PATCH 266/337] update desc --- src/renderer/views/pages/settings.ejs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/renderer/views/pages/settings.ejs b/src/renderer/views/pages/settings.ejs index 89ce36d9..9dcb7837 100644 --- a/src/renderer/views/pages/settings.ejs +++ b/src/renderer/views/pages/settings.ejs @@ -154,9 +154,9 @@

$xB2E>^PgVXrvZU^s`SQP$_ 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�tnI)p{er|z^F)!nw8`MUtg4} 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¨&I5>}= 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

- Cider Tuned Spatialization + Maikiwi Spatialization
- Pre-tuned Spatializing Effect by the Cider Dev Team, disables the customizable settings of Audio Spatialization. + Pre-tuned Spatializing Effect by Maikiwi, disables the customizable settings of Audio Spatialization. Spatialization must be enabled as a prerequisite.
From e2a8b803e57b9581b4beef7e5f6c032ff2807d96 Mon Sep 17 00:00:00 2001 From: booploops <49113086+booploops@users.noreply.github.com> Date: Fri, 18 Feb 2022 16:46:40 -0800 Subject: [PATCH 267/337] Added loadJSFrontend --- src/main/base/utils.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/main/base/utils.ts b/src/main/base/utils.ts index 96b937d0..68919815 100644 --- a/src/main/base/utils.ts +++ b/src/main/base/utils.ts @@ -83,6 +83,10 @@ export class utils { return bw.win } + static loadJSFrontend(path: string): void { + bw.win.webContents.executeJavaScript(fs.readFileSync(path, "utf8")); + } + /** * Playback Functions */ From d51d732e05beef143047287a7157e5e4dc83a212 Mon Sep 17 00:00:00 2001 From: Maikiwi Date: Fri, 18 Feb 2022 17:05:09 -0800 Subject: [PATCH 268/337] idk --- src/renderer/audio/audio.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/renderer/audio/audio.js b/src/renderer/audio/audio.js index 025edc5e..0b5281b9 100644 --- a/src/renderer/audio/audio.js +++ b/src/renderer/audio/audio.js @@ -89,7 +89,7 @@ var CiderAudio = { CiderAudio.audioNodes.spatialNode.buffer = await CiderAudio.context.decodeAudioData(bufferedImpulse); }); - CiderAudio.audioNodes.spatialNode.normalize = true; + CiderAudio.audioNodes.spatialNode.normalize = true; CiderAudio.audioNodes.spatialNode.connect(CiderAudio.context.destination); } else { From 451e25f071a20133ab0d187cba41f5259f5c67d4 Mon Sep 17 00:00:00 2001 From: booploops <49113086+booploops@users.noreply.github.com> Date: Fri, 18 Feb 2022 17:09:29 -0800 Subject: [PATCH 269/337] added onRendererReady --- src/main/base/plugins.ts | 1 + src/main/index.ts | 4 ++++ src/renderer/index.js | 2 +- 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/main/base/plugins.ts b/src/main/base/plugins.ts index ccb7f2e4..e9a6971d 100644 --- a/src/main/base/plugins.ts +++ b/src/main/base/plugins.ts @@ -64,6 +64,7 @@ export class Plugins { app: electron.app, store: utils.getStore(), utils: utils, + win: utils.getWindow(), dir: pluginPath } plugins[plugin.name] = new plugin(pluginEnv); diff --git a/src/main/index.ts b/src/main/index.ts index daeb3eeb..a046cd8a 100644 --- a/src/main/index.ts +++ b/src/main/index.ts @@ -61,6 +61,10 @@ app.on('ready', () => { * Renderer Event Handlers * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +ipcMain.handle("renderer-ready", (event) => { + CiderPlug.callPlugins("onRendererReady", event); +}) + ipcMain.on('playbackStateDidChange', (_event, attributes) => { CiderPlug.callPlugins('onPlaybackStateDidChange', attributes); }); diff --git a/src/renderer/index.js b/src/renderer/index.js index fa9cc246..a3551d58 100644 --- a/src/renderer/index.js +++ b/src/renderer/index.js @@ -821,7 +821,7 @@ const app = new Vue({ this.getBrowsePage(); this.$forceUpdate() }, 500) - + ipcRenderer.invoke("renderer-ready", true) }, setTheme(theme = "") { console.log(theme) From 7f9f842eb581c5ad7001140fe69ac97fd3808672 Mon Sep 17 00:00:00 2001 From: Maikiwi Date: Fri, 18 Feb 2022 17:13:35 -0800 Subject: [PATCH 270/337] wasm pain --- src/renderer/audio/audio.js | 22 +++++++++++++++++++++- src/renderer/views/pages/settings.ejs | 8 ++++---- 2 files changed, 25 insertions(+), 5 deletions(-) diff --git a/src/renderer/audio/audio.js b/src/renderer/audio/audio.js index 0b5281b9..c47f2f4e 100644 --- a/src/renderer/audio/audio.js +++ b/src/renderer/audio/audio.js @@ -261,6 +261,26 @@ var CiderAudio = { console.log('[Cider][Audio] Vibrant Bass, CAP, Analog Warmth, Spatial') } } + // CAP, Analog Warmth, Spatial + else if (app.cfg.audio.maikiwiAudio.vibrantBass.multiplier === 0 && + app.cfg.audio.maikiwiAudio.ciderPPE === true && + app.cfg.audio.spatial === true && + app.cfg.audio.maikiwiAudio.analogWarmth === true) { + + CiderAudio.llpw_h2_2(true, 1); + CiderAudio.analogWarmth_h2_3(true, 3); + + if (app.cfg.audio.maikiwiAudio.spatial === true) { + CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialNode); + CiderAudio.audioNodes.spatialNode.connect(CiderAudio.audioNodes.analogWarmth[0]); + console.log('[Cider][Audio] CAP, Analog Warmth, Maikiwi Spatial') + } + else { + CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialInput.input); + CiderAudio.audioNodes.spatialNode.output.connect(CiderAudio.audioNodes.analogWarmth[0]); + console.log('[Cider][Audio] CAP, Analog Warmth, Spatial') + } + } // Vibrant Bass, CAP, Spatial else if (app.cfg.audio.maikiwiAudio.vibrantBass.multiplier !== 0 && app.cfg.audio.maikiwiAudio.ciderPPE === true && @@ -303,7 +323,7 @@ var CiderAudio = { if (app.cfg.audio.maikiwiAudio.spatial === true) { CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialNode); CiderAudio.audioNodes.spatialNode.connect(CiderAudio.audioNodes.llpw[0]); - console.log('[Cider][Audio] Maikiwi Spatial') + console.log('[Cider][Audio] CAP, Maikiwi Spatial') } else { CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialInput.input); diff --git a/src/renderer/views/pages/settings.ejs b/src/renderer/views/pages/settings.ejs index 9dcb7837..051e229c 100644 --- a/src/renderer/views/pages/settings.ejs +++ b/src/renderer/views/pages/settings.ejs @@ -88,10 +88,10 @@ {{$root.getLz('settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.description')}}
- -
@@ -113,10 +113,10 @@ Changes the intensity of the Analog Warmth Module processing.
- -
From c9f17a71bd746ff23f3cb42df44c5b42af7213e3 Mon Sep 17 00:00:00 2001 From: booploops <49113086+booploops@users.noreply.github.com> Date: Fri, 18 Feb 2022 19:03:30 -0800 Subject: [PATCH 271/337] adds audiolabs --- src/main/base/browserwindow.ts | 1 + src/renderer/views/app/app-content.ejs | 7 +++- .../views/components/audio-settings.ejs | 5 +++ src/renderer/views/pages/audiolabs.ejs | 36 +++++++++++++++++++ 4 files changed, 48 insertions(+), 1 deletion(-) create mode 100644 src/renderer/views/pages/audiolabs.ejs diff --git a/src/main/base/browserwindow.ts b/src/main/base/browserwindow.ts index d15a92d1..6a0a69e6 100644 --- a/src/main/base/browserwindow.ts +++ b/src/main/base/browserwindow.ts @@ -48,6 +48,7 @@ export class BrowserWindow { "pages/remote-pair", "pages/themes-github", "pages/replay", + "pages/audiolabs", "components/mediaitem-artwork", "components/artwork-material", "components/menu-panel", diff --git a/src/renderer/views/app/app-content.ejs b/src/renderer/views/app/app-content.ejs index b64e3f7d..10250ca4 100644 --- a/src/renderer/views/app/app-content.ejs +++ b/src/renderer/views/app/app-content.ejs @@ -171,7 +171,12 @@ - + + + +