diff --git a/src/i18n/en_HODOR.jsonc b/src/i18n/en_HODOR.jsonc new file mode 100644 index 00000000..fb2c5865 --- /dev/null +++ b/src/i18n/en_HODOR.jsonc @@ -0,0 +1,277 @@ +{ // HODOR + + // i18n Info + "i18n.languageName": "HODOR", // name of language in native language + "i18n.languageNameEnglish": "HODOR", // name of language in English + "i18n.category": "fun", // main = real language, fun = fun community languages + "i18n.authors": "HODOR", // Authors, if you contribute to this file feel free to add your name seperated with a space + + // App info + "app.name": "HODOR", + + "date.format": "${m} ${d}, ${y}", + + // Dialogs + "dialog.cancel": "HODOR", + "dialog.ok": "HODOR", + + // Notification + "notification.updatingLibrarySongs": "HODOR HODOR HODOR...", + "notification.updatingLibraryAlbums": "HODOR HODOR HODOR...", + "notification.updatingLibraryArtists": "HODOR HODOR HODOR...", + // Terms + "term.appleInc": "HODOR Inc.", + "term.appleMusic": "HODOR HODOR", + "term.applePodcasts": "HODOR HODOR", + "term.itunes": "HODOR", + "term.github": "HODOR", + "term.discord": "HODOR", + "term.learnMore": "HODOR HODOR", + "term.accountSettings": "HODOR HODOR", + "term.logout": "HODOR", + "term.login": "HODOR", + "term.about": "HODOR", + "term.privateSession": "HODOR HODOR", + "term.queue": "HODOR", + "term.search": "HODOR", + "term.library": "HODOR", + "term.listenNow": "HODOR HODOR", + "term.browse": "HODOR", + "term.radio": "HODOR", + "term.recentlyAdded": "HODOR HODOR", + "term.songs": "HODOR", + "term.albums": "HODOR", + "term.artists": "HODOR", + "term.podcasts": "HODOR", + "term.playlists": "HODOR", + "term.playlist": "HODOR", + "term.play": "HODOR", + "term.pause": "HODOR", + "term.previous": "HODOR", + "term.next": "HODOR", + "term.shuffle": "HODOR", + "term.repeat": "HODOR", + "term.volume": "HODOR", + "term.mute": "HODOR", + "term.unmute": "HODOR", + "term.share": "HODOR", + "term.settings": "HODOR", + "term.seeAll": "HODOR HODOR", + "term.sortBy": "HODOR HODOR", + "term.sortBy.album": "HODOR", + "term.sortBy.artist": "HODOR", + "term.sortBy.name": "HODOR", + "term.sortBy.genre": "HODOR", + "term.sortBy.releaseDate": "HODOR HODOR", + "term.sortBy.duration": "HODOR", + "term.sortOrder": "HODOR-HODOR", + "term.sortOrder.ascending": "HODOR", + "term.sortOrder.descending": "HODOR", + "term.viewAs": "HODOR HODOR", + "term.viewAs.coverArt": "HODOR HODOR", + "term.viewAs.list": "HODOR", + "term.size": "HODOR", + "term.size.normal": "HODOR", + "term.size.compact": "HODOR", + "term.enable": "HODOR", + "term.disable": "HODOR", + "term.enabled": "HODOR", + "term.disabled": "HODOR", + "term.connect": "HODOR", + "term.connecting": "HODOR", + "term.disconnect": "HODOR", + "term.authed": "HODOR", + "term.confirm": "HODOR ?", + "term.more": "HODOR", + "term.less": "HODOR", + "term.showMore": "HODOR HODOR", + "term.showLess": "HODOR HODOR", + "term.topSongs" : "HODOR HODOR", + "term.latestReleases": "HODOR HODOR", + "term.time.added": "HODOR", + "term.time.released": "HODOR", + "term.time.updated": "HODOR", + "term.fullscreenView": "HODOR HODOR", + "term.defaultView": "HODOR HODOR", + "term.spacializedAudioSetting": "HODOR HODOR HODOR", + "term.clearAll": "HODOR HODOR", + "term.recentStations": "HODOR HODOR", + "term.language": "HODOR", + "term.noLyrics": "HODOR... / HODOR HODOR HODOR./ HODOR.", + "term.copyright": "HODOR", + "term.rightsReserved": "HODOR HODOR HODOR.", + "term.sponsor": "HODOR HODOR HODOR", + "term.ciderTeam": "HODOR HODOR", + "term.developer": "HODOR", + "term.socialTeam": "HODOR HODOR", + "term.contributors": "HODOR", + "term.equalizer": "HODOR", + "term.reset": "HODOR", + "term.tracks": "HODOR", // Assume x amount of tracks. e.g. 50 tracks + + // Home + "home.title": "HODOR", + "home.recentlyPlayed": "HODOR HODOR", + "home.recentlyAdded": "HODOR HODOR", + "home.artistsFeed": "HODOR HODOR HODOR", + "home.artistsFeed.noArtist": "HODOR HODOR HODOR HODOR HODOR HODOR HODOR HODOR HODOR HODOR HODOR", + "home.madeForYou": "HODOR HODOR HODOR", + "home.friendsListeningTo": "HODOR HODOR HODOR", + "home.followedArtists": "HODOR HODOR", + // Errors + "error.appleMusicSubRequired": "HODOR HODOR HODOR HODOR HODOR.", + "error.connectionError": "HODOR HODOR HODOR HODOR HODOR HODOR HODOR HODOR.", + "error.noResults": "HODOR HODOR.", + "error.noResults.description": "HODOR HODOR HODOR HODOR.", + + //Podcasts + "podcast.followOnCider": "HODOR HODOR HODOR", + "podcast.followedOnCider": "HODOR HODOR HODOR", + "podcast.subscribeOnItunes": "HODOR HODOR HODOR", + "podcast.subscribedOnItunes": "HODOR HODOR HODOR", + "podcast.itunesStore": "HODOR HODOR", + "podcast.episodes": "HODOR", + "podcast.playEpisode": "HODOR HODOR", + "podcast.website": "HODOR HODOR", + + // Actions + "action.addToLibrary": "HODOR HODOR HODOR", + "action.addToLibrary.success": "HODOR HODOR HODOR", + "action.addToLibrary.error": "HODOR HODOR HODOR LiHODORbrary", + "action.removeFromLibrary": "HODOR HODOR HODOR", + "action.removeFromLibrary.success": "HODOR HODOR HODOR", + "action.addToQueue": "HODOR HODOR HODOR", + "action.addToQueue.success": "HODOR HODOR HODOR", + "action.addToQueue.error": "HODOR HODOR HODOR HODOR", + "action.removeFromQueue": "HODOR HODOR HODOR", + "action.removeFromQueue.success": "HODOR HODOR HODOR", + "action.removeFromQueue.error": "HODOR HODOR HODOR HODOR", + "action.addToPlaylist": "HODOR HODOR HODOR", + "action.removeFromPlaylist": "HODOR HODOR HODOR", + "action.addToFavorites": "HODOR HODOR HODOR", + "action.follow": "HODOR", + "action.follow.success": "HODOR", + "action.follow.error": "HODOR HODOR", + "action.unfollow": "HODOR", + "action.unfollow.success": "HODOR", + "action.unfollow.error": "HODOR HODOR", + "action.playNext": "HODOR HODOR", + "action.playLater": "HODOR HODOR", + "action.startRadio": "HODOR HODOR", + "action.goToArtist": "HODOR HODOR HODOR", + "action.goToAlbum": "HODOR HODOR HODOR", + "action.moveToTop": "HODOR HODOR HODOR", + "action.share": "HODOR", + "action.rename": "HODOR", + "action.love": "HODOR", + "action.unlove": "HODOR", + "action.dislike": "HODOR", + "action.undoDislike": "HODOR HODOR", + "action.showWebRemoteQR": "HODOR HODOR HODOR HODOR", + "action.playTracksNext": "HODOR ${app.selectedMediaItems.length} HODOR HODOR", + "action.playTracksLater": "HODOR ${app.selectedMediaItems.length} HODOR HODOR", + "action.removeTracks": "HODOR ${self.selectedItems.length} HODOR HODOR HODOR", + + // Settings - Audio + "settings.header.audio": "HODOR", + "settings.header.audio.description": "HODOR HODOR HODOR HODOR HODOR HODOR.", + "settings.option.audio.quality": "HODOR HODOR", // Dropdown + "settings.header.audio.quality.high": "HODOR.", + "settings.header.audio.quality.low": "HODOR!", + "settings.header.audio.quality.auto": "HODOR", + "settings.option.audio.seamlessTransition": "HODOR HODOR HODOR", // Toggle + "settings.option.audio.enableAdvancedFunctionality": "HODOR HODOR HODOR", // Toggle + "settings.option.audio.enableAdvancedFunctionality.description": "HODOR HODOR HODOR HODOR HODOR HODOR HODOR HODOR HODOR HODOR HODOR HODOR , HODOR HODOR HODOR, HODOR HODOR HODOR HODOR HODOR HODOR HODOR HODOR HODOR HODOR HODOR.", + "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "HODOR HODOR", // Toggle + "settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "HODOR HODOR HODOR HODOR HODOR HODOR HODOR HODOR HODOR HODOR HODOR HODOR HODOR.", + "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "HODOR HODOR", // Toggle + "settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "HODOR HODOR HODOR HODOR HODOR HODOR 3-HODOR (HODOR: HODOR HODOR HODOR HODOR HODOR)", + // Settings - Visual + "settings.header.visual": "HODOR", + "settings.header.visual.description": "HODOR HODOR HODOR HODOR HODOR HODOR.", + "settings.option.visual.windowBackgroundStyle": "HODOR HODOR HODOR", // Toggle + "settings.header.visual.windowBackgroundStyle.none": "HODOR", + "settings.header.visual.windowBackgroundStyle.artwork": "HODOR", + "settings.option.visual.animatedArtwork": "HODOR HODOR", // Dropdown + "settings.header.visual.animatedArtwork.always": "HODOR", + "settings.header.visual.animatedArtwork.limited": "HODOR HODOR HODOR HODOR HODOR HODOR", + "settings.header.visual.animatedArtwork.disable": "HODOR HODOR", + "settings.option.visual.animatedArtworkQuality": "HODOR HODOR HODOR", // Dropdown + "settings.header.visual.animatedArtworkQuality.low": "HODOR..", + "settings.header.visual.animatedArtworkQuality.medium": "HODOR.", + "settings.header.visual.animatedArtworkQuality.high": "HODOR!", + "settings.header.visual.animatedArtworkQuality.veryHigh": "HODOR HODOR!", + "settings.header.visual.animatedArtworkQuality.extreme": "HODOOOR!!", + "settings.option.visual.animatedWindowBackground": "HODOR HODOR HODOR", // Toggle + "settings.option.visual.hardwareAcceleration": "HODOR HODOR", // Dropdown + "settings.option.visual.hardwareAcceleration.description": "HODOR HODOR", + "settings.header.visual.hardwareAcceleration.default": "HODOR.", + "settings.header.visual.hardwareAcceleration.webGPU": "HODOR!!", + // Refer to term.disabled for the disabled option + "settings.option.visual.showPersonalInfo": "HODOR HODOR HODOR?", // Toggle + // Settings - General (Reserved) + "settings.header.general": "HODOR", + "settings.header.general.description": "HODOR HODOR HODOR HODOR HODOR HODOR.", + + // Settings - Lyrics + "settings.header.lyrics": "HODOR", + "settings.header.lyrics.description": "HODOR HODOR HODOR HODOR HODOR HODOR.", + "settings.option.lyrics.enableMusixmatch": "HODOR HODOR HODOR", // Toggle + "settings.option.lyrics.enableMusixmatchKaraoke": "HODOR HODOR HODOR (HODOR HODOR)", // Toggle + "settings.option.lyrics.musixmatchPreferredLanguage": "HODOR HODOR HODOR HODOR", // Dropdown + "settings.option.lyrics.enableYoutubeLyrics": "HODOR HODOR HODOR HODOR HODOR HODOR", // Toggle + + // Settings - Connectivity + "settings.header.connectivity": "HODOR", + "settings.header.connectivity.description": "HODOR HODOR HODOR HODOR HODOR HODOR.", + "settings.option.connectivity.discordRPC": "HODOR HODOR HODOR", // Dropdown + // Refer to term.disabled for the disabled option + "settings.header.connectivity.discordRPC.cider": "HODOR HODOR 'HODOR'", + "settings.header.connectivity.discordRPC.appleMusic": "HODOR HODOR 'HODOR HODOR'", + "settings.option.connectivity.discordRPC.clearOnPause": "HODOR HODOR HODOR HODOR HODOR HODOR", // Toggle + "settings.option.connectivity.lastfmScrobble": "HODOR HODOR", // Option to Connect + "settings.option.connectivity.lastfmScrobble.delay": "HODOR HODOR HODOR (%)", + "settings.option.connectivity.lastfmScrobble.nowPlaying": "HODOR HODOR HODOR HODOR", + "settings.option.connectivity.lastfmScrobble.removeFeatured": "HODOR HODOR HODOR HODOR HODOR HODOR (HODOR)", + "settings.option.connectivity.lastfmScrobble.filterLoop": "HODOR HODOR HODOR (HODOR)", + // Refer to term.connect for the connect button + + // Settings - Experimental + "settings.header.experimental": "HODOR", + "settings.header.experimental.description": "HODOR HODOR HODOR HODOR HODOR HODOR.", + "settings.option.experimental.compactUI": "HODOR UI", // Toggle + "settings.option.experimental.closeButtonBehaviour": "HODOR HODOR HODOR", + "settings.option.experimental.closeButtonBehaviour.quit": "HODOR HODOR", + "settings.option.experimental.closeButtonBehaviour.minimizeTaskbar": "HODOR HODOR HODOR", + "settings.option.experimental.closeButtonBehaviour.minimizeTray": "HODOR HODOR HODOR HODOR", + // Refer to term.disabled & term.enabled + + // Spatialization Menu + "spatial.spatialProperties" : "HODOR HODOR", + "spatial.width" : "HODOR", + "spatial.height" : "HODOR", + "spatial.depth" : "HODOR", + "spatial.roomMaterials" : "HODOR HODOR", + "spatial.roomDimensions" : "HODOR HODOR", + "spatial.roomPositions" : "HODOR HODOR", + "spatial.setDimensions" : "HODOR HODOR", + "spatial.setPositions" : "HODOR HODOR", + "spatial.up" : "HODOR", + "spatial.front" : "HODOR", + "spatial.left" : "HODOR", + "spatial.right" : "HODOR", + "spatial.back" : "HODOR", + "spatial.down" : "HODOR", + "spatial.listener" : "HODOR", + "spatial.audioSource" : "HODOR HODOR", + + // Settings - Unfinished + "settings.header.unfinished": "HODOR", + + // Web Remote + "remote.web.title": "HODOR HODOR", + "remote.web.description": "HODOR HODOR HODOR HODOR HODOR HODOR HODOR HODOR HODOR HODOR HODOR HODOR HODOR", + + //About + "about.thanks": "HODOR HODOR HODOR HODOR HODOR HODOR HODOR HODOR HODOR HODOR HODOR HODOR." +} \ No newline at end of file diff --git a/src/i18n/en_SGA.jsonc b/src/i18n/en_SGA.jsonc new file mode 100644 index 00000000..c5468e07 --- /dev/null +++ b/src/i18n/en_SGA.jsonc @@ -0,0 +1,279 @@ +{ + + // i18n Info + "i18n.languageName": "┤ᖋ|:ᖋᔮᒣ╎ᔮ ᖋ|:i!⍑ᖋᕊᒷᒣ", // name of language in native language + "i18n.languageNameEnglish": "Galactic Alphabet", // name of language in English + "i18n.category": "fun", // main = real language, fun = fun community languages + "i18n.authors": "@kyw504100", // Authors, if you contribute to this file feel free to add your name seperated with a space + + // App info + "app.name": "ᔮ╎↸ᒷ∷", + + "date.format": "${m} ${d}, ${y}", + + // Dialogs + "dialog.cancel": "ᔮᖋリᔮᒷ|:", + "dialog.ok": "ᒍ·ǀ·", + + // Notification + "notification.updatingLibrarySongs": "⚍i!↸ᖋᒣ╎リ┤ |:╎ᕊ∷ᖋ∷॥ ϟᒍリ┤ϟ...", + "notification.updatingLibraryAlbums": "⚍i!↸ᖋᒣ╎リ┤ |:╎ᕊ∷ᖋ∷॥ ᖋ|:ᕊ⚍ᒲϟ...", + "notification.updatingLibraryArtists": "⚍i!↸ᖋᒣ╎リ┤ |:╎ᕊ∷ᖋ∷॥ ᖋ∷ᒣ╎ϟᒣϟ...", + // Terms + "term.appleInc": "ᖋi!i!|:ᒷ ╎リᔮ.", + "term.appleMusic": "ᖋi!i!|:ᒷ ᒲ⚍ϟ╎ᔮ", + "term.applePodcasts": "ᖋi!i!|:ᒷ i!ᒍ↸ᔮᖋϟᒣϟ", + "term.itunes": "╎ᒣ⚍リᒷϟ", + "term.github": "┤╎ᒣ⍑⚍ᕊ", + "term.discord": "↸╎ϟᔮᒍ∷↸", + "term.learnMore": "|:ᒷᖋ∷リ ᒲᒍ∷ᒷ", + "term.accountSettings": "ᖋᔮᔮᒍ⚍リᒣ ϟᒷᒣᒣ╎リ┤ϟ", + "term.logout": "|:ᒍ┤ᒍ⚍ᒣ", + "term.login": "|:ᒍ┤╎リ", + "term.about": "ᖋᕊᒍ⚍ᒣ", + "term.privateSession": "I!∷╎⍊ᖋᒣᒷ ϟᒷϟϟ╎ᒍリ", + "term.queue": "ᑑ⚍ᒷ⚍ᒷ", + "term.search": "ϟᒷᖋ∷ᔮ⍑", + "term.library": "|:╎ᕊ∷ᖋ∷॥", + "term.listenNow": "|:╎ϟᒣᒷリ", + "term.browse": "リᒍ∴", + "term.radio": "∷ᖋ↸╎ᒍ", + "term.recentlyAdded": "∷ᒷᔮᒷリᒣ|:॥ ᖋ↸↸ᒷ↸", + "term.songs": "ϟᒍリ┤ϟ", + "term.albums": "ᖋ|:ᕊ⚍ᒲϟ", + "term.artists": "ᖋ∷ᒣ╎ϟᒣϟ", + "term.podcasts": "I!ᒍ↸ᔮᖋϟᒣϟ", + "term.playlists": "i!|:ᖋ॥|:╎ϟᒣϟ", + "term.playlist": "i!|:ᖋ॥|:╎ϟᒣ", + "term.play": "i!|:ᖋ॥", + "term.pause": "I!ᖋ⚍ϟᒷ", + "term.previous": "I!∷ᒷ⍊╎ᒍ⚍ϟ", + "term.next": "リᒷ/ᒣ", + "term.shuffle": "ϟ⍑⚍⎓⎓|:ᒷ", + "term.repeat": "∷ᒷi!ᒷᖋᒣ", + "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.sortOrder": "ᖋ-∩", + "term.sortOrder.ascending": "ᖋϟᔮᒷリ↸╎リ┤", + "term.sortOrder.descending": "↸ᒷϟᔮᒷリ↸╎リ┤", + "term.viewAs": "⍊╎ᒷ∴ ᖋϟ", + "term.viewAs.coverArt": "ᔮᒍ⍊ᒷ∷ ᖋ∷ᒣ", + "term.viewAs.list": "|:╎ϟᒣ", + "term.size": "ϟ╎∩ᒷ", + "term.size.normal": "リᒍ∷ᒲᖋ|:", + "term.size.compact": "ᔮᒍᒲi!ᖋᔮᒣ", + "term.enable": "ᒷリᖋᕊ|:ᒷ", + "term.disable": "↸╎ϟᖋᕊ|:ᒷ", + "term.enabled": "ᒷリᖋᕊ|:ᒷ↸", + "term.disabled": "↸╎ϟᖋᕊ|:ᒷ↸", + "term.connect": "ᔮᒍリリᒷᔮᒣ", + "term.connecting": "ᔮᒍリリᒷᔮᒣ╎リ┤", + "term.disconnect": "↸╎ϟᔮᒍリリᒷᔮᒣ", + "term.authed": "ᖋ⚍ᒣ⍑ᒷ↸", + "term.confirm": "ᔮᒍリ⎓╎∷ᒲ ?", + "term.more": "ᒲᒍ∷ᒷ", + "term.less": "|:ᒷϟϟ", + "term.showMore": "ϟ⍑ᒍ∴ ᒲᒍ∷ᒷ", + "term.showLess": "ϟ⍑ᒍ∴ |:ᒷϟϟ", + "term.topSongs" : "ᒣᒍi! ϟᒍリ┤ϟ", + "term.latestReleases": "|:ᖋᒣᒷϟᒣ ∷ᒷ|:ᒷᖋϟᒷϟ", + "term.time.added": "ᖋ↸↸ᒷ↸", + "term.time.released": "∷ᒷ|:ᒷᖋϟᒷ↸", + "term.time.updated": "⚍i!↸ᖋᒣᒷ↸", + "term.fullscreenView": "⎓⚍|:|:ϟᔮ∷ᒷᒷリ ⍊╎ᒷ∴", + "term.defaultView": "↸ᒷ⎓ᖋ⚍|:ᒣ ⍊╎ᒷ∴", + "term.spacializedAudioSetting": "ϟi!ᖋᔮ╎ᖋ|:╎∩ᒷ↸ ᖋ⚍↸╎ᒍ ϟᒷᒣᒣ╎リ┤", + "term.clearAll": "ᔮ|:ᒷᖋ∷ ᖋ|:|:", + "term.recentStations": "∷ᒷᔮᒷリᒣ ϟᒣᖋᒣ╎ᒍリϟ", + "term.language": "|:ᖋリ┤⚍ᖋ┤ᒷ", + "term.noLyrics": "|:ᒍᖋ↸╎リ┤... / |:॥∷╎ᔮϟ リᒍᒣ ⎓ᒍ⚍リ↸./ ╎リϟᒣ∷⚍ᒲᒷリᒣᖋ|:.", + "term.copyright": "ᔮᒍi!॥∷╎┤⍑ᒣ", + "term.rightsReserved": "ᖋ|:|: ∷╎┤⍑ᒣϟ ∷ᒷϟᒷ∷⍊ᒷ↸.", + "term.sponsor": "ϟi!ᒍリϟᒍ∷ ᒣ⍑╎ϟ i!∷ᒍ⋮ᒷᔮᒣ", + "term.ciderTeam": "ᔮ╎↸ᒷ∷ ᒣᒷᖋᒲ", + "term.developer": "↸ᒷ⍊ᒷ|:ᒍi!ᒷ∷", + "term.socialTeam": "ϟᒍᔮ╎ᖋ|: ᒣᒷᖋᒲ", + "term.contributors": "ᔮᒍリᒣ∷╎ᕊ⚍ᒣᒍ∷ϟ", + "term.equalizer": "ᒷᑑ⚍ᖋ|:╎∩ᒷ∷", + "term.reset": "∷ᒷϟᒷᒣ", + "term.tracks": "ᒣ∷ᖋᔮ·ǀ·ϟ", // Assume x amount of tracks. e.g. 50 tracks + + + // Home + "home.title": "⍑ᒍᒲᒷ", + "home.recentlyPlayed": "∷ᒷᔮᒷリᒣ|:॥ i!|:ᖋ॥ᒷ↸", + "home.recentlyAdded": "∷ᒷᔮᒷリᒣ|:॥ ᖋ↸↸ᒷ↸", + "home.artistsFeed": "॥ᒍ⚍∷ ᖋ∷ᒣ╎ϟᒣϟ ⎓ᒷᒷ↸", + "home.artistsFeed.noArtist": "⎓ᒍ|:|:ᒍ∴ ϟᒍᒲᒷ ᖋ∷ᒣ╎ϟᒣϟ ⎓╎∷ϟᒣ ᖋリ↸ ᒣ⍑ᒷ╎∷ |:ᖋᒣᒷϟᒣ ∷ᒷ|:ᒷᖋϟᒷϟ ∴╎|:|: ᕊᒷ ⍑ᒷ∷ᒷ", + "home.madeForYou": "ᒲᖋ↸ᒷ ⎓ᒍ∷ ॥ᒍ⚍", + "home.friendsListeningTo": "⎓∷╎ᒷリ↸ϟ |:╎ϟᒣᒷリ╎リ┤ ᒣᒍ", + "home.followedArtists": "⎓ᒍ|:|:ᒍ∴ᒷ↸ ᖋ∷ᒣ╎ϟᒣϟ", + // Errors + "error.appleMusicSubRequired": "ᖋi!i!|:ᒷ ᒲ⚍ϟ╎ᔮ ∷ᒷᑑ⚍╎∷ᒷϟ ᖋ ϟ⚍ᕊϟᔮ∷╎i!ᒣ╎ᒍリ.", + "error.connectionError": "ᒣ⍑ᒷ∷ᒷ ∴ᖋϟ ᖋ i!∷ᒍᕊ|:ᒷᒲ ᔮᒍリリᒷᔮᒣ╎リ┤ ᒣᒍ ᖋi!i!|:ᒷ ᒲ⚍ϟ╎ᔮ.", + "error.noResults": "リᒍ ∷ᒷϟ⚍|:ᒣϟ.", + "error.noResults.description": "ᒣ∷॥ ᖋ リᒷ∴ ϟᒷᖋ∷ᔮ⍑.", + + //Podcasts + "podcast.followOnCider": "⎓ᒍ|:|:ᒍ∴ ᒍリ ᔮ╎↸ᒷ∷", + "podcast.followedOnCider": "⎓ᒍ|:|:ᒍ∴╎リ┤ ᒍリ ᔮ╎↸ᒷ∷", + "podcast.subscribeOnItunes": "ϟ⚍ᕊϟᔮ∷╎ᕊᒷ ᒍリ ╎ᒣ⚍リᒷϟ", + "podcast.subscribedOnItunes": "ϟ⚍ᕊϟᔮ∷╎ᕊᒷ↸ ᒍリ ╎ᒣ⚍リᒷϟ", + "podcast.itunesStore": "╎ᒣ⚍リᒷϟ ϟᒣᒍ∷ᒷ", + "podcast.episodes": "ᒷi!╎ϟᒍ↸ᒷϟ", + "podcast.playEpisode": "i!|:ᖋ॥ ᒷi!╎ϟᒍ↸ᒷ", + "podcast.website": "I!ᒍ↸ᔮᖋϟᒣ ∴ᒷᕊϟ╎ᒣᒷ", + + // Actions + "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.addToPlaylist": "ᖋ↸↸ ᒣᒍ i!|:ᖋ॥|:╎ϟᒣ", + "action.removeFromPlaylist": "∷ᒷᒲᒍ⍊ᒷ ⎓∷ᒍᒲ i!|:ᖋ॥|:╎ϟᒣ", + "action.addToFavorites": "ᖋ↸↸ ᒣᒍ ⎓ᖋ⍊ᒍ∷╎ᒣᒷϟ", + "action.follow": "⎓ᒍ|:|:ᒍ∴", + "action.follow.success": "⎓ᒍ|:|:ᒍ∴ᒷ↸", + "action.follow.error": "ᒷ∷∷ᒍ∷ ⎓ᒍ|:|:ᒍ∴╎リ┤", + "action.unfollow": "⚍リ⎓ᒍ|:|:ᒍ∴", + "action.unfollow.success": "⚍リ⎓ᒍ|:|:ᒍ∴ᒷ↸", + "action.unfollow.error": "ᒷ∷∷ᒍ∷ ⚍リ⎓ᒍ|:|:ᒍ∴╎リ┤", + "action.playNext": "i!|:ᖋ॥ リᒷ/ᒣ", + "action.playLater": "i!|:ᖋ॥ |:ᖋᒣᒷ∷", + "action.startRadio": "ϟᒣᖋ∷ᒣ ∷ᖋ↸╎ᒍ", + "action.goToArtist": "┤ᒍ ᒣᒍ ᖋ∷ᒣ╎ϟᒣ", + "action.goToAlbum": "┤ᒍ ᒣᒍ ᖋ|:ᕊ⚍ᒲ", + "action.moveToTop": "ᒲᒍ⍊ᒷ ᒣᒍ ᒣᒍi!", + "action.share": "ϟ⍑ᖋ∷ᒷ", + "action.rename": "∷ᒷリᖋᒲᒷ", + "action.love": "|:ᒍ⍊ᒷ", + "action.unlove": "⚍リ|:ᒍ⍊ᒷ", + "action.dislike": "↸╎ϟ|:╎·ǀ·ᒷ", + "action.undoDislike": "⚍リ↸ᒍ ↸╎ϟ|:╎·ǀ·ᒷ", + "action.showWebRemoteQR": "ϟ⍑ᒍ∴ ∴ᒷᕊ ∷ᒷᒲᒍᒣᒷ ᑑ∷", + "action.playTracksNext": "i!|:ᖋ॥ ${app.selectedMediaItems.length} ᒣ∷ᖋᔮ·ǀ·ϟ リᒷ/ᒣ", + "action.playTracksLater": "i!|:ᖋ॥ ${app.selectedMediaItems.length} ᒣ∷ᖋᔮ·ǀ·ϟ |:ᖋᒣᒷ∷", + "action.removeTracks": "∷ᒷᒲᒍ⍊ᒷ ${self.selectedItems.length} ᒣ∷ᖋᔮ·ǀ·ϟ ⎓∷ᒍᒲ ᑑ⚍ᒷ⚍ᒷ", + + // Settings - Audio + "settings.header.audio": "ᖋ⚍↸╎ᒍ", + "settings.header.audio.description": "ᖋ↸⋮⚍ϟᒣ ᒣ⍑ᒷ ᖋ⚍↸╎ᒍ ϟᒷᒣᒣ╎リ┤ϟ ⎓ᒍ∷ ᔮ╎↸ᒷ∷.", + "settings.option.audio.quality": "ᖋ⚍↸╎ᒍ ᑑ⚍ᖋ|:╎ᒣ॥", // Dropdown + "settings.header.audio.quality.high": "⍑╎┤⍑", + "settings.header.audio.quality.low": "|:ᒍ∴", + "settings.header.audio.quality.auto": "ᖋ⚍ᒣᒍ", + "settings.option.audio.seamlessTransition": "ϟᒷᖋᒲ|:ᒷϟϟ ᖋ⚍↸╎ᒍ ᒣ∷ᖋリϟ╎ᒣ╎ᒍリ", // Toggle + "settings.option.audio.enableAdvancedFunctionality": "ᒷリᖋᕊ|:ᒷ ᖋ↸⍊ᖋリᔮᒷ↸ ⎓⚍リᔮᒣ╎ᒍリᖋ|:╎ᒣ॥", // Toggle + "settings.option.audio.enableAdvancedFunctionality.description": "ᒷリᖋᕊ|:╎リ┤ ᖋ⚍↸╎ᒍᔮᒍリᒣᒷ/ᒣ ⎓⚍リᔮᒣ╎ᒍリᖋ|:╎ᒣ॥ ∴╎|:|: ᖋ|:|:ᒍ∴ ⎓ᒍ∷ ᒷ/ᒣᒷリ↸ᒷ↸ ᖋ⚍↸╎ᒍ ⎓ᒷᖋᒣ⚍∷ᒷϟ |:╎·ǀ·ᒷ ᖋ⚍↸╎ᒍ リᒍ∷ᒲᖋ|:╎∩ᖋᒣ╎ᒍリ , ᒷᑑ⚍ᖋ|:╎∩ᒷ∷ϟ ᖋリ↸ ⍊╎ϟ⚍ᖋ|:╎∩ᒷ∷ϟ, ⍑ᒍ∴ᒷ⍊ᒷ∷ ᒍリ ϟᒍᒲᒷ ϟ॥ϟᒣᒷᒲϟ ᒣ⍑╎ϟ ᒲᖋ॥ ᔮᖋ⚍ϟᒷ ϟᒣ⚍ᒣᒣᒷ∷╎リ┤ ╎リ ᖋ⚍↸╎ᒍ ᒣ∷ᖋᔮ·ǀ·ϟ.", + "settings.option.audio.enableAdvancedFunctionality.audioNormalization": "ᖋ⚍↸╎ᒍ リᒍ∷ᒲᖋ|:╎∩ᖋᒣ╎ᒍリ", // Toggle + "settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "リᒍ∷ᒲᖋ|:╎∩ᒷϟ i!ᒷᖋ·ǀ· ⍊ᒍ|:⚍ᒲᒷ ⎓ᒍ∷ ╎リ↸╎⍊╎↸⚍ᖋ|: ᒣ∷ᖋᔮ·ǀ·ϟ ᒣᒍ ᔮ∷ᒷᖋᒣᒷ ᖋ ᒲᒍ∷ᒷ ⚍リ╎⎓ᒍ∷ᒲ |:╎ϟᒣᒷリ╎リ┤ ᒷ/i!ᒷ∷╎ᒷリᔮᒷ.", + "settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "ᖋ⚍↸╎ᒍ ϟi!ᖋᒣ╎ᖋ|:╎∩ᖋᒣ╎ᒍリ", // Toggle + "settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "ϟi!ᖋᒣ╎ᖋ|:╎∩ᒷ ᖋ⚍↸╎ᒍ ᖋリ↸ ᒲᖋ·ǀ·ᒷ ᖋ⚍↸╎ᒍ ᒲᒍ∷ᒷ 3-↸╎ᒲᒷリϟ╎ᒍリᖋ|: (リᒍᒣᒷ: ᒣ⍑╎ϟ ╎ϟ リᒍᒣ ↸ᒍ|:ᕊ॥ ᖋᒣᒲᒍϟ)", + // Settings - Visual + "settings.header.visual": "⍊╎ϟ⚍ᖋ|:", + "settings.header.visual.description": "ᖋ↸⋮⚍ϟᒣ ᒣ⍑ᒷ ⍊╎ϟ⚍ᖋ| ϟᒷᒣᒣ╎リ┤ϟ ⎓ᒍ∷ ᔮ╎↸ᒷ∷.", + "settings.option.visual.windowBackgroundStyle": "∴╎リ↸ᒍ∴ ᕊᖋᔮ·ǀ·┤∷ᒍ⚍リ↸ ϟᒣ॥|:ᒷ", // Toggle + "settings.header.visual.windowBackgroundStyle.none": "リᒍリᒷ", + "settings.header.visual.windowBackgroundStyle.artwork": "ᖋ∷ᒣ∴ᒍ∷·ǀ·", + "settings.option.visual.animatedArtwork": "ᖋリ╎ᒲᖋᒣᒷ↸ ᖋ∷ᒣ∴ᒍ∷·ǀ·", // Dropdown + "settings.header.visual.animatedArtwork.always": "ᖋ|:∴ᖋ॥ϟ", + "settings.header.visual.animatedArtwork.limited": "|:╎ᒲ╎ᒣᒷ↸ ᒣᒍ i!ᖋ┤ᒷϟ ᖋリ↸ ϟi!ᒷᔮ╎ᖋ|: ᒷリᒣ∷╎ᒷϟ", + "settings.header.visual.animatedArtwork.disable": "↸╎ϟᖋᕊ|:ᒷ ᒷ⍊ᒷ∷॥∴⍑ᒷ∷ᒷ", + "settings.option.visual.animatedArtworkQuality": "ᖋリ╎ᒲᖋᒣᒷ↸ ᖋ∷ᒣ∴ᒍ∷·ǀ· ᑑ⚍ᖋ|:╎ᒣ॥", // Dropdown + "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": "ᖋリ╎ᒲᖋᒣᒷ↸ ∴╎リ↸ᒍ∴ ᕊᖋᔮ·ǀ·┤∷ᒍ⚍リ↸", // Toggle + "settings.option.visual.hardwareAcceleration": "⍑ᖋ∷↸∴ᖋ∷ᒷ ᖋᔮᔮᒷ|:ᒷ∷ᖋᒣ╎ᒍリ", // Dropdown + "settings.option.visual.hardwareAcceleration.description": "∷ᒷᑑ⚍╎∷ᒷϟ ∷ᒷ|:ᖋ⚍リᔮ⍑", + "settings.header.visual.hardwareAcceleration.default": "↸ᒷ⎓ᖋ⚍|:ᒣ", + "settings.header.visual.hardwareAcceleration.webGPU": "∴ᒷᕊ┤i!⚍", + // Refer to term.disabled for the disabled option + "settings.option.visual.showPersonalInfo": "ϟ⍑ᒍ∴ i!ᒷ∷ϟᒍリᖋ|: ╎リ⎓ᒍ", // Toggle + // Settings - General (Reserved) + "settings.header.general": "┤ᒷリᒷ∷ᖋ|:", + "settings.header.general.description": "ᖋ↸⋮⚍ϟᒣ ᒣ⍑ᒷ ┤ᒷリᒷ∷ᖋ|: ϟᒷᒣᒣ╎リ┤ϟ ⎓ᒍ∷ ᔮ╎↸ᒷ∷.", + + // Settings - Lyrics + "settings.header.lyrics": "|:॥∷╎ᔮϟ", + "settings.header.lyrics.description": "ᖋ↸⋮⚍ϟᒣ ᒣ⍑ᒷ |:॥∷╎ᔮϟ ϟᒷᒣᒣ╎リ┤ϟ ⎓ᒍ∷ ᔮ╎↸ᒷ∷.", + "settings.option.lyrics.enableMusixmatch": "ᒷリᖋᕊ|:ᒷ ᒲ⚍ϟ╎̇/ᒲᖋᒣᔮ⍑ |:॥∷╎ᔮϟ", // Toggle + "settings.option.lyrics.enableMusixmatchKaraoke": "ᒷリᖋᕊ|:ᒷ ·ǀ·ᖋ∷ᖋᒍ·ǀ·ᒷ ᒲᒍ↸ᒷ (ᒲ⚍ϟ╎̇/ᒲᖋᒣᔮ⍑ ᒍリ|:॥)", // Toggle + "settings.option.lyrics.musixmatchPreferredLanguage": "ᒲ⚍ϟ╎̇/ᒲᖋᒣᔮ⍑ ᒣ∷ᖋリϟ|:ᖋᒣ╎ᒍリ i!∷ᒷ⎓ᒷ∷∷ᒷ↸ |:ᖋリ┤⚍ᖋ┤ᒷ", // Dropdown + "settings.option.lyrics.enableYoutubeLyrics": "ᒷリᖋᕊ|:ᒷ ॥ᒍ⚍ᒣ⚍ᕊᒷ |:॥∷╎ᔮϟ ⎓ᒍ∷ ᒲ⚍ϟ╎ᔮ ⍊╎↸ᒷᒍϟ", // Toggle + + // Settings - Connectivity + "settings.header.connectivity": "ᔮᒍリリᒷᔮᒣ╎⍊╎ᒣ॥", + "settings.header.connectivity.description": "ᖋ↸⋮⚍ϟᒣ ᒣ⍑ᒷ ᔮᒍリリᒷᔮᒣ╎⍊╎ᒣ॥ ϟᒷᒣᒣ╎リ┤ϟ ⎓ᒍ∷ ᔮ╎↸ᒷ∷.", + "settings.option.connectivity.discordRPC": "↸╎ϟᔮᒍ∷↸ ∷╎ᔮ⍑ i!∷ᒷϟᒷリᔮᒷ", // Dropdown + // Refer to term.disabled for the disabled option + "settings.header.connectivity.discordRPC.cider": "↸╎ϟi!|:ᖋ॥ ᖋϟ 'ᔮ╎↸ᒷ∷'", + "settings.header.connectivity.discordRPC.appleMusic": "↸╎ϟi!|:ᖋ॥ ᖋϟ 'ᖋi!i!|:ᒷ ᒲ⚍ϟ╎ᔮ'", + "settings.option.connectivity.discordRPC.clearOnPause": "ᔮ|:ᒷᖋ∷ ↸╎ϟᔮᒍ∷↸ ∷╎ᔮ⍑ i!∷ᒷϟᒷリᔮᒷ ᒍリ i!ᖋ⚍ϟᒷ", // Toggle + "settings.option.connectivity.lastfmScrobble": "|:ᖋϟᒣ⎓ᒲ ϟᔮ∷ᒍᕊᕊ|:╎リ┤", // Option to Connect + "settings.option.connectivity.lastfmScrobble.delay": "|:ᖋϟᒣ⎓ᒲ ϟᔮ∷ᒍᕊᕊ|:ᒷ ↸ᒷ|:ᖋ॥ (%)", + "settings.option.connectivity.lastfmScrobble.nowPlaying": "ᒷリᖋᕊ|:ᒷ |:ᖋϟᒣ⎓ᒲ リᒍ∴ i!|:ᖋ॥╎リ┤", + "settings.option.connectivity.lastfmScrobble.removeFeatured": "∷ᒷᒲᒍ⍊ᒷ ⎓ᒷᖋᒣ⚍∷╎リ┤ ᖋ∷ᒣ╎ϟᒣϟ ⎓∷ᒍᒲ ϟᒍリ┤ ᒣ╎ᒣ|:ᒷ (|:ᖋϟᒣ⎓ᒲ)", + "settings.option.connectivity.lastfmScrobble.filterLoop": "⎓╎|:ᒣᒷ∷ |:ᒍᒍi!ᒷ↸ ᒣ∷ᖋᔮ·ǀ· (|:ᖋϟᒣ⎓ᒲ)", + // Refer to term.connect for the connect button + + // Settings - Experimental + "settings.header.experimental": "ᒷ/i!ᒷ∷╎ᒲᒷリᒣᖋ|:", + "settings.header.experimental.description": "ᖋ↸⋮⚍ϟᒣ ᒣ⍑ᒷ ᒷ/i!ᒷ∷╎ᒲᒷリᒣᖋ|: ϟᒷᒣᒣ╎リ┤ϟ ⎓ᒍ∷ ᔮ╎↸ᒷ∷.", + "settings.option.experimental.compactUI": "ᔮᒍᒲi!ᖋᔮᒣ ⚍╎", // Toggle + "settings.option.experimental.closeButtonBehaviour": "ᔮ|:ᒍϟᒷ ᕊ⚍ᒣᒣᒍリ ᕊᒷ⍑ᖋ⍊╎ᒍ⚍∷", + "settings.option.experimental.closeButtonBehaviour.quit": "ᑑ⚍╎ᒣ ᔮ╎↸ᒷ∷", + "settings.option.experimental.closeButtonBehaviour.minimizeTaskbar": "ᒲ╎リ╎ᒲ╎∩ᒷ ᒣᒍ ᒣᖋϟ·ǀ·ᕊᖋ∷", + "settings.option.experimental.closeButtonBehaviour.minimizeTray": "ᒲ╎リ╎ᒲ╎∩ᒷ ᒣᒍ ϟ॥ϟᒣᒷᒲ ᒣ∷ᖋ॥", + // Refer to term.disabled & term.enabled + + // Spatialization Menu + "spatial.spatialProperties" : "ϟi!ᖋᒣ╎ᖋ|: i!∷ᒍi!ᒷ∷ᒣ╎ᒷϟ", + "spatial.width" : "∴╎↸ᒣ⍑", + "spatial.height" : "⍑ᒷ╎┤⍑ᒣ", + "spatial.depth" : "↸ᒷi!ᒣ⍑", + "spatial.gain" : "┤ᖋ╎リ", + "spatial.roomMaterials" : "∷ᒍᒍᒲ ᒲᖋᒣᒷ∷╎ᖋ|:ϟ", + "spatial.roomDimensions" : "∷ᒍᒍᒲ ↸╎ᒲᒷリϟ╎ᒍリϟ", + "spatial.roomPositions" : "∷ᒍᒍᒲ i!ᒍϟ╎ᒣ╎ᒍリϟ", + "spatial.setDimensions" : "ϟᒷᒣ ↸╎ᒲᒷリϟ╎ᒍリϟ", + "spatial.setPositions" : "ϟᒷᒣ i!ᒍϟ╎ᒣ╎ᒍリϟ", + "spatial.up" : "⚍i!", + "spatial.front" : "⎓∷ᒍリᒣ", + "spatial.left" : "|:ᒷ⎓ᒣ", + "spatial.right" : "∷╎┤⍑ᒣ", + "spatial.back" : "ᕊᖋᔮ·ǀ·", + "spatial.down" : "↸ᒍ∴リ", + "spatial.listener" : "|:╎ϟᒣᒷリᒷ∷", + "spatial.audioSource" : "ᖋ⚍↸╎ᒍ ϟᒍ⚍∷ᔮᒷ", + + // Settings - Unfinished + "settings.header.unfinished": "⚍リ⎓╎リ╎ϟ⍑ᒷ↸", + + // Web Remote + "remote.web.title": "ᔮ╎↸ᒷ∷ ∷ᒷᒲᒍᒣᒷ", + "remote.web.description": "ϟᔮᖋリ ᒣ⍑ᒷ ᑑ∷ ᔮᒍ↸ᒷ ᒣᒍ i!ᖋ╎∷ ॥ᒍ⚍∷ i!⍑ᒍリᒷ ⚍i! ∴╎ᒣ⍑ ᒣ⍑╎ϟ ᔮ╎↸ᒷ∷ ╎リϟᒣᖋリᔮᒷ", + + // About + "about.thanks": "ᒲᖋ⋮ᒍ∷ ᒣ⍑ᖋリ·ǀ·ϟ ᒣᒍ ᒣ⍑ᒷ ᔮ╎↸ᒷ∷ ᔮᒍ|:|:ᒷᔮᒣ╎⍊ᒷ ᒣᒷᖋᒲ ᖋリ↸ ᖋ|:|: ᒍ⎓ ᒍ⚍∷ ᔮᒍリᒣ∷╎ᕊ⚍ᒣᒍ∷ϟ." +} \ No newline at end of file diff --git a/src/i18n/en_US.jsonc b/src/i18n/en_US.jsonc index fa095aff..d462ef01 100644 --- a/src/i18n/en_US.jsonc +++ b/src/i18n/en_US.jsonc @@ -1,4 +1,11 @@ -{ // Base File +{ // Base File + + // i18n Info + "i18n.languageName": "English", // name of language in native language + "i18n.languageNameEnglish": "English", // name of language in English + "i18n.category": "main", // main = real language, fun = fun community languages + "i18n.authors": "@maikirakiwi", // Authors, if you contribute to this file feel free to add your name seperated with a space + // App info "app.name": "Cider", @@ -100,6 +107,8 @@ "term.contributors": "Contributors", "term.equalizer": "Equalizer", "term.reset": "Reset", + "term.tracks": "tracks", // Assume x amount of tracks. e.g. 50 tracks + // Home "home.title": "Home", @@ -160,6 +169,9 @@ "action.dislike": "Dislike", "action.undoDislike": "Undo dislike", "action.showWebRemoteQR": "Show Web Remote QR", + "action.playTracksNext": "Play ${app.selectedMediaItems.length} tracks next", + "action.playTracksLater": "Play ${app.selectedMediaItems.length} tracks later", + "action.removeTracks": "Remove ${self.selectedItems.length} tracks from queue", // Settings - Audio "settings.header.audio": "Audio", @@ -222,12 +234,17 @@ "settings.option.connectivity.lastfmScrobble.delay": "LastFM Scrobble Delay (%)", "settings.option.connectivity.lastfmScrobble.nowPlaying": "Enable LastFM Now Playing", "settings.option.connectivity.lastfmScrobble.removeFeatured": "Remove featuring artists from song title (LastFM)", + "settings.option.connectivity.lastfmScrobble.filterLoop": "Filter looped track (LastFM)", // Refer to term.connect for the connect button // Settings - Experimental "settings.header.experimental": "Experimental", "settings.header.experimental.description": "Adjust the experimental settings for Cider.", "settings.option.experimental.compactUI": "Compact UI", // Toggle + "settings.option.experimental.closeButtonBehaviour": "Close Button Behaviour", + "settings.option.experimental.closeButtonBehaviour.quit": "Quit Cider", + "settings.option.experimental.closeButtonBehaviour.minimizeTaskbar": "Minimize to taskbar", + "settings.option.experimental.closeButtonBehaviour.minimizeTray": "Minimize to system tray", // Refer to term.disabled & term.enabled // Spatialization Menu @@ -235,6 +252,7 @@ "spatial.width" : "Width", "spatial.height" : "Height", "spatial.depth" : "Depth", + "spatial.gain" : "Gain", "spatial.roomMaterials" : "Room Materials", "spatial.roomDimensions" : "Room Dimensions", "spatial.roomPositions" : "Room Positions", @@ -256,6 +274,6 @@ "remote.web.title": "Cider Remote", "remote.web.description": "Scan the QR code to pair your phone up with this Cider instance", - //About + // About "about.thanks": "Major thanks to the Cider Collective Team and all of our contributors." } \ No newline at end of file diff --git a/src/i18n/ja_JP.jsonc b/src/i18n/ja_JP.jsonc index 95376af7..34e4fab9 100644 --- a/src/i18n/ja_JP.jsonc +++ b/src/i18n/ja_JP.jsonc @@ -4,6 +4,12 @@ "date.format": "${y}年${m}月${d}日", + // i18n Info + "i18n.languageName": "日本語", // name of language in native language + "i18n.languageNameEnglish": "Japanese", // name of language in English + "i18n.category": "main", // main = real language, fun = fun community languages + "i18n.authors": "@maikirakiwi", // Authors, if you contribute to this file feel free to add your name seperated with a space + // Dialogs "dialog.cancel": "キャンセル", "dialog.ok": "OK", @@ -71,6 +77,9 @@ "term.enabled": "ON", "term.disabled": "OFF", "term.connect": "接続", + "term.connecting": "接続中", + "term.disconnect": "切断", + "term.authed": "認証済み", "term.confirm": "よろしいでしょうか?", "term.more": "もっと", "term.less": "減らす", @@ -84,9 +93,20 @@ "term.fullscreenView": "全画面表示", "term.defaultView": "ウィンドウ表示", "term.spacializedAudioSetting": "オーディオ空間化設定", - "term.clearAll": "クリア", + "term.clearAll": "消去", "term.recentStations": "最近の再生", "term.language": "言語", + "term.noLyrics": "ローディング。。 / 歌詞が見つからない / 器楽曲.", + "term.copyright": "著作権", + "term.rightsReserved": "All Rights Reserved.", // Translation does not exist in Japanese + "term.sponsor": "スポンサーになりましょう", + "term.ciderTeam": "Cider チーム", + "term.developer": "開発者", + "term.socialTeam": "ソーシャル チーム", + "term.contributors": "貢献者", + "term.equalizer": "イコライザー", + "term.reset": "リセット", + "term.tracks": "曲", // Assume x amount of tracks. e.g. 50 tracks // Home "home.title": "ホーム", @@ -103,20 +123,30 @@ "error.noResults": "見つかりませんでした", "error.noResults.description": "もう一度お試しください。", + //Podcasts + "podcast.followOnCider": "Ciderでフォロー", + "podcast.followedOnCider": "フォロー中", + "podcast.subscribeOnItunes": "iTunesで購読", + "podcast.subscribedOnItunes": "購読中", + "podcast.itunesStore": "iTunes Store", + "podcast.episodes": "番組", + "podcast.playEpisode": "再生", + "podcast.website": "Podcast ウェブ", + // Actions "action.addToLibrary": "ライブラリに追加", "action.addToLibrary.success": "ライブラリに追加されました", "action.addToLibrary.error": "ライブラリへの追加に失敗しました", "action.removeFromLibrary": "ライブラリから削除", "action.removeFromLibrary.success": "ライブラリから削除されました", - "action.addToQueue": "キューに追加", - "action.addToQueue.success": "キューに追加されました", + "action.addToQueue": "「次はこちら」に項目を追加", + "action.addToQueue.success": "「次はこちら」に項目を追加されました", "action.addToQueue.error": "操作を完了できませんでした", "action.addToPlaylist": "プレイリストに追加", "action.removeFromPlaylist": "プレイリストから削除", - "action.addToFavorites": " ", - "action.removeFromQueue": "キューから削除", - "action.removeFromQueue.success": "キューから削除されました", + "action.addToFavorites": "ラブに追加", + "action.removeFromQueue": "「次はこちら」から項目を削除", + "action.removeFromQueue.success": "「次はこちら」から項目を削除されました", "action.removeFromQueue.error": "操作を完了できませんでした", "action.follow": "フォロー", "action.follow.success": "フォロー中", @@ -131,12 +161,16 @@ "action.goToAlbum": "アルバムへ移動", "action.moveToTop": "上に戻る", "action.share": "曲を共有", - "action.rename": "リネーム", + "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}曲が「次はこちら」から削除", + // Settings - Audio "settings.header.audio": "オーディオ", "settings.header.audio.description": "Ciderのオーディオ設定", @@ -195,6 +229,9 @@ "settings.header.connectivity.discordRPC.appleMusic": "'Apple Music' を表示する", "settings.option.connectivity.discordRPC.clearOnPause": "一時停止時にDiscord Rich Presenceをクリアする", // Toggle "settings.option.connectivity.lastfmScrobble": "LastFM Scrobbling", // Option to Connect + "settings.option.connectivity.lastfmScrobble.delay": "LastFM Scrobble Delay (%)", + "settings.option.connectivity.lastfmScrobble.nowPlaying": "Enable LastFM Now Playing", + "settings.option.connectivity.lastfmScrobble.removeFeatured": "Remove featuring artists from song title (LastFM)", // Refer to term.connect for the connect button // Settings - Experimental @@ -203,11 +240,34 @@ "settings.option.experimental.compactUI": "コンパクトインターフェース", // Toggle // Refer to term.disabled & term.enabled + // Spatialization Menu + "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 - Unfinished "settings.header.unfinished": "未完成", // Web Remote "remote.web.title": "Cider リモート", - "remote.web.description": "QRコードを使用して、Ciderとスマートフォンをペアリングする" + "remote.web.description": "QRコードを使用して、Ciderとスマートフォンをペアリングする", + + //About + "about.thanks": "Cider Collective とご協力いただいた貢献者様に感謝申し上げます。" } diff --git a/src/i18n/tr_TR.jsonc b/src/i18n/tr_TR.jsonc index aa32eb21..82ed8257 100644 --- a/src/i18n/tr_TR.jsonc +++ b/src/i18n/tr_TR.jsonc @@ -1,4 +1,11 @@ { + + // i18n Info + "i18n.languageName": "Türkçe", // name of language in native language + "i18n.languageNameEnglish": "Turkish", // name of language in English + "i18n.category": "main", // main = real language, fun = fun community languages + "i18n.authors": "gms10ur", // Authors, if you contribute to this file feel free to add your name seperated with a space + // App info "app.name": "Cider", @@ -74,6 +81,7 @@ "term.connect": "Bağlan", "term.connecting": "Bağlanıyor", "term.authed": "Bağlantı sağlandı", + "term.disconnect": "Bağlantıyı Kes", "term.confirm": "Onayla?", "term.more": "Daha Fazla", "term.less": "Daha Az", @@ -98,6 +106,9 @@ "term.developer": "Geliştirici", "term.socialTeam": "Sosyal Ekip", "term.contributors": "Katkıda Bulunanlar", + "term.equalizer": "Ekolayzer", + "term.reset": "Sıfırla", + "term.tracks": "adet şarkı", // Assume x amount of tracks. e.g. 50 tracks // Home "home.title": "Ana Sayfa", @@ -159,6 +170,10 @@ "action.dislike": "Bunun Gibileri Daha Az Öner", "action.undoDislike": "Bunun Gibileri Daha Az Önermeyi Geri Al", "action.showWebRemoteQR": "Uzaktan Kumanda Bağla", + "action.playTracksNext": "Sonrasında ${app.selectedMediaItems.length} şarkıları çal", + "action.playTracksLater": "En Son ${app.selectedMediaItems.length} şarkıları çal", + "action.removeTracks": "Sıradan ${self.selectedItems.length} şarkıları kaldır", + // Settings - Audio "settings.header.audio": "Çalma / Oynatma", @@ -220,12 +235,18 @@ "settings.header.connectivity.discordRPC.appleMusic": "'Apple Music' Olarak", "settings.option.connectivity.discordRPC.clearOnPause": "Duraklatıldığında Discord'da Gösterme", // Toggle "settings.option.connectivity.lastfmScrobble": "LastFM Bağlantısı", // Option to Connect + "settings.option.connectivity.lastfmScrobble.removeFeatured": "Albüm sanatçısını Scrobbledan kaldır(LastFM)", + "settings.option.connectivity.lastfmScrobble.filterLoop": "Tekrar edilen şarkıyı filtrele (LastFM)", // Refer to term.connect for the connect button // Settings - Experimental "settings.header.experimental": "Deneysel", "settings.header.experimental.description": "Cider'deki deneysel özelliklere erişim sağlayın. (Not: Bazı özellikler düzgün çalışmayabilir.)", "settings.option.experimental.compactUI": "Kompakt Arayüz", // Toggle + "settings.option.experimental.closeButtonBehaviour": "Kapat düğmesi davranışı", + "settings.option.experimental.closeButtonBehaviour.quit": "Cider'den çık", + "settings.option.experimental.closeButtonBehaviour.minimizeTaskbar": "Simge durumuna küçült", + "settings.option.experimental.closeButtonBehaviour.minimizeTray": "Görev çubuğuna küçült", // Refer to term.disabled & term.enabled // Spatialization Menu @@ -257,5 +278,4 @@ //About "about.thanks": "Cider Collective Ekibine ve tüm katkıda bulunanlara çok teşekkür ederiz." - } \ No newline at end of file diff --git a/src/i18n/zh_CN.jsonc b/src/i18n/zh_CN.jsonc index 1770d6ba..e55a44e0 100644 --- a/src/i18n/zh_CN.jsonc +++ b/src/i18n/zh_CN.jsonc @@ -4,6 +4,12 @@ "date.format": "${y}年${m}月${d}日", + // i18n Info + "i18n.languageName": "中文(中国)", // name of language in native language + "i18n.languageNameEnglish": "Chinese (China)", // name of language in English + "i18n.category": "main", // main = real language, fun = fun community languages + "i18n.authors": "@maikirakiwi", // Authors, if you contribute to this file feel free to add your name seperated with a space + // Dialogs "dialog.cancel": "取消", "dialog.ok": "确定", @@ -71,6 +77,9 @@ "term.enabled": "已启用", "term.disabled": "已禁用", "term.connect": "连接", + "term.connecting": "连接中", + "term.disconnect": "断开", + "term.authed": "已认证", "term.confirm": "确认?", "term.more": "更多", "term.less": "较少", @@ -87,6 +96,17 @@ "term.clearAll": "清空", "term.recentStations": "最近播放的频道", "term.language": "语言", + "term.noLyrics": "加载中。。/ 搜索无结果 / 纯音乐", + "term.copyright": "版权所有", + "term.rightsReserved": "保留所有权利。", + "term.sponsor": "赞助", + "term.ciderTeam": "Cider 团队", + "term.developer": "开发者", + "term.socialTeam": "媒体团队", + "term.contributors": "贡献者", + "term.equalizer": "均衡器", + "term.reset": "重置", + "term.tracks": "首歌曲", // Assume x amount of tracks. e.g. 50 tracks // Home "home.title": "主页", @@ -104,6 +124,17 @@ "error.noResults": "没有结果", "error.noResults.description": "尝试更改搜索条件。", + //Podcasts + "podcast.followOnCider": "在 Cider 中追踪", + "podcast.followedOnCider": "已追踪", + "podcast.subscribeOnItunes": "在 iTunes 上订阅", + "podcast.subscribedOnItunes": "已订阅", + "podcast.itunesStore": "iTunes Store", // Follow brand term + "podcast.episodes": "单集", + "podcast.playEpisode": "播放单集", + "podcast.website": "Podcast 网站", + + // Actions "action.addToLibrary": "加入资料库", "action.addToLibrary.success": "成功加入资料库", @@ -138,6 +169,10 @@ "action.dislike": "减少此类建议", "action.undoDislike": "增加此类建议", "action.showWebRemoteQR": "显示远程控制的二维码", + "action.playTracksNext": "插播 ${app.selectedMediaItems.length} 首歌曲", + "action.playTracksLater": "最后播放 ${app.selectedMediaItems.length} 首歌曲", + "action.removeTracks": "从队列中移除 ${self.selectedItems.length} 首歌曲", + // Settings - Audio "settings.header.audio": "音频", "settings.header.audio.description": "调整 Cider 的音频设置", @@ -196,6 +231,9 @@ "settings.header.connectivity.discordRPC.appleMusic": "显示正在玩 'Apple Music'", "settings.option.connectivity.discordRPC.clearOnPause": "暂停时清除Discord 动态", // Toggle "settings.option.connectivity.lastfmScrobble": "LastFM Scrobbling 记录", // Option to Connect + "settings.option.connectivity.lastfmScrobble.delay": "LastFM Scrobble 延迟 (%)", + "settings.option.connectivity.lastfmScrobble.nowPlaying": "启用 LastFM 正在播放", + "settings.option.connectivity.lastfmScrobble.removeFeatured": "从歌名里去除艺人推荐 (LastFM)", // Refer to term.connect for the connect button // Settings - Experimental @@ -204,10 +242,33 @@ "settings.option.experimental.compactUI": "紧凑型 UI", // Toggle // Refer to term.disabled & term.enabled + // Spatialization Menu + "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 - Unfinished "settings.header.unfinished": "未完成", // Web Remote "remote.web.title": "Cider 远程控制", - "remote.web.description": "扫描以下的二维码以控制 Cider" + "remote.web.description": "扫描以下的二维码以控制 Cider", + + //About + "about.thanks": "郑重感谢 Cider Collective 以及为这个项目提供支持的贡献者。" } diff --git a/src/i18n/zh_HK.jsonc b/src/i18n/zh_HK.jsonc index 9c057a89..c9dcdf91 100644 --- a/src/i18n/zh_HK.jsonc +++ b/src/i18n/zh_HK.jsonc @@ -1,4 +1,10 @@ { + // i18n Info + "i18n.languageName": "繁體中文(香港)", // name of language in native language + "i18n.languageNameEnglish": "Traditional Chinese (Hong Kong)", // name of language in English + "i18n.category": "main", // main = real language, fun = fun community languages + "i18n.authors": "@kyw504100 @maikirakiwi", // Authors, if you contribute to this file feel free to add your name seperated with a space + // App info "app.name": "Cider", @@ -98,6 +104,9 @@ "term.developer": "開發者", "term.socialTeam": "社交團隊", "term.contributors": "貢獻者", + "term.equalizer": "等化器", + "term.reset": "重設", + "term.tracks": "首歌曲", // Assume x amount of tracks. e.g. 50 tracks // Home "home.title": "主頁", @@ -219,13 +228,18 @@ "settings.option.connectivity.lastfmScrobble": "LastFM Scrobbling 記錄", // Option to Connect "settings.option.connectivity.lastfmScrobble.delay": "LastFM Scrobble 延遲 (%)", "settings.option.connectivity.lastfmScrobble.nowPlaying": "啟用 LastFM 正在播放", - "settings.option.connectivity.lastfmScrobble.removeFeatured": "Remove featuring artists from song title (LastFM)", + "settings.option.connectivity.lastfmScrobble.removeFeatured": "從歌名中移除藝人推薦 (LastFM)", + "settings.option.connectivity.lastfmScrobble.filterLoop": "Filter looped track (LastFM)", // Refer to term.connect for the connect button // Settings - Experimental "settings.header.experimental": "實驗性功能", "settings.header.experimental.description": "調整Cider的實驗性功能", "settings.option.experimental.compactUI": "緊凑型 UI", // Toggle + "settings.option.experimental.closeButtonBehaviour": "關閉按鈕行為", + "settings.option.experimental.closeButtonBehaviour.quit": "結束 Cider", + "settings.option.experimental.closeButtonBehaviour.minimizeTaskbar": "縮小至工作列", + "settings.option.experimental.closeButtonBehaviour.minimizeTray": "縮小至系統托盤", // Refer to term.disabled & term.enabled // Spatialization Menu @@ -233,6 +247,7 @@ "spatial.width" : "闊度", "spatial.height" : "高度", "spatial.depth" : "深度", + "spatial.gain" : "增益", "spatial.roomMaterials" : "空間材質", "spatial.roomDimensions" : "空間大小", "spatial.roomPositions" : "空間位置", @@ -255,5 +270,5 @@ "remote.web.description": "掃描以下的二維碼以控制 Cider", //About - "about.thanks": "感謝Cider Collective團隊以及所有貢獻者所作出的貢獻。" + "about.thanks": "感謝 Cider Collective 以及所有貢獻者所作出的貢獻。" } \ No newline at end of file diff --git a/src/i18n/zh_TW.jsonc b/src/i18n/zh_TW.jsonc index 2c843b37..b4151833 100644 --- a/src/i18n/zh_TW.jsonc +++ b/src/i18n/zh_TW.jsonc @@ -3,6 +3,13 @@ "app.name": "Cider", "date.format": "${y}年${m}月${d}日", + + // i18n Info + "i18n.languageName": "中文(台湾)", // name of language in native language + "i18n.languageNameEnglish": "Chinese (Taiwan)", // name of language in English + "i18n.category": "main", // main = real language, fun = fun community languages + "i18n.authors": "@maikirakiwi", // Authors, if you contribute to this file feel free to add your name seperated with a space + // Dialogs "dialog.cancel": "取消", @@ -70,6 +77,9 @@ "term.enabled": "已啟用", "term.disabled": "已停用", "term.connect": "連接", + "term.connecting": "連接中", + "term.disconnect": "斷開", + "term.authed": "已授權", "term.confirm": "確定?", "term.more": "更多", "term.less": "更少", @@ -86,6 +96,19 @@ "term.clearAll": "清空", "term.recentStations": "最近收聽的廣播", "term.language": "語言", + "term.noLyrics": "正在載入。。/ 無歌詞結果 / 純音樂", + "term.copyright": "版權聲明", + "term.rightsReserved": "保留所有權利。", + "term.sponsor": "贊助", + "term.ciderTeam": "Cider 團隊", + "term.developer": "開發者", + "term.socialTeam": "公關團隊", + "term.contributors": "貢獻者", + "term.equalizer": "等化器", + "term.reset": "重置", + "term.tracks": "首歌曲", // Assume x amount of tracks. e.g. 50 tracks + + // Home "home.title": "主頁", "home.recentlyPlayed": "最近播放", @@ -101,6 +124,16 @@ "error.noResults": "沒有結果", "error.noResults.description": "嘗試新的搜尋項目。", + //Podcasts + "podcast.followOnCider": "在 Cider 上追蹤", + "podcast.followedOnCider": "已追蹤", + "podcast.subscribeOnItunes": "在 iTunes 上訂閱", + "podcast.subscribedOnItunes": "已訂閱", + "podcast.itunesStore": "iTunes Store", // Follows brand term + "podcast.episodes": "單集", + "podcast.playEpisode": "播放單集", + "podcast.website": "Podcast 網站", + // Actions "action.addToLibrary": "加入資料庫", "action.addToLibrary.success": "成功加入資料庫", @@ -129,12 +162,15 @@ "action.goToAlbum": "前往專輯", "action.moveToTop": "移至頂端", "action.share": "分享歌曲", - "action.rename": "Rename", + "action.rename": "重新命名", "action.love": "喜愛", "action.unlove": "取消喜愛", "action.dislike": "減少此類建議", "action.undoDislike": "還原減小此類建議", "action.showWebRemoteQR": "顯示遠程遙控行動條碼", + "action.playTracksNext": "插播 ${app.selectedMediaItems.length} 首歌曲", + "action.playTracksLater": "最後播放 ${app.selectedMediaItems.length} 首歌曲", + "action.removeTracks": "從待播清單刪除 ${self.selectedItems.length} 首歌曲", // Settings - Audio "settings.header.audio": "音訊", @@ -194,6 +230,9 @@ "settings.header.connectivity.discordRPC.appleMusic": "顯示正在玩 'Apple Music'", "settings.option.connectivity.discordRPC.clearOnPause": "暫停時清除 Discord 動態", // Toggle "settings.option.connectivity.lastfmScrobble": "LastFM Scrobbling 記錄", // Option to Connect + "settings.option.connectivity.lastfmScrobble.delay": "LastFM Scrobble 延遲 (%)", + "settings.option.connectivity.lastfmScrobble.nowPlaying": "啟用 LastFM 目前聆聽", // Toggle + "settings.option.connectivity.lastfmScrobble.removeFeatured": "從歌名中移除藝人推薦 (LastFM)", // Refer to term.connect for the connect button // Settings - Experimental @@ -202,10 +241,33 @@ "settings.option.experimental.compactUI": "緊凑型 UI", // Toggle // Refer to term.disabled & term.enabled + // Spatialization Menu + "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 - Unfinished "settings.header.unfinished": "未完成", // Web Remote "remote.web.title": "Cider 遠控", - "remote.web.description": "掃描以下的行動條碼以控制 Cider" + "remote.web.description": "掃描以下的行動條碼以控制 Cider", + + //About + "about.thanks": "著重感謝 Cider Collective 的成員以及所有為項目付出的貢獻者。" } \ No newline at end of file diff --git a/src/main/base/store.ts b/src/main/base/store.ts index 143c1384..16c3b110 100644 --- a/src/main/base/store.ts +++ b/src/main/base/store.ts @@ -27,7 +27,7 @@ export class ConfigStore { "volume": 1, "lastVolume": 1, "muted": false, - "quality": "990", + "quality": "256", "seamless_audio": true, "normalization": false, "spatial": false, @@ -51,16 +51,9 @@ export class ConfigStore { } }, "equalizer": { - '60' : 0, - '170': 0 , - '310': 0 , - '600': 0 , - '1000': 0 , - '3000': 0 , - '6000': 0 , - '12000': 0 , - '14000': 0 , - '16000': 0 , + 'frequencies': [32, 63, 125, 250, 500, 1000, 2000, 4000, 8000, 16000], + 'gain': [0,0,0,0,0,0,0,0,0,0], + 'Q' : [1,1,1,1,1,1,1,1,1,1] } }, "visual": { @@ -86,6 +79,7 @@ export class ConfigStore { "scrobble_after": 30, "auth_token": "", "enabledRemoveFeaturingArtists": true, + "filterLoop": true, "NowPlaying": "true" }, "advanced": { diff --git a/src/main/plugins/Extras/sendSongToTitlebar.ts b/src/main/plugins/Extras/sendSongToTitlebar.ts index 540e32f4..8b39e47d 100644 --- a/src/main/plugins/Extras/sendSongToTitlebar.ts +++ b/src/main/plugins/Extras/sendSongToTitlebar.ts @@ -27,7 +27,7 @@ export default class sendSongToTitlebar { * @param attributes Music Attributes (attributes.state = current state) */ onPlaybackStateDidChange(attributes: any): void { - this._win.win.setTitle(`${(attributes != null && attributes.name != null && attributes.name.length > 0) ? (attributes.name + " - ") : ''}Cider`) + this._win.setTitle(`${(attributes != null && attributes.name != null && attributes.name.length > 0) ? (attributes.name + " - ") : ''}Cider`) } /** * Runs on song change diff --git a/src/main/plugins/lastfm.ts b/src/main/plugins/lastfm.ts index d586b857..51ddcc34 100644 --- a/src/main/plugins/lastfm.ts +++ b/src/main/plugins/lastfm.ts @@ -191,7 +191,7 @@ export default class LastFMPlugin { this._store.lastfm.enabled = true; this._store.lastfm.auth_token = authKey; console.log(authKey); - this._win.win.webContents.send('LastfmAuthenticated', authKey); + this._win.webContents.send('LastfmAuthenticated', authKey); this.authenticate(); } } @@ -206,7 +206,7 @@ export default class LastFMPlugin { const authKey = authURI.split('lastfm?token=')[1]; this._store.lastfm.enabled = true; this._store.lastfm.auth_token = authKey; - this._win.win.webContents.send('LastfmAuthenticated', authKey); + this._win.webContents.send('LastfmAuthenticated', authKey); console.log(authKey); this.authenticate(); } @@ -243,6 +243,9 @@ export default class LastFMPlugin { * @param attributes Music Attributes */ onNowPlayingItemDidChange(attributes: object): void { + if (!this._store.lastfm.filterLoop){ + this._lastfm.cachedNowPlayingAttributes = false; + this._lastfm.cachedAttributes = false} this.scrobbleSong(attributes) this.updateNowPlayingSong(attributes) } diff --git a/src/main/plugins/minimizeToTray.ts b/src/main/plugins/minimizeToTray.ts new file mode 100644 index 00000000..0bb13492 --- /dev/null +++ b/src/main/plugins/minimizeToTray.ts @@ -0,0 +1,149 @@ +import * as electron from 'electron'; +import * as path from 'path'; + + +export default class MinimizeToTray { + /** + * Private variables for interaction in plugins + */ + private _win: any; + private _app: any; + private _store: any; + private _tray: any; + + /** + * Base Plugin Details (Eventually implemented into a GUI in settings) + */ + public name: string = 'Minimize to tray'; + public description: string = 'Allow Cider to minimize to tray'; + public version: string = '1.0.0'; + public author: string = 'vapormusic'; + + constructor(app: any, store: any) { + this._app = app; + this._store = store; + } + + private SetContextMenu(visibility : any) { + let self = this + if (visibility) { + this._tray.setContextMenu(electron.Menu.buildFromTemplate([ + // { + // label: 'Check for Updates', + // click: function () { + // app.ame.utils.checkForUpdates(true) + // } + // }, + { + label: 'Minimize to Tray', + click: function () { + if (typeof self._win.hide === 'function') { + self._win.hide(); + self.SetContextMenu(false); + } + } + }, + { + label: 'Quit', + click: function () { + self._app.quit(); + } + } + ])); + } else { + this._tray.setContextMenu(electron.Menu.buildFromTemplate([ + // { + // label: 'Check for Updates', + // click: function () { + // this._app.ame.utils.checkForUpdates(true) + // } + // }, + { + label: `Show ${electron.app.getName()}`, + click: function () { + if (typeof self._win.show === 'function') { + self._win.show(); + self.SetContextMenu(true); + } + } + }, + { + label: 'Quit', + click: function () { + self._app.quit(); + } + } + ])); + } + return true + + } + + /** + * Runs on app ready + */ + onReady(win: any): void { + this._win = win; + const winTray = electron.nativeImage.createFromPath(path.join(__dirname, `../../resources/icons/icon.ico`)).resize({ + width: 32, + height: 32 + }) + const macTray = electron.nativeImage.createFromPath(path.join(__dirname, `../../resources/icons/icon.png`)).resize({ + width: 20, + height: 20 + }) + const linuxTray = electron.nativeImage.createFromPath(path.join(__dirname, `../../resources/icons/icon.png`)).resize({ + width: 32, + height: 32 + }) + let trayIcon : any ; + if (process.platform === "win32") { + trayIcon = winTray + } else if (process.platform === "linux") { + trayIcon = linuxTray + } else if (process.platform === "darwin") { + trayIcon = macTray + } + + this._tray = new electron.Tray(trayIcon) + this._tray.setToolTip(this._app.getName()); + this.SetContextMenu(true); + + this._tray.on('double-click', () => { + if (typeof this._win.show === 'function') { + if (this._win.isVisible()) { + this._win.focus() + } else { + this._win.show() + } + } + }) + electron.ipcMain.on("minimizeTray", (event, value) => { + // listen for close event + this._win.hide(); + this.SetContextMenu(false); + }); + } + + /** + * Runs on app stop + */ + onBeforeQuit(): void { + + } + + /** + * Runs on playback State Change + * @param attributes Music Attributes (attributes.state = current state) + */ + onPlaybackStateDidChange(attributes: object): void { + } + + /** + * Runs on song change + * @param attributes Music Attributes + */ + onNowPlayingItemDidChange(attributes: object): void { + } + +} diff --git a/src/preload/cider-preload.js b/src/preload/cider-preload.js index c1eb6046..7d921eeb 100644 --- a/src/preload/cider-preload.js +++ b/src/preload/cider-preload.js @@ -24,7 +24,7 @@ const MusicKitInterop = { /** wsapi */ MusicKit.getInstance().addEventListener(MusicKit.Events.nowPlayingItemDidChange, () => { - if (MusicKitInterop.filterTrack(MusicKitInterop.getAttributes(), false, true)) { + if (MusicKitInterop.filterTrack(MusicKitInterop.getAttributes(), false, true) || !app.cfg.lastfm.filterLoop) { global.ipcRenderer.send('nowPlayingItemDidChange', MusicKitInterop.getAttributes()); } }); diff --git a/src/renderer/assets/logocut.png b/src/renderer/assets/logocut.png index 3f1e9b8b..29e744c4 100644 Binary files a/src/renderer/assets/logocut.png and b/src/renderer/assets/logocut.png differ diff --git a/src/renderer/audio/audio.js b/src/renderer/audio/audio.js index 6697d908..dbc619d5 100644 --- a/src/renderer/audio/audio.js +++ b/src/renderer/audio/audio.js @@ -22,8 +22,13 @@ var CiderAudio = { }, off: function(){ try{ - CiderAudio.audioNodes.gainNode.disconnect(); - CiderAudio.audioNodes.spatialNode.disconnect(); + try{ + CiderAudio.audioNodes.gainNode.disconnect(); } catch(e){} + try{ CiderAudio.audioNodes.spatialNode.disconnect();} catch(e){} + try{ + CiderAudio.audioNodes.audioBands[0].disconnect(); + CiderAudio.audioNodes.audioBands[9].disconnect(); + } catch(e){} CiderAudio.source.connect(CiderAudio.context.destination);} catch(e){} }, connectContext: function (mediaElem){ @@ -94,41 +99,32 @@ var CiderAudio = { } }, equalizer: function (){ - const BANDS = [60, 170, 310, 600, 1000, 3000, 6000, 12000, 14000, 16000]; - CiderAudio.audioNodes.audioBands = {}; + let BANDS = app.cfg.audio.equalizer.frequencies; + let GAIN = app.cfg.audio.equalizer.gain; + let Q = app.cfg.audio.equalizer.Q; + CiderAudio.audioNodes.audioBands = []; - BANDS.forEach((band, i) => { - const filter = CiderAudio.context.createBiquadFilter(); - CiderAudio.audioNodes.audioBands[band] = filter; - - if (i === 0) { - // The first filter, includes all lower frequencies - filter.type = "lowshelf"; - } else if (i === BANDS.length - 1) { - // The last filter, includes all higher frequencies - filter.type = "highshelf"; - } else { - filter.type = "peaking"; + for (i = 0; i < BANDS.length; i++) { + CiderAudio.audioNodes.audioBands[i] = CiderAudio.context.createBiquadFilter(); + CiderAudio.audioNodes.audioBands[i].type = 'peaking'; // 'peaking'; + CiderAudio.audioNodes.audioBands[i].frequency.value = BANDS[i]; + CiderAudio.audioNodes.audioBands[i].Q.value = Q[i]; + CiderAudio.audioNodes.audioBands[i].gain.value = GAIN[i]; } - filter.frequency.value = band; - filter.gain.value = 0; - if (i == 0){ - if (app.cfg.audio.spatial) { - CiderAudio.audioNodes.spatialNode.output.disconnect(CiderAudio.context.destination); - CiderAudio.audioNodes.spatialNode.output.connect(filter); - } else { - CiderAudio.audioNodes.gainNode.disconnect(CiderAudio.context.destination); - CiderAudio.audioNodes.gainNode.connect(filter); - } - } else if (i === BANDS.length - 1) { - CiderAudio.audioNodes.audioBands[BANDS[i - 1]].connect(filter); + if (app.cfg.audio.spatial) { + try{ + CiderAudio.audioNodes.spatialNode.output.disconnect(CiderAudio.context.destination); } catch(e){} + CiderAudio.audioNodes.spatialNode.output.connect(CiderAudio.audioNodes.audioBands[0]); } else { - CiderAudio.audioNodes.audioBands[BANDS[i - 1]].connect(filter); - filter.connect(CiderAudio.context.destination); + try{ + CiderAudio.audioNodes.gainNode.disconnect(CiderAudio.context.destination);} catch(e){} + CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.audioBands[0]); } - - }); + for (i = 1; i < BANDS.length; i ++) { + CiderAudio.audioNodes.audioBands[i-1].connect(CiderAudio.audioNodes.audioBands[i]); + } + CiderAudio.audioNodes.audioBands[BANDS.length-1].connect(CiderAudio.context.destination); } } diff --git a/src/renderer/index.js b/src/renderer/index.js index 13168409..eb66e9f2 100644 --- a/src/renderer/index.js +++ b/src/renderer/index.js @@ -3419,6 +3419,23 @@ const app = new Vue({ document.getElementsByClassName('song-name')[0].classList.add('marquee'); document.getElementsByClassName('song-name')[1].classList.add('marquee-after'); } + }, + closeWindow(){ + switch (app.cfg.general.close_behavior) { + case 0: + case '0': + ipcRenderer.send('close'); + break; + case 1: + case '1': + ipcRenderer.send('minimize'); + break; + case 2: + case '2': + ipcRenderer.send('minimizeTray'); + break; + + } } } diff --git a/src/renderer/style.less b/src/renderer/style.less index 934c1330..3c81ca02 100644 --- a/src/renderer/style.less +++ b/src/renderer/style.less @@ -551,6 +551,8 @@ input[type=range].web-slider::-webkit-slider-runnable-track { display: flex; font-size: 14px; flex-direction: column; + text-align: center; + margin-right: 35px ; } .app-sidebar-button > .sidebar-user-text .fullname { @@ -5701,10 +5703,10 @@ body.no-gpu { .equalizer-panel { .modal-window { - height: 300px; - max-height: 300px; - width: 400px; - max-width: 400px; + height: 330px; + max-height: 330px; + width: 630px; + max-width: 630px; overflow: hidden; .info-header { @@ -5751,20 +5753,34 @@ body.no-gpu { display: block; .input-container{ display: inline-grid; - width: 35px; + width: 52px; justify-items: center; font-size: 0.7em; } + .freq-header{ + margin-bottom: 2px; + } + .reset-button{ width: 50%; margin-left: 25%; } + input.eq-slider { + -webkit-appearance: slider-vertical; + width: 5%; + } + input[type="number"]{ + padding: unset; + width: 55px; + } + .header input.eq-slider { + -webkit-appearance: slider-vertical; + width: 5%; + opacity: 0; + } } } } -input.eq-slider { - -webkit-appearance: slider-vertical; - width: 5%; -} + @import url("less/compact.less"); diff --git a/src/renderer/views/components/equalizer.ejs b/src/renderer/views/components/equalizer.ejs index 5ae27962..97211f3d 100644 --- a/src/renderer/views/components/equalizer.ejs +++ b/src/renderer/views/components/equalizer.ejs @@ -8,55 +8,71 @@ @@ -73,7 +73,7 @@