From 7573062823fb0001daa4983741cdb8ab7c5d1e82 Mon Sep 17 00:00:00 2001 From: SoNothing Date: Sun, 13 Feb 2022 14:39:44 +0800 Subject: [PATCH 01/18] en_PISS 2021-02-13 (#441) --- src/i18n/en_PISS.jsonc | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/i18n/en_PISS.jsonc b/src/i18n/en_PISS.jsonc index bb4b38b6..1cb5088f 100644 --- a/src/i18n/en_PISS.jsonc +++ b/src/i18n/en_PISS.jsonc @@ -124,7 +124,12 @@ "term.contributors": "more pisseneers", "term.equalizer": "advanced piss configuration", "term.reset": "repiss", - "term.tracks": "pisses", // Assume x amount of tracks. e.g. 50 tracks + // Example for multiple plural forms : look up the key for your language in https://github.com/prantlf/fast-plural-rules/blob/master/docs/languages.md#supported-languages + "term.track": { + "one" : "piss", + "other" : "pisses" + }, + // "term.tracks": "pisses", // Assume x amount of tracks. e.g. 50 tracks "term.videos": "piss videos", "term.menu": "piss menu", "term.check": "piss!", @@ -136,6 +141,8 @@ "term.addedpreset": "obtained prepiss", "term.deletepreset.warn": "are you sure you want to obliterate this prepiss?", "term.deletedpreset": "obliterated prepiss", + "term.defaultPresets": "default prepisses", + "term.userPresets": "your prepisses", "term.requestError": "the request got pissed on", "term.song.link.generate": "pissing on piss.link…", "term.musicVideos": "piss videos", // Search page friendlyTypes @@ -146,6 +153,7 @@ "term.recordLabels": "piss labels", "term.videoExtras": "extra piss videos", "term.top": "topiss", + "term.version": "pission", // Home "home.title": "piss central", @@ -290,6 +298,10 @@ "settings.header.visual.hardwareAcceleration.default": "default piss", "settings.header.visual.hardwareAcceleration.webGPU": "WebPISS", "settings.header.visual.theme": "colored piss", + "settings.option.visual.theme.github.download": "piss from PissHub URL", + "settings.prompt.visual.theme.github.URL": "piss on the URL for your colorful piss", + "settings.notyf.visual.theme.install.success": "colored piss obtained", + "settings.notyf.visual.theme.install.error": "colored piss got pissed on…", // Settings - Visual - Theme name "settings.option.visual.theme.default": "same old piss", From 46fadfb08789de04db7a6421d42f03a43e6f378a Mon Sep 17 00:00:00 2001 From: vapormusic Date: Sun, 13 Feb 2022 14:30:58 +0700 Subject: [PATCH 02/18] test --- .github/workflows/build-macos.yml | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build-macos.yml b/.github/workflows/build-macos.yml index 57654cfa..18413527 100644 --- a/.github/workflows/build-macos.yml +++ b/.github/workflows/build-macos.yml @@ -100,6 +100,17 @@ jobs: - name: Add license to dmg run: | npx dmg-license resources/license.json dist/*.dmg + + - name: Create PKG manually + uses: apple-actions/import-codesign-certs@v1 + with: + p12-file-base64: ${{ secrets.CSC_LINK }} + p12-password: ${{ secrets.CSC_KEY_PASSWORD }} + run: | + pkgbuild --component dist/mac-universal/Cider.app --install-location /Applications dist/Cider.pkg --sign ${{ secrets.PSC_NAME }} + xcrun altool --notarize-app --primary-bundle-id com.ciderapp.cider -f dist/Cider.pkg -p --username ${{ secrets.APPLEID }} --password ${{ secrets.APPLEIDPASS }} + sleep 5m + xcrun stapler staple dist/Cider.pkg || true - name: Upload a Build Artifact uses: actions/upload-artifact@v2.2.3 @@ -107,5 +118,7 @@ jobs: # Artifact name name: macOS # A file, directory or wildcard pattern that describes what to upload - path: dist/*.dmg + path: | + dist/*.dmg + dist/*.pkg # The desired behavior if no files are found using the provided path. From 16fcaa4ad3b0dfee019e77262b972b37735f0fff Mon Sep 17 00:00:00 2001 From: vapormusic Date: Sun, 13 Feb 2022 14:32:07 +0700 Subject: [PATCH 03/18] ok --- .github/workflows/build-macos.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build-macos.yml b/.github/workflows/build-macos.yml index 18413527..1aafadb9 100644 --- a/.github/workflows/build-macos.yml +++ b/.github/workflows/build-macos.yml @@ -101,11 +101,13 @@ jobs: run: | npx dmg-license resources/license.json dist/*.dmg - - name: Create PKG manually + - name: Import uses: apple-actions/import-codesign-certs@v1 with: p12-file-base64: ${{ secrets.CSC_LINK }} p12-password: ${{ secrets.CSC_KEY_PASSWORD }} + + - name: Create PKG manually run: | pkgbuild --component dist/mac-universal/Cider.app --install-location /Applications dist/Cider.pkg --sign ${{ secrets.PSC_NAME }} xcrun altool --notarize-app --primary-bundle-id com.ciderapp.cider -f dist/Cider.pkg -p --username ${{ secrets.APPLEID }} --password ${{ secrets.APPLEIDPASS }} From 2141d9aa0bb71c7a2c5941962c6b950094acf13a Mon Sep 17 00:00:00 2001 From: vapormusic Date: Sun, 13 Feb 2022 14:45:59 +0700 Subject: [PATCH 04/18] oof --- .github/workflows/build-macos.yml | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-macos.yml b/.github/workflows/build-macos.yml index 1aafadb9..3cc93651 100644 --- a/.github/workflows/build-macos.yml +++ b/.github/workflows/build-macos.yml @@ -107,10 +107,15 @@ jobs: p12-file-base64: ${{ secrets.CSC_LINK }} p12-password: ${{ secrets.CSC_KEY_PASSWORD }} - - name: Create PKG manually + - name: Create PKG manually + env: + CSC_LINK: ${{ secrets.CSC_LINK }} + CSC_KEY_PASSWORD: ${{ secrets.CSC_KEY_PASSWORD }} + APPLEID: ${{ secrets.APPLEID }} + APPLEIDPASS: ${{ secrets.APPLEIDPASS }} run: | pkgbuild --component dist/mac-universal/Cider.app --install-location /Applications dist/Cider.pkg --sign ${{ secrets.PSC_NAME }} - xcrun altool --notarize-app --primary-bundle-id com.ciderapp.cider -f dist/Cider.pkg -p --username ${{ secrets.APPLEID }} --password ${{ secrets.APPLEIDPASS }} + xcrun altool --notarize-app --primary-bundle-id com.ciderapp.cider -f dist/Cider.pkg --username ${{ secrets.APPLEID }} --password ${{ secrets.APPLEIDPASS }} sleep 5m xcrun stapler staple dist/Cider.pkg || true From ebd2a56efeb72244f3fbcc2d112849e54ba717c6 Mon Sep 17 00:00:00 2001 From: UnbreakCode Date: Thu, 10 Feb 2022 15:30:45 +0100 Subject: [PATCH 05/18] updated german language --- src/i18n/de_DE.jsonc | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/i18n/de_DE.jsonc b/src/i18n/de_DE.jsonc index 57c29597..1ce63562 100644 --- a/src/i18n/de_DE.jsonc +++ b/src/i18n/de_DE.jsonc @@ -46,7 +46,12 @@ "term.podcasts": "Podcasts", "term.playlists": "Playlists", "term.playlist": "Playlist", - "term.play": "Play", + "term.newPlaylist": "Neue Playlist", + "term.newPlaylistFolder": "Neuer Playlist-Ordner", + "term.createNewPlaylist": "Neue Playlist erstellen", + "term.createNewPlaylistFolder": "Neuen Playlist-Ordner erstellen", + "term.deletePlaylist": "Bist du sicher, dass du diese Playlist löschen willst?", + "term.play": "Wiedergabe", "term.pause": "Pause", "term.previous": "Zurück", "term.next": "Weiter", From e4e84ea5efdda5160bac3261cf579f0911e5af31 Mon Sep 17 00:00:00 2001 From: N0chteil <53608074+N0chteil@users.noreply.github.com> Date: Sat, 5 Feb 2022 12:57:11 +0100 Subject: [PATCH 07/18] Oops --- src/i18n/de_DE.jsonc | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/src/i18n/de_DE.jsonc b/src/i18n/de_DE.jsonc index 1ce63562..0b809b19 100644 --- a/src/i18n/de_DE.jsonc +++ b/src/i18n/de_DE.jsonc @@ -274,11 +274,7 @@ "settings.header.experimental": "Experimentell", "settings.header.experimental.description": "Passe die experimentellen Einstellungen für Cider an.", "settings.option.experimental.compactUI": "Kompaktes UI", // Toggle - "settings.option.experimental.closeButtonBehaviour": "Verhalten der Schließtaste", - "settings.option.experimental.closeButtonBehaviour.quit": "Cider Schließen", - "settings.option.experimental.closeButtonBehaviour.minimizeTaskbar": "In Taskleiste minimieren", - "settings.option.experimental.closeButtonBehaviour.minimizeTray": "In den Tray minimieren", - + "settings.option.experimental.close_button_hide": "Schließ-Taste soll die App verbergen", // Refer to term.disabled & term.enabled // Spatialization Menu "spatial.spatialProperties" : "Räumliche Einstellungen", From 1f1c6f60ffb659aaedc0c43fd8e767d10a208097 Mon Sep 17 00:00:00 2001 From: N0chteil <53608074+N0chteil@users.noreply.github.com> Date: Sat, 5 Feb 2022 12:50:28 +0100 Subject: [PATCH 08/18] Update de_DE.jsonc --- src/i18n/de_DE.jsonc | 73 +++++++++++++++++++++++++------------------- 1 file changed, 42 insertions(+), 31 deletions(-) diff --git a/src/i18n/de_DE.jsonc b/src/i18n/de_DE.jsonc index 0b809b19..bb99acd5 100644 --- a/src/i18n/de_DE.jsonc +++ b/src/i18n/de_DE.jsonc @@ -4,7 +4,7 @@ "i18n.languageName": "Deutsch", // name of language in native language "i18n.languageNameEnglish": "German", // name of language in English "i18n.category": "main", // main = real language, fun = fun community languages - "i18n.authors": "@motz0815", // Authors, if you contribute to this file feel free to add your name seperated with a space + "i18n.authors": "@motz0815 @n0chteil", // Authors, if you contribute to this file feel free to add your name seperated with a space // App info "app.name": "Cider", @@ -87,12 +87,12 @@ "term.connecting": "Verbindet", "term.disconnect": "Trennen", "term.authed": "Autorisiert", - "term.confirm": "Bestätigen ?", + "term.confirm": "Bestätigen?", "term.more": "Mehr", "term.less": "Weniger", - "term.showMore": "Zeige mehr", - "term.showLess": "Zeige weniger", - "term.topSongs" : "Top Songs", + "term.showMore": "Mehr anzeigen", + "term.showLess": "Weniger anzeigen", + "term.topSongs": "Top Songs", "term.latestReleases": "Letzte Veröffentlichungen", "term.time.added": "Hinzugefügt", "term.time.released": "Veröffentlicht", @@ -105,24 +105,29 @@ "term.time.second": "Sekunde", "term.fullscreenView": "Vollbildansicht", "term.defaultView": "Normale Ansicht", + "term.audioSettings": "Audio-Einstellungen", "term.spacializedAudioSetting": "Räumliches Audio", "term.clearAll": "Alle löschen", - "term.recentStations": "Letzte Stationen", + "term.recentStations": "Letzte Sender", "term.language": "Sprache", "term.funLanguages": "Spaß", - "term.noLyrics": "Lädt... / Liedtext nicht gefunden./ Instrumental.", + "term.noLyrics": "Lädt... / Lyrik nicht gefunden./ Instrumental.", "term.copyright": "Copyright", - "term.rightsReserved": "All Rights Reserved.", + "term.rightsReserved": "Alle Rechte vorbehalten.", "term.sponsor": "Unterstütze dieses Projekt", "term.ciderTeam": "Cider Team", "term.developer": "Entwickler", "term.socialTeam": "Social Team", + "term.socials": "Soziale Medien", "term.contributors": "Mithelfer", "term.equalizer": "Equalizer", "term.reset": "Zurücksetzen", "term.tracks": "Lieder", // Assume x amount of tracks. e.g. 50 tracks "term.videos": "Videos", "term.menu": "Menü", + "term.check": "Nach Updates suchen", + "term.aboutArtist": "Über {{artistName}}", // e.g. 'About Doja Cat' + "term.updateCider": "Cider aktualisieren", // Home "home.title": "Home", @@ -136,7 +141,7 @@ // Errors "error.appleMusicSubRequired": "Apple Music benötigt ein Abonnement.", - "error.connectionError": "Es ist ein Fehler aufgetreten, während sich mit Apple Music verbunden wurde.", + "error.connectionError": "Es gab ein Problem beim Verbinden mit Apple Music.", "error.noResults": "Keine Ergebnisse.", "error.noResults.description": "Versuche einen anderen Suchbegriff.", @@ -162,6 +167,7 @@ "action.removeFromQueue": "Aus Warteschlange entfernen", "action.removeFromQueue.success": "Aus Warteschlange entfernt", "action.removeFromQueue.error": "Fehler beim Entfernen aus der Warteschlange", + "action.createPlaylist": "Neue Playlist erstellen", "action.addToPlaylist": "Zur Playlist hinzufügen", "action.removeFromPlaylist": "Aus Playlist entfernen", "action.addToFavorites": "Zu Favoriten hinzufügen", @@ -189,7 +195,11 @@ "action.removeTracks": "Entferne ${self.selectedItems.length} Lieder aus der Warteschlange", "action.import": "Importieren", "action.export": "Exportieren", - "action.showAlbum": "Zeige ganzes Album", + "action.showAlbum": "Ganzes Album anzeigen", + "action.tray.minimize": "Zu Tray minimieren", + "action.tray.quit": "Beenden", + "action.tray.show": "{appName} anzeigen", + "action.update": "Update", // Settings - General "settings.header.general": "Allgemein", @@ -260,8 +270,8 @@ "settings.option.connectivity.discordRPC": "Discord Rich Presence", // Dropdown "settings.option.connectivity.playbackNotifications": "Wiedergabe-Benachrichtigungen", // Toggle // Refer to term.disabled for the disabled option - "settings.header.connectivity.discordRPC.cider": "Zeige als 'Cider'", - "settings.header.connectivity.discordRPC.appleMusic": "Zeige als 'Apple Music'", + "settings.header.connectivity.discordRPC.cider": "'Cider' anzeigen", + "settings.header.connectivity.discordRPC.appleMusic": "'Apple Music' anzeigen", "settings.option.connectivity.discordRPC.clearOnPause": "Leere Discord Rich Presence wenn pausiert", // Toggle "settings.option.connectivity.lastfmScrobble": "LastFM Scrobbling", // Option to Connect "settings.option.connectivity.lastfmScrobble.delay": "LastFM Scrobble Delay (%)", @@ -277,27 +287,28 @@ "settings.option.experimental.close_button_hide": "Schließ-Taste soll die App verbergen", // Refer to term.disabled & term.enabled // Spatialization Menu - "spatial.spatialProperties" : "Räumliche Einstellungen", - "spatial.width" : "Breite", - "spatial.height" : "Höhe", - "spatial.depth" : "Tiefe", - "spatial.gain" : "Gain", - "spatial.roomMaterials" : "Raummaterialien", - "spatial.roomDimensions" : "Raumabmessungen", - "spatial.roomPositions" : "Raumpositionen", - "spatial.setDimensions" : "Setze Abmessungen", - "spatial.setPositions" : "Setze Positionen", - "spatial.up" : "Oben", - "spatial.front" : "Vorne", - "spatial.left" : "Links", - "spatial.right" : "Rechts", - "spatial.back" : "Hinten", - "spatial.down" : "Unten", - "spatial.listener" : "Hörer*in", - "spatial.audioSource" : "Audioquelle", + "spatial.notTurnedOn": "Die Audio-Spatialisierung ist deaktiviert. Um sie zu verwenden, musst du diese zuerst aktivieren.", + "spatial.spatialProperties": "Räumliche Einstellungen", + "spatial.width": "Breite", + "spatial.height": "Höhe", + "spatial.depth": "Tiefe", + "spatial.gain": "Gain", + "spatial.roomMaterials": "Raummaterialien", + "spatial.roomDimensions": "Raumabmessungen", + "spatial.roomPositions": "Raumpositionen", + "spatial.setDimensions": "Setze Abmessungen", + "spatial.setPositions": "Setze Positionen", + "spatial.up": "Oben", + "spatial.front": "Vorne", + "spatial.left": "Links", + "spatial.right": "Rechts", + "spatial.back": "Hinten", + "spatial.down": "Unten", + "spatial.listener": "Hörer*in", + "spatial.audioSource": "Audioquelle", // Settings - Unfinished - "settings.header.unfinished": "Unfertig", + "settings.header.unfinished": "Unvollendet", // Web Remote "remote.web.title": "Cider Remote", From 5bbad406a7f8cd29c61393cc3499ef9adbd5b98d Mon Sep 17 00:00:00 2001 From: motz0815 Date: Sun, 13 Feb 2022 09:33:45 +0100 Subject: [PATCH 09/18] German translation updated with newest terms --- src/i18n/de_DE.jsonc | 58 +++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 54 insertions(+), 4 deletions(-) diff --git a/src/i18n/de_DE.jsonc b/src/i18n/de_DE.jsonc index bb99acd5..ec5deb48 100644 --- a/src/i18n/de_DE.jsonc +++ b/src/i18n/de_DE.jsonc @@ -61,6 +61,7 @@ "term.mute": "Stummschalten", "term.unmute": "Stummschaltung aufheben", "term.share": "Teilen", + "term.share.success": "In die Zwischenablage kopiert", "term.settings": "Einstellungen", "term.seeAll": "Alle Sehen", "term.sortBy": "Sortieren nach", @@ -70,6 +71,7 @@ "term.sortBy.genre": "Genre", "term.sortBy.releaseDate": "Veröffentlichungsdatum", "term.sortBy.duration": "Länge", + "term.sortBy.dateAdded": "Hinzugefügt am", "term.sortOrder": "A-Z", "term.sortOrder.ascending": "Aufsteigend", "term.sortOrder.descending": "Absteigend", @@ -127,7 +129,26 @@ "term.menu": "Menü", "term.check": "Nach Updates suchen", "term.aboutArtist": "Über {{artistName}}", // e.g. 'About Doja Cat' - "term.updateCider": "Cider aktualisieren", + "term.topResult": "Bestes Ergebnis", // Search Results + "term.sharedPlaylists": "Geteilte Playlists", // Search Results + "term.people": "Personen", // Search Results + "term.newpreset.name": "Neuer EQ-Preset Name", // Equalizer Preset + "term.addedpreset": "Preset erstellt", + "term.deletepreset.warn": "Bist du sicher, dass du dieses Preset löschen willst?", + "term.deletedpreset": "Preset gelöscht", + "term.defaultPresets": "Standard-Presets", + "term.userPresets": "Nutzer-Presets", + "term.requestError": "Es gab ein Problem bei der Anfrage.", + "term.song.link.generate": "song.link URL wird gesucht...", + "term.musicVideos": "Musikvideos", // Search page friendlyTypes + "term.stations": "Radiosender", + "term.curators": "Kuratoren", + "term.appleCurators": "Apple-Kuratoren", + "term.radioShows": "Radiosendungen", + "term.recordLabels": "Plattenfirma", + "term.videoExtras": "Video-Extras", + "term.top": "Beste", + "term.version": "Version", // Home "home.title": "Home", @@ -200,6 +221,9 @@ "action.tray.quit": "Beenden", "action.tray.show": "{appName} anzeigen", "action.update": "Update", + "action.copy": "Kopieren", + "action.newpreset": "Neues Preset", // Equalizer Preset + "action.deletepreset": "Preset löschen", // Settings - General "settings.header.general": "Allgemein", @@ -212,21 +236,37 @@ "settings.option.general.language.unsorted": "Unsortiert", // Update Cider + "settings.option.general.updateCider": "Cider updaten", // Button. Refer to term.check for the check button + "settings.option.general.updateCider.branch": "Update-Branch", // Dropdown + "settings.option.general.updateCider.branch.description": "Der Branch, von welchem Cider geupdatet werden soll", + "settings.option.general.updateCider.branch.main": "Stabil", + "settings.option.general.updateCider.branch.develop": "Entwicklung", // Settings - Audio "settings.header.audio": "Audio", "settings.header.audio.description": "Passe die Audio-Einstellungen für Cider an.", "settings.option.audio.quality": "Audioqualität", // Dropdown + "settings.header.audio.quality.hireslossless": "Hi-Res Lossless", + "settings.header.audio.quality.hireslossless.description": "bis zu 24-bit/192 kHz", + "settings.header.audio.quality.lossless": "Lossless", + "settings.header.audio.quality.lossless.description": "bis zu 24-bit/48 kHz", "settings.header.audio.quality.high": "Hoch", - "settings.header.audio.quality.low": "Niedrig", - "settings.header.audio.quality.auto": "Auto", + "settings.header.audio.quality.standard": "Standard", "settings.option.audio.seamlessTransition": "Nahtloser Audioübergang", // Toggle "settings.option.audio.enableAdvancedFunctionality": "Akiviere erweiterte Funktionalität", // Toggle "settings.option.audio.enableAdvancedFunctionality.description": "Das Aktivieren der erweiterten Funktionalität ermöglicht spezielle Features wie Audio-Normalisierung, Equalizer und Visualizer, jedoch könnte dies auf einigen Systemen zu Aussetzern in der Musik führen.", + "settings.option.audio.enableAdvancedFunctionality.ciderPPE": "Cider Adrenaline Processor™️", // Toggle + "settings.option.audio.enableAdvancedFunctionality.ciderPPE.description": "Psychoakustische Verbesserungen die die Musik lebensechter erscheinen lassen | Designed by Maikiwi.", + "settings.warn.audio.enableAdvancedFunctionality.ciderPPE.compatibility": "CAP ist nicht mit räumlichem Audio kompatibel. Bitte deaktiviere räumliches Audio zuerst.", + "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength": "CAP-Stärke", // Toggle + "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.description": "Ändert die Stärke der Nachbearbeitung. (Aggressiv könnte zu ungewünschten Änderungen führen)", + "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.standard": "Standard", + "settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.aggressive": "Aggressiv", "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "Audio-Normalisierung", // Toggle "settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "Normalisiert die Lautstärke aller Lieder, um die Hörerfahrung einheitlicher zu machen.", "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "Räumliches Audio", // Toggle "settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "Macht die Musik räumlicher (3D-Effekt) (Beachte: Dies ist kein Dolby Atmos)", + "settings.warn.audio.enableAdvancedFunctionality.audioSpatialization.compatibility": "Räumliches Audio ist nicht mit CAP kompatibel. Bitte deaktiviere CAP zuerst.", // Settings - Visual "settings.header.visual": "Visuell", @@ -250,8 +290,15 @@ "settings.option.visual.hardwareAcceleration.description": "Erfordert Neustart der Anwendung", "settings.header.visual.hardwareAcceleration.default": "Normal", "settings.header.visual.hardwareAcceleration.webGPU": "WebGPU", + "settings.header.visual.theme": "Theme", + "settings.option.visual.theme.github.download": "Von GitHub URL installieren", + "settings.prompt.visual.theme.github.URL": "Gib die URL des Themes ein, welches du installieren möchtest", + "settings.notyf.visual.theme.install.success": "Theme erfolgreich installiert", + "settings.notyf.visual.theme.install.error": "Theme-Installation fehlgeschlagen", // Settings - Visual - Theme name + "settings.option.visual.theme.default": "Cider", + "settings.option.visual.theme.dark": "Dunkel", // Refer to term.disabled for the disabled option "settings.option.visual.showPersonalInfo": "Persönliche Daten anzeigen", // Toggle @@ -284,7 +331,10 @@ "settings.header.experimental": "Experimentell", "settings.header.experimental.description": "Passe die experimentellen Einstellungen für Cider an.", "settings.option.experimental.compactUI": "Kompaktes UI", // Toggle - "settings.option.experimental.close_button_hide": "Schließ-Taste soll die App verbergen", + "settings.option.experimental.close_button_hide": "Schließtaste soll die App verbergen", + "settings.option.experimental.copy_log": "Kopiere Logs in die Zwischenablage", + "settings.option.experimental.inline_playlists": "Inline Playlists und Alben", + // Refer to term.disabled & term.enabled // Spatialization Menu "spatial.notTurnedOn": "Die Audio-Spatialisierung ist deaktiviert. Um sie zu verwenden, musst du diese zuerst aktivieren.", From 5c56dfbcc3e56971a4d926a5f6503a34bf778c24 Mon Sep 17 00:00:00 2001 From: vapormusic Date: Sun, 13 Feb 2022 17:24:01 +0700 Subject: [PATCH 10/18] rpc library images working now --- src/main/plugins/discordrpc.ts | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/main/plugins/discordrpc.ts b/src/main/plugins/discordrpc.ts index 49bb35df..3b11557e 100644 --- a/src/main/plugins/discordrpc.ts +++ b/src/main/plugins/discordrpc.ts @@ -9,6 +9,7 @@ export default class DiscordRichPresence { */ private static _store: any; private _app : any; + private _attributes : any; private static _connection: boolean = false; /** @@ -148,7 +149,7 @@ export default class DiscordRichPresence { state: `${attributes.artistName ? `by ${attributes.artistName}` : ''}`, startTimestamp: attributes.startTime, endTimestamp: attributes.endTime, - largeImageKey: attributes.artwork.url.replace('{w}', '1024').replace('{h}', '1024'), + largeImageKey: attributes?.artwork?.url?.replace('{w}', '1024').replace('{h}', '1024'), largeImageText: attributes.albumName, instance: false, // Whether the activity is in a game session buttons: [ @@ -217,9 +218,8 @@ export default class DiscordRichPresence { }) .then(res => res.json()) .then(function(json){ - self._activity['largeImageKey'] = json.url - console.log(json.url) - self._client.setActivity(self._activity); + self._attributes["artwork"]["url"] = json.url + self.updateActivity(self._attributes) }) }) @@ -237,6 +237,7 @@ export default class DiscordRichPresence { * @param attributes Music Attributes (attributes.status = current state) */ onPlaybackStateDidChange(attributes: object): void { + this._attributes = attributes this.updateActivity(attributes) } @@ -245,6 +246,7 @@ export default class DiscordRichPresence { * @param attributes Music Attributes */ onNowPlayingItemDidChange(attributes: object): void { + this._attributes = attributes this.updateActivity(attributes) } } From 317a56e4397fa5af9f1a41886ed00fd4bb0a98f8 Mon Sep 17 00:00:00 2001 From: vapormusic Date: Sun, 13 Feb 2022 17:51:58 +0700 Subject: [PATCH 11/18] mitigate skipping on some library songs --- src/main/base/wsapi.ts | 3 ++- src/preload/cider-preload.js | 4 +++- src/renderer/index.js | 5 +++++ src/renderer/views/app/sidebar.ejs | 2 +- src/renderer/views/components/fullscreen.ejs | 2 +- src/renderer/views/components/miniplayer.ejs | 2 +- 6 files changed, 13 insertions(+), 5 deletions(-) diff --git a/src/main/base/wsapi.ts b/src/main/base/wsapi.ts index 95d2b521..bbda8716 100644 --- a/src/main/base/wsapi.ts +++ b/src/main/base/wsapi.ts @@ -182,7 +182,8 @@ export class wsapi { response.message = "Unmuted"; break; case "next": - this._win.webContents.executeJavaScript(`MusicKit.getInstance().skipToNextItem()`); + this._win.webContents.executeJavaScript(`if (MusicKit.getInstance().queue.nextPlayableItemIndex != -1) { + MusicKit.getInstance().changeToMediaAtIndex(MusicKit.getInstance().queue.nextPlayableItemIndex);}`); response.message = "Next"; break; case "previous": diff --git a/src/preload/cider-preload.js b/src/preload/cider-preload.js index f6317878..7afff035 100644 --- a/src/preload/cider-preload.js +++ b/src/preload/cider-preload.js @@ -127,7 +127,9 @@ const MusicKitInterop = { }, next: () => { - MusicKit.getInstance().skipToNextItem().then(r => console.log(`[MusicKitInterop.next] Skipping to Next ${r}`)); + if (MusicKit.getInstance().queue.nextPlayableItemIndex != -1) + MusicKit.getInstance().changeToMediaAtIndex(MusicKit.getInstance().queue.nextPlayableItemIndex); + // MusicKit.getInstance().skipToNextItem().then(r => console.log(`[MusicKitInterop.next] Skipping to Next ${r}`)); }, previous: () => { diff --git a/src/renderer/index.js b/src/renderer/index.js index 08251c58..10cf8a22 100644 --- a/src/renderer/index.js +++ b/src/renderer/index.js @@ -3730,6 +3730,11 @@ const app = new Vue({ if (sellang.startsWith("en") && this.mk.storefrontId != "us") sellang = "en-gb" return await sellang } + }, + skipToNextItem(){ + // app.mk.skipToNextItem() is buggy somehow so use this + if (this.mk.queue.nextPlayableItemIndex != -1) + this.mk.changeToMediaAtIndex(this.mk.queue.nextPlayableItemIndex); } } }) diff --git a/src/renderer/views/app/sidebar.ejs b/src/renderer/views/app/sidebar.ejs index 7a7fae6f..4cae1592 100644 --- a/src/renderer/views/app/sidebar.ejs +++ b/src/renderer/views/app/sidebar.ejs @@ -137,7 +137,7 @@
- +
- +
- +
- +
- +
From 2dd6b452fd6bc89eb462f846b567e69adb30d24c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AE=A5=E5=8F=A1?= <46503943+jay900604@users.noreply.github.com> Date: Sun, 13 Feb 2022 20:07:53 +0800 Subject: [PATCH 14/18] Update zh_TW.jsonc Update TW language. --- src/i18n/zh_TW.jsonc | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/i18n/zh_TW.jsonc b/src/i18n/zh_TW.jsonc index 4a95a7ba..9eeb1792 100644 --- a/src/i18n/zh_TW.jsonc +++ b/src/i18n/zh_TW.jsonc @@ -127,10 +127,13 @@ "one" : "首歌曲", "other" : "首歌曲" }, + "term.tracks": "首歌曲", "term.videos": "影片", "term.menu": "選單", "term.check": "檢查", "term.aboutArtist": "關於{{artistName}}", // e.g. 'About Doja Cat' + "term.requestError": "請求發生錯誤。", + "term.song.link.generate": "正在取得 song.link 的分享網址...", "term.version": "版本", // Home From 942aa1b1b4676098437763fb8c7113084c7ce1c1 Mon Sep 17 00:00:00 2001 From: vapormusic Date: Sun, 13 Feb 2022 19:08:31 +0700 Subject: [PATCH 15/18] skipToPreviousItem bug mitigation --- src/main/base/browserwindow.ts | 4 ++-- src/main/base/wsapi.ts | 4 ++-- src/preload/cider-preload.js | 5 +++-- src/renderer/index.js | 9 +++++++-- 4 files changed, 14 insertions(+), 8 deletions(-) diff --git a/src/main/base/browserwindow.ts b/src/main/base/browserwindow.ts index 960dac7e..c62488e0 100644 --- a/src/main/base/browserwindow.ts +++ b/src/main/base/browserwindow.ts @@ -217,11 +217,11 @@ export class BrowserWindow { res.send("Stopped") break; case "next": - BrowserWindow.win.webContents.executeJavaScript("if (MusicKit.getInstance().queue.nextPlayableItemIndex != -1) {MusicKit.getInstance().changeToMediaAtIndex(MusicKit.getInstance().queue.nextPlayableItemIndex);}") + BrowserWindow.win.webContents.executeJavaScript("if (MusicKit.getInstance().queue.nextPlayableItemIndex != -1 && MusicKit.getInstance().queue.nextPlayableItemIndex != null) {MusicKit.getInstance().changeToMediaAtIndex(MusicKit.getInstance().queue.nextPlayableItemIndex);}") res.send("Next") break; case "previous": - BrowserWindow.win.webContents.executeJavaScript("MusicKit.getInstance().skipToPreviousItem()") + BrowserWindow.win.webContents.executeJavaScript("if (MusicKit.getInstance().queue.previousPlayableItemIndex != -1 && MusicKit.getInstance().queue.previousPlayableItemIndex != null) {MusicKit.getInstance().changeToMediaAtIndex(MusicKit.getInstance().queue.previousPlayableItemIndex);}") res.send("Previous") break; default: { diff --git a/src/main/base/wsapi.ts b/src/main/base/wsapi.ts index bbda8716..619a0ac6 100644 --- a/src/main/base/wsapi.ts +++ b/src/main/base/wsapi.ts @@ -182,12 +182,12 @@ export class wsapi { response.message = "Unmuted"; break; case "next": - this._win.webContents.executeJavaScript(`if (MusicKit.getInstance().queue.nextPlayableItemIndex != -1) { + this._win.webContents.executeJavaScript(`if (MusicKit.getInstance().queue.nextPlayableItemIndex != -1 && MusicKit.getInstance().queue.nextPlayableItemIndex != null) { MusicKit.getInstance().changeToMediaAtIndex(MusicKit.getInstance().queue.nextPlayableItemIndex);}`); response.message = "Next"; break; case "previous": - this._win.webContents.executeJavaScript(`MusicKit.getInstance().skipToPreviousItem()`); + this._win.webContents.executeJavaScript(`if (MusicKit.getInstance().queue.previousPlayableItemIndex != -1 && MusicKit.getInstance().queue.previousPlayableItemIndex != null) {MusicKit.getInstance().changeToMediaAtIndex(MusicKit.getInstance().queue.previousPlayableItemIndex)}`); response.message = "Previous"; break; case "musickit-api": diff --git a/src/preload/cider-preload.js b/src/preload/cider-preload.js index 7afff035..dea3f90c 100644 --- a/src/preload/cider-preload.js +++ b/src/preload/cider-preload.js @@ -127,13 +127,14 @@ const MusicKitInterop = { }, next: () => { - if (MusicKit.getInstance().queue.nextPlayableItemIndex != -1) + if (MusicKit.getInstance().queue.nextPlayableItemIndex != -1 && MusicKit.getInstance().queue.nextPlayableItemIndex != null) MusicKit.getInstance().changeToMediaAtIndex(MusicKit.getInstance().queue.nextPlayableItemIndex); // MusicKit.getInstance().skipToNextItem().then(r => console.log(`[MusicKitInterop.next] Skipping to Next ${r}`)); }, previous: () => { - MusicKit.getInstance().skipToPreviousItem().then(r => console.log(`[MusicKitInterop.previous] Skipping to Previous ${r}`)); + if (MusicKit.getInstance().queue.previousPlayableItemIndex != -1 && MusicKit.getInstance().queue.previousPlayableItemIndex != null) + MusicKit.getInstance().changeToMediaAtIndex(MusicKit.getInstance().queue.previousPlayableItemIndex); } } diff --git a/src/renderer/index.js b/src/renderer/index.js index 45822f53..2e0da967 100644 --- a/src/renderer/index.js +++ b/src/renderer/index.js @@ -1350,7 +1350,7 @@ const app = new Vue({ app.mk.seekToTime(0); } else { app.prevButtonBackIndicator = false; - app.mk.skipToPreviousItem() + app.skipToPreviousItem() } }, async getNowPlayingItemDetailed(target) { @@ -3735,8 +3735,13 @@ const app = new Vue({ }, skipToNextItem(){ // app.mk.skipToNextItem() is buggy somehow so use this - if (this.mk.queue.nextPlayableItemIndex != -1) + if (this.mk.queue.nextPlayableItemIndex != -1 && this.mk.queue.nextPlayableItemIndex != null) this.mk.changeToMediaAtIndex(this.mk.queue.nextPlayableItemIndex); + }, + skipToPreviousItem(){ + // app.mk.skipToPreviousItem() is buggy somehow so use this + if (this.mk.queue.previousPlayableItemIndex != -1 && this.mk.queue.previousPlayableItemIndex != null) + this.mk.changeToMediaAtIndex(this.mk.queue.previousPlayableItemIndex); } } }) From 6c4ad4f3bc58e5dab655a4f640a26dfa526ca651 Mon Sep 17 00:00:00 2001 From: vapormusic Date: Sun, 13 Feb 2022 19:57:53 +0700 Subject: [PATCH 16/18] my bad --- src/renderer/views/pages/settings.ejs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/renderer/views/pages/settings.ejs b/src/renderer/views/pages/settings.ejs index 148f02e1..25f22637 100644 --- a/src/renderer/views/pages/settings.ejs +++ b/src/renderer/views/pages/settings.ejs @@ -47,7 +47,7 @@ {{$root.getLz('settings.option.audio.seamlessTransition')}}
- +
From f49e8af3707e202b2d4a5b58f745e4e9e5e58dca Mon Sep 17 00:00:00 2001 From: vapormusic Date: Sun, 13 Feb 2022 20:49:26 +0700 Subject: [PATCH 17/18] gh release --- .github/workflows/build-macos.yml | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build-macos.yml b/.github/workflows/build-macos.yml index 3cc93651..5f72d294 100644 --- a/.github/workflows/build-macos.yml +++ b/.github/workflows/build-macos.yml @@ -29,7 +29,7 @@ jobs: runs-on: macos-11 permissions: actions: read - contents: read + contents: write security-events: write strategy: @@ -118,6 +118,7 @@ jobs: xcrun altool --notarize-app --primary-bundle-id com.ciderapp.cider -f dist/Cider.pkg --username ${{ secrets.APPLEID }} --password ${{ secrets.APPLEIDPASS }} sleep 5m xcrun stapler staple dist/Cider.pkg || true + mv dist/*.dmg dist/Cider.dmg - name: Upload a Build Artifact uses: actions/upload-artifact@v2.2.3 @@ -129,3 +130,16 @@ jobs: dist/*.dmg dist/*.pkg # The desired behavior if no files are found using the provided path. + - name: Release + uses: softprops/action-gh-release@v1 + with: + files: | + dist/Cider.dmg + dist/Cider.pkg + body: signed Develop MacOS Builds + name: macOS builds + tag_name: macos-beta + prerelease : true + generate_release_notes: true + append_body : false + fail_on_unmatched_files: false \ No newline at end of file From 1f2ae88fd7cf4c9abe147c630b53f246e62f38c5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AE=A5=E5=8F=A1?= <46503943+jay900604@users.noreply.github.com> Date: Sun, 13 Feb 2022 22:51:31 +0800 Subject: [PATCH 18/18] Update zh_TW.jsonc Update TW language. --- src/i18n/zh_TW.jsonc | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/i18n/zh_TW.jsonc b/src/i18n/zh_TW.jsonc index 9eeb1792..1d0cb872 100644 --- a/src/i18n/zh_TW.jsonc +++ b/src/i18n/zh_TW.jsonc @@ -275,6 +275,10 @@ "settings.header.visual.hardwareAcceleration.default": "預設", "settings.header.visual.hardwareAcceleration.webGPU": "WebGPU", "settings.header.visual.theme": "主題", + "settings.option.visual.theme.github.download" : "從 GitHub 連結安裝" , + "settings.prompt.visual.theme.github.URL" : "輸入你要安裝的主題連結" , + "settings.notyf.visual.theme.install.success" : "主題成功安裝" , + "settings.notyf.visual.theme.install.error" : "主題安裝失敗" , // Settings - Visual - Theme name "settings.option.visual.theme.default": "Cider",