Merge branch 'develop' of https://github.com/Apple-Music-Electron/Cider into develop
This commit is contained in:
commit
3526d5326e
14 changed files with 190 additions and 57 deletions
38
.github/workflows/build-macos.yml
vendored
38
.github/workflows/build-macos.yml
vendored
|
@ -29,7 +29,7 @@ jobs:
|
||||||
runs-on: macos-11
|
runs-on: macos-11
|
||||||
permissions:
|
permissions:
|
||||||
actions: read
|
actions: read
|
||||||
contents: read
|
contents: write
|
||||||
security-events: write
|
security-events: write
|
||||||
|
|
||||||
strategy:
|
strategy:
|
||||||
|
@ -100,6 +100,25 @@ jobs:
|
||||||
- name: Add license to dmg
|
- name: Add license to dmg
|
||||||
run: |
|
run: |
|
||||||
npx dmg-license resources/license.json dist/*.dmg
|
npx dmg-license resources/license.json dist/*.dmg
|
||||||
|
|
||||||
|
- 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
|
||||||
|
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 --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
|
- name: Upload a Build Artifact
|
||||||
uses: actions/upload-artifact@v2.2.3
|
uses: actions/upload-artifact@v2.2.3
|
||||||
|
@ -107,5 +126,20 @@ jobs:
|
||||||
# Artifact name
|
# Artifact name
|
||||||
name: macOS
|
name: macOS
|
||||||
# A file, directory or wildcard pattern that describes what to upload
|
# 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.
|
# 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
|
|
@ -4,7 +4,7 @@
|
||||||
"i18n.languageName": "Deutsch", // name of language in native language
|
"i18n.languageName": "Deutsch", // name of language in native language
|
||||||
"i18n.languageNameEnglish": "German", // name of language in English
|
"i18n.languageNameEnglish": "German", // name of language in English
|
||||||
"i18n.category": "main", // main = real language, fun = fun community languages
|
"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 info
|
||||||
"app.name": "Cider",
|
"app.name": "Cider",
|
||||||
|
@ -46,7 +46,12 @@
|
||||||
"term.podcasts": "Podcasts",
|
"term.podcasts": "Podcasts",
|
||||||
"term.playlists": "Playlists",
|
"term.playlists": "Playlists",
|
||||||
"term.playlist": "Playlist",
|
"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.pause": "Pause",
|
||||||
"term.previous": "Zurück",
|
"term.previous": "Zurück",
|
||||||
"term.next": "Weiter",
|
"term.next": "Weiter",
|
||||||
|
@ -56,6 +61,7 @@
|
||||||
"term.mute": "Stummschalten",
|
"term.mute": "Stummschalten",
|
||||||
"term.unmute": "Stummschaltung aufheben",
|
"term.unmute": "Stummschaltung aufheben",
|
||||||
"term.share": "Teilen",
|
"term.share": "Teilen",
|
||||||
|
"term.share.success": "In die Zwischenablage kopiert",
|
||||||
"term.settings": "Einstellungen",
|
"term.settings": "Einstellungen",
|
||||||
"term.seeAll": "Alle Sehen",
|
"term.seeAll": "Alle Sehen",
|
||||||
"term.sortBy": "Sortieren nach",
|
"term.sortBy": "Sortieren nach",
|
||||||
|
@ -65,6 +71,7 @@
|
||||||
"term.sortBy.genre": "Genre",
|
"term.sortBy.genre": "Genre",
|
||||||
"term.sortBy.releaseDate": "Veröffentlichungsdatum",
|
"term.sortBy.releaseDate": "Veröffentlichungsdatum",
|
||||||
"term.sortBy.duration": "Länge",
|
"term.sortBy.duration": "Länge",
|
||||||
|
"term.sortBy.dateAdded": "Hinzugefügt am",
|
||||||
"term.sortOrder": "A-Z",
|
"term.sortOrder": "A-Z",
|
||||||
"term.sortOrder.ascending": "Aufsteigend",
|
"term.sortOrder.ascending": "Aufsteigend",
|
||||||
"term.sortOrder.descending": "Absteigend",
|
"term.sortOrder.descending": "Absteigend",
|
||||||
|
@ -82,12 +89,12 @@
|
||||||
"term.connecting": "Verbindet",
|
"term.connecting": "Verbindet",
|
||||||
"term.disconnect": "Trennen",
|
"term.disconnect": "Trennen",
|
||||||
"term.authed": "Autorisiert",
|
"term.authed": "Autorisiert",
|
||||||
"term.confirm": "Bestätigen ?",
|
"term.confirm": "Bestätigen?",
|
||||||
"term.more": "Mehr",
|
"term.more": "Mehr",
|
||||||
"term.less": "Weniger",
|
"term.less": "Weniger",
|
||||||
"term.showMore": "Zeige mehr",
|
"term.showMore": "Mehr anzeigen",
|
||||||
"term.showLess": "Zeige weniger",
|
"term.showLess": "Weniger anzeigen",
|
||||||
"term.topSongs" : "Top Songs",
|
"term.topSongs": "Top Songs",
|
||||||
"term.latestReleases": "Letzte Veröffentlichungen",
|
"term.latestReleases": "Letzte Veröffentlichungen",
|
||||||
"term.time.added": "Hinzugefügt",
|
"term.time.added": "Hinzugefügt",
|
||||||
"term.time.released": "Veröffentlicht",
|
"term.time.released": "Veröffentlicht",
|
||||||
|
@ -100,24 +107,48 @@
|
||||||
"term.time.second": "Sekunde",
|
"term.time.second": "Sekunde",
|
||||||
"term.fullscreenView": "Vollbildansicht",
|
"term.fullscreenView": "Vollbildansicht",
|
||||||
"term.defaultView": "Normale Ansicht",
|
"term.defaultView": "Normale Ansicht",
|
||||||
|
"term.audioSettings": "Audio-Einstellungen",
|
||||||
"term.spacializedAudioSetting": "Räumliches Audio",
|
"term.spacializedAudioSetting": "Räumliches Audio",
|
||||||
"term.clearAll": "Alle löschen",
|
"term.clearAll": "Alle löschen",
|
||||||
"term.recentStations": "Letzte Stationen",
|
"term.recentStations": "Letzte Sender",
|
||||||
"term.language": "Sprache",
|
"term.language": "Sprache",
|
||||||
"term.funLanguages": "Spaß",
|
"term.funLanguages": "Spaß",
|
||||||
"term.noLyrics": "Lädt... / Liedtext nicht gefunden./ Instrumental.",
|
"term.noLyrics": "Lädt... / Lyrik nicht gefunden./ Instrumental.",
|
||||||
"term.copyright": "Copyright",
|
"term.copyright": "Copyright",
|
||||||
"term.rightsReserved": "All Rights Reserved.",
|
"term.rightsReserved": "Alle Rechte vorbehalten.",
|
||||||
"term.sponsor": "Unterstütze dieses Projekt",
|
"term.sponsor": "Unterstütze dieses Projekt",
|
||||||
"term.ciderTeam": "Cider Team",
|
"term.ciderTeam": "Cider Team",
|
||||||
"term.developer": "Entwickler",
|
"term.developer": "Entwickler",
|
||||||
"term.socialTeam": "Social Team",
|
"term.socialTeam": "Social Team",
|
||||||
|
"term.socials": "Soziale Medien",
|
||||||
"term.contributors": "Mithelfer",
|
"term.contributors": "Mithelfer",
|
||||||
"term.equalizer": "Equalizer",
|
"term.equalizer": "Equalizer",
|
||||||
"term.reset": "Zurücksetzen",
|
"term.reset": "Zurücksetzen",
|
||||||
"term.tracks": "Lieder", // Assume x amount of tracks. e.g. 50 tracks
|
"term.tracks": "Lieder", // Assume x amount of tracks. e.g. 50 tracks
|
||||||
"term.videos": "Videos",
|
"term.videos": "Videos",
|
||||||
"term.menu": "Menü",
|
"term.menu": "Menü",
|
||||||
|
"term.check": "Nach Updates suchen",
|
||||||
|
"term.aboutArtist": "Über {{artistName}}", // e.g. 'About Doja Cat'
|
||||||
|
"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
|
||||||
"home.title": "Home",
|
"home.title": "Home",
|
||||||
|
@ -131,7 +162,7 @@
|
||||||
|
|
||||||
// Errors
|
// Errors
|
||||||
"error.appleMusicSubRequired": "Apple Music benötigt ein Abonnement.",
|
"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": "Keine Ergebnisse.",
|
||||||
"error.noResults.description": "Versuche einen anderen Suchbegriff.",
|
"error.noResults.description": "Versuche einen anderen Suchbegriff.",
|
||||||
|
|
||||||
|
@ -157,6 +188,7 @@
|
||||||
"action.removeFromQueue": "Aus Warteschlange entfernen",
|
"action.removeFromQueue": "Aus Warteschlange entfernen",
|
||||||
"action.removeFromQueue.success": "Aus Warteschlange entfernt",
|
"action.removeFromQueue.success": "Aus Warteschlange entfernt",
|
||||||
"action.removeFromQueue.error": "Fehler beim Entfernen aus der Warteschlange",
|
"action.removeFromQueue.error": "Fehler beim Entfernen aus der Warteschlange",
|
||||||
|
"action.createPlaylist": "Neue Playlist erstellen",
|
||||||
"action.addToPlaylist": "Zur Playlist hinzufügen",
|
"action.addToPlaylist": "Zur Playlist hinzufügen",
|
||||||
"action.removeFromPlaylist": "Aus Playlist entfernen",
|
"action.removeFromPlaylist": "Aus Playlist entfernen",
|
||||||
"action.addToFavorites": "Zu Favoriten hinzufügen",
|
"action.addToFavorites": "Zu Favoriten hinzufügen",
|
||||||
|
@ -184,7 +216,14 @@
|
||||||
"action.removeTracks": "Entferne ${self.selectedItems.length} Lieder aus der Warteschlange",
|
"action.removeTracks": "Entferne ${self.selectedItems.length} Lieder aus der Warteschlange",
|
||||||
"action.import": "Importieren",
|
"action.import": "Importieren",
|
||||||
"action.export": "Exportieren",
|
"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",
|
||||||
|
"action.copy": "Kopieren",
|
||||||
|
"action.newpreset": "Neues Preset", // Equalizer Preset
|
||||||
|
"action.deletepreset": "Preset löschen",
|
||||||
|
|
||||||
// Settings - General
|
// Settings - General
|
||||||
"settings.header.general": "Allgemein",
|
"settings.header.general": "Allgemein",
|
||||||
|
@ -197,21 +236,37 @@
|
||||||
"settings.option.general.language.unsorted": "Unsortiert",
|
"settings.option.general.language.unsorted": "Unsortiert",
|
||||||
|
|
||||||
// Update Cider
|
// 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 - Audio
|
||||||
"settings.header.audio": "Audio",
|
"settings.header.audio": "Audio",
|
||||||
"settings.header.audio.description": "Passe die Audio-Einstellungen für Cider an.",
|
"settings.header.audio.description": "Passe die Audio-Einstellungen für Cider an.",
|
||||||
"settings.option.audio.quality": "Audioqualität", // Dropdown
|
"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.high": "Hoch",
|
||||||
"settings.header.audio.quality.low": "Niedrig",
|
"settings.header.audio.quality.standard": "Standard",
|
||||||
"settings.header.audio.quality.auto": "Auto",
|
|
||||||
"settings.option.audio.seamlessTransition": "Nahtloser Audioübergang", // Toggle
|
"settings.option.audio.seamlessTransition": "Nahtloser Audioübergang", // Toggle
|
||||||
"settings.option.audio.enableAdvancedFunctionality": "Akiviere erweiterte Funktionalität", // 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.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": "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.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": "Räumliches Audio", // Toggle
|
||||||
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "Macht die Musik räumlicher (3D-Effekt) (Beachte: Dies ist kein Dolby Atmos)",
|
"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 - Visual
|
||||||
"settings.header.visual": "Visuell",
|
"settings.header.visual": "Visuell",
|
||||||
|
@ -235,8 +290,15 @@
|
||||||
"settings.option.visual.hardwareAcceleration.description": "Erfordert Neustart der Anwendung",
|
"settings.option.visual.hardwareAcceleration.description": "Erfordert Neustart der Anwendung",
|
||||||
"settings.header.visual.hardwareAcceleration.default": "Normal",
|
"settings.header.visual.hardwareAcceleration.default": "Normal",
|
||||||
"settings.header.visual.hardwareAcceleration.webGPU": "WebGPU",
|
"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 - Visual - Theme name
|
||||||
|
"settings.option.visual.theme.default": "Cider",
|
||||||
|
"settings.option.visual.theme.dark": "Dunkel",
|
||||||
|
|
||||||
// Refer to term.disabled for the disabled option
|
// Refer to term.disabled for the disabled option
|
||||||
"settings.option.visual.showPersonalInfo": "Persönliche Daten anzeigen", // Toggle
|
"settings.option.visual.showPersonalInfo": "Persönliche Daten anzeigen", // Toggle
|
||||||
|
@ -255,8 +317,8 @@
|
||||||
"settings.option.connectivity.discordRPC": "Discord Rich Presence", // Dropdown
|
"settings.option.connectivity.discordRPC": "Discord Rich Presence", // Dropdown
|
||||||
"settings.option.connectivity.playbackNotifications": "Wiedergabe-Benachrichtigungen", // Toggle
|
"settings.option.connectivity.playbackNotifications": "Wiedergabe-Benachrichtigungen", // Toggle
|
||||||
// Refer to term.disabled for the disabled option
|
// Refer to term.disabled for the disabled option
|
||||||
"settings.header.connectivity.discordRPC.cider": "Zeige als 'Cider'",
|
"settings.header.connectivity.discordRPC.cider": "'Cider' anzeigen",
|
||||||
"settings.header.connectivity.discordRPC.appleMusic": "Zeige als 'Apple Music'",
|
"settings.header.connectivity.discordRPC.appleMusic": "'Apple Music' anzeigen",
|
||||||
"settings.option.connectivity.discordRPC.clearOnPause": "Leere Discord Rich Presence wenn pausiert", // Toggle
|
"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": "LastFM Scrobbling", // Option to Connect
|
||||||
"settings.option.connectivity.lastfmScrobble.delay": "LastFM Scrobble Delay (%)",
|
"settings.option.connectivity.lastfmScrobble.delay": "LastFM Scrobble Delay (%)",
|
||||||
|
@ -269,34 +331,34 @@
|
||||||
"settings.header.experimental": "Experimentell",
|
"settings.header.experimental": "Experimentell",
|
||||||
"settings.header.experimental.description": "Passe die experimentellen Einstellungen für Cider an.",
|
"settings.header.experimental.description": "Passe die experimentellen Einstellungen für Cider an.",
|
||||||
"settings.option.experimental.compactUI": "Kompaktes UI", // Toggle
|
"settings.option.experimental.compactUI": "Kompaktes UI", // Toggle
|
||||||
"settings.option.experimental.closeButtonBehaviour": "Verhalten der Schließtaste",
|
"settings.option.experimental.close_button_hide": "Schließtaste soll die App verbergen",
|
||||||
"settings.option.experimental.closeButtonBehaviour.quit": "Cider Schließen",
|
"settings.option.experimental.copy_log": "Kopiere Logs in die Zwischenablage",
|
||||||
"settings.option.experimental.closeButtonBehaviour.minimizeTaskbar": "In Taskleiste minimieren",
|
"settings.option.experimental.inline_playlists": "Inline Playlists und Alben",
|
||||||
"settings.option.experimental.closeButtonBehaviour.minimizeTray": "In den Tray minimieren",
|
|
||||||
|
|
||||||
// Refer to term.disabled & term.enabled
|
// Refer to term.disabled & term.enabled
|
||||||
// Spatialization Menu
|
// Spatialization Menu
|
||||||
"spatial.spatialProperties" : "Räumliche Einstellungen",
|
"spatial.notTurnedOn": "Die Audio-Spatialisierung ist deaktiviert. Um sie zu verwenden, musst du diese zuerst aktivieren.",
|
||||||
"spatial.width" : "Breite",
|
"spatial.spatialProperties": "Räumliche Einstellungen",
|
||||||
"spatial.height" : "Höhe",
|
"spatial.width": "Breite",
|
||||||
"spatial.depth" : "Tiefe",
|
"spatial.height": "Höhe",
|
||||||
"spatial.gain" : "Gain",
|
"spatial.depth": "Tiefe",
|
||||||
"spatial.roomMaterials" : "Raummaterialien",
|
"spatial.gain": "Gain",
|
||||||
"spatial.roomDimensions" : "Raumabmessungen",
|
"spatial.roomMaterials": "Raummaterialien",
|
||||||
"spatial.roomPositions" : "Raumpositionen",
|
"spatial.roomDimensions": "Raumabmessungen",
|
||||||
"spatial.setDimensions" : "Setze Abmessungen",
|
"spatial.roomPositions": "Raumpositionen",
|
||||||
"spatial.setPositions" : "Setze Positionen",
|
"spatial.setDimensions": "Setze Abmessungen",
|
||||||
"spatial.up" : "Oben",
|
"spatial.setPositions": "Setze Positionen",
|
||||||
"spatial.front" : "Vorne",
|
"spatial.up": "Oben",
|
||||||
"spatial.left" : "Links",
|
"spatial.front": "Vorne",
|
||||||
"spatial.right" : "Rechts",
|
"spatial.left": "Links",
|
||||||
"spatial.back" : "Hinten",
|
"spatial.right": "Rechts",
|
||||||
"spatial.down" : "Unten",
|
"spatial.back": "Hinten",
|
||||||
"spatial.listener" : "Hörer*in",
|
"spatial.down": "Unten",
|
||||||
"spatial.audioSource" : "Audioquelle",
|
"spatial.listener": "Hörer*in",
|
||||||
|
"spatial.audioSource": "Audioquelle",
|
||||||
|
|
||||||
// Settings - Unfinished
|
// Settings - Unfinished
|
||||||
"settings.header.unfinished": "Unfertig",
|
"settings.header.unfinished": "Unvollendet",
|
||||||
|
|
||||||
// Web Remote
|
// Web Remote
|
||||||
"remote.web.title": "Cider Remote",
|
"remote.web.title": "Cider Remote",
|
||||||
|
|
|
@ -124,7 +124,12 @@
|
||||||
"term.contributors": "more pisseneers",
|
"term.contributors": "more pisseneers",
|
||||||
"term.equalizer": "advanced piss configuration",
|
"term.equalizer": "advanced piss configuration",
|
||||||
"term.reset": "repiss",
|
"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.videos": "piss videos",
|
||||||
"term.menu": "piss menu",
|
"term.menu": "piss menu",
|
||||||
"term.check": "piss!",
|
"term.check": "piss!",
|
||||||
|
@ -136,6 +141,8 @@
|
||||||
"term.addedpreset": "obtained prepiss",
|
"term.addedpreset": "obtained prepiss",
|
||||||
"term.deletepreset.warn": "are you sure you want to obliterate this prepiss?",
|
"term.deletepreset.warn": "are you sure you want to obliterate this prepiss?",
|
||||||
"term.deletedpreset": "obliterated prepiss",
|
"term.deletedpreset": "obliterated prepiss",
|
||||||
|
"term.defaultPresets": "default prepisses",
|
||||||
|
"term.userPresets": "your prepisses",
|
||||||
"term.requestError": "the request got pissed on",
|
"term.requestError": "the request got pissed on",
|
||||||
"term.song.link.generate": "pissing on piss.link…",
|
"term.song.link.generate": "pissing on piss.link…",
|
||||||
"term.musicVideos": "piss videos", // Search page friendlyTypes
|
"term.musicVideos": "piss videos", // Search page friendlyTypes
|
||||||
|
@ -146,6 +153,7 @@
|
||||||
"term.recordLabels": "piss labels",
|
"term.recordLabels": "piss labels",
|
||||||
"term.videoExtras": "extra piss videos",
|
"term.videoExtras": "extra piss videos",
|
||||||
"term.top": "topiss",
|
"term.top": "topiss",
|
||||||
|
"term.version": "pission",
|
||||||
|
|
||||||
// Home
|
// Home
|
||||||
"home.title": "piss central",
|
"home.title": "piss central",
|
||||||
|
@ -290,6 +298,10 @@
|
||||||
"settings.header.visual.hardwareAcceleration.default": "default piss",
|
"settings.header.visual.hardwareAcceleration.default": "default piss",
|
||||||
"settings.header.visual.hardwareAcceleration.webGPU": "WebPISS",
|
"settings.header.visual.hardwareAcceleration.webGPU": "WebPISS",
|
||||||
"settings.header.visual.theme": "colored piss",
|
"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 - Visual - Theme name
|
||||||
"settings.option.visual.theme.default": "same old piss",
|
"settings.option.visual.theme.default": "same old piss",
|
||||||
|
|
|
@ -127,10 +127,13 @@
|
||||||
"one" : "首歌曲",
|
"one" : "首歌曲",
|
||||||
"other" : "首歌曲"
|
"other" : "首歌曲"
|
||||||
},
|
},
|
||||||
|
"term.tracks": "首歌曲",
|
||||||
"term.videos": "影片",
|
"term.videos": "影片",
|
||||||
"term.menu": "選單",
|
"term.menu": "選單",
|
||||||
"term.check": "檢查",
|
"term.check": "檢查",
|
||||||
"term.aboutArtist": "關於{{artistName}}", // e.g. 'About Doja Cat'
|
"term.aboutArtist": "關於{{artistName}}", // e.g. 'About Doja Cat'
|
||||||
|
"term.requestError": "請求發生錯誤。",
|
||||||
|
"term.song.link.generate": "正在取得 song.link 的分享網址...",
|
||||||
"term.version": "版本",
|
"term.version": "版本",
|
||||||
|
|
||||||
// Home
|
// Home
|
||||||
|
@ -272,6 +275,10 @@
|
||||||
"settings.header.visual.hardwareAcceleration.default": "預設",
|
"settings.header.visual.hardwareAcceleration.default": "預設",
|
||||||
"settings.header.visual.hardwareAcceleration.webGPU": "WebGPU",
|
"settings.header.visual.hardwareAcceleration.webGPU": "WebGPU",
|
||||||
"settings.header.visual.theme": "主題",
|
"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 - Visual - Theme name
|
||||||
"settings.option.visual.theme.default": "Cider",
|
"settings.option.visual.theme.default": "Cider",
|
||||||
|
|
|
@ -217,11 +217,11 @@ export class BrowserWindow {
|
||||||
res.send("Stopped")
|
res.send("Stopped")
|
||||||
break;
|
break;
|
||||||
case "next":
|
case "next":
|
||||||
BrowserWindow.win.webContents.executeJavaScript("MusicKit.getInstance().skipToNextItem()")
|
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")
|
res.send("Next")
|
||||||
break;
|
break;
|
||||||
case "previous":
|
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")
|
res.send("Previous")
|
||||||
break;
|
break;
|
||||||
default: {
|
default: {
|
||||||
|
|
|
@ -182,11 +182,12 @@ export class wsapi {
|
||||||
response.message = "Unmuted";
|
response.message = "Unmuted";
|
||||||
break;
|
break;
|
||||||
case "next":
|
case "next":
|
||||||
this._win.webContents.executeJavaScript(`MusicKit.getInstance().skipToNextItem()`);
|
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";
|
response.message = "Next";
|
||||||
break;
|
break;
|
||||||
case "previous":
|
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";
|
response.message = "Previous";
|
||||||
break;
|
break;
|
||||||
case "musickit-api":
|
case "musickit-api":
|
||||||
|
|
|
@ -9,6 +9,7 @@ export default class DiscordRichPresence {
|
||||||
*/
|
*/
|
||||||
private static _store: any;
|
private static _store: any;
|
||||||
private _app : any;
|
private _app : any;
|
||||||
|
private _attributes : any;
|
||||||
private static _connection: boolean = false;
|
private static _connection: boolean = false;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -148,7 +149,7 @@ export default class DiscordRichPresence {
|
||||||
state: `${attributes.artistName ? `by ${attributes.artistName}` : ''}`,
|
state: `${attributes.artistName ? `by ${attributes.artistName}` : ''}`,
|
||||||
startTimestamp: attributes.startTime,
|
startTimestamp: attributes.startTime,
|
||||||
endTimestamp: attributes.endTime,
|
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,
|
largeImageText: attributes.albumName,
|
||||||
instance: false, // Whether the activity is in a game session
|
instance: false, // Whether the activity is in a game session
|
||||||
buttons: [
|
buttons: [
|
||||||
|
@ -217,9 +218,8 @@ export default class DiscordRichPresence {
|
||||||
})
|
})
|
||||||
.then(res => res.json())
|
.then(res => res.json())
|
||||||
.then(function(json){
|
.then(function(json){
|
||||||
self._activity['largeImageKey'] = json.url
|
self._attributes["artwork"]["url"] = json.url
|
||||||
console.log(json.url)
|
self.updateActivity(self._attributes)
|
||||||
self._client.setActivity(self._activity);
|
|
||||||
})
|
})
|
||||||
|
|
||||||
})
|
})
|
||||||
|
@ -237,6 +237,7 @@ export default class DiscordRichPresence {
|
||||||
* @param attributes Music Attributes (attributes.status = current state)
|
* @param attributes Music Attributes (attributes.status = current state)
|
||||||
*/
|
*/
|
||||||
onPlaybackStateDidChange(attributes: object): void {
|
onPlaybackStateDidChange(attributes: object): void {
|
||||||
|
this._attributes = attributes
|
||||||
this.updateActivity(attributes)
|
this.updateActivity(attributes)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -245,6 +246,7 @@ export default class DiscordRichPresence {
|
||||||
* @param attributes Music Attributes
|
* @param attributes Music Attributes
|
||||||
*/
|
*/
|
||||||
onNowPlayingItemDidChange(attributes: object): void {
|
onNowPlayingItemDidChange(attributes: object): void {
|
||||||
|
this._attributes = attributes
|
||||||
this.updateActivity(attributes)
|
this.updateActivity(attributes)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -127,11 +127,14 @@ const MusicKitInterop = {
|
||||||
},
|
},
|
||||||
|
|
||||||
next: () => {
|
next: () => {
|
||||||
MusicKit.getInstance().skipToNextItem().then(r => console.log(`[MusicKitInterop.next] Skipping to Next ${r}`));
|
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: () => {
|
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);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -597,6 +597,8 @@ const app = new Vue({
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
this.mk._bag.features['seamless-audio-transitions'] = this.cfg.audio.seamless_audio
|
||||||
|
|
||||||
// API Fallback
|
// API Fallback
|
||||||
if (!this.chrome.userinfo) {
|
if (!this.chrome.userinfo) {
|
||||||
this.chrome.userinfo = {
|
this.chrome.userinfo = {
|
||||||
|
@ -1348,7 +1350,7 @@ const app = new Vue({
|
||||||
app.mk.seekToTime(0);
|
app.mk.seekToTime(0);
|
||||||
} else {
|
} else {
|
||||||
app.prevButtonBackIndicator = false;
|
app.prevButtonBackIndicator = false;
|
||||||
app.mk.skipToPreviousItem()
|
app.skipToPreviousItem()
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
async getNowPlayingItemDetailed(target) {
|
async getNowPlayingItemDetailed(target) {
|
||||||
|
@ -3730,6 +3732,16 @@ const app = new Vue({
|
||||||
if (sellang.startsWith("en") && this.mk.storefrontId != "us") sellang = "en-gb"
|
if (sellang.startsWith("en") && this.mk.storefrontId != "us") sellang = "en-gb"
|
||||||
return await sellang
|
return await sellang
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
skipToNextItem(){
|
||||||
|
// app.mk.skipToNextItem() is buggy somehow so use this
|
||||||
|
if (this.mk.queue.nextPlayableItemIndex != -1 && this.mk.queue.nextPlayableItemIndex != null)
|
||||||
|
this.mk.changeToMediaAtIndex(this.mk.queue.nextPlayableItemIndex);
|
||||||
|
},
|
||||||
|
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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
|
@ -30,7 +30,7 @@
|
||||||
<button class="playback-button play" @click="mk.play()" v-else></button>
|
<button class="playback-button play" @click="mk.play()" v-else></button>
|
||||||
</div>
|
</div>
|
||||||
<div class="app-chrome-item display--large">
|
<div class="app-chrome-item display--large">
|
||||||
<button class="playback-button next" @click="mk.skipToNextItem()"></button>
|
<button class="playback-button next" @click="skipToNextItem()"></button>
|
||||||
</div>
|
</div>
|
||||||
<div class="app-chrome-item display--large">
|
<div class="app-chrome-item display--large">
|
||||||
<button class="playback-button--small repeat" v-if="mk.repeatMode == 0"
|
<button class="playback-button--small repeat" v-if="mk.repeatMode == 0"
|
||||||
|
|
|
@ -137,7 +137,7 @@
|
||||||
<button class="playback-button play" @click="mk.play()" v-else></button>
|
<button class="playback-button play" @click="mk.play()" v-else></button>
|
||||||
</div>
|
</div>
|
||||||
<div class="app-chrome-item">
|
<div class="app-chrome-item">
|
||||||
<button class="playback-button next" @click="mk.skipToNextItem()"></button>
|
<button class="playback-button next" @click="skipToNextItem()"></button>
|
||||||
</div>
|
</div>
|
||||||
<div class="app-chrome-item">
|
<div class="app-chrome-item">
|
||||||
<button class="playback-button--small repeat" v-if="mk.repeatMode == 0"
|
<button class="playback-button--small repeat" v-if="mk.repeatMode == 0"
|
||||||
|
|
|
@ -66,7 +66,7 @@
|
||||||
<button class="playback-button play" @click="app.mk.play()" v-else></button>
|
<button class="playback-button play" @click="app.mk.play()" v-else></button>
|
||||||
</div>
|
</div>
|
||||||
<div class="app-chrome-item">
|
<div class="app-chrome-item">
|
||||||
<button class="playback-button next" @click="app.mk.skipToNextItem()"></button>
|
<button class="playback-button next" @click="app.skipToNextItem()"></button>
|
||||||
</div>
|
</div>
|
||||||
<div class="app-chrome-item">
|
<div class="app-chrome-item">
|
||||||
<button class="playback-button--small repeat" v-if="app.mk.repeatMode == 0"
|
<button class="playback-button--small repeat" v-if="app.mk.repeatMode == 0"
|
||||||
|
|
|
@ -73,7 +73,7 @@
|
||||||
<button class="playback-button play" @click="app.mk.play()" v-else></button>
|
<button class="playback-button play" @click="app.mk.play()" v-else></button>
|
||||||
</div>
|
</div>
|
||||||
<div class="app-chrome-item">
|
<div class="app-chrome-item">
|
||||||
<button class="playback-button next" @click="app.mk.skipToNextItem()"></button>
|
<button class="playback-button next" @click="app.skipToNextItem()"></button>
|
||||||
</div>
|
</div>
|
||||||
<div class="app-chrome-item">
|
<div class="app-chrome-item">
|
||||||
<button class="playback-button--small repeat" v-if="app.mk.repeatMode == 0"
|
<button class="playback-button--small repeat" v-if="app.mk.repeatMode == 0"
|
||||||
|
|
|
@ -47,7 +47,7 @@
|
||||||
{{$root.getLz('settings.option.audio.seamlessTransition')}}
|
{{$root.getLz('settings.option.audio.seamlessTransition')}}
|
||||||
</div>
|
</div>
|
||||||
<div class="md-option-segment md-option-segment_auto">
|
<div class="md-option-segment md-option-segment_auto">
|
||||||
<input type="checkbox" v-model="app.cfg.audio.seamless_audio" switch/>
|
<input type="checkbox" v-model="app.cfg.audio.seamless_audio" v-on:change="app.mk._bag.features['seamless-audio-transitions'] = app.cfg.audio.seamless_audio" switch/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="md-option-line">
|
<div class="md-option-line">
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue