From d376faafbb07a2511d1079a3cad80fcbd0335b71 Mon Sep 17 00:00:00 2001 From: cryptofyre Date: Sat, 14 May 2022 00:00:40 -0500 Subject: [PATCH] =?UTF-8?q?my=20balls=20=CC=A7itch=20(#1039)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Update es_ES * Localization updates * Documentation * Localization updates * Documentation * Xd * Expose playback progress. * Cider The Wekeend Update Add more keybinds and make own page to change it ( No more Pop Up) Redesing the "Menu Bar" to more efficient order. * CleanUp * Some Strings Update made By "Monochromish" * Documentation * Goodbye Analog Warmth * typo * I can't fuckin read * Updated config.yml * Auto Triage * Remove Spatialization from Audio Settings modal * Remove customizable Spatialization strings * Remove some whitespaces in ja_JP * Add i18n updates to README * Change some things in i18n README * Remove whitespace in ja_JP * uhh * Add hide_timestamp to store * Add hideTimestamp to en_US and source * Add hideTimestamp to hu_HU * Add check to discordrpc.ts * Add hideTimestamp to settings * Add missing button labels (fix for screen readers) (#1016) * added some attributes for themes https://docs.cider.sh/themes/available-attributes * Fix unlove * Revert "Fix unlove" * Update ja_JP.json Drafted by あづき#8046 Finalized by Maikiwi * ja_JP credit change * Update en_OWO.json * Add Relaunch Prompt to nativeTitleBar and hw_acc * Update zh_TW.json Update TW language. * made some new playback icons * german language changes * CiderAudio cleanup * and I forgor * perf increase * electron version bump * feat: 🌐 Update French language (#1030) * further cideraudio trimming * i18n support for CAR/CTS * fix broken code * Update es_ES * Update Some "Audio Settings" String and added to es_ES * optimizations added show loved tracks inline set several less operations to async changed default transition to fade in, moved slide in to sweetener changed drawer transition to transform optimizations for disabled gpu * readded audio strings * Don't code while ur sleepy * don't fix code while ur drunk * test your commits before pushing * impulses can now be external * feat: 🌐 Update French Language * Create Themes and Plugins folder if it doesnt't exist Fixes #742 * Make cast device list scrollable * Removal of Natural (High) * i18n changes * I'm an idiot * fix queue menu * CAR mode selector ext * I forgor Co-authored-by: Mefsaal Co-authored-by: Gabriel Davila <56521591+mefsaal@users.noreply.github.com> Co-authored-by: maikirakiwi Co-authored-by: Core <64542347+coredev-uk@users.noreply.github.com> Co-authored-by: Amaru8 <52407090+Amaru8@users.noreply.github.com> Co-authored-by: Pedro Galhardo Co-authored-by: booploops <49113086+booploops@users.noreply.github.com> Co-authored-by: GamingLiamStudios <58615717+GamingLiamStudios@users.noreply.github.com> Co-authored-by: 宥叡 <46503943+jay900604@users.noreply.github.com> Co-authored-by: UnbreakCode Co-authored-by: Erwan <24718500+ErwanGit@users.noreply.github.com> Co-authored-by: Erwan Co-authored-by: licia-tia Co-authored-by: vapormusic --- .circleci/config.yml | 10 +- Assets/Cider Icons/svg/cider-backward.svg | 12 + Assets/Cider Icons/svg/cider-forward.svg | 12 + Assets/Cider Icons/svg/cider-pause.svg | 10 + Assets/Cider Icons/svg/cider-play.svg | 7 + package.json | 4 +- src/i18n/README.md | 151 ++- src/i18n/cz_CZ.json | 2 - src/i18n/de_DE.json | 10 +- src/i18n/el_GR.json | 8 +- src/i18n/en_GB.json | 2 - src/i18n/en_HODOR.json | 2 - src/i18n/en_OWO.json | 64 +- src/i18n/en_PISS.json | 2 - src/i18n/en_QUK.json | 2 - src/i18n/en_SGA.json | 2 - src/i18n/en_US.json | 41 +- src/i18n/es_ES.json | 36 +- src/i18n/es_MX.json | 2 - src/i18n/fr_CA.json | 2 - src/i18n/fr_FR.json | 309 ++++- src/i18n/hi_IN.json | 2 - src/i18n/hu_HU.json | 3 +- src/i18n/in_ID.json | 2 - src/i18n/it_IT.json | 2 - src/i18n/ja_JP.json | 973 +++++++------- src/i18n/ko_KR.json | 2 - src/i18n/nl_NL.json | 2 - src/i18n/pt_BR.json | 2 - src/i18n/ro_RO.json | 2 - src/i18n/ru_RU.json | 2 - src/i18n/sk_SK.json | 2 - src/i18n/source/en_US.json | 37 +- src/i18n/sv_SE.json | 2 - src/i18n/tr_TR.json | 2 - src/i18n/vi_VN.json | 2 - src/i18n/zh_CN.json | 12 +- src/i18n/zh_HK.json | 2 - src/i18n/zh_TW.json | 16 +- src/i18n/zh_yue.json | 2 - src/main/base/browserwindow.ts | 25 +- src/main/base/store.ts | 32 +- src/main/plugins/discordrpc.ts | 4 +- src/main/plugins/menubar.ts | 153 ++- src/preload/cider-preload.js | 2 + src/renderer/assets/cider-icons/backward.svg | 12 + src/renderer/assets/cider-icons/forward.svg | 12 + src/renderer/assets/cider-icons/pause.svg | 10 + src/renderer/assets/cider-icons/play.svg | 7 + src/renderer/audio/audio.js | 1133 +++-------------- .../AtmosphereRealizer_NaturalHigh.wav | Bin 29764 -> 0 bytes src/renderer/less/elements.less | 16 +- src/renderer/main/vueapp.js | 15 +- src/renderer/style.css | 15 + src/renderer/style.less | 95 +- src/renderer/themes/sweetener.less | 36 + src/renderer/views/app/app-content.ejs | 7 +- src/renderer/views/app/chrome-bottom.ejs | 34 +- src/renderer/views/app/chrome-top.ejs | 43 +- src/renderer/views/app/sidebar.ejs | 38 +- .../views/components/add-to-playlist.ejs | 4 +- .../views/components/airplay-modal.ejs | 2 +- .../views/components/audio-controls.ejs | 2 +- .../views/components/audio-playbackrate.ejs | 2 +- .../views/components/audio-settings.ejs | 15 +- src/renderer/views/components/castmenu.ejs | 10 +- src/renderer/views/components/cider-modal.ejs | 6 +- src/renderer/views/components/equalizer.ejs | 8 +- src/renderer/views/components/fullscreen.ejs | 42 +- .../components/inline-collection-list.ejs | 2 +- .../views/components/mediaitem-list-item.ejs | 10 +- .../views/components/mediaitem-square.ejs | 20 +- .../views/components/moreinfo-modal.ejs | 6 +- src/renderer/views/components/plugin-menu.ejs | 2 +- .../views/components/qrcode-modal.ejs | 10 +- src/renderer/views/components/queue.ejs | 12 +- src/renderer/views/components/share-sheet.ejs | 4 +- .../views/components/spatial-properties.ejs | 10 +- src/renderer/views/main.ejs | 2 +- src/renderer/views/pages/artist.ejs | 16 +- src/renderer/views/pages/audiolabs.ejs | 97 +- src/renderer/views/pages/cider-playlist.ejs | 4 +- src/renderer/views/pages/collection-list.ejs | 2 +- src/renderer/views/pages/keybinds.ejs | 267 ++++ src/renderer/views/pages/library-albums.ejs | 15 +- .../views/pages/library-recentlyadded.ejs | 4 +- src/renderer/views/pages/library-songs.ejs | 9 +- src/renderer/views/pages/playlist-inline.ejs | 22 +- src/renderer/views/pages/podcasts.ejs | 2 +- src/renderer/views/pages/settings.ejs | 253 +--- .../views/components/mediaitem-square.ejs | 10 +- 91 files changed, 2178 insertions(+), 2140 deletions(-) create mode 100644 Assets/Cider Icons/svg/cider-backward.svg create mode 100644 Assets/Cider Icons/svg/cider-forward.svg create mode 100644 Assets/Cider Icons/svg/cider-pause.svg create mode 100644 Assets/Cider Icons/svg/cider-play.svg create mode 100644 src/renderer/assets/cider-icons/backward.svg create mode 100644 src/renderer/assets/cider-icons/forward.svg create mode 100644 src/renderer/assets/cider-icons/pause.svg create mode 100644 src/renderer/assets/cider-icons/play.svg delete mode 100644 src/renderer/audio/impulses/AtmosphereRealizer_NaturalHigh.wav create mode 100644 src/renderer/views/pages/keybinds.ejs diff --git a/.circleci/config.yml b/.circleci/config.yml index b29ba993..4c387387 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -168,25 +168,25 @@ workflows: - prepare-build: filters: branches: - only: main + only: develop - build-windows: requires: - prepare-build filters: branches: - only: main + only: develop - build-linux: requires: - prepare-build filters: branches: - only: main + only: develop - build-winget: requires: - prepare-build filters: branches: - only: main + only: develop - release: requires: - build-windows @@ -194,4 +194,4 @@ workflows: - build-winget filters: branches: - only: main + only: develop diff --git a/Assets/Cider Icons/svg/cider-backward.svg b/Assets/Cider Icons/svg/cider-backward.svg new file mode 100644 index 00000000..e5801e05 --- /dev/null +++ b/Assets/Cider Icons/svg/cider-backward.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/Assets/Cider Icons/svg/cider-forward.svg b/Assets/Cider Icons/svg/cider-forward.svg new file mode 100644 index 00000000..41154a4c --- /dev/null +++ b/Assets/Cider Icons/svg/cider-forward.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/Assets/Cider Icons/svg/cider-pause.svg b/Assets/Cider Icons/svg/cider-pause.svg new file mode 100644 index 00000000..bcc4cf53 --- /dev/null +++ b/Assets/Cider Icons/svg/cider-pause.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/Assets/Cider Icons/svg/cider-play.svg b/Assets/Cider Icons/svg/cider-play.svg new file mode 100644 index 00000000..4246456a --- /dev/null +++ b/Assets/Cider Icons/svg/cider-play.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/package.json b/package.json index d446201a..ab55a9b1 100644 --- a/package.json +++ b/package.json @@ -109,9 +109,9 @@ } ], "build": { - "electronVersion": "18.2.1", + "electronVersion": "18.2.2", "electronDownload": { - "version": "18.2.1+wvcus", + "version": "18.2.2+wvcus", "mirror": "https://github.com/castlabs/electron-releases/releases/download/v" }, "appId": "cider", diff --git a/src/i18n/README.md b/src/i18n/README.md index b81a8498..28375d07 100644 --- a/src/i18n/README.md +++ b/src/i18n/README.md @@ -2,7 +2,7 @@ Some notes about Cider's i18n support. -- Localization files are stored in `json` format aka "JavaScript Object Notation". +- Localization files are stored in `json` format aka `JavaScript Object Notation`. - The default language is English. - The default language is used for messages that are not translated. - Try when possible to keep the messages the similar in length to the English ones. @@ -23,7 +23,7 @@ How it is implemented for English: ``` "term.track": { - "one" : "track", + "one` : "track", "other" : "tracks" }, ``` @@ -34,11 +34,11 @@ How it is implemented for English: Several changes have been made to configuration options and will be listed below with the relevant locales that have been modified, the ones not mentioned in the list need modifying. -* `settings.option.experimental.closeButtonBehaviour`: Changed to `close_button_hide` - Should be "Close Button Should Hide the Application". `.quit`, `.minimizeTaskbar` and `.minimizeTray` have been removed. Translations done for en_US. +* `settings.option.experimental.closeButtonBehaviour`: Changed to `close_button_hide` - Should be `Close Button Should Hide the Application`. `.quit`, `.minimizeTaskbar` and `.minimizeTray` have been removed. Translations done for en_US. * `action.update`: Added for `en_US`. -* `term.topResult`: "Top Result" - Added for `en_US`. -* `term.sharedPlaylists`: "Shared Playlists" - Added for `en_US`. -* `term.people`: "People" - Added for `en_US`. +* `term.topResult`: `Top Result` - Added for `en_US`. +* `term.sharedPlaylists`: `Shared Playlists` - Added for `en_US`. +* `term.people`: `People` - Added for `en_US`. Update 02/02/2022 17:16 UTC @@ -279,17 +279,17 @@ Update 24/04/2022 19:00 UTC Update 25/04/2022 00:21 UTC -* `settings.description.search`: Added for `en_US` -* `settings.description.albums`: Added for `en_US` -* `settings.description.artists`: Added for `en_US` -* `settings.description.browse`: Added for `en_US` -* `settings.description.private`: Added for `en_US` -* `settings.description.remote`: Added for `en_US` -* `settings.description.audio`: Added for `en_US` -* `settings.description.plugins`: Added for `en_US` -* `settings.description.cast`: Added for `en_US` -* `settings.description.settings`: Added for `en_US` -* `settings.description.developer`: Added for `en_US` +* `settings.description.search`: Added for `en_US` +* `settings.description.albums`: Added for `en_US` +* `settings.description.artists`: Added for `en_US` +* `settings.description.browse`: Added for `en_US` +* `settings.description.private`: Added for `en_US` +* `settings.description.remote`: Added for `en_US` +* `settings.description.audio`: Added for `en_US` +* `settings.description.plugins`: Added for `en_US` +* `settings.description.cast`: Added for `en_US` +* `settings.description.settings`: Added for `en_US` +* `settings.description.developer`: Added for `en_US` Update 28/04/2022 21:45 UTC @@ -301,44 +301,89 @@ Update 28/04/2022 21:45 UTC Update 29/04/2022 00:00 UTC - * `menubar.options.about`: Added for `en_US` - * `menubar.options.settings`: Added for `en_US` - * `menubar.options.quit`: Added for `en_US` - * `menubar.options.view`: Added for `en_US` - * `menubar.options.reload`: Added for `en_US` - * `menubar.options.forcereload`: Added for `en_US` - * `menubar.options.toggledevtools`: Added for `en_US` - * `menubar.options.window`: Added for `en_US` - * `menubar.options.minimize`: Added for `en_US` - * `menubar.options.toggleprivate`: Added for `en_US` - * `menubar.options.webremote`: Added for `en_US` - * `menubar.options.audio`: Added for `en_US` - * `menubar.options.plugins`: Added for `en_US` - * `menubar.options.control`: Added for `en_US` - * `menubar.options.next`: "Added for `en_US` - * `menubar.options.previous`: Added for `en_US` - * `menubar.options.volumeup`: Added for `en_US` - * `menubar.options.volumedown`: Added for `en_US` - * `menubar.options.browse`: Added for `en_US` - * `menubar.options.artists`: Added for `en_US` - * `menubar.options.search`: Added for `en_US` - * `menubar.options.albums`: Added for `en_US` - * `menubar.options.cast`: Added for `en_US` - * `menubar.options.account`: Added for `en_US` - * `menubar.options.accountsettings`: Added for `en_US` - * `menubar.options.signout`: Added for `en_US` - * `menubar.options.support`: Added for `en_US` - * `menubar.options.discord`: Added for `en_US` - * `menubar.options.github`: Added for `en_US` - * `menubar.options.report`: Added for `en_US` - * `menubar.options.bug`: Added for `en_US` - * `menubar.options.feature`: Added for `en_US` - * `menubar.options.trans`: Added for `en_US` - * `menubar.options.license`: Added for `en_US` - * `menubar.options.conf`: Added for `en_US` - +* `menubar.options.about`: Added for `en_US` +* `menubar.options.settings`: Added for `en_US` +* `menubar.options.quit`: Added for `en_US` +* `menubar.options.view`: Added for `en_US` +* `menubar.options.reload`: Added for `en_US` +* `menubar.options.forcereload`: Added for `en_US` +* `menubar.options.toggledevtools`: Added for `en_US` +* `menubar.options.window`: Added for `en_US` +* `menubar.options.minimize`: Added for `en_US` +* `menubar.options.toggleprivate`: Added for `en_US` +* `menubar.options.webremote`: Added for `en_US` +* `menubar.options.audio`: Added for `en_US` +* `menubar.options.plugins`: Added for `en_US` +* `menubar.options.control`: Added for `en_US` +* `menubar.options.next`: `Added for `en_US` +* `menubar.options.previous`: Added for `en_US` +* `menubar.options.volumeup`: Added for `en_US` +* `menubar.options.volumedown`: Added for `en_US` +* `menubar.options.browse`: Added for `en_US` +* `menubar.options.artists`: Added for `en_US` +* `menubar.options.search`: Added for `en_US` +* `menubar.options.albums`: Added for `en_US` +* `menubar.options.cast`: Added for `en_US` +* `menubar.options.account`: Added for `en_US` +* `menubar.options.accountsettings`: Added for `en_US` +* `menubar.options.signout`: Added for `en_US` +* `menubar.options.support`: Added for `en_US` +* `menubar.options.discord`: Added for `en_US` +* `menubar.options.github`: Added for `en_US` +* `menubar.options.report`: Added for `en_US` +* `menubar.options.bug`: Added for `en_US` +* `menubar.options.feature`: Added for `en_US` +* `menubar.options.trans`: Added for `en_US` +* `menubar.options.license`: Added for `en_US` +* `menubar.options.conf`: Added for `en_US` Update 08/05/2022 00:29 UTC * `settings.option.visual.theme.github.available`: Added for `en_US`, * `settings.option.visual.theme.github.applied`: Added for `en_US`, + +Update 09/05/2022 01:50 UTC + +* `menubar.options.listennow`: Added for `en_US`, +* `menubar.options.recentlyAdded`: Added for `en_US`, +* `menubar.options.songs`: Added for `en_US`, +* `settings.description.listnow`: Added for `en_US`, +* `settings.description.recentAdd`: Added for `en_US`, +* `settings.description.songs`: Added for `en_US`, +* `settings.option.general.keybindings.pressCombination`: Added for `en_US`, +* `settings.option.general.keybindings.pressEscape`: Added for `en_US`, +* `settings.option.visual.theme.github.available`: Added for `en_US` +* `settings.option.visual.theme.github.applied`: Added for `en_US` + +Update 09/05/2022 19:30 UTC + +* `settings.option.audio.enableAdvancedFunctionality.audioSpatialization`: Deleted for all language files +* `settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description`: Deleted for all language files + +Update 12/05/2022 19:00 UTC + +* `settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.NATURAL_STANDARD`: Added for `en_US`, +* `settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.NATURAL_HIGH`: Added for `en_US`, +* `settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.NATURAL_PLUS`: Added for `en_US`, +* `settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.standard`: Added for `en_US`, +* `settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.soundstage`: Added for `en_US`, +* `settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.separation`: Added for `en_US`, + + +Update 12/05/2022 22:50 UTC + +* `settings.option.audio.dbspl.display`: Added for `en_US`, +* `settings.option.audio.dbspl.description`: Added for `en_US`, +* `settings.option.audio.dbfs.calibration`: Added for `en_US`, +* `settings.option.audio.dbfs.description`: Added for `en_US` + +Update 14/05/2022 02:00 UTC + +* `settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.NATURAL_HIGH`: Deleted for all language files +* `settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.NATURAL_STANDARD`: Renamed for `en_US`, +* `settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.NATURAL_PLUS`: Renamed for `en_US`, +* `settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.E68_1`: Added for `en_US`, +* `settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.E68_2`: Added for `en_US`, +* `settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.E168_1`: Added for `en_US`, +* `settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.Z3600`: Added for `en_US`, +* `settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.Z8500`: Added for `en_US` diff --git a/src/i18n/cz_CZ.json b/src/i18n/cz_CZ.json index 5302de63..e27ccbf1 100644 --- a/src/i18n/cz_CZ.json +++ b/src/i18n/cz_CZ.json @@ -232,8 +232,6 @@ "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.aggressive": "Agresivní", "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "Normalizace zvuku", "settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "Normalizuje špičkovou hlasitost pro jednotlivé stopy a vytváří jednotnější zážitek z poslechu.", - "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "Prostorovost zvuku", - "settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "Prostorově upravte zvuk a udělejte zvuk více 3-rozměrný (poznámka: Toto není Dolby Atmos)", "settings.header.visual": "Vizuální", "settings.header.visual.description": "Upravte vizuální nastavení pro Cider.", "settings.option.visual.windowBackgroundStyle": "Styl pozadí okna", diff --git a/src/i18n/de_DE.json b/src/i18n/de_DE.json index 8927b95d..0da421ee 100644 --- a/src/i18n/de_DE.json +++ b/src/i18n/de_DE.json @@ -26,8 +26,8 @@ "term.history": "Verlauf", "term.search": "Suche", "term.library": "Mediathek", - "term.listenNow": "Jetzt Hören", - "term.browse": "Durchsuchen", + "term.listenNow": "Jetzt hören", + "term.browse": "Entdecken", "term.radio": "Radio", "term.recentlyAdded": "Zuletzt hinzugefügt", "term.songs": "Songs", @@ -192,7 +192,7 @@ "action.unlove": "Entlieben", "action.dislike": "Dislike", "action.undoDislike": "Dislike entfernen", - "action.showWebRemoteQR": "Zeige Web-Remote QR-Code", + "action.showWebRemoteQR": "Web-Remote", "action.playTracksNext": "Spiele ${app.selectedMediaItems.length} Lieder als Nächstes", "action.playTracksLater": "Spiele ${app.selectedMediaItems.length} Lieder später", "action.removeTracks": "Entferne ${self.selectedItems.length} Lieder aus der Warteschlange", @@ -238,8 +238,6 @@ "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.aggressive": "Aggressiv", "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "Audio-Normalisierung", "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", - "settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "Macht die Musik räumlicher (3D-Effekt) (Beachte: Dies ist kein Dolby Atmos)", "settings.warn.audio.enableAdvancedFunctionality.audioSpatialization.compatibility": "Räumliches Audio ist nicht mit CAP kompatibel. Bitte deaktiviere CAP zuerst.", "settings.header.visual": "Visuell", "settings.header.visual.description": "Passe die visuellen Einstellungen für Cider an.", @@ -318,4 +316,4 @@ "remote.web.title": "Cider Remote", "remote.web.description": "Scanne den QR-Code um dein Handy mit dieser Cider-Instanz zu verbinden", "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.json b/src/i18n/el_GR.json index 2c7843c6..4fd3b86a 100644 --- a/src/i18n/el_GR.json +++ b/src/i18n/el_GR.json @@ -340,9 +340,9 @@ "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizer.description": "Εφαρμόζει μια διαφορετική ατμόσφαιρα στον ήχο.", "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode": "Λειτουργία ατμόσφαιρας ήχου", "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.description": "Αλλάζει τη λειτουργία ατμόσφαιρας ήχου.", - "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.natural1": "Φυσική (Κανονικό)", - "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.natural2": "Φυσική (Υψηλό)", - "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.natural3": "Φυσική (Υψηλότερο)", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.NATURAL_STANDARD": "Φυσική (Κανονικό)", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.NATURAL_HIGH": "Φυσική (Υψηλό)", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.NATURAL_PLUS": "Φυσική (Υψηλότερο)", "settings.option.audio.enableAdvancedFunctionality.ciderPPE": "Επεξεργαστής ήχου Cider (CAP)", "settings.option.audio.enableAdvancedFunctionality.ciderPPE.description": "Βελτιώνει την αντιληπτή ποιότητα ήχου χρησιμοποιώντας αλγορίθμους.", "settings.warn.audio.enableAdvancedFunctionality.ciderPPE.compatibility": "Το CAP δεν είναι συμβατό με τη Χωρικοποίηση Ήχου. Παρακαλούμε απενεργοποιήστε τη Χωρικοποίηση Ήχου για να συνεχίσετε.", @@ -353,8 +353,6 @@ "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "Κανονικοποίηση έντασης ήχου", "settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "Κανονικοποιεί την ένταση για μεμονωμένα κομμάτια για μια πιο ομοιόμορφη εμπειρία ακρόασης. (Δεν λειτουργεί σε κομμάτια που ανέβηκαν από χρήστες)", "settings.option.audio.enableAdvancedFunctionality.audioNormalization.disabled": "Διαχειρίζεται από το Audio Lab", - "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "Χωρικοποίηση Ήχου", - "settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "Πιο τρισδιάστατος και χωρικοποιημένος ήχος (σημείωση: Αυτό δεν είναι Dolby Atmos)", "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization": "Χωρικοποίηση Cider", "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.description": "Pre-tuned Εφέ Χωρικοποίησης, απενεργοποιεί τις προσαρμόσιμες ρυθμίσεις της Χωρικοποίησης Ήχου. Η Χωρικοποίηση Ήχου πρέπει να είναι ενεργοποιημένη.", "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile": "Προφίλ Χωρικοποίησης Cider", diff --git a/src/i18n/en_GB.json b/src/i18n/en_GB.json index 6555b245..bd4f7203 100644 --- a/src/i18n/en_GB.json +++ b/src/i18n/en_GB.json @@ -8,8 +8,6 @@ "settings.option.audio.enableAdvancedFunctionality.description": "Enabling AudioContext functionality will allow for extended audio features like Audio Normalisation, Equalisers and Visualisers - however on some systems this may cause stuttering in audio tracks.", "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "Audio Normalisation", "settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "Normalises peak volume for individual tracks to create a more uniform listening experience.", - "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "Audio Spatialisation", - "settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "Spatialise audio and make audio more 3-dimensional (note: This is not Dolby Atmos)", "spatial.notTurnedOn": "Audio Spatialisation is disabled. To use, please enable it first.", "action.tray.minimize": "Minimise to Tray", "term.tracks": "songs", diff --git a/src/i18n/en_HODOR.json b/src/i18n/en_HODOR.json index dcbc2dd7..3e720b79 100644 --- a/src/i18n/en_HODOR.json +++ b/src/i18n/en_HODOR.json @@ -194,8 +194,6 @@ "settings.option.audio.enableAdvancedFunctionality.description": "ENABLING HODOR FUNCTIONALITY WILL HODOR FOR EXTENDED HODOR FEATURES LIKE HODOR NORMALIZATION , HODORIZERS AND HODORS, BUT ON SOME HODOR SYSTEMS THIS HODOR CAUSE HODOR IN HODOR.", "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "HODOR NORMALIZATION", "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", - "settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "SPATIALIZE HODOR AND MAKE HODOR MORE 3-HODOR (HODOR: THIS IS NOT HODOR ATMOS)", "settings.header.visual": "HODOR SEES", "settings.header.visual.description": "ADJUST HODOR EYES FOR HODOR.", "settings.option.visual.windowBackgroundStyle": "BACK HODOR STYLE", diff --git a/src/i18n/en_OWO.json b/src/i18n/en_OWO.json index 5e03b54d..14a8821f 100644 --- a/src/i18n/en_OWO.json +++ b/src/i18n/en_OWO.json @@ -21,11 +21,13 @@ "term.accountSettings": "Account Settings", "term.logout": "Wogout", "term.login": "Wog In", + "term.quickNav": "Quick Nyav", "term.cast": "Cast", "term.about": "About", "term.privateSession": "Pwivate Session", "term.disablePrivateSession": "Disabwe Pwivate Session", "term.queue": "Queue", + "term.autoplay": "Autopway", "term.lyrics": "Wywics", "term.miniplayer": "MinyiPwayew", "term.history": "Histowy", @@ -46,12 +48,19 @@ "term.createNewPlaylist": "Cweate Nyew Pwaywist", "term.createNewPlaylistFolder": "Cweate Nyew Pwaywist Fowdew", "term.deletePlaylist": "Awe you suwe you want to dewete this pwaywist?", + "term.navigateBack": "Nyavigate back", + "term.navigateForward": "Nyavigate fowwawd", "term.play": "Pway", "term.pause": "Pause", "term.previous": "Pwevious", "term.next": "Nyext", "term.shuffle": "Shuffwe", + "term.enableShuffle": "Enyabwe shuffwe", + "term.disableShuffle": "Disabwe shuffwe", "term.repeat": "Wepeat", + "term.enableRepeatOne": "Enyabwe wepeat onye", + "term.disableRepeatOne": "Disabwe wepeat onye", + "term.disableRepeat": "Disabwe wepeat", "term.volume": "Vowume", "term.mute": "Mute", "term.unmute": "Unmute", @@ -254,6 +263,7 @@ "action.newpreset": "Nyew Pweset...", "action.deletepreset": "Dewete Pweset", "action.open": "Open", + "action.close": "Cwose", "action.relaunch.confirm": "Do you want to wewaunch Cidew?", "action.cast.chromecast": "Chwomecast", "action.cast.todevices": "Cast to Devices", @@ -264,6 +274,43 @@ "action.cast.scanning": "Scannying...", "action.createNew": "Cweate Nyew...", "action.openArtworkInBrowser": "Open awtwowk in bwowsew", + "action.scrollToTop": "Scwoww to top", + "menubar.options.about": "About", + "menubar.options.settings": "Settings", + "menubar.options.quit": "Quit Cidew", + "menubar.options.view": "View ", + "menubar.options.reload": "Wewoad", + "menubar.options.forcereload": "Fowce Wewoad", + "menubar.options.toggledevtools": "Toggwe Devewopew Toows", + "menubar.options.window": "Window", + "menubar.options.minimize": "Minyimize", + "menubar.options.toggleprivate": "Toggwe Pwivate Session", + "menubar.options.webremote": "Web Wemote", + "menubar.options.audio": "Audio Settings", + "menubar.options.plugins": "Pwu-gins Menyu", + "menubar.options.controls": "Contwows", + "menubar.options.next": "Nyext", + "menubar.options.playpause": "Pway/Pause", + "menubar.options.previous": "Pwevious", + "menubar.options.volumeup": "Vowume Up", + "menubar.options.volumedown": "Vowume Down", + "menubar.options.browse": "Bwowse", + "menubar.options.artists": "Awtists", + "menubar.options.search": "Seawch", + "menubar.options.albums": "Awbums", + "menubar.options.cast": "Cast To Devices", + "menubar.options.account": "Account", + "menubar.options.accountsettings": "Account Settings", + "menubar.options.signout": "Sign Out", + "menubar.options.support": "Suppowt", + "menubar.options.discord": "Discowd", + "menubar.options.github": "GitHub Wiki", + "menubar.options.report": "Wepowt a...", + "menubar.options.bug": "Bug", + "menubar.options.feature": "Featuwe Wequest", + "menubar.options.trans": "Twanswation Wepowt/Wequest", + "menubar.options.license": "View Wicense", + "menubar.options.conf": "Open Configuwation Fiwe in Editow", "settings.header.general": "Genyewaw", "settings.header.general.description": "Adjust the genyewaw settings fow Cidew.", "settings.option.general.language": "Wanguage", @@ -330,6 +377,7 @@ "settings.option.audio.audioLab.description": "An assowtment of in-house devewoped audio effects fow Cidew.", "settings.option.audio.audioLab.subheader": "Designyed by Cidew Acoustic Technyowogies in Cawifownyia", "settings.warn.audioLab.withoutAF": "AudioContext (Advanced Functionyawity) is wequiwed to enyabwe Cidew Audio Wabowatowy.", + "settings.warn.enableAdvancedFunctionality": "AudioContext (Advanced Functionyawity) is wequiwed to enyabwe this featuwe.", "settings.option.audio.enableAdvancedFunctionality.analogWarmth": "Anyawog Wawmth", "settings.option.audio.enableAdvancedFunctionality.analogWarmth.description": "Simuwates the anyawog wawmth modewwed aftew the Kowg Nyutube 6P1", "settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity": "Anyawog Wawmth intensity", @@ -340,9 +388,9 @@ "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizer.description": "Weawizes a diffewent musicaw atmosphewe modewwed aftew the state of the awt audio setups.", "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode": "Cidew Atmosphewe Weawizew™️ Mode", "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.description": "Changes the mode of opewation of the Atmosphewe Weawizew moduwe.", - "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.natural1": "Nyatuwaw (Standawd)", - "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.natural2": "Nyatuwaw (High)", - "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.natural3": "Nyatuwaw (Pwus)", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.NATURAL_STANDARD": "Nyatuwaw (Standawd)", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.NATURAL_HIGH": "Nyatuwaw (High)", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.NATURAL_PLUS": "Nyatuwaw (Pwus)", "settings.option.audio.enableAdvancedFunctionality.ciderPPE": "Cidew Adwenyawinye Pwocessow™️", "settings.option.audio.enableAdvancedFunctionality.ciderPPE.description": "Enhances the pewceived audio quawity of 256 kbps AAC audio by using a weaw-time awgowithm that takes advantage of both psychoacoustic modews of human heawing and AAC encoding chawactewistics.", "settings.warn.audio.enableAdvancedFunctionality.ciderPPE.compatibility": "CAP is nyot compatibwe with Spatiawization. Pwease disabwe Spatiawization to continyue.", @@ -353,8 +401,6 @@ "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "Audio Nyowmawization", "settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "Nyowmawizes peak vowume fow individuaw twacks to cweate a mowe unyifowm wistenying expewience. (Does nyot wowk on usew upwoaded twacks)", "settings.option.audio.enableAdvancedFunctionality.audioNormalization.disabled": "Manyaged by Audio Wab", - "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "Audio Spatiawization", - "settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "Spatiawize audio and make audio mowe 3-dimensionyaw (nyote: This is nyot Dowby Atmos)", "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization": "Cidew Tunyed Spatiawization", "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.description": "Pwe-tunyed Spatiawizing Effect, disabwes the customizabwe settings of Audio Spatiawization. Spatiawization must be enyabwed as a pwewequisite.", "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile": "Cidew Spatiawization Pwofiwe", @@ -392,6 +438,13 @@ "settings.header.visual.theme.github.page": "Themes fwom GitHub", "settings.option.visual.theme.github.install.confirm": "Awe you suwe you want to instaww {{ repo }}?", "settings.prompt.visual.theme.github.URL": "Entew the UWW of the theme you want to instaww", + "settings.prompt.visual.theme.uninstallTheme": "Awe you suwe you want to unyinstaww {{ theme }}?", + "settings.option.visual.theme.checkForUpdates": "Check fow updates", + "settings.option.visual.theme.manageStyles": "Manyage Stywes", + "settings.option.visual.theme.uninstall": "Unyinstaww", + "settings.option.visual.theme.viewInfo": "View Info", + "settings.option.visual.theme.github.available": "Avaiwabwe", + "settings.option.visual.theme.github.applied": "Appwied", "settings.notyf.visual.theme.install.success": "Theme instawwed successfuwwy", "settings.notyf.visual.theme.install.error": "Theme instawwation faiwed", "settings.header.visual.plugin": "Pwugin", @@ -428,6 +481,7 @@ "settings.option.connectivity.discordRPC.clientName": "Cwient Nyame", "settings.option.connectivity.discordRPC.clearOnPause": "Cweaw Discowd Wich Pwesence on Pause", "settings.option.connectivity.discordRPC.hideButtons": "Hide buttons on Discowd Wich Pwesence", + "settings.option.connectivity.discordRPC.hideTimestamp": "Hide timestamp on Discowd Wich Pwesence", "settings.option.connectivity.discordRPC.detailsFormat": "Detaiws Fowmat", "settings.option.connectivity.discordRPC.stateFormat": "State Fowmat", "settings.option.connectivity.lastfmScrobble": "Wast.fm Scwobbwing", diff --git a/src/i18n/en_PISS.json b/src/i18n/en_PISS.json index 9744ee4c..a814017c 100644 --- a/src/i18n/en_PISS.json +++ b/src/i18n/en_PISS.json @@ -244,8 +244,6 @@ "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.aggressive": "turbo piss", "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "piss normaliztion", "settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "protect your eardrums from overly loud/slient pisses", - "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "3D piss", - "settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "this aint the dolby atmos you are looking for but its still pretty crazy so check it out", "settings.header.visual": "piss appearance", "settings.header.visual.description": "change how your piss looks", "settings.option.visual.windowBackgroundStyle": "background piss", diff --git a/src/i18n/en_QUK.json b/src/i18n/en_QUK.json index 2d0ed544..b59a6b2e 100644 --- a/src/i18n/en_QUK.json +++ b/src/i18n/en_QUK.json @@ -242,8 +242,6 @@ "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.aggressive": "Aggressive", "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "Audio Normalization", "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", - "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.header.visual": "Visual", "settings.header.visual.description": "Adjust the visual settings for Cider.", diff --git a/src/i18n/en_SGA.json b/src/i18n/en_SGA.json index d3f875e1..69eb68fb 100644 --- a/src/i18n/en_SGA.json +++ b/src/i18n/en_SGA.json @@ -316,8 +316,6 @@ "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "ᖋ⚍↸╎ᒍ リᒍ∷ᒲᖋ|:╎∩ᖋᒣ╎ᒍリ", "settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "リᒍ∷ᒲᖋ|:╎∩ᒷϟ i!ᒷᖋ·ǀ· ⍊ᒍ|:⚍ᒲᒷ ⎓ᒍ∷ ╎リ↸╎⍊╎↸⚍ᖋ|: ᒣ∷ᖋᔮ·ǀ·ϟ ᒣᒍ ᔮ∷ᒷᖋᒣᒷ ᖋ ᒲᒍ∷ᒷ ⚍リ╎⎓ᒍ∷ᒲ |:╎ϟᒣᒷリ╎リ┤ ᒷ/i!ᒷ∷╎ᒷリᔮᒷ.", "settings.option.audio.enableAdvancedFunctionality.audioNormalization.disabled": "ᒲᖋリᖋ┤ᒷ↸ ᕊ॥ ᖋ⚍↸╎ᒍ |:ᖋᕊ", - "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "ᖋ⚍↸╎ᒍ ϟi!ᖋᒣ╎ᖋ|:╎∩ᖋᒣ╎ᒍリ", - "settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "ϟi!ᖋᒣ╎ᖋ|:╎∩ᒷ ᖋ⚍↸╎ᒍ ᖋリ↸ ᒲᖋ·ǀ·ᒷ ᖋ⚍↸╎ᒍ ᒲᒍ∷ᒷ 3-↸╎ᒲᒷリϟ╎ᒍリᖋ|: (リᒍᒣᒷ: ᒣ⍑╎ϟ ╎ϟ リᒍᒣ ↸ᒍ|:ᕊ॥ ᖋᒣᒲᒍϟ)", "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization": "ᔮ╎↸ᒷ∷ ᒣ⚍リᒷ↸ ϟi!ᖋᒣ╎ᖋ|:╎∩ᖋᒣ╎ᒍリ", "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.description": "i!∷ᒷ-ᒣ⚍リᒷ↸ ϟi!ᖋᒣ╎ᖋ|:╎∩╎リ┤ ᒷ⎓⎓ᒷᔮᒣ, ↸╎ϟᖋᕊ|:ᒷϟ ᒣ⍑ᒷ ᔮ⚍ϟᒣᒍᒲ╎∩ᖋᕊ|:ᒷ ϟᒷᒣᒣ╎リ┤ϟ ᒍ⎓ ᖋ⚍↸╎ᒍ ϟi!ᖋᒣ╎ᖋ|:╎∩ᖋᒣ╎ᒍリ. ϟi!ᖋᒣ╎ᖋ|:╎∩ᖋᒣ╎ᒍリ ᒲ⚍ϟᒣ ᕊᒷ ᒷリᖋᕊ|:ᒷ↸ ᖋϟ ᖋ i!∷ᒷ∷ᒷᑑ⚍╎ϟ╎ᒣᒷ.", "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile": "ᔮ╎↸ᒷ∷ ϟi!ᖋᒣ╎ᖋ|:╎∩ᖋᒣ╎ᒍリ i!∷ᒍ⎓╎|:ᒷ", diff --git a/src/i18n/en_US.json b/src/i18n/en_US.json index 2b1e581b..cc8ce40d 100644 --- a/src/i18n/en_US.json +++ b/src/i18n/en_US.json @@ -21,11 +21,13 @@ "term.accountSettings": "Account Settings", "term.logout": "Logout", "term.login": "Log In", + "term.quickNav": "Quick Nav", "term.cast": "Cast", "term.about": "About", "term.privateSession": "Private Session", "term.disablePrivateSession": "Disable Private Session", "term.queue": "Queue", + "term.autoplay": "Autoplay", "term.lyrics": "Lyrics", "term.miniplayer": "MiniPlayer", "term.history": "History", @@ -46,12 +48,19 @@ "term.createNewPlaylist": "Create New Playlist", "term.createNewPlaylistFolder": "Create New Playlist Folder", "term.deletePlaylist": "Are you sure you want to delete this playlist?", + "term.navigateBack": "Navigate back", + "term.navigateForward": "Navigate forward", "term.play": "Play", "term.pause": "Pause", "term.previous": "Previous", "term.next": "Next", "term.shuffle": "Shuffle", + "term.enableShuffle": "Enable shuffle", + "term.disableShuffle": "Disable shuffle", "term.repeat": "Repeat", + "term.enableRepeatOne": "Enable repeat one", + "term.disableRepeatOne": "Disable repeat one", + "term.disableRepeat": "Disable repeat", "term.volume": "Volume", "term.mute": "Mute", "term.unmute": "Unmute", @@ -254,6 +263,7 @@ "action.newpreset": "New Preset...", "action.deletepreset": "Delete Preset", "action.open": "Open", + "action.close": "Close", "action.relaunch.confirm": "Do you want to relaunch Cider?", "action.cast.chromecast": "Chromecast", "action.cast.todevices": "Cast to Devices", @@ -264,6 +274,7 @@ "action.cast.scanning": "Scanning...", "action.createNew": "Create New...", "action.openArtworkInBrowser": "Open artwork in browser", + "action.scrollToTop": "Scroll to top", "menubar.options.about": "About", "menubar.options.settings": "Settings", "menubar.options.quit": "Quit Cider", @@ -300,6 +311,9 @@ "menubar.options.trans": "Translation Report/Request", "menubar.options.license": "View License", "menubar.options.conf": "Open Configuration File in Editor", + "menubar.options.listennow": "Listen Now", + "menubar.options.recentlyAdded": "Recently Added", + "menubar.options.songs": "Songs", "settings.header.general": "General", "settings.header.general.description": "Adjust the general settings for Cider.", "settings.option.general.language": "Language", @@ -324,9 +338,13 @@ "settings.option.general.customizeSidebar": "Customize Sidebar Items", "settings.option.general.customizeSidebar.customize": "Customize", "settings.option.general.keybindings": "Keybindings", + "settings.option.general.keybindings.pressCombination": "Press a combination of two keys to update keybind.", + "settings.option.general.keybindings.pressEscape": "Press Escape key to go back.", "settings.notyf.general.keybindings.update.success": "Keybind updated successfully", "settings.prompt.general.keybindings.update.success": "Keybind updated successfully. Press OK to relaunch Cider", "settings.option.general.keybindings.open": "Open", + "settings.option.general.themeUpdateNotification": "Automatically check for theme updates", + "settings.option.general.showLovedTracksInline": "Show loved tracks inline", "settings.description.search": "Search", "settings.description.albums": "Library Albums", "settings.description.artists": "Library Artists", @@ -338,6 +356,9 @@ "settings.description.cast": "Cast to Devices", "settings.description.settings": "Settings", "settings.description.developer": "Developer Tools", + "settings.description.listnow": "Listen Now", + "settings.description.recentAdd": "Recently Added", + "settings.description.songs": "Songs", "settings.notyf.updateCider.update-not-available": "No update available", "settings.notyf.updateCider.update-downloaded": "Update has been downloaded, restart to apply", "settings.notyf.updateCider.update-error": "Error updating Cider", @@ -377,9 +398,13 @@ "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizer.description": "Realizes a different musical atmosphere modelled after the state of the art audio setups.", "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode": "Cider Atmosphere Realizer™️ Mode", "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.description": "Changes the mode of operation of the Atmosphere Realizer module.", - "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.natural1": "Natural (Standard)", - "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.natural2": "Natural (High)", - "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.natural3": "Natural (Plus)", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.NATURAL_STANDARD": "Hōjicha Cheese Foam Tea", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.NATURAL_PLUS": "Genmaicha Tapioca Milk Tea", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.E68_1": "Rock Salt Cheese Foam Tea", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.E68_2": "Uji Matcha Milk Tea", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.E168_1": "Jasmine Macchiato", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.Z3600": "Hokkaido Milk Tea", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.Z8500": "Moonlight Softcake", "settings.option.audio.enableAdvancedFunctionality.ciderPPE": "Cider Adrenaline Processor™️", "settings.option.audio.enableAdvancedFunctionality.ciderPPE.description": "Enhances the perceived audio quality of 256 kbps AAC audio by using a real-time algorithm that takes advantage of both psychoacoustic models of human hearing and AAC encoding characteristics.", "settings.warn.audio.enableAdvancedFunctionality.ciderPPE.compatibility": "CAP is not compatible with Spatialization. Please disable Spatialization to continue.", @@ -390,15 +415,20 @@ "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "Audio Normalization", "settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "Normalizes peak volume for individual tracks to create a more uniform listening experience. (Does not work on user uploaded tracks)", "settings.option.audio.enableAdvancedFunctionality.audioNormalization.disabled": "Managed by Audio Lab", - "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "Audio Spatialization", - "settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "Spatialize audio and make audio more 3-dimensional (note: This is not Dolby Atmos)", "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization": "Cider Tuned Spatialization", "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.description": "Pre-tuned Spatializing Effect, disables the customizable settings of Audio Spatialization. Spatialization must be enabled as a prerequisite.", "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile": "Cider Spatialization Profile", "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.description": "Changes the Tuning Profile of the Spatialization.", "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.standard": "Standard", + "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.soundstage": "Soundstage", + "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.separation": "Separation", + "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.minimal": "Minimal", "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.audiophile": "Audiophile", "settings.warn.audio.enableAdvancedFunctionality.audioSpatialization.compatibility": "Spatialization is not compatible with CAP. Please disable CAP to continue.", + "settings.option.audio.dbspl.display": "dB SPL Display", + "settings.option.audio.dbspl.description": "(Advanced users only) Display dB SPL instead of dBFS on the volume slider.", + "settings.option.audio.dbfs.calibration": "0 dBFS Calibration", + "settings.option.audio.dbfs.description": "Enter the peak Z-weighted dB SPL when Cider is at 0 dBFS.", "settings.header.visual": "Visual", "settings.header.visual.description": "Adjust the visual settings for Cider.", "settings.option.visual.windowStyle": "Window Style", @@ -472,6 +502,7 @@ "settings.option.connectivity.discordRPC.clientName": "Client Name", "settings.option.connectivity.discordRPC.clearOnPause": "Clear Discord Rich Presence on Pause", "settings.option.connectivity.discordRPC.hideButtons": "Hide buttons on Discord Rich Presence", + "settings.option.connectivity.discordRPC.hideTimestamp": "Hide timestamp on Discord Rich Presence", "settings.option.connectivity.discordRPC.detailsFormat": "Details Format", "settings.option.connectivity.discordRPC.stateFormat": "State Format", "settings.option.connectivity.lastfmScrobble": "Last.fm Scrobbling", diff --git a/src/i18n/es_ES.json b/src/i18n/es_ES.json index 808004fd..47686341 100644 --- a/src/i18n/es_ES.json +++ b/src/i18n/es_ES.json @@ -21,11 +21,13 @@ "term.accountSettings": "Configuración de la Cuenta", "term.logout": "Cerrar Sesión", "term.login": "Iniciar Sesión", + "term.quickNav": "Navegación rápida", "term.cast": "Transmitir", "term.about": "Acerca de", "term.privateSession": "Sesión Privada", "term.disablePrivateSession": "Deshabilitar Sesión Privada", "term.queue": "Cola", + "term.autoplay": "Reproducción Automática", "term.lyrics": "Letras", "term.miniplayer": "Mini-Reproductor", "term.history": "Historial", @@ -46,12 +48,19 @@ "term.createNewPlaylist": "Crear Nueva Lista de Reproducción", "term.createNewPlaylistFolder": "Crear Nueva Carpeta de Listas de Reproducción", "term.deletePlaylist": "¿Estas Seguro de Querer Eliminar esta Lista de Reproducción?", + "term.navigateBack": "Navegar Hacia Atrás", + "term.navigateForward": "Navegar Hacia Adelante", "term.play": "Reproducir", "term.pause": "Pausar", "term.previous": "Anterior", "term.next": "Siguiente", "term.shuffle": "Aleatorio", + "term.enableShuffle": "Habilitar Reproducción Aleatoria", + "term.disableShuffle": "Desactivar Reproducción Aleatoria", "term.repeat": "Repetir", + "term.enableRepeatOne": "Habilitar Repetir Uno", + "term.disableRepeatOne": "Deshabilitar Repetir Uno", + "term.disableRepeat": "Deshabilitar Repetición", "term.volume": "Volumen", "term.mute": "Silenciar", "term.unmute": "De-silenciar", @@ -254,6 +263,7 @@ "action.newpreset": "Nuevo Preset...", "action.deletepreset": "Borrar Preset", "action.open": "Abrir", + "action.close": "Cerrar", "action.relaunch.confirm": "¿Quieres reiniciar Cider?", "action.cast.chromecast": "Chromecast", "action.cast.todevices": "Transmitir a los Dispositivos", @@ -264,6 +274,7 @@ "action.cast.scanning": "Escaneando...", "action.createNew": "Crear Nuevo...", "action.openArtworkInBrowser": "Abrir Ilustración en el navegador", + "action.scrollToTop": "Ir al inicio", "menubar.options.about": "Acerca de", "menubar.options.settings": "Ajustes", "menubar.options.quit": "Salir", @@ -300,6 +311,9 @@ "menubar.options.trans": "Solicitud de Informe/Traducción", "menubar.options.license": "Ver licencia", "menubar.options.conf": "Abrir archivo de configuración en el editor", + "menubar.options.listennow": "Escuchar Ahora", + "menubar.options.recentlyAdded": "Agregadas Recientemente", + "menubar.options.songs": "Canciones", "settings.header.general": "General", "settings.header.general.description": "Ajuste la configuración general de Cider.", "settings.option.general.language": "Idioma", @@ -324,6 +338,8 @@ "settings.option.general.customizeSidebar": "Personalizar elementos de la barra lateral", "settings.option.general.customizeSidebar.customize": "Personalizar", "settings.option.general.keybindings": "Combinaciones de Teclas", + "settings.option.general.keybindings.pressCombination": "Presione una combinación de dos teclas para actualizar la combinación de teclas.", + "settings.option.general.keybindings.pressEscape": "Pulse la tecla Escape para volver.", "settings.notyf.general.keybindings.update.success": "Combinación de teclas actualizada correctamente", "settings.prompt.general.keybindings.update.success": "La combinación de teclas se actualizó correctamente. Pulsa OK para reiniciar Cider", "settings.option.general.keybindings.open": "Abrir", @@ -338,6 +354,9 @@ "settings.description.cast": "Transmitir a los Dispositivos", "settings.description.settings": "Configuraciones", "settings.description.developer": "Herramientas para Desarrolladores", + "settings.description.listnow": "Escuchar Ahora", + "settings.description.recentAdd": "Agregadas Recientemente", + "settings.description.songs": "Canciones", "settings.notyf.updateCider.update-not-available": "No hay actualizaciones disponibles", "settings.notyf.updateCider.update-downloaded": "La actualización se ha descargado, Reinicie para aplicarla", "settings.notyf.updateCider.update-error": "Error al actualizar Cider", @@ -377,9 +396,9 @@ "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizer.description": "Realiza una Atmósfera musical diferente modelada a partir de las configuraciones de audio de última generación.", "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode": "Cider Atmosphere Realizer™️ Mode", "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.description": "Cambia el modo de funcionamiento del módulo Atmosphere Realizer.", - "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.natural1": "Natural (Estándar)", - "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.natural2": "Natural (Alto)", - "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.natural3": "Natural (Plus)", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.NATURAL_STANDARD": "Natural (Estándar)", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.NATURAL_HIGH": "Natural (Alto)", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.NATURAL_PLUS": "Natural (Plus)", "settings.option.audio.enableAdvancedFunctionality.ciderPPE": "Cider Adrenaline Processor™️", "settings.option.audio.enableAdvancedFunctionality.ciderPPE.description": "Mejora la calidad de audio percibida del audio AAC de 256 kbps mediante el uso de un algoritmo en tiempo real que aprovecha los modelos psicoacústicos de la audición humana y las características de codificación AAC.", "settings.warn.audio.enableAdvancedFunctionality.ciderPPE.compatibility": "CAP no es compatible con la Espacialización. Desactive la Espacialización para continuar.", @@ -390,15 +409,19 @@ "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "Normalización de audio", "settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "Normaliza el volumen máximo de pistas individuales para crear una experiencia auditiva más uniforme. (No funciona en las pistas cargadas por el usuario)", "settings.option.audio.enableAdvancedFunctionality.audioNormalization.disabled": "Gestionado por AudioLab", - "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "Espacialización de audio", - "settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "Espacializa el Audio y haga que el Sonido sea más tridimensional (Nota: esto NO es Dolby Atmos)", "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization": "Espacialización Sintonizada de Cider", "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.description": "Efecto de preajuste de espacialización, deshabilita la configuración personalizable de la espacialización de audio. La espacialización debe estar habilitada como requisito previo.", "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile": "Perfil de espacialización de Cider", "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.description": "Cambia el Perfil de Ajuste de Espacialización.", "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.standard": "Estándar", - "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.audiophile": "Audiófilo", + "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.soundstage": "Estudio de Sonido", + "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.separation": "Separación", + "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.minimal": "Mínimo", "settings.warn.audio.enableAdvancedFunctionality.audioSpatialization.compatibility": "La Espacialización no es compatible con CAP. Deshabilite CAP para continuar.", + "settings.option.audio.dbspl.display": "Visualización dB SPL", + "settings.option.audio.dbspl.description": "(Solo usuarios avanzados) Muestra 'dB SPL' en lugar de 'dBFS' en el control deslizante de volumen.", + "settings.option.audio.dbfs.calibration": "Calibración de 0 dBFS", + "settings.option.audio.dbfs.description": "Ingrese el pico 'dB SPL con Ponderación-Z' cuando Cider esté en 0 dBFS.", "settings.header.visual": "Visual", "settings.header.visual.description": "Ajuste la configuración visual de Cider.", "settings.option.visual.windowStyle": "Estilo de Ventana", @@ -472,6 +495,7 @@ "settings.option.connectivity.discordRPC.clientName": "Nombre del Cliente", "settings.option.connectivity.discordRPC.clearOnPause": "Borrar Discord Rich Presence en pausa", "settings.option.connectivity.discordRPC.hideButtons": "Ocultar botones en Discord Rich Presence", + "settings.option.connectivity.discordRPC.hideTimestamp": "Ocultar Marca de Tiempo en Discord Rich Presence", "settings.option.connectivity.discordRPC.detailsFormat": "Formato de los detalles", "settings.option.connectivity.discordRPC.stateFormat": "Formato de Estado", "settings.option.connectivity.lastfmScrobble": "Last.fm Scrobbling", diff --git a/src/i18n/es_MX.json b/src/i18n/es_MX.json index 72749296..ab4f96ee 100644 --- a/src/i18n/es_MX.json +++ b/src/i18n/es_MX.json @@ -317,8 +317,6 @@ "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "Normalización de audio", "settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "Normaliza el volumen máximo de pistas individuales para crear una experiencia auditiva más uniforme. (No funciona en las pistas cargadas por el usuario)", "settings.option.audio.enableAdvancedFunctionality.audioNormalization.disabled": "Gestionado por AudioLab", - "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "Espacialización de audio", - "settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "Espacialice el audio y haga que el audio sea más tridimensional (Nota: esto NO es Dolby Atmos)", "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization": "Cider Tuned Spatialization", "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.description": "Efecto de preajuste de espacialización, deshabilita la configuración personalizable de la espacialización de audio. La espacialización debe estar habilitada como requisito previo.", "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile": "Perfil de espacialización de Cider", diff --git a/src/i18n/fr_CA.json b/src/i18n/fr_CA.json index 64e22373..c246fde7 100644 --- a/src/i18n/fr_CA.json +++ b/src/i18n/fr_CA.json @@ -183,8 +183,6 @@ "settings.option.audio.enableAdvancedFunctionality.description": "L'activation de la fonctionnalité AudioContext permettra des fonctionnalités audio étendues telles que la normalisation audio, les égaliseurs et les visualiseurs, mais sur certains systèmes, cela peut provoquer des saccades dans les chansons audio.", "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "Normalisation audio", "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", - "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.header.visual": "Visuel", "settings.header.visual.description": "Ajustez les réglages visuels de Cider.", "settings.option.visual.windowBackgroundStyle": "Style d'arrière-plan de la window", diff --git a/src/i18n/fr_FR.json b/src/i18n/fr_FR.json index fc19aaa8..a6921072 100644 --- a/src/i18n/fr_FR.json +++ b/src/i18n/fr_FR.json @@ -10,6 +10,7 @@ "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...", + "term.variables": "Variables", "term.appleInc": "Apple Inc.", "term.appleMusic": "Apple Music", "term.applePodcasts": "Apple Podcasts", @@ -20,9 +21,15 @@ "term.accountSettings": "Paramètres du compte", "term.logout": "Déconnexion", "term.login": "Connexion", + "term.quickNav": "Navigation rapide", + "term.cast": "Diffuser", "term.about": "À propos", "term.privateSession": "Session privée", + "term.disablePrivateSession": "Désactiver la session privée", "term.queue": "File d'attente", + "term.autoplay": "Lecture automatique", + "term.lyrics": "Paroles", + "term.miniplayer": "Mini lecteur", "term.history": "Historique", "term.search": "Recherche", "term.library": "Bibliothèque", @@ -39,20 +46,27 @@ "term.newPlaylist": "Nouvelle Playlist", "term.newPlaylistFolder": "Nouveau dossier de playlist", "term.createNewPlaylist": "Créer une nouvelle playlist", - "term.createNewPlaylistFolder": "Create New Playlist Folder", + "term.createNewPlaylistFolder": "Créer un nouveau dossier de playlist", "term.deletePlaylist": "Êtes-vous sûr de vouloir supprimer cette playlist ?", + "term.navigateBack": "Naviguer en arrière", + "term.navigateForward": "Naviguer en avant", "term.play": "Lecture", "term.pause": "Pause", "term.previous": "Précédent", "term.next": "Suivant", "term.shuffle": "Aléatoire", + "term.enableShuffle": "Activer la lecture aléatoire", + "term.disableShuffle": "Désactiver la lecture aléatoire", "term.repeat": "Répéter", + "term.enableRepeatOne": "Activer la répétition un", + "term.disableRepeatOne": "Désactiver la répétition un", + "term.disableRepeat": "Désactiver la répétition", "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.settings": "Paramètres", "term.seeAll": "Voir tout", "term.sortBy": "Trier par", "term.sortBy.album": "Album", @@ -61,12 +75,14 @@ "term.sortBy.genre": "Genre", "term.sortBy.releaseDate": "Date de sortie", "term.sortBy.duration": "Durée", + "term.sortBy.dateAdded": "Date d'ajout", "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.dynamic": "Dynamique", "term.size": "Taille", "term.size.normal": "Normal", "term.size.compact": "Compacte", @@ -88,15 +104,30 @@ "term.time.added": "Ajouté", "term.time.released": "Publié", "term.time.updated": "Mis à jour", + "term.time.days": "jours", + "term.time.day": { + "one": "jour", + "other": "jours" + }, "term.time.hours": "heures", - "term.time.hour": "heure", + "term.time.hour": { + "one": "heure", + "other": "heures" + }, "term.time.minutes": "minutes", - "term.time.minute": "minute", + "term.time.minute": { + "one": "minute", + "other": "minutes" + }, "term.time.seconds": "secondes", - "term.time.second": "seconde", + "term.time.second": { + "one": "seconde", + "other": "secondes" + }, "term.fullscreenView": "Vue plein écran", "term.defaultView": "Vue par défaut", - "term.spacializedAudioSetting": "Paramètres audio spatialisés", + "term.audioSettings": "Paramètres audio", + "term.audioControls": "Contrôles du volume", "term.clearAll": "Tout effacer", "term.recentStations": "Stations récentes", "term.language": "Langue", @@ -112,7 +143,11 @@ "term.contributors": "Contributeurs", "term.equalizer": "Égaliseur", "term.reset": "Réinitialiser", - "term.tracks": "musiques", + "term.tracks": "morceaux", + "term.track": { + "one": "morceau", + "other": "morceaux" + }, "term.videos": "Vidéos", "term.menu": "Menu", "term.check": "Vérifier", @@ -124,6 +159,10 @@ "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.defaultPresets": "Préréglages par défaut", + "term.userPresets": "Préréglages utilisateur", + "term.requestError": "Il y avait un problème avec cette requête.", + "term.song.link.generate": "Obtentions du lien song.link en cours...", "term.musicVideos": "Vidéos musicales", "term.stations": "Stations", "term.curators": "Curateurs", @@ -132,9 +171,27 @@ "term.recordLabels": "Labels de disques", "term.videoExtras": "Vidéos bonus", "term.top": "Top", + "term.version": "Version", + "term.noVideos": "Aucune vidéo trouvée.", + "term.plugin": "Plugin", + "term.pluginMenu": "Plug-in Menu", + "term.pluginMenu.none": "Aucun plugin interactif", + "term.replay": "Replay", + "term.uniqueAlbums": "Albums uniques", + "term.uniqueArtists": "Artistes uniques", + "term.uniqueSongs": "Musiques uniques", + "term.topArtists": "Top Artistes", + "term.listenedTo": "Ecoute :", + "term.times": "fois", + "term.topAlbums": "Top Albums", + "term.plays": "Plays", + "term.topGenres": "Top Genres", + "term.confirmLogout": "Êtes-vous sûr de vouloir vous déconnecter ?", + "term.creditDesignedBy": "Conçu par ${authorUsername}", + "term.discNumber": "Disque ${discNumber}", "home.title": "Accueil", "home.recentlyPlayed": "Joué récemment", - "home.recentlyAdded": "Récemment ajouté", + "home.recentlyAdded": "Ajouté récemment", "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", @@ -152,6 +209,9 @@ "podcast.episodes": "Épisodes", "podcast.playEpisode": "Lire l'épisode", "podcast.website": "Site du podcast", + "action.edit": "Modifier", + "action.done": "Terminé", + "action.editTracklist": "Edit Tracklist", "action.addToLibrary": "Ajouter à la bibliothèque", "action.addToLibrary.success": "Ajouté à la bibliothèque", "action.addToLibrary.error": "Erreur lors de l'ajout à la bibliothèque", @@ -178,6 +238,8 @@ "action.startRadio": "Lancer la radio", "action.goToArtist": "Aller à l'artiste", "action.goToAlbum": "Aller à l'album", + "action.showInPlaylist": "Afficher dans la playlist", + "action.showInAppleMusic": "Afficher dans Apple Music", "action.moveToTop": "Haut de page", "action.share": "Partager", "action.rename": "Renommer", @@ -185,7 +247,7 @@ "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.showWebRemoteQR": "Télécommande Web", "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", @@ -194,40 +256,178 @@ "action.showAlbum": "Afficher l'album complet", "action.tray.minimize": "Réduire dans la barre d'outils", "action.tray.quit": "Quitter", - + "action.tray.show": "Afficher Cider", "action.update": "Mettre à jour", + "action.install": "Installer", "action.copy": "Copier", "action.newpreset": "Nouveau préréglage...", "action.deletepreset": "Supprimer le préréglage", + "action.open": "Ouvrir", + "action.close": "Fermer", + "action.relaunch.confirm": "Voulez-vous redémarrer Cider ?", + "action.cast.chromecast": "Chromecast", + "action.cast.todevices": "Diffuser sur des appareils", + "action.cast.stop": "Arrêter la diffusion sur tous les appareils", + "action.cast.airplay": "AirPlay", + "action.cast.airplay.underdevelopment": "AirPlay est actuellement en développement.", + "action.cast.scan": "Scanner", + "action.cast.scanning": "Scan en cours...", + "action.createNew": "Créer un nouveau...", + "action.openArtworkInBrowser": "Ouvrir la pochette d'album dans le navigateur", + "action.scrollToTop": "Défiler vers le haut", + "menubar.options.about": "À propos", + "menubar.options.settings": "Paramètres", + "menubar.options.quit": "Quitter Cider", + "menubar.options.view": "Afficher ", + "menubar.options.reload": "Recharger", + "menubar.options.forcereload": "Rechargement forcé", + "menubar.options.toggledevtools": "Activer les outils de développement", + "menubar.options.window": "Fenêtre", + "menubar.options.minimize": "Minimiser", + "menubar.options.toggleprivate": "Activer la session privée", + "menubar.options.webremote": "Télécommande Web", + "menubar.options.audio": "Paramètres audio", + "menubar.options.plugins": "Menu des plugins", + "menubar.options.controls": "Contrôles", + "menubar.options.next": "Suivant", + "menubar.options.playpause": "Lecture/Pause", + "menubar.options.previous": "Précédent", + "menubar.options.volumeup": "Augmenter le volume", + "menubar.options.volumedown": "Réduire le volume", + "menubar.options.browse": "Parcourir", + "menubar.options.artists": "Artistes", + "menubar.options.search": "Search", + "menubar.options.albums": "Albums", + "menubar.options.cast": "Diffuser sur des appareils", + "menubar.options.account": "Compte", + "menubar.options.accountsettings": "Paramètres du compte", + "menubar.options.signout": "Se déconnecter", + "menubar.options.support": "Support", + "menubar.options.discord": "Discord", + "menubar.options.github": "Documentation GitHub", + "menubar.options.report": "Remonter un(e)...", + "menubar.options.bug": "Bug", + "menubar.options.feature": "Demande de fonctionnalité", + "menubar.options.trans": "Erreur/Demande de traduction", + "menubar.options.license": "Voir la license", + "menubar.options.conf": "Ouvrir le fichier de configuration dans l'éditeur", + "menubar.options.listennow": "Écoutez maintenant", + "menubar.options.recentlyAdded": "Ajouté récemment", + "menubar.options.songs": "Musiques", "settings.header.general": "Général", "settings.header.general.description": "Ajuster les paramètres généraux de Cider.", "settings.option.general.language": "Langue", + "settings.option.general.resumebehavior": "Comportement de reprise", + "settings.option.general.resumebehavior.description": "Le comportement de reprise affecte la manière dont Cider reprend votre session lorsque vous revenez à l'application.", + "settings.option.general.resumebehavior.locally": "Localement", + "settings.option.general.resumebehavior.locally.description": "Cider reprendra votre dernière session sur cette machine.", + "settings.option.general.resumebehavior.history": "Historique", + "settings.option.general.resumebehavior.history.description": "Cider mettra en file d'attente la dernière chanson de votre historique Apple Music, sur tous les appareils.", + "settings.option.general.resumetabs" : "Ouvrir l'onglet au lancement", + "settings.option.general.resumetabs.description" : "Vous pouvez choisir l'onglet que vous souhaitez ouvrir lorsque vous lancez Cider.", + "settings.option.general.resumetabs.dynamic" : "Dynamique", + "settings.option.general.resumetabs.dynamic.description" : "Cider ouvrira le dernier onglet que vous avez utilisé.", "settings.option.general.language.main": "Langues", "settings.option.general.language.fun": "Langues amusantes", "settings.option.general.language.unsorted": "Non trié", "settings.option.general.updateCider": "Mettre à jour Cider", + "settings.option.general.updateCider.branch": "Branche de mise à jour de Cider", + "settings.option.general.updateCider.branch.description": "Sélectionnez la branche sur laquelle mettre à jour Cider", + "settings.option.general.updateCider.branch.main": "Stable", + "settings.option.general.updateCider.branch.develop": "Développement", + "settings.option.general.customizeSidebar": "Personnaliser les éléments de la barre latérale", + "settings.option.general.customizeSidebar.customize": "Personnalisez", + "settings.option.general.keybindings": "Raccourcis clavier", + "settings.option.general.keybindings.pressCombination": "Appuyez sur une combinaison de deux touches pour mettre à jour la combinaison de touches.", + "settings.option.general.keybindings.pressEscape": "Appuyez sur la touche Échap pour revenir en arrière.", + "settings.notyf.general.keybindings.update.success": "Le raccourci clavier a bien été mis à jour", + "settings.prompt.general.keybindings.update.success": "Le raccourci clavier a bien été mis à jour. Appuyez sur OK pour relancer Cider", + "settings.option.general.keybindings.open": "Ouvrir", + "settings.option.general.themeUpdateNotification": "Vérifier automatiquement les mises à jour des thèmes", + "settings.option.general.showLovedTracksInline": "Afficher les pistes aimées en ligne", + "settings.description.search": "Rechercher", + "settings.description.albums": "Albums de la bibliothèque", + "settings.description.artists": "Artites de la bibliothèque", + "settings.description.browse": "Parcourir", + "settings.description.private": "Activer la session privée", + "settings.description.remote": "Télécommande Web", + "settings.description.audio": "Paramètres audio", + "settings.description.plugins": "Menu des plugins", + "settings.description.cast": "Diffuser sur des appareils", + "settings.description.settings": "Paramètres", + "settings.description.developer": "Outils de développement", + "settings.description.listnow": "Ajouté récemment", + "settings.description.recentAdd": "Ajouté récemment", + "settings.description.songs": "Musiques", + "settings.notyf.updateCider.update-not-available": "Aucune mise à jour disponible", + "settings.notyf.updateCider.update-downloaded": "La mise à jour a été téléchargée, redémarrez pour l'appliquer", + "settings.notyf.updateCider.update-error": "Une erreur s'est produite lors de la mise à jour de Cider", + "settings.notyf.updateCider.update-timeout": "La mise à jour a expiré.", "settings.header.audio": "Audio", "settings.header.audio.description": "Ajuster les paramètres audio de Cider.", + "settings.option.audio.volumeStep": "Étape du volume", + "settings.option.audio.maxVolume": "Volume maximum", + "settings.option.audio.changePlaybackRate": "Changer la vitesse de lecture", + "settings.option.audio.playbackRate": "Vitesse de lecture", + "settings.option.audio.playbackRate.change": "Changer", "settings.option.audio.quality": "Qualité Audio", - "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.hireslossless": "Hi-Res Lossless", + "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.lossless.description": "jusqu'à 24 bits/48 kHz", "settings.header.audio.quality.high": "Élevée", - "settings.header.audio.quality.low": "Faible", - "settings.header.audio.quality.auto": "Automatique", + "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": "Fondu audio transparent", "settings.option.audio.enableAdvancedFunctionality": "Activer les fonctions avancées", "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.warn.audio.enableAdvancedFunctionality.lowcores": "Cider pense que votre PC ne peut pas gérer ces fonctionnalités. Vous êtes sûr de vouloir continuer ?", + "settings.option.audio.audioLab": "Laboratoire audio de Cider", + "settings.option.audio.audioLab.description": "Un assortiment d'effets audio développés en interne pour Cider.", + "settings.option.audio.audioLab.subheader": "Conçu par Cider Acoustic Technologies en Californie", + "settings.warn.audioLab.withoutAF": "AudioContext (Fonctionnalité avancée) est nécessaire pour activer le laboratoire audio de Cider.", + "settings.warn.enableAdvancedFunctionality": "AudioContext (Fonctionnalité avancée) est nécessaire pour activer cette fonctionnalité.", + "settings.option.audio.enableAdvancedFunctionality.analogWarmth": "Chaleur analogique", + "settings.option.audio.enableAdvancedFunctionality.analogWarmth.description": "Simule la chaleur analogique calquée sur le modèle du Korg Nutube 6P1", + "settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity": "Intensité de la chaleur analogique", + "settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity.description": "Modifie l'intensité du traitement du module Analog Warmth.", + "settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity.smooth": "Doux", + "settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity.warm": "Chaud", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizer": "Réalisateur d'atmosphère Cider™️", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizer.description": "Réalise une atmosphère musicale différente, calquée sur les configurations audio de pointe.", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode": "Mode du réalisateur d'atmosphère Cider™️", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.description": "Changes the mode of operation of the Atmosphere Realizer module.", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.NATURAL_STANDARD": "Naturelle (Standard)", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.NATURAL_HIGH": "Naturelle (Élevé)", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.NATURAL_PLUS": "Naturelle (Plus)", "settings.option.audio.enableAdvancedFunctionality.ciderPPE": "Moteur de traitement psycho-acoustique Cider", - + "settings.option.audio.enableAdvancedFunctionality.ciderPPE.description": "Améliore la qualité audio perçue de l'audio AAC 256 kbps en utilisant un algorithme en temps réel qui tire parti à la fois des modèles psychoacoustiques de l'audition humaine et des caractéristiques de codage AAC.", + "settings.warn.audio.enableAdvancedFunctionality.ciderPPE.compatibility": "Le moteur de traitement psycho-acoustique n'est pas compatible avec la spatialisation. Veuillez désactiver la spatialisation pour continuer.", + "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength": "Force du moteur de traitement psycho-acoustique", + "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.description": "Modifie l'intensité du traitement effectué sur l'audio. (Un traitement agressif peut donner des résultats indésirables).", + "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.standard": "Standard", + "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.aggressive": "Agressive", "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "Normalisation du son", "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", - "settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "Spatialiser l'audio et rendre l'audio plus tridimensionnel (note: Ce n'est pas Dolby Atmos)", + "settings.option.audio.enableAdvancedFunctionality.audioNormalization.disabled": "Gérée par le laboratoire audio", + "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization": "Spatialisation Cider", + "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.description": "Effet de spatialisation préétabli, désactive les paramètres personnalisables de la spatialisation audio. La spatialisation doit être activée comme condition préalable.", + "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile": "Profil de spatialisation Cider", + "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.description": "Modifie le profil de réglage de la spatialisation.", + "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.standard": "Standard", + "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.soundstage": "Scène sonore", + "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.separation": "Séparation", + "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.minimal": "Minimale", + "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.audiophile": "Audiophile", + "settings.warn.audio.enableAdvancedFunctionality.audioSpatialization.compatibility": "La spatialisation n'est pas compatible avec le moteur de traitement psycho-acoustique. Veuillez le désactiver pour continuer.", + "settings.option.audio.dbspl.display": "Affichage dB SPL", + "settings.option.audio.dbspl.description": "(Utilisateurs avancés uniquement) Affichez dB SPL au lieu de dBFS sur le curseur de volume.", + "settings.option.audio.dbfs.calibration": "Calibration 0 dBFS", + "settings.option.audio.dbfs.description": "Entrez le SPL de crête pondéré en Z lorsque Cider est à 0 dBFS.", "settings.header.visual": "Visuel", "settings.header.visual.description": "Ajuster les paramètres visuels de Cider.", + "settings.option.visual.windowStyle": "Style de la fenêtre", "settings.option.visual.windowBackgroundStyle": "Style d'arrière-plan de la fenêtre", "settings.header.visual.windowBackgroundStyle.none": "Aucun", "settings.header.visual.windowBackgroundStyle.artwork": "Pochette d'album", @@ -247,34 +447,85 @@ "settings.option.visual.hardwareAcceleration.description": "Nécessite un relancement", "settings.header.visual.hardwareAcceleration.default": "Défaut", "settings.header.visual.hardwareAcceleration.webGPU": "WebGPU", + "settings.option.visual.uiscale": "Échelle de l'interface utilisateur", "settings.header.visual.theme": "Thème", + "settings.option.visual.theme.github.download": "Installer à partir d'une URL GitHub", + "settings.option.visual.theme.github.openfolder": "Ouvrir le dossier des thèmes", + "settings.option.visual.theme.github.explore": "Explorer les thèmes GitHub", + "settings.header.visual.theme.github.page": "Thèmes depuis GitHub", + "settings.option.visual.theme.github.install.confirm": "Êtes-vous sûr de vouloir installer {{ repo }} ?", + "settings.prompt.visual.theme.github.URL": "Saisissez l'URL du thème que vous souhaitez installer", + "settings.prompt.visual.theme.uninstallTheme": "Êtes-vous sûr de vouloir désinstaller {{ theme }} ?", + "settings.option.visual.theme.checkForUpdates": "Vérifier les mises à jour", + "settings.option.visual.theme.manageStyles": "Gérer les styles", + "settings.option.visual.theme.uninstall": "Désinstaller", + "settings.option.visual.theme.viewInfo": "Voir les informations", + "settings.option.visual.theme.github.available": "Disponible", + "settings.option.visual.theme.github.applied": "Appliqué", + "settings.notyf.visual.theme.install.success": "Thème installé avec succès", + "settings.notyf.visual.theme.install.error": "L'installation du thème a échoué", + "settings.header.visual.plugin": "Plugin", + "settings.option.visual.plugin.github.download": "Installer à partir d'une URL GitHub", + "settings.option.visual.plugin.github.explore": "Explorer les plugins GitHub", + "settings.header.visual.plugin.github.page": "Plugins depuis GitHub", + "settings.option.visual.plugin.github.install.confirm": "Êtes-vous sûr de vouloir installer {{ repo }}?", + "settings.prompt.visual.plugin.github.URL": "Saisissez l'URL du plugin que vous souhaitez installer", + "settings.prompt.visual.plugin.github.success": "Thème installé avec succès, appuyez sur OK pour relancer Cider", + "settings.notyf.visual.plugin.install.success": "Thème installé avec succès", + "settings.notyf.visual.plugin.install.error": "L'installation du plugin a échoué", "settings.option.visual.theme.default": "Cider", "settings.option.visual.theme.dark": "Sombre", "settings.option.visual.showPersonalInfo": "Afficher vos informations personnelles", + "settings.header.window": "Fenêtre", + "settings.header.window.description": "Ajustez les paramètres de la fenêtre pour Cider.", + "settings.option.window.openOnStartup": "Ouvrir Cider au démarrage", + "settings.option.window.openOnStartup.hidden": "Ouvrir caché", + "settings.option.window.useNativeTitleBar": "Utiliser la barre de titre native", + "settings.option.window.windowControlStyle": "Style de contrôle de la fenêtre", + "settings.option.window.windowControlStyle.right": "Droite", + "settings.option.window.windowControlStyle.left": "Gauche", "settings.header.lyrics": "Paroles", "settings.header.lyrics.description": "Ajuster les paramètres des paroles pour Cider.", "settings.option.lyrics.enableMusixmatch": "Activer les paroles Musixmatch", "settings.option.lyrics.enableMusixmatchKaraoke": "Activer le mode karaoké (Musixmatch seulement)", "settings.option.lyrics.musixmatchPreferredLanguage": "Langue préférée pour les traductions Musixmatch", "settings.option.lyrics.enableYoutubeLyrics": "Activer les paroles YouTube pour les vidéos de musique", + "settings.option.lyrics.enableQQLyrics": "Activer les paroles QQ", "settings.header.connectivity": "Connectivité", "settings.header.connectivity.description": "Ajuster les paramètres de connectivité de Cider.", - "settings.option.connectivity.discordRPC": "Discord Rich Presence", "settings.option.connectivity.playbackNotifications": "Notifications de lecture", - "settings.header.connectivity.discordRPC.cider": "Afficher comme 'Cider'", - "settings.header.connectivity.discordRPC.appleMusic": "Afficher comme 'Apple Music'", + "settings.option.connectivity.discordRPC": "Discord Rich Presence", + "settings.option.connectivity.discordRPC.clientName": "Nom du client", "settings.option.connectivity.discordRPC.clearOnPause": "Désactiver le Discord Rich Presence quand la musique est en pause", + "settings.option.connectivity.discordRPC.hideButtons": "Cacher les bouttons sur le Discord Rich Presence", + "settings.option.connectivity.discordRPC.hideTimestamp": "Cacher le temps restant sur le Discord Rich Presence", + "settings.option.connectivity.discordRPC.detailsFormat": "Format des détails", + "settings.option.connectivity.discordRPC.stateFormat": "Format de l'état", "settings.option.connectivity.lastfmScrobble": "Scrobble LastFM", "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)", + "settings.header.debug": "Débogage", + "settings.option.debug.copy_log": "Copier les logs dans le presse-papiers", + "settings.option.debug.openAppData": "Ouvrir le dossier de Cider", "settings.header.experimental": "Expérimental", "settings.header.experimental.description": "Ajuster les paramètres expérimentaux de Cider.", + "settings.option.experimental.reinstallwidevine": "Reinstaller WidevineCDM", + "settings.option.experimental.reinstallwidevine.confirm": "Êtes-vous sûr de vouloir réinstaller Widevine ?", + "settings.option.experimental.unknownPlugin": "Sources inconnues", + "settings.option.experimental.unknownPlugin.description": "Permet l'installation de plugins à partir de dépôts autres que le dépôt de plugins de Cider", "settings.option.experimental.compactUI": "Interface utilisateur compacte", "settings.option.window.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", + "settings.option.advanced.playlistTrackMapping": "Cartographie des pistes de la playlists", + "settings.option.advanced.playlistTrackMapping.description": "Permet une analyse approfondie des playlists pour déterminer quels titres se trouvent dans quelles playlists. Les temps de construction du cache des playlists peuvent augmenter de manière significative.", + "settings.option.visual.transparent": "Cadre transparent", + "settings.option.visual.transparent.description": "Requière le support de thème, nécessite un relancement", + "settings.header.advanced": "Avancé", + "settings.header.connect": "Synchroniser", + "settings.option.connect.link_account": "Activer la synchronisation avec Cider Connect", + "settings.option.connect.link_account.description": "Lier votre compte Discord avec Cider Connect vous permet de stocker les données de l'utilisateur, y compris les paramètres, les EQ, et éventuellement plus une fois terminé. (en cours de développement)", "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", @@ -297,5 +548,15 @@ "settings.header.unfinished": "Inachevée", "remote.web.title": "Cider à distance", "remote.web.description": "Scanner le QR code pour associer votre téléphone avec cette instance Cider", + "share.platform.twitter.tweet": "Écoutez {{song}} sur Apple Music.\n\n{{url}}\n\n#AppleMusic #Cider", + "share.platform.twitter": "Twitter", + "share.platform.facebook": "Facebook", + "share.platform.reddit": "Reddit", + "share.platform.telegram": "Telegram", + "share.platform.whatsapp": "WhatsApp", + "share.platform.messenger": "Messenger", + "share.platform.email": "Email", + "share.platform.songLink": "Copier avec song.link", + "share.platform.clipboard": "Copier le lien", "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/hi_IN.json b/src/i18n/hi_IN.json index aa7c5479..037e7e08 100644 --- a/src/i18n/hi_IN.json +++ b/src/i18n/hi_IN.json @@ -232,8 +232,6 @@ "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.aggressive": "Aggressive", "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "Audio Normalization", "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", - "settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "Spatialize audio and make audio more 3-dimensional (note: This is not Dolby Atmos)", "settings.header.visual": "Visual", "settings.header.visual.description": "Adjust the visual settings for Cider.", "settings.option.visual.windowBackgroundStyle": "Window Background Style", diff --git a/src/i18n/hu_HU.json b/src/i18n/hu_HU.json index 8108143d..273853a8 100644 --- a/src/i18n/hu_HU.json +++ b/src/i18n/hu_HU.json @@ -339,8 +339,6 @@ "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "Normalizálás", "settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "Normalizálja az egyes zeneszámok hangosabb részeit, hogy egységesebb hallgatási élményt hozzon létre. (Nem működik a felhasználó által feltöltött zenéken)", "settings.option.audio.enableAdvancedFunctionality.audioNormalization.disabled": "A Cider Hangstúdió kezeli a beállítást", - "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "Térbeli Hang", - "settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "A hangzás háromdimenziósabbá tétele. (Ez nem összekeverendő a Dolby Atmos-szal!)", "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization": "Cider Előbeállított Térbeli Hang", "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.description": "Előre beállított Térbeli hangzás, ami letiltja a Térbeli Hang testreszabási beállításait. A Térbeli Hangot be kell kapcsolni az engedélyezéshez.", "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile": "Cider Térbeli Hangprofil", @@ -416,6 +414,7 @@ "settings.option.connectivity.discordRPC.clientName": "Kliensnév", "settings.option.connectivity.discordRPC.clearOnPause": "Rich Presence törlése megállításnál", "settings.option.connectivity.discordRPC.hideButtons": "Rich Presence gombok elrejtése", + "settings.option.connectivity.discordRPC.hideTimestamp": "Rich Presence visszaszámláló elrejtése", "settings.option.connectivity.discordRPC.detailsFormat": "Részletek formátuma", "settings.option.connectivity.discordRPC.stateFormat": "Állapot formátuma", "settings.option.connectivity.lastfmScrobble": "Last.fm Scrobbling", diff --git a/src/i18n/in_ID.json b/src/i18n/in_ID.json index e97c49dd..0c06ced5 100644 --- a/src/i18n/in_ID.json +++ b/src/i18n/in_ID.json @@ -303,8 +303,6 @@ "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "Normalisasi Audio", "settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "Menormalkan puncak volume untuk masing-masing lagu demi menciptakan pengalaman mendengarkan yang lebih seragam.", "settings.option.audio.enableAdvancedFunctionality.audioNormalization.disabled": "Diatar oleh Lab Audio", - "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "Spasialisasi Audio", - "settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "Atur ruang audio dan buat audio lebih 3 dimensi (NB: Bukan Dolby Atmos)", "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization": "Spasialisasi oleh Cider", "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.description": "Efek Spasialisasi yang sudah diatur. Untuk menggunakannya, matikan pengaturan custom Spasialisasi Audio dan pastikan Spasialisasi Audio sudah aktif.", "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile": "Profil Spasialisasi Cider", diff --git a/src/i18n/it_IT.json b/src/i18n/it_IT.json index 79509b5d..f0fe45b2 100644 --- a/src/i18n/it_IT.json +++ b/src/i18n/it_IT.json @@ -194,8 +194,6 @@ "settings.option.audio.enableAdvancedFunctionality.description": "Attiva AudioContext per funzionalià audio avanzata Normalizzazione Audio, Equalizzatori and Visualizzatori, però su alcuni sistemi potrebbero causare lag nei brani.", "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "Normalizzazione Audio", "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", - "settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "Spazializza l'audio per dare un effetto più tridimensionale (nota: questo non è Dolby Atmos)", "settings.header.visual": "Visuale", "settings.header.visual.description": "Cambia le impostazioni visuali per Cider.", "settings.option.visual.windowBackgroundStyle": "Stile Sfondo Finestra", diff --git a/src/i18n/ja_JP.json b/src/i18n/ja_JP.json index 60531a5b..e41cb061 100644 --- a/src/i18n/ja_JP.json +++ b/src/i18n/ja_JP.json @@ -1,486 +1,489 @@ { - "i18n.languageName": "日本語", - "i18n.languageNameEnglish": "Japanese", - "i18n.category": "main", - "i18n.authors": "@maikirakiwi @aduki_0628", - "app.name": "Cider", - "date.format": "${y}年${m}月${d}日", - "dialog.cancel": "キャンセル", - "dialog.ok": "完了", - "notification.updatingLibrarySongs": "ライブラリの更新中...", - "notification.updatingLibraryAlbums": "ライブラリの更新中...", - "notification.updatingLibraryArtists": "ライブラリの更新中...", - "term.variables": "Variables", - "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.cast": "Cast", - "term.about": "Ciderについて", - "term.privateSession": "プライベートセッション", - "term.disablePrivateSession": "プライベートセッションを無効にする", - "term.queue": "次はこちら", - "term.lyrics": "歌詞", - "term.miniplayer": "MiniPlayer", - "term.history": "History", - "term.search": "検索", - "term.library": "ライブラリ", - "term.listenNow": "今すぐ聴く", - "term.browse": "見つける", - "term.radio": "ラジオ", - "term.recentlyAdded": "最近追加した項目", - "term.songs": "曲", - "term.albums": "アルバム", - "term.artists": "アーティスト", - "term.podcasts": "Podcasts", - "term.playlists": "プレイリスト", - "term.playlist": "プレイリスト", - "term.newPlaylist": "New Playlist", - "term.newPlaylistFolder": "New Playlist Folder", - "term.createNewPlaylist": "Create New Playlist", - "term.createNewPlaylistFolder": "Create New Playlist Folder", - "term.deletePlaylist": "Are you sure you want to delete this playlist?", - "term.play": "再生", - "term.pause": "停止", - "term.previous": "戻る", - "term.next": "次へ", - "term.shuffle": "シャッフル", - "term.repeat": "リピート", - "term.volume": "音量", - "term.mute": "ミュート", - "term.unmute": "ミュート解除", - "term.share": "共有", - "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.sortBy.dateAdded": "追加日", - "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.enabled": "ON", - "term.disable": "OFF", - "term.disabled": "OFF", - "term.enable": "ON", - "term.connect": "接続", - "term.connecting": "接続中", - "term.disconnect": "切断", - "term.authed": "認証済み", - "term.confirm": "よろしいでしょうか?", - "term.more": "もっと", - "term.less": "減らす", - "term.showMore": "もっと見る", - "term.showLess": "表示数を少なくする", - "term.topSongs": "トップソング", - "term.latestReleases": "ニューリリース", - "term.time.added": "追加日", - "term.time.released": "配信開始日", - "term.time.updated": "最終更新日", - "term.time.days": "日", - "term.time.day": { - "one": "日", - "other": "日" - }, - "term.time.hours": "時間", - "term.time.hour": { - "one": "時間", - "other": "時間" - }, - "term.time.minutes": "分", - "term.time.minute": { - "one": "分", - "other": "分" - }, - "term.time.seconds": "秒", - "term.time.second": { - "one": "秒", - "other": "秒" - }, - "term.fullscreenView": "全画面表示", - "term.defaultView": "ウィンドウ表示", - "term.audioSettings": "オーディオ設定", - "term.audioControls": "Volume Controls", - "term.clearAll": "消去", - "term.recentStations": "最近の再生", - "term.language": "言語", - "term.funLanguages": "Fun", - "term.noLyrics": "ローディング。。 / 歌詞が見つからない / 器楽曲.", - "term.copyright": "Copyright", - "term.rightsReserved": "All Rights Reserved.", - "term.sponsor": "スポンサーになりましょう", - "term.ciderTeam": "Cider チーム", - "term.developer": "開発者", - "term.socialTeam": "ソーシャル チーム", - "term.socials": "Socials", - "term.contributors": "貢献者", - "term.equalizer": "イコライザー", - "term.reset": "リセット", - "term.tracks": "曲", - "term.track": { - "one": "曲", - "other": "曲" - }, - "term.videos": "ビデオ", - "term.menu": "メニュー", - "term.check": "確認", - "term.aboutArtist": "{{artistName}}について", - "term.topResult": "Top Result", - "term.sharedPlaylists": "プレイリストを共有", - "term.people": "ユーサ", - "term.newpreset.name": "名前を入力", - "term.addedpreset": "Added Preset", - "term.deletepreset.warn": "Are you sure you want to delete this preset?", - "term.deletedpreset": "Removed preset", - "term.defaultPresets": "Default Presets", - "term.userPresets": "User Presets", - "term.requestError": "There was a problem with the request.", - "term.song.link.generate": "Getting song.link share URL...", - "term.musicVideos": "ミュージックビデオ", - "term.stations": "ステーション", - "term.curators": "Curators", - "term.appleCurators": "Apple Curators", - "term.radioShows": "Radio Shows", - "term.recordLabels": "Record Labels", - "term.videoExtras": "Video Extras", - "term.top": "Top", - "term.version": "バージョン", - "term.noVideos": "No videos found.", - "term.plugin": "Plug-in", - "term.pluginMenu": "Plug-in Menu", - "term.pluginMenu.none": "プラグインが見つかりませんでした", - "term.replay": "リプレイ", - "term.uniqueAlbums": "Unique Albums", - "term.uniqueArtists": "Unique Artists", - "term.uniqueSongs": "Unique Songs", - "term.topArtists": "Top Artists", - "term.listenedTo": "Listened to:", - "term.times": "times", - "term.topAlbums": "Top Albums", - "term.plays": "Plays", - "term.topGenres": "Top Genres", - "term.confirmLogout": "本当にログアウトしますか?", - "term.creditDesignedBy": "${authorUsername}によってデザインされました", - "term.discNumber": "Disc ${discNumber}", - "home.title": "ホーム", - "home.recentlyPlayed": "最近の再生", - "home.recentlyAdded": "最近追加した項目", - "home.artistsFeed": "アーティストのフィード", - "home.artistsFeed.noArtist": "アーティストをフォローすると最新情報を手に入れられます", - "home.madeForYou": "あなたにおすすめ", - "home.friendsListeningTo": "友達が聴いている", - "home.followedArtists": "フォローしているアーティスト", - "error.appleMusicSubRequired": "Apple Musicのサブスクリプションが必要です。", - "error.connectionError": "Apple Musicに接続できません。", - "error.noResults": "見つかりませんでした", - "error.noResults.description": "もう一度お試しください。", - "podcast.followOnCider": "Ciderでフォロー", - "podcast.followedOnCider": "フォロー中", - "podcast.subscribeOnItunes": "iTunesで購読", - "podcast.subscribedOnItunes": "Subscribed On iTunes", - "podcast.itunesStore": "iTunes Store", - "podcast.episodes": "番組", - "podcast.playEpisode": "再生", - "podcast.website": "Podcastウェブ", - "action.edit": "Edit", - "action.done": "Done", - "action.editTracklist": "Edit Tracklist", - "action.addToLibrary": "ライブラリに追加", - "action.addToLibrary.success": "ライブラリに追加されました", - "action.addToLibrary.error": "ライブラリへの追加に失敗しました", - "action.removeFromLibrary": "ライブラリから削除", - "action.removeFromLibrary.success": "ライブラリから削除されました", - "action.addToQueue": "「次はこちら」に項目を追加", - "action.addToQueue.success": "「次はこちら」に項目を追加されました", - "action.addToQueue.error": "操作を完了できませんでした", - "action.removeFromQueue": "「次はこちら」から項目を削除", - "action.removeFromQueue.success": "「次はこちら」から項目を削除されました", - "action.removeFromQueue.error": "操作を完了できませんでした", - "action.createPlaylist": "Create a New Playlist", - "action.addToPlaylist": "Add to Playlist", - "action.removeFromPlaylist": "Remove from Playlist", - "action.addToFavorites": "ラブに追加", - "action.follow": "フォロー", - "action.follow.success": "フォロー中", - "action.follow.error": "操作を完了できませんでした", - "action.unfollow": "フォロー解除", - "action.unfollow.success": "フォローをやめました", - "action.unfollow.error": "操作を完了できませんでした", - "action.playNext": "次に再生", - "action.playLater": "最後に再生", - "action.startRadio": "ステーションを作成", - "action.goToArtist": "アーティストへ移動", - "action.goToAlbum": "アルバムへ移動", - "action.moveToTop": "上に戻る", - "action.share": "曲を共有", - "action.rename": "名前の変更", - "action.love": "ラブ", - "action.unlove": "ラブを解除する", - "action.dislike": "これに似たものをすすめない", - "action.undoDislike": "「これと似た曲のおすすめを減らす」を取り消す", - "action.showWebRemoteQR": "WEBリモコンQRコードを表示", - "action.playTracksNext": "${app.selectedMediaItems.length}曲が次に再生", - "action.playTracksLater": "${app.selectedMediaItems.length}曲が最後に再生", - "action.removeTracks": "${self.selectedItems.length}をキューから除外する", - "action.import": "インポート", - "action.export": "エクスポート", - "action.showAlbum": "アルバムを表示", - "action.tray.minimize": "最小化", - "action.tray.quit": "終了", - "action.tray.show": "Show Cider", - "action.update": "アップデート", - "action.install": "インストール", - "action.copy": "コピー", - "action.newpreset": "新しいプリセット", - "action.deletepreset": "プリセットを削除", - "action.open": "開く", - "action.relaunch.confirm": "Ciderを再開しますか?", - "action.cast.chromecast": "Chromecast", - "action.cast.todevices": "Cast to Devices", - "action.cast.stop": "Stop casting to all devices", - "action.cast.airplay": "AirPlay", - "action.cast.airplay.underdevelopment": "AirPlay is still under development", - "action.cast.scan": "Scan", - "action.cast.scanning": "Scanning...", - "action.createNew": "Create New...", - "action.openArtworkInBrowser": "Open artwork in browser", - "settings.header.general": "一般", - "settings.header.general.description": "Ciderの一般設定", - "settings.option.general.language": "言語", - "settings.option.general.resumebehavior": "Resume behavior", - "settings.option.general.resumebehavior.description": "Resume behavior affects how Cider will resume your session when you return to the app.", - "settings.option.general.resumebehavior.locally": "Locally", - "settings.option.general.resumebehavior.locally.description": "このコンピューターでの最終セッションを復元", - "settings.option.general.resumebehavior.history": "History", - "settings.option.general.resumebehavior.history.description": "Apple Musicの履歴から曲を復元", - "settings.option.general.resumetabs" : "Open Tab on Launch", - "settings.option.general.resumetabs.description" : "You can choose what tab you want to open when you launch Cider.", - "settings.option.general.resumetabs.dynamic" : "Dynamic", - "settings.option.general.resumetabs.dynamic.description" : "Cider will open the tab that you last used.", - "settings.option.general.language.main": "メイン", - "settings.option.general.language.fun": "荒らし", - "settings.option.general.language.unsorted": "未分類", - "settings.option.general.updateCider": "アップデート", - "settings.option.general.updateCider.branch": "Cider Update Branch", - "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.option.general.customizeSidebar": "Customize Sidebar Items", - "settings.option.general.customizeSidebar.customize": "Customize", - "settings.option.general.keybindings": "Keybindings", - "settings.notyf.general.keybindings.update.success": "Keybind updated successfully", - "settings.prompt.general.keybindings.update.success": "Keybind updated successfully. Press OK to relaunch Cider", - "settings.option.general.keybindings.open": "Open", - "settings.description.search": "Search", - "settings.description.albums": "Library Albums", - "settings.description.artists": "Library Artists", - "settings.description.browse": "Browse", - "settings.description.private": "Toggle Private Session", - "settings.description.remote": "Web Remote", - "settings.description.audio": "Audio Settings", - "settings.description.plugins": "Plugins Menu", - "settings.description.cast": "Cast to Devices", - "settings.description.settings": "Settings", - "settings.description.developer": "Developer Tools", - "settings.notyf.updateCider.update-not-available": "現在最新版です", - "settings.notyf.updateCider.update-downloaded": "アップデートは再起動後に適用されます", - "settings.notyf.updateCider.update-error": "アップデートに失敗しました", - "settings.notyf.updateCider.update-timeout": "アップデートはタイムアウトしました", - "settings.header.audio": "オーディオ", - "settings.header.audio.description": "Ciderのオーディオ設定", - "settings.option.audio.volumeStep": "音量調整のステップ", - "settings.option.audio.maxVolume": "最大音量", - "settings.option.audio.changePlaybackRate": "Change Playback Rate", - "settings.option.audio.playbackRate": "Playback Rate", - "settings.option.audio.playbackRate.change": "Change", - "settings.option.audio.quality": "音質", - "settings.header.audio.quality.hireslossless": "ハイレゾロスレス", - "settings.header.audio.quality.hireslossless.description": "(最大解像度 24 ビット/192 kHz)", - "settings.header.audio.quality.lossless": "ロスレス", - "settings.header.audio.quality.lossless.description": "(最大解像度 24 ビット/48 kHz)", - "settings.header.audio.quality.enhanced": "エンハンスド", - "settings.header.audio.quality.high": "高品質", - "settings.header.audio.quality.standard": "高効率", - "settings.option.audio.seamlessTransition": "曲間なしで再生", - "settings.option.audio.enableAdvancedFunctionality": "先進的な機能", - "settings.option.audio.enableAdvancedFunctionality.description": "AudioContextを有効にすると、オーディオノーマライズ、空間オーディオ、イコライザーなどの機能を使用できますが、音が途切れるかもしれません。", - "settings.warn.audio.enableAdvancedFunctionality.lowcores": "Cider thinks your PC can't handle these features. Are you sure you want to continue?", - "settings.option.audio.audioLab": "Cider Audio Lab", - "settings.option.audio.audioLab.description": "An assortment of in-house developed audio effects for Cider.", - "settings.warn.audioLab.withoutAF": "AudioContext (Advanced Functionality) is required to enable Cider Audio Laboratory.", - "settings.option.audio.enableAdvancedFunctionality.analogWarmth": "Analog Warmth", - "settings.option.audio.enableAdvancedFunctionality.analogWarmth.description": "Korg Nutube 6P1をモデルにしたオーディオをシミュレートします", - "settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity": "Analog Warmth intensity", - "settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity.description": "Changes the intensity of the Analog Warmth Module processing.", - "settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity.smooth": "Smooth", - "settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity.warm": "Warm", - "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizer": "Cider Atmosphere Realizer™️", - "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizer.description": "Realizes a different musical atmosphere modelled after the state of the art audio setups.", - "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode": "Cider Atmosphere Realizer™️ Mode", - "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.description": "Changes the mode of operation of the Atmosphere Realizer module.", - "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.natural1": "Natural (Standard)", - "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.natural2": "Natural (High)", - "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.natural3": "Natural (Plus)", - "settings.option.audio.enableAdvancedFunctionality.ciderPPE": "Cider Adrenaline Processor™️", - "settings.option.audio.enableAdvancedFunctionality.ciderPPE.description": "音楽をより豊かに、生き生きとさせます", - "settings.warn.audio.enableAdvancedFunctionality.ciderPPE.compatibility": "CAPはSpatializationと互換性がありません", - "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength": "CAPの強さ", - "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.description": "音に施す処理の強さを設定します (強くしすぎると望ましい結果が得られないかもしれません)", - "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.standard": "標準", - "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.aggressive": "高", - "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "オーディオノーマライズ", - "settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "さまざまな曲の音量を均一にし、より整った音を楽しめるようにする機能です。", - "settings.option.audio.enableAdvancedFunctionality.audioNormalization.disabled": "Managed by Audio Lab", - "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "オーディオ空間化", - "settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "音声を空間化しすることで、より立体的にできます(Dolby Atmosではありません)", - "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization": "Cider Tuned Spatialization", - "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.description": "開発チームがチューニングした設定を使用することができます。(オーディオ空間化を有効にする必要があります)", - "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile": "Cider Spatialization Profile", - "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.description": "Changes the Tuning Profile of the Spatialization.", - "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.standard": "Standard", - "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.audiophile": "Audiophile", - "settings.warn.audio.enableAdvancedFunctionality.audioSpatialization.compatibility": "オーディオ空間化はCAPと互換性がありません", - "settings.header.visual": "ビジュアル", - "settings.header.visual.description": "Ciderのビジュアル設定", - "settings.option.visual.windowStyle": "Window Style", - "settings.option.visual.windowBackgroundStyle": "背景の設定", - "settings.header.visual.windowBackgroundStyle.none": "なし", - "settings.header.visual.windowBackgroundStyle.artwork": "アートワーク", - "settings.header.visual.windowBackgroundStyle.image": "画像", - "settings.option.visual.animatedArtwork": "アニメーションアートワーク", - "settings.header.visual.animatedArtwork.always": "常に表示", - "settings.header.visual.animatedArtwork.limited": "アーティストページのみ表示", - "settings.header.visual.animatedArtwork.disable": "オフ", - "settings.option.visual.animatedArtworkQuality": "アニメーションアートワークの品質", - "settings.header.visual.animatedArtworkQuality.low": "低", - "settings.header.visual.animatedArtworkQuality.medium": "中", - "settings.header.visual.animatedArtworkQuality.high": "高", - "settings.header.visual.animatedArtworkQuality.veryHigh": "超高", - "settings.header.visual.animatedArtworkQuality.extreme": "最高", - "settings.option.visual.animatedWindowBackground": "背景のアニメーション", - "settings.option.visual.hardwareAcceleration": "ハードウェアアクセラレーション", - "settings.option.visual.hardwareAcceleration.description": "再起動してください", - "settings.header.visual.hardwareAcceleration.default": "既定", - "settings.header.visual.hardwareAcceleration.webGPU": "WebGPU", - "settings.option.visual.uiscale": "UI Scale", - "settings.header.visual.theme": "テーマ", - "settings.option.visual.theme.github.download": "GitHub URLからインストール", - "settings.option.visual.theme.github.openfolder": "Open Themes Folder", - "settings.option.visual.theme.github.explore": "GitHubで探す", - "settings.header.visual.theme.github.page": "GitHub", - "settings.option.visual.theme.github.install.confirm": "本当に {{ repo }} をインストールしますか?", - "settings.prompt.visual.theme.github.URL": "インストールしたいテーマのURLを入力してください", - "settings.notyf.visual.theme.install.success": "テーマのインストールが完了しました", - "settings.notyf.visual.theme.install.error": "テーマのインストールに失敗しました", - "settings.header.visual.plugin": "プラグイン", - "settings.option.visual.plugin.github.download": "GitHub URLからインストール", - "settings.option.visual.plugin.github.explore": "GitHubで探す", - "settings.header.visual.plugin.github.page": "GitHub", - "settings.option.visual.plugin.github.install.confirm": "本当に {{ repo }} をインストールしますか?", - "settings.prompt.visual.plugin.github.URL": "インストールしたいプラグインのURLを入力してください", - "settings.prompt.visual.plugin.github.success": "プラグインのインストールを完了させるには「完了」を押した後にCiderを再起動してください", - "settings.notyf.visual.plugin.install.success": "プラグインのインストールが完了しました", - "settings.notyf.visual.plugin.install.error": "プラグインのインストールに失敗しました", - "settings.option.visual.theme.default": "Cider", - "settings.option.visual.theme.dark": "Dark", - "settings.option.visual.showPersonalInfo": "個人情報を表示する", - "settings.header.window": "ウィンドウ", - "settings.header.window.description": "ウィンドウの設定", - "settings.option.window.openOnStartup": "Ciderをスタートアップに設定する", - "settings.option.window.openOnStartup.hidden": "パソコン起動時にCiderをトレイに最小化", - "settings.option.window.useNativeTitleBar": "Use Native Title Bar", - "settings.option.window.windowControlStyle": "Window Control Style", - "settings.option.window.windowControlStyle.right": "右側", - "settings.option.window.windowControlStyle.left": "左側", - "settings.header.lyrics": "歌詞", - "settings.header.lyrics.description": "Adjust the lyrics settings for Cider.", - "settings.option.lyrics.enableMusixmatch": "Musixmatchが提供する歌詞を表示する", - "settings.option.lyrics.enableMusixmatchKaraoke": "カラオケモードを有効にする (Musixmatchのみで利用できます)", - "settings.option.lyrics.musixmatchPreferredLanguage": "Musixmatchで表示する歌詞の言語", - "settings.option.lyrics.enableYoutubeLyrics": "YouTubeの歌詞をミュージックビデオで使用する", - "settings.option.lyrics.enableQQLyrics": "Enable QQ Lyrics", - "settings.header.connectivity": "接続", - "settings.header.connectivity.description": "Ciderの接続設定", - "settings.option.connectivity.playbackNotifications": "再生している曲を通知する", - "settings.option.connectivity.discordRPC": "Discord Rich Presence", - "settings.option.connectivity.discordRPC.clientName": "Client Name", - "settings.option.connectivity.discordRPC.clearOnPause": "Clear Discord Rich Presence on Pause", - "settings.option.connectivity.discordRPC.hideButtons": "Hide buttons on Discord Rich Presence", - "settings.option.connectivity.discordRPC.detailsFormat": "Details Format", - "settings.option.connectivity.discordRPC.stateFormat": "State Format", - "settings.option.connectivity.lastfmScrobble": "Last.fm に接続する", - "settings.option.connectivity.lastfmScrobble.delay": "遅延 (%)", - "settings.option.connectivity.lastfmScrobble.nowPlaying": "Last.fm Now Playingを有効化する", - "settings.option.connectivity.lastfmScrobble.removeFeatured": "曲名からフューチャリングいているアーティストの名前を削除する (Last.fm)", - "settings.option.connectivity.lastfmScrobble.filterLoop": "ループトラックのフィルター(Last.fm)", - "settings.header.debug": "デバッグ", - "settings.option.debug.copy_log": "Copy logs to clipboard", - "settings.option.debug.openAppData": "Open Cider Folder", - "settings.header.experimental": "試験的な機能", - "settings.header.experimental.description": "試験的な設定", - "settings.option.experimental.reinstallwidevine": "Reinstall WidevineCDM", - "settings.option.experimental.reinstallwidevine.confirm": "Are you sure you want to reinstall Widevine?", - "settings.option.experimental.unknownPlugin": "未知のダウンロード元", - "settings.option.experimental.unknownPlugin.description": "外部からプラグインをインストールできるようにする", - "settings.option.experimental.compactUI": "コンパクトUI", - "settings.option.window.close_button_hide": "Ciderを閉じるとタスクに最小化する", - "settings.option.experimental.inline_playlists": "プレイリストをインラインに表示する", - "settings.option.advanced.playlistTrackMapping": "プレイリストをマッピング", - "settings.option.advanced.playlistTrackMapping.description": "プレイリストをスキャンすることで含まれる曲をより識別しやすくなります", - "settings.option.visual.transparent": "背景の透過", - "settings.option.visual.transparent.description": "(テーマがこの機能をサポートしている必要があります)", - "settings.header.advanced": "Advanced", - "settings.header.connect": "Sync", - "settings.option.connect.link_account": "Enable Sync with Cider Connect", - "settings.option.connect.link_account.description": "Linking your Discord account with Cider Connect allows you to store userdata including Settings, EQ's, and eventually more once finished. (Work In Progress)", - "spatial.notTurnedOn": "オーディオ空間化が無効になっています。この機能を使用するには有効にしてください!", - "spatial.spatialProperties": "空間化のプロパティ", - "spatial.width": "幅", - "spatial.height": "高さ", - "spatial.depth": "奥行", - "spatial.gain": "ゲイン", - "spatial.roomMaterials": "部屋のマテリアル", - "spatial.roomDimensions": "部屋の大きさ", - "spatial.roomPositions": "部屋の位置", - "spatial.setDimensions": "大きさを設定する", - "spatial.setPositions": "位置を設定する", - "spatial.up": "上", - "spatial.front": "手前", - "spatial.left": "左", - "spatial.right": "右", - "spatial.back": "奥", - "spatial.down": "下", - "spatial.listener": "リスナー", - "spatial.audioSource": "音源", - "settings.header.unfinished": "未完了", - "remote.web.title": "Cider リモート", - "remote.web.description": "QRコードを使用して、Ciderとスマートフォンをペアリングする", - "share.platform.twitter.tweet": "{{song}}をApple Musicで聞いています\n\n{{url}}\n\n#AppleMusic #Cider", - "share.platform.twitter": "Twitter", - "share.platform.facebook": "Facebook", - "share.platform.reddit": "Reddit", - "share.platform.telegram": "Telegram", - "share.platform.whatsapp": "WhatsApp", - "share.platform.messenger": "Messenger", - "share.platform.email": "Email", - "share.platform.songLink": "song.linkのURLをコピーする", - "share.platform.clipboard": "URLをコピーする", - "about.thanks": "Cider Collective とご協力いただいた貢献者様に感謝申し上げます。" - } - \ No newline at end of file + "i18n.languageName": "日本語", + "i18n.languageNameEnglish": "Japanese", + "i18n.category": "main", + "i18n.authors": "@maikirakiwi @tanaka_kakuel", + "app.name": "Cider", + "date.format": "${y}年${m}月${d}日", + "dialog.cancel": "キャンセル", + "dialog.ok": "完了", + "notification.updatingLibrarySongs": "ライブラリの更新中...", + "notification.updatingLibraryAlbums": "ライブラリの更新中...", + "notification.updatingLibraryArtists": "ライブラリの更新中...", + "term.variables": "Variables", + "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.cast": "Cast", + "term.about": "Ciderについて", + "term.privateSession": "プライベートセッション", + "term.disablePrivateSession": "プライベートセッションを無効にする", + "term.queue": "次はこちら", + "term.lyrics": "歌詞", + "term.miniplayer": "ミニプレイヤー", + "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": "New Playlist", + "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.settings": "設定", + "term.seeAll": "すべて見る", + "term.sortBy": "並べ替え", + "term.sortBy.album": "アルバム", + "term.sortBy.artist": "アーティスト", + "term.sortBy.name": "曲名", + "term.sortBy.genre": "ジャンル", + "term.sortBy.releaseDate": "配信開始日", + "term.sortBy.duration": "時間", + "term.sortBy.dateAdded": "追加日", + "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.enabled": "ON", + "term.disable": "OFF", + "term.disabled": "OFF", + "term.enable": "ON", + "term.connect": "接続", + "term.connecting": "接続中", + "term.disconnect": "切断", + "term.authed": "認証済み", + "term.confirm": "よろしいでしょうか?", + "term.more": "もっと", + "term.less": "減らす", + "term.showMore": "もっと見る", + "term.showLess": "表示数を少なくする", + "term.topSongs": "トップソング", + "term.latestReleases": "ニューリリース", + "term.time.added": "追加日", + "term.time.released": "配信開始日", + "term.time.updated": "最終更新日", + "term.time.days": "日", + "term.time.day": { + "one": "日", + "other": "日" + }, + "term.time.hours": "時間", + "term.time.hour": { + "one": "時間", + "other": "時間" + }, + "term.time.minutes": "分", + "term.time.minute": { + "one": "分", + "other": "分" + }, + "term.time.seconds": "秒", + "term.time.second": { + "one": "秒", + "other": "秒" + }, + "term.fullscreenView": "全画面表示", + "term.defaultView": "ウィンドウ表示", + "term.audioSettings": "オーディオ設定", + "term.audioControls": "ボリューム設定", + "term.clearAll": "消去", + "term.recentStations": "最近の再生", + "term.language": "言語", + "term.funLanguages": "Fun", + "term.noLyrics": "ローディング。。 / 歌詞が見つからない / 器楽曲.", + "term.copyright": "Copyright", + "term.rightsReserved": "All Rights Reserved.", + "term.sponsor": "スポンサーになりましょう", + "term.ciderTeam": "Cider チーム", + "term.developer": "開発者", + "term.socialTeam": "ソーシャル チーム", + "term.socials": "ソーシャル", + "term.contributors": "貢献者", + "term.equalizer": "イコライザー", + "term.reset": "リセット", + "term.tracks": "曲", + "term.track": { + "one": "曲", + "other": "曲" + }, + "term.videos": "ビデオ", + "term.menu": "メニュー", + "term.check": "確認", + "term.aboutArtist": "{{artistName}}について", + "term.topResult": "検索結果", + "term.sharedPlaylists": "プレイリストを共有", + "term.people": "ユーザー", + "term.newpreset.name": "名前を入力", + "term.addedpreset": "プリセットを追加", + "term.deletepreset.warn": "本当にこのプリセットを削除しますか?", + "term.deletedpreset": "プリセットを削除", + "term.defaultPresets": "プリセットを初期化", + "term.userPresets": "ユーザープリセット", + "term.requestError": "リクエストに問題がありました", + "term.song.link.generate": "song.link を取得する", + "term.musicVideos": "ミュージックビデオ", + "term.stations": "ステーション", + "term.curators": "キュレーター", + "term.appleCurators": "Apple キュレーター", + "term.radioShows": "ラジオ", + "term.recordLabels": "レーベル", + "term.videoExtras": "出演者", + "term.top": "トップ", + "term.version": "バージョン", + "term.noVideos": "ビデオが見つかりませんでした", + "term.plugin": "プラグイン", + "term.pluginMenu": "プラグインメニュー", + "term.pluginMenu.none": "プラグインが見つかりませんでした", + "term.replay": "リプレイ", + "term.uniqueAlbums": "ユニークアルバム", + "term.uniqueArtists": "ユニークアーティスト", + "term.uniqueSongs": "ユニークソング", + "term.topArtists": "トップアーティスト", + "term.listenedTo": "Now Playing:", + "term.times": "時間", + "term.topAlbums": "トップアルバム", + "term.plays": "再生", + "term.topGenres": "トップジャンル", + "term.confirmLogout": "本当にログアウトしますか?", + "term.creditDesignedBy": "${authorUsername}によってデザインされました", + "term.discNumber": "ディスク ${discNumber}", + "home.title": "ホーム", + "home.recentlyPlayed": "最近の再生", + "home.recentlyAdded": "最近追加した項目", + "home.artistsFeed": "アーティストのフィード", + "home.artistsFeed.noArtist": "アーティストをフォローすると最新情報を手に入れられます", + "home.madeForYou": "あなたにおすすめ", + "home.friendsListeningTo": "友達が聴いている", + "home.followedArtists": "フォローしているアーティスト", + "error.appleMusicSubRequired": "Apple Musicのサブスクリプションが必要です。", + "error.connectionError": "Apple Musicに接続できません。", + "error.noResults": "見つかりませんでした", + "error.noResults.description": "もう一度お試しください。", + "podcast.followOnCider": "Ciderでフォロー", + "podcast.followedOnCider": "フォロー中", + "podcast.subscribeOnItunes": "iTunesで購読", + "podcast.subscribedOnItunes": "iTunesで購読中", + "podcast.itunesStore": "iTunes Store", + "podcast.episodes": "番組", + "podcast.playEpisode": "再生", + "podcast.website": "Podcastウェブ", + "action.edit": "編集", + "action.done": "完了", + "action.editTracklist": "トラックリストを編集", + "action.addToLibrary": "ライブラリに追加", + "action.addToLibrary.success": "ライブラリに追加されました", + "action.addToLibrary.error": "ライブラリへの追加に失敗しました", + "action.removeFromLibrary": "ライブラリから削除", + "action.removeFromLibrary.success": "ライブラリから削除されました", + "action.addToQueue": "「次はこちら」に項目を追加", + "action.addToQueue.success": "「次はこちら」に項目を追加されました", + "action.addToQueue.error": "操作を完了できませんでした", + "action.removeFromQueue": "「次はこちら」から項目を削除", + "action.removeFromQueue.success": "「次はこちら」から項目を削除されました", + "action.removeFromQueue.error": "操作を完了できませんでした", + "action.createPlaylist": "新しいプレイリストを作成する", + "action.addToPlaylist": "プレイリストに追加する", + "action.removeFromPlaylist": "プレイリストから削除する", + "action.addToFavorites": "ラブに追加", + "action.follow": "フォロー", + "action.follow.success": "フォロー中", + "action.follow.error": "操作を完了できませんでした", + "action.unfollow": "フォロー解除", + "action.unfollow.success": "フォローをやめました", + "action.unfollow.error": "操作を完了できませんでした", + "action.playNext": "次に再生", + "action.playLater": "最後に再生", + "action.startRadio": "ステーションを作成", + "action.goToArtist": "アーティストへ移動", + "action.goToAlbum": "アルバムへ移動", + "action.moveToTop": "上に戻る", + "action.share": "曲を共有", + "action.rename": "名前の変更", + "action.love": "ラブ", + "action.unlove": "ラブを解除する", + "action.dislike": "これに似たものをすすめない", + "action.undoDislike": "「これと似た曲のおすすめを減らす」を取り消す", + "action.showWebRemoteQR": "WEBリモコンQRコードを表示", + "action.playTracksNext": "${app.selectedMediaItems.length}曲が次に再生", + "action.playTracksLater": "${app.selectedMediaItems.length}曲が最後に再生", + "action.removeTracks": "${self.selectedItems.length}をキューから除外する", + "action.import": "インポート", + "action.export": "エクスポート", + "action.showAlbum": "アルバムを表示", + "action.tray.minimize": "最小化", + "action.tray.quit": "終了", + "action.tray.show": "表示", + "action.update": "アップデート", + "action.install": "インストール", + "action.copy": "コピー", + "action.newpreset": "新しいプリセット", + "action.deletepreset": "プリセットを削除", + "action.open": "開く", + "action.relaunch.confirm": "Ciderを再開しますか?", + "action.cast.chromecast": "Chromecast", + "action.cast.todevices": "デバイスにキャストする", + "action.cast.stop": "すべてのデバイスでキャストを中止する", + "action.cast.airplay": "AirPlay", + "action.cast.airplay.underdevelopment": "AirPlayはまだ開発中です", + "action.cast.scan": "スキャン", + "action.cast.scanning": "スキャン中...", + "action.createNew": "新規作成...", + "action.openArtworkInBrowser": "アートワークをブラウザで表示する", + "settings.header.general": "一般", + "settings.header.general.description": "Ciderの一般設定", + "settings.option.general.language": "言語", + "settings.option.general.resumebehavior": "再開の動作", + "settings.option.general.resumebehavior.description": "この設定はciderを再起動した際に影響します", + "settings.option.general.resumebehavior.locally": "ローカル", + "settings.option.general.resumebehavior.locally.description": "このコンピューターでの最終セッションを復元", + "settings.option.general.resumebehavior.history": "履歴", + "settings.option.general.resumebehavior.history.description": "Apple Musicの履歴から曲を復元", + "settings.option.general.resumetabs" : "起動時にタブを開く", + "settings.option.general.resumetabs.description" : "Ciderを起動したときに開くタブを選択することができます", + "settings.option.general.resumetabs.dynamic" : "ダイナミック", + "settings.option.general.resumetabs.dynamic.description" : "最後のセッションで開いていたタブを開きます", + "settings.option.general.language.main": "メイン", + "settings.option.general.language.fun": "荒らし", + "settings.option.general.language.unsorted": "未分類", + "settings.option.general.updateCider": "アップデート", + "settings.option.general.updateCider.branch": "ciderのバージョン詳細", + "settings.option.general.updateCider.branch.description": "ciderのバージョンを設定できます", + "settings.option.general.updateCider.branch.main": "安定版", + "settings.option.general.updateCider.branch.develop": "ベータ版", + "settings.option.general.customizeSidebar": "サイドバーをカスタマイズ", + "settings.option.general.customizeSidebar.customize": "カスタマイズ", + "settings.option.general.keybindings": "キーバインド", + "settings.notyf.general.keybindings.update.success": "キーバインドのアップデートに成功しました", + "settings.prompt.general.keybindings.update.success": "キーバインドのアップデートに成功しました。OKを押すとciderが再起動します", + "settings.option.general.keybindings.open": "開く", + "settings.description.search": "検索", + "settings.description.albums": "ライブラリのアルバム", + "settings.description.artists": "ライブラリのアーティスト", + "settings.description.browse": "検索", + "settings.description.private": "プライベートセッションに切り替える", + "settings.description.remote": "WEBで遠隔操作", + "settings.description.audio": "オーディオの設定", + "settings.description.plugins": "プラグインのメニュー", + "settings.description.cast": "デバイスでキャストする", + "settings.description.settings": "設定", + "settings.description.developer": "デベロッパーツール", + "settings.notyf.updateCider.update-not-available": "現在最新版です", + "settings.notyf.updateCider.update-downloaded": "アップデートは再起動後に適用されます", + "settings.notyf.updateCider.update-error": "アップデートに失敗しました", + "settings.notyf.updateCider.update-timeout": "アップデートはタイムアウトしました", + "settings.header.audio": "オーディオ", + "settings.header.audio.description": "Ciderのオーディオ設定", + "settings.option.audio.volumeStep": "音量調整のステップ", + "settings.option.audio.maxVolume": "最大音量", + "settings.option.audio.changePlaybackRate": "再生速度の変更", + "settings.option.audio.playbackRate": "再生速度の変更", + "settings.option.audio.playbackRate.change": "変更", + "settings.option.audio.quality": "音質", + "settings.header.audio.quality.hireslossless": "ハイレゾロスレス", + "settings.header.audio.quality.hireslossless.description": "(最大解像度 24 ビット/192 kHz)", + "settings.header.audio.quality.lossless": "ロスレス", + "settings.header.audio.quality.lossless.description": "(最大解像度 24 ビット/48 kHz)", + "settings.header.audio.quality.enhanced": "エンハンスド", + "settings.header.audio.quality.high": "高品質", + "settings.header.audio.quality.standard": "高効率", + "settings.option.audio.seamlessTransition": "曲間なしで再生", + "settings.option.audio.enableAdvancedFunctionality": "先進的な機能", + "settings.option.audio.enableAdvancedFunctionality.description": "AudioContextを有効にすると、オーディオノーマライズ、空間オーディオ、イコライザーなどの機能を使用できますが、音が途切れるかもしれません。", + "settings.warn.audio.enableAdvancedFunctionality.lowcores": "あなたのPCがこの処理に耐えられないかもしれません。", + "settings.option.audio.audioLab": "Cider Audio Lab", + "settings.option.audio.audioLab.description": "An assortment of in-house developed audio effects for Cider.", + "settings.warn.audioLab.withoutAF": "Cider Audio Labを有効にするにはAudioContextを有効にする必要があります", + "settings.option.audio.enableAdvancedFunctionality.analogWarmth": "Analog Warmth", + "settings.option.audio.enableAdvancedFunctionality.analogWarmth.description": "Korg Nutube 6P1をモデルにしたオーディオをシミュレートします", + "settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity": "Analog Warmth intensity", + "settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity.description": "Changes the intensity of the Analog Warmth Module processing.", + "settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity.smooth": "なめらか", + "settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity.warm": "暖かい", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizer": "Cider Atmosphere Realizer™️", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizer.description": "最先端のオーディオセットアップを模した、異なる音楽の雰囲気を実現します。", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode": "Cider Atmosphere Realizer™️ モード", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.description": "Atmosphere Realizer™️のモードを変更します", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.NATURAL_STANDARD": "ほうじ茶チーズクリーマティー", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.NATURAL_PLUS": "玄米茶タピオカミルクティー", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.E68_1": "岩塩クリームチーズティー", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.E68_2": "宇治抹茶ミルクティー", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.E168_1": "春毫ジャスミンマキアート", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.Z3600": "北海道のロイヤルミルクティー", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.Z8500": "ムーンライトソフトケーキ", + "settings.option.audio.enableAdvancedFunctionality.ciderPPE": "Cider Adrenaline Processor™️", + "settings.option.audio.enableAdvancedFunctionality.ciderPPE.description": "音楽をより豊かに、生き生きとさせます", + "settings.warn.audio.enableAdvancedFunctionality.ciderPPE.compatibility": "CAPはSpatializationと互換性がありません", + "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength": "CAPの強さ", + "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.description": "音に施す処理の強さを設定します (強くしすぎると望ましい結果が得られないかもしれません)", + "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.standard": "標準", + "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.aggressive": "高", + "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "オーディオノーマライズ", +"settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "さまざまな曲の音量を均一にし、より整った音を楽しめるようにする機能です。", + "settings.option.audio.enableAdvancedFunctionality.audioNormalization.disabled": "Audio Labの設定", + "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "オーディオ空間化", + "settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "音声を空間化しすることで、より立体的にできます(Dolby Atmosではありません)", + "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization": "Cider Tuned Spatialization", + "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.description": "開発チームがチューニングした設定を使用することができます。(オーディオ空間化を有効にする必要があります)", + "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile": "Cider Spatialization Profile", + "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.description": "プロファイルをSpatializationに変更します", + "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.standard": "スタンダード", + "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.audiophile": "Audiophile", + "settings.warn.audio.enableAdvancedFunctionality.audioSpatialization.compatibility": "オーディオ空間化はCAPと互換性がありません", + "settings.header.visual": "ビジュアル", + "settings.header.visual.description": "Ciderのビジュアル設定", + "settings.option.visual.windowStyle": "Window Style", + "settings.option.visual.windowBackgroundStyle": "背景の設定", + "settings.header.visual.windowBackgroundStyle.none": "なし", + "settings.header.visual.windowBackgroundStyle.artwork": "アートワーク", + "settings.header.visual.windowBackgroundStyle.image": "画像", + "settings.option.visual.animatedArtwork": "アニメーションアートワーク", + "settings.header.visual.animatedArtwork.always": "常に表示", + "settings.header.visual.animatedArtwork.limited": "アーティストページのみ表示", + "settings.header.visual.animatedArtwork.disable": "オフ", + "settings.option.visual.animatedArtworkQuality": "アニメーションアートワークの品質", + "settings.header.visual.animatedArtworkQuality.low": "低", + "settings.header.visual.animatedArtworkQuality.medium": "中", + "settings.header.visual.animatedArtworkQuality.high": "高", + "settings.header.visual.animatedArtworkQuality.veryHigh": "超高", + "settings.header.visual.animatedArtworkQuality.extreme": "最高", + "settings.option.visual.animatedWindowBackground": "背景のアニメーション", + "settings.option.visual.hardwareAcceleration": "ハードウェアアクセラレーション", + "settings.option.visual.hardwareAcceleration.description": "再起動してください", + "settings.header.visual.hardwareAcceleration.default": "既定", + "settings.header.visual.hardwareAcceleration.webGPU": "WebGPU", + "settings.option.visual.uiscale": "UI Scale", + "settings.header.visual.theme": "テーマ", + "settings.option.visual.theme.github.download": "GitHub URLからインストール", + "settings.option.visual.theme.github.openfolder": "テーマフォルダを開く", + "settings.option.visual.theme.github.explore": "GitHubで探す", + "settings.header.visual.theme.github.page": "GitHub", + "settings.option.visual.theme.github.install.confirm": "本当に {{ repo }} をインストールしますか?", + "settings.prompt.visual.theme.github.URL": "インストールしたいテーマのURLを入力してください", + "settings.notyf.visual.theme.install.success": "テーマのインストールが完了しました", + "settings.notyf.visual.theme.install.error": "テーマのインストールに失敗しました", + "settings.header.visual.plugin": "プラグイン", + "settings.option.visual.plugin.github.download": "GitHub URLからインストール", + "settings.option.visual.plugin.github.explore": "GitHubで探す", + "settings.header.visual.plugin.github.page": "GitHub", + "settings.option.visual.plugin.github.install.confirm": "本当に {{ repo }} をインストールしますか?", + "settings.prompt.visual.plugin.github.URL": "インストールしたいプラグインのURLを入力してください", + "settings.prompt.visual.plugin.github.success": "プラグインのインストールを完了させるには「完了」を押した後にCiderを再起動してください", + "settings.notyf.visual.plugin.install.success": "プラグインのインストールが完了しました", + "settings.notyf.visual.plugin.install.error": "プラグインのインストールに失敗しました", + "settings.option.visual.theme.default": "Cider", + "settings.option.visual.theme.dark": "Dark", + "settings.option.visual.showPersonalInfo": "個人情報を表示する", + "settings.header.window": "ウィンドウ", + "settings.header.window.description": "ウィンドウの設定", + "settings.option.window.openOnStartup": "Ciderをスタートアップに設定する", + "settings.option.window.openOnStartup.hidden": "パソコン起動時にCiderをトレイに最小化", + "settings.option.window.useNativeTitleBar": "タイトルバーを使用する", + "settings.option.window.windowControlStyle": "ウィンドウの設定", + "settings.option.window.windowControlStyle.right": "右側", + "settings.option.window.windowControlStyle.left": "左側", + "settings.header.lyrics": "歌詞", + "settings.header.lyrics.description": "歌詞の設定", + "settings.option.lyrics.enableMusixmatch": "Musixmatchが提供する歌詞を表示する", + "settings.option.lyrics.enableMusixmatchKaraoke": "カラオケモードを有効にする (Musixmatchのみで利用できます)", + "settings.option.lyrics.musixmatchPreferredLanguage": "Musixmatchで表示する歌詞の言語", + "settings.option.lyrics.enableYoutubeLyrics": "YouTubeの歌詞をミュージックビデオで使用する", + "settings.option.lyrics.enableQQLyrics": "QQの歌詞を表示する", + "settings.header.connectivity": "接続", + "settings.header.connectivity.description": "Ciderの接続設定", + "settings.option.connectivity.playbackNotifications": "再生している曲を通知する", + "settings.option.connectivity.discordRPC": "Discord Rich Presence", + "settings.option.connectivity.discordRPC.clientName": "クライアントの名前", + "settings.option.connectivity.discordRPC.clearOnPause": "一時停止した時にDiscord Rich Presenceを非表示にする", + "settings.option.connectivity.discordRPC.hideButtons": "Discord Rich Presenceのボタンを非表示にする", + "settings.option.connectivity.discordRPC.detailsFormat": "ディティールのフォーマット", + "settings.option.connectivity.discordRPC.stateFormat": "状態のフォーマット", + "settings.option.connectivity.lastfmScrobble": "Last.fm に接続する", + "settings.option.connectivity.lastfmScrobble.delay": "遅延 (%)", + "settings.option.connectivity.lastfmScrobble.nowPlaying": "Last.fm Now Playingを有効化する", + "settings.option.connectivity.lastfmScrobble.removeFeatured": "曲名からフューチャリングいているアーティストの名前を削除する (Last.fm)", + "settings.option.connectivity.lastfmScrobble.filterLoop": "ループトラックのフィルター(Last.fm)", + "settings.header.debug": "デバッグ", + "settings.option.debug.copy_log": "ログをクリップボードにコピーする", + "settings.option.debug.openAppData": "Ciderのフォルダを開く", + "settings.header.experimental": "試験的な機能", + "settings.header.experimental.description": "試験的な設定", + "settings.option.experimental.reinstallwidevine": "WidevineCDMを再インストールする", + "settings.option.experimental.reinstallwidevine.confirm": "本当にWidevineを再インストールしますか?", + "settings.option.experimental.unknownPlugin": "未知のダウンロード元", + "settings.option.experimental.unknownPlugin.description": "外部からプラグインをインストールできるようにする", + "settings.option.experimental.compactUI": "コンパクトUI", + "settings.option.window.close_button_hide": "Ciderを閉じるとタスクに最小化する", + "settings.option.experimental.inline_playlists": "プレイリストをインラインに表示する", + "settings.option.advanced.playlistTrackMapping": "プレイリストをマッピング", + "settings.option.advanced.playlistTrackMapping.description": "プレイリストをスキャンすることで含まれる曲をより識別しやすくなります", + "settings.option.visual.transparent": "背景の透過", + "settings.option.visual.transparent.description": "(テーマがこの機能をサポートしている必要があります)", + "settings.header.advanced": "アドバンス", + "settings.header.connect": "リンク", + "settings.option.connect.link_account": "Ciderと他のアプリをリンクさせることができます", + "settings.option.connect.link_account.description": "DiscordとCiderを接続することで、Ciderの設定を保存することができます(開発中)", + "spatial.notTurnedOn": "オーディオ空間化が無効になっています。この機能を使用するには有効にしてください!", + "spatial.spatialProperties": "空間化のプロパティ", + "spatial.width": "幅", + "spatial.height": "高さ", + "spatial.depth": "奥行", + "spatial.gain": "ゲイン", + "spatial.roomMaterials": "部屋のマテリアル", + "spatial.roomDimensions": "部屋の大きさ", + "spatial.roomPositions": "部屋の位置", + "spatial.setDimensions": "大きさを設定する", + "spatial.setPositions": "位置を設定する", + "spatial.up": "上", + "spatial.front": "手前", + "spatial.left": "左", + "spatial.right": "右", + "spatial.back": "奥", + "spatial.down": "下", + "spatial.listener": "リスナー", + "spatial.audioSource": "音源", + "settings.header.unfinished": "未完了", + "remote.web.title": "Cider リモート", + "remote.web.description": "QRコードを使用して、Ciderとスマートフォンをペアリングする", + "share.platform.twitter.tweet": "{{song}}をApple Musicで聞いています\n\n{{url}}\n\n#AppleMusic #Cider", + "share.platform.twitter": "Twitter", + "share.platform.facebook": "Facebook", + "share.platform.reddit": "Reddit", + "share.platform.telegram": "Telegram", + "share.platform.whatsapp": "WhatsApp", + "share.platform.messenger": "Messenger", + "share.platform.email": "Email", + "share.platform.songLink": "song.linkのURLをコピーする", + "share.platform.clipboard": "URLをコピーする", + "about.thanks": "Cider Collective とご協力いただいた貢献者様に感謝申し上げます。" +} diff --git a/src/i18n/ko_KR.json b/src/i18n/ko_KR.json index 3c2f4a4d..616e29d3 100644 --- a/src/i18n/ko_KR.json +++ b/src/i18n/ko_KR.json @@ -287,8 +287,6 @@ "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.aggressive": "적극적", "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "오디오 노멀라이즈", "settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "개별 트랙의 최대 볼륨을 노멀라이즈하여 보다 균일한 청취 경험을 제공합니다.", - "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "오디오 공간화", - "settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "오디오를 공간화하고 더욱 삼차원적으로 만들어줍니다. (참고: 이 기능은 Dolby Atmos가 아닙니다.)", "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization": "Cider 튜닝된 공간화", "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.description": "사전 조정된 공간화 효과는 오디오 공간화의 사용자 정의 설정을 비활성화합니다. 사용하기 위해서는 오디오 공간화가 필요합니다.", "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile": "Cider 공간화 프로필", diff --git a/src/i18n/nl_NL.json b/src/i18n/nl_NL.json index 42e83a70..e399eb03 100644 --- a/src/i18n/nl_NL.json +++ b/src/i18n/nl_NL.json @@ -302,8 +302,6 @@ "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.aggressive": "Agressief", "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "Audio Normalisatie", "settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "Normaliseert het piekvolume voor afzonderlijke nummers om een meer uniforme luisterervaring te creëren.", - "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "Audio Verruimtelijking", - "settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "Verruimtelijke audio en maak audio driedimensionaal (let op: dit is geen Dolby Atmos)", "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization": "Cider Afgestemde Verruimtelijking", "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.description": "Vooraf afgestemde Verruimtelijking Effect, schakelt de aanpasbare instellingen van Audio Verruimtelijking uit. Verruimtelijking moet ingeschakeld zijn.", "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile": "Cider Verruimtelijking Profiel", diff --git a/src/i18n/pt_BR.json b/src/i18n/pt_BR.json index 02a0fb2b..9bc5aecb 100644 --- a/src/i18n/pt_BR.json +++ b/src/i18n/pt_BR.json @@ -227,8 +227,6 @@ "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.aggressive": "Agressiva", "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "Normalização de Áudio", "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": "Áudio Espacial", - "settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "Espacialize o áudio e torne o áudio mais tridimensional (nota: isto não é Dolby Atmos)", "settings.warn.audio.enableAdvancedFunctionality.audioSpatialization.compatibility": "Áudio Espacial não é compativel com o CAP. Por favor desative-o.", "settings.header.visual": "Visual", "settings.header.visual.description": "Ajustar as configurações visuais do Cider.", diff --git a/src/i18n/ro_RO.json b/src/i18n/ro_RO.json index dab5e41e..a1818893 100644 --- a/src/i18n/ro_RO.json +++ b/src/i18n/ro_RO.json @@ -198,8 +198,6 @@ "settings.option.audio.enableAdvancedFunctionality.description": "Pornirea funcționalității AudioContext va permite folosirea funcțiilor audio avansate precum Normalizare Volum , Egalizator și Vizualizator, dar pe unele sisteme poate cauza probleme precum întreruperi în redare.", "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "Normalizare Volum", "settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "Normalizează volumul maxim al melodiilor pentru a genera o experiență audio optimă.", - "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "Spațializare Audio", - "settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "Spațializează sunetul și face sunetul 3-dimensional (notă: Nu este Dolby Atmos)", "settings.header.visual": "Vizual", "settings.header.visual.description": "Ajustează setările vizuale pentru Cider.", "settings.option.visual.windowBackgroundStyle": "Stil Fundal Fereastră", diff --git a/src/i18n/ru_RU.json b/src/i18n/ru_RU.json index cad381db..6be2e228 100644 --- a/src/i18n/ru_RU.json +++ b/src/i18n/ru_RU.json @@ -330,8 +330,6 @@ "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "Нормализация звука", "settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "Нормализует пиковую громкость для отдельных треков, чтобы создать более однородное впечатление от прослушивания.", "settings.option.audio.enableAdvancedFunctionality.audioNormalization.disabled": "Управляется Audio Lab", - "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "Пространственное звучание", - "settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "Пространственное аудио; делает звук более трехмерным (примечание: это не Dolby Atmos)", "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization": "Пространственное звучание, настроенное Cider", "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.description": "Предварительно настроенная пространственная обработка; отключает параметр Пространственного звучания. Пространственное звучание должно быть включено.", "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile": "Профиль пространственного звучания Cider", diff --git a/src/i18n/sk_SK.json b/src/i18n/sk_SK.json index da7a17af..f80cd638 100644 --- a/src/i18n/sk_SK.json +++ b/src/i18n/sk_SK.json @@ -203,8 +203,6 @@ "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.aggressive": "Agresívná", "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "Normalízacia Zvuku", "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", - "settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "Priestorový zvuk urobí zvuk 3-dimenzionálny (poznámka: Toto nie je Dolby Atmos)", "settings.header.visual": "Visuálne", "settings.header.visual.description": "Zmenit Visuálne nastavenia pre Cider.", "settings.option.visual.windowBackgroundStyle": "Štýl pozadia okna", diff --git a/src/i18n/source/en_US.json b/src/i18n/source/en_US.json index 2b1e581b..2ee5fc57 100644 --- a/src/i18n/source/en_US.json +++ b/src/i18n/source/en_US.json @@ -21,11 +21,13 @@ "term.accountSettings": "Account Settings", "term.logout": "Logout", "term.login": "Log In", + "term.quickNav": "Quick Nav", "term.cast": "Cast", "term.about": "About", "term.privateSession": "Private Session", "term.disablePrivateSession": "Disable Private Session", "term.queue": "Queue", + "term.autoplay": "Autoplay", "term.lyrics": "Lyrics", "term.miniplayer": "MiniPlayer", "term.history": "History", @@ -46,12 +48,19 @@ "term.createNewPlaylist": "Create New Playlist", "term.createNewPlaylistFolder": "Create New Playlist Folder", "term.deletePlaylist": "Are you sure you want to delete this playlist?", + "term.navigateBack": "Navigate back", + "term.navigateForward": "Navigate forward", "term.play": "Play", "term.pause": "Pause", "term.previous": "Previous", "term.next": "Next", "term.shuffle": "Shuffle", + "term.enableShuffle": "Enable shuffle", + "term.disableShuffle": "Disable shuffle", "term.repeat": "Repeat", + "term.enableRepeatOne": "Enable repeat one", + "term.disableRepeatOne": "Disable repeat one", + "term.disableRepeat": "Disable repeat", "term.volume": "Volume", "term.mute": "Mute", "term.unmute": "Unmute", @@ -254,6 +263,7 @@ "action.newpreset": "New Preset...", "action.deletepreset": "Delete Preset", "action.open": "Open", + "action.close": "Close", "action.relaunch.confirm": "Do you want to relaunch Cider?", "action.cast.chromecast": "Chromecast", "action.cast.todevices": "Cast to Devices", @@ -264,6 +274,7 @@ "action.cast.scanning": "Scanning...", "action.createNew": "Create New...", "action.openArtworkInBrowser": "Open artwork in browser", + "action.scrollToTop": "Scroll to top", "menubar.options.about": "About", "menubar.options.settings": "Settings", "menubar.options.quit": "Quit Cider", @@ -300,6 +311,9 @@ "menubar.options.trans": "Translation Report/Request", "menubar.options.license": "View License", "menubar.options.conf": "Open Configuration File in Editor", + "menubar.options.listennow": "Listen Now", + "menubar.options.recentlyAdded": "Recently Added", + "menubar.options.songs": "Songs", "settings.header.general": "General", "settings.header.general.description": "Adjust the general settings for Cider.", "settings.option.general.language": "Language", @@ -324,9 +338,13 @@ "settings.option.general.customizeSidebar": "Customize Sidebar Items", "settings.option.general.customizeSidebar.customize": "Customize", "settings.option.general.keybindings": "Keybindings", + "settings.option.general.keybindings.pressCombination": "Press a combination of two keys to update keybind.", + "settings.option.general.keybindings.pressEscape": "Press Escape key to go back.", "settings.notyf.general.keybindings.update.success": "Keybind updated successfully", "settings.prompt.general.keybindings.update.success": "Keybind updated successfully. Press OK to relaunch Cider", "settings.option.general.keybindings.open": "Open", + "settings.option.general.themeUpdateNotification": "Automatically check for theme updates", + "settings.option.general.showLovedTracksInline": "Show loved tracks inline", "settings.description.search": "Search", "settings.description.albums": "Library Albums", "settings.description.artists": "Library Artists", @@ -338,6 +356,9 @@ "settings.description.cast": "Cast to Devices", "settings.description.settings": "Settings", "settings.description.developer": "Developer Tools", + "settings.description.listnow": "Listen Now", + "settings.description.recentAdd": "Recently Added", + "settings.description.songs": "Songs", "settings.notyf.updateCider.update-not-available": "No update available", "settings.notyf.updateCider.update-downloaded": "Update has been downloaded, restart to apply", "settings.notyf.updateCider.update-error": "Error updating Cider", @@ -377,9 +398,9 @@ "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizer.description": "Realizes a different musical atmosphere modelled after the state of the art audio setups.", "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode": "Cider Atmosphere Realizer™️ Mode", "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.description": "Changes the mode of operation of the Atmosphere Realizer module.", - "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.natural1": "Natural (Standard)", - "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.natural2": "Natural (High)", - "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.natural3": "Natural (Plus)", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.NATURAL_STANDARD": "Natural (Standard)", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.NATURAL_HIGH": "Natural (High)", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.NATURAL_PLUS": "Natural (Plus)", "settings.option.audio.enableAdvancedFunctionality.ciderPPE": "Cider Adrenaline Processor™️", "settings.option.audio.enableAdvancedFunctionality.ciderPPE.description": "Enhances the perceived audio quality of 256 kbps AAC audio by using a real-time algorithm that takes advantage of both psychoacoustic models of human hearing and AAC encoding characteristics.", "settings.warn.audio.enableAdvancedFunctionality.ciderPPE.compatibility": "CAP is not compatible with Spatialization. Please disable Spatialization to continue.", @@ -390,15 +411,20 @@ "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "Audio Normalization", "settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "Normalizes peak volume for individual tracks to create a more uniform listening experience. (Does not work on user uploaded tracks)", "settings.option.audio.enableAdvancedFunctionality.audioNormalization.disabled": "Managed by Audio Lab", - "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "Audio Spatialization", - "settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "Spatialize audio and make audio more 3-dimensional (note: This is not Dolby Atmos)", "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization": "Cider Tuned Spatialization", "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.description": "Pre-tuned Spatializing Effect, disables the customizable settings of Audio Spatialization. Spatialization must be enabled as a prerequisite.", "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile": "Cider Spatialization Profile", "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.description": "Changes the Tuning Profile of the Spatialization.", "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.standard": "Standard", + "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.soundstage": "Soundstage", + "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.separation": "Separation", + "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.minimal": "Minimal", "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.audiophile": "Audiophile", "settings.warn.audio.enableAdvancedFunctionality.audioSpatialization.compatibility": "Spatialization is not compatible with CAP. Please disable CAP to continue.", + "settings.option.audio.dbspl.display": "dB SPL Display", + "settings.option.audio.dbspl.description": "(Advanced users only) Display dB SPL instead of dBFS on the volume slider.", + "settings.option.audio.dbfs.calibration": "0 dBFS Calibration", + "settings.option.audio.dbfs.description": "Enter the peak Z-weighted dB SPL when Cider is at 0 dBFS.", "settings.header.visual": "Visual", "settings.header.visual.description": "Adjust the visual settings for Cider.", "settings.option.visual.windowStyle": "Window Style", @@ -472,6 +498,7 @@ "settings.option.connectivity.discordRPC.clientName": "Client Name", "settings.option.connectivity.discordRPC.clearOnPause": "Clear Discord Rich Presence on Pause", "settings.option.connectivity.discordRPC.hideButtons": "Hide buttons on Discord Rich Presence", + "settings.option.connectivity.discordRPC.hideTimestamp": "Hide timestamp on Discord Rich Presence", "settings.option.connectivity.discordRPC.detailsFormat": "Details Format", "settings.option.connectivity.discordRPC.stateFormat": "State Format", "settings.option.connectivity.lastfmScrobble": "Last.fm Scrobbling", diff --git a/src/i18n/sv_SE.json b/src/i18n/sv_SE.json index fec435e8..a71a71ef 100644 --- a/src/i18n/sv_SE.json +++ b/src/i18n/sv_SE.json @@ -197,8 +197,6 @@ "settings.option.audio.enableAdvancedFunctionality.description": "Om du aktiverar avancerade ljudfunktioner kommer funktioner som ljudnormalisering, EQ och virtualisering aktiveras, men på några system kan detta orsaka ljudproblem.", "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "Ljudnormalisering", "settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "Normaliserar höga ljudnivåer för att förbättra ljudkvaliteten.", - "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "Spiralljud", - "settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "Gör ljudet mer 3D (Ej Dolby Atmos)", "settings.header.visual": "Visuellt", "settings.header.visual.description": "Ändra Ciders visuella inställningar.", "settings.option.visual.windowBackgroundStyle": "Stil för bakgrunden", diff --git a/src/i18n/tr_TR.json b/src/i18n/tr_TR.json index 44f1af7a..83953be3 100644 --- a/src/i18n/tr_TR.json +++ b/src/i18n/tr_TR.json @@ -304,8 +304,6 @@ "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "Ses Normalleştirme", "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.audioNormalization.disabled": "Laboratuvar tarafından kontrol ediliyor", - "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "Uzamsal Ses", - "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.tunedAudioSpatialization": "Özel Ayarlanmış Uzamsallaştırma", "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.description": "Önceden ayarlanmış Uzamsallaştırma Etkisi, Ses Uzamsallaştırmanın özelleştirilebilir ayarlarını devre dışı bırakır. Uzamsallaştırma bir ön koşul olarak etkinleştirilmelidir.", "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile": "Mekan Profili", diff --git a/src/i18n/vi_VN.json b/src/i18n/vi_VN.json index c955ee36..c0b85382 100644 --- a/src/i18n/vi_VN.json +++ b/src/i18n/vi_VN.json @@ -236,8 +236,6 @@ "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.aggressive": "Mạnh", "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "Chuẩn hoá âm lượng", "settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "Đặt cùng mức âm lượng cho mọi bài hát", - "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "Tạo Âm thanh đa chiều ", - "settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "Làm cho âm thanh trở nên nhiều chiều hơn (Ghi chú: Đây không phải là Dolby Atmos)", "settings.warn.audio.enableAdvancedFunctionality.audioSpatialization.compatibility": "Âm thanh đa chiều không tương thích với CAP. Hãy tắt CAP để kích hoạt.", "settings.header.visual": "Hiển thị", "settings.header.visual.description": "Thay đổi các cài đặt hiển thị của Cider.", diff --git a/src/i18n/zh_CN.json b/src/i18n/zh_CN.json index ec6570d0..3ab77d9d 100644 --- a/src/i18n/zh_CN.json +++ b/src/i18n/zh_CN.json @@ -283,9 +283,13 @@ "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizer.description": "以最先进的音频置为蓝本,实现不同的音乐气氛。", "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode": "Cider 音乐气氛™️模式", "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.description": "更改气氛实现器模块的操作模式。", - "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.natural1": "自然(标准)", - "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.natural2": "自然(高)", - "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.natural3": "自然(增强)", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.NATURAL_STANDARD": "红茶芝士奶盖", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.NATURAL_PLUS": "玄米珍珠奶茶", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.E68_1": "岩盐芝士奶茶", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.E68_2": "宇治抹茶奶茶", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.E168_1": "春毫茉莉玛琪雅朵", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.Z3600": "北海道奶茶", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.Z8500": "月光软饼干", "settings.option.audio.enableAdvancedFunctionality.ciderPPE": "Cider 数码增强音频处理™️", "settings.option.audio.enableAdvancedFunctionality.ciderPPE.description": "通过人类的听力心理学模型和 AAC 编码特色的即时算法,强化 256 kbps AAC 音频的感知音频质量。", "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength": "数码增强音频处理设置", @@ -295,8 +299,6 @@ "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "音量平衡", "settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "自动将歌曲播放音量调整到相同水平,享受更舒适的聆听体验。", "settings.option.audio.enableAdvancedFunctionality.audioNormalization.disabled": "此功能由音频实验室管理", - "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "空间音频", - "settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "将音频进行空间化处理来制造一个更立体的聆听体验(注:此功能不是官方的杜比全景声)。", "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization": "Cider 空间音频效果", "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.description": "预先调整音频空间效果,关闭空间音讯可自订设置。但必须先打开音频空间才可以做设置。", "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile": "Cider 音频空间配置档", diff --git a/src/i18n/zh_HK.json b/src/i18n/zh_HK.json index 3717198f..f29bd18b 100644 --- a/src/i18n/zh_HK.json +++ b/src/i18n/zh_HK.json @@ -278,8 +278,6 @@ "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.aggressive": "激進型", "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "音量平衡", "settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "自動將歌曲播放音量調整至相同水平,建立更統一的聆聽體驗。", - "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "空間音訊", - "settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "將音訊進行空間化處理來製造一個更立體的聆聽體驗(註:此功能不是官方的杜比全景聲)。", "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization": "Cider 空間音訊效果", "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.description": "預先調整空間音訊效果,關閉空間音訊可自訂設定。但必須先開啟空間音訊才可以做設定。", "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile": "Cider 空間音訊配置檔案", diff --git a/src/i18n/zh_TW.json b/src/i18n/zh_TW.json index 0062f872..b83fd2b5 100644 --- a/src/i18n/zh_TW.json +++ b/src/i18n/zh_TW.json @@ -267,9 +267,9 @@ "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizer.description": "以最先進的音訊設定為設計,實現不同的音樂氣氛。", "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode": "Cider 音樂氣氛™️模式", "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.description": "更改氣氛實現器模塊的操作模式。", - "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.natural1": "自然(標準)", - "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.natural2": "自然(高)", - "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.natural3": "自然(增強)", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.NATURAL_STANDARD": "自然(標準)", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.NATURAL_HIGH": "自然(高)", + "settings.option.audio.enableAdvancedFunctionality.atmosphereRealizerMode.NATURAL_PLUS": "自然(增強)", "settings.option.audio.enableAdvancedFunctionality.ciderPPE": "Cider 數位增強音訊處理™️", "settings.option.audio.enableAdvancedFunctionality.ciderPPE.description": "透過人類的聽力心理學模型和 AAC 編碼特色的即時算法,強化 256 kbps AAC 音訊的感知音訊品質。", "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength": "數位增強音訊處理設定", @@ -279,8 +279,6 @@ "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "音量平衡", "settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "自動將歌曲播放音量調整至相同位準,享受更舒適的聆聽體驗。", "settings.option.audio.enableAdvancedFunctionality.audioNormalization.disabled": "此功能由音訊實驗室管理", - "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "空間音訊", - "settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "將音訊進行空間化處理來製造一個更立體的聆聽體驗(註:此功能不是官方的杜比全景聲)。", "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization": "Cider 空間音訊效果", "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.description": "預先調整空間音訊效果,關閉空間音訊可自訂設定。但必須先開啟空間音訊才可以做設定。", "settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile": "Cider 空間音訊配置檔案", @@ -312,8 +310,14 @@ "settings.header.visual.hardwareAcceleration.webGPU": "WebGPU", "settings.header.visual.theme": "主題", "settings.option.visual.theme.github.download": "從 GitHub 網址安裝", + "settings.option.visual.theme.github.openfolder": "打開主題存放位置", "settings.option.visual.theme.github.explore": "探索 GitHub 上的主題", "settings.prompt.visual.theme.github.URL": "輸入你要安裝的主題網址", + "settings.option.visual.theme.manageStyles": "管理主題", + "settings.option.visual.theme.uninstall": "移除", + "settings.option.visual.theme.viewInfo": "查看資訊", + "settings.option.visual.theme.github.available": "可用", + "settings.option.visual.theme.github.applied": "已套用", "settings.notyf.visual.theme.install.success": "主題成功安裝", "settings.notyf.visual.theme.install.error": "主題安裝失敗", "settings.header.visual.plugin": "模組", @@ -362,7 +366,7 @@ "settings.option.debug.openAppData": "打開 Cider 資料夾", "settings.header.experimental": "實驗性功能", "settings.header.experimental.description": "調整 Cider 的實驗性功能", - "settings.option.experimental.reinstallwidevine": "重新安裝 WidevineCDM", + "settings.option.experimental.reinstallwidevine": "重新安裝 WidevineCDM", "settings.option.experimental.reinstallwidevine.confirm": "你確定要重新安裝 WidevineCDM 嗎?", "settings.option.experimental.unknownPlugin": "未知來源", "settings.option.experimental.unknownPlugin.description": "允許從 Cider 來源以外的 repo 安裝套件", diff --git a/src/i18n/zh_yue.json b/src/i18n/zh_yue.json index bd285188..bad15f38 100644 --- a/src/i18n/zh_yue.json +++ b/src/i18n/zh_yue.json @@ -214,8 +214,6 @@ "settings.option.audio.enableAdvancedFunctionality.description": "啟用AudioContext,解鎖類似音量平衡和均衡器嘅進階功能,但係會喺部分電腦造成音樂Lag機。", "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "音量平衡", "settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "平衡輕柔同響亮嘅歌曲,令你有統一嘅聆聽體驗。", - "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "空間音訊", - "settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "空間化音訊,製造一個更立體嘅聆聽體驗(注意:呢個功能唔係官方嘅杜比全景聲)", "settings.header.visual": "外觀", "settings.header.visual.description": "調整Cider嘅外觀", "settings.option.visual.windowBackgroundStyle": "視窗背景樣式", diff --git a/src/main/base/browserwindow.ts b/src/main/base/browserwindow.ts index 0c785691..5ff86506 100644 --- a/src/main/base/browserwindow.ts +++ b/src/main/base/browserwindow.ts @@ -77,6 +77,7 @@ export class BrowserWindow { "pages/audiolabs", "pages/zoo", "pages/plugin-renderer", + "pages/keybinds", "components/mediaitem-artwork", "components/artwork-material", "components/menu-panel", @@ -457,6 +458,16 @@ export class BrowserWindow { } }) + app.get("/cideraudio/impulses/:file", (req, res) => { + const impulseExternals = join(utils.getPath("externals"), "/impulses/") + const impulseFile = join(impulseExternals, req.params.file) + if(existsSync(impulseFile)) { + res.sendFile(impulseFile) + }else{ + res.sendFile(join(utils.getPath('srcPath'), "./renderer/audio/impulses/" + req.params.file)) + } + }) + app.get("/api/playback/:action", (req, res) => { const action = req.params.action; switch (action) { @@ -937,13 +948,23 @@ export class BrowserWindow { switch (path) { default: case "plugins": - shell.openPath(utils.getPath("plugins")); + if (existsSync(utils.getPath("plugins"))) { + shell.openPath(utils.getPath("plugins")); + } else { + mkdirSync(utils.getPath("plugins")); + shell.openPath(utils.getPath("plugins")); + } break; case "userdata": shell.openPath(app.getPath("userData")); break; case "themes": - shell.openPath(utils.getPath("themes")); + if (existsSync(utils.getPath("themes"))) { + shell.openPath(utils.getPath("themes")); + } else { + mkdirSync(utils.getPath("themes")); + shell.openPath(utils.getPath("themes")); + } break; } }); diff --git a/src/main/base/store.ts b/src/main/base/store.ts index de8590a5..c088ed2e 100644 --- a/src/main/base/store.ts +++ b/src/main/base/store.ts @@ -17,6 +17,7 @@ export class Store { "client": "Cider", "clear_on_pause": true, "hide_buttons": false, + "hide_timestamp": false, "state_format": "by {artist}", "details_format": "{title}", }, @@ -54,6 +55,22 @@ export class Store { process.platform == "darwin" ? "Command" : "Control", "F" ], + "listnow": [ + process.platform == "darwin" ? "Command" : "Control", + "L" + ], + "browse": [ + process.platform == "darwin" ? "Command" : "Control", + "B" + ], + "recentAdd": [ + process.platform == "darwin" ? "Command" : "Control", + "G" + ], + "songs" : [ + process.platform == "darwin" ? "Command" : "Control", + "J" + ], "albums": [ process.platform == "darwin" ? "Command" : "Control", "S" @@ -62,10 +79,6 @@ export class Store { process.platform == "darwin" ? "Command" : "Control", "D" ], - "browse": [ - process.platform == "darwin" ? "Command" : "Control", - "B" - ], "togglePrivateSession": [ process.platform == "darwin" ? "Command" : "Control", "P" @@ -95,7 +108,8 @@ export class Store { process.platform == "darwin" ? "Option" : "Shift", "I" ] - } + }, + "showLovedTracksInline": true }, "home": { "followedArtists": [], @@ -128,10 +142,10 @@ export class Store { "maikiwiAudio": { "ciderPPE": false, "ciderPPE_value": "MAIKIWI", - "analogWarmth": false, - "analogWarmth_value": "SMOOTH", - "atmosphereRealizer": false, - "atmosphereRealizer_value": "NATURAL_STANDARD", + "atmosphereRealizer1": false, + "atmosphereRealizer1_value": "NATURAL_STANDARD", + "atmosphereRealizer2": false, + "atmosphereRealizer2_value": "NATURAL_STANDARD", "spatial": false, "spatialProfile": "71_420maikiwi", "vibrantBass": { // Hard coded into the app. Don't include any of this config into exporting presets in store.ts diff --git a/src/main/plugins/discordrpc.ts b/src/main/plugins/discordrpc.ts index c943eb68..fe933903 100644 --- a/src/main/plugins/discordrpc.ts +++ b/src/main/plugins/discordrpc.ts @@ -183,8 +183,8 @@ export default class DiscordRPC { ] //To change attributes.url => preload/cider-preload.js } - // Add the timestamp if its playing - if (attributes.status) { + // Add the timestamp if its playing and people want them + if (!this._utils.getStoreValue("general.discordrpc.hide_timestamp") && attributes.status) { activity.startTimestamp = Date.now() - (attributes?.durationInMillis - attributes?.remainingTime) activity.endTimestamp = attributes.endTime } diff --git a/src/main/plugins/menubar.ts b/src/main/plugins/menubar.ts index a9d73428..76a0e52b 100644 --- a/src/main/plugins/menubar.ts +++ b/src/main/plugins/menubar.ts @@ -23,8 +23,9 @@ export default class Thumbar { label: app.getName(), submenu: [ { - label: utils.getLocale(utils.getStoreValue('general.language'), 'menubar.options.about'), - click: () => utils.getWindow().webContents.executeJavaScript(`app.appRoute('about')`) + label: utils.getLocale(utils.getStoreValue('general.language'), 'menubar.options.toggleprivate'), + accelerator: utils.getStoreValue("general.keybindings.togglePrivateSession").join('+'), + click: () => utils.getWindow().webContents.executeJavaScript(`app.cfg.general.privateEnabled = !app.cfg.general.privateEnabled`) }, {type: 'separator'}, { @@ -40,30 +41,63 @@ export default class Thumbar { {role: 'hideOthers'}, {role: 'unhide'}, ]: [ + {type: 'separator'}, + { + label: utils.getLocale(utils.getStoreValue('general.language'), 'menubar.options.about'), + click: () => utils.getWindow().webContents.executeJavaScript(`app.appRoute('about')`) + }, {type: 'separator'}, {role: 'quit', label: utils.getLocale(utils.getStoreValue('general.language'), 'menubar.options.quit')}, ]), ], }, - { label: utils.getLocale(utils.getStoreValue('general.language'), 'menubar.options.view'), submenu: [ - {role: 'reload', label: utils.getLocale(utils.getStoreValue('general.language'), 'menubar.options.reload')}, - {role: 'forceReload', label: utils.getLocale(utils.getStoreValue('general.language'), 'menubar.options.forcereload')}, - ...(this.isMac ? [ - {role: 'toggleDevTools'}, + { + label: utils.getLocale(utils.getStoreValue('general.language'), 'menubar.options.search'), + accelerator: utils.getStoreValue("general.keybindings.search").join('+'), + click: () => utils.getWindow().webContents.executeJavaScript(`app.appRoute('search')`) + }, + {type:'separator'}, + { + label: utils.getLocale(utils.getStoreValue('general.language'), 'menubar.options.listennow'), + accelerator: utils.getStoreValue('general.keybindings.listnow').join('+'), + click: () => utils.getWindow().webContents.executeJavaScript(`app.appRoute('listen_now')`) + }, + { + label: utils.getLocale(utils.getStoreValue('general.language'), 'menubar.options.browse'), + accelerator: utils.getStoreValue("general.keybindings.browse").join('+'), + click: () => utils.getWindow().webContents.executeJavaScript(`app.appRoute('browse')`) + }, {type: 'separator'}, - {role: 'resetZoom'}, - {role: 'zoomIn'}, - {role: 'zoomOut'}, + { + label: utils.getLocale(utils.getStoreValue('general.language'), 'menubar.options.recentlyAdded') + ,accelerator: utils.getStoreValue("general.keybindings.recentAdd").join('+'), + click: () => utils.getWindow().webContents.executeJavaScript(`app.appRoute('library-recentlyadded')`) + }, + { + label: utils.getLocale(utils.getStoreValue('general.language'), 'menubar.options.songs'), + accelerator: utils.getStoreValue("general.keybindings.songs").join('+'), + click: () => utils.getWindow().webContents.executeJavaScript(`app.appRoute('library-songs')`) + }, + { + label: utils.getLocale(utils.getStoreValue('general.language'), 'menubar.options.albums'), + accelerator: utils.getStoreValue("general.keybindings.albums").join('+'), + click: () => utils.getWindow().webContents.executeJavaScript(`app.appRoute('library-albums')`) + }, + { + label: utils.getLocale(utils.getStoreValue('general.language'), 'menubar.options.artists'), + accelerator: utils.getStoreValue("general.keybindings.artists").join('+'), + click: () => utils.getWindow().webContents.executeJavaScript(`app.appRoute('library-artists')`) + }, {type: 'separator'}, - {role: 'togglefullscreen'}, - + ...(this.isMac ? [ ]: []), ], }, + { label: utils.getLocale(utils.getStoreValue('general.language'), 'menubar.options.window'), submenu: [ @@ -73,15 +107,24 @@ export default class Thumbar { label: 'Show', click: () => utils.getWindow().show() }, - {role: 'zoom'}, + {role: 'toggleDevTools'}, + {type: 'separator'}, + { + label:'Zoom', + submenu: [ + {role: 'zoom'}, + {role: 'resetZoom'}, + {role: 'zoomIn'}, + {role: 'zoomOut'}, + ] + }, + {type: 'separator'}, + {role: 'togglefullscreen'}, + {type: 'separator'}, {role: 'front'}, - {role: 'close'}, - - {role: 'close'}, - - + {role: 'close'}, { label: 'Edit', submenu: [ @@ -93,33 +136,14 @@ export default class Thumbar { {role: 'paste'}, ] }, - ] : [] - ), - {type: 'separator'}, - { - label: utils.getLocale(utils.getStoreValue('general.language'), 'menubar.options.toggleprivate'), - accelerator: utils.getStoreValue("general.keybindings.togglePrivateSession").join('+'), - click: () => utils.getWindow().webContents.executeJavaScript(`app.cfg.general.privateEnabled = !app.cfg.general.privateEnabled`) - }, - {type: 'separator'}, - { - label: utils.getLocale(utils.getStoreValue('general.language'), 'menubar.options.webremote'), - accelerator: utils.getStoreValue("general.keybindings.webRemote").join('+'), - sublabel: 'Opens in external window', - click: () => utils.getWindow().webContents.executeJavaScript(`app.appRoute('remote-pair')`) - }, - { - label: utils.getLocale(utils.getStoreValue('general.language'), 'menubar.options.audio'), - accelerator: utils.getStoreValue("general.keybindings.audioSettings").join('+'), - click: () => utils.getWindow().webContents.executeJavaScript(`app.modals.audioSettings = true`) - }, - { - label: utils.getLocale(utils.getStoreValue('general.language'), 'menubar.options.plugins'), - accelerator: utils.getStoreValue("general.keybindings.pluginMenu").join('+'), - click: () => utils.getWindow().webContents.executeJavaScript(`app.modals.pluginMenu = true`) - } + ] : [ + {type:'separator'}, + {role: 'reload', label: utils.getLocale(utils.getStoreValue('general.language'), 'menubar.options.reload')}, + {role: 'forceReload', label: utils.getLocale(utils.getStoreValue('general.language'), 'menubar.options.forcereload')}, + ]), ] }, + { label: utils.getLocale(utils.getStoreValue('general.language'), 'menubar.options.controls'), submenu: [ @@ -148,35 +172,32 @@ export default class Thumbar { label: utils.getLocale(utils.getStoreValue('general.language'), 'menubar.options.volumedown'), accelerator: 'CommandOrControl+Down', click: () => utils.getWindow().webContents.executeJavaScript(`app.volumeDown()`) - }, - { - label: utils.getLocale(utils.getStoreValue('general.language'), 'menubar.options.browse'), - accelerator: utils.getStoreValue("general.keybindings.browse").join('+'), - click: () => utils.getWindow().webContents.executeJavaScript(`app.appRoute('browse')`) - }, - {type: 'separator'}, - { - label: utils.getLocale(utils.getStoreValue('general.language'), 'menubar.options.artists'), - accelerator: utils.getStoreValue("general.keybindings.artists").join('+'), - click: () => utils.getWindow().webContents.executeJavaScript(`app.appRoute('library-artists')`) - }, - { - label: utils.getLocale(utils.getStoreValue('general.language'), 'menubar.options.search'), - accelerator: utils.getStoreValue("general.keybindings.search").join('+'), - click: () => utils.getWindow().webContents.executeJavaScript(`app.appRoute('search')`) - }, - {type: 'separator'}, - { - label: utils.getLocale(utils.getStoreValue('general.language'), 'menubar.options.albums'), - accelerator: utils.getStoreValue("general.keybindings.albums").join('+'), - click: () => utils.getWindow().webContents.executeJavaScript(`app.appRoute('library-albums')`) - }, + }, {type: 'separator'}, { label: utils.getLocale(utils.getStoreValue('general.language'), 'menubar.options.cast'), accelerator: utils.getStoreValue("general.keybindings.castToDevices").join('+'), click: () => utils.getWindow().webContents.executeJavaScript(`app.modals.castMenu = true`) + }, + { + label: utils.getLocale(utils.getStoreValue('general.language'), 'menubar.options.webremote'), + accelerator: utils.getStoreValue("general.keybindings.webRemote").join('+'), + sublabel: 'Opens in external window', + click: () => utils.getWindow().webContents.executeJavaScript(`app.appRoute('remote-pair')`) + }, + {type: 'separator'}, + { + label: utils.getLocale(utils.getStoreValue('general.language'), 'menubar.options.audio'), + accelerator: utils.getStoreValue("general.keybindings.audioSettings").join('+'), + click: () => utils.getWindow().webContents.executeJavaScript(`app.modals.audioSettings = true`) + }, + {type: 'separator'}, + { + label: utils.getLocale(utils.getStoreValue('general.language'), 'menubar.options.plugins'), + accelerator: utils.getStoreValue("general.keybindings.pluginMenu").join('+'), + click: () => utils.getWindow().webContents.executeJavaScript(`app.modals.pluginMenu = true`) } + ] }, { diff --git a/src/preload/cider-preload.js b/src/preload/cider-preload.js index 309eb381..f5cc6dd2 100644 --- a/src/preload/cider-preload.js +++ b/src/preload/cider-preload.js @@ -87,6 +87,7 @@ const MusicKitInterop = { const nowPlayingItem = mk.nowPlayingItem; const isPlayingExport = mk.isPlaying; const remainingTimeExport = mk.currentPlaybackTimeRemaining; + const currentPlaybackProgress = mk.currentPlaybackProgress; const attributes = (nowPlayingItem != null ? nowPlayingItem.attributes : {}); attributes.status = isPlayingExport ?? null; @@ -109,6 +110,7 @@ const MusicKitInterop = { ? remainingTimeExport * 1000 : 0; attributes.durationInMillis = attributes?.durationInMillis ?? 0; + attributes.currentPlaybackProgress = currentPlaybackProgress ?? 0; attributes.startTime = Date.now(); attributes.endTime = Math.round( attributes?.playParams?.id === cache.playParams.id diff --git a/src/renderer/assets/cider-icons/backward.svg b/src/renderer/assets/cider-icons/backward.svg new file mode 100644 index 00000000..87d5ecca --- /dev/null +++ b/src/renderer/assets/cider-icons/backward.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/src/renderer/assets/cider-icons/forward.svg b/src/renderer/assets/cider-icons/forward.svg new file mode 100644 index 00000000..37320d60 --- /dev/null +++ b/src/renderer/assets/cider-icons/forward.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/src/renderer/assets/cider-icons/pause.svg b/src/renderer/assets/cider-icons/pause.svg new file mode 100644 index 00000000..39b3608c --- /dev/null +++ b/src/renderer/assets/cider-icons/pause.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/renderer/assets/cider-icons/play.svg b/src/renderer/assets/cider-icons/play.svg new file mode 100644 index 00000000..885b90cc --- /dev/null +++ b/src/renderer/assets/cider-icons/play.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/renderer/audio/audio.js b/src/renderer/audio/audio.js index c8c9c799..970a69ba 100644 --- a/src/renderer/audio/audio.js +++ b/src/renderer/audio/audio.js @@ -8,10 +8,10 @@ const CiderAudio = { audioBands: null, vibrantbassNode: null, llpw: null, - analogWarmth: null, recorderNode: null, intelliGainComp: null, - atmosphereRealizer: null, + atmosphereRealizer1: null, + atmosphereRealizer2: null, }, ccON: false, mediaRecorder: null, @@ -39,10 +39,10 @@ const CiderAudio = { audioBands: null, vibrantbassNode: null, llpw: null, - analogWarmth: null, recorderNode: null, intelliGainComp: null, - atmosphereRealizer: null, + atmosphereRealizer1: null, + atmosphereRealizer2: null, } } catch (e) { } CiderAudio.source.connect(CiderAudio.context.destination); @@ -94,7 +94,7 @@ const CiderAudio = { spatialProfiles: [ { "id": "72_420maikiwi", - "file": './audio/impulses/CiderSpatial_v72.420_Maikiwi.wav', + "file": './cideraudio/impulses/CiderSpatial_v72.420_Maikiwi.wav', "name": "Maikiwi", "description": "", "gainComp": "1.3381352151540196", @@ -102,7 +102,7 @@ const CiderAudio = { }, { "id": "71_420maikiwi", - "file": './audio/impulses/CiderSpatial_v71.420_Maikiwi.wav', + "file": './cideraudio/impulses/CiderSpatial_v71.420_Maikiwi.wav', "name": "Soundstage", "description": "", "gainComp": "1.3963683610559376", @@ -110,7 +110,7 @@ const CiderAudio = { }, { "id": "70_422maikiwi", - "file": './audio/impulses/CiderSpatial_v70.422_Maikiwi.wav', + "file": './cideraudio/impulses/CiderSpatial_v70.422_Maikiwi.wav', "name": "Separation", "description": "", "gainComp": "1.30767553892022", @@ -118,13 +118,33 @@ const CiderAudio = { }, { "id": "standard", - "file": './audio/impulses/CiderSpatial_v69_Standard.wav', + "file": './cideraudio/impulses/CiderSpatial_v69_Standard.wav', "name": "Minimal", "description": "", "gainComp": "1.2647363474711515", "img": "./assets/audiolabs/minimal.png", } ], + atmosphereRealizerProfiles: [ + { + "id": "NATURAL_STANDARD", + "file": './cideraudio/impulses/AtmosphereRealizer_NaturalStandard.wav', + "name": "Natural (Standard)", + "description": "", + }, + { + "id": "NATURAL_PLUS", + "file": './cideraudio/impulses/AtmosphereRealizer_Natural+.wav', + "name": "Natural (Plus)", + "description": "", + }, + { + "id": "CRYPTO", + "file": './cideraudio/impulses/AtmosphereRealizer_Cryptofyre.wav', + "name": "Cryptofyre", + "description": "", + } + ], spatialOn: function () { CiderAudio.audioNodes.spatialNode = null; CiderAudio.audioNodes.spatialNode = CiderAudio.context.createConvolver(); @@ -150,12 +170,12 @@ const CiderAudio = { if (CiderAudio.audioNodes.audioBands !== null) { filters = filters.concat(CiderAudio.audioNodes.audioBands) } if (CiderAudio.audioNodes.vibrantbassNode !== null) { filters = filters.concat(CiderAudio.audioNodes.vibrantbassNode) } if (CiderAudio.audioNodes.llpw !== null && CiderAudio.audioNodes.llpw.length > 1) { filters = filters.concat(CiderAudio.audioNodes.llpw); } - if (CiderAudio.audioNodes.analogWarmth !== null) { filters = filters.concat(CiderAudio.audioNodes.analogWarmth) } if (!filters || filters.length === 0) { let filterlessGain = 1; if (CiderAudio.audioNodes.llpw !== null && CiderAudio.audioNodes.llpw.length == 1) { filterlessGain = filterlessGain * 1.109174815262401 } - if (app.cfg.audio.maikiwiAudio.atmosphereRealizer == true) { filterlessGain = filterlessGain * 1.096478196143185 } + if (app.cfg.audio.maikiwiAudio.atmosphereRealizer1 === true) { filterlessGain = filterlessGain * 1.096478196143185 } + if (app.cfg.audio.maikiwiAudio.atmosphereRealizer2 === true) { filterlessGain = filterlessGain * 1.096478196143185 } if (app.cfg.audio.maikiwiAudio.spatial == true) { let spatialProfile = CiderAudio.spatialProfiles.find(function (profile) { return profile.id === app.cfg.audio.maikiwiAudio.spatialProfile; @@ -201,7 +221,8 @@ const CiderAudio = { maxGain = gain; } if (CiderAudio.audioNodes.llpw !== null && CiderAudio.audioNodes.llpw.length == 1) { maxGain = maxGain * 1.109174815262401 } - if (app.cfg.audio.maikiwiAudio.atmosphereRealizer == true) { maxGain = maxGain * 1.096478196143185 } + if (app.cfg.audio.maikiwiAudio.atmosphereRealizer1 === true) { maxGain = maxGain * 1.096478196143185 } + if (app.cfg.audio.maikiwiAudio.atmosphereRealizer2 === true) { maxGain = maxGain * 1.096478196143185 } if (app.cfg.audio.maikiwiAudio.spatial == true) { let spatialProfile = CiderAudio.spatialProfiles.find(function (profile) { return profile.id === app.cfg.audio.maikiwiAudio.spatialProfile; @@ -378,153 +399,85 @@ const CiderAudio = { // CiderAudio.ccON = false; } }, - atmosphereRealizer_h2_4: function (status, hierarchy) { + atmosphereRealizer2_h2_4: function (status, hierarchy) { if (status === true) { - switch (app.cfg.audio.maikiwiAudio.atmosphereRealizer_value) { - case "NATURAL_STANDARD": - CiderAudio.audioNodes.atmosphereRealizer = CiderAudio.context.createConvolver(); - CiderAudio.audioNodes.atmosphereRealizer.normalize = false; - - fetch('./audio/impulses/AtmosphereRealizer_NaturalStandard.wav').then(async (impulseData) => { - let bufferedImpulse = await impulseData.arrayBuffer(); - CiderAudio.audioNodes.atmosphereRealizer.buffer = await CiderAudio.context.decodeAudioData(bufferedImpulse); - }); - break; - - - case "NATURAL_HIGH": - CiderAudio.audioNodes.atmosphereRealizer = CiderAudio.context.createConvolver(); - CiderAudio.audioNodes.atmosphereRealizer.normalize = false; - - fetch('./audio/impulses/AtmosphereRealizer_NaturalHigh.wav').then(async (impulseData) => { - let bufferedImpulse = await impulseData.arrayBuffer(); - CiderAudio.audioNodes.atmosphereRealizer.buffer = await CiderAudio.context.decodeAudioData(bufferedImpulse); - }); - break; - - case "NATURAL_PLUS": - CiderAudio.audioNodes.atmosphereRealizer = CiderAudio.context.createConvolver(); - CiderAudio.audioNodes.atmosphereRealizer.normalize = false; - - fetch('./audio/impulses/AtmosphereRealizer_Natural+.wav').then(async (impulseData) => { - let bufferedImpulse = await impulseData.arrayBuffer(); - CiderAudio.audioNodes.atmosphereRealizer.buffer = await CiderAudio.context.decodeAudioData(bufferedImpulse); - }); - break; - case "CRYPTO": - CiderAudio.audioNodes.atmosphereRealizer = CiderAudio.context.createConvolver(); - CiderAudio.audioNodes.atmosphereRealizer.normalize = false; - - fetch('./audio/impulses/AtmosphereRealizer_Cryptofyre.wav').then(async (impulseData) => { - let bufferedImpulse = await impulseData.arrayBuffer(); - CiderAudio.audioNodes.atmosphereRealizer.buffer = await CiderAudio.context.decodeAudioData(bufferedImpulse); - }); - break; - - default: - CiderAudio.audioNodes.atmosphereRealizer = CiderAudio.context.createConvolver(); - CiderAudio.audioNodes.atmosphereRealizer.normalize = false; - - fetch('./audio/impulses/AtmosphereRealizer_Standard.wav').then(async (impulseData) => { - let bufferedImpulse = await impulseData.arrayBuffer(); - CiderAudio.audioNodes.atmosphereRealizer.buffer = await CiderAudio.context.decodeAudioData(bufferedImpulse); - }); - app.cfg.audio.maikiwiAudio.atmosphereRealizer_value = "STANDARD"; - break; + CiderAudio.audioNodes.atmosphereRealizer2 = CiderAudio.context.createConvolver(); + CiderAudio.audioNodes.atmosphereRealizer2.normalize = false; + let atmosphereRealizerProfile = CiderAudio.atmosphereRealizerProfiles.find(function (profile) { + return profile.id === app.cfg.audio.maikiwiAudio.spatialProfile; + }); + + if (atmosphereRealizerProfile === undefined) { + atmosphereRealizerProfile = CiderAudio.atmosphereRealizerProfiles[0]; } + fetch(atmosphereRealizerProfile.file).then(async (impulseData) => { + let bufferedImpulse = await impulseData.arrayBuffer(); + CiderAudio.audioNodes.atmosphereRealizer2.buffer = await CiderAudio.context.decodeAudioData(bufferedImpulse); + }); switch (hierarchy) { - case 4: + case 'h2_3': try { - CiderAudio.audioNodes.atmosphereRealizer.connect(CiderAudio.audioNodes.analogWarmth[0]); + CiderAudio.audioNodes.atmosphereRealizer2.connect(CiderAudio.audioNodes.atmosphereRealizer1); } catch (e) { } break; - case 3: + case 'h2_2': try { - CiderAudio.audioNodes.atmosphereRealizer.connect(CiderAudio.audioNodes.llpw[0]); + CiderAudio.audioNodes.atmosphereRealizer2.connect(CiderAudio.audioNodes.llpw[0]); } catch (e) { } break; - case 2: + case 'h2_1': try { - CiderAudio.audioNodes.atmosphereRealizer.connect(CiderAudio.audioNodes.vibrantbassNode[0]); + CiderAudio.audioNodes.atmosphereRealizer2.connect(CiderAudio.audioNodes.vibrantbassNode[0]); } catch (e) { } break; - case 1: + case 'h1': try { - CiderAudio.audioNodes.atmosphereRealizer.connect(CiderAudio.audioNodes.audioBands[0]); + CiderAudio.audioNodes.atmosphereRealizer2.connect(CiderAudio.audioNodes.audioBands[0]); } catch (e) { } break; - case 0: - try { CiderAudio.audioNodes.atmosphereRealizer.connect(CiderAudio.context.destination); } catch (e) { } + case 'h0': + try { CiderAudio.audioNodes.atmosphereRealizer2.connect(CiderAudio.context.destination); } catch (e) { } break; } } }, - analogWarmth_h2_3: function (status, hierarchy) { - if (status === true) { // 23 Band Adjustment - let WARMTH_FREQUENCIES = [10.513, 15.756, 224.01, 677.77, 1245.4, 2326.8, 2847.3, 4215.3, 11057, 12793, 16235, 16235, 17838, 18112, 18112, 19326, 19372, 19372, 20061, 20280, 20280, 20853, 22276]; - let WARMTH_GAIN = [-4.81, 0.74, 0.55, -0.84, -1.52, 0.84, 0.66, -0.29, 0.29, 0.94, 1.67, 1.62, -0.53, -0.81, -4.98, 1.43, 0.86, 1.13, -1.06, -0.95, -1.13, 1.78, -3.86]; - let WARMTH_Q = [0.442, 3.536, 2.102, 8.409, 0.625, 16.82, 5, 2.973, 3.536, 2.5, 2.5, 11.89, 0.625, 1.487, 1.153, 5, 5.453, 5, 2.973, 3.386, 3.386, 14.14, 8.409]; - CiderAudio.audioNodes.analogWarmth = [] - - switch (app.cfg.audio.maikiwiAudio.analogWarmth_value) { - case "SMOOTH": - for (let i = 0; i < WARMTH_FREQUENCIES.length; i++) { - CiderAudio.audioNodes.analogWarmth[i] = CiderAudio.context.createBiquadFilter(); - 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] * 1.25; - } - break; - - case "WARM": - for (let i = 0; i < WARMTH_FREQUENCIES.length; i++) { - CiderAudio.audioNodes.analogWarmth[i] = CiderAudio.context.createBiquadFilter(); - 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] * 1.75; - } - break; - - default: - for (let i = 0; i < WARMTH_FREQUENCIES.length; i++) { - CiderAudio.audioNodes.analogWarmth[i] = CiderAudio.context.createBiquadFilter(); - 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] * 1.25; - } - app.cfg.audio.maikiwiAudio.analogWarmth_value = "SMOOTH"; - break; - } - - - for (let i = 1; i < WARMTH_FREQUENCIES.length; i++) { - CiderAudio.audioNodes.analogWarmth[i - 1].connect(CiderAudio.audioNodes.analogWarmth[i]); + atmosphereRealizer1_h2_3: function (status, hierarchy) { + if (status === true) { + CiderAudio.audioNodes.atmosphereRealizer1 = CiderAudio.context.createConvolver(); + CiderAudio.audioNodes.atmosphereRealizer1.normalize = false; + let atmosphereRealizerProfile = CiderAudio.atmosphereRealizerProfiles.find(function (profile) { + return profile.id === app.cfg.audio.maikiwiAudio.spatialProfile; + }); + + if (atmosphereRealizerProfile === undefined) { + atmosphereRealizerProfile = CiderAudio.atmosphereRealizerProfiles[0]; } + fetch(atmosphereRealizerProfile.file).then(async (impulseData) => { + let bufferedImpulse = await impulseData.arrayBuffer(); + CiderAudio.audioNodes.atmosphereRealizer1.buffer = await CiderAudio.context.decodeAudioData(bufferedImpulse); + }); switch (hierarchy) { - case 3: + case 'h2_2': try { - CiderAudio.audioNodes.analogWarmth[WARMTH_FREQUENCIES.length - 1].connect(CiderAudio.audioNodes.llpw[0]); + CiderAudio.audioNodes.atmosphereRealizer1.connect(CiderAudio.audioNodes.llpw[0]); } catch (e) { } break; - case 2: + case 'h2_1': try { - CiderAudio.audioNodes.analogWarmth[WARMTH_FREQUENCIES.length - 1].connect(CiderAudio.audioNodes.vibrantbassNode[0]); + CiderAudio.audioNodes.atmosphereRealizer1.connect(CiderAudio.audioNodes.vibrantbassNode[0]); } catch (e) { } break; - case 1: + case 'h1': try { - CiderAudio.audioNodes.analogWarmth[WARMTH_FREQUENCIES.length - 1].connect(CiderAudio.audioNodes.audioBands[0]); + CiderAudio.audioNodes.atmosphereRealizer1.connect(CiderAudio.audioNodes.audioBands[0]); } catch (e) { } break; - case 0: - try { CiderAudio.audioNodes.analogWarmth[WARMTH_FREQUENCIES.length - 1].connect(CiderAudio.context.destination); } catch (e) { } + case 'h0': + try { CiderAudio.audioNodes.atmosphereRealizer1.connect(CiderAudio.context.destination); } catch (e) { } break; } @@ -545,19 +498,19 @@ const CiderAudio = { case "MAIKIWI": CiderAudio.audioNodes.llpw[0] = CiderAudio.context.createConvolver(); CiderAudio.audioNodes.llpw[0].normalize = false; - fetch('./audio/impulses/CAP_Maikiwi.wav').then(async (impulseData) => { + fetch('./cideraudio/impulses/CAP_Maikiwi.wav').then(async (impulseData) => { let bufferedImpulse = await impulseData.arrayBuffer(); CiderAudio.audioNodes.llpw[0].buffer = await CiderAudio.context.decodeAudioData(bufferedImpulse); }); switch (hierarchy) { - case 2: + case 'h2_1': try { CiderAudio.audioNodes.llpw[0].connect(CiderAudio.audioNodes.vibrantbassNode[0]); } catch (e) { } break; - case 1: + case 'h1': try { CiderAudio.audioNodes.llpw[0].connect(CiderAudio.audioNodes.audioBands[0]); } catch (e) { } break; - case 0: + case 'h0': try { CiderAudio.audioNodes.llpw[0].connect(CiderAudio.context.destination); } catch (e) { } break; @@ -569,19 +522,19 @@ const CiderAudio = { case "NATURAL": CiderAudio.audioNodes.llpw[0] = CiderAudio.context.createConvolver(); CiderAudio.audioNodes.llpw[0].normalize = false; - fetch('./audio/impulses/CAP_Natural.wav').then(async (impulseData) => { + fetch('./cideraudio/impulses/CAP_Natural.wav').then(async (impulseData) => { let bufferedImpulse = await impulseData.arrayBuffer(); CiderAudio.audioNodes.llpw[0].buffer = await CiderAudio.context.decodeAudioData(bufferedImpulse); }); switch (hierarchy) { - case 2: + case 'h2_1': try { CiderAudio.audioNodes.llpw[0].connect(CiderAudio.audioNodes.vibrantbassNode[0]); } catch (e) { } break; - case 1: + case 'h1': try { CiderAudio.audioNodes.llpw[0].connect(CiderAudio.audioNodes.audioBands[0]); } catch (e) { } break; - case 0: + case 'h0': try { CiderAudio.audioNodes.llpw[0].connect(CiderAudio.context.destination); } catch (e) { } break; @@ -603,13 +556,13 @@ const CiderAudio = { } switch (hierarchy) { - case 2: + case 'h2_1': try { CiderAudio.audioNodes.llpw[c_LLPW_FREQUENCIES.length - 1].connect(CiderAudio.audioNodes.vibrantbassNode[0]); } catch (e) { } break; - case 1: + case 'h1': try { CiderAudio.audioNodes.llpw[c_LLPW_FREQUENCIES.length - 1].connect(CiderAudio.audioNodes.audioBands[0]); } catch (e) { } break; - case 0: + case 'h0': try { CiderAudio.audioNodes.llpw[c_LLPW_FREQUENCIES.length - 1].connect(CiderAudio.context.destination); } catch (e) { } break; @@ -621,19 +574,19 @@ const CiderAudio = { default: CiderAudio.audioNodes.llpw[0] = CiderAudio.context.createConvolver(); CiderAudio.audioNodes.llpw[0].normalize = false; - fetch('./audio/impulses/CAP_Maikiwi.wav').then(async (impulseData) => { + fetch('./cideraudio/impulses/CAP_Maikiwi.wav').then(async (impulseData) => { let bufferedImpulse = await impulseData.arrayBuffer(); CiderAudio.audioNodes.llpw[0].buffer = await CiderAudio.context.decodeAudioData(bufferedImpulse); }); switch (hierarchy) { - case 2: + case 'h2_1': try { CiderAudio.audioNodes.llpw[0].connect(CiderAudio.audioNodes.vibrantbassNode[0]); } catch (e) { } break; - case 1: + case 'h1': try { CiderAudio.audioNodes.llpw[0].connect(CiderAudio.audioNodes.audioBands[0]); } catch (e) { } break; - case 0: + case 'h0': try { CiderAudio.audioNodes.llpw[0].connect(CiderAudio.context.destination); } catch (e) { } break; @@ -665,12 +618,12 @@ const CiderAudio = { } switch (hierarchy) { - case 0: + case 'h0': try { CiderAudio.audioNodes.vibrantbassNode[0].connect(CiderAudio.context.destination); } catch (e) { } break; - case 1: + case 'h1': try { CiderAudio.audioNodes.vibrantbassNode[0].connect(CiderAudio.audioNodes.audioBands[0]); } catch (e) { } break; @@ -681,8 +634,8 @@ const CiderAudio = { try { CiderAudio.audioNodes.spatialNode.output.disconnect(); } catch (e) { } try { CiderAudio.audioNodes.spatialNode.disconnect(); } catch (e) { } try { CiderAudio.audioNodes.gainNode.disconnect(); } catch (e) { } - try { CiderAudio.audioNodes.atmosphereRealizer.disconnect(); CiderAudio.audioNodes.atmosphereRealizer = null } catch (e) { } - try { for (var i of CiderAudio.audioNodes.analogWarmth) { i.disconnect(); } CiderAudio.audioNodes.analogWarmth = null } catch (e) { } + try { CiderAudio.audioNodes.atmosphereRealizer1.disconnect(); CiderAudio.audioNodes.atmosphereRealizer1 = null } catch (e) { } + try { CiderAudio.audioNodes.atmosphereRealizer2.disconnect(); CiderAudio.audioNodes.atmosphereRealizer2 = null } catch (e) { } try { for (var i of CiderAudio.audioNodes.llpw) { i.disconnect(); } CiderAudio.audioNodes.llpw = null } catch (e) { } try { for (var i of CiderAudio.audioNodes.vibrantbassNode) { i.disconnect(); } CiderAudio.audioNodes.vibrantbassNode = null } catch (e) { } try { for (var i of CiderAudio.audioNodes.audioBands) { i.disconnect(); } CiderAudio.audioNodes.audioBands = null } catch (e) { } @@ -690,816 +643,112 @@ const CiderAudio = { console.debug("[Cider][Audio] Finished hierarchical unloading"); }, - hierarchical_loading: function () { + config_mapping: function () { + return new Promise(resolve => { + const map = new Map([ + ['h1', Math.max(...app.cfg.audio.equalizer.gain) != 0], + ['h2_1', app.cfg.audio.equalizer.vibrantBass != 0], + ['h2_2', app.cfg.audio.maikiwiAudio.ciderPPE === true], + ['h2_3', app.cfg.audio.maikiwiAudio.atmosphereRealizer1 === true], + ['h2_4', app.cfg.audio.maikiwiAudio.atmosphereRealizer2 === true], + ['spatial', app.cfg.audio.maikiwiAudio.spatial === true] + ]); + + resolve(map); + }); + }, + hierarchical_loading: async function () { + const configMap = await CiderAudio.config_mapping(); CiderAudio.hierarchical_unloading(); - if (Math.max(...app.cfg.audio.equalizer.gain) != 0) { - CiderAudio.equalizer(true, 0); - - if (app.cfg.audio.equalizer.vibrantBass !== '0') { - CiderAudio.vibrantbass_h2_1(true, 1); - - if (app.cfg.audio.maikiwiAudio.ciderPPE === true) { // Vibrant Bass, CAP - CiderAudio.llpw_h2_2(true, 2); - - if (app.cfg.audio.maikiwiAudio.analogWarmth === true) { // Vibrant Bass, CAP, Analog Warmth - CiderAudio.analogWarmth_h2_3(true, 3); - - if (app.cfg.audio.maikiwiAudio.atmosphereRealizer === true) { - CiderAudio.atmosphereRealizer_h2_4(true, 4); - - if (app.cfg.audio.maikiwiAudio.spatial === true) { - if (app.cfg.audio.maikiwiAudio.spatial === true) { // Vibrant Bass, CAP, Analog Warmth, Maikiwi Spatial - app.cfg.audio.normalization = true - CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialNode); - CiderAudio.audioNodes.spatialNode.connect(CiderAudio.audioNodes.atmosphereRealizer); - console.debug('[Cider][Audio] Equalizer, Vibrant Bass, CAP, Analog Warmth, Maikiwi Spatial, Atmosphere Realizer') - } - else { // Vibrant Bass, CAP, Analog Warmth, Spatial - app.cfg.audio.normalization = true - CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialInput.input); - CiderAudio.audioNodes.spatialNode.output.connect(CiderAudio.audioNodes.atmosphereRealizer); - console.debug('[Cider][Audio] Equalizer, Vibrant Bass, CAP, Analog Warmth, Spatial, Atmosphere Realizer') - } - } - else { - app.cfg.audio.normalization = true - CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.atmosphereRealizer); - console.debug('[Cider][Audio] Equalizer, Vibrant Bass, CAP, Analog Warmth, Atmosphere Realizer') - } - } - - else { - if (app.cfg.audio.maikiwiAudio.spatial === true) { - if (app.cfg.audio.maikiwiAudio.spatial === true) { // Vibrant Bass, CAP, Analog Warmth, Maikiwi Spatial - app.cfg.audio.normalization = true - CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialNode); - CiderAudio.audioNodes.spatialNode.connect(CiderAudio.audioNodes.analogWarmth[0]); - console.debug('[Cider][Audio] Equalizer, Vibrant Bass, CAP, Analog Warmth, Maikiwi Spatial') - } - else { // Vibrant Bass, CAP, Analog Warmth, Spatial - app.cfg.audio.normalization = true - CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialInput.input); - CiderAudio.audioNodes.spatialNode.output.connect(CiderAudio.audioNodes.analogWarmth[0]); - console.debug('[Cider][Audio] Equalizer, Vibrant Bass, CAP, Analog Warmth, Spatial') - } - } - else { - app.cfg.audio.normalization = true - CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.analogWarmth[0]); - console.debug('[Cider][Audio] Equalizer, Vibrant Bass, CAP, Analog Warmth') - } - } - } - else { - if (app.cfg.audio.maikiwiAudio.atmosphereRealizer === true) { - CiderAudio.atmosphereRealizer_h2_4(true, 3) - - if (app.cfg.audio.maikiwiAudio.spatial === true) { - if (app.cfg.audio.maikiwiAudio.spatial === true) { - app.cfg.audio.normalization = true - CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialNode); - CiderAudio.audioNodes.spatialNode.connect(CiderAudio.audioNodes.atmosphereRealizer); - console.debug('[Cider][Audio] Equalizer, Vibrant Bass, CAP, Maikiwi Spatial, Atmosphere Realizer') - } - else { - app.cfg.audio.normalization = true - CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialInput.input); - CiderAudio.audioNodes.spatialNode.output.connect(CiderAudio.audioNodes.atmosphereRealizer); - console.debug('[Cider][Audio] Equalizer, Vibrant Bass, CAP, Spatial, Atmosphere Realizer') - } - } - else { - app.cfg.audio.normalization = true - CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.atmosphereRealizer); - console.debug('[Cider][Audio] Equalizer, Vibrant Bass, CAP, Atmosphere Realizer') - } - } - else { - if (app.cfg.audio.maikiwiAudio.spatial === true) { - if (app.cfg.audio.maikiwiAudio.spatial === true) { - app.cfg.audio.normalization = true - CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialNode); - CiderAudio.audioNodes.spatialNode.connect(CiderAudio.audioNodes.llpw[0]); - console.debug('[Cider][Audio] Equalizer, Vibrant Bass, CAP, Maikiwi Spatial') - } - else { - app.cfg.audio.normalization = true - CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialInput.input); - CiderAudio.audioNodes.spatialNode.output.connect(CiderAudio.audioNodes.llpw[0]); - console.debug('[Cider][Audio] Equalizer, Vibrant Bass, CAP, Spatial') - } - } - else { - app.cfg.audio.normalization = true - CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.llpw[0]); - console.debug('[Cider][Audio] Equalizer, Vibrant Bass, CAP') - } - } - } - } - else { - if (app.cfg.audio.maikiwiAudio.analogWarmth === true) { - CiderAudio.analogWarmth_h2_3(true, 2); - - if (app.cfg.audio.maikiwiAudio.atmosphereRealizer === true) { - CiderAudio.atmosphereRealizer_h2_4(true, 4) - - if (app.cfg.audio.maikiwiAudio.spatial === true) { - if (app.cfg.audio.maikiwiAudio.spatial === true) { - app.cfg.audio.normalization = true - CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialNode); - CiderAudio.audioNodes.spatialNode.connect(CiderAudio.audioNodes.atmosphereRealizer); - console.debug('[Cider][Audio] Equalizer, Vibrant Bass, Analog Warmth, Maikiwi Spatial, Atmosphere Realizer') - } - else { - app.cfg.audio.normalization = true - CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialInput.input); - CiderAudio.audioNodes.spatialNode.output.connect(CiderAudio.audioNodes.atmosphereRealizer); - console.debug('[Cider][Audio] Equalizer, Vibrant Bass, Analog Warmth, Spatial, Atmosphere Realizer') - } - } - else { - app.cfg.audio.normalization = true - CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.atmosphereRealizer); - console.debug('[Cider][Audio] Equalizer, Vibrant Bass, Analog Warmth, Atmosphere Realizer') - } - } - - else { - if (app.cfg.audio.maikiwiAudio.spatial === true) { - if (app.cfg.audio.maikiwiAudio.spatial === true) { - app.cfg.audio.normalization = true - CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialNode); - CiderAudio.audioNodes.spatialNode.connect(CiderAudio.audioNodes.analogWarmth[0]); - console.debug('[Cider][Audio] Equalizer, Vibrant Bass, Analog Warmth, Maikiwi Spatial') - } - else { - app.cfg.audio.normalization = true - CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialInput.input); - CiderAudio.audioNodes.spatialNode.output.connect(CiderAudio.audioNodes.analogWarmth[0]); - console.debug('[Cider][Audio] Equalizer, Vibrant Bass, Analog Warmth, Spatial') - } - } - else { - CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.analogWarmth[0]); - console.debug('[Cider][Audio] Equalizer, Vibrant Bass, Analog Warmth') - } - } - } - else { - if (app.cfg.audio.maikiwiAudio.atmosphereRealizer === true) { - CiderAudio.atmosphereRealizer_h2_4(true, 2) - - if (app.cfg.audio.maikiwiAudio.spatial === true) { - if (app.cfg.audio.maikiwiAudio.spatial === true) { - app.cfg.audio.normalization = true - CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialNode); - CiderAudio.audioNodes.spatialNode.connect(CiderAudio.audioNodes.atmosphereRealizer); - console.debug('[Cider][Audio] Equalizer, Vibrant Bass, Maikiwi Spatial, Atmosphere Realizer') - } - else { - app.cfg.audio.normalization = true - CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialInput.input); - CiderAudio.audioNodes.spatialNode.output.connect(CiderAudio.audioNodes.atmosphereRealizer); - console.debug('[Cider][Audio] Equalizer, Vibrant Bass, Spatial, Atmosphere Realizer') - } - } - else { - app.cfg.audio.normalization = true - CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.atmosphereRealizer); - console.debug('[Cider][Audio] Equalizer, Vibrant Bass, Atmosphere Realizer') - } - } - - else { - if (app.cfg.audio.maikiwiAudio.spatial === true) { - if (app.cfg.audio.maikiwiAudio.spatial === true) { - app.cfg.audio.normalization = true - CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialNode); - CiderAudio.audioNodes.spatialNode.connect(CiderAudio.audioNodes.vibrantbassNode[0]); - console.debug('[Cider][Audio] Equalizer, Vibrant Bass, Maikiwi Spatial') - } - else { - app.cfg.audio.normalization = true - CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialInput.input); - CiderAudio.audioNodes.spatialNode.output.connect(CiderAudio.audioNodes.vibrantbassNode[0]); - console.debug('[Cider][Audio] Equalizer, Vibrant Bass, Spatial') - } - } - else { - CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.vibrantbassNode[0]); - console.debug('[Cider][Audio] Equalizer, Vibrant Bass') - } - } - - } - } - } - // Vibrant Bass ends here - else { // if (app.cfg.audio.maikiwiAudio.vibrantBass.multiplier) === 0 - if (app.cfg.audio.maikiwiAudio.ciderPPE === true) { - CiderAudio.llpw_h2_2(true, 1); - - if (app.cfg.audio.maikiwiAudio.analogWarmth === true) { - CiderAudio.analogWarmth_h2_3(true, 3); - - if (app.cfg.audio.maikiwiAudio.atmosphereRealizer === true) { - CiderAudio.atmosphereRealizer_h2_4(true, 4); - - if (app.cfg.audio.maikiwiAudio.spatial === true) { - if (app.cfg.audio.maikiwiAudio.spatial === true) { - app.cfg.audio.normalization = true - CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialNode); - CiderAudio.audioNodes.spatialNode.connect(CiderAudio.audioNodes.atmosphereRealizer); - console.debug('[Cider][Audio] Equalizer, CAP, Analog Warmth, Maikiwi Spatial, Atmosphere Realizer') - } - else { - app.cfg.audio.normalization = true - CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialInput.input); - CiderAudio.audioNodes.spatialNode.output.connect(CiderAudio.audioNodes.atmosphereRealizer); - console.debug('[Cider][Audio] Equalizer, CAP, Analog Warmth, Spatial, Atmosphere Realizer') - } - } - else { - app.cfg.audio.normalization = true - CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.atmosphereRealizer); - console.debug('[Cider][Audio] Equalizer, CAP and Analog Warmth, Atmosphere Realizer') - } - } - - else { - - if (app.cfg.audio.maikiwiAudio.spatial === true) { - if (app.cfg.audio.maikiwiAudio.spatial === true) { - app.cfg.audio.normalization = true - CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialNode); - CiderAudio.audioNodes.spatialNode.connect(CiderAudio.audioNodes.analogWarmth[0]); - console.debug('[Cider][Audio] Equalizer, CAP, Analog Warmth, Maikiwi Spatial') - } - else { - app.cfg.audio.normalization = true - CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialInput.input); - CiderAudio.audioNodes.spatialNode.output.connect(CiderAudio.audioNodes.analogWarmth[0]); - console.debug('[Cider][Audio] Equalizer, CAP, Analog Warmth, Spatial') - } - } - else { - app.cfg.audio.normalization = true - CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.analogWarmth[0]); - console.debug('[Cider][Audio] Equalizer, CAP and Analog Warmth') - } - } - } - else { - if (app.cfg.audio.maikiwiAudio.atmosphereRealizer === true) { - CiderAudio.atmosphereRealizer_h2_4(true, 3); - - if (app.cfg.audio.maikiwiAudio.spatial === true) { - if (app.cfg.audio.maikiwiAudio.spatial === true) { - app.cfg.audio.normalization = true - CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialNode); - CiderAudio.audioNodes.spatialNode.connect(CiderAudio.audioNodes.atmosphereRealizer); - console.debug('[Cider][Audio] Equalizer, CAP, Maikiwi Spatial, Atmosphere Realizer') - } - else { - app.cfg.audio.normalization = true - CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialInput.input); - CiderAudio.audioNodes.spatialNode.output.connect(CiderAudio.audioNodes.atmosphereRealizer); - console.debug('[Cider][Audio] Equalizer, CAP, Spatial, Atmosphere Realizer') - } - } - else { - app.cfg.audio.normalization = true - CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.atmosphereRealizer); - console.debug('[Cider][Audio] Equalizer, CAP, Atmosphere Realizer') - } - } - - else { - if (app.cfg.audio.maikiwiAudio.spatial === true) { - if (app.cfg.audio.maikiwiAudio.spatial === true) { - app.cfg.audio.normalization = true - CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialNode); - CiderAudio.audioNodes.spatialNode.connect(CiderAudio.audioNodes.llpw[0]); - console.debug('[Cider][Audio] Equalizer, CAP, Maikiwi Spatial') - } - else { - app.cfg.audio.normalization = true - CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialInput.input); - CiderAudio.audioNodes.spatialNode.output.connect(CiderAudio.audioNodes.llpw[0]); - console.debug('[Cider][Audio] Equalizer, CAP, Spatial') - } - } - else { - app.cfg.audio.normalization = true - CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.llpw[0]); - console.debug('[Cider][Audio] Equalizer, CAP') - } - } - } - } // CAP ends here - else { - if (app.cfg.audio.maikiwiAudio.analogWarmth === true) { - CiderAudio.analogWarmth_h2_3(true, 1); - - if (app.cfg.audio.maikiwiAudio.atmosphereRealizer === true) { - CiderAudio.atmosphereRealizer_h2_4(true, 4); - - if (app.cfg.audio.maikiwiAudio.spatial === true) { - if (app.cfg.audio.maikiwiAudio.spatial === true) { - app.cfg.audio.normalization = true - CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialNode); - CiderAudio.audioNodes.spatialNode.connect(CiderAudio.audioNodes.atmosphereRealizer); - console.debug('[Cider][Audio] Equalizer, Analog Warmth, Maikiwi Spatial, Atmosphere Realizer') - } - else { - app.cfg.audio.normalization = true - CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialInput.input); - CiderAudio.audioNodes.spatialNode.output.connect(CiderAudio.audioNodes.atmosphereRealizer); - console.debug('[Cider][Audio] Equalizer, Analog Warmth, Spatial, Atmosphere Realizer') - } - } - else { - app.cfg.audio.normalization = true - CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.atmosphereRealizer); - console.debug('[Cider][Audio] Equalizer, Analog Warmth, Atmosphere Realizer') - } - } - - else { - if (app.cfg.audio.maikiwiAudio.spatial === true) { - if (app.cfg.audio.maikiwiAudio.spatial === true) { - app.cfg.audio.normalization = true - CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialNode); - CiderAudio.audioNodes.spatialNode.connect(CiderAudio.audioNodes.analogWarmth[0]); - console.debug('[Cider][Audio] Equalizer, Analog Warmth, Maikiwi Spatial') - } - else { - app.cfg.audio.normalization = true - CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialInput.input); - CiderAudio.audioNodes.spatialNode.output.connect(CiderAudio.audioNodes.analogWarmth[0]); - console.debug('[Cider][Audio] Equalizer, Analog Warmth, Spatial') - } - } - else { - CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.analogWarmth[0]); - console.debug('[Cider][Audio] Equalizer, Analog Warmth') - } - } - } - else { - if (app.cfg.audio.maikiwiAudio.atmosphereRealizer === true) { - CiderAudio.atmosphereRealizer_h2_4(true, 1); - - if (app.cfg.audio.maikiwiAudio.spatial === true) { - if (app.cfg.audio.maikiwiAudio.spatial === true) { - app.cfg.audio.normalization = true - CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialNode); - CiderAudio.audioNodes.spatialNode.connect(CiderAudio.audioNodes.atmosphereRealizer); - console.debug('[Cider][Audio] Equalizer, Maikiwi Spatial, Atmosphere Realizer') - } - else { - app.cfg.audio.normalization = true - CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialInput.input); - CiderAudio.audioNodes.spatialNode.output.connect(CiderAudio.audioNodes.atmosphereRealizer); - console.debug('[Cider][Audio] Equalizer, Spatial, Atmosphere Realizer') - } - } - else { - app.cfg.audio.normalization = true - CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.atmosphereRealizer); - console.debug('[Cider][Audio] Equalizer, Atmosphere Realizer') - } - } - - else { - if (app.cfg.audio.maikiwiAudio.spatial === true) { - if (app.cfg.audio.maikiwiAudio.spatial === true) { - app.cfg.audio.normalization = true - CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialNode); - CiderAudio.audioNodes.spatialNode.connect(CiderAudio.audioNodes.audioBands[0]); - console.debug('[Cider][Audio] Equalizer, Maikiwi Spatial') - } - else { - app.cfg.audio.normalization = true - CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialInput.input); - CiderAudio.audioNodes.spatialNode.output.connect(CiderAudio.audioNodes.audioBands[0]); - console.debug('[Cider][Audio] Equalizer, Spatial') - } - } - else { - CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.audioBands[0]); - console.debug('[Cider][Audio] Equalizer') - } - } - } + let nextTier = 0, lastNode = 'h0'; + for (let [tier, value] of configMap.entries()) { + if (value === true) { + switch (tier) { + case 'h1': + CiderAudio.equalizer(true, lastNode); + lastNode = 'h1'; + break; + case 'h2_1': + CiderAudio.vibrantbass_h2_1(true, lastNode); + lastNode = 'h2_1'; + break; + case 'h2_2': + app.cfg.audio.normalization = true; + CiderAudio.llpw_h2_2(true, lastNode); + lastNode = 'h2_2'; + break; + case 'h2_3': + app.cfg.audio.normalization = true; + CiderAudio.atmosphereRealizer1_h2_3(true, lastNode); + lastNode = 'h2_3'; + break; + case 'h2_4': + app.cfg.audio.normalization = true; + CiderAudio.atmosphereRealizer2_h2_4(true, lastNode); + lastNode = 'h2_4'; + break; + case 'spatial': + app.cfg.audio.normalization = true + CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialNode); + break; } } } - else { //if (Math.max(...app.cfg.audio.equalizer.gain) == 0) - if (app.cfg.audio.equalizer.vibrantBass !== '0') { // Vibrant Bass - CiderAudio.vibrantbass_h2_1(true, 0) - if (app.cfg.audio.maikiwiAudio.ciderPPE === true) { // Vibrant Bass, CAP - CiderAudio.llpw_h2_2(true, 2); - - if (app.cfg.audio.maikiwiAudio.analogWarmth === true) { // Vibrant Bass, CAP, Analog Warmth - CiderAudio.analogWarmth_h2_3(true, 3); - - if (app.cfg.audio.maikiwiAudio.atmosphereRealizer === true) { - CiderAudio.atmosphereRealizer_h2_4(true, 4); - - if (app.cfg.audio.maikiwiAudio.spatial === true) { - if (app.cfg.audio.maikiwiAudio.spatial === true) { // Vibrant Bass, CAP, Analog Warmth, Maikiwi Spatial - app.cfg.audio.normalization = true - CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialNode); - CiderAudio.audioNodes.spatialNode.connect(CiderAudio.audioNodes.atmosphereRealizer); - console.debug('[Cider][Audio] Vibrant Bass, CAP, Analog Warmth, Maikiwi Spatial, Atmosphere Realizer') - } - else { // Vibrant Bass, CAP, Analog Warmth, Spatial - app.cfg.audio.normalization = true - CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialInput.input); - CiderAudio.audioNodes.spatialNode.output.connect(CiderAudio.audioNodes.atmosphereRealizer); - console.debug('[Cider][Audio] Vibrant Bass, CAP, Analog Warmth, Spatial, Atmosphere Realizer') - } - } - else { - app.cfg.audio.normalization = true - CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.atmosphereRealizer); - console.debug('[Cider][Audio] Vibrant Bass, CAP, Analog Warmth, Atmosphere Realizer') - } - - } - else { - if (app.cfg.audio.maikiwiAudio.spatial === true) { - if (app.cfg.audio.maikiwiAudio.spatial === true) { // Vibrant Bass, CAP, Analog Warmth, Maikiwi Spatial - app.cfg.audio.normalization = true - CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialNode); - CiderAudio.audioNodes.spatialNode.connect(CiderAudio.audioNodes.analogWarmth[0]); - console.debug('[Cider][Audio] Vibrant Bass, CAP, Analog Warmth, Maikiwi Spatial') - } - else { // Vibrant Bass, CAP, Analog Warmth, Spatial - app.cfg.audio.normalization = true - CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialInput.input); - CiderAudio.audioNodes.spatialNode.output.connect(CiderAudio.audioNodes.analogWarmth[0]); - console.debug('[Cider][Audio] Vibrant Bass, CAP, Analog Warmth, Spatial') - } - } - else { - app.cfg.audio.normalization = true - CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.analogWarmth[0]); - console.debug('[Cider][Audio] Vibrant Bass, CAP, Analog Warmth') - } - } - } - else { // if (app.cfg.audio.maikiwiAudio.analogWarmth) !== true - if (app.cfg.audio.maikiwiAudio.atmosphereRealizer === true) { - CiderAudio.atmosphereRealizer_h2_4(true, 3); - - if (app.cfg.audio.maikiwiAudio.spatial === true) { - if (app.cfg.audio.maikiwiAudio.spatial === true) { - app.cfg.audio.normalization = true - CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialNode); - CiderAudio.audioNodes.spatialNode.connect(CiderAudio.audioNodes.atmosphereRealizer); - console.debug('[Cider][Audio] Vibrant Bass, CAP, Maikiwi Spatial, Atmosphere Realizer') - } - else { - app.cfg.audio.normalization = true - CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialInput.input); - CiderAudio.audioNodes.spatialNode.output.connect(CiderAudio.audioNodes.atmosphereRealizer); - console.debug('[Cider][Audio] Vibrant Bass, CAP, Spatial, Atmosphere Realizer') - } - } - else { - app.cfg.audio.normalization = true - CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.atmosphereRealizer); - console.debug('[Cider][Audio] Vibrant Bass, CAP, Atmosphere Realizer') - } - } - - else { - if (app.cfg.audio.maikiwiAudio.spatial === true) { - if (app.cfg.audio.maikiwiAudio.spatial === true) { - app.cfg.audio.normalization = true - CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialNode); - CiderAudio.audioNodes.spatialNode.connect(CiderAudio.audioNodes.llpw[0]); - console.debug('[Cider][Audio] Vibrant Bass, CAP, Maikiwi Spatial') - } - else { - app.cfg.audio.normalization = true; - CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialInput.input); - CiderAudio.audioNodes.spatialNode.output.connect(CiderAudio.audioNodes.llpw[0]); - console.debug('[Cider][Audio] Vibrant Bass, CAP, Spatial') - } - } - else { - app.cfg.audio.normalization = true; - CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.llpw[0]); - console.debug('[Cider][Audio] Vibrant Bass, CAP') - } - } - } + switch (lastNode) { + case 'h2_4': + if (app.cfg.audio.maikiwiAudio.spatial === true) { + CiderAudio.audioNodes.spatialNode.connect(CiderAudio.audioNodes.atmosphereRealizer2); } else { - if (app.cfg.audio.maikiwiAudio.analogWarmth === true) { - CiderAudio.analogWarmth_h2_3(true, 2); - - if (app.cfg.audio.maikiwiAudio.atmosphereRealizer === true) { - CiderAudio.atmosphereRealizer_h2_4(true, 4); - - if (app.cfg.audio.maikiwiAudio.spatial === true) { - if (app.cfg.audio.maikiwiAudio.spatial === true) { - app.cfg.audio.normalization = true; - CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialNode); - CiderAudio.audioNodes.spatialNode.connect(CiderAudio.audioNodes.atmosphereRealizer); - console.debug('[Cider][Audio] Vibrant Bass, Analog Warmth, Maikiwi Spatial, Atmosphere Realizer') - } - else { - app.cfg.audio.normalization = true; - CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialInput.input); - CiderAudio.audioNodes.spatialNode.output.connect(CiderAudio.audioNodes.atmosphereRealizer); - console.debug('[Cider][Audio] Vibrant Bass, Analog Warmth, Spatial, Atmosphere Realizer') - } - } - else { - app.cfg.audio.normalization = true; - CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.atmosphereRealizer); - console.debug('[Cider][Audio] Vibrant Bass, Analog Warmth, Atmosphere Realizer') - } - } - - else { - if (app.cfg.audio.maikiwiAudio.spatial === true) { - if (app.cfg.audio.maikiwiAudio.spatial === true) { - app.cfg.audio.normalization = true; - CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialNode); - CiderAudio.audioNodes.spatialNode.connect(CiderAudio.audioNodes.analogWarmth[0]); - console.debug('[Cider][Audio] Vibrant Bass, Analog Warmth, Maikiwi Spatial') - } - else { - app.cfg.audio.normalization = true; - CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialInput.input); - CiderAudio.audioNodes.spatialNode.output.connect(CiderAudio.audioNodes.analogWarmth[0]); - console.debug('[Cider][Audio] Vibrant Bass, Analog Warmth, Spatial') - } - } - else { - app.cfg.audio.normalization = true; - CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.analogWarmth[0]); - console.debug('[Cider][Audio] Vibrant Bass, Analog Warmth') - } - } - - } - else { - if (app.cfg.audio.maikiwiAudio.atmosphereRealizer === true) { - CiderAudio.atmosphereRealizer_h2_4(true, 2); - - if (app.cfg.audio.maikiwiAudio.spatial === true) { - if (app.cfg.audio.maikiwiAudio.spatial === true) { - app.cfg.audio.normalization = true; - CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialNode); - CiderAudio.audioNodes.spatialNode.connect(CiderAudio.audioNodes.atmosphereRealizer); - console.debug('[Cider][Audio] Vibrant Bass, Maikiwi Spatial, Atmosphere Realizer') - } - else { - app.cfg.audio.normalization = true; - CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialInput.input); - CiderAudio.audioNodes.spatialNode.output.connect(CiderAudio.audioNodes.atmosphereRealizer); - console.debug('[Cider][Audio] Vibrant Bass, Spatial, Atmosphere Realizer') - } - } - else { - app.cfg.audio.normalization = true; - CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.atmosphereRealizer); - console.debug('[Cider][Audio] Vibrant Bass, Atmosphere Realizer') - } - } - - else { - if (app.cfg.audio.maikiwiAudio.spatial === true) { - if (app.cfg.audio.maikiwiAudio.spatial === true) { - app.cfg.audio.normalization = true; - CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialNode); - CiderAudio.audioNodes.spatialNode.connect(CiderAudio.audioNodes.vibrantbassNode[0]); - console.debug('[Cider][Audio] Vibrant Bass, Maikiwi Spatial') - } - else { - app.cfg.audio.normalization = true; - CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialInput.input); - CiderAudio.audioNodes.spatialNode.output.connect(CiderAudio.audioNodes.vibrantbassNode[0]); - console.debug('[Cider][Audio] Vibrant Bass, Spatial') - } - } - else { - CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.vibrantbassNode[0]); - console.debug('[Cider][Audio] Vibrant Bass') - } - } - } + CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.atmosphereRealizer2); + } + break; + case 'h2_3': + if (app.cfg.audio.maikiwiAudio.spatial === true) { + CiderAudio.audioNodes.spatialNode.connect(CiderAudio.audioNodes.atmosphereRealizer1); } - } - // Vibrant Bass ends here - else { - if (app.cfg.audio.maikiwiAudio.ciderPPE === true) { - CiderAudio.llpw_h2_2(true, 0); - - if (app.cfg.audio.maikiwiAudio.analogWarmth === true) { - CiderAudio.analogWarmth_h2_3(true, 3); - - if (app.cfg.audio.maikiwiAudio.atmosphereRealizer === true) { - CiderAudio.atmosphereRealizer_h2_4(true, 4); - - if (app.cfg.audio.maikiwiAudio.spatial === true) { - if (app.cfg.audio.maikiwiAudio.spatial === true) { - app.cfg.audio.normalization = true; - CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialNode); - CiderAudio.audioNodes.spatialNode.connect(CiderAudio.audioNodes.atmosphereRealizer); - console.debug('[Cider][Audio] CAP, Analog Warmth, Maikiwi Spatial, Atmosphere Realizer') - } - else { - app.cfg.audio.normalization = true; - CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialInput.input); - CiderAudio.audioNodes.spatialNode.output.connect(CiderAudio.audioNodes.atmosphereRealizer); - console.debug('[Cider][Audio] CAP, Analog Warmth, Spatial, Atmosphere Realizer') - } - } - else { - app.cfg.audio.normalization = true; - CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.atmosphereRealizer); - console.debug('[Cider][Audio] CAP and Analog Warmth, Atmosphere Realizer') - } - } - - else { - if (app.cfg.audio.maikiwiAudio.spatial === true) { - if (app.cfg.audio.maikiwiAudio.spatial === true) { - app.cfg.audio.normalization = true; - CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialNode); - CiderAudio.audioNodes.spatialNode.connect(CiderAudio.audioNodes.analogWarmth[0]); - console.debug('[Cider][Audio] CAP, Analog Warmth, Maikiwi Spatial') - } - else { - app.cfg.audio.normalization = true; - CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialInput.input); - CiderAudio.audioNodes.spatialNode.output.connect(CiderAudio.audioNodes.analogWarmth[0]); - console.debug('[Cider][Audio] CAP, Analog Warmth, Spatial') - } - } - else { - app.cfg.audio.normalization = true; - CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.analogWarmth[0]); - console.debug('[Cider][Audio] CAP and Analog Warmth') - } - } - } - else { - if (app.cfg.audio.maikiwiAudio.atmosphereRealizer === true) { - CiderAudio.atmosphereRealizer_h2_4(true, 3); - - if (app.cfg.audio.maikiwiAudio.spatial === true) { - if (app.cfg.audio.maikiwiAudio.spatial === true) { - app.cfg.audio.normalization = true; - CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialNode); - CiderAudio.audioNodes.spatialNode.connect(CiderAudio.audioNodes.atmosphereRealizer); - console.debug('[Cider][Audio] CAP, Maikiwi Spatial, Atmosphere Realizer') - } - else { - app.cfg.audio.normalization = true; - CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialInput.input); - CiderAudio.audioNodes.spatialNode.output.connect(CiderAudio.audioNodes.atmosphereRealizer); - console.debug('[Cider][Audio] CAP, Spatial, Atmosphere Realizer') - } - } - else { - app.cfg.audio.normalization = true; - CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.atmosphereRealizer); - console.debug('[Cider][Audio] CAP, Atmosphere Realizer') - } - } - - else { - if (app.cfg.audio.maikiwiAudio.spatial === true) { - if (app.cfg.audio.maikiwiAudio.spatial === true) { - app.cfg.audio.normalization = true; - CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialNode); - CiderAudio.audioNodes.spatialNode.connect(CiderAudio.audioNodes.llpw[0]); - console.debug('[Cider][Audio] CAP, Maikiwi Spatial') - } - else { - app.cfg.audio.normalization = true; - CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialInput.input); - CiderAudio.audioNodes.spatialNode.output.connect(CiderAudio.audioNodes.llpw[0]); - console.debug('[Cider][Audio] CAP, Spatial') - } - } - else { - app.cfg.audio.normalization = true; - CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.llpw[0]); - console.debug('[Cider][Audio] CAP') - } - } - } - } // CAP ends here else { - if (app.cfg.audio.maikiwiAudio.analogWarmth === true) { - CiderAudio.analogWarmth_h2_3(true, 0); - - if (app.cfg.audio.maikiwiAudio.atmosphereRealizer === true) { - CiderAudio.atmosphereRealizer_h2_4(true, 4); - - if (app.cfg.audio.maikiwiAudio.spatial === true) { - if (app.cfg.audio.maikiwiAudio.spatial === true) { - app.cfg.audio.normalization = true; - CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialNode); - CiderAudio.audioNodes.spatialNode.connect(CiderAudio.audioNodes.atmosphereRealizer); - console.debug('[Cider][Audio] Analog Warmth, Maikiwi Spatial, Atmosphere Realizer') - } - else { - app.cfg.audio.normalization = true; - CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialInput.input); - CiderAudio.audioNodes.spatialNode.output.connect(CiderAudio.audioNodes.atmosphereRealizer); - console.debug('[Cider][Audio] Analog Warmth, Spatial, Atmosphere Realizer') - } - } - else { - app.cfg.audio.normalization = true; - CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.atmosphereRealizer); - console.debug('[Cider][Audio] Analog Warmth, Atmosphere Realizer') - } - } - - else { - if (app.cfg.audio.maikiwiAudio.spatial === true) { - if (app.cfg.audio.maikiwiAudio.spatial === true) { - app.cfg.audio.normalization = true; - CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialNode); - CiderAudio.audioNodes.spatialNode.connect(CiderAudio.audioNodes.analogWarmth[0]); - console.debug('[Cider][Audio] Analog Warmth, Maikiwi Spatial') - } - else { - app.cfg.audio.normalization = true; - CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialInput.input); - CiderAudio.audioNodes.spatialNode.output.connect(CiderAudio.audioNodes.analogWarmth[0]); - console.debug('[Cider][Audio] Analog Warmth, Spatial') - } - } - else { - app.cfg.audio.normalization = true; - CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.analogWarmth[0]); - console.debug('[Cider][Audio] Analog Warmth') - } - } - } - else { - if (app.cfg.audio.maikiwiAudio.atmosphereRealizer === true) { - CiderAudio.atmosphereRealizer_h2_4(true, 0); - - if (app.cfg.audio.maikiwiAudio.spatial === true) { - if (app.cfg.audio.maikiwiAudio.spatial === true) { - app.cfg.audio.normalization = true; - CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialNode); - CiderAudio.audioNodes.spatialNode.connect(CiderAudio.audioNodes.atmosphereRealizer); - console.debug('[Cider][Audio] Maikiwi Spatial, Atmosphere Realizer') - } - else { - app.cfg.audio.normalization = true; - CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialInput.input); - CiderAudio.audioNodes.spatialNode.output.connect(CiderAudio.audioNodes.atmosphereRealizer); - console.debug('[Cider][Audio] Spatial, Atmosphere Realizer') - } - } - else { - app.cfg.audio.normalization = true; - CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.atmosphereRealizer); - console.debug('[Cider][Audio] Atmosphere Realizer') - } - } - else { - if (app.cfg.audio.maikiwiAudio.spatial === true) { - if (app.cfg.audio.maikiwiAudio.spatial === true) { - app.cfg.audio.normalization = true; - CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialNode); - CiderAudio.audioNodes.spatialNode.connect(CiderAudio.context.destination); - console.debug('[Cider][Audio] Maikiwi Spatial') - } - else { - app.cfg.audio.normalization = true; - CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialInput.input); - CiderAudio.audioNodes.spatialNode.output.connect(CiderAudio.context.destination); - console.debug('[Cider][Audio] Spatial') - } - } - else { - CiderAudio.audioNodes.gainNode.connect(CiderAudio.context.destination); - console.debug('[Cider][Audio] Literal Nothing') - } - } - } + CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.atmosphereRealizer1); + } + break; + case 'h2_2': + if (app.cfg.audio.maikiwiAudio.spatial === true) { + CiderAudio.audioNodes.spatialNode.connect(CiderAudio.audioNodes.llpw[0]); } - } + else { + CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.llpw[0]); + } + break; + case 'h2_1': + if (app.cfg.audio.maikiwiAudio.spatial === true) { + CiderAudio.audioNodes.spatialNode.connect(CiderAudio.audioNodes.vibrantbassNode[0]); + } + else { + CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.vibrantbassNode[0]); + } + break; + case 'h1': + if (app.cfg.audio.maikiwiAudio.spatial === true) { + CiderAudio.audioNodes.spatialNode.connect(CiderAudio.audioNodes.audioBands[0]); + } + else { + CiderAudio.audioNodes.spatialgainNodeNode.connect(CiderAudio.audioNodes.audioBands[0]); + } + break; + case 'h0': + if (app.cfg.audio.maikiwiAudio.spatial === true) { + CiderAudio.audioNodes.spatialNode.connect(CiderAudio.context.destination) + } + else { + CiderAudio.audioNodes.gainNode.connect(CiderAudio.context.destination); + } + break; } + + console.debug('[Cider][Audio]\n' + [...configMap.entries()] + '\n lastNode: ' + lastNode); + CiderAudio.intelliGainComp_h0_0(); console.debug("[Cider][Audio] Finished hierarchical loading"); @@ -1525,7 +774,7 @@ const CiderAudio = { } switch (hierarchy) { - case 0: + case 'h0': try { CiderAudio.audioNodes.audioBands[BANDS.length - 1].connect(CiderAudio.context.destination); } catch (e) { } diff --git a/src/renderer/audio/impulses/AtmosphereRealizer_NaturalHigh.wav b/src/renderer/audio/impulses/AtmosphereRealizer_NaturalHigh.wav deleted file mode 100644 index a7076d768c1a1975fedaff7ae927ef18d1cd5b07..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 29764 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 { - less.refresh(true, true, true) + ipcRenderer.on('theme-update', async (event, arg) => { + await less.refresh(true, true, true) self.setTheme(self.cfg.visual.theme, true) if (app.cfg.visual.styles.length != 0) { app.reloadStyles() @@ -828,8 +828,9 @@ const app = new Vue({ } }); - this.mk.addEventListener(MusicKit.Events.playbackStateDidChange, () => { + this.mk.addEventListener(MusicKit.Events.playbackStateDidChange, (event) => { ipcRenderer.send('wsapi-updatePlaybackState', wsapi.getAttributes()); + document.body.setAttribute("playback-state", event.state == 2 ? "playing" : "paused") }) this.mk.addEventListener(MusicKit.Events.playbackTimeDidChange, (a) => { @@ -887,8 +888,10 @@ const app = new Vue({ if (type.includes("musicVideo") || type.includes("uploadedVideo") || type.includes("music-movie")) { document.getElementById("apple-music-video-container").style.display = "block"; + document.body.setAttribute("video-playing", "true") // app.chrome.topChromeVisible = false } else { + document.body.removeAttribute("video-playing") document.getElementById("apple-music-video-container").style.display = "none"; // app.chrome.topChromeVisible = true } @@ -988,7 +991,7 @@ const app = new Vue({ document.querySelectorAll(`[id*='less']`).forEach(el => { el.remove() }); - less.refresh() + await less.refresh() } }, async reloadStyles() { @@ -1016,7 +1019,7 @@ const app = new Vue({ } }) less.registerStylesheetsImmediately() - less.refresh(true, true, true) + await less.refresh(true, true, true) this.$forceUpdate() return }, @@ -3869,12 +3872,14 @@ const app = new Vue({ el.play() }) document.querySelector("body").classList.remove("stopanimation") + document.body.setAttribute("focus-state", "focused") this.animateBackground = true } else { document.querySelectorAll(".animated-artwork-video").forEach(el => { el.pause() }) document.querySelector("body").classList.add("stopanimation") + document.body.setAttribute("focus-state", "blurred") this.animateBackground = false } }, diff --git a/src/renderer/style.css b/src/renderer/style.css index 3448d228..539bdcee 100644 --- a/src/renderer/style.css +++ b/src/renderer/style.css @@ -13192,3 +13192,18 @@ body[platform="linux"] #window-controls-container { #app.twopanel .collection-page .top-fab { bottom: 96px; } + + +.keybinds-page .md-option-header { + padding: 0px 0px; + border-bottom: unset; + border-top: unset; + font-weight: 600; + background: rgba(255, 255, 255, 0); + font-size: 2em; + } + +.content-inner.keybinds-page { + top: var(--navigationBarHeight); + padding: 15px; +} \ No newline at end of file diff --git a/src/renderer/style.less b/src/renderer/style.less index b24ce657..58517522 100644 --- a/src/renderer/style.less +++ b/src/renderer/style.less @@ -417,7 +417,7 @@ input[type=range].web-slider::-webkit-slider-runnable-track { position: absolute; right: 16px; top: 3%; - background: #1c1c1c8f; + background: var(--color2); border-radius: 12px; z-index: 10; height: 94%; @@ -875,17 +875,17 @@ input[type=range].web-slider::-webkit-slider-runnable-track { border-radius: 10px; left: 0px; background: var(--keyColor); - animation: expandIndicator .2s cubic-bezier(0.25, 1, 0.5, 1); + // animation: expandIndicator .2s cubic-bezier(0.25, 1, 0.5, 1); - @keyframes expandIndicator { - 0% { - transform: scaleY(0); - } + // @keyframes expandIndicator { + // 0% { + // transform: scaleY(0); + // } - 100% { - transform: scaleY(1); - } - } + // 100% { + // transform: scaleY(1); + // } + // } } .app-chrome { @@ -2885,38 +2885,40 @@ input[type="range"].web-slider.display--small::-webkit-slider-thumb { .wpfade_transform-enter-active, .wpfade_transform-leave-active { - --transitionTime: 0.2s; - transition: opacity var(--transitionTime) var(--appleEase), transform var(--transitionTime) var(--appleEase); - will-change: opacity, transform; + --transitionTime: 0.2s; + transition : opacity var(--transitionTime) var(--appleEase); + will-change : opacity, transform; } .wpfade_transform-enter { - opacity: 0; - transform: translateX(50%) translate3d(0,0,0); - will-change: opacity, transform; + opacity : 0; + transform : unset; + will-change: opacity; } + .wpfade_transform-leave-to { - opacity: 0; - transform: translateX(-50%) translate3d(0,0,0); - will-change: opacity, transform; + opacity : 0; + transform : unset; + will-change: opacity; } .wpfade_transform_backwards-enter-active, .wpfade_transform_backwards-leave-active { - --transitionTime: 0.2s; - transition: opacity var(--transitionTime) var(--appleEase), transform var(--transitionTime) var(--appleEase); + --transitionTime: 0.2s; + transition : opacity var(--transitionTime) var(--appleEase); } .wpfade_transform_backwards-enter { - opacity: 0; - transform: translateX(-50%) translate3d(0,0,0); - will-change: opacity, transform; + opacity : 0; + transform : unset; + will-change: opacity; } + .wpfade_transform_backwards-leave-to { - opacity: 0; - transform: translateX(50%) translate3d(0,0,0); - will-change: opacity, transform; + opacity : 0; + transform : unset; + will-change: opacity; } .fabfade-enter-active, @@ -2944,12 +2946,12 @@ input[type="range"].web-slider.display--small::-webkit-slider-thumb { .drawertransition-enter-active, .drawertransition-leave-active { - transition: right .25s var(--appleEase); + transition: transform .25s var(--appleEase); } .drawertransition-enter, .drawertransition-leave-to { - right: -300px; + transform: translateX(400px); } @media (prefers-color-scheme: dark) { @@ -3111,6 +3113,27 @@ body.no-gpu { } } + .floating-header { + background: black; + backdrop-filter: unset; + } + + .artworkContainer { + animation: unset!important; + opacity: 0.7; + } + + .info-rect-card { + &:before { + display: none; + } + } + + .menu-panel .menu-panel-body { + background: rgb(30 30 30); + backdrop-filter: unset; + } + #navigation-bar { backdrop-filter: unset; mix-blend-mode: unset; @@ -3342,6 +3365,20 @@ body[platform='darwin'] { display: none; } +.keybinds-page .md-option-header { + padding: 0px 0px; + border-bottom: unset; + border-top: unset; + font-weight: 600; + background: rgba(255, 255, 255, 0); + font-size: 2em; + } + +.content-inner.keybinds-page { + top: var(--navigationBarHeight); + padding: 15px; +} + @import url("less/macos.less"); @import url("less/linux.less"); @import url("less/compact.less"); diff --git a/src/renderer/themes/sweetener.less b/src/renderer/themes/sweetener.less index 79b76138..28c65ddd 100644 --- a/src/renderer/themes/sweetener.less +++ b/src/renderer/themes/sweetener.less @@ -86,4 +86,40 @@ &:active { } +} + +.wpfade_transform-enter-active, +.wpfade_transform-leave-active { + --transitionTime: 0.2s; + transition: opacity var(--transitionTime) var(--appleEase), transform var(--transitionTime) var(--appleEase); + will-change: opacity, transform; +} + +.wpfade_transform-enter { + opacity: 0; + transform: translateX(50%) translate3d(0,0,0); + will-change: opacity, transform; +} +.wpfade_transform-leave-to { + opacity: 0; + transform: translateX(-50%) translate3d(0,0,0); + will-change: opacity, transform; +} + + +.wpfade_transform_backwards-enter-active, +.wpfade_transform_backwards-leave-active { + --transitionTime: 0.2s; + transition: opacity var(--transitionTime) var(--appleEase), transform var(--transitionTime) var(--appleEase); +} + +.wpfade_transform_backwards-enter { + opacity: 0; + transform: translateX(-50%) translate3d(0,0,0); + will-change: opacity, transform; +} +.wpfade_transform_backwards-leave-to { + opacity: 0; + transform: translateX(50%) translate3d(0,0,0); + will-change: opacity, transform; } \ No newline at end of file diff --git a/src/renderer/views/app/app-content.ejs b/src/renderer/views/app/app-content.ejs index dfa1cb33..96e6b348 100644 --- a/src/renderer/views/app/app-content.ejs +++ b/src/renderer/views/app/app-content.ejs @@ -46,6 +46,11 @@ - + + + + \ No newline at end of file diff --git a/src/renderer/views/app/chrome-bottom.ejs b/src/renderer/views/app/chrome-bottom.ejs index e27a6e13..733b73e7 100644 --- a/src/renderer/views/app/chrome-bottom.ejs +++ b/src/renderer/views/app/chrome-bottom.ejs @@ -39,7 +39,8 @@