Merge branch 'develop' of https://github.com/Swiftzerr/Cider
Conflicts: .gitignore src/i18n/README.md src/i18n/en_OWO.jsonc src/i18n/en_PISS.jsonc src/i18n/en_SGA.jsonc src/i18n/en_US.jsonc src/i18n/ja_JP.jsonc src/i18n/ko_KR.jsonc src/i18n/zh_CN.jsonc src/i18n/zh_HK.jsonc src/i18n/zh_TW.jsonc src/i18n/zh_yue.jsonc src/main/base/app.ts src/main/base/browserwindow.ts src/main/base/store.ts src/main/base/utils.ts src/main/plugins/thumbar.ts src/renderer/audio/audio.js src/renderer/index.js src/renderer/style.less src/renderer/views/app/chrome-top.ejs src/renderer/views/pages/settings.ejs
This commit is contained in:
commit
4cd7e9729f
42 changed files with 4256 additions and 2573 deletions
|
@ -15,7 +15,7 @@ jobs:
|
||||||
- yarn-packages-{{ checksum "yarn.lock" }}
|
- yarn-packages-{{ checksum "yarn.lock" }}
|
||||||
- run:
|
- run:
|
||||||
name: Install Dependencies
|
name: Install Dependencies
|
||||||
command: yarn install --frozen-lockfile --cache-folder ~/.cache/yarn
|
command: yarn install --cache-folder ~/.cache/yarn
|
||||||
- save_cache:
|
- save_cache:
|
||||||
name: Save Yarn Package Cache
|
name: Save Yarn Package Cache
|
||||||
key: yarn-packages-{{ checksum "yarn.lock" }}
|
key: yarn-packages-{{ checksum "yarn.lock" }}
|
||||||
|
@ -34,6 +34,9 @@ jobs:
|
||||||
sudo apt-get install -y wine32
|
sudo apt-get install -y wine32
|
||||||
- store_test_results:
|
- store_test_results:
|
||||||
path: test-results
|
path: test-results
|
||||||
|
- run:
|
||||||
|
name: Append Commit SHA to Version
|
||||||
|
command: yarn circle:append-sha
|
||||||
- run:
|
- run:
|
||||||
name: Generate Builds (Linux)
|
name: Generate Builds (Linux)
|
||||||
command: yarn dist -l -p never
|
command: yarn dist -l -p never
|
||||||
|
|
4
.gitignore
vendored
4
.gitignore
vendored
|
@ -1,6 +1,8 @@
|
||||||
# Building
|
# Building
|
||||||
dist
|
dist
|
||||||
build
|
build
|
||||||
|
.flatpak*
|
||||||
|
yarn-cache
|
||||||
|
|
||||||
# Misc
|
# Misc
|
||||||
.idea
|
.idea
|
||||||
|
@ -135,7 +137,6 @@ dist
|
||||||
.vscode-test
|
.vscode-test
|
||||||
|
|
||||||
# yarn v2
|
# yarn v2
|
||||||
yarn.lock
|
|
||||||
.pnp.*
|
.pnp.*
|
||||||
.yarn/*
|
.yarn/*
|
||||||
.yarn/cache
|
.yarn/cache
|
||||||
|
@ -316,3 +317,4 @@ src/renderer/workbox-962786f2.js.map
|
||||||
keys.sh
|
keys.sh
|
||||||
|
|
||||||
package-lock.json
|
package-lock.json
|
||||||
|
yarn.lock
|
||||||
|
|
|
@ -25,7 +25,8 @@
|
||||||
"dist": "yarn build && electron-builder",
|
"dist": "yarn build && electron-builder",
|
||||||
"dist:all": "yarn build && electron-builder -mwl",
|
"dist:all": "yarn build && electron-builder -mwl",
|
||||||
"msft": "yarn build && electron-builder -c msft-package.json",
|
"msft": "yarn build && electron-builder -c msft-package.json",
|
||||||
"postinstall": "electron-builder install-app-deps"
|
"postinstall": "electron-builder install-app-deps",
|
||||||
|
"circle:append-sha": "node resources/appendCommitToVersion"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@sentry/electron": "^2.5.4",
|
"@sentry/electron": "^2.5.4",
|
||||||
|
@ -34,7 +35,6 @@
|
||||||
"electron-fetch": "^1.7.4",
|
"electron-fetch": "^1.7.4",
|
||||||
"electron-log": "^4.4.4",
|
"electron-log": "^4.4.4",
|
||||||
"electron-notarize": "^1.1.1",
|
"electron-notarize": "^1.1.1",
|
||||||
"electron-packager": "^15.4.0",
|
|
||||||
"electron-store": "^8.0.1",
|
"electron-store": "^8.0.1",
|
||||||
"electron-updater": "^4.6.1",
|
"electron-updater": "^4.6.1",
|
||||||
"electron-window-state": "^5.0.3",
|
"electron-window-state": "^5.0.3",
|
||||||
|
@ -47,7 +47,6 @@
|
||||||
"music-metadata": "^7.11.4",
|
"music-metadata": "^7.11.4",
|
||||||
"node-gyp": "^8.4.1",
|
"node-gyp": "^8.4.1",
|
||||||
"qrcode": "^1.5.0",
|
"qrcode": "^1.5.0",
|
||||||
"qrcode-terminal": "^0.12.0",
|
|
||||||
"react": "^17.0.2",
|
"react": "^17.0.2",
|
||||||
"react-dom": "^17.0.2",
|
"react-dom": "^17.0.2",
|
||||||
"run-script-os": "^1.1.6",
|
"run-script-os": "^1.1.6",
|
||||||
|
|
20
resources/appendCommitToVersion.js
Normal file
20
resources/appendCommitToVersion.js
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
if (!process.env['CIRCLECI']) {
|
||||||
|
console.log(`[CIRCLECI SCRIPT] CircleCI not found... Aborting script`)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
let fs = require('fs')
|
||||||
|
|
||||||
|
var data = fs.readFileSync('package.json');
|
||||||
|
var package = JSON.parse(data);
|
||||||
|
|
||||||
|
|
||||||
|
// https://circleci.com/docs/2.0/env-vars/#built-in-environment-variables
|
||||||
|
package.version = `${package.version}.${process.env['CIRCLE_BUILD_NUM']}`
|
||||||
|
|
||||||
|
|
||||||
|
fs.writeFile('package.json', JSON.stringify(package), err => {
|
||||||
|
// error checking
|
||||||
|
if(err) throw err;
|
||||||
|
console.log("VERSION CHANGED");
|
||||||
|
});
|
|
@ -17,3 +17,51 @@ been modified, the ones not mentioned in the list need modifying.
|
||||||
|
|
||||||
* `settings.option.experimental.closeButtonBehaviour`: Changed to `close_button_hide` - Should be "Close Button Should Hide the Application". `.quit`, `.minimizeTaskbar` and `.minimizeTray` have been removed. Translations done for en_US.
|
* `settings.option.experimental.closeButtonBehaviour`: Changed to `close_button_hide` - Should be "Close Button Should Hide the Application". `.quit`, `.minimizeTaskbar` and `.minimizeTray` have been removed. Translations done for en_US.
|
||||||
* `action.update`: Added for `en_US`.
|
* `action.update`: Added for `en_US`.
|
||||||
|
* `term.topResult`: "Top Result" - Added for `en_US`.
|
||||||
|
* `term.sharedPlaylists`: "Shared Playlists" - Added for `en_US`.
|
||||||
|
* `term.people`: "People" - Added for `en_US`.
|
||||||
|
|
||||||
|
Updated 02/02/2022 17:16 UTC
|
||||||
|
|
||||||
|
* `term.newpreset.name`: Added for `en_US`.
|
||||||
|
* `term.addedpreset`: Added for `en_US`.
|
||||||
|
* `term.deletepreset.warn`: Added for `en_US`.
|
||||||
|
* `term.deletedpreset`: Added for `en_US`.
|
||||||
|
* `term.musicVideos`: Added for `en_US`.
|
||||||
|
* `term.stations`: Added for `en_US`.
|
||||||
|
* `term.curators`: Added for `en_US`.
|
||||||
|
* `term.appleCurators`: Added for `en_US`.
|
||||||
|
* `term.radioShows`: Added for `en_US`.
|
||||||
|
* `term.recordLabels`: Added for `en_US`.
|
||||||
|
* `term.videoExtras`: Added for `en_US`.
|
||||||
|
* `term.top`: Added for `en_US`.
|
||||||
|
* `action.newpreset`: Added for `en_US`.
|
||||||
|
* `action.deletepreset`: Added for `en_US`.
|
||||||
|
|
||||||
|
Updated 04/02/2022 10:00 UTC
|
||||||
|
|
||||||
|
* `term.history`: Added for `en_US`.
|
||||||
|
* `action.copy`: Added for `en_US`.
|
||||||
|
* `settings.header.visual.theme`: Added for `en_US`.
|
||||||
|
* `settings.option.visual.theme.default`: Added for `en_US`.
|
||||||
|
* `settings.option.visual.theme.dark`: Added for `en_US`.
|
||||||
|
* `settings.option.experimental.copy_log`: Added for `en_US`.
|
||||||
|
* `settings.option.experimental.inline_playlists`: Added for `en_US`.
|
||||||
|
|
||||||
|
Update 05/02/2022 09:00 UTC
|
||||||
|
|
||||||
|
* `settings.header.audio.quality.hireslossless`: Added for `en_US`.
|
||||||
|
* `settings.header.audio.quality.hireslossless.description`: Added for `en_US`.
|
||||||
|
* `settings.header.audio.quality.lossless`: Added for `en_US`.
|
||||||
|
* `settings.header.audio.quality.lossless.description`: Added for `en_US`.
|
||||||
|
* `settings.option.audio.enableAdvancedFunctionality.ciderPPE`: Added for `en_US`.
|
||||||
|
* `settings.option.audio.enableAdvancedFunctionality.ciderPPE.description`: Added for `en_US`.
|
||||||
|
|
||||||
|
Update 06/02/2022 10:35 UTC
|
||||||
|
|
||||||
|
* `settings.header.audio.quality.hireslossless.description`: Brackets removed, handled in renderer.
|
||||||
|
* `settings.header.audio.quality.lossless.description`: Brackets removed, handled in renderer.
|
||||||
|
* `settings.header.audio.quality.high.description`: Added for `en_US`.
|
||||||
|
* `settings.header.audio.quality.auto`: Removed as default for MusicKit is 256.
|
||||||
|
* `settings.header.audio.quality.standard`: Replaced `settings.header.audio.quality.low` to match MusicKit naming.
|
||||||
|
* `settings.header.audio.quality.standard.description`: Added for `en_US`.
|
347
src/i18n/en_OWO.jsonc
Normal file
347
src/i18n/en_OWO.jsonc
Normal file
|
@ -0,0 +1,347 @@
|
||||||
|
{ // Base File
|
||||||
|
// i18n Info
|
||||||
|
"i18n.languageName": "Engwish (OwO)", // name of language in native language
|
||||||
|
"i18n.languageNameEnglish": "Engwish (OwO)", // name of language in English
|
||||||
|
"i18n.category": "fun", // main = real language, fun = fun community languages
|
||||||
|
"i18n.authors": "@deerwithacurl @gamingliamstudios", // Authors, if you contribute to this file feel free to add your name seperated with a space
|
||||||
|
|
||||||
|
// App info
|
||||||
|
"app.name": "Cidew",
|
||||||
|
|
||||||
|
"date.format": "${m} ${d}, ${y}",
|
||||||
|
|
||||||
|
// Dialogs
|
||||||
|
"dialog.cancel": "Nu",
|
||||||
|
"dialog.ok": "Oki",
|
||||||
|
|
||||||
|
// Notification
|
||||||
|
"notification.updatingLibrarySongs": "Updating wibwawy songs...",
|
||||||
|
"notification.updatingLibraryAlbums": "Updating wibwawy awbums...",
|
||||||
|
"notification.updatingLibraryArtists": "Updating wibwawy awtists...",
|
||||||
|
|
||||||
|
// Terms
|
||||||
|
"term.appleInc": "Appwe Inc.",
|
||||||
|
"term.appleMusic": "Appwe Mewsic",
|
||||||
|
"term.applePodcasts": "Appwe Pawdcasts",
|
||||||
|
"term.itunes": "iTuwunes",
|
||||||
|
"term.github": "GitHuwub",
|
||||||
|
"term.discord": "Discowd",
|
||||||
|
"term.learnMore": "Weawn moar",
|
||||||
|
"term.accountSettings": "Accownt Settings",
|
||||||
|
"term.logout": "Wogout",
|
||||||
|
"term.login": "Wogin",
|
||||||
|
"term.about": "Abowt",
|
||||||
|
"term.privateSession": "Pwivate Session OwO",
|
||||||
|
"term.queue": "Quwue",
|
||||||
|
"term.search": "Seawch",
|
||||||
|
"term.library": "Wibwawy",
|
||||||
|
"term.listenNow": "Wisten Nao",
|
||||||
|
"term.browse": "Bwowse",
|
||||||
|
"term.radio": "Wadio",
|
||||||
|
"term.recentlyAdded": "Wecentwy Added",
|
||||||
|
"term.songs": "Sawngs",
|
||||||
|
"term.albums": "Awbums",
|
||||||
|
"term.artists": "Awtists",
|
||||||
|
"term.podcasts": "Pawdcasts",
|
||||||
|
"term.playlists": "Pwaywists",
|
||||||
|
"term.playlist": "Pwaywist",
|
||||||
|
"term.newPlaylist": "Nyew Pwaywist",
|
||||||
|
"term.newPlaylistFolder": "New Pwaywist Fowdew",
|
||||||
|
"term.createNewPlaylist": "Cweate New Pwaywist",
|
||||||
|
"term.createNewPlaylistFolder": "Cweate New Pwaywist Fowdew",
|
||||||
|
"term.deletePlaylist": "Awe chu suwe chu wan to dewete dis pwaywist?",
|
||||||
|
"term.play": "Pway",
|
||||||
|
"term.pause": "Pawse",
|
||||||
|
"term.previous": "Pwevious",
|
||||||
|
"term.next": "Next",
|
||||||
|
"term.shuffle": "Shuffwe",
|
||||||
|
"term.repeat": "Wepeat",
|
||||||
|
"term.volume": "Vowume",
|
||||||
|
"term.mute": "Muwute",
|
||||||
|
"term.unmute": "Unmuwute",
|
||||||
|
"term.share": "Shawe",
|
||||||
|
"term.share.success": "Copied to cwipboawd",
|
||||||
|
"term.settings": "Settings",
|
||||||
|
"term.seeAll": "See Aww",
|
||||||
|
"term.sortBy": "Sowt By",
|
||||||
|
"term.sortBy.album": "Awbum",
|
||||||
|
"term.sortBy.artist": "Awtist",
|
||||||
|
"term.sortBy.name": "Name",
|
||||||
|
"term.sortBy.genre": "Genwe",
|
||||||
|
"term.sortBy.releaseDate": "Wewease Date",
|
||||||
|
"term.sortBy.duration": "Duwation",
|
||||||
|
"term.sortOrder": "A-Z",
|
||||||
|
"term.sortOrder.ascending": "Ascending",
|
||||||
|
"term.sortOrder.descending": "Descending",
|
||||||
|
"term.viewAs": "View As",
|
||||||
|
"term.viewAs.coverArt": "Covew Awt",
|
||||||
|
"term.viewAs.list": "Wist",
|
||||||
|
"term.size": "Size",
|
||||||
|
"term.size.normal": "Nowmaw",
|
||||||
|
"term.size.compact": "Wittwe",
|
||||||
|
"term.enable": "Enabwe",
|
||||||
|
"term.disable": "Disabwe",
|
||||||
|
"term.enabled": "Enabwed",
|
||||||
|
"term.disabled": "Disabwed",
|
||||||
|
"term.connect": "Connect",
|
||||||
|
"term.connecting": "Connecting",
|
||||||
|
"term.disconnect": "Disconnect",
|
||||||
|
"term.authed": "Authed",
|
||||||
|
"term.confirm": "Confiwm?",
|
||||||
|
"term.more": "Moar",
|
||||||
|
"term.less": "Wess",
|
||||||
|
"term.showMore": "Show moar",
|
||||||
|
"term.showLess": "Show wess",
|
||||||
|
"term.topSongs": "Top Songs",
|
||||||
|
"term.latestReleases": "Watest Weweases",
|
||||||
|
"term.time.added": "Added",
|
||||||
|
"term.time.released": "Weweased",
|
||||||
|
"term.time.updated": "Updated",
|
||||||
|
"term.time.hours": "houws",
|
||||||
|
"term.time.hour": "houw",
|
||||||
|
"term.time.minutes": "minuwtes",
|
||||||
|
"term.time.minute": "minuwte",
|
||||||
|
"term.time.seconds": "seconds",
|
||||||
|
"term.time.second": "second",
|
||||||
|
"term.fullscreenView": "Fuwwwscween View",
|
||||||
|
"term.defaultView": "Defauwt View",
|
||||||
|
"term.audioSettings": "Audiowo Settings",
|
||||||
|
"term.clearAll": "Cweaw Aww",
|
||||||
|
"term.recentStations": "Wecent Stations",
|
||||||
|
"term.language": "Wanguage",
|
||||||
|
"term.funLanguages": "Fun",
|
||||||
|
"term.noLyrics": "Woading... / Wywics not found./ Instwumentaw.",
|
||||||
|
"term.copyright": "Copywight",
|
||||||
|
"term.rightsReserved": "All Wights Wesewved.",
|
||||||
|
"term.sponsor": "Sponsow dis pwoject",
|
||||||
|
"term.ciderTeam": "Cidew Team",
|
||||||
|
"term.developer": "Devewopew",
|
||||||
|
"term.socialTeam": "Sociaw Team",
|
||||||
|
"term.socials": "Sociaws",
|
||||||
|
"term.contributors": "Contwibutows",
|
||||||
|
"term.equalizer": "Equawizew",
|
||||||
|
"term.reset": "Weset",
|
||||||
|
"term.tracks": "twacks", // Assume x amount of tracks. e.g. 50 tracks
|
||||||
|
"term.videos": "Videowos",
|
||||||
|
"term.menu": "Menuwu",
|
||||||
|
"term.check": "Check",
|
||||||
|
"term.aboutArtist": "About {{artistName}}", // e.g. 'About Doja Cat'
|
||||||
|
"term.topResult": "Top Wesuwt", // Search Results
|
||||||
|
"term.sharedPlaylists": "Shawed Pwaywists", // Search Results
|
||||||
|
"term.people": "Peopwe", // Search Results
|
||||||
|
"term.newpreset.name": "New EQ Pweset Name", // Equalizer Preset
|
||||||
|
"term.addedpreset": "Added Pweset",
|
||||||
|
"term.deletepreset.warn": "Awe chu suwe chu want to dewete dis pweset?",
|
||||||
|
"term.deletedpreset": "Wemoved pweset",
|
||||||
|
"term.musicVideos": "Music Videowos", // Search page friendlyTypes
|
||||||
|
"term.stations": "Stations",
|
||||||
|
"term.curators": "Cuwatows",
|
||||||
|
"term.appleCurators": "Appwe Cuwatows",
|
||||||
|
"term.radioShows": "Wadio Shows",
|
||||||
|
"term.recordLabels": "Wecowd Wabews",
|
||||||
|
"term.videoExtras": "Videowo Extwas",
|
||||||
|
"term.top": "Top",
|
||||||
|
|
||||||
|
// Home
|
||||||
|
"home.title": "Home",
|
||||||
|
"home.recentlyPlayed": "Wecentwy Pwayed",
|
||||||
|
"home.recentlyAdded": "Wecentwy Added",
|
||||||
|
"home.artistsFeed": "Youw Awtists Feed",
|
||||||
|
"home.artistsFeed.noArtist": "Fowwow some awtists fiwst and theiw watest weleases wiww be here",
|
||||||
|
"home.madeForYou": "Made Fow Chu",
|
||||||
|
"home.friendsListeningTo": "Fwiends Wistening To",
|
||||||
|
"home.followedArtists": "Fowwowed Awtists",
|
||||||
|
|
||||||
|
// Errors
|
||||||
|
"error.appleMusicSubRequired": "Appwe Music wequiwes a subscwiption.",
|
||||||
|
"error.connectionError": "Thewe was a pwobwem connecting to Appwe Mewsic.",
|
||||||
|
"error.noResults": "No Wesuwts.",
|
||||||
|
"error.noResults.description": "Twy a new seawch.",
|
||||||
|
|
||||||
|
// Podcasts
|
||||||
|
"podcast.followOnCider": "Fowwow On Cidew",
|
||||||
|
"podcast.followedOnCider": "Fowwowing On Cidew",
|
||||||
|
"podcast.subscribeOnItunes": "Subscwibe On iTuwunes",
|
||||||
|
"podcast.subscribedOnItunes": "Subscwibed On iTuwunes",
|
||||||
|
"podcast.itunesStore": "iTuwunes Stowe",
|
||||||
|
"podcast.episodes": "Episowodes",
|
||||||
|
"podcast.playEpisode": "Pway Episowode",
|
||||||
|
"podcast.website": "Pawdcast Website",
|
||||||
|
|
||||||
|
// Actions
|
||||||
|
"action.addToLibrary": "Add to Wibwawy",
|
||||||
|
"action.addToLibrary.success": "Added to Wibwawy",
|
||||||
|
"action.addToLibrary.error": "Ewwow Adding to Wibwawy",
|
||||||
|
"action.removeFromLibrary": "Wemove fwom Wibwawy",
|
||||||
|
"action.removeFromLibrary.success": "Wemoved fwom Wibwawy",
|
||||||
|
"action.addToQueue": "Add to Quwue",
|
||||||
|
"action.addToQueue.success": "Added to Quwue",
|
||||||
|
"action.addToQueue.error": "Ewwow Adding to Quwue",
|
||||||
|
"action.removeFromQueue": "Wemove fwom Quwue",
|
||||||
|
"action.removeFromQueue.success": "Wemoved fwom Quwue",
|
||||||
|
"action.removeFromQueue.error": "Ewwow Wemoving fwom Quwue",
|
||||||
|
"action.createPlaylist": "Cweate a New Pwaywist",
|
||||||
|
"action.addToPlaylist": "Add to Pwaywist",
|
||||||
|
"action.removeFromPlaylist": "Wemove fwom Pwaywist",
|
||||||
|
"action.addToFavorites": "Add to Favowites",
|
||||||
|
"action.follow": "Fowwow",
|
||||||
|
"action.follow.success": "Fowwowed",
|
||||||
|
"action.follow.error": "Ewwow Fowwowing",
|
||||||
|
"action.unfollow": "Unfowwow",
|
||||||
|
"action.unfollow.success": "Unfowwowed",
|
||||||
|
"action.unfollow.error": "Ewwow Unfowwowing",
|
||||||
|
"action.playNext": "Pway Next",
|
||||||
|
"action.playLater": "Pway Watew",
|
||||||
|
"action.startRadio": "Stawt Wadio",
|
||||||
|
"action.goToArtist": "Go to Awtist",
|
||||||
|
"action.goToAlbum": "Go to Awbum",
|
||||||
|
"action.moveToTop": "Move to top",
|
||||||
|
"action.share": "Shawe",
|
||||||
|
"action.rename": "Wename",
|
||||||
|
"action.love": "Wuv",
|
||||||
|
"action.unlove": "Unwuv",
|
||||||
|
"action.dislike": "Diswike",
|
||||||
|
"action.undoDislike": "Undo diswike",
|
||||||
|
"action.showWebRemoteQR": "Web Wiimote",
|
||||||
|
"action.playTracksNext": "Pway ${app.selectedMediaItems.length} twacks next",
|
||||||
|
"action.playTracksLater": "Pway ${app.selectedMediaItems.length} twacks latew",
|
||||||
|
"action.removeTracks": "Wemove ${self.selectedItems.length} twacks fwom quwue",
|
||||||
|
"action.import": "Impowt",
|
||||||
|
"action.export": "Expowt",
|
||||||
|
"action.showAlbum": "Show Compwete Awbum",
|
||||||
|
"action.tray.minimize": "Minimize to Tway",
|
||||||
|
"action.tray.quit": "Quit",
|
||||||
|
"action.tray.show": "Show",
|
||||||
|
"action.update": "Update",
|
||||||
|
"action.newpreset": "New Pweset...", // Equalizer Preset
|
||||||
|
"action.deletepreset": "Dewete Pweset",
|
||||||
|
|
||||||
|
// Settings - General
|
||||||
|
"settings.header.general": "Genewaw",
|
||||||
|
"settings.header.general.description": "Adjust the genewaw settings fow Cidew.",
|
||||||
|
"settings.option.general.language": "Wanguage",
|
||||||
|
|
||||||
|
// Language optgroups
|
||||||
|
"settings.option.general.language.main": "Wanguages",
|
||||||
|
"settings.option.general.language.fun": "Fun Wanguages",
|
||||||
|
"settings.option.general.language.unsorted": "Unsowted",
|
||||||
|
|
||||||
|
// Update Cider
|
||||||
|
"settings.option.general.updateCider": "Update Cidew", // Button
|
||||||
|
"settings.option.general.updateCider.branch": "Cidew Update Bwanch", // Dropdown
|
||||||
|
"settings.option.general.updateCider.branch.description": "Sewect the bwanch to uwpdate Cidew to",
|
||||||
|
"settings.option.general.updateCider.branch.main": "Stabwe",
|
||||||
|
"settings.option.general.updateCider.branch.develop": "Devewopment",
|
||||||
|
|
||||||
|
// Settings - Audio
|
||||||
|
"settings.header.audio": "Audiowo",
|
||||||
|
"settings.header.audio.description": "Adjust the audiowo settings fow Cidew.",
|
||||||
|
"settings.option.audio.quality": "Audiowo Quawity", // Dropdown
|
||||||
|
"settings.header.audio.quality.hireslossless": "Hi-res losswess",
|
||||||
|
"settings.header.audio.quality.hireslossless.description": "(uwp to 24-bit/192 khz)",
|
||||||
|
"settings.header.audio.quality.lossless": "Losswess",
|
||||||
|
"settings.header.audio.quality.lossless.description": "(uwp to 24-bit/48 khz)",
|
||||||
|
"settings.header.audio.quality.high": "High",
|
||||||
|
"settings.header.audio.quality.low": "Low", // keeping as low because confusion with the word wow
|
||||||
|
"settings.header.audio.quality.auto": "Autowo",
|
||||||
|
"settings.option.audio.seamlessTransition": "Seamwess Audiowo Twansition", // Toggle
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality": "Enabwe Advanced Functionawity", // Toggle
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.description": "Enabwing AudiowoContext functionawity wiww awwow fow extended audiowo featuwes wike Audiowo Nowmawization, Equalizews and Visuawizews, howevew on some systems dis may cause stuttewing in audiowo twacks.",
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.ciderPPE": "Cidew Adwenawine Pwocessow™️", // Toggle
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.ciderPPE.description": "Psychoacouwstic enhancements that makes evewything souwnd both wichew and mowe wivewy. | Designed by Maikiwi",
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength": "CAP Stwength", // Toggle
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.description": "Changes the stwength of the pwocessing done to the auwdio. (Aggwessive may yiewd uwndesiwabwe wesuwwts)",
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.standard": "Standawd",
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.aggressive": "Aggwessive",
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.audioNormalization": "Audiowo Nowmawization", // Toggle
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "Nowmawizes peak vowume fow individuaw twacks to cweate a moar unifowm wistening expewience.",
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "Audiowo Spatiawization", // Toggle
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "Spatiawize audiowo and make audiowo moar 3-dimensionaw (note: Dis is not Dowby Atmos)",
|
||||||
|
|
||||||
|
// Settings - Visual
|
||||||
|
"settings.header.visual": "Visuaw",
|
||||||
|
"settings.header.visual.description": "Adjust the visuaw settings fow Cidew.",
|
||||||
|
"settings.option.visual.windowBackgroundStyle": "Window Backgwound Stywe", // Toggle
|
||||||
|
"settings.header.visual.windowBackgroundStyle.none": "None",
|
||||||
|
"settings.header.visual.windowBackgroundStyle.artwork": "Awtwowk",
|
||||||
|
"settings.header.visual.windowBackgroundStyle.image": "Image",
|
||||||
|
"settings.option.visual.animatedArtwork": "Animated Awtwowk", // Dropdown
|
||||||
|
"settings.header.visual.animatedArtwork.always": "Awways",
|
||||||
|
"settings.header.visual.animatedArtwork.limited": "Wimited to pages and speciaw entwies",
|
||||||
|
"settings.header.visual.animatedArtwork.disable": "Disabwe evewywhewe",
|
||||||
|
"settings.option.visual.animatedArtworkQuality": "Animated Awtwowk Quawity", // Dropdown
|
||||||
|
"settings.header.visual.animatedArtworkQuality.low": "Low",
|
||||||
|
"settings.header.visual.animatedArtworkQuality.medium": "Medium",
|
||||||
|
"settings.header.visual.animatedArtworkQuality.high": "High",
|
||||||
|
"settings.header.visual.animatedArtworkQuality.veryHigh": "Vewy High",
|
||||||
|
"settings.header.visual.animatedArtworkQuality.extreme": "Extweme",
|
||||||
|
"settings.option.visual.animatedWindowBackground": "Animated Window Backgwound", // Toggle
|
||||||
|
"settings.option.visual.hardwareAcceleration": "Hawdwawe Accewewation", // Dropdown
|
||||||
|
"settings.option.visual.hardwareAcceleration.description": "Wequiwes wewaunch",
|
||||||
|
"settings.header.visual.hardwareAcceleration.default": "Defauwt",
|
||||||
|
"settings.header.visual.hardwareAcceleration.webGPU": "WebGPU",
|
||||||
|
// Refer to term.disabled for the disabled option
|
||||||
|
"settings.option.visual.showPersonalInfo": "Show Pewsonaw Info", // Toggle
|
||||||
|
|
||||||
|
// Settings - Lyrics
|
||||||
|
"settings.header.lyrics": "Wywics",
|
||||||
|
"settings.header.lyrics.description": "Adjust the wywics settings fow Cidew.",
|
||||||
|
"settings.option.lyrics.enableMusixmatch": "Enabwe Musixmatch Wywics", // Toggle
|
||||||
|
"settings.option.lyrics.enableMusixmatchKaraoke": "Enabwe Kawaoke Mode (Musixmatch onwy)", // Toggle
|
||||||
|
"settings.option.lyrics.musixmatchPreferredLanguage": "Musixmatch Twanswation Pwefewwed Wanguage", // Dropdown
|
||||||
|
"settings.option.lyrics.enableYoutubeLyrics": "Enabwe YouTube Wywics fow Mewsic Videowos", // Toggle
|
||||||
|
|
||||||
|
// Settings - Connectivity
|
||||||
|
"settings.header.connectivity": "Connectivity",
|
||||||
|
"settings.header.connectivity.description": "Adjust the connectivity settings fow Cidew.",
|
||||||
|
"settings.option.connectivity.discordRPC": "Discowd Wich Pwesence", // Dropdown
|
||||||
|
"settings.option.connectivity.playbackNotifications": "Pwayback Notifications", // Toggle
|
||||||
|
// Refer to term.disabled for the disabled option
|
||||||
|
"settings.header.connectivity.discordRPC.cider": "Disway as 'Cider'",
|
||||||
|
"settings.header.connectivity.discordRPC.appleMusic": "Dispway as 'Apple Music'",
|
||||||
|
"settings.option.connectivity.discordRPC.clearOnPause": "Cweaw Discowd Wich Pwesence on Paws", // Toggle
|
||||||
|
"settings.option.connectivity.lastfmScrobble": "Wast.fm Scwobbwing", // Option to Connect
|
||||||
|
"settings.option.connectivity.lastfmScrobble.delay": "Wast.fm Scwobble Deway (%)",
|
||||||
|
"settings.option.connectivity.lastfmScrobble.nowPlaying": "Enabwe Wast.fm Nao Pwaying",
|
||||||
|
"settings.option.connectivity.lastfmScrobble.removeFeatured": "Wemove featuwing awtists fwom song titwe (Wast.fm)",
|
||||||
|
"settings.option.connectivity.lastfmScrobble.filterLoop": "Fiwtew wooped twack (Wast.fm)",
|
||||||
|
// Refer to term.connect for the connect button
|
||||||
|
|
||||||
|
// Settings - Experimental
|
||||||
|
"settings.header.experimental": "Expewimentaw",
|
||||||
|
"settings.header.experimental.description": "Adjust the expewimentaw settings fow Cidew.",
|
||||||
|
"settings.option.experimental.compactUI": "Wittwe UI", // Toggle
|
||||||
|
"settings.option.experimental.close_button_hide": "Cwose Button Shouwd Hide the Appwication",
|
||||||
|
|
||||||
|
// Refer to term.disabled & term.enabled
|
||||||
|
// Spatialization Menu
|
||||||
|
"spatial.notTurnedOn": "Audiowo Spatiawization is disabwed. To use, pwease enabwe it fiwst.",
|
||||||
|
"spatial.spatialProperties": "Spatiaw Pwopewties",
|
||||||
|
"spatial.width": "Width",
|
||||||
|
"spatial.height": "Height",
|
||||||
|
"spatial.depth": "Depth",
|
||||||
|
"spatial.gain": "Gain",
|
||||||
|
"spatial.roomMaterials": "Woom Matewiaws",
|
||||||
|
"spatial.roomDimensions": "Woom Dimensions",
|
||||||
|
"spatial.roomPositions": "Woom Positions",
|
||||||
|
"spatial.setDimensions": "Set Dimensions",
|
||||||
|
"spatial.setPositions": "Set Positions",
|
||||||
|
"spatial.up": "Up",
|
||||||
|
"spatial.front": "Fwont",
|
||||||
|
"spatial.left": "Weft",
|
||||||
|
"spatial.right": "Wight",
|
||||||
|
"spatial.back": "Back",
|
||||||
|
"spatial.down": "Down",
|
||||||
|
"spatial.listener": "Wistenew",
|
||||||
|
"spatial.audioSource": "Audiowo Souwce",
|
||||||
|
|
||||||
|
// Settings - Unfinished
|
||||||
|
"settings.header.unfinished": "Unfinished",
|
||||||
|
|
||||||
|
// Web Remote
|
||||||
|
"remote.web.title": "Cidew Wiimote",
|
||||||
|
"remote.web.description": "Scan da QR code to paiw chur phone up with dis Cidew instance",
|
||||||
|
|
||||||
|
// About
|
||||||
|
"about.thanks": "Majow tanks to da Cidew Cowwective Team and aww of ouw contwibutows."
|
||||||
|
}
|
|
@ -1,10 +1,9 @@
|
||||||
{ // Base File
|
{ // Base File
|
||||||
|
|
||||||
// i18n Info
|
// i18n Info
|
||||||
"i18n.languageName": "piss", // name of language in native language
|
"i18n.languageName": "piss", // name of language in native language
|
||||||
"i18n.languageNameEnglish": "English (piss)", // name of language in English
|
"i18n.languageNameEnglish": "English (piss)", // name of language in English
|
||||||
"i18n.category": "fun", // main = real language, fun = fun community languages
|
"i18n.category": "fun", // main = real language, fun = fun community languages
|
||||||
"i18n.authors": "@SoNothingMC", // Authors, if you contribute to this file feel free to add your name seperated with a space
|
"i18n.authors": "@SoNothingMC @saboooor", // Authors, if you contribute to this file feel free to add your name seperated with a space
|
||||||
|
|
||||||
// App info
|
// App info
|
||||||
"app.name": "piss",
|
"app.name": "piss",
|
||||||
|
@ -19,6 +18,7 @@
|
||||||
"notification.updatingLibrarySongs": "pisssing all over your songs",
|
"notification.updatingLibrarySongs": "pisssing all over your songs",
|
||||||
"notification.updatingLibraryAlbums": "pissing all over your albums",
|
"notification.updatingLibraryAlbums": "pissing all over your albums",
|
||||||
"notification.updatingLibraryArtists": "pissing all over your idols",
|
"notification.updatingLibraryArtists": "pissing all over your idols",
|
||||||
|
|
||||||
// Terms
|
// Terms
|
||||||
"term.appleInc": "piss Inc.",
|
"term.appleInc": "piss Inc.",
|
||||||
"term.appleMusic": "piss music",
|
"term.appleMusic": "piss music",
|
||||||
|
@ -32,7 +32,8 @@
|
||||||
"term.login": "piss in",
|
"term.login": "piss in",
|
||||||
"term.about": "piss info",
|
"term.about": "piss info",
|
||||||
"term.privateSession": "piss in private",
|
"term.privateSession": "piss in private",
|
||||||
"term.queue": "to be pissed",
|
"term.queue": "the toilet",
|
||||||
|
"term.history": "the sewage",
|
||||||
"term.search": "find piss",
|
"term.search": "find piss",
|
||||||
"term.library": "obtained piss",
|
"term.library": "obtained piss",
|
||||||
"term.listenNow": "piss now",
|
"term.listenNow": "piss now",
|
||||||
|
@ -60,6 +61,7 @@
|
||||||
"term.mute": "piss without sound",
|
"term.mute": "piss without sound",
|
||||||
"term.unmute": "piss with sound",
|
"term.unmute": "piss with sound",
|
||||||
"term.share": "piss on your friends",
|
"term.share": "piss on your friends",
|
||||||
|
"term.share.success": "copied piss, go piss on your friends",
|
||||||
"term.settings": "pissettings",
|
"term.settings": "pissettings",
|
||||||
"term.seeAll": "all of the piss",
|
"term.seeAll": "all of the piss",
|
||||||
"term.sortBy": "piss by",
|
"term.sortBy": "piss by",
|
||||||
|
@ -91,7 +93,7 @@
|
||||||
"term.less": "piss less",
|
"term.less": "piss less",
|
||||||
"term.showMore": "more piss",
|
"term.showMore": "more piss",
|
||||||
"term.showLess": "less piss",
|
"term.showLess": "less piss",
|
||||||
"term.topSongs" : "top piss",
|
"term.topSongs": "top piss",
|
||||||
"term.latestReleases": "latest piss collection",
|
"term.latestReleases": "latest piss collection",
|
||||||
"term.time.added": "pissed",
|
"term.time.added": "pissed",
|
||||||
"term.time.released": "pissed",
|
"term.time.released": "pissed",
|
||||||
|
@ -121,9 +123,25 @@
|
||||||
"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
|
"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!",
|
||||||
|
"term.aboutArtist": "about pisser {{artistName}}", // e.g. 'About Doja Cat'
|
||||||
|
"term.topResult": "top piss", // Search Results
|
||||||
|
"term.sharedPlaylists": "shared pisslists", // Search Results
|
||||||
|
"term.people": "pissers", // Search Results
|
||||||
|
"term.newpreset.name": "new advanced piss prepiss name", // Equalizer Preset
|
||||||
|
"term.addedpreset": "pissed prepiss",
|
||||||
|
"term.deletepreset.warn": "are you sure you want to unpiss this prepiss?",
|
||||||
|
"term.deletedpreset": "unpissed prepiss",
|
||||||
|
"term.musicVideos": "piss music videos", // Search page friendlyTypes
|
||||||
|
"term.stations": "pisses",
|
||||||
|
"term.curators": "pissators",
|
||||||
|
"term.appleCurators": "piss pissators",
|
||||||
|
"term.radioShows": "shows that piss everywhere",
|
||||||
|
"term.recordLabels": "piss labels",
|
||||||
|
"term.videoExtras": "extra piss videos",
|
||||||
|
"term.top": "topiss",
|
||||||
|
|
||||||
// Home
|
// Home
|
||||||
"home.title": "piss central",
|
"home.title": "piss central",
|
||||||
|
@ -134,13 +152,14 @@
|
||||||
"home.madeForYou": "pissed for you",
|
"home.madeForYou": "pissed for you",
|
||||||
"home.friendsListeningTo": "friends pissing to",
|
"home.friendsListeningTo": "friends pissing to",
|
||||||
"home.followedArtists": "followed pissers",
|
"home.followedArtists": "followed pissers",
|
||||||
|
|
||||||
// Errors
|
// Errors
|
||||||
"error.appleMusicSubRequired": "piss music requires, like y'know, an actual piss music subscription to actually use.",
|
"error.appleMusicSubRequired": "piss music requires, like y'know, an actual piss music subscription to actually use.",
|
||||||
"error.connectionError": "oh, piss.",
|
"error.connectionError": "oh, piss.",
|
||||||
"error.noResults": "no piss found",
|
"error.noResults": "no piss found",
|
||||||
"error.noResults.description": "try pissing somewhere else (or press Enter/Return to search)",
|
"error.noResults.description": "try pissing somewhere else (or press Enter/Return to search)",
|
||||||
|
|
||||||
//Podcasts
|
// Podcasts
|
||||||
"podcast.followOnCider": "piss on Cider",
|
"podcast.followOnCider": "piss on Cider",
|
||||||
"podcast.followedOnCider": "pissed on Cider",
|
"podcast.followedOnCider": "pissed on Cider",
|
||||||
"podcast.subscribeOnItunes": "piss on iPiss",
|
"podcast.subscribeOnItunes": "piss on iPiss",
|
||||||
|
@ -154,8 +173,8 @@
|
||||||
"action.addToLibrary": "obtain piss",
|
"action.addToLibrary": "obtain piss",
|
||||||
"action.addToLibrary.success": "piss obtained",
|
"action.addToLibrary.success": "piss obtained",
|
||||||
"action.addToLibrary.error": "error obtaining piss",
|
"action.addToLibrary.error": "error obtaining piss",
|
||||||
"action.removeFromLibrary": "unobtain piss",
|
"action.removeFromLibrary": "dump piss",
|
||||||
"action.removeFromLibrary.success": "piss unobtained",
|
"action.removeFromLibrary.success": "piss dumped",
|
||||||
"action.addToQueue": "add to toilet",
|
"action.addToQueue": "add to toilet",
|
||||||
"action.addToQueue.success": "added to toilet",
|
"action.addToQueue.success": "added to toilet",
|
||||||
"action.addToQueue.error": "error adding to toilet",
|
"action.addToQueue.error": "error adding to toilet",
|
||||||
|
@ -191,10 +210,13 @@
|
||||||
"action.import": "impiss",
|
"action.import": "impiss",
|
||||||
"action.export": "expiss",
|
"action.export": "expiss",
|
||||||
"action.showAlbum": "show complete piss collection",
|
"action.showAlbum": "show complete piss collection",
|
||||||
// Waiting on Core for moving plugin to app.ts
|
|
||||||
"action.tray.minimize": "piss off to tray",
|
"action.tray.minimize": "piss off to tray",
|
||||||
"action.tray.quit": "piss off",
|
"action.tray.quit": "piss off",
|
||||||
"action.tray.show": "piss back",
|
"action.tray.show": "piss back",
|
||||||
|
"action.update": "piss!",
|
||||||
|
"action.copy": "copiss",
|
||||||
|
"action.newpreset": "new prepiss...", // Equalizer Preset
|
||||||
|
"action.deletepreset": "unpiss prepiss",
|
||||||
|
|
||||||
// Settings - General
|
// Settings - General
|
||||||
"settings.header.general": "general",
|
"settings.header.general": "general",
|
||||||
|
@ -206,20 +228,31 @@
|
||||||
"settings.option.general.language.fun": "piss languages",
|
"settings.option.general.language.fun": "piss languages",
|
||||||
"settings.option.general.language.unsorted": "???? who put this here",
|
"settings.option.general.language.unsorted": "???? who put this here",
|
||||||
|
|
||||||
|
// Update Cider
|
||||||
|
"settings.option.general.updateCider": "piss on cider", // Button
|
||||||
|
|
||||||
// Settings - Audio
|
// Settings - Audio
|
||||||
"settings.header.audio": "piss sounds",
|
"settings.header.audio": "piss sounds",
|
||||||
"settings.header.audio.description": "change how your piss sounds",
|
"settings.header.audio.description": "change how your piss sounds",
|
||||||
"settings.option.audio.quality": "piss quality", // Dropdown
|
"settings.option.audio.quality": "piss quality", // Dropdown
|
||||||
|
"settings.header.audio.quality.hireslossless": "ungodly piss",
|
||||||
|
"settings.header.audio.quality.hireslossless.description": "(up to 24-pisses/192 piss hertz)",
|
||||||
|
"settings.header.audio.quality.lossless": "colorful piss",
|
||||||
|
"settings.header.audio.quality.lossless.description": "(up to 24-pisses/48 piss hertz)",
|
||||||
|
"settings.header.audio.quality.enhanced": "enhanced piss",
|
||||||
"settings.header.audio.quality.high": "nice piss",
|
"settings.header.audio.quality.high": "nice piss",
|
||||||
"settings.header.audio.quality.low": "piss with blood",
|
"settings.header.audio.quality.low": "piss with blood",
|
||||||
"settings.header.audio.quality.auto": "automatic piss",
|
"settings.header.audio.quality.auto": "automatic piss",
|
||||||
"settings.option.audio.seamlessTransition": "seamless piss-to-piss transition", // Toggle
|
"settings.option.audio.seamlessTransition": "seamless piss-to-piss transition", // Toggle
|
||||||
"settings.option.audio.enableAdvancedFunctionality": "cool piss tricks", // Toggle
|
"settings.option.audio.enableAdvancedFunctionality": "cool piss tricks", // Toggle
|
||||||
"settings.option.audio.enableAdvancedFunctionality.description": "enabling the AudioContext thingy allows you to do cool stuffs, however on some systems your song may stutter",
|
"settings.option.audio.enableAdvancedFunctionality.description": "enabling the AudioContext thingy allows you to do cool stuffs, however on some systems your song may stutter",
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.ciderPPE": "clear piss™️", // Toggle
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.ciderPPE.description": "makes your bladder go overboard and makes your piss crisp and clear.",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.audioNormalization": "piss normaliztion", // Toggle
|
"settings.option.audio.enableAdvancedFunctionality.audioNormalization": "piss normaliztion", // Toggle
|
||||||
"settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "protect your eardrums from overly loud/slient pisses",
|
"settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "protect your eardrums from overly loud/slient pisses",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "3D piss", // Toggle
|
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "3D piss", // Toggle
|
||||||
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "this aint the dolby atmos you are looking for but its still pretty crazy so check it out",
|
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "this aint the dolby atmos you are looking for but its still pretty crazy so check it out",
|
||||||
|
|
||||||
// Settings - Visual
|
// Settings - Visual
|
||||||
"settings.header.visual": "piss appearance",
|
"settings.header.visual": "piss appearance",
|
||||||
"settings.header.visual.description": "change how your piss looks",
|
"settings.header.visual.description": "change how your piss looks",
|
||||||
|
@ -242,6 +275,11 @@
|
||||||
"settings.option.visual.hardwareAcceleration.description": "you need to relaunch Cider",
|
"settings.option.visual.hardwareAcceleration.description": "you need to relaunch Cider",
|
||||||
"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 - Visual - Theme name
|
||||||
|
"settings.option.visual.theme.default": "regular piss",
|
||||||
|
"settings.option.visual.theme.dark": "black piss",
|
||||||
// Refer to term.disabled for the disabled option
|
// Refer to term.disabled for the disabled option
|
||||||
"settings.option.visual.showPersonalInfo": "show yourself to the pissiverse", // Toggle
|
"settings.option.visual.showPersonalInfo": "show yourself to the pissiverse", // Toggle
|
||||||
|
|
||||||
|
@ -273,12 +311,11 @@
|
||||||
"settings.header.experimental": "piss lab",
|
"settings.header.experimental": "piss lab",
|
||||||
"settings.header.experimental.description": "mitochondria is the powerhouse of the cell",
|
"settings.header.experimental.description": "mitochondria is the powerhouse of the cell",
|
||||||
"settings.option.experimental.compactUI": "compact piss", // Toggle
|
"settings.option.experimental.compactUI": "compact piss", // Toggle
|
||||||
"settings.option.experimental.closeButtonBehaviour": "piss off button behaviour",
|
"settings.option.experimental.close_button_hide": "play hide-and-seek when clicking close button",
|
||||||
"settings.option.experimental.closeButtonBehaviour.quit": "ask cider to piss off",
|
"settings.option.experimental.copy_log": "copy sewage to pissboard",
|
||||||
"settings.option.experimental.closeButtonBehaviour.minimizeTaskbar": "piss off to the taskbar",
|
"settings.option.experimental.inline_playlists": "inpiss pisslists and piss collections",
|
||||||
"settings.option.experimental.closeButtonBehaviour.minimizeTray": "piss off to the tray",
|
|
||||||
// Refer to term.disabled & term.enabled
|
|
||||||
|
|
||||||
|
// Refer to term.disabled & term.enabled
|
||||||
// Spatialization Menu
|
// Spatialization Menu
|
||||||
"spatial.notTurnedOn": "3D piss is not on. turn it on lol",
|
"spatial.notTurnedOn": "3D piss is not on. turn it on lol",
|
||||||
"spatial.spatialProperties": "3D properties",
|
"spatial.spatialProperties": "3D properties",
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
{
|
{
|
||||||
|
|
||||||
// i18n Info
|
// i18n Info
|
||||||
"i18n.languageName": "┤ᖋ|:ᖋᔮᒣ╎ᔮ ᖋ|:i!⍑ᖋᕊᒷᒣ", // name of language in native language
|
"i18n.languageName": "┤ᖋ|:ᖋᔮᒣ╎ᔮ ᖋ|:i!⍑ᖋᕊᒷᒣ", // name of language in native language
|
||||||
"i18n.languageNameEnglish": "Galactic Alphabet", // name of language in English
|
"i18n.languageNameEnglish": "Galactic Alphabet", // name of language in English
|
||||||
"i18n.category": "fun", // main = real language, fun = fun community languages
|
"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
|
"i18n.authors": "@kyw504100", // Authors, if you contribute to this file feel free to add your name seperated with a space
|
||||||
|
@ -19,6 +18,7 @@
|
||||||
"notification.updatingLibrarySongs": "⚍i!↸ᖋᒣ╎リ┤ |:╎ᕊ∷ᖋ∷॥ ϟᒍリ┤ϟ...",
|
"notification.updatingLibrarySongs": "⚍i!↸ᖋᒣ╎リ┤ |:╎ᕊ∷ᖋ∷॥ ϟᒍリ┤ϟ...",
|
||||||
"notification.updatingLibraryAlbums": "⚍i!↸ᖋᒣ╎リ┤ |:╎ᕊ∷ᖋ∷॥ ᖋ|:ᕊ⚍ᒲϟ...",
|
"notification.updatingLibraryAlbums": "⚍i!↸ᖋᒣ╎リ┤ |:╎ᕊ∷ᖋ∷॥ ᖋ|:ᕊ⚍ᒲϟ...",
|
||||||
"notification.updatingLibraryArtists": "⚍i!↸ᖋᒣ╎リ┤ |:╎ᕊ∷ᖋ∷॥ ᖋ∷ᒣ╎ϟᒣϟ...",
|
"notification.updatingLibraryArtists": "⚍i!↸ᖋᒣ╎リ┤ |:╎ᕊ∷ᖋ∷॥ ᖋ∷ᒣ╎ϟᒣϟ...",
|
||||||
|
|
||||||
// Terms
|
// Terms
|
||||||
"term.appleInc": "ᖋi!i!|:ᒷ ╎リᔮ.",
|
"term.appleInc": "ᖋi!i!|:ᒷ ╎リᔮ.",
|
||||||
"term.appleMusic": "ᖋi!i!|:ᒷ ᒲ⚍ϟ╎ᔮ",
|
"term.appleMusic": "ᖋi!i!|:ᒷ ᒲ⚍ϟ╎ᔮ",
|
||||||
|
@ -29,10 +29,11 @@
|
||||||
"term.learnMore": "|:ᒷᖋ∷リ ᒲᒍ∷ᒷ",
|
"term.learnMore": "|:ᒷᖋ∷リ ᒲᒍ∷ᒷ",
|
||||||
"term.accountSettings": "ᖋᔮᔮᒍ⚍リᒣ ϟᒷᒣᒣ╎リ┤ϟ",
|
"term.accountSettings": "ᖋᔮᔮᒍ⚍リᒣ ϟᒷᒣᒣ╎リ┤ϟ",
|
||||||
"term.logout": "|:ᒍ┤ᒍ⚍ᒣ",
|
"term.logout": "|:ᒍ┤ᒍ⚍ᒣ",
|
||||||
"term.login": "|:ᒍ┤╎リ",
|
"term.login": "|:ᒍ┤ ╎リ",
|
||||||
"term.about": "ᖋᕊᒍ⚍ᒣ",
|
"term.about": "ᖋᕊᒍ⚍ᒣ",
|
||||||
"term.privateSession": "I!∷╎⍊ᖋᒣᒷ ϟᒷϟϟ╎ᒍリ",
|
"term.privateSession": "I!∷╎⍊ᖋᒣᒷ ϟᒷϟϟ╎ᒍリ",
|
||||||
"term.queue": "ᑑ⚍ᒷ⚍ᒷ",
|
"term.queue": "ᑑ⚍ᒷ⚍ᒷ",
|
||||||
|
"term.history": "⍑╎ϟᒣᒍ∷॥",
|
||||||
"term.search": "ϟᒷᖋ∷ᔮ⍑",
|
"term.search": "ϟᒷᖋ∷ᔮ⍑",
|
||||||
"term.library": "|:╎ᕊ∷ᖋ∷॥",
|
"term.library": "|:╎ᕊ∷ᖋ∷॥",
|
||||||
"term.listenNow": "|:╎ϟᒣᒷリ",
|
"term.listenNow": "|:╎ϟᒣᒷリ",
|
||||||
|
@ -45,6 +46,11 @@
|
||||||
"term.podcasts": "I!ᒍ↸ᔮᖋϟᒣϟ",
|
"term.podcasts": "I!ᒍ↸ᔮᖋϟᒣϟ",
|
||||||
"term.playlists": "i!|:ᖋ॥|:╎ϟᒣϟ",
|
"term.playlists": "i!|:ᖋ॥|:╎ϟᒣϟ",
|
||||||
"term.playlist": "i!|:ᖋ॥|:╎ϟᒣ",
|
"term.playlist": "i!|:ᖋ॥|:╎ϟᒣ",
|
||||||
|
"term.newPlaylist": "リᒷ∴ i!|:ᖋ॥|:╎ϟᒣ",
|
||||||
|
"term.newPlaylistFolder": "リᒷ∴ i!|:ᖋ॥|:╎ϟᒣ ⎓ᒍ|:↸ᒷ∷",
|
||||||
|
"term.createNewPlaylist": "ᔮ∷ᒷᖋᒣᒷ リᒷ∴ i!|:ᖋ॥|:╎ϟᒣ",
|
||||||
|
"term.createNewPlaylistFolder": "ᔮ∷ᒷᖋᒣᒷ リᒷ∴ i!|:ᖋ॥|:╎ϟᒣ ⎓ᒍ|:↸ᒷ∷",
|
||||||
|
"term.deletePlaylist": "ᖋ∷ᒷ ॥ᒍ⚍ ϟ⚍∷ᒷ ॥ᒍ⚍ ∴ᖋリᒣ ᒣᒍ ↸ᒷ|:ᒷᒣᒷ ᒣ⍑╎ϟ i!|:ᖋ॥|:╎ϟᒣ?",
|
||||||
"term.play": "i!|:ᖋ॥",
|
"term.play": "i!|:ᖋ॥",
|
||||||
"term.pause": "I!ᖋ⚍ϟᒷ",
|
"term.pause": "I!ᖋ⚍ϟᒷ",
|
||||||
"term.previous": "I!∷ᒷ⍊╎ᒍ⚍ϟ",
|
"term.previous": "I!∷ᒷ⍊╎ᒍ⚍ϟ",
|
||||||
|
@ -55,6 +61,7 @@
|
||||||
"term.mute": "ᒲ⚍ᒣᒷ",
|
"term.mute": "ᒲ⚍ᒣᒷ",
|
||||||
"term.unmute": "⚍リᒲ⚍ᒣᒷ",
|
"term.unmute": "⚍リᒲ⚍ᒣᒷ",
|
||||||
"term.share": "ϟ⍑ᖋ∷ᒷ",
|
"term.share": "ϟ⍑ᖋ∷ᒷ",
|
||||||
|
"term.share.success": "ᔮᒍi!╎ᒷ↸ ᒣᒍ ᔮ|:╎i!ᕊᒍᖋ∷↸",
|
||||||
"term.settings": "ϟᒷᒣᒣ╎リ┤ϟ",
|
"term.settings": "ϟᒷᒣᒣ╎リ┤ϟ",
|
||||||
"term.seeAll": "ϟᒷᒷ ᖋ|:|:",
|
"term.seeAll": "ϟᒷᒷ ᖋ|:|:",
|
||||||
"term.sortBy": "ϟᒍ∷ᒣ ᕊ॥",
|
"term.sortBy": "ϟᒍ∷ᒣ ᕊ॥",
|
||||||
|
@ -86,7 +93,7 @@
|
||||||
"term.less": "|:ᒷϟϟ",
|
"term.less": "|:ᒷϟϟ",
|
||||||
"term.showMore": "ϟ⍑ᒍ∴ ᒲᒍ∷ᒷ",
|
"term.showMore": "ϟ⍑ᒍ∴ ᒲᒍ∷ᒷ",
|
||||||
"term.showLess": "ϟ⍑ᒍ∴ |:ᒷϟϟ",
|
"term.showLess": "ϟ⍑ᒍ∴ |:ᒷϟϟ",
|
||||||
"term.topSongs" : "ᒣᒍi! ϟᒍリ┤ϟ",
|
"term.topSongs": "ᒣᒍi! ϟᒍリ┤ϟ",
|
||||||
"term.latestReleases": "|:ᖋᒣᒷϟᒣ ∷ᒷ|:ᒷᖋϟᒷϟ",
|
"term.latestReleases": "|:ᖋᒣᒷϟᒣ ∷ᒷ|:ᒷᖋϟᒷϟ",
|
||||||
"term.time.added": "ᖋ↸↸ᒷ↸",
|
"term.time.added": "ᖋ↸↸ᒷ↸",
|
||||||
"term.time.released": "∷ᒷ|:ᒷᖋϟᒷ↸",
|
"term.time.released": "∷ᒷ|:ᒷᖋϟᒷ↸",
|
||||||
|
@ -118,7 +125,23 @@
|
||||||
"term.tracks": "ᒣ∷ᖋᔮ·ǀ·ϟ", // Assume x amount of tracks. e.g. 50 tracks
|
"term.tracks": "ᒣ∷ᖋᔮ·ǀ·ϟ", // Assume x amount of tracks. e.g. 50 tracks
|
||||||
"term.videos": "⍊╎↸ᒷᒍ",
|
"term.videos": "⍊╎↸ᒷᒍ",
|
||||||
"term.menu": "ᒲᒷ⚍リ",
|
"term.menu": "ᒲᒷ⚍リ",
|
||||||
"term.showAlbum": "ϟ⍑ᒍ∴ ᔮᒍᒲi!|:ᒷᒣᒷ ᖋ|:ᕊ⚍ᒲ",
|
"term.check": "ᔮ⍑ᒷᔮ·ǀ·",
|
||||||
|
"term.aboutArtist": "ᖋᕊᒍ⚍ᒣ {{artistName}}", // e.g. 'About Doja Cat'
|
||||||
|
"term.topResult": "ᒣᒍi! ∷ᒷϟ⚍|:ᒣ", // Search Results
|
||||||
|
"term.sharedPlaylists": "ϟ⍑ᖋ∷ᒷ↸ i!|:ᖋ॥|:╎ϟᒣϟ", // Search Results
|
||||||
|
"term.people": "i!ᒷᒍi!|:ᒷ", // Search Results
|
||||||
|
"term.newpreset.name": "リᒷ∴ ᒷᑑ i!∷ᒷϟᒷᒣ リᖋᒲᒷ", // Equalizer Preset
|
||||||
|
"term.addedpreset": "ᖋ↸↸ᒷ↸ i!∷ᒷϟᒷᒣ",
|
||||||
|
"term.deletepreset.warn": "ᖋ∷ᒷ ॥ᒍ⚍ ϟ⚍∷ᒷ ॥ᒍ⚍ ∴ᖋリᒣ ᒣᒍ ↸ᒷ|:ᒷᒣᒷ ᒣ⍑╎ϟ i!∷ᒷϟᒷᒣ?",
|
||||||
|
"term.deletedpreset": "∷ᒷᒲᒍ⍊ᒷ↸ i!∷ᒷϟᒷᒣ",
|
||||||
|
"term.musicVideos": "ᒲ⚍ϟ╎ᔮ ⍊╎↸ᒷᒍϟ", // Search page friendlyTypes
|
||||||
|
"term.stations": "ϟᒣᖋᒣ╎ᒍリϟ",
|
||||||
|
"term.curators": "ᔮ⚍∷ᖋᒣᒍ∷ϟ",
|
||||||
|
"term.appleCurators": "ᖋi!i!|:ᒷ ᔮ⚍∷ᖋᒣᒍ∷ϟ",
|
||||||
|
"term.radioShows": "∷ᖋ↸╎ᒍ ϟ⍑ᒍ∴ϟ",
|
||||||
|
"term.recordLabels": "∷ᒷᔮᒍ∷↸ |:ᖋᕊᒷ|:ϟ",
|
||||||
|
"term.videoExtras": "⍊╎↸ᒷᒍ ᒷ/ᒣ∷ᖋϟ",
|
||||||
|
"term.top": "ᒣᒍi!",
|
||||||
|
|
||||||
// Home
|
// Home
|
||||||
"home.title": "⍑ᒍᒲᒷ",
|
"home.title": "⍑ᒍᒲᒷ",
|
||||||
|
@ -129,13 +152,14 @@
|
||||||
"home.madeForYou": "ᒲᖋ↸ᒷ ⎓ᒍ∷ ॥ᒍ⚍",
|
"home.madeForYou": "ᒲᖋ↸ᒷ ⎓ᒍ∷ ॥ᒍ⚍",
|
||||||
"home.friendsListeningTo": "⎓∷╎ᒷリ↸ϟ |:╎ϟᒣᒷリ╎リ┤ ᒣᒍ",
|
"home.friendsListeningTo": "⎓∷╎ᒷリ↸ϟ |:╎ϟᒣᒷリ╎リ┤ ᒣᒍ",
|
||||||
"home.followedArtists": "⎓ᒍ|:|:ᒍ∴ᒷ↸ ᖋ∷ᒣ╎ϟᒣϟ",
|
"home.followedArtists": "⎓ᒍ|:|:ᒍ∴ᒷ↸ ᖋ∷ᒣ╎ϟᒣϟ",
|
||||||
|
|
||||||
// Errors
|
// Errors
|
||||||
"error.appleMusicSubRequired": "ᖋi!i!|:ᒷ ᒲ⚍ϟ╎ᔮ ∷ᒷᑑ⚍╎∷ᒷϟ ᖋ ϟ⚍ᕊϟᔮ∷╎i!ᒣ╎ᒍリ.",
|
"error.appleMusicSubRequired": "ᖋi!i!|:ᒷ ᒲ⚍ϟ╎ᔮ ∷ᒷᑑ⚍╎∷ᒷϟ ᖋ ϟ⚍ᕊϟᔮ∷╎i!ᒣ╎ᒍリ.",
|
||||||
"error.connectionError": "ᒣ⍑ᒷ∷ᒷ ∴ᖋϟ ᖋ i!∷ᒍᕊ|:ᒷᒲ ᔮᒍリリᒷᔮᒣ╎リ┤ ᒣᒍ ᖋi!i!|:ᒷ ᒲ⚍ϟ╎ᔮ.",
|
"error.connectionError": "ᒣ⍑ᒷ∷ᒷ ∴ᖋϟ ᖋ i!∷ᒍᕊ|:ᒷᒲ ᔮᒍリリᒷᔮᒣ╎リ┤ ᒣᒍ ᖋi!i!|:ᒷ ᒲ⚍ϟ╎ᔮ.",
|
||||||
"error.noResults": "リᒍ ∷ᒷϟ⚍|:ᒣϟ.",
|
"error.noResults": "リᒍ ∷ᒷϟ⚍|:ᒣϟ.",
|
||||||
"error.noResults.description": "ᒣ∷॥ ᖋ リᒷ∴ ϟᒷᖋ∷ᔮ⍑.",
|
"error.noResults.description": "ᒣ∷॥ ᖋ リᒷ∴ ϟᒷᖋ∷ᔮ⍑.",
|
||||||
|
|
||||||
//Podcasts
|
// Podcasts
|
||||||
"podcast.followOnCider": "⎓ᒍ|:|:ᒍ∴ ᒍリ ᔮ╎↸ᒷ∷",
|
"podcast.followOnCider": "⎓ᒍ|:|:ᒍ∴ ᒍリ ᔮ╎↸ᒷ∷",
|
||||||
"podcast.followedOnCider": "⎓ᒍ|:|:ᒍ∴╎リ┤ ᒍリ ᔮ╎↸ᒷ∷",
|
"podcast.followedOnCider": "⎓ᒍ|:|:ᒍ∴╎リ┤ ᒍリ ᔮ╎↸ᒷ∷",
|
||||||
"podcast.subscribeOnItunes": "ϟ⚍ᕊϟᔮ∷╎ᕊᒷ ᒍリ ╎ᒣ⚍リᒷϟ",
|
"podcast.subscribeOnItunes": "ϟ⚍ᕊϟᔮ∷╎ᕊᒷ ᒍリ ╎ᒣ⚍リᒷϟ",
|
||||||
|
@ -185,6 +209,14 @@
|
||||||
"action.removeTracks": "∷ᒷᒲᒍ⍊ᒷ ${self.selectedItems.length} ᒣ∷ᖋᔮ·ǀ·ϟ ⎓∷ᒍᒲ ᑑ⚍ᒷ⚍ᒷ",
|
"action.removeTracks": "∷ᒷᒲᒍ⍊ᒷ ${self.selectedItems.length} ᒣ∷ᖋᔮ·ǀ·ϟ ⎓∷ᒍᒲ ᑑ⚍ᒷ⚍ᒷ",
|
||||||
"action.import": "╎ᒲi!ᒍ∷ᒣ",
|
"action.import": "╎ᒲi!ᒍ∷ᒣ",
|
||||||
"action.export": "ᒷ/i!ᒍ∷ᒣ",
|
"action.export": "ᒷ/i!ᒍ∷ᒣ",
|
||||||
|
"action.showAlbum": "ϟ⍑ᒍ∴ ᔮᒍᒲi!|:ᒷᒣᒷ ᖋ|:ᕊ⚍ᒲ",
|
||||||
|
"action.tray.minimize": "ᒲ╎リ╎ᒲ╎∩ᒷ ᒣᒍ ᒣ∷ᖋ॥",
|
||||||
|
"action.tray.quit": "ᑑ⚍╎ᒣ",
|
||||||
|
"action.tray.show": "ϟ⍑ᒍ∴",
|
||||||
|
"action.update": "⚍i!↸ᖋᒣᒷ",
|
||||||
|
"action.copy": "ᔮᒍi!॥",
|
||||||
|
"action.newpreset": "リᒷ∴ i!∷ᒷϟᒷᒣ...", // Equalizer Preset
|
||||||
|
"action.deletepreset": "↸ᒷ|:ᒷᒣᒷ i!∷ᒷϟᒷᒣ",
|
||||||
|
|
||||||
// Settings - General
|
// Settings - General
|
||||||
"settings.header.general": "┤ᒷリᒷ∷ᖋ|:",
|
"settings.header.general": "┤ᒷリᒷ∷ᖋ|:",
|
||||||
|
@ -196,20 +228,30 @@
|
||||||
"settings.option.general.language.fun": "⎓⚍リ |:ᖋリ┤⚍ᖋ┤ᒷϟ",
|
"settings.option.general.language.fun": "⎓⚍リ |:ᖋリ┤⚍ᖋ┤ᒷϟ",
|
||||||
"settings.option.general.language.unsorted": "⚍リϟᒍ∷ᒣᒷ↸",
|
"settings.option.general.language.unsorted": "⚍リϟᒍ∷ᒣᒷ↸",
|
||||||
|
|
||||||
|
// Update Cider
|
||||||
|
"settings.option.general.updateCider": "⚍i!↸ᖋᒣᒷ ᔮ╎↸ᒷ∷",
|
||||||
|
|
||||||
// Settings - Audio
|
// Settings - Audio
|
||||||
"settings.header.audio": "ᖋ⚍↸╎ᒍ",
|
"settings.header.audio": "ᖋ⚍↸╎ᒍ",
|
||||||
"settings.header.audio.description": "ᖋ↸⋮⚍ϟᒣ ᒣ⍑ᒷ ᖋ⚍↸╎ᒍ ϟᒷᒣᒣ╎リ┤ϟ ⎓ᒍ∷ ᔮ╎↸ᒷ∷.",
|
"settings.header.audio.description": "ᖋ↸⋮⚍ϟᒣ ᒣ⍑ᒷ ᖋ⚍↸╎ᒍ ϟᒷᒣᒣ╎リ┤ϟ ⎓ᒍ∷ ᔮ╎↸ᒷ∷.",
|
||||||
"settings.option.audio.quality": "ᖋ⚍↸╎ᒍ ᑑ⚍ᖋ|:╎ᒣ॥", // Dropdown
|
"settings.option.audio.quality": "ᖋ⚍↸╎ᒍ ᑑ⚍ᖋ|:╎ᒣ॥", // Dropdown
|
||||||
|
"settings.header.audio.quality.hireslossless": "⍑╎-∷ᒷϟ |:ᒍϟϟ|:ᒷϟϟ",
|
||||||
|
"settings.header.audio.quality.hireslossless.description": "(⚍i! ᒣᒍ 24-ᕊ╎ᒣ/192 ·ǀ·⍑∩)",
|
||||||
|
"settings.header.audio.quality.lossless": "|:ᒍϟϟ|:ᒷϟϟ",
|
||||||
|
"settings.header.audio.quality.lossless.description": "(⚍i! ᒣᒍ 24-ᕊ╎ᒣ/48 ·ǀ·⍑∩)",
|
||||||
"settings.header.audio.quality.high": "⍑╎┤⍑",
|
"settings.header.audio.quality.high": "⍑╎┤⍑",
|
||||||
"settings.header.audio.quality.low": "|:ᒍ∴",
|
"settings.header.audio.quality.low": "|:ᒍ∴",
|
||||||
"settings.header.audio.quality.auto": "ᖋ⚍ᒣᒍ",
|
"settings.header.audio.quality.auto": "ᖋ⚍ᒣᒍ",
|
||||||
"settings.option.audio.seamlessTransition": "ϟᒷᖋᒲ|:ᒷϟϟ ᖋ⚍↸╎ᒍ ᒣ∷ᖋリϟ╎ᒣ╎ᒍリ", // Toggle
|
"settings.option.audio.seamlessTransition": "ϟᒷᖋᒲ|:ᒷϟϟ ᖋ⚍↸╎ᒍ ᒣ∷ᖋリϟ╎ᒣ╎ᒍリ", // Toggle
|
||||||
"settings.option.audio.enableAdvancedFunctionality": "ᒷリᖋᕊ|:ᒷ ᖋ↸⍊ᖋリᔮᒷ↸ ⎓⚍リᔮᒣ╎ᒍリᖋ|:╎ᒣ॥", // Toggle
|
"settings.option.audio.enableAdvancedFunctionality": "ᒷリᖋᕊ|:ᒷ ᖋ↸⍊ᖋリᔮᒷ↸ ⎓⚍リᔮᒣ╎ᒍリᖋ|:╎ᒣ॥", // Toggle
|
||||||
"settings.option.audio.enableAdvancedFunctionality.description": "ᒷリᖋᕊ|:╎リ┤ ᖋ⚍↸╎ᒍᔮᒍリᒣᒷ/ᒣ ⎓⚍リᔮᒣ╎ᒍリᖋ|:╎ᒣ॥ ∴╎|:|: ᖋ|:|:ᒍ∴ ⎓ᒍ∷ ᒷ/ᒣᒷリ↸ᒷ↸ ᖋ⚍↸╎ᒍ ⎓ᒷᖋᒣ⚍∷ᒷϟ |:╎·ǀ·ᒷ ᖋ⚍↸╎ᒍ リᒍ∷ᒲᖋ|:╎∩ᖋᒣ╎ᒍリ , ᒷᑑ⚍ᖋ|:╎∩ᒷ∷ϟ ᖋリ↸ ⍊╎ϟ⚍ᖋ|:╎∩ᒷ∷ϟ, ⍑ᒍ∴ᒷ⍊ᒷ∷ ᒍリ ϟᒍᒲᒷ ϟ॥ϟᒣᒷᒲϟ ᒣ⍑╎ϟ ᒲᖋ॥ ᔮᖋ⚍ϟᒷ ϟᒣ⚍ᒣᒣᒷ∷╎リ┤ ╎リ ᖋ⚍↸╎ᒍ ᒣ∷ᖋᔮ·ǀ·ϟ.",
|
"settings.option.audio.enableAdvancedFunctionality.description": "ᒷリᖋᕊ|:╎リ┤ ᖋ⚍↸╎ᒍᔮᒍリᒣᒷ/ᒣ ⎓⚍リᔮᒣ╎ᒍリᖋ|:╎ᒣ॥ ∴╎|:|: ᖋ|:|:ᒍ∴ ⎓ᒍ∷ ᒷ/ᒣᒷリ↸ᒷ↸ ᖋ⚍↸╎ᒍ ⎓ᒷᖋᒣ⚍∷ᒷϟ |:╎·ǀ·ᒷ ᖋ⚍↸╎ᒍ リᒍ∷ᒲᖋ|:╎∩ᖋᒣ╎ᒍリ , ᒷᑑ⚍ᖋ|:╎∩ᒷ∷ϟ ᖋリ↸ ⍊╎ϟ⚍ᖋ|:╎∩ᒷ∷ϟ, ⍑ᒍ∴ᒷ⍊ᒷ∷ ᒍリ ϟᒍᒲᒷ ϟ॥ϟᒣᒷᒲϟ ᒣ⍑╎ϟ ᒲᖋ॥ ᔮᖋ⚍ϟᒷ ϟᒣ⚍ᒣᒣᒷ∷╎リ┤ ╎リ ᖋ⚍↸╎ᒍ ᒣ∷ᖋᔮ·ǀ·ϟ.",
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.decryptLLPW": "↸ᒷᔮ∷॥i!ᒣ |:ᒍϟϟ|:ᒷϟϟ i!|:ᖋ॥ᕊᖋᔮ·ǀ· ∴ᒍ∷·ǀ·⎓|:ᒍ∴", // Toggle
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.decryptLLPW.description": "ᒷリᖋᕊ|:ᒷϟ ᒣ⍑ᒷ ᖋᕊ╎|:╎ᒣ॥ ⎓ᒍ∷ ᔮ╎↸ᒷ∷ ᒣᒍ ↸ᒷᔮ∷॥i!ᒣ |:ᒍϟϟ|:ᒷϟϟ ᖋ⚍↸╎ᒍ ⎓╎|:ᒷϟ. ᖋ ᒲ╎リᒍ∷ i!ᒷ∷⎓ᒍ∷ᒲᖋリᔮᒷ ⍑╎ᒣ ∴╎|:|: ᒍᔮᔮ⚍∷.",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.audioNormalization": "ᖋ⚍↸╎ᒍ リᒍ∷ᒲᖋ|:╎∩ᖋᒣ╎ᒍリ", // Toggle
|
"settings.option.audio.enableAdvancedFunctionality.audioNormalization": "ᖋ⚍↸╎ᒍ リᒍ∷ᒲᖋ|:╎∩ᖋᒣ╎ᒍリ", // Toggle
|
||||||
"settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "リᒍ∷ᒲᖋ|:╎∩ᒷϟ i!ᒷᖋ·ǀ· ⍊ᒍ|:⚍ᒲᒷ ⎓ᒍ∷ ╎リ↸╎⍊╎↸⚍ᖋ|: ᒣ∷ᖋᔮ·ǀ·ϟ ᒣᒍ ᔮ∷ᒷᖋᒣᒷ ᖋ ᒲᒍ∷ᒷ ⚍リ╎⎓ᒍ∷ᒲ |:╎ϟᒣᒷリ╎リ┤ ᒷ/i!ᒷ∷╎ᒷリᔮᒷ.",
|
"settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "リᒍ∷ᒲᖋ|:╎∩ᒷϟ i!ᒷᖋ·ǀ· ⍊ᒍ|:⚍ᒲᒷ ⎓ᒍ∷ ╎リ↸╎⍊╎↸⚍ᖋ|: ᒣ∷ᖋᔮ·ǀ·ϟ ᒣᒍ ᔮ∷ᒷᖋᒣᒷ ᖋ ᒲᒍ∷ᒷ ⚍リ╎⎓ᒍ∷ᒲ |:╎ϟᒣᒷリ╎リ┤ ᒷ/i!ᒷ∷╎ᒷリᔮᒷ.",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "ᖋ⚍↸╎ᒍ ϟi!ᖋᒣ╎ᖋ|:╎∩ᖋᒣ╎ᒍリ", // Toggle
|
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "ᖋ⚍↸╎ᒍ ϟi!ᖋᒣ╎ᖋ|:╎∩ᖋᒣ╎ᒍリ", // Toggle
|
||||||
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "ϟi!ᖋᒣ╎ᖋ|:╎∩ᒷ ᖋ⚍↸╎ᒍ ᖋリ↸ ᒲᖋ·ǀ·ᒷ ᖋ⚍↸╎ᒍ ᒲᒍ∷ᒷ 3-↸╎ᒲᒷリϟ╎ᒍリᖋ|: (リᒍᒣᒷ: ᒣ⍑╎ϟ ╎ϟ リᒍᒣ ↸ᒍ|:ᕊ॥ ᖋᒣᒲᒍϟ)",
|
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "ϟi!ᖋᒣ╎ᖋ|:╎∩ᒷ ᖋ⚍↸╎ᒍ ᖋリ↸ ᒲᖋ·ǀ·ᒷ ᖋ⚍↸╎ᒍ ᒲᒍ∷ᒷ 3-↸╎ᒲᒷリϟ╎ᒍリᖋ|: (リᒍᒣᒷ: ᒣ⍑╎ϟ ╎ϟ リᒍᒣ ↸ᒍ|:ᕊ॥ ᖋᒣᒲᒍϟ)",
|
||||||
|
|
||||||
// Settings - Visual
|
// Settings - Visual
|
||||||
"settings.header.visual": "⍊╎ϟ⚍ᖋ|:",
|
"settings.header.visual": "⍊╎ϟ⚍ᖋ|:",
|
||||||
"settings.header.visual.description": "ᖋ↸⋮⚍ϟᒣ ᒣ⍑ᒷ ⍊╎ϟ⚍ᖋ| ϟᒷᒣᒣ╎リ┤ϟ ⎓ᒍ∷ ᔮ╎↸ᒷ∷.",
|
"settings.header.visual.description": "ᖋ↸⋮⚍ϟᒣ ᒣ⍑ᒷ ⍊╎ϟ⚍ᖋ| ϟᒷᒣᒣ╎リ┤ϟ ⎓ᒍ∷ ᔮ╎↸ᒷ∷.",
|
||||||
|
@ -232,6 +274,11 @@
|
||||||
"settings.option.visual.hardwareAcceleration.description": "∷ᒷᑑ⚍╎∷ᒷϟ ∷ᒷ|:ᖋ⚍リᔮ⍑",
|
"settings.option.visual.hardwareAcceleration.description": "∷ᒷᑑ⚍╎∷ᒷϟ ∷ᒷ|:ᖋ⚍リᔮ⍑",
|
||||||
"settings.header.visual.hardwareAcceleration.default": "↸ᒷ⎓ᖋ⚍|:ᒣ",
|
"settings.header.visual.hardwareAcceleration.default": "↸ᒷ⎓ᖋ⚍|:ᒣ",
|
||||||
"settings.header.visual.hardwareAcceleration.webGPU": "∴ᒷᕊ┤i!⚍",
|
"settings.header.visual.hardwareAcceleration.webGPU": "∴ᒷᕊ┤i!⚍",
|
||||||
|
"settings.header.visual.theme": "ᒣ⍑ᒷᒲᒷ",
|
||||||
|
|
||||||
|
// Settings - Visual - Theme name
|
||||||
|
"settings.option.visual.theme.default": "ᔮ╎↸ᒷ∷",
|
||||||
|
"settings.option.visual.theme.dark": "↸ᖋ∷·ǀ·",
|
||||||
// Refer to term.disabled for the disabled option
|
// Refer to term.disabled for the disabled option
|
||||||
"settings.option.visual.showPersonalInfo": "ϟ⍑ᒍ∴ i!ᒷ∷ϟᒍリᖋ|: ╎リ⎓ᒍ", // Toggle
|
"settings.option.visual.showPersonalInfo": "ϟ⍑ᒍ∴ i!ᒷ∷ϟᒍリᖋ|: ╎リ⎓ᒍ", // Toggle
|
||||||
|
|
||||||
|
@ -252,42 +299,42 @@
|
||||||
"settings.header.connectivity.discordRPC.cider": "↸╎ϟi!|:ᖋ॥ ᖋϟ 'ᔮ╎↸ᒷ∷'",
|
"settings.header.connectivity.discordRPC.cider": "↸╎ϟi!|:ᖋ॥ ᖋϟ 'ᔮ╎↸ᒷ∷'",
|
||||||
"settings.header.connectivity.discordRPC.appleMusic": "↸╎ϟi!|:ᖋ॥ ᖋϟ 'ᖋi!i!|:ᒷ ᒲ⚍ϟ╎ᔮ'",
|
"settings.header.connectivity.discordRPC.appleMusic": "↸╎ϟi!|:ᖋ॥ ᖋϟ 'ᖋi!i!|:ᒷ ᒲ⚍ϟ╎ᔮ'",
|
||||||
"settings.option.connectivity.discordRPC.clearOnPause": "ᔮ|:ᒷᖋ∷ ↸╎ϟᔮᒍ∷↸ ∷╎ᔮ⍑ i!∷ᒷϟᒷリᔮᒷ ᒍリ i!ᖋ⚍ϟᒷ", // Toggle
|
"settings.option.connectivity.discordRPC.clearOnPause": "ᔮ|:ᒷᖋ∷ ↸╎ϟᔮᒍ∷↸ ∷╎ᔮ⍑ i!∷ᒷϟᒷリᔮᒷ ᒍリ i!ᖋ⚍ϟᒷ", // Toggle
|
||||||
"settings.option.connectivity.lastfmScrobble": "|:ᖋϟᒣ⎓ᒲ ϟᔮ∷ᒍᕊᕊ|:╎リ┤", // Option to Connect
|
"settings.option.connectivity.lastfmScrobble": "|:ᖋϟᒣ.⎓ᒲ ϟᔮ∷ᒍᕊᕊ|:╎リ┤", // Option to Connect
|
||||||
"settings.option.connectivity.lastfmScrobble.delay": "|:ᖋϟᒣ⎓ᒲ ϟᔮ∷ᒍᕊᕊ|:ᒷ ↸ᒷ|:ᖋ॥ (%)",
|
"settings.option.connectivity.lastfmScrobble.delay": "|:ᖋϟᒣ.⎓ᒲ ϟᔮ∷ᒍᕊᕊ|:ᒷ ↸ᒷ|:ᖋ॥ (%)",
|
||||||
"settings.option.connectivity.lastfmScrobble.nowPlaying": "ᒷリᖋᕊ|:ᒷ |:ᖋϟᒣ⎓ᒲ リᒍ∴ i!|:ᖋ॥╎リ┤",
|
"settings.option.connectivity.lastfmScrobble.nowPlaying": "ᒷリᖋᕊ|:ᒷ |:ᖋϟᒣ.⎓ᒲ リᒍ∴ i!|:ᖋ॥╎リ┤",
|
||||||
"settings.option.connectivity.lastfmScrobble.removeFeatured": "∷ᒷᒲᒍ⍊ᒷ ⎓ᒷᖋᒣ⚍∷╎リ┤ ᖋ∷ᒣ╎ϟᒣϟ ⎓∷ᒍᒲ ϟᒍリ┤ ᒣ╎ᒣ|:ᒷ (|:ᖋϟᒣ⎓ᒲ)",
|
"settings.option.connectivity.lastfmScrobble.removeFeatured": "∷ᒷᒲᒍ⍊ᒷ ⎓ᒷᖋᒣ⚍∷╎リ┤ ᖋ∷ᒣ╎ϟᒣϟ ⎓∷ᒍᒲ ϟᒍリ┤ ᒣ╎ᒣ|:ᒷ (|:ᖋϟᒣ.⎓ᒲ)",
|
||||||
"settings.option.connectivity.lastfmScrobble.filterLoop": "⎓╎|:ᒣᒷ∷ |:ᒍᒍi!ᒷ↸ ᒣ∷ᖋᔮ·ǀ· (|:ᖋϟᒣ⎓ᒲ)",
|
"settings.option.connectivity.lastfmScrobble.filterLoop": "⎓╎|:ᒣᒷ∷ |:ᒍᒍi!ᒷ↸ ᒣ∷ᖋᔮ·ǀ· (|:ᖋϟᒣ.⎓ᒲ)",
|
||||||
// Refer to term.connect for the connect button
|
// Refer to term.connect for the connect button
|
||||||
|
|
||||||
// Settings - Experimental
|
// Settings - Experimental
|
||||||
"settings.header.experimental": "ᒷ/i!ᒷ∷╎ᒲᒷリᒣᖋ|:",
|
"settings.header.experimental": "ᒷ/i!ᒷ∷╎ᒲᒷリᒣᖋ|:",
|
||||||
"settings.header.experimental.description": "ᖋ↸⋮⚍ϟᒣ ᒣ⍑ᒷ ᒷ/i!ᒷ∷╎ᒲᒷリᒣᖋ|: ϟᒷᒣᒣ╎リ┤ϟ ⎓ᒍ∷ ᔮ╎↸ᒷ∷.",
|
"settings.header.experimental.description": "ᖋ↸⋮⚍ϟᒣ ᒣ⍑ᒷ ᒷ/i!ᒷ∷╎ᒲᒷリᒣᖋ|: ϟᒷᒣᒣ╎リ┤ϟ ⎓ᒍ∷ ᔮ╎↸ᒷ∷.",
|
||||||
"settings.option.experimental.compactUI": "ᔮᒍᒲi!ᖋᔮᒣ ⚍╎", // Toggle
|
"settings.option.experimental.compactUI": "ᔮᒍᒲi!ᖋᔮᒣ ⚍╎", // Toggle
|
||||||
"settings.option.experimental.closeButtonBehaviour": "ᔮ|:ᒍϟᒷ ᕊ⚍ᒣᒣᒍリ ᕊᒷ⍑ᖋ⍊╎ᒍ⚍∷",
|
"settings.option.experimental.close_button_hide": "ᔮ|:ᒍϟᒷ ᕊ⚍ᒣᒣᒍリ ϟ⍑ᒍ⚍|:↸ ⍑╎↸ᒷ ᒣ⍑ᒷ ᖋi!i!|:╎ᔮᖋᒣ╎ᒍリ",
|
||||||
"settings.option.experimental.closeButtonBehaviour.quit": "ᑑ⚍╎ᒣ ᔮ╎↸ᒷ∷",
|
"settings.option.experimental.copy_log": "ᔮᒍi!॥ |:ᒍ┤ϟ ᒣᒍ ᔮ|:╎i!ᕊᒍᖋ∷↸",
|
||||||
"settings.option.experimental.closeButtonBehaviour.minimizeTaskbar": "ᒲ╎リ╎ᒲ╎∩ᒷ ᒣᒍ ᒣᖋϟ·ǀ·ᕊᖋ∷",
|
"settings.option.experimental.inline_playlists": "╎リ|:╎リᒷ i!|:ᖋ॥|:╎ϟᒣϟ ᖋリ↸ ᖋ|:ᕊ⚍ᒲϟ",
|
||||||
"settings.option.experimental.closeButtonBehaviour.minimizeTray": "ᒲ╎リ╎ᒲ╎∩ᒷ ᒣᒍ ϟ॥ϟᒣᒷᒲ ᒣ∷ᖋ॥",
|
|
||||||
// Refer to term.disabled & term.enabled
|
|
||||||
|
|
||||||
|
// Refer to term.disabled & term.enabled
|
||||||
// Spatialization Menu
|
// Spatialization Menu
|
||||||
"spatial.spatialProperties" : "ϟi!ᖋᒣ╎ᖋ|: i!∷ᒍi!ᒷ∷ᒣ╎ᒷϟ",
|
"spatial.notTurnedOn": "ᖋ⚍↸╎ᒍ ϟi!ᖋᒣ╎ᖋ|:╎∩ᖋᒣ╎ᒍリ ╎ϟ ↸╎ϟᖋᕊ|:ᒷ↸. ᒣᒍ ⚍ϟᒷ, i!|:ᒷᖋϟᒷ ᒷリᖋᕊ|:ᒷ ╎ᒣ ⎓╎∷ϟᒣ.",
|
||||||
"spatial.width" : "∴╎↸ᒣ⍑",
|
"spatial.spatialProperties": "ϟi!ᖋᒣ╎ᖋ|: i!∷ᒍi!ᒷ∷ᒣ╎ᒷϟ",
|
||||||
"spatial.height" : "⍑ᒷ╎┤⍑ᒣ",
|
"spatial.width": "∴╎↸ᒣ⍑",
|
||||||
"spatial.depth" : "↸ᒷi!ᒣ⍑",
|
"spatial.height": "⍑ᒷ╎┤⍑ᒣ",
|
||||||
"spatial.gain" : "┤ᖋ╎リ",
|
"spatial.depth": "↸ᒷi!ᒣ⍑",
|
||||||
"spatial.roomMaterials" : "∷ᒍᒍᒲ ᒲᖋᒣᒷ∷╎ᖋ|:ϟ",
|
"spatial.gain": "┤ᖋ╎リ",
|
||||||
"spatial.roomDimensions" : "∷ᒍᒍᒲ ↸╎ᒲᒷリϟ╎ᒍリϟ",
|
"spatial.roomMaterials": "∷ᒍᒍᒲ ᒲᖋᒣᒷ∷╎ᖋ|:ϟ",
|
||||||
"spatial.roomPositions" : "∷ᒍᒍᒲ i!ᒍϟ╎ᒣ╎ᒍリϟ",
|
"spatial.roomDimensions": "∷ᒍᒍᒲ ↸╎ᒲᒷリϟ╎ᒍリϟ",
|
||||||
"spatial.setDimensions" : "ϟᒷᒣ ↸╎ᒲᒷリϟ╎ᒍリϟ",
|
"spatial.roomPositions": "∷ᒍᒍᒲ i!ᒍϟ╎ᒣ╎ᒍリϟ",
|
||||||
"spatial.setPositions" : "ϟᒷᒣ i!ᒍϟ╎ᒣ╎ᒍリϟ",
|
"spatial.setDimensions": "ϟᒷᒣ ↸╎ᒲᒷリϟ╎ᒍリϟ",
|
||||||
"spatial.up" : "⚍i!",
|
"spatial.setPositions": "ϟᒷᒣ i!ᒍϟ╎ᒣ╎ᒍリϟ",
|
||||||
"spatial.front" : "⎓∷ᒍリᒣ",
|
"spatial.up": "⚍i!",
|
||||||
"spatial.left" : "|:ᒷ⎓ᒣ",
|
"spatial.front": "⎓∷ᒍリᒣ",
|
||||||
"spatial.right" : "∷╎┤⍑ᒣ",
|
"spatial.left": "|:ᒷ⎓ᒣ",
|
||||||
"spatial.back" : "ᕊᖋᔮ·ǀ·",
|
"spatial.right": "∷╎┤⍑ᒣ",
|
||||||
"spatial.down" : "↸ᒍ∴リ",
|
"spatial.back": "ᕊᖋᔮ·ǀ·",
|
||||||
"spatial.listener" : "|:╎ϟᒣᒷリᒷ∷",
|
"spatial.down": "↸ᒍ∴リ",
|
||||||
"spatial.audioSource" : "ᖋ⚍↸╎ᒍ ϟᒍ⚍∷ᔮᒷ",
|
"spatial.listener": "|:╎ϟᒣᒷリᒷ∷",
|
||||||
|
"spatial.audioSource": "ᖋ⚍↸╎ᒍ ϟᒍ⚍∷ᔮᒷ",
|
||||||
|
|
||||||
// Settings - Unfinished
|
// Settings - Unfinished
|
||||||
"settings.header.unfinished": "⚍リ⎓╎リ╎ϟ⍑ᒷ↸",
|
"settings.header.unfinished": "⚍リ⎓╎リ╎ϟ⍑ᒷ↸",
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
{ // Base File
|
{ // Base File
|
||||||
|
|
||||||
// i18n Info
|
// i18n Info
|
||||||
"i18n.languageName": "English (US)", // name of language in native language
|
"i18n.languageName": "English (US)", // name of language in native language
|
||||||
"i18n.languageNameEnglish": "English (US)", // name of language in English
|
"i18n.languageNameEnglish": "English (US)", // 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": "@maikirakiwi", // Authors, if you contribute to this file feel free to add your name seperated with a space
|
"i18n.authors": "@maikirakiwi", // Authors, if you contribute to this file feel free to add your name seperated with a space
|
||||||
|
@ -19,6 +18,7 @@
|
||||||
"notification.updatingLibrarySongs": "Updating library songs...",
|
"notification.updatingLibrarySongs": "Updating library songs...",
|
||||||
"notification.updatingLibraryAlbums": "Updating library albums...",
|
"notification.updatingLibraryAlbums": "Updating library albums...",
|
||||||
"notification.updatingLibraryArtists": "Updating library artists...",
|
"notification.updatingLibraryArtists": "Updating library artists...",
|
||||||
|
|
||||||
// Terms
|
// Terms
|
||||||
"term.appleInc": "Apple Inc.",
|
"term.appleInc": "Apple Inc.",
|
||||||
"term.appleMusic": "Apple Music",
|
"term.appleMusic": "Apple Music",
|
||||||
|
@ -29,10 +29,11 @@
|
||||||
"term.learnMore": "Learn more",
|
"term.learnMore": "Learn more",
|
||||||
"term.accountSettings": "Account Settings",
|
"term.accountSettings": "Account Settings",
|
||||||
"term.logout": "Logout",
|
"term.logout": "Logout",
|
||||||
"term.login": "Login",
|
"term.login": "Log In",
|
||||||
"term.about": "About",
|
"term.about": "About",
|
||||||
"term.privateSession": "Private Session",
|
"term.privateSession": "Private Session",
|
||||||
"term.queue": "Queue",
|
"term.queue": "Queue",
|
||||||
|
"term.history": "History",
|
||||||
"term.search": "Search",
|
"term.search": "Search",
|
||||||
"term.library": "Library",
|
"term.library": "Library",
|
||||||
"term.listenNow": "Listen Now",
|
"term.listenNow": "Listen Now",
|
||||||
|
@ -60,6 +61,7 @@
|
||||||
"term.mute": "Mute",
|
"term.mute": "Mute",
|
||||||
"term.unmute": "Unmute",
|
"term.unmute": "Unmute",
|
||||||
"term.share": "Share",
|
"term.share": "Share",
|
||||||
|
"term.share.success": "Copied to clipboard",
|
||||||
"term.settings": "Settings",
|
"term.settings": "Settings",
|
||||||
"term.seeAll": "See All",
|
"term.seeAll": "See All",
|
||||||
"term.sortBy": "Sort By",
|
"term.sortBy": "Sort By",
|
||||||
|
@ -86,12 +88,12 @@
|
||||||
"term.connecting": "Connecting",
|
"term.connecting": "Connecting",
|
||||||
"term.disconnect": "Disconnect",
|
"term.disconnect": "Disconnect",
|
||||||
"term.authed": "Authed",
|
"term.authed": "Authed",
|
||||||
"term.confirm": "Confirm ?",
|
"term.confirm": "Confirm?",
|
||||||
"term.more": "More",
|
"term.more": "More",
|
||||||
"term.less": "Less",
|
"term.less": "Less",
|
||||||
"term.showMore": "Show more",
|
"term.showMore": "Show more",
|
||||||
"term.showLess": "Show less",
|
"term.showLess": "Show less",
|
||||||
"term.topSongs" : "Top Songs",
|
"term.topSongs": "Top Songs",
|
||||||
"term.latestReleases": "Latest Releases",
|
"term.latestReleases": "Latest Releases",
|
||||||
"term.time.added": "Added",
|
"term.time.added": "Added",
|
||||||
"term.time.released": "Released",
|
"term.time.released": "Released",
|
||||||
|
@ -125,7 +127,21 @@
|
||||||
"term.menu": "Menu",
|
"term.menu": "Menu",
|
||||||
"term.check": "Check",
|
"term.check": "Check",
|
||||||
"term.aboutArtist": "About {{artistName}}", // e.g. 'About Doja Cat'
|
"term.aboutArtist": "About {{artistName}}", // e.g. 'About Doja Cat'
|
||||||
"term.updateCider": "Update Cider",
|
"term.topResult": "Top Result", // Search Results
|
||||||
|
"term.sharedPlaylists": "Shared Playlists", // Search Results
|
||||||
|
"term.people": "People", // Search Results
|
||||||
|
"term.newpreset.name": "New EQ Preset Name", // Equalizer Preset
|
||||||
|
"term.addedpreset": "Added Preset",
|
||||||
|
"term.deletepreset.warn": "Are you sure you want to delete this preset?",
|
||||||
|
"term.deletedpreset": "Removed preset",
|
||||||
|
"term.musicVideos": "Music Videos", // Search page friendlyTypes
|
||||||
|
"term.stations": "Stations",
|
||||||
|
"term.curators": "Curators",
|
||||||
|
"term.appleCurators": "Apple Curators",
|
||||||
|
"term.radioShows": "Radio Shows",
|
||||||
|
"term.recordLabels": "Record Labels",
|
||||||
|
"term.videoExtras": "Video Extras",
|
||||||
|
"term.top": "Top",
|
||||||
|
|
||||||
// Home
|
// Home
|
||||||
"home.title": "Home",
|
"home.title": "Home",
|
||||||
|
@ -136,13 +152,14 @@
|
||||||
"home.madeForYou": "Made For You",
|
"home.madeForYou": "Made For You",
|
||||||
"home.friendsListeningTo": "Friends Listening To",
|
"home.friendsListeningTo": "Friends Listening To",
|
||||||
"home.followedArtists": "Followed Artists",
|
"home.followedArtists": "Followed Artists",
|
||||||
|
|
||||||
// Errors
|
// Errors
|
||||||
"error.appleMusicSubRequired": "Apple Music requires a subscription.",
|
"error.appleMusicSubRequired": "Apple Music requires a subscription.",
|
||||||
"error.connectionError": "There was a problem connecting to Apple Music.",
|
"error.connectionError": "There was a problem connecting to Apple Music.",
|
||||||
"error.noResults": "No Results.",
|
"error.noResults": "No Results.",
|
||||||
"error.noResults.description": "Try a new search.",
|
"error.noResults.description": "Try a new search.",
|
||||||
|
|
||||||
//Podcasts
|
// Podcasts
|
||||||
"podcast.followOnCider": "Follow On Cider",
|
"podcast.followOnCider": "Follow On Cider",
|
||||||
"podcast.followedOnCider": "Following On Cider",
|
"podcast.followedOnCider": "Following On Cider",
|
||||||
"podcast.subscribeOnItunes": "Subscribe On iTunes",
|
"podcast.subscribeOnItunes": "Subscribe On iTunes",
|
||||||
|
@ -197,6 +214,9 @@
|
||||||
"action.tray.quit": "Quit",
|
"action.tray.quit": "Quit",
|
||||||
"action.tray.show": "Show",
|
"action.tray.show": "Show",
|
||||||
"action.update": "Update",
|
"action.update": "Update",
|
||||||
|
"action.copy": "Copy",
|
||||||
|
"action.newpreset": "New Preset...", // Equalizer Preset
|
||||||
|
"action.deletepreset": "Delete Preset",
|
||||||
|
|
||||||
// Settings - General
|
// Settings - General
|
||||||
"settings.header.general": "General",
|
"settings.header.general": "General",
|
||||||
|
@ -208,20 +228,39 @@
|
||||||
"settings.option.general.language.fun": "Fun Languages",
|
"settings.option.general.language.fun": "Fun Languages",
|
||||||
"settings.option.general.language.unsorted": "Unsorted",
|
"settings.option.general.language.unsorted": "Unsorted",
|
||||||
|
|
||||||
|
// Update Cider
|
||||||
|
"settings.option.general.updateCider": "Update Cider", // Button. Refer to term.check for the check button
|
||||||
|
"settings.option.general.updateCider.branch": "Cider Update Branch", // Dropdown
|
||||||
|
"settings.option.general.updateCider.branch.description": "Select the branch to update Cider to",
|
||||||
|
"settings.option.general.updateCider.branch.main": "Stable",
|
||||||
|
"settings.option.general.updateCider.branch.develop": "Development",
|
||||||
|
|
||||||
// Settings - Audio
|
// Settings - Audio
|
||||||
"settings.header.audio": "Audio",
|
"settings.header.audio": "Audio",
|
||||||
"settings.header.audio.description": "Adjust the audio settings for Cider.",
|
"settings.header.audio.description": "Adjust the audio settings for Cider.",
|
||||||
"settings.option.audio.quality": "Audio Quality", // Dropdown
|
"settings.option.audio.quality": "Audio Quality", // Dropdown
|
||||||
|
"settings.header.audio.quality.hireslossless": "Hi-Res Lossless",
|
||||||
|
"settings.header.audio.quality.hireslossless.description": "up to 24-bit/192 kHz",
|
||||||
|
"settings.header.audio.quality.lossless": "Lossless",
|
||||||
|
"settings.header.audio.quality.lossless.description": "up to 24-bit/48 kHz",
|
||||||
"settings.header.audio.quality.high": "High",
|
"settings.header.audio.quality.high": "High",
|
||||||
"settings.header.audio.quality.low": "Low",
|
"settings.header.audio.quality.high.description": "256 kbps",
|
||||||
"settings.header.audio.quality.auto": "Auto",
|
"settings.header.audio.quality.standard": "Standard",
|
||||||
|
"settings.header.audio.quality.standard.description": "64 kbps",
|
||||||
"settings.option.audio.seamlessTransition": "Seamless Audio Transition", // Toggle
|
"settings.option.audio.seamlessTransition": "Seamless Audio Transition", // Toggle
|
||||||
"settings.option.audio.enableAdvancedFunctionality": "Enable Advanced Functionality", // Toggle
|
"settings.option.audio.enableAdvancedFunctionality": "Enable Advanced Functionality", // Toggle
|
||||||
"settings.option.audio.enableAdvancedFunctionality.description": "Enabling AudioContext functionality will allow for extended audio features like Audio Normalization , Equalizers and Visualizers, however on some systems this may cause stuttering in audio tracks.",
|
"settings.option.audio.enableAdvancedFunctionality.description": "Enabling AudioContext functionality will allow for extended audio features like Audio Normalization , Equalizers and Visualizers, however on some systems this may cause stuttering in audio tracks.",
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.ciderPPE": "Cider Adrenaline Processor™️", // Toggle
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.ciderPPE.description": "Psychoacoustic Enhancements that makes everything sound both richer and more lively | Designed by Maikiwi.",
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength": "CAP Strength", // Toggle
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.description": "Changes the strength of the processing done to the audio. (Aggressive may yield undesirable results)",
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.standard": "Standard",
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.aggressive": "Aggressive",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.audioNormalization": "Audio Normalization", // Toggle
|
"settings.option.audio.enableAdvancedFunctionality.audioNormalization": "Audio Normalization", // Toggle
|
||||||
"settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "Normalizes peak volume for individual tracks to create a more uniform listening experience.",
|
"settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "Normalizes peak volume for individual tracks to create a more uniform listening experience.",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "Audio Spatialization", // Toggle
|
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "Audio Spatialization", // Toggle
|
||||||
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "Spatialize audio and make audio more 3-dimensional (note: This is not Dolby Atmos)",
|
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "Spatialize audio and make audio more 3-dimensional (note: This is not Dolby Atmos)",
|
||||||
|
|
||||||
// Settings - Visual
|
// Settings - Visual
|
||||||
"settings.header.visual": "Visual",
|
"settings.header.visual": "Visual",
|
||||||
"settings.header.visual.description": "Adjust the visual settings for Cider.",
|
"settings.header.visual.description": "Adjust the visual settings for Cider.",
|
||||||
|
@ -244,6 +283,11 @@
|
||||||
"settings.option.visual.hardwareAcceleration.description": "Requires relaunch",
|
"settings.option.visual.hardwareAcceleration.description": "Requires relaunch",
|
||||||
"settings.header.visual.hardwareAcceleration.default": "Default",
|
"settings.header.visual.hardwareAcceleration.default": "Default",
|
||||||
"settings.header.visual.hardwareAcceleration.webGPU": "WebGPU",
|
"settings.header.visual.hardwareAcceleration.webGPU": "WebGPU",
|
||||||
|
"settings.header.visual.theme": "Theme",
|
||||||
|
|
||||||
|
// Settings - Visual - Theme name
|
||||||
|
"settings.option.visual.theme.default": "Cider",
|
||||||
|
"settings.option.visual.theme.dark": "Dark",
|
||||||
// Refer to term.disabled for the disabled option
|
// Refer to term.disabled for the disabled option
|
||||||
"settings.option.visual.showPersonalInfo": "Show Personal Info", // Toggle
|
"settings.option.visual.showPersonalInfo": "Show Personal Info", // Toggle
|
||||||
|
|
||||||
|
@ -276,8 +320,10 @@
|
||||||
"settings.header.experimental.description": "Adjust the experimental settings for Cider.",
|
"settings.header.experimental.description": "Adjust the experimental settings for Cider.",
|
||||||
"settings.option.experimental.compactUI": "Compact UI", // Toggle
|
"settings.option.experimental.compactUI": "Compact UI", // Toggle
|
||||||
"settings.option.experimental.close_button_hide": "Close Button Should Hide the Application",
|
"settings.option.experimental.close_button_hide": "Close Button Should Hide the Application",
|
||||||
// Refer to term.disabled & term.enabled
|
"settings.option.experimental.copy_log": "Copy logs to clipboard",
|
||||||
|
"settings.option.experimental.inline_playlists": "Inline Playlists and Albums",
|
||||||
|
|
||||||
|
// Refer to term.disabled & term.enabled
|
||||||
// Spatialization Menu
|
// Spatialization Menu
|
||||||
"spatial.notTurnedOn": "Audio Spatialization is disabled. To use, please enable it first.",
|
"spatial.notTurnedOn": "Audio Spatialization is disabled. To use, please enable it first.",
|
||||||
"spatial.spatialProperties": "Spatial Properties",
|
"spatial.spatialProperties": "Spatial Properties",
|
||||||
|
|
|
@ -1,312 +1,316 @@
|
||||||
{ // Base File
|
{ // Base File
|
||||||
|
// i18n Info
|
||||||
|
"i18n.languageName": "Español (ES)", // name of language in native language
|
||||||
|
"i18n.languageNameEnglish": "Spanish (Spain)", // name of language in English
|
||||||
|
"i18n.category": "main", // main = real language, fun = fun community languages
|
||||||
|
"i18n.authors": "@j.fl220", // Authors, if you contribute to this file feel free to add your name seperated with a space
|
||||||
|
|
||||||
// i18n Info
|
// App info
|
||||||
"i18n.languageName": "Español (ES)", // name of language in native language
|
"app.name": "Cider",
|
||||||
"i18n.languageNameEnglish": "Spanish (Spain)", // name of language in English
|
|
||||||
"i18n.category": "main", // main = real language, fun = fun community languages
|
|
||||||
"i18n.authors": "@j.fl220", // Authors, if you contribute to this file feel free to add your name seperated with a space
|
|
||||||
|
|
||||||
// App info
|
"date.format": "${d} ${m}, ${y}",
|
||||||
"app.name": "Cider",
|
|
||||||
|
|
||||||
"date.format": "${d} ${m}, ${y}",
|
// Dialogs
|
||||||
|
"dialog.cancel": "Cancelar",
|
||||||
|
"dialog.ok": "Aceptar",
|
||||||
|
|
||||||
// Dialogs
|
// Notification
|
||||||
"dialog.cancel": "Cancelar",
|
"notification.updatingLibrarySongs": "Actualizando canciones de la biblioteca...",
|
||||||
"dialog.ok": "Aceptar",
|
"notification.updatingLibraryAlbums": "Actualizando álbumes de la biblioteca...",
|
||||||
|
"notification.updatingLibraryArtists": "Actualizando biblioteca de artistas...",
|
||||||
|
|
||||||
// Notification
|
// Terms
|
||||||
"notification.updatingLibrarySongs": "Actualizando canciones de la biblioteca...",
|
"term.appleInc": "Apple Inc.",
|
||||||
"notification.updatingLibraryAlbums": "Actualizando álbumes de la biblioteca...",
|
"term.appleMusic": "Apple Music",
|
||||||
"notification.updatingLibraryArtists": "Actualizando biblioteca de artistas...",
|
"term.applePodcasts": "Apple Podcasts",
|
||||||
// Terms
|
"term.itunes": "iTunes",
|
||||||
"term.appleInc": "Apple Inc.",
|
"term.github": "GitHub",
|
||||||
"term.appleMusic": "Apple Music",
|
"term.discord": "Discord",
|
||||||
"term.applePodcasts": "Apple Podcasts",
|
"term.learnMore": "Leer más",
|
||||||
"term.itunes": "iTunes",
|
"term.accountSettings": "Ajustes de la cuenta",
|
||||||
"term.github": "GitHub",
|
"term.logout": "Cerrar sesión",
|
||||||
"term.discord": "Discord",
|
"term.login": "Iniciar sesión",
|
||||||
"term.learnMore": "Leer más",
|
"term.about": "Más información",
|
||||||
"term.accountSettings": "Ajustes de la cuenta",
|
"term.privateSession": "Sesión privada",
|
||||||
"term.logout": "Cerrar sesión",
|
"term.queue": "En cola",
|
||||||
"term.login": "Iniciar sesión",
|
"term.search": "Buscar",
|
||||||
"term.about": "Más información",
|
"term.library": "Biblioteca",
|
||||||
"term.privateSession": "Sesión privada",
|
"term.listenNow": "Escuchar",
|
||||||
"term.queue": "En cola",
|
"term.browse": "Explorar",
|
||||||
"term.search": "Buscar",
|
"term.radio": "Radio",
|
||||||
"term.library": "Biblioteca",
|
"term.recentlyAdded": "Añadido recientemente",
|
||||||
"term.listenNow": "Escuchar",
|
"term.songs": "Canciones",
|
||||||
"term.browse": "Explorar",
|
"term.albums": "Álbumes",
|
||||||
"term.radio": "Radio",
|
"term.artists": "Artistas",
|
||||||
"term.recentlyAdded": "Añadido recientemente",
|
"term.podcasts": "Podcasts",
|
||||||
"term.songs": "Canciones",
|
"term.playlists": "Playlists",
|
||||||
"term.albums": "Álbumes",
|
"term.playlist": "Playlist",
|
||||||
"term.artists": "Artistas",
|
"term.newPlaylist": "Nueva playlist",
|
||||||
"term.podcasts": "Podcasts",
|
"term.newPlaylistFolder": "Nueva carpeta de playlists",
|
||||||
"term.playlists": "Playlists",
|
"term.createNewPlaylist": "Crear nueva playlists",
|
||||||
"term.playlist": "Playlist",
|
"term.createNewPlaylistFolder": "Crear nueva carpeta de playlists",
|
||||||
"term.newPlaylist": "Nueva playlist",
|
"term.deletePlaylist": "¿Está seguro que desea eliminar esta playlist?",
|
||||||
"term.newPlaylistFolder": "Nueva carpeta de playlists",
|
"term.play": "Reproducir",
|
||||||
"term.createNewPlaylist": "Crear nueva playlists",
|
"term.pause": "Pausar",
|
||||||
"term.createNewPlaylistFolder": "Crear nueva carpeta de playlists",
|
"term.previous": "Anterior",
|
||||||
"term.deletePlaylist": "¿Está seguro que desea eliminar esta playlist?",
|
"term.next": "Siguiente",
|
||||||
"term.play": "Reproducir",
|
"term.shuffle": "Aleatorio",
|
||||||
"term.pause": "Pausar",
|
"term.repeat": "Repetir",
|
||||||
"term.previous": "Anterior",
|
"term.volume": "Volumen",
|
||||||
"term.next": "Siguiente",
|
"term.mute": "Silenciar",
|
||||||
"term.shuffle": "Aleatorio",
|
"term.unmute": "Desilenciar",
|
||||||
"term.repeat": "Repetir",
|
"term.share": "Compartir",
|
||||||
"term.volume": "Volumen",
|
"term.settings": "Ajustes",
|
||||||
"term.mute": "Silenciar",
|
"term.seeAll": "Ver todo",
|
||||||
"term.unmute": "Desilenciar",
|
"term.sortBy": "Ordenar por",
|
||||||
"term.share": "Compartir",
|
"term.sortBy.album": "Álbum",
|
||||||
"term.settings": "Ajustes",
|
"term.sortBy.artist": "Artista",
|
||||||
"term.seeAll": "Ver todo",
|
"term.sortBy.name": "Nombre",
|
||||||
"term.sortBy": "Ordenar por",
|
"term.sortBy.genre": "Género",
|
||||||
"term.sortBy.album": "Álbum",
|
"term.sortBy.releaseDate": "Fecha de lanzamiento",
|
||||||
"term.sortBy.artist": "Artista",
|
"term.sortBy.duration": "Duración",
|
||||||
"term.sortBy.name": "Nombre",
|
"term.sortOrder": "A-Z",
|
||||||
"term.sortBy.genre": "Género",
|
"term.sortOrder.ascending": "Ascendiente",
|
||||||
"term.sortBy.releaseDate": "Fecha de lanzamiento",
|
"term.sortOrder.descending": "Descendiente",
|
||||||
"term.sortBy.duration": "Duración",
|
"term.viewAs": "Ver como",
|
||||||
"term.sortOrder": "A-Z",
|
"term.viewAs.coverArt": "Carátula",
|
||||||
"term.sortOrder.ascending": "Ascendiente",
|
"term.viewAs.list": "Lista",
|
||||||
"term.sortOrder.descending": "Descendiente",
|
"term.size": "Tamaño",
|
||||||
"term.viewAs": "Ver como",
|
"term.size.normal": "Normal",
|
||||||
"term.viewAs.coverArt": "Carátula",
|
"term.size.compact": "Compacto",
|
||||||
"term.viewAs.list": "Lista",
|
"term.enable": "Habilitar",
|
||||||
"term.size": "Tamaño",
|
"term.disable": "Deshabilitar",
|
||||||
"term.size.normal": "Normal",
|
"term.enabled": "Activado",
|
||||||
"term.size.compact": "Compacto",
|
"term.disabled": "Desactivado",
|
||||||
"term.enable": "Habilitar",
|
"term.connect": "Conectar",
|
||||||
"term.disable": "Deshabilitar",
|
"term.connecting": "Conectando",
|
||||||
"term.enabled": "Activado",
|
"term.disconnect": "Desconectado",
|
||||||
"term.disabled": "Desactivado",
|
"term.authed": "Autentificado",
|
||||||
"term.connect": "Conectar",
|
"term.confirm": "¿Confirmar?",
|
||||||
"term.connecting": "Conectando",
|
"term.more": "Más",
|
||||||
"term.disconnect": "Desconectado",
|
"term.less": "Menos",
|
||||||
"term.authed": "Autentificado",
|
"term.showMore": "Mostrar más",
|
||||||
"term.confirm": "¿Confirmar?",
|
"term.showLess": "Mostrar menos",
|
||||||
"term.more": "Más",
|
"term.topSongs": "Top canciones",
|
||||||
"term.less": "Menos",
|
"term.latestReleases": "Últimos lanzamientos",
|
||||||
"term.showMore": "Mostrar más",
|
"term.time.added": "Añadido",
|
||||||
"term.showLess": "Mostrar menos",
|
"term.time.released": "Lanzado",
|
||||||
"term.topSongs" : "Top canciones",
|
"term.time.updated": "Actualizado",
|
||||||
"term.latestReleases": "Últimos lanzamientos",
|
"term.time.hours": "horas",
|
||||||
"term.time.added": "Añadido",
|
"term.time.hour": "hora",
|
||||||
"term.time.released": "Lanzado",
|
"term.time.minutes": "minutos",
|
||||||
"term.time.updated": "Actualizado",
|
"term.time.minute": "minuto",
|
||||||
"term.time.hours": "horas",
|
"term.time.seconds": "segundos",
|
||||||
"term.time.hour": "hora",
|
"term.time.second": "segundo",
|
||||||
"term.time.minutes": "minutos",
|
"term.fullscreenView": "Pantalla completa",
|
||||||
"term.time.minute": "minuto",
|
"term.defaultView": "Vista por defecto",
|
||||||
"term.time.seconds": "segundos",
|
"term.audioSettings": "Ajustes de audio",
|
||||||
"term.time.second": "segundo",
|
"term.clearAll": "Borrar todo",
|
||||||
"term.fullscreenView": "Pantalla completa",
|
"term.recentStations": "Radios recientes",
|
||||||
"term.defaultView": "Vista por defecto",
|
"term.language": "Idioma",
|
||||||
"term.audioSettings": "Ajustes de audio",
|
"term.funLanguages": "Divertido",
|
||||||
"term.clearAll": "Borrar todo",
|
"term.noLyrics": "Cargando... / Letra no encontrada./ Instrumental.",
|
||||||
"term.recentStations": "Radios recientes",
|
"term.copyright": "Copyright",
|
||||||
"term.language": "Idioma",
|
"term.rightsReserved": "Todos los derechos reservados.",
|
||||||
"term.funLanguages": "Divertido",
|
"term.sponsor": "Apoya este proyecto",
|
||||||
"term.noLyrics": "Cargando... / Letra no encontrada./ Instrumental.",
|
"term.ciderTeam": "Equipo Cider",
|
||||||
"term.copyright": "Copyright",
|
"term.developer": "Desarrollador",
|
||||||
"term.rightsReserved": "Todos los derechos reservados.",
|
"term.socialTeam": "Equipo RRSS",
|
||||||
"term.sponsor": "Apoya este proyecto",
|
"term.socials": "Redes sociales",
|
||||||
"term.ciderTeam": "Equipo Cider",
|
"term.contributors": "Contribuidores",
|
||||||
"term.developer": "Desarrollador",
|
"term.equalizer": "Equalizador",
|
||||||
"term.socialTeam": "Equipo RRSS",
|
"term.reset": "Resetear",
|
||||||
"term.socials": "Redes sociales",
|
"term.tracks": "canciones", // Assume x amount of tracks. e.g. 50 tracks
|
||||||
"term.contributors": "Contribuidores",
|
"term.videos": "Vídeos",
|
||||||
"term.equalizer": "Equalizador",
|
"term.menu": "Menú",
|
||||||
"term.reset": "Resetear",
|
"term.check": "Comprobar",
|
||||||
"term.tracks": "canciones", // Assume x amount of tracks. e.g. 50 tracks
|
"term.aboutArtist": "Más sobre {{artistName}}", // e.g. 'About Doja Cat'
|
||||||
"term.videos": "Vídeos",
|
|
||||||
"term.menu": "Menú",
|
|
||||||
"term.check": "Comprobar",
|
|
||||||
"term.aboutArtist": "Más sobre {{artistName}}", // e.g. 'About Doja Cat'
|
|
||||||
"term.updateCider": "Actualizar Cider",
|
|
||||||
|
|
||||||
// Home
|
// Home
|
||||||
"home.title": "Inicio",
|
"home.title": "Inicio",
|
||||||
"home.recentlyPlayed": "Reproducciones recientes",
|
"home.recentlyPlayed": "Reproducciones recientes",
|
||||||
"home.recentlyAdded": "Añadido recientemente",
|
"home.recentlyAdded": "Añadido recientemente",
|
||||||
"home.artistsFeed": "Historial de tus artistas",
|
"home.artistsFeed": "Historial de tus artistas",
|
||||||
"home.artistsFeed.noArtist": "Sigue primero a algunos artistas y sus últimos lanzamientos aparecerán aquí",
|
"home.artistsFeed.noArtist": "Sigue primero a algunos artistas y sus últimos lanzamientos aparecerán aquí",
|
||||||
"home.madeForYou": "Hecho para ti",
|
"home.madeForYou": "Hecho para ti",
|
||||||
"home.friendsListeningTo": "Tus amigos están escuchando",
|
"home.friendsListeningTo": "Tus amigos están escuchando",
|
||||||
"home.followedArtists": "Artistas que sigues",
|
"home.followedArtists": "Artistas que sigues",
|
||||||
// Errors
|
|
||||||
"error.appleMusicSubRequired": "Apple Music necesita una suscripción.",
|
|
||||||
"error.connectionError": "Ha habido un problema al conectar con Apple Music.",
|
|
||||||
"error.noResults": "Sin resultados",
|
|
||||||
"error.noResults.description": "Intenta otra búsqueda.",
|
|
||||||
|
|
||||||
//Podcasts
|
// Errors
|
||||||
"podcast.followOnCider": "Seguir en Cider",
|
"error.appleMusicSubRequired": "Apple Music necesita una suscripción.",
|
||||||
"podcast.followedOnCider": "Siguiendo en Cider",
|
"error.connectionError": "Ha habido un problema al conectar con Apple Music.",
|
||||||
"podcast.subscribeOnItunes": "Suscribirse en iTunes",
|
"error.noResults": "Sin resultados",
|
||||||
"podcast.subscribedOnItunes": "Suscrito en iTunes",
|
"error.noResults.description": "Intenta otra búsqueda.",
|
||||||
"podcast.itunesStore": "Tienda de iTunes",
|
|
||||||
"podcast.episodes": "Episodios",
|
|
||||||
"podcast.playEpisode": "Iniciar Episodio",
|
|
||||||
"podcast.website": "Pagina del podcast",
|
|
||||||
|
|
||||||
// Actions
|
// Podcasts
|
||||||
"action.addToLibrary": "Añadir a la biblioteca",
|
"podcast.followOnCider": "Seguir en Cider",
|
||||||
"action.addToLibrary.success": "Añadido a la biblioteca",
|
"podcast.followedOnCider": "Siguiendo en Cider",
|
||||||
"action.addToLibrary.error": "Error al añadir a la biblioteca",
|
"podcast.subscribeOnItunes": "Suscribirse en iTunes",
|
||||||
"action.removeFromLibrary": "Eliminar de la biblioteca",
|
"podcast.subscribedOnItunes": "Suscrito en iTunes",
|
||||||
"action.removeFromLibrary.success": "Eliminado de la biblioteca",
|
"podcast.itunesStore": "Tienda de iTunes",
|
||||||
"action.addToQueue": "Añadir a la cola",
|
"podcast.episodes": "Episodios",
|
||||||
"action.addToQueue.success": "Añadido a la cola",
|
"podcast.playEpisode": "Iniciar Episodio",
|
||||||
"action.addToQueue.error": "Error al añadirlo a la cola",
|
"podcast.website": "Pagina del podcast",
|
||||||
"action.removeFromQueue": "Elimiar de la cola",
|
|
||||||
"action.removeFromQueue.success": "Eliminado de la cola",
|
|
||||||
"action.removeFromQueue.error": "Error al eliminarlo de la cola",
|
|
||||||
"action.createPlaylist": "Crear nueva playlist",
|
|
||||||
"action.addToPlaylist": "Añadir a la playlist",
|
|
||||||
"action.removeFromPlaylist": "Eliminar de la playlist",
|
|
||||||
"action.addToFavorites": "Añadir a favoritos",
|
|
||||||
"action.follow": "Seguir",
|
|
||||||
"action.follow.success": "Siguiendo",
|
|
||||||
"action.follow.error": "Error al seguir",
|
|
||||||
"action.unfollow": "Dejar de seguir",
|
|
||||||
"action.unfollow.success": "Has dejado de seguirle",
|
|
||||||
"action.unfollow.error": "Error al dejar de seguir",
|
|
||||||
"action.playNext": "Reproducir a continuación",
|
|
||||||
"action.playLater": "Reproducir al final",
|
|
||||||
"action.startRadio": "Crear emisora",
|
|
||||||
"action.goToArtist": "Ir al artista",
|
|
||||||
"action.goToAlbum": "Mostrar álbum",
|
|
||||||
"action.moveToTop": "Mover a arriba",
|
|
||||||
"action.share": "Compartir",
|
|
||||||
"action.rename": "Renombrar",
|
|
||||||
"action.love": "Me gusta",
|
|
||||||
"action.unlove": "Eliminar me gusta",
|
|
||||||
"action.dislike": "Sugerir menos este estilo",
|
|
||||||
"action.undoDislike": "Sugerir este estilo",
|
|
||||||
"action.showWebRemoteQR": "Conexión remota",
|
|
||||||
"action.playTracksNext": "Reproducir ${app.selectedMediaItems.length} siguiente canción",
|
|
||||||
"action.playTracksLater": "Reproducir ${app.selectedMediaItems.length} como última canción",
|
|
||||||
"action.removeTracks": "Eliminar ${self.selectedItems.length} canciones de la cola",
|
|
||||||
"action.import": "Importar",
|
|
||||||
"action.export": "Exportar",
|
|
||||||
"action.showAlbum": "Mostrar álbum completo",
|
|
||||||
"action.tray.minimize": "Mover a la bandeja",
|
|
||||||
"action.tray.quit": "Salir",
|
|
||||||
"action.tray.show": "Abrir",
|
|
||||||
"action.update": "Actualizar",
|
|
||||||
|
|
||||||
// Settings - General
|
// Actions
|
||||||
"settings.header.general": "General",
|
"action.addToLibrary": "Añadir a la biblioteca",
|
||||||
"settings.header.general.description": "Ajustes generales de Cider.",
|
"action.addToLibrary.success": "Añadido a la biblioteca",
|
||||||
"settings.option.general.language": "Idioma",
|
"action.addToLibrary.error": "Error al añadir a la biblioteca",
|
||||||
|
"action.removeFromLibrary": "Eliminar de la biblioteca",
|
||||||
|
"action.removeFromLibrary.success": "Eliminado de la biblioteca",
|
||||||
|
"action.addToQueue": "Añadir a la cola",
|
||||||
|
"action.addToQueue.success": "Añadido a la cola",
|
||||||
|
"action.addToQueue.error": "Error al añadirlo a la cola",
|
||||||
|
"action.removeFromQueue": "Elimiar de la cola",
|
||||||
|
"action.removeFromQueue.success": "Eliminado de la cola",
|
||||||
|
"action.removeFromQueue.error": "Error al eliminarlo de la cola",
|
||||||
|
"action.createPlaylist": "Crear nueva playlist",
|
||||||
|
"action.addToPlaylist": "Añadir a la playlist",
|
||||||
|
"action.removeFromPlaylist": "Eliminar de la playlist",
|
||||||
|
"action.addToFavorites": "Añadir a favoritos",
|
||||||
|
"action.follow": "Seguir",
|
||||||
|
"action.follow.success": "Siguiendo",
|
||||||
|
"action.follow.error": "Error al seguir",
|
||||||
|
"action.unfollow": "Dejar de seguir",
|
||||||
|
"action.unfollow.success": "Has dejado de seguirle",
|
||||||
|
"action.unfollow.error": "Error al dejar de seguir",
|
||||||
|
"action.playNext": "Reproducir a continuación",
|
||||||
|
"action.playLater": "Reproducir al final",
|
||||||
|
"action.startRadio": "Crear emisora",
|
||||||
|
"action.goToArtist": "Ir al artista",
|
||||||
|
"action.goToAlbum": "Mostrar álbum",
|
||||||
|
"action.moveToTop": "Mover a arriba",
|
||||||
|
"action.share": "Compartir",
|
||||||
|
"action.rename": "Renombrar",
|
||||||
|
"action.love": "Me gusta",
|
||||||
|
"action.unlove": "Eliminar me gusta",
|
||||||
|
"action.dislike": "Sugerir menos este estilo",
|
||||||
|
"action.undoDislike": "Sugerir este estilo",
|
||||||
|
"action.showWebRemoteQR": "Conexión remota",
|
||||||
|
"action.playTracksNext": "Reproducir ${app.selectedMediaItems.length} siguiente canción",
|
||||||
|
"action.playTracksLater": "Reproducir ${app.selectedMediaItems.length} como última canción",
|
||||||
|
"action.removeTracks": "Eliminar ${self.selectedItems.length} canciones de la cola",
|
||||||
|
"action.import": "Importar",
|
||||||
|
"action.export": "Exportar",
|
||||||
|
"action.showAlbum": "Mostrar álbum completo",
|
||||||
|
"action.tray.minimize": "Mover a la bandeja",
|
||||||
|
"action.tray.quit": "Salir",
|
||||||
|
"action.tray.show": "Abrir",
|
||||||
|
"action.update": "Actualizar",
|
||||||
|
|
||||||
// Language optgroups
|
// Settings - General
|
||||||
"settings.option.general.language.main": "Idiomas",
|
"settings.header.general": "General",
|
||||||
"settings.option.general.language.fun": "Idiomas divertidos",
|
"settings.header.general.description": "Ajustes generales de Cider.",
|
||||||
"settings.option.general.language.unsorted": "Sin clasificar",
|
"settings.option.general.language": "Idioma",
|
||||||
|
|
||||||
// Settings - Audio
|
// Language optgroups
|
||||||
"settings.header.audio": "Audio",
|
"settings.option.general.language.main": "Idiomas",
|
||||||
"settings.header.audio.description": "Ajustes del audio de Cider.",
|
"settings.option.general.language.fun": "Idiomas divertidos",
|
||||||
"settings.option.audio.quality": "Calidad de audio", // Dropdown
|
"settings.option.general.language.unsorted": "Sin clasificar",
|
||||||
"settings.header.audio.quality.high": "Alto",
|
|
||||||
"settings.header.audio.quality.low": "Bajo",
|
|
||||||
"settings.header.audio.quality.auto": "Auto",
|
|
||||||
"settings.option.audio.seamlessTransition": "Transición de audio perfecta", // Toggle
|
|
||||||
"settings.option.audio.enableAdvancedFunctionality": "Activar funciones avanzadas", // Toggle
|
|
||||||
"settings.option.audio.enableAdvancedFunctionality.description": "Habilitar la funcionalidad de AudioContext permitirá funciones de audio extendidas como Normalización de audio, Ecualizadores y Visualizadores; sin embargo, en algunos sistemas esto puede causar interrupciones en las canciones.",
|
|
||||||
"settings.option.audio.enableAdvancedFunctionality.audioNormalization": "Normalizar volumen", // Toggle
|
|
||||||
"settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "Normaliza los picos altos de canciones para hacer la experiencia de escucha mejor.",
|
|
||||||
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "Espacialización del audio", // Toggle
|
|
||||||
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "Espacializa más el audio y conviértelo más 3-dimensional (nota: Esto no es Dolby Atmos)",
|
|
||||||
// Settings - Visual
|
|
||||||
"settings.header.visual": "Visual",
|
|
||||||
"settings.header.visual.description": "Ajustes visuales para Cider.",
|
|
||||||
"settings.option.visual.windowBackgroundStyle": "Estilo del fondo de la ventana", // Toggle
|
|
||||||
"settings.header.visual.windowBackgroundStyle.none": "Nada",
|
|
||||||
"settings.header.visual.windowBackgroundStyle.artwork": "Carátula",
|
|
||||||
"settings.header.visual.windowBackgroundStyle.image": "Imagen",
|
|
||||||
"settings.option.visual.animatedArtwork": "Carátula animada", // Dropdown
|
|
||||||
"settings.header.visual.animatedArtwork.always": "Habilitar siempre",
|
|
||||||
"settings.header.visual.animatedArtwork.limited": "Limitado a algunas páginas",
|
|
||||||
"settings.header.visual.animatedArtwork.disable": "Deshabilitar en todas partes",
|
|
||||||
"settings.option.visual.animatedArtworkQuality": "Calidad de la carátula animada", // Dropdown
|
|
||||||
"settings.header.visual.animatedArtworkQuality.low": "Bajo",
|
|
||||||
"settings.header.visual.animatedArtworkQuality.medium": "Medio",
|
|
||||||
"settings.header.visual.animatedArtworkQuality.high": "Alto",
|
|
||||||
"settings.header.visual.animatedArtworkQuality.veryHigh": "Muy alto",
|
|
||||||
"settings.header.visual.animatedArtworkQuality.extreme": "Extrema",
|
|
||||||
"settings.option.visual.animatedWindowBackground": "Fondo de la ventana animado", // Toggle
|
|
||||||
"settings.option.visual.hardwareAcceleration": "Aceleración del hardware", // Dropdown
|
|
||||||
"settings.option.visual.hardwareAcceleration.description": "La app requiere reinicio",
|
|
||||||
"settings.header.visual.hardwareAcceleration.default": "Por defecto",
|
|
||||||
"settings.header.visual.hardwareAcceleration.webGPU": "WebGPU",
|
|
||||||
// Refer to term.disabled for the disabled option
|
|
||||||
"settings.option.visual.showPersonalInfo": "Mostrar información personal", // Toggle
|
|
||||||
|
|
||||||
// Settings - Lyrics
|
// Update Cider
|
||||||
"settings.header.lyrics": "Letras",
|
"settings.option.general.updateCider": "Actualizar Cider", // Button
|
||||||
"settings.header.lyrics.description": "Ajuste las letras para Cider",
|
|
||||||
"settings.option.lyrics.enableMusixmatch": "Habilitar las letras de Musixmatch", // Toggle
|
|
||||||
"settings.option.lyrics.enableMusixmatchKaraoke": "Habilita el modo Karaoke (solo con Musixmatch)", // Toggle
|
|
||||||
"settings.option.lyrics.musixmatchPreferredLanguage": "Idioma de traducción por defecto en Musixmatch", // Dropdown
|
|
||||||
"settings.option.lyrics.enableYoutubeLyrics": "Habilitar las letras de Youtube para los videos con música", // Toggle
|
|
||||||
|
|
||||||
// Settings - Connectivity
|
// Settings - Audio
|
||||||
"settings.header.connectivity": "Conectividad",
|
"settings.header.audio": "Audio",
|
||||||
"settings.header.connectivity.description": "Ajusta la conectividad para Cider.",
|
"settings.header.audio.description": "Ajustes del audio de Cider.",
|
||||||
"settings.option.connectivity.discordRPC": "Discord Rich Presence", // Dropdown
|
"settings.option.audio.quality": "Calidad de audio", // Dropdown
|
||||||
"settings.option.connectivity.playbackNotifications": "Notificaciones de reproducción", // Toggle
|
"settings.header.audio.quality.high": "Alto",
|
||||||
// Refer to term.disabled for the disabled option
|
"settings.header.audio.quality.low": "Bajo",
|
||||||
"settings.header.connectivity.discordRPC.cider": "Mostrar como 'Cider'",
|
"settings.header.audio.quality.auto": "Auto",
|
||||||
"settings.header.connectivity.discordRPC.appleMusic": "Mostrar como 'Apple Music'",
|
"settings.option.audio.seamlessTransition": "Transición de audio perfecta", // Toggle
|
||||||
"settings.option.connectivity.discordRPC.clearOnPause": "Quitar Discord Rich Presence en pausa", // Toggle
|
"settings.option.audio.enableAdvancedFunctionality": "Activar funciones avanzadas", // Toggle
|
||||||
"settings.option.connectivity.lastfmScrobble": "Scrobbling Last.fm", // Option to Connect
|
"settings.option.audio.enableAdvancedFunctionality.description": "Habilitar la funcionalidad de AudioContext permitirá funciones de audio extendidas como Normalización de audio, Ecualizadores y Visualizadores; sin embargo, en algunos sistemas esto puede causar interrupciones en las canciones.",
|
||||||
"settings.option.connectivity.lastfmScrobble.delay": "Delay del Scrobbling en Last.fm (%)",
|
"settings.option.audio.enableAdvancedFunctionality.audioNormalization": "Normalizar volumen", // Toggle
|
||||||
"settings.option.connectivity.lastfmScrobble.nowPlaying": "Habilitar 'Escuchando ahora' en Last.fm",
|
"settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "Normaliza los picos altos de canciones para hacer la experiencia de escucha mejor.",
|
||||||
"settings.option.connectivity.lastfmScrobble.removeFeatured": "Eliminar artistas destacados del título de la canción (Last.fm)",
|
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "Espacialización del audio", // Toggle
|
||||||
"settings.option.connectivity.lastfmScrobble.filterLoop": "Filtrar pista en bucle (Last.fm)",
|
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "Espacializa más el audio y conviértelo más 3-dimensional (nota: Esto no es Dolby Atmos)",
|
||||||
// Refer to term.connect for the connect button
|
|
||||||
|
|
||||||
// Settings - Experimental
|
// Settings - Visual
|
||||||
"settings.header.experimental": "En pruebas",
|
"settings.header.visual": "Visual",
|
||||||
"settings.header.experimental.description": "Ajustes en pruebas para Cider.",
|
"settings.header.visual.description": "Ajustes visuales para Cider.",
|
||||||
"settings.option.experimental.compactUI": "Interfaz de usuario compacto", // Toggle
|
"settings.option.visual.windowBackgroundStyle": "Estilo del fondo de la ventana", // Toggle
|
||||||
"settings.option.experimental.close_button_hide": "El botón de cerrar minimizará la aplicación en la bandeja",
|
"settings.header.visual.windowBackgroundStyle.none": "Nada",
|
||||||
// Refer to term.disabled & term.enabled
|
"settings.header.visual.windowBackgroundStyle.artwork": "Carátula",
|
||||||
|
"settings.header.visual.windowBackgroundStyle.image": "Imagen",
|
||||||
|
"settings.option.visual.animatedArtwork": "Carátula animada", // Dropdown
|
||||||
|
"settings.header.visual.animatedArtwork.always": "Habilitar siempre",
|
||||||
|
"settings.header.visual.animatedArtwork.limited": "Limitado a algunas páginas",
|
||||||
|
"settings.header.visual.animatedArtwork.disable": "Deshabilitar en todas partes",
|
||||||
|
"settings.option.visual.animatedArtworkQuality": "Calidad de la carátula animada", // Dropdown
|
||||||
|
"settings.header.visual.animatedArtworkQuality.low": "Bajo",
|
||||||
|
"settings.header.visual.animatedArtworkQuality.medium": "Medio",
|
||||||
|
"settings.header.visual.animatedArtworkQuality.high": "Alto",
|
||||||
|
"settings.header.visual.animatedArtworkQuality.veryHigh": "Muy alto",
|
||||||
|
"settings.header.visual.animatedArtworkQuality.extreme": "Extrema",
|
||||||
|
"settings.option.visual.animatedWindowBackground": "Fondo de la ventana animado", // Toggle
|
||||||
|
"settings.option.visual.hardwareAcceleration": "Aceleración del hardware", // Dropdown
|
||||||
|
"settings.option.visual.hardwareAcceleration.description": "La app requiere reinicio",
|
||||||
|
"settings.header.visual.hardwareAcceleration.default": "Por defecto",
|
||||||
|
"settings.header.visual.hardwareAcceleration.webGPU": "WebGPU",
|
||||||
|
// Refer to term.disabled for the disabled option
|
||||||
|
"settings.option.visual.showPersonalInfo": "Mostrar información personal", // Toggle
|
||||||
|
|
||||||
// Spatialization Menu
|
// Settings - Lyrics
|
||||||
"spatial.notTurnedOn": "La espacialización del audio esta desactivada. Para usarlo primero actívelo.",
|
"settings.header.lyrics": "Letras",
|
||||||
"spatial.spatialProperties": "Propiedades espaciales",
|
"settings.header.lyrics.description": "Ajuste las letras para Cider",
|
||||||
"spatial.width": "Ancho",
|
"settings.option.lyrics.enableMusixmatch": "Habilitar las letras de Musixmatch", // Toggle
|
||||||
"spatial.height": "Altura",
|
"settings.option.lyrics.enableMusixmatchKaraoke": "Habilita el modo Karaoke (solo con Musixmatch)", // Toggle
|
||||||
"spatial.depth": "Profundidad",
|
"settings.option.lyrics.musixmatchPreferredLanguage": "Idioma de traducción por defecto en Musixmatch", // Dropdown
|
||||||
"spatial.gain": "Ganancia",
|
"settings.option.lyrics.enableYoutubeLyrics": "Habilitar las letras de Youtube para los videos con música", // Toggle
|
||||||
"spatial.roomMaterials": "Material de la habitación",
|
|
||||||
"spatial.roomDimensions": "Dimensión de la habitación",
|
|
||||||
"spatial.roomPositions": "Posiciones de la habitación",
|
|
||||||
"spatial.setDimensions": "Establecer dimensiones",
|
|
||||||
"spatial.setPositions": "Establecer posiciones",
|
|
||||||
"spatial.up": "Arriba",
|
|
||||||
"spatial.front": "Delante",
|
|
||||||
"spatial.left": "Izquierda",
|
|
||||||
"spatial.right": "Derecha",
|
|
||||||
"spatial.back": "Atrás",
|
|
||||||
"spatial.down": "Abajo",
|
|
||||||
"spatial.listener": "Oyente",
|
|
||||||
"spatial.audioSource": "Salida del audio",
|
|
||||||
|
|
||||||
// Settings - Unfinished
|
// Settings - Connectivity
|
||||||
"settings.header.unfinished": "Sin acabar",
|
"settings.header.connectivity": "Conectividad",
|
||||||
"settings.header.unfinished.description": "Ajustes siendo testeados, no están acabados.",
|
"settings.header.connectivity.description": "Ajusta la conectividad para Cider.",
|
||||||
|
"settings.option.connectivity.discordRPC": "Discord Rich Presence", // Dropdown
|
||||||
|
"settings.option.connectivity.playbackNotifications": "Notificaciones de reproducción", // Toggle
|
||||||
|
// Refer to term.disabled for the disabled option
|
||||||
|
"settings.header.connectivity.discordRPC.cider": "Mostrar como 'Cider'",
|
||||||
|
"settings.header.connectivity.discordRPC.appleMusic": "Mostrar como 'Apple Music'",
|
||||||
|
"settings.option.connectivity.discordRPC.clearOnPause": "Quitar Discord Rich Presence en pausa", // Toggle
|
||||||
|
"settings.option.connectivity.lastfmScrobble": "Scrobbling Last.fm", // Option to Connect
|
||||||
|
"settings.option.connectivity.lastfmScrobble.delay": "Delay del Scrobbling en Last.fm (%)",
|
||||||
|
"settings.option.connectivity.lastfmScrobble.nowPlaying": "Habilitar 'Escuchando ahora' en Last.fm",
|
||||||
|
"settings.option.connectivity.lastfmScrobble.removeFeatured": "Eliminar artistas destacados del título de la canción (Last.fm)",
|
||||||
|
"settings.option.connectivity.lastfmScrobble.filterLoop": "Filtrar pista en bucle (Last.fm)",
|
||||||
|
// Refer to term.connect for the connect button
|
||||||
|
|
||||||
// Web Remote
|
// Settings - Experimental
|
||||||
"remote.web.title": "Cider Remoto",
|
"settings.header.experimental": "En pruebas",
|
||||||
"remote.web.description": "Escanee el código QR para emparejar su teléfono con su cliente de Cider",
|
"settings.header.experimental.description": "Ajustes en pruebas para Cider.",
|
||||||
|
"settings.option.experimental.compactUI": "Interfaz de usuario compacto", // Toggle
|
||||||
|
"settings.option.experimental.close_button_hide": "El botón de cerrar minimizará la aplicación en la bandeja",
|
||||||
|
|
||||||
// About
|
// Refer to term.disabled & term.enabled
|
||||||
"about.thanks": "Muchísimas gracias al equipo de Cider Collective y también a todos nuestros contribuidores."
|
// Spatialization Menu
|
||||||
}
|
"spatial.notTurnedOn": "La espacialización del audio esta desactivada. Para usarlo primero actívelo.",
|
||||||
|
"spatial.spatialProperties": "Propiedades espaciales",
|
||||||
|
"spatial.width": "Ancho",
|
||||||
|
"spatial.height": "Altura",
|
||||||
|
"spatial.depth": "Profundidad",
|
||||||
|
"spatial.gain": "Ganancia",
|
||||||
|
"spatial.roomMaterials": "Material de la habitación",
|
||||||
|
"spatial.roomDimensions": "Dimensión de la habitación",
|
||||||
|
"spatial.roomPositions": "Posiciones de la habitación",
|
||||||
|
"spatial.setDimensions": "Establecer dimensiones",
|
||||||
|
"spatial.setPositions": "Establecer posiciones",
|
||||||
|
"spatial.up": "Arriba",
|
||||||
|
"spatial.front": "Delante",
|
||||||
|
"spatial.left": "Izquierda",
|
||||||
|
"spatial.right": "Derecha",
|
||||||
|
"spatial.back": "Atrás",
|
||||||
|
"spatial.down": "Abajo",
|
||||||
|
"spatial.listener": "Oyente",
|
||||||
|
"spatial.audioSource": "Salida del audio",
|
||||||
|
|
||||||
|
// Settings - Unfinished
|
||||||
|
"settings.header.unfinished": "Sin acabar",
|
||||||
|
"settings.header.unfinished.description": "Ajustes siendo testeados, no están acabados.",
|
||||||
|
|
||||||
|
// Web Remote
|
||||||
|
"remote.web.title": "Cider Remoto",
|
||||||
|
"remote.web.description": "Escanee el código QR para emparejar su teléfono con su cliente de Cider",
|
||||||
|
|
||||||
|
// About
|
||||||
|
"about.thanks": "Muchísimas gracias al equipo de Cider Collective y también a todos nuestros contribuidores."
|
||||||
|
}
|
|
@ -1,7 +1,6 @@
|
||||||
{ // Base File
|
{ // Base File
|
||||||
|
|
||||||
// i18n Info
|
// i18n Info
|
||||||
"i18n.languageName": "Français", // name of language in native language
|
"i18n.languageName": "Français", // name of language in native language
|
||||||
"i18n.languageNameEnglish": "French", // name of language in English
|
"i18n.languageNameEnglish": "French", // 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": "@ErwanGit", // Authors, if you contribute to this file feel free to add your name seperated with a space
|
"i18n.authors": "@ErwanGit", // Authors, if you contribute to this file feel free to add your name seperated with a space
|
||||||
|
@ -19,6 +18,7 @@
|
||||||
"notification.updatingLibrarySongs": "Mise à jour des chansons de la bibliothèque...",
|
"notification.updatingLibrarySongs": "Mise à jour des chansons de la bibliothèque...",
|
||||||
"notification.updatingLibraryAlbums": "Mise à jour des albums de la bibliothèque...",
|
"notification.updatingLibraryAlbums": "Mise à jour des albums de la bibliothèque...",
|
||||||
"notification.updatingLibraryArtists": "Mise à jour des artistes de la bibliothèque...",
|
"notification.updatingLibraryArtists": "Mise à jour des artistes de la bibliothèque...",
|
||||||
|
|
||||||
// Terms
|
// Terms
|
||||||
"term.appleInc": "Apple Inc.",
|
"term.appleInc": "Apple Inc.",
|
||||||
"term.appleMusic": "Apple Music",
|
"term.appleMusic": "Apple Music",
|
||||||
|
@ -33,6 +33,7 @@
|
||||||
"term.about": "À propos",
|
"term.about": "À propos",
|
||||||
"term.privateSession": "Session privée",
|
"term.privateSession": "Session privée",
|
||||||
"term.queue": "File d'attente",
|
"term.queue": "File d'attente",
|
||||||
|
"term.history": "Historique",
|
||||||
"term.search": "Recherche",
|
"term.search": "Recherche",
|
||||||
"term.library": "Bibliothèque",
|
"term.library": "Bibliothèque",
|
||||||
"term.listenNow": "Écoutez maintenant",
|
"term.listenNow": "Écoutez maintenant",
|
||||||
|
@ -45,6 +46,11 @@
|
||||||
"term.podcasts": "Podcasts",
|
"term.podcasts": "Podcasts",
|
||||||
"term.playlists": "Playlists",
|
"term.playlists": "Playlists",
|
||||||
"term.playlist": "Playlist",
|
"term.playlist": "Playlist",
|
||||||
|
"term.newPlaylist": "Nouvelle Playlist",
|
||||||
|
"term.newPlaylistFolder": "Nouveau dossier de playlist",
|
||||||
|
"term.createNewPlaylist": "Créer une nouvelle playlist",
|
||||||
|
"term.createNewPlaylistFolder": "Create New Playlist Folder",
|
||||||
|
"term.deletePlaylist": "Êtes-vous sûr de vouloir supprimer cette playlist ?",
|
||||||
"term.play": "Lecture",
|
"term.play": "Lecture",
|
||||||
"term.pause": "Pause",
|
"term.pause": "Pause",
|
||||||
"term.previous": "Précédent",
|
"term.previous": "Précédent",
|
||||||
|
@ -56,6 +62,7 @@
|
||||||
"term.unmute": "Ne plus rendre muet",
|
"term.unmute": "Ne plus rendre muet",
|
||||||
"term.share": "Partager",
|
"term.share": "Partager",
|
||||||
"term.settings": "Paramètres",
|
"term.settings": "Paramètres",
|
||||||
|
"term.share.success": "Copié dans le presse-papier",
|
||||||
"term.seeAll": "Voir tout",
|
"term.seeAll": "Voir tout",
|
||||||
"term.sortBy": "Trier par",
|
"term.sortBy": "Trier par",
|
||||||
"term.sortBy.album": "Album",
|
"term.sortBy.album": "Album",
|
||||||
|
@ -86,7 +93,7 @@
|
||||||
"term.less": "Moins",
|
"term.less": "Moins",
|
||||||
"term.showMore": "Afficher plus",
|
"term.showMore": "Afficher plus",
|
||||||
"term.showLess": "Afficher moins",
|
"term.showLess": "Afficher moins",
|
||||||
"term.topSongs" : "Meilleurs titres",
|
"term.topSongs": "Meilleurs titres",
|
||||||
"term.latestReleases": "Dernières sorties",
|
"term.latestReleases": "Dernières sorties",
|
||||||
"term.time.added": "Ajouté",
|
"term.time.added": "Ajouté",
|
||||||
"term.time.released": "Publié",
|
"term.time.released": "Publié",
|
||||||
|
@ -111,13 +118,30 @@
|
||||||
"term.ciderTeam": "Équipe Cider",
|
"term.ciderTeam": "Équipe Cider",
|
||||||
"term.developer": "Développeur",
|
"term.developer": "Développeur",
|
||||||
"term.socialTeam": "Équipe de communication",
|
"term.socialTeam": "Équipe de communication",
|
||||||
|
"term.socials": "Réseaux sociaux",
|
||||||
"term.contributors": "Contributeurs",
|
"term.contributors": "Contributeurs",
|
||||||
"term.equalizer": "Égaliseur",
|
"term.equalizer": "Égaliseur",
|
||||||
"term.reset": "Réinitialiser",
|
"term.reset": "Réinitialiser",
|
||||||
"term.tracks": "musiques", // Assume x amount of tracks. e.g. 50 tracks
|
"term.tracks": "musiques", // Assume x amount of tracks. e.g. 50 tracks
|
||||||
"term.videos": "Vidéos",
|
"term.videos": "Vidéos",
|
||||||
"term.menu": "Menu",
|
"term.menu": "Menu",
|
||||||
"action.showAlbum": "Afficher l'album complet",
|
"term.check": "Vérifier",
|
||||||
|
"term.aboutArtist": "À propos de {{artistName}}", // e.g. 'About Doja Cat'
|
||||||
|
"term.topResult": "Meilleurs résultats", // Search Results
|
||||||
|
"term.sharedPlaylists": "Playlists partagées", // Search Results
|
||||||
|
"term.people": "Personnes", // Search Results
|
||||||
|
"term.newpreset.name": "Nouveau nom du préréglage de l'égaliseur", // Equalizer Preset
|
||||||
|
"term.addedpreset": "Ajout d'un préréglage",
|
||||||
|
"term.deletepreset.warn": "Êtes-vous sûr de vouloir supprimer ce préréglage ?",
|
||||||
|
"term.deletedpreset": "Suppression d'un préréglage",
|
||||||
|
"term.musicVideos": "Vidéos musicales", // Search page friendlyTypes
|
||||||
|
"term.stations": "Stations",
|
||||||
|
"term.curators": "Curateurs",
|
||||||
|
"term.appleCurators": "Curateurs Apple",
|
||||||
|
"term.radioShows": "Émissions de radio",
|
||||||
|
"term.recordLabels": "Labels de disques",
|
||||||
|
"term.videoExtras": "Vidéos bonus",
|
||||||
|
"term.top": "Top",
|
||||||
|
|
||||||
// Home
|
// Home
|
||||||
"home.title": "Accueil",
|
"home.title": "Accueil",
|
||||||
|
@ -128,13 +152,14 @@
|
||||||
"home.madeForYou": "Fait pour vous",
|
"home.madeForYou": "Fait pour vous",
|
||||||
"home.friendsListeningTo": "Vos amis écoutent",
|
"home.friendsListeningTo": "Vos amis écoutent",
|
||||||
"home.followedArtists": "Artistes suivis",
|
"home.followedArtists": "Artistes suivis",
|
||||||
|
|
||||||
// Errors
|
// Errors
|
||||||
"error.appleMusicSubRequired": "Apple Music nécessite un abonnement.",
|
"error.appleMusicSubRequired": "Apple Music nécessite un abonnement.",
|
||||||
"error.connectionError": "Il y a eu un problème de connexion à Apple Music.",
|
"error.connectionError": "Il y a eu un problème de connexion à Apple Music.",
|
||||||
"error.noResults": "Aucun résultat.",
|
"error.noResults": "Aucun résultat.",
|
||||||
"error.noResults.description": "Essayez une nouvelle recherche.",
|
"error.noResults.description": "Essayez une nouvelle recherche.",
|
||||||
|
|
||||||
//Podcasts
|
// Podcasts
|
||||||
"podcast.followOnCider": "Suivre sur Cider",
|
"podcast.followOnCider": "Suivre sur Cider",
|
||||||
"podcast.followedOnCider": "Suivi sur Cider",
|
"podcast.followedOnCider": "Suivi sur Cider",
|
||||||
"podcast.subscribeOnItunes": "Suivre sur iTunes",
|
"podcast.subscribeOnItunes": "Suivre sur iTunes",
|
||||||
|
@ -156,6 +181,7 @@
|
||||||
"action.removeFromQueue": "Retirer de la file d'attente",
|
"action.removeFromQueue": "Retirer de la file d'attente",
|
||||||
"action.removeFromQueue.success": "Retiré de la file d'attente",
|
"action.removeFromQueue.success": "Retiré de la file d'attente",
|
||||||
"action.removeFromQueue.error": "Erreur lors du retrait de la file d'attente",
|
"action.removeFromQueue.error": "Erreur lors du retrait de la file d'attente",
|
||||||
|
"action.createPlaylist": "Créer une nouvelle playlist",
|
||||||
"action.addToPlaylist": "Ajouter à une playlist",
|
"action.addToPlaylist": "Ajouter à une playlist",
|
||||||
"action.removeFromPlaylist": "Retirer de la playlist",
|
"action.removeFromPlaylist": "Retirer de la playlist",
|
||||||
"action.addToFavorites": "Ajouter aux favoris",
|
"action.addToFavorites": "Ajouter aux favoris",
|
||||||
|
@ -183,6 +209,14 @@
|
||||||
"action.removeTracks": "Retirer ${self.selectedItems.length} musiques de la file d'attente",
|
"action.removeTracks": "Retirer ${self.selectedItems.length} musiques de la file d'attente",
|
||||||
"action.import": "Importer",
|
"action.import": "Importer",
|
||||||
"action.export": "Exporter",
|
"action.export": "Exporter",
|
||||||
|
"action.showAlbum": "Afficher l'album complet",
|
||||||
|
"action.tray.minimize": "Réduire dans la barre d'outils",
|
||||||
|
"action.tray.quit": "Quitter",
|
||||||
|
"action.tray.show": "Afficher",
|
||||||
|
"action.update": "Mettre à jour",
|
||||||
|
"action.copy": "Copier",
|
||||||
|
"action.newpreset": "Nouveau préréglage...", // Equalizer Preset
|
||||||
|
"action.deletepreset": "Supprimer le préréglage",
|
||||||
|
|
||||||
// Settings - General
|
// Settings - General
|
||||||
"settings.header.general": "Général",
|
"settings.header.general": "Général",
|
||||||
|
@ -194,20 +228,31 @@
|
||||||
"settings.option.general.language.fun": "Langues amusantes",
|
"settings.option.general.language.fun": "Langues amusantes",
|
||||||
"settings.option.general.language.unsorted": "Non trié",
|
"settings.option.general.language.unsorted": "Non trié",
|
||||||
|
|
||||||
|
// Update Cider
|
||||||
|
"settings.option.general.updateCider": "Mettre à jour Cider", // Button
|
||||||
|
|
||||||
// Settings - Audio
|
// Settings - Audio
|
||||||
"settings.header.audio": "Audio",
|
"settings.header.audio": "Audio",
|
||||||
"settings.header.audio.description": "Ajuster les paramètres audio de Cider.",
|
"settings.header.audio.description": "Ajuster les paramètres audio de Cider.",
|
||||||
"settings.option.audio.quality": "Qualité Audio", // Dropdown
|
"settings.option.audio.quality": "Qualité Audio", // Dropdown
|
||||||
|
"settings.header.audio.quality.hireslossless": "Lossless haute qualité (Hi-Res)",
|
||||||
|
"settings.header.audio.quality.hireslossless.description": "(jusqu'à 24 bits/192 kHz)",
|
||||||
|
"settings.header.audio.quality.lossless": "Lossless",
|
||||||
|
"settings.header.audio.quality.lossless.description": "(jusqu'à 24 bits/48 kHz)",
|
||||||
|
"settings.header.audio.quality.enhanced": "Amélioré",
|
||||||
"settings.header.audio.quality.high": "Élevée",
|
"settings.header.audio.quality.high": "Élevée",
|
||||||
"settings.header.audio.quality.low": "Faible",
|
"settings.header.audio.quality.low": "Faible",
|
||||||
"settings.header.audio.quality.auto": "Automatique",
|
"settings.header.audio.quality.auto": "Automatique",
|
||||||
"settings.option.audio.seamlessTransition": "Fondu audio transparent", // Toggle
|
"settings.option.audio.seamlessTransition": "Fondu audio transparent", // Toggle
|
||||||
"settings.option.audio.enableAdvancedFunctionality": "Activer les fonctions avancées", // Toggle
|
"settings.option.audio.enableAdvancedFunctionality": "Activer les fonctions avancées", // Toggle
|
||||||
"settings.option.audio.enableAdvancedFunctionality.description": "L'activation de la fonctionnalité AudioContext permet d'utiliser des fonctions audio étendues telles que la normalisation du son, les égaliseurs et les visualiseurs. Toutefois, sur certains systèmes, cela peut provoquer des bégaiements dans les pistes audio.",
|
"settings.option.audio.enableAdvancedFunctionality.description": "L'activation de la fonctionnalité AudioContext permet d'utiliser des fonctions audio étendues telles que la normalisation du son, les égaliseurs et les visualiseurs. Toutefois, sur certains systèmes, cela peut provoquer des bégaiements dans les pistes audio.",
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.ciderPPE": "Moteur de traitement psycho-acoustique Cider", // Toggle
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.ciderPPE.description": "Un processus de traitement qui fait croire à votre cerveau que les fichiers sont de meilleure qualité.",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.audioNormalization": "Normalisation du son", // Toggle
|
"settings.option.audio.enableAdvancedFunctionality.audioNormalization": "Normalisation du son", // Toggle
|
||||||
"settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "Normalise le volume maximal des pistes individuelles pour créer une expérience d'écoute plus uniforme.",
|
"settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "Normalise le volume maximal des pistes individuelles pour créer une expérience d'écoute plus uniforme.",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "Spatialisation audio", // Toggle
|
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "Spatialisation audio", // Toggle
|
||||||
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "Spatialiser l'audio et rendre l'audio plus tridimensionnel (note: Ce n'est pas Dolby Atmos)",
|
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "Spatialiser l'audio et rendre l'audio plus tridimensionnel (note: Ce n'est pas Dolby Atmos)",
|
||||||
|
|
||||||
// Settings - Visual
|
// Settings - Visual
|
||||||
"settings.header.visual": "Visuel",
|
"settings.header.visual": "Visuel",
|
||||||
"settings.header.visual.description": "Ajuster les paramètres visuels de Cider.",
|
"settings.header.visual.description": "Ajuster les paramètres visuels de Cider.",
|
||||||
|
@ -230,6 +275,11 @@
|
||||||
"settings.option.visual.hardwareAcceleration.description": "Nécessite un relancement",
|
"settings.option.visual.hardwareAcceleration.description": "Nécessite un relancement",
|
||||||
"settings.header.visual.hardwareAcceleration.default": "Défaut",
|
"settings.header.visual.hardwareAcceleration.default": "Défaut",
|
||||||
"settings.header.visual.hardwareAcceleration.webGPU": "WebGPU",
|
"settings.header.visual.hardwareAcceleration.webGPU": "WebGPU",
|
||||||
|
"settings.header.visual.theme": "Thème",
|
||||||
|
|
||||||
|
// Settings - Visual - Theme name
|
||||||
|
"settings.option.visual.theme.default": "Cider",
|
||||||
|
"settings.option.visual.theme.dark": "Sombre",
|
||||||
// Refer to term.disabled for the disabled option
|
// Refer to term.disabled for the disabled option
|
||||||
"settings.option.visual.showPersonalInfo": "Afficher vos informations personnelles", // Toggle
|
"settings.option.visual.showPersonalInfo": "Afficher vos informations personnelles", // Toggle
|
||||||
|
|
||||||
|
@ -261,13 +311,13 @@
|
||||||
"settings.header.experimental": "Expérimental",
|
"settings.header.experimental": "Expérimental",
|
||||||
"settings.header.experimental.description": "Ajuster les paramètres expérimentaux de Cider.",
|
"settings.header.experimental.description": "Ajuster les paramètres expérimentaux de Cider.",
|
||||||
"settings.option.experimental.compactUI": "Interface utilisateur compacte", // Toggle
|
"settings.option.experimental.compactUI": "Interface utilisateur compacte", // Toggle
|
||||||
"settings.option.experimental.closeButtonBehaviour": "Comportement du bouton de fermeture",
|
"settings.option.experimental.close_button_hide": "Le bouton de fermeture doit masquer l'application",
|
||||||
"settings.option.experimental.closeButtonBehaviour.quit": "Quitter Cider",
|
"settings.option.experimental.copy_log": "Copier les logs dans le presse-papier",
|
||||||
"settings.option.experimental.closeButtonBehaviour.minimizeTaskbar": "Réduire dans la barre des tâches",
|
"settings.option.experimental.inline_playlists": "Playlists et albums en ligne",
|
||||||
"settings.option.experimental.closeButtonBehaviour.minimizeTray": "Réduire dans la barre d'outils",
|
|
||||||
// Refer to term.disabled & term.enabled
|
|
||||||
|
|
||||||
|
// Refer to term.disabled & term.enabled
|
||||||
// Spatialization Menu
|
// Spatialization Menu
|
||||||
|
"spatial.notTurnedOn": "La spatialisation audio est désactivée. Pour l'utiliser, vous devez d'abord l'activer.",
|
||||||
"spatial.spatialProperties": "Propriétés spatiales",
|
"spatial.spatialProperties": "Propriétés spatiales",
|
||||||
"spatial.width": "Largeur",
|
"spatial.width": "Largeur",
|
||||||
"spatial.height": "Hauteur",
|
"spatial.height": "Hauteur",
|
||||||
|
@ -291,10 +341,9 @@
|
||||||
"settings.header.unfinished": "Inachevée",
|
"settings.header.unfinished": "Inachevée",
|
||||||
|
|
||||||
// Web Remote
|
// Web Remote
|
||||||
"remote.web.title": "Cider Remote",
|
"remote.web.title": "Cider à distance",
|
||||||
"remote.web.description": "Scanner le QR code pour associer votre téléphone avec cette instance Cider",
|
"remote.web.description": "Scanner le QR code pour associer votre téléphone avec cette instance Cider",
|
||||||
|
|
||||||
// About
|
// About
|
||||||
"about.thanks": "Un grand merci à l'équipe de la Cider Collective et à tous nos contributeurs."
|
"about.thanks": "Un grand merci à l'équipe de la Cider Collective et à tous nos contributeurs."
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,10 +1,9 @@
|
||||||
{ // Base File
|
{ // Base File
|
||||||
|
|
||||||
// i18n Info
|
// i18n Info
|
||||||
"i18n.languageName": "Magyar", // name of language in native language
|
"i18n.languageName": "Magyar", // name of language in native language
|
||||||
"i18n.languageNameEnglish": "Hungarian", // name of language in English
|
"i18n.languageNameEnglish": "Hungarian", // 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": "@Greenoliv @Rias @BenjaminStonawski", // Authors, if you contribute to this file feel free to add your name seperated with a space
|
"i18n.authors": "@Greenoliv @Amaru @BenjaminStonawski", // 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",
|
||||||
|
@ -19,10 +18,11 @@
|
||||||
"notification.updatingLibrarySongs": "Zenekönyvtár frissítése...",
|
"notification.updatingLibrarySongs": "Zenekönyvtár frissítése...",
|
||||||
"notification.updatingLibraryAlbums": "Albumok frissítése...",
|
"notification.updatingLibraryAlbums": "Albumok frissítése...",
|
||||||
"notification.updatingLibraryArtists": "Előadók frissítése...",
|
"notification.updatingLibraryArtists": "Előadók frissítése...",
|
||||||
|
|
||||||
// Terms
|
// Terms
|
||||||
"term.appleInc": "Apple Inc.",
|
"term.appleInc": "Apple Inc.",
|
||||||
"term.appleMusic": "Apple Music",
|
"term.appleMusic": "Apple Music",
|
||||||
"term.applePodcasts": "Apple Podcasts",
|
"term.applePodcasts": "Apple Podcastok",
|
||||||
"term.itunes": "iTunes",
|
"term.itunes": "iTunes",
|
||||||
"term.github": "GitHub",
|
"term.github": "GitHub",
|
||||||
"term.discord": "Discord",
|
"term.discord": "Discord",
|
||||||
|
@ -46,9 +46,9 @@
|
||||||
"term.playlists": "Lejátszási listák",
|
"term.playlists": "Lejátszási listák",
|
||||||
"term.playlist": "Lejátszási lista",
|
"term.playlist": "Lejátszási lista",
|
||||||
"term.newPlaylist": "Új lejátszási lista",
|
"term.newPlaylist": "Új lejátszási lista",
|
||||||
"term.newPlaylistFolder": "Új lejátszási lista mappa",
|
"term.newPlaylistFolder": "Új mappa",
|
||||||
"term.createNewPlaylist": "Új lejátszási lista létrehozása",
|
"term.createNewPlaylist": "Új lejátszási lista létrehozása",
|
||||||
"term.createNewPlaylistFolder": "Új lejátszási lista mappa létrehozása",
|
"term.createNewPlaylistFolder": "Új mappa létrehozása",
|
||||||
"term.deletePlaylist": "Biztosan szeretné törölni a lejátszási listát?",
|
"term.deletePlaylist": "Biztosan szeretné törölni a lejátszási listát?",
|
||||||
"term.play": "Lejátszás",
|
"term.play": "Lejátszás",
|
||||||
"term.pause": "Megállítás",
|
"term.pause": "Megállítás",
|
||||||
|
@ -60,6 +60,7 @@
|
||||||
"term.mute": "Némítás",
|
"term.mute": "Némítás",
|
||||||
"term.unmute": "Némítás feloldása",
|
"term.unmute": "Némítás feloldása",
|
||||||
"term.share": "Megosztás",
|
"term.share": "Megosztás",
|
||||||
|
"term.share.success": "Másolva a vágólapra",
|
||||||
"term.settings": "Beállítások",
|
"term.settings": "Beállítások",
|
||||||
"term.seeAll": "Összes",
|
"term.seeAll": "Összes",
|
||||||
"term.sortBy": "Rendezés",
|
"term.sortBy": "Rendezés",
|
||||||
|
@ -91,7 +92,7 @@
|
||||||
"term.less": "Kevesebb",
|
"term.less": "Kevesebb",
|
||||||
"term.showMore": "Mutass többet",
|
"term.showMore": "Mutass többet",
|
||||||
"term.showLess": "Mutass kevesebbet",
|
"term.showLess": "Mutass kevesebbet",
|
||||||
"term.topSongs" : "A legjobb dalok",
|
"term.topSongs": "A legjobb dalok",
|
||||||
"term.latestReleases": "Új megjelenések",
|
"term.latestReleases": "Új megjelenések",
|
||||||
"term.time.added": "Hozzáadva",
|
"term.time.added": "Hozzáadva",
|
||||||
"term.time.released": "Kiadva",
|
"term.time.released": "Kiadva",
|
||||||
|
@ -104,45 +105,60 @@
|
||||||
"term.time.second": "másodperc",
|
"term.time.second": "másodperc",
|
||||||
"term.fullscreenView": "Teljes képernyős mód",
|
"term.fullscreenView": "Teljes képernyős mód",
|
||||||
"term.defaultView": "Alapértelmezett nézet",
|
"term.defaultView": "Alapértelmezett nézet",
|
||||||
"term.spacializedAudioSetting": "Térbeli hangzás",
|
"term.spacializedAudioSetting": "Térbeli hang",
|
||||||
"term.clearAll": "Összes törlése",
|
"term.clearAll": "Összes törlése",
|
||||||
"term.recentStations": "Nemrég játszott",
|
"term.recentStations": "Nemrég játszott",
|
||||||
"term.language": "Nyelv",
|
"term.language": "Nyelv",
|
||||||
"term.funLanguages": "Mókás",
|
"term.funLanguages": "Fantázianyelvek",
|
||||||
"term.noLyrics": "Betöltés... / Dalszöveg nem található. / Instrumentális.",
|
"term.noLyrics": "Betöltés... / Dalszöveg nem található. / Instrumentális.",
|
||||||
"term.copyright": "Szerzői jog",
|
"term.copyright": "Szerzői jog",
|
||||||
"term.rightsReserved": "Minden jog fenntartva.",
|
"term.rightsReserved": "Minden jog fenntartva.",
|
||||||
"term.sponsor": "Támogasd a projektet",
|
"term.sponsor": "Támogasd a projektet",
|
||||||
"term.ciderTeam": "A Cider csapata",
|
"term.ciderTeam": "A Cider csapata",
|
||||||
"term.developer": "Fejlesztő",
|
"term.developer": "Fejlesztő",
|
||||||
"term.socialTeam": "Szociális csapat",
|
"term.socialTeam": "Közösségi csapat",
|
||||||
"term.socials": "Szociális",
|
"term.socials": "Szociális",
|
||||||
"term.contributors": "Közreműködők",
|
"term.contributors": "Hozzájárulók",
|
||||||
"term.equalizer": "Hangszínszabályozó",
|
"term.equalizer": "Hangszínszabályozó",
|
||||||
"term.reset": "Visszaállítás",
|
"term.reset": "Visszaállítás",
|
||||||
"term.tracks": "zeneszám", // Assume x amount of tracks. e.g. 50 tracks
|
"term.tracks": "zeneszám", // Assume x amount of tracks. e.g. 50 tracks
|
||||||
"term.videos": "Videók",
|
"term.videos": "Videók",
|
||||||
"term.menu": "Menü",
|
"term.menu": "Menü",
|
||||||
"term.check": "Bejelöl",
|
"term.check": "Ellenőrzés",
|
||||||
"term.aboutArtist": "További információ {{artistName}} előadóról", // e.g. 'About Doja Cat'
|
"term.aboutArtist": "About {{artistName}}", // e.g. 'About Doja Cat'
|
||||||
"term.updateCider": "Cider frissítése",
|
"term.topResult": "Legjobb találatok", // Search Results
|
||||||
|
"term.sharedPlaylists": "Megosztott lejátszási listák", // Search Results
|
||||||
|
"term.people": "Profilok", // Search Results
|
||||||
|
"term.newpreset.name": "New EQ Preset Name", // Equalizer Preset
|
||||||
|
"term.addedpreset": "Preset hozzáadva",
|
||||||
|
"term.deletepreset.warn": "Are you sure you want to delete this preset?",
|
||||||
|
"term.deletedpreset": "Preset törölve",
|
||||||
|
"term.musicVideos": "Videóklipek", // Search page friendlyTypes
|
||||||
|
"term.stations": "Állomások",
|
||||||
|
"term.curators": "Curators",
|
||||||
|
"term.appleCurators": "Apple Curators",
|
||||||
|
"term.radioShows": "Radio Shows",
|
||||||
|
"term.recordLabels": "Record Labels",
|
||||||
|
"term.videoExtras": "Videóextrák",
|
||||||
|
"term.top": "Top",
|
||||||
|
|
||||||
// Home
|
// Home
|
||||||
"home.title": "Kezdőlap",
|
"home.title": "Kezdőlap",
|
||||||
"home.recentlyPlayed": "Nemrég játszott",
|
"home.recentlyPlayed": "Nemrég játszott",
|
||||||
"home.recentlyAdded": "Nemrég hozzáadott",
|
"home.recentlyAdded": "Nemrég hozzáadott",
|
||||||
"home.artistsFeed": "Az előadóid feedje",
|
"home.artistsFeed": "Az előadóid feedje",
|
||||||
"home.artistsFeed.noArtist": "Kövess néhány előadót, hogy a legújabb zenéi itt megjelenhessenek.",
|
"home.artistsFeed.noArtist": "Kövess néhány előadót, hogy a legújabb zenéik itt megjelenjenek",
|
||||||
"home.madeForYou": "Személyre szabva",
|
"home.madeForYou": "Személyre szabva",
|
||||||
"home.friendsListeningTo": "A barátaid épp ezt hallgatják",
|
"home.friendsListeningTo": "A barátaid épp ezt hallgatják",
|
||||||
"home.followedArtists": "Követett előadók",
|
"home.followedArtists": "Követett előadók",
|
||||||
|
|
||||||
// Errors
|
// Errors
|
||||||
"error.appleMusicSubRequired": "Apple Music előfizetés szükséges.",
|
"error.appleMusicSubRequired": "Apple Music előfizetés szükséges.",
|
||||||
"error.connectionError": "Hiba történt az Apple Musichoz való csatlakozás közben.",
|
"error.connectionError": "Hiba történt az Apple Musichoz való csatlakozás közben.",
|
||||||
"error.noResults": "Nincs találat",
|
"error.noResults": "Nincs találat",
|
||||||
"error.noResults.description": "Próbálkozzon új kereséssel",
|
"error.noResults.description": "Próbálkozzon új kereséssel",
|
||||||
|
|
||||||
//Podcasts
|
// Podcasts
|
||||||
"podcast.followOnCider": "Követés a Cideren",
|
"podcast.followOnCider": "Követés a Cideren",
|
||||||
"podcast.followedOnCider": "Követve a Cideren",
|
"podcast.followedOnCider": "Követve a Cideren",
|
||||||
"podcast.subscribeOnItunes": "Feliratkozás az iTunesban",
|
"podcast.subscribeOnItunes": "Feliratkozás az iTunesban",
|
||||||
|
@ -153,11 +169,11 @@
|
||||||
"podcast.website": "Podcast weboldala",
|
"podcast.website": "Podcast weboldala",
|
||||||
|
|
||||||
// Actions
|
// Actions
|
||||||
"action.addToLibrary": "Hozzáadás a könyvtárhoz",
|
"action.addToLibrary": "Hozzáadás a Könyvtárhoz",
|
||||||
"action.addToLibrary.success": "Hozzáadva a könyvtárhoz",
|
"action.addToLibrary.success": "Hozzáadva a Könyvtárhoz",
|
||||||
"action.addToLibrary.error": "Hiba a hozzáadáskor.",
|
"action.addToLibrary.error": "Hiba a hozzáadáskor.",
|
||||||
"action.removeFromLibrary": "Törlés a Könytárból",
|
"action.removeFromLibrary": "Törlés a Könytárból",
|
||||||
"action.removeFromLibrary.success": "Törölve a könyvtárból",
|
"action.removeFromLibrary.success": "Törölve a Könyvtárból",
|
||||||
"action.addToQueue": "Hozzáadás a várólistához",
|
"action.addToQueue": "Hozzáadás a várólistához",
|
||||||
"action.addToQueue.success": "Hozzáadva a várólistához",
|
"action.addToQueue.success": "Hozzáadva a várólistához",
|
||||||
"action.addToQueue.error": "Sikertelen hozzáadás a várólistához",
|
"action.addToQueue.error": "Sikertelen hozzáadás a várólistához",
|
||||||
|
@ -182,51 +198,69 @@
|
||||||
"action.moveToTop": "Mozgatás legfelülre",
|
"action.moveToTop": "Mozgatás legfelülre",
|
||||||
"action.share": "Megosztás",
|
"action.share": "Megosztás",
|
||||||
"action.rename": "Átnevezés",
|
"action.rename": "Átnevezés",
|
||||||
"action.love": "Kedvelés",
|
"action.love": "Szeretem",
|
||||||
"action.unlove": "Kedvelés visszavonása",
|
"action.unlove": "Mégsem szeretem",
|
||||||
"action.dislike": "Nem kedvelem",
|
"action.dislike": "Kevesebb ilyen javasolása",
|
||||||
"action.undoDislike": "Nem kedvelés visszavonása",
|
"action.undoDislike": "A Kevesebb ilyen javasolása visszavonása",
|
||||||
"action.showWebRemoteQR": "Távirányító QR kód megjelenítése",
|
"action.showWebRemoteQR": "Távirányító QR kód",
|
||||||
"action.playTracksNext": "${app.selectedMediaItems.length} zenék lejátszása következőnek",
|
"action.playTracksNext": "${app.selectedMediaItems.length} zenék lejátszása következőnek",
|
||||||
"action.playTracksLater": "${app.selectedMediaItems.length} zenék lejátszása később",
|
"action.playTracksLater": "${app.selectedMediaItems.length} zenék lejátszása később",
|
||||||
"action.removeTracks": "${self.selectedItems.length} zenék eltávolítása a várólistáról",
|
"action.removeTracks": "${self.selectedItems.length} zenék eltávolítása a várólistáról",
|
||||||
"action.import": "Importálás",
|
"action.import": "Importálás",
|
||||||
"action.export": "Exportálás",
|
"action.export": "Exportálás",
|
||||||
"action.showAlbum": "Teljes album megjelenítése",
|
"action.showAlbum": "Teljes album megjelenítése",
|
||||||
// Waiting on Core for moving plugin to app.ts
|
|
||||||
"action.tray.minimize": "Kicsinyítés a tálcára",
|
"action.tray.minimize": "Kicsinyítés a tálcára",
|
||||||
"action.tray.quit": "Kilépés",
|
"action.tray.quit": "Kilépés",
|
||||||
"action.tray.show": "Megjelenítés",
|
"action.tray.show": "Megjelenítés",
|
||||||
|
"action.update": "Frissítés",
|
||||||
|
"action.copy": "Másolás",
|
||||||
|
"action.newpreset": "Új Preset...", // Equalizer Preset
|
||||||
|
"action.deletepreset": "Preset törlése",
|
||||||
|
|
||||||
// Settings - General
|
// Settings - General
|
||||||
"settings.header.general": "Általános",
|
"settings.header.general": "Általános",
|
||||||
"settings.header.general.description": "A Cider általános beállításainak módosítása",
|
"settings.header.general.description": "A Cider általános beállításainak módosítása.",
|
||||||
"settings.option.general.language": "Nyelv",
|
"settings.option.general.language": "Nyelv",
|
||||||
|
|
||||||
// Language optgroups
|
// Language optgroups
|
||||||
"settings.option.general.language.main": "Nyelvek",
|
"settings.option.general.language.main": "Nyelvek",
|
||||||
"settings.option.general.language.fun": "Mókás nyelvek",
|
"settings.option.general.language.fun": "Fantázianyelvek",
|
||||||
"settings.option.general.language.unsorted": "Nem besorolható",
|
"settings.option.general.language.unsorted": "Azonosítatlan",
|
||||||
|
|
||||||
|
// Update Cider
|
||||||
|
"settings.option.general.updateCider": "A Cider frissítése", // Button
|
||||||
|
|
||||||
// Settings - Audio
|
// Settings - Audio
|
||||||
"settings.header.audio": "Hang",
|
"settings.header.audio": "Hang",
|
||||||
"settings.header.audio.description": "A Cider hangbeállításainak módosítása",
|
"settings.header.audio.description": "A Cider hangbeállításainak módosítása.",
|
||||||
"settings.option.audio.quality": "Hangminőség", // Dropdown
|
"settings.option.audio.quality": "Hangminőség", // Dropdown
|
||||||
"settings.header.audio.quality.high": "Magas",
|
"settings.header.audio.quality.hireslossless": "Nagy felbontású veszteségmentes",
|
||||||
"settings.header.audio.quality.low": "Alacsony",
|
"settings.header.audio.quality.hireslossless.description": "max. 24-bit/192 kHz sebességen",
|
||||||
"settings.header.audio.quality.auto": "Automatikus",
|
"settings.header.audio.quality.lossless": "Veszteségmentes",
|
||||||
|
"settings.header.audio.quality.lossless.description": "max. up to 24-bit/48 kHz sebességen",
|
||||||
|
"settings.header.audio.quality.high": "High",
|
||||||
|
"settings.header.audio.quality.high.description": "256 kbps",
|
||||||
|
"settings.header.audio.quality.standard": "Standard",
|
||||||
|
"settings.header.audio.quality.standard.description": "64 kbps",
|
||||||
"settings.option.audio.seamlessTransition": "Szünetmentes lejátszás", // Toggle
|
"settings.option.audio.seamlessTransition": "Szünetmentes lejátszás", // Toggle
|
||||||
"settings.option.audio.enableAdvancedFunctionality": "Haladó funkcionalitás engedélyezése", // Toggle
|
"settings.option.audio.enableAdvancedFunctionality": "Haladó funkcionalitás engedélyezése", // Toggle
|
||||||
"settings.option.audio.enableAdvancedFunctionality.description": "Az AudioContext funkció engedélyezése lehetővé teszi a fejlettebb hangfunkciókat, például a normalizásást, a hangszínszabályozót és a vizualizáció funkciókat, azonban egyes számítógépeken ez akadozást okozhat a hangsávokban.",
|
"settings.option.audio.enableAdvancedFunctionality.description": "Az AudioContext funkció engedélyezése lehetővé teszi a fejlettebb hangfunkciókat, például a Normalizásást, az Equalizereket és a Visualizer funkciókat, azonban egyes számítógépeken ez akadozást okozhat a hangsávokban.",
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.ciderPPE": "Cider Adrenaline Processor™️", // Toggle
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.ciderPPE.description": "Pszichoakusztikus Módosítások amik minden hangot felerősítenek és ütősebbé tesznek | Készítette Maikiwi",
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength": "CAP Erősség", // Toggle
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.description": "Megváltoztatja a hangra végzett feldolgozás erősségét. (Az Agresszív mód nemkívánatos eredményeket hozhat!)",
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.standard": "Szokásos",
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.aggressive": "Agresszív",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.audioNormalization": "Normalizálás", // Toggle
|
"settings.option.audio.enableAdvancedFunctionality.audioNormalization": "Normalizálás", // Toggle
|
||||||
"settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "Normalizálja az egyes zeneszámok hangosabb részeit, hogy egységesebb hallgatási élményt hozzon létre.",
|
"settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "Normalizálja az egyes zeneszámok hangosabb részeit, hogy egységesebb hallgatási élményt hozzon létre.",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "Térbeli hangzás", // Toggle
|
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "Térbeli hang", // Toggle
|
||||||
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "Térbeli hangzás és a hang háromdimenziósabbá tétele (Ez nem összekeverendő a Dolby Atmos-szal!)",
|
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "Térbeli hang és a hang háromdimenziósabbá tétele (Ez nem összekeverendő a Dolby Atmos-szal!)",
|
||||||
|
|
||||||
// Settings - Visual
|
// Settings - Visual
|
||||||
"settings.header.visual": "Vizuális",
|
"settings.header.visual": "Vizuális",
|
||||||
"settings.header.visual.description": "A Cider vizuális beállításainak módosítása.",
|
"settings.header.visual.description": "A Cider vizuális beállításainak módosítása.",
|
||||||
"settings.option.visual.windowBackgroundStyle": "Ablak háttér stílusa", // Toggle
|
"settings.option.visual.windowBackgroundStyle": "Ablak háttér stílusa", // Toggle
|
||||||
"settings.header.visual.windowBackgroundStyle.none": "Egyik sem",
|
"settings.header.visual.windowBackgroundStyle.none": "Sehol",
|
||||||
"settings.header.visual.windowBackgroundStyle.artwork": "Borító",
|
"settings.header.visual.windowBackgroundStyle.artwork": "Borító",
|
||||||
"settings.header.visual.windowBackgroundStyle.image": "Kép",
|
"settings.header.visual.windowBackgroundStyle.image": "Kép",
|
||||||
"settings.option.visual.animatedArtwork": "Animált borító", // Dropdown
|
"settings.option.visual.animatedArtwork": "Animált borító", // Dropdown
|
||||||
|
@ -244,6 +278,11 @@
|
||||||
"settings.option.visual.hardwareAcceleration.description": "Újraindítás szükséges",
|
"settings.option.visual.hardwareAcceleration.description": "Újraindítás szükséges",
|
||||||
"settings.header.visual.hardwareAcceleration.default": "Alap",
|
"settings.header.visual.hardwareAcceleration.default": "Alap",
|
||||||
"settings.header.visual.hardwareAcceleration.webGPU": "WebGPU",
|
"settings.header.visual.hardwareAcceleration.webGPU": "WebGPU",
|
||||||
|
"settings.header.visual.theme": "Téma",
|
||||||
|
|
||||||
|
// Settings - Visual - Theme name
|
||||||
|
"settings.option.visual.theme.default": "Cider",
|
||||||
|
"settings.option.visual.theme.dark": "Sötét",
|
||||||
// Refer to term.disabled for the disabled option
|
// Refer to term.disabled for the disabled option
|
||||||
"settings.option.visual.showPersonalInfo": "Személyes adatok mutatása", // Toggle
|
"settings.option.visual.showPersonalInfo": "Személyes adatok mutatása", // Toggle
|
||||||
|
|
||||||
|
@ -251,15 +290,15 @@
|
||||||
"settings.header.lyrics": "Dalszöveg",
|
"settings.header.lyrics": "Dalszöveg",
|
||||||
"settings.header.lyrics.description": "A Cider dalszöveg beállításainak módosítása.",
|
"settings.header.lyrics.description": "A Cider dalszöveg beállításainak módosítása.",
|
||||||
"settings.option.lyrics.enableMusixmatch": "MusixMatch dalszövegek engedélyezése", // Toggle
|
"settings.option.lyrics.enableMusixmatch": "MusixMatch dalszövegek engedélyezése", // Toggle
|
||||||
"settings.option.lyrics.enableMusixmatchKaraoke": "Karaoke mód bekapcsolása (Csak MusixMatch esetén)", // Toggle
|
"settings.option.lyrics.enableMusixmatchKaraoke": "Karaoke mód bekapcsolása (Csak MusixMatch)", // Toggle
|
||||||
"settings.option.lyrics.musixmatchPreferredLanguage": "MusixMatch fordítás nyelve", // Dropdown
|
"settings.option.lyrics.musixmatchPreferredLanguage": "MusixMatch fordítás nyelve", // Dropdown
|
||||||
"settings.option.lyrics.enableYoutubeLyrics": "YouTube dalszövegek engedélyezése a zenei videóknál", // Toggle
|
"settings.option.lyrics.enableYoutubeLyrics": "YouTube dalszövegek engedélyezése a zenei videóknál", // Toggle
|
||||||
|
|
||||||
// Settings - Connectivity
|
// Settings - Connectivity
|
||||||
"settings.header.connectivity": "Csatlakozhatóságok",
|
"settings.header.connectivity": "Csatlakozások",
|
||||||
"settings.header.connectivity.description": "A Cider csatlakozás beállításainak módosítása.",
|
"settings.header.connectivity.description": "A Cider csatlakozás beállításainak módosítása.",
|
||||||
"settings.option.connectivity.discordRPC": "Discord Rich Presence", // Dropdown
|
"settings.option.connectivity.discordRPC": "Discord Rich Presence", // Dropdown
|
||||||
"settings.option.connectivity.playbackNotifications": "Értesítés új dal lejátszásakor", // Toggle
|
"settings.option.connectivity.playbackNotifications": "Lejátszás értesítések", // Toggle
|
||||||
// Refer to term.disabled for the disabled option
|
// Refer to term.disabled for the disabled option
|
||||||
"settings.header.connectivity.discordRPC.cider": "Megjelenítés 'Cider'-ként",
|
"settings.header.connectivity.discordRPC.cider": "Megjelenítés 'Cider'-ként",
|
||||||
"settings.header.connectivity.discordRPC.appleMusic": "Megjelenítés 'Apple Music'-ként",
|
"settings.header.connectivity.discordRPC.appleMusic": "Megjelenítés 'Apple Music'-ként",
|
||||||
|
@ -267,7 +306,7 @@
|
||||||
"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 Késleltetés (%)",
|
"settings.option.connectivity.lastfmScrobble.delay": "LastFM Scrobble Késleltetés (%)",
|
||||||
"settings.option.connectivity.lastfmScrobble.nowPlaying": "LastFM Now Playing engedélyezése",
|
"settings.option.connectivity.lastfmScrobble.nowPlaying": "LastFM Now Playing engedélyezése",
|
||||||
"settings.option.connectivity.lastfmScrobble.removeFeatured": "A közreműködő előadók eltávolítása a dal címéből (LastFM)",
|
"settings.option.connectivity.lastfmScrobble.removeFeatured": "Remove featuring artists from song title (LastFM)",
|
||||||
"settings.option.connectivity.lastfmScrobble.filterLoop": "Loopolt zeneszám szűrése (LastFM)",
|
"settings.option.connectivity.lastfmScrobble.filterLoop": "Loopolt zeneszám szűrése (LastFM)",
|
||||||
// Refer to term.connect for the connect button
|
// Refer to term.connect for the connect button
|
||||||
|
|
||||||
|
@ -276,11 +315,13 @@
|
||||||
"settings.header.experimental.description": "A Cider kísérleti beállításainak módosítása.",
|
"settings.header.experimental.description": "A Cider kísérleti beállításainak módosítása.",
|
||||||
"settings.option.experimental.compactUI": "Kompakt UI", // Toggle
|
"settings.option.experimental.compactUI": "Kompakt UI", // Toggle
|
||||||
"settings.option.experimental.close_button_hide": "A bezárás gomb rejtse el az alkalmazást",
|
"settings.option.experimental.close_button_hide": "A bezárás gomb rejtse el az alkalmazást",
|
||||||
// Refer to term.disabled & term.enabled
|
"settings.option.experimental.copy_log": "Napló másolása a vágólapra",
|
||||||
|
"settings.option.experimental.inline_playlists": "Inline Playlists and Albums",
|
||||||
|
|
||||||
|
// Refer to term.disabled & term.enabled
|
||||||
// Spatialization Menu
|
// Spatialization Menu
|
||||||
"spatial.notTurnedOn": "A térbeli hangzás ki van kapcsolva, használatához kapcsolja be.",
|
"spatial.notTurnedOn": "A térbeli hangzás ki van kapcsolva, használatához kapcsolja be.",
|
||||||
"spatial.spatialProperties": "Térbeli hangzás",
|
"spatial.spatialProperties": "Térbeli hang",
|
||||||
"spatial.width": "Szélesség",
|
"spatial.width": "Szélesség",
|
||||||
"spatial.height": "Magasság",
|
"spatial.height": "Magasság",
|
||||||
"spatial.depth": "Hosszúság",
|
"spatial.depth": "Hosszúság",
|
||||||
|
@ -307,5 +348,5 @@
|
||||||
"remote.web.description": "Olvasd be ezt a QR-kódot a telefonoddal, hogy tudd vezérelni a lejátszót.",
|
"remote.web.description": "Olvasd be ezt a QR-kódot a telefonoddal, hogy tudd vezérelni a lejátszót.",
|
||||||
|
|
||||||
// About
|
// About
|
||||||
"about.thanks": "Köszönet a Cider Collective csapatának és minden közreműködőnek."
|
"about.thanks": "Köszönet a Cider Collective csapatának és minden hozzájárulónak."
|
||||||
}
|
}
|
|
@ -1,15 +1,15 @@
|
||||||
{
|
{
|
||||||
|
// 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
|
||||||
|
|
||||||
// App info
|
// App info
|
||||||
"app.name": "Cider",
|
"app.name": "Cider",
|
||||||
|
|
||||||
"date.format": "${y}年${m}月${d}日",
|
"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
|
// Dialogs
|
||||||
"dialog.cancel": "キャンセル",
|
"dialog.cancel": "キャンセル",
|
||||||
"dialog.ok": "OK",
|
"dialog.ok": "OK",
|
||||||
|
@ -85,7 +85,7 @@
|
||||||
"term.less": "減らす",
|
"term.less": "減らす",
|
||||||
"term.showMore": "もっと見る",
|
"term.showMore": "もっと見る",
|
||||||
"term.showLess": "表示数を少なくする",
|
"term.showLess": "表示数を少なくする",
|
||||||
"term.topSongs" : "トップソング",
|
"term.topSongs": "トップソング",
|
||||||
"term.latestReleases": "ニューリリース",
|
"term.latestReleases": "ニューリリース",
|
||||||
"term.time.added": "追加日",
|
"term.time.added": "追加日",
|
||||||
"term.time.released": "配信開始日",
|
"term.time.released": "配信開始日",
|
||||||
|
@ -118,7 +118,6 @@
|
||||||
"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.updateCider": "Cider 更新",
|
|
||||||
|
|
||||||
// Home
|
// Home
|
||||||
"home.title": "ホーム",
|
"home.title": "ホーム",
|
||||||
|
@ -129,6 +128,7 @@
|
||||||
"home.madeForYou": "あなたにおすすめ",
|
"home.madeForYou": "あなたにおすすめ",
|
||||||
"home.friendsListeningTo": "友達が聴いている",
|
"home.friendsListeningTo": "友達が聴いている",
|
||||||
"home.followedArtists": "フォローしているアーティスト",
|
"home.followedArtists": "フォローしているアーティスト",
|
||||||
|
|
||||||
// Errors
|
// Errors
|
||||||
"error.appleMusicSubRequired": "Apple Musicのサブスクリプションが必要です。",
|
"error.appleMusicSubRequired": "Apple Musicのサブスクリプションが必要です。",
|
||||||
"error.connectionError": "Apple Musicに接続できません。",
|
"error.connectionError": "Apple Musicに接続できません。",
|
||||||
|
@ -189,21 +189,36 @@
|
||||||
"action.tray.quit": "終了",
|
"action.tray.quit": "終了",
|
||||||
"action.tray.show": "表示",
|
"action.tray.show": "表示",
|
||||||
"action.update": "アップデート",
|
"action.update": "アップデート",
|
||||||
|
"action.copy": "コピー",
|
||||||
|
"action.newpreset": "ニュープリセット", // Equalizer Preset
|
||||||
|
"action.deletepreset": "プリセットを削除", // Equalizer Preset
|
||||||
|
|
||||||
// Settings - Audio
|
// Settings - Audio
|
||||||
"settings.header.audio": "オーディオ",
|
"settings.header.audio": "オーディオ",
|
||||||
"settings.header.audio.description": "Ciderのオーディオ設定",
|
"settings.header.audio.description": "Ciderのオーディオ設定",
|
||||||
"settings.option.audio.quality": "音質", // Dropdown
|
"settings.option.audio.quality": "音質", // Dropdown
|
||||||
|
"settings.header.audio.quality.hireslossless": "ハイレゾロスレス",
|
||||||
|
"settings.header.audio.quality.hireslossless.description": "(最大解像度 24 ビット/192 kHz)",
|
||||||
|
"settings.header.audio.quality.lossless": "ロスレス",
|
||||||
|
"settings.header.audio.quality.lossless.description": "(最大解像度 24 ビット/48 kHz)",
|
||||||
|
"settings.header.audio.quality.enhanced": "エンハンスド",
|
||||||
"settings.header.audio.quality.high": "高品質",
|
"settings.header.audio.quality.high": "高品質",
|
||||||
"settings.header.audio.quality.low": "高効率",
|
"settings.header.audio.quality.standard": "高効率",
|
||||||
"settings.header.audio.quality.auto": "自動",
|
"settings.header.audio.quality.auto": "自動",
|
||||||
"settings.option.audio.seamlessTransition": "曲間なしで再生", // Toggle
|
"settings.option.audio.seamlessTransition": "曲間なしで再生", // Toggle
|
||||||
"settings.option.audio.enableAdvancedFunctionality": "先進的な機能", // Toggle
|
"settings.option.audio.enableAdvancedFunctionality": "先進的な機能", // Toggle
|
||||||
"settings.option.audio.enableAdvancedFunctionality.description": "AudioContext 機能を有効にすると、オーディオノーマライズ、空間オーディオ、イコライザーなどの機能を使用できますが、音が途切れるかもしれません。", // Toggle
|
"settings.option.audio.enableAdvancedFunctionality.description": "AudioContext 機能を有効にすると、オーディオノーマライズ、空間オーディオ、イコライザーなどの機能を使用できますが、音が途切れるかもしれません。", // Toggle
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.ciderPPE": "Cider AEP™️", // Toggle
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.ciderPPE.description": "圧縮音源を高解像度に処理することによって、ロスレス相当の音質に向上させます。", // Toggle
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength": "AEPの強さ", // Toggle
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.description": "Changes the strength of the processing done to the audio. (Aggressive may yield undesirable results)",
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.standard": "標準",
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.aggressive": "高",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.audioNormalization": "オーディオノーマライズ", // Toggle
|
"settings.option.audio.enableAdvancedFunctionality.audioNormalization": "オーディオノーマライズ", // Toggle
|
||||||
"settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "さまざまな曲の音量を均一にし、より整った音を楽しめるようにする機能です。",
|
"settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "さまざまな曲の音量を均一にし、より整った音を楽しめるようにする機能です。",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "オーディオ空間化", // Toggle
|
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "オーディオ空間化", // Toggle
|
||||||
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "オーディオを空間に分散させる機能です。 (ドルビーアトモスではありません)",
|
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "オーディオを空間に分散させる機能です。 (ドルビーアトモスではありません)",
|
||||||
|
|
||||||
// Settings - Visual
|
// Settings - Visual
|
||||||
"settings.header.visual": "ビジュアル",
|
"settings.header.visual": "ビジュアル",
|
||||||
"settings.header.visual.description": "Ciderのビジュアル設定",
|
"settings.header.visual.description": "Ciderのビジュアル設定",
|
||||||
|
@ -227,6 +242,7 @@
|
||||||
"settings.header.visual.hardwareAcceleration.webGPU": "WebGPU",
|
"settings.header.visual.hardwareAcceleration.webGPU": "WebGPU",
|
||||||
// Refer to term.disabled for the disabled option
|
// Refer to term.disabled for the disabled option
|
||||||
"settings.option.visual.showPersonalInfo": "プロフィールを表示", // Toggle
|
"settings.option.visual.showPersonalInfo": "プロフィールを表示", // Toggle
|
||||||
|
|
||||||
// Settings - General (Reserved)
|
// Settings - General (Reserved)
|
||||||
"settings.header.general": "一般",
|
"settings.header.general": "一般",
|
||||||
"settings.header.general.description": "Ciderの一般設定",
|
"settings.header.general.description": "Ciderの一般設定",
|
||||||
|
@ -253,32 +269,35 @@
|
||||||
"settings.option.connectivity.lastfmScrobble.removeFeatured": "Remove featuring artists from song title (LastFM)",
|
"settings.option.connectivity.lastfmScrobble.removeFeatured": "Remove featuring artists from song title (LastFM)",
|
||||||
// Refer to term.connect for the connect button
|
// Refer to term.connect for the connect button
|
||||||
|
|
||||||
|
// Settings - General - Update Cider
|
||||||
|
"settings.option.general.updateCider": "Cider 更新", // Button
|
||||||
|
|
||||||
// Settings - Experimental
|
// Settings - Experimental
|
||||||
"settings.header.experimental": "試験的な機能",
|
"settings.header.experimental": "試験的な機能",
|
||||||
"settings.header.experimental.description": "開発中の実験的な機能は不完全で不安定である可能性があります",
|
"settings.header.experimental.description": "開発中の実験的な機能は不完全で不安定である可能性があります",
|
||||||
"settings.option.experimental.compactUI": "コンパクトインターフェース", // Toggle
|
"settings.option.experimental.compactUI": "コンパクトインターフェース", // Toggle
|
||||||
"settings.option.experimental.close_button_hide": "「閉じる」ボタンでアプリを隠します", // Dropdown
|
"settings.option.experimental.close_button_hide": "「閉じる」ボタンでアプリを隠します", // Dropdown
|
||||||
// Refer to term.disabled & term.enabled
|
|
||||||
|
|
||||||
|
// Refer to term.disabled & term.enabled
|
||||||
// Spatialization Menu
|
// Spatialization Menu
|
||||||
"spatial.spatialProperties" : "空間化のプロパティ",
|
"spatial.spatialProperties": "空間化のプロパティ",
|
||||||
"spatial.width" : "幅",
|
"spatial.width": "幅",
|
||||||
"spatial.height" : "高さ",
|
"spatial.height": "高さ",
|
||||||
"spatial.depth" : "奥行",
|
"spatial.depth": "奥行",
|
||||||
"spatial.gain" : "ゲイン",
|
"spatial.gain": "ゲイン",
|
||||||
"spatial.roomMaterials" : "部屋のマテリアル",
|
"spatial.roomMaterials": "部屋のマテリアル",
|
||||||
"spatial.roomDimensions" : "部屋の大きさ",
|
"spatial.roomDimensions": "部屋の大きさ",
|
||||||
"spatial.roomPositions" : "部屋の位置",
|
"spatial.roomPositions": "部屋の位置",
|
||||||
"spatial.setDimensions" : "大きさを設定",
|
"spatial.setDimensions": "大きさを設定",
|
||||||
"spatial.setPositions" : "位置を設定",
|
"spatial.setPositions": "位置を設定",
|
||||||
"spatial.up" : "上",
|
"spatial.up": "上",
|
||||||
"spatial.front" : "前",
|
"spatial.front": "前",
|
||||||
"spatial.left" : "左",
|
"spatial.left": "左",
|
||||||
"spatial.right" : "右",
|
"spatial.right": "右",
|
||||||
"spatial.back" : "後",
|
"spatial.back": "後",
|
||||||
"spatial.down" : "下",
|
"spatial.down": "下",
|
||||||
"spatial.listener" : "リスナー",
|
"spatial.listener": "リスナー",
|
||||||
"spatial.audioSource" : "音源",
|
"spatial.audioSource": "音源",
|
||||||
|
|
||||||
// Settings - Unfinished
|
// Settings - Unfinished
|
||||||
"settings.header.unfinished": "未完成",
|
"settings.header.unfinished": "未完成",
|
||||||
|
@ -289,5 +308,4 @@
|
||||||
|
|
||||||
//About
|
//About
|
||||||
"about.thanks": "Cider Collective とご協力いただいた貢献者様に感謝申し上げます。"
|
"about.thanks": "Cider Collective とご協力いただいた貢献者様に感謝申し上げます。"
|
||||||
|
|
||||||
}
|
}
|
|
@ -1,40 +1,41 @@
|
||||||
{ // Base File
|
{ // Base File
|
||||||
|
|
||||||
// i18n Info
|
// i18n Info
|
||||||
"i18n.languageName": "한국어", // name of language in native language
|
"i18n.languageName": "한국어 (KR)", // name of language in native language
|
||||||
"i18n.languageNameEnglish": "Korean", // name of language in English
|
"i18n.languageNameEnglish": "Korean (KR)", // 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": "@sj8923", // Authors, if you contribute to this file feel free to add your name seperated with a space
|
"i18n.authors": "@Hazealign", // 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",
|
||||||
|
|
||||||
"date.format": "${y}년 ${m}월 ${d}일",
|
"date.format": "${y}. ${m}. ${d}",
|
||||||
|
|
||||||
// Dialogs
|
// Dialogs
|
||||||
"dialog.cancel": "취소",
|
"dialog.cancel": "취소",
|
||||||
"dialog.ok": "확인",
|
"dialog.ok": "확인",
|
||||||
|
|
||||||
// Notification
|
// Notification
|
||||||
"notification.updatingLibrarySongs": "라이브러리 곡 업데이트 중...",
|
"notification.updatingLibrarySongs": "라이브러리의 노래를 업데이트하는 중입니다...",
|
||||||
"notification.updatingLibraryAlbums": "라이브러리 앨범 업데이트 중...",
|
"notification.updatingLibraryAlbums": "라이브러리의 앨범을 업데이트하는 중입니다...",
|
||||||
"notification.updatingLibraryArtists": "라이브러리 아티스트 업데이트 중...",
|
"notification.updatingLibraryArtists": "라이브러리의 아티스트를 업데이트하는 중입니다...",
|
||||||
|
|
||||||
// Terms
|
// Terms
|
||||||
"term.appleInc": "Apple Inc.",
|
"term.appleInc": "Apple Inc.", // Follows brand term
|
||||||
"term.appleMusic": "Apple Music",
|
"term.appleMusic": "Apple Music", // Follows brand term
|
||||||
"term.applePodcasts": "Apple Podcasts",
|
"term.applePodcasts": "Apple Podcasts", // Follows brand term
|
||||||
"term.itunes": "iTunes",
|
"term.itunes": "iTunes", // Follows brand term
|
||||||
"term.github": "GitHub",
|
"term.github": "GitHub", // Follows brand term
|
||||||
"term.discord": "Discord",
|
"term.discord": "Discord", // Follows brand term
|
||||||
"term.learnMore": "더보기",
|
"term.learnMore": "더 알아보기",
|
||||||
"term.accountSettings": "계정 설정",
|
"term.accountSettings": "계정 설정",
|
||||||
"term.logout": "로그아웃",
|
"term.logout": "로그아웃",
|
||||||
"term.login": "로그인",
|
"term.login": "로그인",
|
||||||
"term.about": "정보",
|
"term.about": "정보",
|
||||||
"term.privateSession": "개인 세션",
|
"term.privateSession": "개인 세션",
|
||||||
"term.queue": "대기열",
|
"term.queue": "대기열",
|
||||||
|
"term.history": "청취 기록",
|
||||||
"term.search": "검색",
|
"term.search": "검색",
|
||||||
"term.library": "라이브러리",
|
"term.library": "보관함",
|
||||||
"term.listenNow": "지금 듣기",
|
"term.listenNow": "지금 듣기",
|
||||||
"term.browse": "둘러보기",
|
"term.browse": "둘러보기",
|
||||||
"term.radio": "라디오",
|
"term.radio": "라디오",
|
||||||
|
@ -43,76 +44,77 @@
|
||||||
"term.albums": "앨범",
|
"term.albums": "앨범",
|
||||||
"term.artists": "아티스트",
|
"term.artists": "아티스트",
|
||||||
"term.podcasts": "팟캐스트",
|
"term.podcasts": "팟캐스트",
|
||||||
"term.playlists": "플레이리스트",
|
"term.playlists": "재생 목록",
|
||||||
"term.playlist": "플레이리스트",
|
"term.playlist": "재생 목록",
|
||||||
"term.newPlaylist": "새 플레이리스트",
|
"term.newPlaylist": "새 재생 목록",
|
||||||
"term.newPlaylistFolder": "새 플레이리스트 폴더",
|
"term.newPlaylistFolder": "새 재생 목록 폴더",
|
||||||
"term.createNewPlaylist": "새 플레이리스트 만들기",
|
"term.createNewPlaylist": "새 재생 목록 만들기",
|
||||||
"term.createNewPlaylistFolder": "새 플레이리스트 폴더 만들기",
|
"term.createNewPlaylistFolder": "새 재생 목록 폴더 만들기",
|
||||||
"term.deletePlaylist": "정말 플레이리스트를 삭제하시겠습니까?",
|
"term.deletePlaylist": "정말로 이 재생 목록을 삭제하시겠습니까?",
|
||||||
"term.play": "재생",
|
"term.play": "재생",
|
||||||
"term.pause": "정지",
|
"term.pause": "일시 정지",
|
||||||
"term.previous": "이전",
|
"term.previous": "이전",
|
||||||
"term.next": "다음",
|
"term.next": "다음",
|
||||||
"term.shuffle": "셔플",
|
"term.shuffle": "셔플",
|
||||||
"term.repeat": "반복재생",
|
"term.repeat": "반복",
|
||||||
"term.volume": "볼륨",
|
"term.volume": "볼륨",
|
||||||
"term.mute": "음소거",
|
"term.mute": "음소거",
|
||||||
"term.unmute": "음소거 해제",
|
"term.unmute": "음소거 해제",
|
||||||
"term.share": "공유",
|
"term.share": "공유",
|
||||||
|
"term.share.success": "클립보드에 복사됨",
|
||||||
"term.settings": "설정",
|
"term.settings": "설정",
|
||||||
"term.seeAll": "모두 보기",
|
"term.seeAll": "모두 보기",
|
||||||
"term.sortBy": "정렬방식",
|
"term.sortBy": "정렬",
|
||||||
"term.sortBy.album": "앨범",
|
"term.sortBy.album": "앨범명",
|
||||||
"term.sortBy.artist": "아티스트",
|
"term.sortBy.artist": "아티스트 이름",
|
||||||
"term.sortBy.name": "이름",
|
"term.sortBy.name": "제목",
|
||||||
"term.sortBy.genre": "장르",
|
"term.sortBy.genre": "장르",
|
||||||
"term.sortBy.releaseDate": "출시일",
|
"term.sortBy.releaseDate": "발매일",
|
||||||
"term.sortBy.duration": "재생시간",
|
"term.sortBy.duration": "길이",
|
||||||
"term.sortOrder": "ㄱ-ㅎ",
|
"term.sortOrder": "A-Z",
|
||||||
"term.sortOrder.ascending": "오름차순",
|
"term.sortOrder.ascending": "오름차순",
|
||||||
"term.sortOrder.descending": "내림차순",
|
"term.sortOrder.descending": "내림차순",
|
||||||
"term.viewAs": "표시방식",
|
"term.viewAs": "표시",
|
||||||
"term.viewAs.coverArt": "커버아트",
|
"term.viewAs.coverArt": "커버 아트",
|
||||||
"term.viewAs.list": "리스트",
|
"term.viewAs.list": "리스트",
|
||||||
"term.size": "크기",
|
"term.size": "크기",
|
||||||
"term.size.normal": "일반",
|
"term.size.normal": "표준",
|
||||||
"term.size.compact": "컴팩트",
|
"term.size.compact": "컴팩트",
|
||||||
"term.enable": "활성화",
|
"term.enable": "켜기",
|
||||||
"term.disable": "비활성화",
|
"term.disable": "끄기",
|
||||||
"term.enabled": "활성화",
|
"term.enabled": "켜짐",
|
||||||
"term.disabled": "비활성화",
|
"term.disabled": "꺼짐",
|
||||||
"term.connect": "연결",
|
"term.connect": "연결",
|
||||||
"term.connecting": "연결 중",
|
"term.connecting": "연결 중",
|
||||||
"term.disconnect": "연결 끊김",
|
"term.disconnect": "연결 해제",
|
||||||
"term.authed": "인증됨",
|
"term.authed": "인증됨",
|
||||||
"term.confirm": "확인하시겠습니까 ?",
|
"term.confirm": "진행하시겠습니까?",
|
||||||
"term.more": "더",
|
"term.more": "추가",
|
||||||
"term.less": "적게",
|
"term.less": "줄이기",
|
||||||
"term.showMore": "더 보기",
|
"term.showMore": "더 보기",
|
||||||
"term.showLess": "적게 보기",
|
"term.showLess": "덜 보기",
|
||||||
"term.topSongs" : "인기곡",
|
"term.topSongs": "많이 듣는 노래",
|
||||||
"term.latestReleases": "최신곡",
|
"term.latestReleases": "최근 발매된 노래",
|
||||||
"term.time.added": "추가",
|
"term.time.added": "추가됨",
|
||||||
"term.time.released": "발매일",
|
"term.time.released": "발매됨",
|
||||||
"term.time.updated": "업데이트일",
|
"term.time.updated": "업데이트됨",
|
||||||
"term.time.hours": "시간",
|
"term.time.hours": "시간",
|
||||||
"term.time.hour": "시간",
|
"term.time.hour": "시간",
|
||||||
"term.time.minutes": "분",
|
"term.time.minutes": "분",
|
||||||
"term.time.minute": "분",
|
"term.time.minute": "분",
|
||||||
"term.time.seconds": "초",
|
"term.time.seconds": "초",
|
||||||
"term.time.second": "초",
|
"term.time.second": "초",
|
||||||
"term.fullscreenView": "전체화면",
|
"term.fullscreenView": "전체 화면 보기",
|
||||||
"term.defaultView": "기본화면",
|
"term.defaultView": "윈도우 보기",
|
||||||
"term.audioSettings": "오디오 설정",
|
"term.audioSettings": "오디오 설정",
|
||||||
"term.clearAll": "비우기",
|
"term.clearAll": "모두 지우기",
|
||||||
"term.recentStations": "최근 스테이션",
|
"term.recentStations": "최근 스테이션",
|
||||||
"term.language": "언어",
|
"term.language": "언어",
|
||||||
"term.funLanguages": "재미있는",
|
"term.funLanguages": "재미를 위한 언어",
|
||||||
"term.noLyrics": "불러오는 중... / 가사를 찾을 수 없습니다/ 연주곡",
|
"term.noLyrics": "로딩 중... / 가사를 찾지 못했습니다. / Instrumental 곡일 수 있습니다.",
|
||||||
"term.copyright": "Copyright", // Used in Korea w/o translation
|
"term.copyright": "저작권",
|
||||||
"term.rightsReserved": "All Rights Reserved.",
|
"term.rightsReserved": "All Rights Reserved.",
|
||||||
"term.sponsor": "이 프로젝트를 후원하세요",
|
"term.sponsor": "이 프로젝트를 후원하기",
|
||||||
"term.ciderTeam": "Cider 팀",
|
"term.ciderTeam": "Cider 팀",
|
||||||
"term.developer": "개발자",
|
"term.developer": "개발자",
|
||||||
"term.socialTeam": "소셜 팀",
|
"term.socialTeam": "소셜 팀",
|
||||||
|
@ -120,56 +122,71 @@
|
||||||
"term.contributors": "기여자",
|
"term.contributors": "기여자",
|
||||||
"term.equalizer": "이퀄라이저",
|
"term.equalizer": "이퀄라이저",
|
||||||
"term.reset": "초기화",
|
"term.reset": "초기화",
|
||||||
"term.tracks": "트랙", // Assume x amount of tracks. e.g. 50 tracks
|
"term.tracks": "곡", // Assume x amount of tracks. e.g. 50 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.updateCider": "Cider 업데이트",
|
"term.topResult": "Top Result", // Search Results
|
||||||
|
"term.sharedPlaylists": "공유 플레이리스트", // Search Results
|
||||||
|
"term.people": "프로필", // Search Results
|
||||||
|
"term.newpreset.name": "새 이퀄라이저 프리셋", // Equalizer Preset
|
||||||
|
"term.addedpreset": "추가된 프리셋",
|
||||||
|
"term.deletepreset.warn": "정말로 프리셋을 삭제하시겠습니까?",
|
||||||
|
"term.deletedpreset": "프리셋 삭제",
|
||||||
|
"term.musicVideos": "뮤직 비디오", // Search page friendlyTypes
|
||||||
|
"term.stations": "스테이션",
|
||||||
|
"term.curators": "큐레이터",
|
||||||
|
"term.appleCurators": "애플 큐레이터",
|
||||||
|
"term.radioShows": "라디오 쇼",
|
||||||
|
"term.recordLabels": "레코드 레이블",
|
||||||
|
"term.videoExtras": "추가 비디오",
|
||||||
|
"term.top": "Top",
|
||||||
|
|
||||||
// Home
|
// Home
|
||||||
"home.title": "홈",
|
"home.title": "홈",
|
||||||
"home.recentlyPlayed": "최근 재생된 항목",
|
"home.recentlyPlayed": "최근 재생한 항목",
|
||||||
"home.recentlyAdded": "최근 추가된 항목",
|
"home.recentlyAdded": "최근 추가된 항목",
|
||||||
"home.artistsFeed": "내 아티스트 피드",
|
"home.artistsFeed": "아티스트 피드",
|
||||||
"home.artistsFeed.noArtist": "아티스트를 팔로우하면 최근 발매곡이 표시됩니다",
|
"home.artistsFeed.noArtist": "좋아하는 아티스트를 팔로우해보세요.",
|
||||||
"home.madeForYou": "나만을 위한 추천",
|
"home.madeForYou": "나만을 위한 추천",
|
||||||
"home.friendsListeningTo": "친구들이 듣는",
|
"home.friendsListeningTo": "친구가 듣는 음악",
|
||||||
"home.followedArtists": "팔로우한 아티스트",
|
"home.followedArtists": "팔로우한 아티스트",
|
||||||
// Errors
|
|
||||||
"error.appleMusicSubRequired": "애플뮤직 구독이 필요합니다.",
|
|
||||||
"error.connectionError": "애플뮤직 연결에 문제가 발생했습니다.",
|
|
||||||
"error.noResults": "결과 없음.",
|
|
||||||
"error.noResults.description": "새로 검색해주세요.",
|
|
||||||
|
|
||||||
//Podcasts
|
// Errors
|
||||||
"podcast.followOnCider": "Cider 팔로우",
|
"error.appleMusicSubRequired": "Apple Music은 구독을 필요로 합니다.",
|
||||||
"podcast.followedOnCider": "Cider 팔로우됨",
|
"error.connectionError": "Apple Music에 연결하지 못했습니다.",
|
||||||
"podcast.subscribeOnItunes": "iTunes 구독하기",
|
"error.noResults": "결과 없음",
|
||||||
"podcast.subscribedOnItunes": "iTunes 구독 중",
|
"error.noResults.description": "다시 시도해주세요.",
|
||||||
"podcast.itunesStore": "iTunes 스토어",
|
|
||||||
"podcast.episodes": "에피소드",
|
// Podcasts
|
||||||
"podcast.playEpisode": "에피소드 재생",
|
"podcast.followOnCider": "Cider에서 팔로우하기",
|
||||||
"podcast.website": "팟캐스트 웹사이트",
|
"podcast.followedOnCider": "팔로우 중",
|
||||||
|
"podcast.subscribeOnItunes": "iTunes에서 구독",
|
||||||
|
"podcast.subscribedOnItunes": "구독 중",
|
||||||
|
"podcast.itunesStore": "iTunes Store",
|
||||||
|
"podcast.episodes": "방송",
|
||||||
|
"podcast.playEpisode": "재생",
|
||||||
|
"podcast.website": "팟캐스트 사이트",
|
||||||
|
|
||||||
// Actions
|
// Actions
|
||||||
"action.addToLibrary": "보관함에 추가",
|
"action.addToLibrary": "보관함에 추가",
|
||||||
"action.addToLibrary.success": "보관함에 추가됨",
|
"action.addToLibrary.success": "보관함에 추가됨",
|
||||||
"action.addToLibrary.error": "보관함에 추가 실패",
|
"action.addToLibrary.error": "보관함에 추가하는데 실패함",
|
||||||
"action.removeFromLibrary": "보관함에서 삭제",
|
"action.removeFromLibrary": "보관함에서 삭제",
|
||||||
"action.removeFromLibrary.success": "보관함에서 삭제됨",
|
"action.removeFromLibrary.success": "보관함에서 삭제됨",
|
||||||
"action.addToQueue": "대기열에 추가",
|
"action.addToQueue": "대기열에 추가",
|
||||||
"action.addToQueue.success": "대기열에 추가됨",
|
"action.addToQueue.success": "대기열에 추가됨",
|
||||||
"action.addToQueue.error": "대기열에 추가 실패",
|
"action.addToQueue.error": "대기열에 추가하는데 실패함",
|
||||||
"action.removeFromQueue": "대기열에서 삭제",
|
"action.removeFromQueue": "대기열에서 삭제",
|
||||||
"action.removeFromQueue.success": "대기열에서 삭제됨",
|
"action.removeFromQueue.success": "대기열에서 삭제됨",
|
||||||
"action.removeFromQueue.error": "대기열에서 삭제 실패",
|
"action.removeFromQueue.error": "대기열에서 삭제하는데 실패함",
|
||||||
"action.createPlaylist": "새 플레이리스트",
|
"action.createPlaylist": "새 재생 목록 만들기",
|
||||||
"action.addToPlaylist": "플레이리스트에 추가...",
|
"action.addToPlaylist": "재생 목록에 추가",
|
||||||
"action.removeFromPlaylist": "플레이리스트에서 삭제",
|
"action.removeFromPlaylist": "재생 목록에서 삭제",
|
||||||
"action.addToFavorites": "선호항목에 추가",
|
"action.addToFavorites": "즐겨찾기에 추가",
|
||||||
"action.follow": "팔로우",
|
"action.follow": "팔로우",
|
||||||
"action.follow.success": "팔로우됨",
|
"action.follow.success": "팔로우 중",
|
||||||
"action.follow.error": "팔로우 실패",
|
"action.follow.error": "팔로우 실패",
|
||||||
"action.unfollow": "언팔로우",
|
"action.unfollow": "언팔로우",
|
||||||
"action.unfollow.success": "언팔로우됨",
|
"action.unfollow.success": "언팔로우됨",
|
||||||
|
@ -179,112 +196,126 @@
|
||||||
"action.startRadio": "스테이션 생성",
|
"action.startRadio": "스테이션 생성",
|
||||||
"action.goToArtist": "아티스트 보기",
|
"action.goToArtist": "아티스트 보기",
|
||||||
"action.goToAlbum": "앨범 보기",
|
"action.goToAlbum": "앨범 보기",
|
||||||
"action.moveToTop": "맨 위로 이동",
|
"action.moveToTop": "위로 가기",
|
||||||
"action.share": "공유하기",
|
"action.share": "공유",
|
||||||
"action.rename": "이름 편집하기",
|
"action.rename": "편집",
|
||||||
"action.love": "좋아요",
|
"action.love": "좋아요",
|
||||||
"action.unlove": "좋아요 취소",
|
"action.unlove": "좋아요 취소",
|
||||||
"action.dislike": "비슷한 항목의 제안 줄이기",
|
"action.dislike": "싫어요",
|
||||||
"action.undoDislike": "비슷한 항목의 제안 줄이기 실행 취소",
|
"action.undoDislike": "싫어요 취소",
|
||||||
"action.showWebRemoteQR": "웹 리모트",
|
"action.showWebRemoteQR": "웹 리모트",
|
||||||
"action.playTracksNext": "${app.selectedMediaItems.length} 바로 다음에 재생",
|
"action.playTracksNext": "다음 ${app.selectedMediaItems.length}곡 재생",
|
||||||
"action.playTracksLater": "${app.selectedMediaItems.length} 맨 나중에 재생",
|
"action.playTracksLater": "나중에 ${app.selectedMediaItems.length}곡 재생",
|
||||||
"action.removeTracks": "${self.selectedItems.length} 대기열에서 삭제",
|
"action.removeTracks": "${self.selectedItems.length}곡을 대기열에서 삭제",
|
||||||
"action.import": "가져오기",
|
"action.import": "불러오기",
|
||||||
"action.export": "내보내기",
|
"action.export": "내보내기",
|
||||||
"action.showAlbum": "전체 앨범 보기",
|
"action.showAlbum": "전체 앨범 보기",
|
||||||
"action.tray.minimize": "트레이로 최소화",
|
"action.tray.minimize": "트레이에 최소화",
|
||||||
"action.tray.quit": "종료",
|
"action.tray.quit": "종료",
|
||||||
"action.tray.show": "", // None is Better in Korean
|
"action.tray.show": "보기",
|
||||||
"action.update": "업데이트",
|
"action.update": "업데이트",
|
||||||
|
"action.copy": "복사",
|
||||||
|
"action.newpreset": "새 프리셋", // Equalizer Preset
|
||||||
|
"action.deletepreset": "프리셋 삭제",
|
||||||
|
|
||||||
// Settings - General
|
// Settings - General
|
||||||
"settings.header.general": "일반 설정",
|
"settings.header.general": "일반",
|
||||||
"settings.header.general.description": "Cider를 위한 일반 설정을 조절합니다.",
|
"settings.header.general.description": "Cider의 일반 기능을 설정합니다.",
|
||||||
"settings.option.general.language": "언어",
|
"settings.option.general.language": "언어",
|
||||||
|
|
||||||
// Language optgroups
|
// Language optgroups
|
||||||
"settings.option.general.language.main": "언어",
|
"settings.option.general.language.main": "언어",
|
||||||
"settings.option.general.language.fun": "실험적인 언어",
|
"settings.option.general.language.fun": "재미를 위한 언어",
|
||||||
"settings.option.general.language.unsorted": "정리되지않음",
|
"settings.option.general.language.unsorted": "미분류",
|
||||||
|
|
||||||
|
// Update Cider
|
||||||
|
"settings.option.general.updateCider": "Cider 업데이트", // Button
|
||||||
|
|
||||||
// Settings - Audio
|
// Settings - Audio
|
||||||
"settings.header.audio": "오디오",
|
"settings.header.audio": "오디오",
|
||||||
"settings.header.audio.description": "Cider를 위한 오디오 설정을 조절하세요.",
|
"settings.header.audio.description": "Cider의 오디오 기능을 설정합니다.",
|
||||||
"settings.option.audio.quality": "오디오 품질", // Dropdown
|
"settings.option.audio.quality": "오디오 음질", // Dropdown
|
||||||
"settings.header.audio.quality.high": "높음",
|
"settings.header.audio.quality.high": "고품질",
|
||||||
"settings.header.audio.quality.low": "낮음",
|
"settings.header.audio.quality.low": "낮음",
|
||||||
"settings.header.audio.quality.auto": "자동",
|
"settings.header.audio.quality.auto": "자동",
|
||||||
"settings.option.audio.seamlessTransition": "간격 없는 재생", // Toggle
|
"settings.option.audio.seamlessTransition": "크로스페이드 기능", // Toggle
|
||||||
"settings.option.audio.enableAdvancedFunctionality": "실험적인 기능", // Toggle
|
"settings.option.audio.enableAdvancedFunctionality": "추가 기능 설정", // Toggle
|
||||||
"settings.option.audio.enableAdvancedFunctionality.description": "노멀라이즈와 이퀄라이저와 같은 확장기능을 사용할 수 있지만 일부 시스템에서 끊김 현상이 발생할 수 있습니다.",
|
"settings.option.audio.enableAdvancedFunctionality.description": "AudioContext 기능을 활성화하여 오디오 정규화, 이퀄라이저, 비쥬얼라이저 등의 기능을 쓸 수 있게 해줍니다. 일부 시스템에서는 오디오가 끊길 수 있습니다.",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.audioNormalization": "사운드 자동 조절", // Toggle
|
"settings.option.audio.enableAdvancedFunctionality.audioNormalization": "오디오 정규화", // Toggle
|
||||||
"settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "각각 트랙의 볼륨을 자동 조절합니다.",
|
"settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "개별 트랙의 최대 볼륨을 정규화하여 보다 균일한 청취 경험을 제공합니다.",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "공간 음향", // Toggle
|
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "오디오 공간화", // Toggle
|
||||||
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "소리를 공간 음향으로 만들고 3d효과를 줍니다. (주의: 돌비 애트모스가 아님)",
|
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "오디오를 공간화하고 더욱 3차원적으로 만들어줍니다. (참고: 이 기능은 Dolby Atmos가 아닙니다.)",
|
||||||
|
|
||||||
// Settings - Visual
|
// Settings - Visual
|
||||||
"settings.header.visual": "시각 효과",
|
"settings.header.visual": "시각",
|
||||||
"settings.header.visual.description": "Cider를 위한 시각 효과 설정을 조절하세요.",
|
"settings.header.visual.description": "Cider의 시각 기능을 설정합니다.",
|
||||||
"settings.option.visual.windowBackgroundStyle": "창 배경 설정", // Toggle
|
"settings.option.visual.windowBackgroundStyle": "윈도우 배경 스타일", // Toggle
|
||||||
"settings.header.visual.windowBackgroundStyle.none": "없음",
|
"settings.header.visual.windowBackgroundStyle.none": "없음",
|
||||||
"settings.header.visual.windowBackgroundStyle.artwork": "아트워크",
|
"settings.header.visual.windowBackgroundStyle.artwork": "앨범 아트",
|
||||||
"settings.header.visual.windowBackgroundStyle.image": "이미지",
|
"settings.header.visual.windowBackgroundStyle.image": "이미지",
|
||||||
"settings.option.visual.animatedArtwork": "움직이는 아트워크", // Dropdown
|
"settings.option.visual.animatedArtwork": "애니메이션 앨범 표지", // Dropdown
|
||||||
"settings.header.visual.animatedArtwork.always": "활성화",
|
"settings.header.visual.animatedArtwork.always": "항상 활성화",
|
||||||
"settings.header.visual.animatedArtwork.limited": "특정 페이지에 한정",
|
"settings.header.visual.animatedArtwork.limited": "페이지나 특정 화면에서만 활성화",
|
||||||
"settings.header.visual.animatedArtwork.disable": "비활성화",
|
"settings.header.visual.animatedArtwork.disable": "항상 비활성화",
|
||||||
"settings.option.visual.animatedArtworkQuality": "움직이는 아트워크 품질", // Dropdown
|
"settings.option.visual.animatedArtworkQuality": "애니메이션 앨범 표지 화질", // Dropdown
|
||||||
"settings.header.visual.animatedArtworkQuality.low": "낮음",
|
"settings.header.visual.animatedArtworkQuality.low": "낮음",
|
||||||
"settings.header.visual.animatedArtworkQuality.medium": "중간",
|
"settings.header.visual.animatedArtworkQuality.medium": "중간",
|
||||||
"settings.header.visual.animatedArtworkQuality.high": "높음",
|
"settings.header.visual.animatedArtworkQuality.high": "높음",
|
||||||
"settings.header.visual.animatedArtworkQuality.veryHigh": "매우 높음",
|
"settings.header.visual.animatedArtworkQuality.veryHigh": "매우 높음",
|
||||||
"settings.header.visual.animatedArtworkQuality.extreme": "최고",
|
"settings.header.visual.animatedArtworkQuality.extreme": "최상",
|
||||||
"settings.option.visual.animatedWindowBackground": "움직이는 창 배경", // Toggle
|
"settings.option.visual.animatedWindowBackground": "움직이는 윈도우 배경", // Toggle
|
||||||
"settings.option.visual.hardwareAcceleration": "하드웨어 가속", // Dropdown
|
"settings.option.visual.hardwareAcceleration": "하드웨어 가속", // Dropdown
|
||||||
"settings.option.visual.hardwareAcceleration.description": "재실행 필요",
|
"settings.option.visual.hardwareAcceleration.description": "재시작을 필요로 합니다.",
|
||||||
"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 - Visual - Theme name
|
||||||
|
"settings.option.visual.theme.default": "Cider",
|
||||||
|
"settings.option.visual.theme.dark": "다크",
|
||||||
// Refer to term.disabled for the disabled option
|
// Refer to term.disabled for the disabled option
|
||||||
"settings.option.visual.showPersonalInfo": "ID 표시", // Toggle
|
"settings.option.visual.showPersonalInfo": "개인 정보 보기", // Toggle
|
||||||
|
|
||||||
// Settings - Lyrics
|
// Settings - Lyrics
|
||||||
"settings.header.lyrics": "가사",
|
"settings.header.lyrics": "가사",
|
||||||
"settings.header.lyrics.description": "Cider를 위한 가사 설정을 조절하세요.",
|
"settings.header.lyrics.description": "Cider의 가사 기능을 설정합니다.",
|
||||||
"settings.option.lyrics.enableMusixmatch": "Musixmatch 가사", // Toggle
|
"settings.option.lyrics.enableMusixmatch": "Musixmatch 가사 활성화", // Toggle
|
||||||
"settings.option.lyrics.enableMusixmatchKaraoke": "노래방 모드 (Musixmatch만)", // Toggle
|
"settings.option.lyrics.enableMusixmatchKaraoke": "노래방 모드 활성화 (Musixmatch만 가능)", // Toggle
|
||||||
"settings.option.lyrics.musixmatchPreferredLanguage": "Musixmatch 선호 번역 언어", // Dropdown
|
"settings.option.lyrics.musixmatchPreferredLanguage": "Musixmatch 번역 선호 언어", // Dropdown
|
||||||
"settings.option.lyrics.enableYoutubeLyrics": "뮤직비디오 재생 시 유튜브에서 가사 가져오기", // Toggle
|
"settings.option.lyrics.enableYoutubeLyrics": "뮤직 비디오에 대한 유튜브 자막 활성화", // Toggle
|
||||||
|
|
||||||
// Settings - Connectivity
|
// Settings - Connectivity
|
||||||
"settings.header.connectivity": "연결",
|
"settings.header.connectivity": "연동",
|
||||||
"settings.header.connectivity.description": "Cider를 위한 연결 설정을 조절하세요.",
|
"settings.header.connectivity.description": "Cider의 연동 기능을 설정합니다.",
|
||||||
"settings.option.connectivity.discordRPC": "Discord 상태 표시", // Dropdown
|
"settings.option.connectivity.discordRPC": "Discord Rich Presence", // Dropdown
|
||||||
"settings.option.connectivity.playbackNotifications": "재생 상태 표시", // Toggle
|
"settings.option.connectivity.playbackNotifications": "재생 알림", // Toggle
|
||||||
// Refer to term.disabled for the disabled option
|
// Refer to term.disabled for the disabled option
|
||||||
"settings.header.connectivity.discordRPC.cider": "'Cider'로 표시",
|
"settings.header.connectivity.discordRPC.cider": "'Cider'로 표시하기",
|
||||||
"settings.header.connectivity.discordRPC.appleMusic": "'Apple Music'으로 표시",
|
"settings.header.connectivity.discordRPC.appleMusic": "'Apple Music'으로 표시하기",
|
||||||
"settings.option.connectivity.discordRPC.clearOnPause": "일시 정지 상태에서 Discord 상태 표시 끄기", // Toggle
|
"settings.option.connectivity.discordRPC.clearOnPause": "일시 정지 시 Discord Rich Presence을 끄기", // Toggle
|
||||||
"settings.option.connectivity.lastfmScrobble": "Last.fm Scrobbling", // Option to Connect
|
"settings.option.connectivity.lastfmScrobble": "Last.fm 스크로블링", // Option to Connect
|
||||||
"settings.option.connectivity.lastfmScrobble.delay": "Last.fm Scrobble 지연 (%)",
|
"settings.option.connectivity.lastfmScrobble.delay": "Last.fm 스크로블 딜레이 (%)",
|
||||||
"settings.option.connectivity.lastfmScrobble.nowPlaying": "Last.fm Now Playing 활성",
|
"settings.option.connectivity.lastfmScrobble.nowPlaying": "Last.fm Now Playing 기능 활성화",
|
||||||
"settings.option.connectivity.lastfmScrobble.removeFeatured": "곡 이름에서 피쳐링 아티스트 빼기 (Last.fm)",
|
"settings.option.connectivity.lastfmScrobble.removeFeatured": "곡 제목에서 피쳐링 아티스트를 제외하기 (Last.fm)",
|
||||||
"settings.option.connectivity.lastfmScrobble.filterLoop": "반복 재생 트랙 제거 (Last.fm)",
|
"settings.option.connectivity.lastfmScrobble.filterLoop": "루프 트랙을 필터하기 (Last.fm)",
|
||||||
// Refer to term.connect for the connect button
|
// Refer to term.connect for the connect button
|
||||||
|
|
||||||
// Settings - Experimental
|
// Settings - Experimental
|
||||||
"settings.header.experimental": "실험 기능",
|
"settings.header.experimental": "실험실",
|
||||||
"settings.header.experimental.description": "Cider를 위한 실험 기능을 조절하세요.",
|
"settings.header.experimental.description": "Cider의 실험적 기능을 설정합니다.",
|
||||||
"settings.option.experimental.compactUI": "컴팩트 UI", // Toggle
|
"settings.option.experimental.compactUI": "컴팩트 UI", // Toggle
|
||||||
"settings.option.experimental.close_button_hide": "닫기 버튼으로 프로그램 숨기기",
|
"settings.option.experimental.close_button_hide": "닫기 버튼이 애플리케이션을 가릴 것입니다",
|
||||||
// Refer to term.disabled & term.enabled
|
"settings.option.experimental.copy_log": "로그를 클립보드에 복사하기",
|
||||||
|
"settings.option.experimental.inline_playlists": "인라인 플레이리스트 및 앨범",
|
||||||
|
|
||||||
|
// Refer to term.disabled & term.enabled
|
||||||
// Spatialization Menu
|
// Spatialization Menu
|
||||||
"spatial.notTurnedOn": "먼저 공간 음향 설정을 활성화해주세요.",
|
"spatial.notTurnedOn": "오디오 공간화가 비활성화되어있습니다. 사용하기 전에 먼저 활성화해주세요.",
|
||||||
"spatial.spatialProperties": "공간 속성",
|
"spatial.spatialProperties": "공간 설정",
|
||||||
"spatial.width": "너비",
|
"spatial.width": "길이",
|
||||||
"spatial.height": "높이",
|
"spatial.height": "높이",
|
||||||
"spatial.depth": "깊이",
|
"spatial.depth": "깊이",
|
||||||
"spatial.gain": "게인",
|
"spatial.gain": "출력",
|
||||||
"spatial.roomMaterials": "방 재질",
|
"spatial.roomMaterials": "방 재질",
|
||||||
"spatial.roomDimensions": "방 차원",
|
"spatial.roomDimensions": "방 차원",
|
||||||
"spatial.roomPositions": "방 위치",
|
"spatial.roomPositions": "방 위치",
|
||||||
|
@ -292,20 +323,20 @@
|
||||||
"spatial.setPositions": "위치 설정",
|
"spatial.setPositions": "위치 설정",
|
||||||
"spatial.up": "위",
|
"spatial.up": "위",
|
||||||
"spatial.front": "앞",
|
"spatial.front": "앞",
|
||||||
"spatial.left": "왼쪽",
|
"spatial.left": "좌",
|
||||||
"spatial.right": "오른쪽",
|
"spatial.right": "우",
|
||||||
"spatial.back": "뒤",
|
"spatial.back": "뒤",
|
||||||
"spatial.down": "아래",
|
"spatial.down": "아래",
|
||||||
"spatial.listener": "청취자",
|
"spatial.listener": "사용자",
|
||||||
"spatial.audioSource": "오디오 출처",
|
"spatial.audioSource": "오디오 소스",
|
||||||
|
|
||||||
// Settings - Unfinished
|
// Settings - Unfinished
|
||||||
"settings.header.unfinished": "미완성",
|
"settings.header.unfinished": "미완성",
|
||||||
|
|
||||||
// Web Remote
|
// Web Remote
|
||||||
"remote.web.title": "Cider 리모트",
|
"remote.web.title": "Cider 리모트",
|
||||||
"remote.web.description": "Cider 인스턴스와 휴대 전화를 연결하려면 QR 코드를 스캔해주세요",
|
"remote.web.description": "QR 코드를 스캔해서 Cider와 스마트폰을 연결하기",
|
||||||
|
|
||||||
// About
|
// About
|
||||||
"about.thanks": "Cider 컬렉티브 팀과 우리의 모든 기여자들께 대단히 감사를 표합니다."
|
"about.thanks": "Cider Collective Team과 모든 기여자들에게 감사합니다."
|
||||||
}
|
}
|
311
src/i18n/sk_SK.jsonc
Normal file
311
src/i18n/sk_SK.jsonc
Normal file
|
@ -0,0 +1,311 @@
|
||||||
|
{ // Base File
|
||||||
|
|
||||||
|
// i18n Info
|
||||||
|
"i18n.languageName": "Slovenčina (SK)", // name of language in native language
|
||||||
|
"i18n.languageNameEnglish": "Slovak (SK)", // name of language in English
|
||||||
|
"i18n.category": "main", // main = real language, fun = fun community languages
|
||||||
|
"i18n.authors": "@jurosic", // Authors, if you contribute to this file feel free to add your name seperated with a space
|
||||||
|
|
||||||
|
// App info
|
||||||
|
"app.name": "Cider",
|
||||||
|
|
||||||
|
"date.format": "${d} ${m}, ${y}",
|
||||||
|
|
||||||
|
// Dialogs
|
||||||
|
"dialog.cancel": "Zrušit",
|
||||||
|
"dialog.ok": "OK",
|
||||||
|
|
||||||
|
// Notification
|
||||||
|
"notification.updatingLibrarySongs": "Aktualizujem pesničky v knižnici...",
|
||||||
|
"notification.updatingLibraryAlbums": "Aktualizujem albumy v knižnici...",
|
||||||
|
"notification.updatingLibraryArtists": "Aktualizujem tvorcov v knižnici...",
|
||||||
|
// Terms
|
||||||
|
"term.appleInc": "Apple Inc.",
|
||||||
|
"term.appleMusic": "Apple Music",
|
||||||
|
"term.applePodcasts": "Apple Podcasts",
|
||||||
|
"term.itunes": "iTunes",
|
||||||
|
"term.github": "GitHub",
|
||||||
|
"term.discord": "Discord",
|
||||||
|
"term.learnMore": "Zistiť viac",
|
||||||
|
"term.accountSettings": "Nastavenia účtu",
|
||||||
|
"term.logout": "Odhlásiť",
|
||||||
|
"term.login": "Prihlásiť",
|
||||||
|
"term.about": "About",
|
||||||
|
"term.privateSession": "Osobný Session",
|
||||||
|
"term.queue": "Poradie",
|
||||||
|
"term.search": "Vyhládavať",
|
||||||
|
"term.library": "Knižnica",
|
||||||
|
"term.listenNow": "Počúvať teraz",
|
||||||
|
"term.browse": "Prehliadávať",
|
||||||
|
"term.radio": "Rádio",
|
||||||
|
"term.recentlyAdded": "Nedávno Pridané",
|
||||||
|
"term.songs": "Pesničky",
|
||||||
|
"term.albums": "Albumy",
|
||||||
|
"term.artists": "Tvorcovia",
|
||||||
|
"term.podcasts": "Podcasty",
|
||||||
|
"term.playlists": "Playlisty",
|
||||||
|
"term.playlist": "Playlist",
|
||||||
|
"term.newPlaylist": "Nový Playlist",
|
||||||
|
"term.newPlaylistFolder": "Nový Priečinok Playlistov",
|
||||||
|
"term.createNewPlaylist": "Urobiť Nový Playlist",
|
||||||
|
"term.createNewPlaylistFolder": "Urobiť Nový Priečinok Playlistov",
|
||||||
|
"term.deletePlaylist": "Ste si istý že chcete zmazat tento playlist?",
|
||||||
|
"term.play": "Play",
|
||||||
|
"term.pause": "Pause",
|
||||||
|
"term.previous": "Previous",
|
||||||
|
"term.next": "Next",
|
||||||
|
"term.shuffle": "Shuffle",
|
||||||
|
"term.repeat": "Repeat",
|
||||||
|
"term.volume": "Hlasitosť",
|
||||||
|
"term.mute": "Ztlmiť",
|
||||||
|
"term.unmute": "Vypnúť Ztlmenie",
|
||||||
|
"term.share": "Zdielať",
|
||||||
|
"term.settings": "Nastavenia",
|
||||||
|
"term.seeAll": "Vidieť Všetko",
|
||||||
|
"term.sortBy": "Zodariť Podľa",
|
||||||
|
"term.sortBy.album": "Album",
|
||||||
|
"term.sortBy.artist": "Tvorca",
|
||||||
|
"term.sortBy.name": "Názov",
|
||||||
|
"term.sortBy.genre": "Žáner",
|
||||||
|
"term.sortBy.releaseDate": "Dátum Vydania",
|
||||||
|
"term.sortBy.duration": "Dĺžka",
|
||||||
|
"term.sortOrder": "A-Z",
|
||||||
|
"term.sortOrder.ascending": "Vzostupne",
|
||||||
|
"term.sortOrder.descending": "Zostupne",
|
||||||
|
"term.viewAs": "Zobraziť Ako",
|
||||||
|
"term.viewAs.coverArt": "Náhľadovka",
|
||||||
|
"term.viewAs.list": "List",
|
||||||
|
"term.size": "Velkosť",
|
||||||
|
"term.size.normal": "Normal",
|
||||||
|
"term.size.compact": "Compact",
|
||||||
|
"term.enable": "Zapnúť",
|
||||||
|
"term.disable": "Vypnúť",
|
||||||
|
"term.enabled": "Zapnuté",
|
||||||
|
"term.disabled": "Vypnuté",
|
||||||
|
"term.connect": "Pripojiť",
|
||||||
|
"term.connecting": "Pripájam",
|
||||||
|
"term.disconnect": "Odpojiť",
|
||||||
|
"term.authed": "Authentikovaný",
|
||||||
|
"term.confirm": "Podvrdiť ?",
|
||||||
|
"term.more": "Viac",
|
||||||
|
"term.less": "Menej",
|
||||||
|
"term.showMore": "Ukázať viac",
|
||||||
|
"term.showLess": "Ukázať menej",
|
||||||
|
"term.topSongs" : "Top Pesničky",
|
||||||
|
"term.latestReleases": "Najnovšie vydania",
|
||||||
|
"term.time.added": "Pridané",
|
||||||
|
"term.time.released": "Vydané",
|
||||||
|
"term.time.updated": "Aktualizované",
|
||||||
|
"term.time.hours": "hodín",
|
||||||
|
"term.time.hour": "hodina",
|
||||||
|
"term.time.minutes": "minút",
|
||||||
|
"term.time.minute": "minúta",
|
||||||
|
"term.time.seconds": "sekúnd",
|
||||||
|
"term.time.second": "sekunda",
|
||||||
|
"term.fullscreenView": "Zobrazenie na celej obrazovke",
|
||||||
|
"term.defaultView": "Default View",
|
||||||
|
"term.audioSettings": "Nastavenia Zvuku",
|
||||||
|
"term.clearAll": "Vyčistiť Všetko",
|
||||||
|
"term.recentStations": "Nedávne Stanice",
|
||||||
|
"term.language": "Jazyk",
|
||||||
|
"term.funLanguages": "Zábava",
|
||||||
|
"term.noLyrics": "Načítavam... / Text nebol najdený./ Instrumental.",
|
||||||
|
"term.copyright": "Copyright",
|
||||||
|
"term.rightsReserved": "All Rights Reserved.",
|
||||||
|
"term.sponsor": "Sponzoruj tento projekt",
|
||||||
|
"term.ciderTeam": "Cider Team",
|
||||||
|
"term.developer": "Developer",
|
||||||
|
"term.socialTeam": "Social Team",
|
||||||
|
"term.socials": "Socials",
|
||||||
|
"term.contributors": "Contributors",
|
||||||
|
"term.equalizer": "Equalizer",
|
||||||
|
"term.reset": "Resetovať",
|
||||||
|
"term.tracks": "pesničiek", // Assume x amount of tracks. e.g. 50 tracks
|
||||||
|
"term.videos": "Videá",
|
||||||
|
"term.menu": "Menu",
|
||||||
|
"term.check": "Skontrolovať",
|
||||||
|
"term.aboutArtist": "Viac o {{artistName}}", // e.g. 'About Doja Cat'
|
||||||
|
"term.updateCider": "Aktualizovať Cider",
|
||||||
|
|
||||||
|
// Home
|
||||||
|
"home.title": "Domov",
|
||||||
|
"home.recentlyPlayed": "Nedávno Prehrané",
|
||||||
|
"home.recentlyAdded": "Nedávno Pridané",
|
||||||
|
"home.artistsFeed": "Feed Tvojho Tvorcu",
|
||||||
|
"home.artistsFeed.noArtist": "Najprv sleduj niektorých tvorcov, ich pesničky potom budú tu",
|
||||||
|
"home.madeForYou": "Robené Pre Teba",
|
||||||
|
"home.friendsListeningTo": "Kamaráti počúvajú",
|
||||||
|
"home.followedArtists": "Sledovaný Tvorcovia",
|
||||||
|
// Errors
|
||||||
|
"error.appleMusicSubRequired": "Apple Music potrebuje subscription.",
|
||||||
|
"error.connectionError": "Pri pripojovaní ku Apple Music sa vyskytol problém",
|
||||||
|
"error.noResults": "Žiadne výsledky",
|
||||||
|
"error.noResults.description": "Skús nové vyhľádavanie",
|
||||||
|
|
||||||
|
//Podcasts
|
||||||
|
"podcast.followOnCider": "Sleduj na Cider",
|
||||||
|
"podcast.followedOnCider": "Sledované na Cider",
|
||||||
|
"podcast.subscribeOnItunes": "Odoberaj na iTunes",
|
||||||
|
"podcast.subscribedOnItunes": "Odoberane na iTunes",
|
||||||
|
"podcast.itunesStore": "iTunes Obchod",
|
||||||
|
"podcast.episodes": "Epizódy",
|
||||||
|
"podcast.playEpisode": "Prehraj Epizódu",
|
||||||
|
"podcast.website": "Stránka Podcastu",
|
||||||
|
|
||||||
|
// Actions
|
||||||
|
"action.addToLibrary": "Pridaj do Knižnice",
|
||||||
|
"action.addToLibrary.success": "Pridané do Knižnice",
|
||||||
|
"action.addToLibrary.error": "Pri pridávani do Knižnice sa vzskytol problém",
|
||||||
|
"action.removeFromLibrary": "Odstrániť z Knižnice",
|
||||||
|
"action.removeFromLibrary.success": "Odstránene z Knižnice",
|
||||||
|
"action.addToQueue": "Pridať do Poradia",
|
||||||
|
"action.addToQueue.success": "Pridané do Poradia",
|
||||||
|
"action.addToQueue.error": "Pri pridávaní do Poradia sa vyskytol problém",
|
||||||
|
"action.removeFromQueue": "Odstrániť z Poradia",
|
||||||
|
"action.removeFromQueue.success": "Odstránené z Poradia",
|
||||||
|
"action.removeFromQueue.error": "Pri odstranovaní z Poradia sa vyskytol probém",
|
||||||
|
"action.createPlaylist": "Urobiť nový Playlist",
|
||||||
|
"action.addToPlaylist": "Pridať do Playlistu",
|
||||||
|
"action.removeFromPlaylist": "Odstrániť z Playlistu",
|
||||||
|
"action.addToFavorites": "Pridať do Obľubéných",
|
||||||
|
"action.follow": "Sledovať",
|
||||||
|
"action.follow.success": "Sleduješ",
|
||||||
|
"action.follow.error": "Pri Sledovaní sa vyskytol problém",
|
||||||
|
"action.unfollow": "Zrušit Sledovanie",
|
||||||
|
"action.unfollow.success": "Sledovanie Zrušené",
|
||||||
|
"action.unfollow.error": "Pri zrušení sledovania sa vyskytol problém",
|
||||||
|
"action.playNext": "Hrať Ďalšie",
|
||||||
|
"action.playLater": "Hrať Neskor",
|
||||||
|
"action.startRadio": "Zapnúť Rádio",
|
||||||
|
"action.goToArtist": "Ku Tvorcovi",
|
||||||
|
"action.goToAlbum": "Ku Albumu",
|
||||||
|
"action.moveToTop": "Premiestniť Hore",
|
||||||
|
"action.share": "Zdielať",
|
||||||
|
"action.rename": "Premenovať",
|
||||||
|
"action.love": "Love",
|
||||||
|
"action.unlove": "Unlove",
|
||||||
|
"action.dislike": "Dislike",
|
||||||
|
"action.undoDislike": "Zrušiť dislike",
|
||||||
|
"action.showWebRemoteQR": "Web Remote",
|
||||||
|
"action.playTracksNext": "Hrať ${app.selectedMediaItems.length} pesničiek ďalej",
|
||||||
|
"action.playTracksLater": "Hrať ${app.selectedMediaItems.length} pesničiek neskôr",
|
||||||
|
"action.removeTracks": "Odstrániť ${self.selectedItems.length} pesničiek z poradia",
|
||||||
|
"action.import": "Importovať",
|
||||||
|
"action.export": "Exportovať",
|
||||||
|
"action.showAlbum": "Zobraziť Celý Album",
|
||||||
|
"action.tray.minimize": "Minimaizovať",
|
||||||
|
"action.tray.quit": "Odísť",
|
||||||
|
"action.tray.show": "Ukázať",
|
||||||
|
"action.update": "Aktualizovať",
|
||||||
|
|
||||||
|
// Settings - General
|
||||||
|
"settings.header.general": "všeobecné",
|
||||||
|
"settings.header.general.description": "Zmeniť všeobecné nastavenia pre Cider.",
|
||||||
|
"settings.option.general.language": "Jazyk",
|
||||||
|
|
||||||
|
// Language optgroups
|
||||||
|
"settings.option.general.language.main": "Jazyky",
|
||||||
|
"settings.option.general.language.fun": "Zábanve Jazyky",
|
||||||
|
"settings.option.general.language.unsorted": "Nepotriedené",
|
||||||
|
|
||||||
|
// Settings - Audio
|
||||||
|
"settings.header.audio": "Zvuk",
|
||||||
|
"settings.header.audio.description": "Zmeniť nastavenia zvuku pre Cider.",
|
||||||
|
"settings.option.audio.quality": "Kvalita zvuku", // Dropdown
|
||||||
|
"settings.header.audio.quality.high": "Vysoká",
|
||||||
|
"settings.header.audio.quality.low": "Nizká",
|
||||||
|
"settings.header.audio.quality.auto": "Automatické",
|
||||||
|
"settings.option.audio.seamlessTransition": "Hladký Prevod Zvuku", // Toggle
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality": "Zapnút Pokročilé Nastavenia Zvuku", // Toggle
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.description": "Zapnutie AudioContext funkcionality dovolí rozšírené funkcie zvuku ako Zvuková Normalizávia , Equalizéry a Visualízery, ale na niektorých systémoch to može spôsobiť problémy so zvukom.",
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.audioNormalization": "Normalízacia Zvuku", // Toggle
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "Normalizuje silu zvuku v pesničkách pre hľadší počúvací zážitok",
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "Priestorový Zvuk", // Toggle
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "Priestorový zvuk urobí zvuk 3-dimenzionálny (poznámka: Toto nie je Dolby Atmos)",
|
||||||
|
// Settings - Visual
|
||||||
|
"settings.header.visual": "Visuálne",
|
||||||
|
"settings.header.visual.description": "Zmenit Visuálne nastavenia pre Cider.",
|
||||||
|
"settings.option.visual.windowBackgroundStyle": "Štýl pozadia okna", // Toggle
|
||||||
|
"settings.header.visual.windowBackgroundStyle.none": "Žiadne",
|
||||||
|
"settings.header.visual.windowBackgroundStyle.artwork": "Náhľadovka",
|
||||||
|
"settings.header.visual.windowBackgroundStyle.image": "Obrátok",
|
||||||
|
"settings.option.visual.animatedArtwork": "Animované Náhľadovky", // Dropdown
|
||||||
|
"settings.header.visual.animatedArtwork.always": "Vždy",
|
||||||
|
"settings.header.visual.animatedArtwork.limited": "Limitované pre stránky a špecialne vydania",
|
||||||
|
"settings.header.visual.animatedArtwork.disable": "Vypnuť Všade",
|
||||||
|
"settings.option.visual.animatedArtworkQuality": "Kvalita Animovanej Náhľadovky", // Dropdown
|
||||||
|
"settings.header.visual.animatedArtworkQuality.low": "Nízka",
|
||||||
|
"settings.header.visual.animatedArtworkQuality.medium": "Stredná",
|
||||||
|
"settings.header.visual.animatedArtworkQuality.high": "Vysoká",
|
||||||
|
"settings.header.visual.animatedArtworkQuality.veryHigh": "Veľmi Vysoká",
|
||||||
|
"settings.header.visual.animatedArtworkQuality.extreme": "Extrémna",
|
||||||
|
"settings.option.visual.animatedWindowBackground": "Pozadie Animováneho Okna", // Toggle
|
||||||
|
"settings.option.visual.hardwareAcceleration": "Hardvérova Akcelerácia", // Dropdown
|
||||||
|
"settings.option.visual.hardwareAcceleration.description": "Vyžaduje Reštart",
|
||||||
|
"settings.header.visual.hardwareAcceleration.default": "Predvoľba",
|
||||||
|
"settings.header.visual.hardwareAcceleration.webGPU": "WebGPU",
|
||||||
|
// Refer to term.disabled for the disabled option
|
||||||
|
"settings.option.visual.showPersonalInfo": "Zobraziť osobné informácie", // Toggle
|
||||||
|
|
||||||
|
// Settings - Lyrics
|
||||||
|
"settings.header.lyrics": "Text",
|
||||||
|
"settings.header.lyrics.description": "Zmenit nastavenia textu pre Cider.",
|
||||||
|
"settings.option.lyrics.enableMusixmatch": "Zapnúť Musixmatch Texty", // Toggle
|
||||||
|
"settings.option.lyrics.enableMusixmatchKaraoke": "Zapnúť Karaoke Režim (Iba pre Musixmatch)", // Toggle
|
||||||
|
"settings.option.lyrics.musixmatchPreferredLanguage": "Predvolený jazyk pre Musixmatch prekladanie", // Dropdown
|
||||||
|
"settings.option.lyrics.enableYoutubeLyrics": "Zapnúť Youtube Lyrics pre videá", // Toggle
|
||||||
|
|
||||||
|
// Settings - Connectivity
|
||||||
|
"settings.header.connectivity": "Konektivita",
|
||||||
|
"settings.header.connectivity.description": "Zmeniť nastavenia konektivity pre Cider.",
|
||||||
|
"settings.option.connectivity.discordRPC": "Zobraziť status v Discord", // Dropdown
|
||||||
|
"settings.option.connectivity.playbackNotifications": "Notifikácie", // Toggle
|
||||||
|
// Refer to term.disabled for the disabled option
|
||||||
|
"settings.header.connectivity.discordRPC.cider": "Zobraziť ako 'Cider'",
|
||||||
|
"settings.header.connectivity.discordRPC.appleMusic": "Zobraziť ako 'Apple Music'",
|
||||||
|
"settings.option.connectivity.discordRPC.clearOnPause": "Vypnút Discord status pri Pauze", // Toggle
|
||||||
|
"settings.option.connectivity.lastfmScrobble": "Last.fm zaznamenanie počúvanej hudby", // Option to Connect
|
||||||
|
"settings.option.connectivity.lastfmScrobble.delay": "Last.fm Oneskorenie (%)",
|
||||||
|
"settings.option.connectivity.lastfmScrobble.nowPlaying": "Zapnúť Last.fm Now Playing",
|
||||||
|
"settings.option.connectivity.lastfmScrobble.removeFeatured": "Odstrániť tvorcov z počúvanej pesničky (Last.fm)",
|
||||||
|
"settings.option.connectivity.lastfmScrobble.filterLoop": "Filtrovať loopované pesničky (Last.fm)",
|
||||||
|
// Refer to term.connect for the connect button
|
||||||
|
|
||||||
|
// Settings - Experimental
|
||||||
|
"settings.header.experimental": "Experimentálne",
|
||||||
|
"settings.header.experimental.description": "Zmeniť experimentálne nastavenia pre Cider.",
|
||||||
|
"settings.option.experimental.compactUI": "Compact UI", // Toggle
|
||||||
|
"settings.option.experimental.close_button_hide": "Zatvoriť by malo skriť aplikáciu",
|
||||||
|
// Refer to term.disabled & term.enabled
|
||||||
|
|
||||||
|
// Spatialization Menu
|
||||||
|
"spatial.notTurnedOn": "Priestorový Zvuk je vypnutý. Prosím najprv ho zapnite.",
|
||||||
|
"spatial.spatialProperties": "Špeciálne Nastavenia",
|
||||||
|
"spatial.width": "Šírka",
|
||||||
|
"spatial.height": "Výška",
|
||||||
|
"spatial.depth": "Hĺbka",
|
||||||
|
"spatial.gain": "Gain",
|
||||||
|
"spatial.roomMaterials": "Materiály Priestoru",
|
||||||
|
"spatial.roomDimensions": "Velkosť Priestoru",
|
||||||
|
"spatial.roomPositions": "Pozicia v Priestoru",
|
||||||
|
"spatial.setDimensions": "Nastaviť Rozmery",
|
||||||
|
"spatial.setPositions": "Nastavit Pozíciu",
|
||||||
|
"spatial.up": "Hore",
|
||||||
|
"spatial.front": "V predu",
|
||||||
|
"spatial.left": "V ľavo",
|
||||||
|
"spatial.right": "V pravo",
|
||||||
|
"spatial.back": "V zadu",
|
||||||
|
"spatial.down": "Dole",
|
||||||
|
"spatial.listener": "Listener",
|
||||||
|
"spatial.audioSource": "Zdroj zvuku",
|
||||||
|
|
||||||
|
// Settings - Unfinished
|
||||||
|
"settings.header.unfinished": "Nedokončené",
|
||||||
|
|
||||||
|
// Web Remote
|
||||||
|
"remote.web.title": "Cider Remote",
|
||||||
|
"remote.web.description": "Naskenujte QR kód aby ste si spárovali telefón s touto Cider session",
|
||||||
|
|
||||||
|
// About
|
||||||
|
"about.thanks": "Ďakujeme Cider Tímu, Komunite a Kontribútorom, bez vás by to nebolo možné."
|
||||||
|
}
|
|
@ -1,7 +1,6 @@
|
||||||
{ // Base File
|
{ // Base File
|
||||||
|
|
||||||
// i18n Info
|
// i18n Info
|
||||||
"i18n.languageName": "Svenska (SE)", // name of language in native language
|
"i18n.languageName": "Svenska (SE)", // name of language in native language
|
||||||
"i18n.languageNameEnglish": "Swedish (SE)", // name of language in English
|
"i18n.languageNameEnglish": "Swedish (SE)", // 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": "@thisismemeboi", // Authors, if you contribute to this file feel free to add your name seperated with a space
|
"i18n.authors": "@thisismemeboi", // Authors, if you contribute to this file feel free to add your name seperated with a space
|
||||||
|
@ -19,6 +18,7 @@
|
||||||
"notification.updatingLibrarySongs": "Uppdaterar låtar i biblioteket...",
|
"notification.updatingLibrarySongs": "Uppdaterar låtar i biblioteket...",
|
||||||
"notification.updatingLibraryAlbums": "Uppdaterar album i biblioteket...",
|
"notification.updatingLibraryAlbums": "Uppdaterar album i biblioteket...",
|
||||||
"notification.updatingLibraryArtists": "Uppdaterar artister i biblioteket...",
|
"notification.updatingLibraryArtists": "Uppdaterar artister i biblioteket...",
|
||||||
|
|
||||||
// Terms
|
// Terms
|
||||||
"term.appleInc": "Apple Inc.",
|
"term.appleInc": "Apple Inc.",
|
||||||
"term.appleMusic": "Apple Music",
|
"term.appleMusic": "Apple Music",
|
||||||
|
@ -91,7 +91,7 @@
|
||||||
"term.less": "Mindre",
|
"term.less": "Mindre",
|
||||||
"term.showMore": "Visa mer",
|
"term.showMore": "Visa mer",
|
||||||
"term.showLess": "Visa mindre",
|
"term.showLess": "Visa mindre",
|
||||||
"term.topSongs" : "Topplåtar",
|
"term.topSongs": "Topplåtar",
|
||||||
"term.latestReleases": "Senaste releaserna",
|
"term.latestReleases": "Senaste releaserna",
|
||||||
"term.time.added": "Tillagd",
|
"term.time.added": "Tillagd",
|
||||||
"term.time.released": "Tillagd den",
|
"term.time.released": "Tillagd den",
|
||||||
|
@ -125,7 +125,6 @@
|
||||||
"term.menu": "Meny",
|
"term.menu": "Meny",
|
||||||
"term.check": "Sök efter uppdateringar",
|
"term.check": "Sök efter uppdateringar",
|
||||||
"term.aboutArtist": "Om {{artistName}}", // e.g. 'About Doja Cat'
|
"term.aboutArtist": "Om {{artistName}}", // e.g. 'About Doja Cat'
|
||||||
"term.updateCider": "Uppdatera Cider",
|
|
||||||
|
|
||||||
// Home
|
// Home
|
||||||
"home.title": "Hem",
|
"home.title": "Hem",
|
||||||
|
@ -136,13 +135,14 @@
|
||||||
"home.madeForYou": "Skapat för dig",
|
"home.madeForYou": "Skapat för dig",
|
||||||
"home.friendsListeningTo": "Vänner lyssnar på",
|
"home.friendsListeningTo": "Vänner lyssnar på",
|
||||||
"home.followedArtists": "Följda artister",
|
"home.followedArtists": "Följda artister",
|
||||||
|
|
||||||
// Errors
|
// Errors
|
||||||
"error.appleMusicSubRequired": "Apple Music kräver en prenumeration.",
|
"error.appleMusicSubRequired": "Apple Music kräver en prenumeration.",
|
||||||
"error.connectionError": "Ojdå. Det gick inte att ansluta till Apple Music.",
|
"error.connectionError": "Ojdå. Det gick inte att ansluta till Apple Music.",
|
||||||
"error.noResults": "Inga träffar.",
|
"error.noResults": "Inga träffar.",
|
||||||
"error.noResults.description": "Prova en ny sökning.",
|
"error.noResults.description": "Prova en ny sökning.",
|
||||||
|
|
||||||
//Podcasts
|
// Podcasts
|
||||||
"podcast.followOnCider": "Följ på Cider",
|
"podcast.followOnCider": "Följ på Cider",
|
||||||
"podcast.followedOnCider": "Följer på Cider",
|
"podcast.followedOnCider": "Följer på Cider",
|
||||||
"podcast.subscribeOnItunes": "Följ på iTunes",
|
"podcast.subscribeOnItunes": "Följ på iTunes",
|
||||||
|
@ -208,6 +208,9 @@
|
||||||
"settings.option.general.language.fun": "Roliga språk",
|
"settings.option.general.language.fun": "Roliga språk",
|
||||||
"settings.option.general.language.unsorted": "Osorterade",
|
"settings.option.general.language.unsorted": "Osorterade",
|
||||||
|
|
||||||
|
// Update Cider
|
||||||
|
"settings.option.general.updateCider": "Uppdatera Cider", // Button
|
||||||
|
|
||||||
// Settings - Audio
|
// Settings - Audio
|
||||||
"settings.header.audio": "Ljud",
|
"settings.header.audio": "Ljud",
|
||||||
"settings.header.audio.description": "Ändra Ciders ljudinställningar.",
|
"settings.header.audio.description": "Ändra Ciders ljudinställningar.",
|
||||||
|
@ -222,6 +225,7 @@
|
||||||
"settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "Normaliserar höga ljudnivåer för att förbättra ljudkvaliteten.",
|
"settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "Normaliserar höga ljudnivåer för att förbättra ljudkvaliteten.",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "Spiralljud", // Toggle
|
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "Spiralljud", // Toggle
|
||||||
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "Gör ljudet mer 3D (Ej Dolby Atmos)",
|
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "Gör ljudet mer 3D (Ej Dolby Atmos)",
|
||||||
|
|
||||||
// Settings - Visual
|
// Settings - Visual
|
||||||
"settings.header.visual": "Visuellt",
|
"settings.header.visual": "Visuellt",
|
||||||
"settings.header.visual.description": "Ändra Ciders visuella inställningar.",
|
"settings.header.visual.description": "Ändra Ciders visuella inställningar.",
|
||||||
|
@ -276,8 +280,8 @@
|
||||||
"settings.header.experimental.description": "Ändra Ciders experimentella inställningar.",
|
"settings.header.experimental.description": "Ändra Ciders experimentella inställningar.",
|
||||||
"settings.option.experimental.compactUI": "Kompakt gränssnitt", // Toggle
|
"settings.option.experimental.compactUI": "Kompakt gränssnitt", // Toggle
|
||||||
"settings.option.experimental.close_button_hide": "Stängknappen gömmer Cider istället",
|
"settings.option.experimental.close_button_hide": "Stängknappen gömmer Cider istället",
|
||||||
// Refer to term.disabled & term.enabled
|
|
||||||
|
|
||||||
|
// Refer to term.disabled & term.enabled
|
||||||
// Spatialization Menu
|
// Spatialization Menu
|
||||||
"spatial.notTurnedOn": "Spiralljud är av. Akrtivera det först.",
|
"spatial.notTurnedOn": "Spiralljud är av. Akrtivera det först.",
|
||||||
"spatial.spatialProperties": "Spiralljudsintällningar",
|
"spatial.spatialProperties": "Spiralljudsintällningar",
|
||||||
|
|
|
@ -1,15 +1,15 @@
|
||||||
{
|
{
|
||||||
|
// i18n Info
|
||||||
|
"i18n.languageName": "简体中文(中国)", // name of language in native language
|
||||||
|
"i18n.languageNameEnglish": "Simp. 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
|
||||||
|
|
||||||
// App info
|
// App info
|
||||||
"app.name": "Cider",
|
"app.name": "Cider",
|
||||||
|
|
||||||
"date.format": "${y}年${m}月${d}日",
|
"date.format": "${y}年${m}月${d}日",
|
||||||
|
|
||||||
// i18n Info
|
|
||||||
"i18n.languageName": "简体中文(中国)", // name of language in native language
|
|
||||||
"i18n.languageNameEnglish": "Simp. 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
|
// Dialogs
|
||||||
"dialog.cancel": "取消",
|
"dialog.cancel": "取消",
|
||||||
"dialog.ok": "确定",
|
"dialog.ok": "确定",
|
||||||
|
@ -85,7 +85,7 @@
|
||||||
"term.less": "较少",
|
"term.less": "较少",
|
||||||
"term.showMore": "显示更多",
|
"term.showMore": "显示更多",
|
||||||
"term.showLess": "显示更少",
|
"term.showLess": "显示更少",
|
||||||
"term.topSongs" : "热门歌曲",
|
"term.topSongs": "热门歌曲",
|
||||||
"term.latestReleases": "最新发行",
|
"term.latestReleases": "最新发行",
|
||||||
"term.time.added": "添加于",
|
"term.time.added": "添加于",
|
||||||
"term.time.released": "发行于",
|
"term.time.released": "发行于",
|
||||||
|
@ -118,7 +118,6 @@
|
||||||
"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.updateCider": "更新 Cider",
|
|
||||||
|
|
||||||
// Home
|
// Home
|
||||||
"home.title": "主页",
|
"home.title": "主页",
|
||||||
|
@ -136,7 +135,7 @@
|
||||||
"error.noResults": "没有结果",
|
"error.noResults": "没有结果",
|
||||||
"error.noResults.description": "尝试更改搜索条件。",
|
"error.noResults.description": "尝试更改搜索条件。",
|
||||||
|
|
||||||
//Podcasts
|
// Podcasts
|
||||||
"podcast.followOnCider": "在 Cider 中追踪",
|
"podcast.followOnCider": "在 Cider 中追踪",
|
||||||
"podcast.followedOnCider": "已追踪",
|
"podcast.followedOnCider": "已追踪",
|
||||||
"podcast.subscribeOnItunes": "在 iTunes 上订阅",
|
"podcast.subscribeOnItunes": "在 iTunes 上订阅",
|
||||||
|
@ -146,7 +145,6 @@
|
||||||
"podcast.playEpisode": "播放单集",
|
"podcast.playEpisode": "播放单集",
|
||||||
"podcast.website": "Podcast 网站",
|
"podcast.website": "Podcast 网站",
|
||||||
|
|
||||||
|
|
||||||
// Actions
|
// Actions
|
||||||
"action.addToLibrary": "加入资料库",
|
"action.addToLibrary": "加入资料库",
|
||||||
"action.addToLibrary.success": "成功加入资料库",
|
"action.addToLibrary.success": "成功加入资料库",
|
||||||
|
@ -192,21 +190,28 @@
|
||||||
"action.tray.show": "显示",
|
"action.tray.show": "显示",
|
||||||
"action.update": "更新",
|
"action.update": "更新",
|
||||||
|
|
||||||
|
|
||||||
// Settings - Audio
|
// Settings - Audio
|
||||||
"settings.header.audio": "音频",
|
"settings.header.audio": "音频",
|
||||||
"settings.header.audio.description": "调整 Cider 的音频设置",
|
"settings.header.audio.description": "调整 Cider 的音频设置",
|
||||||
"settings.option.audio.quality": "音质", // Dropdown
|
"settings.option.audio.quality": "音质", // Dropdown
|
||||||
|
"settings.header.audio.quality.hireslossless": "高解析度无损",
|
||||||
|
"settings.header.audio.quality.hireslossless.description": "(最高 24 位/192 kHz)",
|
||||||
|
"settings.header.audio.quality.lossless": "无损",
|
||||||
|
"settings.header.audio.quality.lossless.description": "(最高 24 位/48 kHz)",
|
||||||
|
"settings.header.audio.quality.enhanced": "数字增强",
|
||||||
"settings.header.audio.quality.high": "高音质",
|
"settings.header.audio.quality.high": "高音质",
|
||||||
"settings.header.audio.quality.low": "高效率",
|
"settings.header.audio.quality.standard": "高效率",
|
||||||
"settings.header.audio.quality.auto": "自动",
|
"settings.header.audio.quality.auto": "自动",
|
||||||
"settings.option.audio.seamlessTransition": "无缝播放", // Toggle
|
"settings.option.audio.seamlessTransition": "无缝播放", // Toggle
|
||||||
"settings.option.audio.enableAdvancedFunctionality": "进阶功能", // Toggle
|
"settings.option.audio.enableAdvancedFunctionality": "进阶功能", // Toggle
|
||||||
"settings.option.audio.enableAdvancedFunctionality.description": "启用 AudioContext 将解锁例如音量标准化和音频空间化的功能,但可能会在小部分设备上出现音频上的卡顿。",
|
"settings.option.audio.enableAdvancedFunctionality.description": "启用 AudioContext 将解锁例如音量标准化和音频空间化的功能,但可能会在小部分设备上出现音频上的卡顿。",
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.ciderPPE": "Cider 数字增强引擎™️", // Toggle
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.ciderPPE.description": "将欺骗您的大脑来感知到近似无损音频的效果。",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.audioNormalization": "音量标准化", // Toggle
|
"settings.option.audio.enableAdvancedFunctionality.audioNormalization": "音量标准化", // Toggle
|
||||||
"settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "使所感知到的音频响度统一",
|
"settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "使所感知到的音频响度统一",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "音频空间化", // Toggle
|
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "音频空间化", // Toggle
|
||||||
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "使所感知到的音频更有立体感 (注: 这不是杜比全景声)",
|
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "使所感知到的音频更有立体感 (注: 这不是杜比全景声)",
|
||||||
|
|
||||||
// Settings - Visual
|
// Settings - Visual
|
||||||
"settings.header.visual": "外观",
|
"settings.header.visual": "外观",
|
||||||
"settings.header.visual.description": "调整 Cider 的外观",
|
"settings.header.visual.description": "调整 Cider 的外观",
|
||||||
|
@ -230,10 +235,14 @@
|
||||||
"settings.header.visual.hardwareAcceleration.webGPU": "WebGPU",
|
"settings.header.visual.hardwareAcceleration.webGPU": "WebGPU",
|
||||||
// Refer to term.disabled for the disabled option
|
// Refer to term.disabled for the disabled option
|
||||||
"settings.option.visual.showPersonalInfo": "显示个人资料", // Toggle
|
"settings.option.visual.showPersonalInfo": "显示个人资料", // Toggle
|
||||||
|
|
||||||
// Settings - General (Reserved)
|
// Settings - General (Reserved)
|
||||||
"settings.header.general": "通用",
|
"settings.header.general": "通用",
|
||||||
"settings.header.general.description": "调整 Cider 的通用设置",
|
"settings.header.general.description": "调整 Cider 的通用设置",
|
||||||
|
|
||||||
|
// Settings - General - Update Cider
|
||||||
|
"settings.option.general.updateCider": "更新 Cider", // Button
|
||||||
|
|
||||||
// Settings - Lyrics
|
// Settings - Lyrics
|
||||||
"settings.header.lyrics": "歌词",
|
"settings.header.lyrics": "歌词",
|
||||||
"settings.header.lyrics.description": "调整 Cider 的歌词设置",
|
"settings.header.lyrics.description": "调整 Cider 的歌词设置",
|
||||||
|
@ -261,27 +270,27 @@
|
||||||
"settings.header.experimental.description": "调整Cider的实验性功能",
|
"settings.header.experimental.description": "调整Cider的实验性功能",
|
||||||
"settings.option.experimental.compactUI": "紧凑型 UI", // Toggle
|
"settings.option.experimental.compactUI": "紧凑型 UI", // Toggle
|
||||||
"settings.option.experimental.close_button_hide": "点击关闭按钮时仅隐藏窗口",
|
"settings.option.experimental.close_button_hide": "点击关闭按钮时仅隐藏窗口",
|
||||||
// Refer to term.disabled & term.enabled
|
|
||||||
|
|
||||||
|
// Refer to term.disabled & term.enabled
|
||||||
// Spatialization Menu
|
// Spatialization Menu
|
||||||
"spatial.spatialProperties" : "空间属性",
|
"spatial.spatialProperties": "空间属性",
|
||||||
"spatial.width" : "宽度",
|
"spatial.width": "宽度",
|
||||||
"spatial.height" : "高度",
|
"spatial.height": "高度",
|
||||||
"spatial.depth" : "深度",
|
"spatial.depth": "深度",
|
||||||
"spatial.gain": "增益",
|
"spatial.gain": "增益",
|
||||||
"spatial.roomMaterials" : "空间材质",
|
"spatial.roomMaterials": "空间材质",
|
||||||
"spatial.roomDimensions" : "空间尺寸",
|
"spatial.roomDimensions": "空间尺寸",
|
||||||
"spatial.roomPositions" : "空间位置",
|
"spatial.roomPositions": "空间位置",
|
||||||
"spatial.setDimensions" : "设置尺寸",
|
"spatial.setDimensions": "设置尺寸",
|
||||||
"spatial.setPositions" : "设置位置",
|
"spatial.setPositions": "设置位置",
|
||||||
"spatial.up" : "上",
|
"spatial.up": "上",
|
||||||
"spatial.front" : "前",
|
"spatial.front": "前",
|
||||||
"spatial.left" : "左",
|
"spatial.left": "左",
|
||||||
"spatial.right" : "右",
|
"spatial.right": "右",
|
||||||
"spatial.back" : "后",
|
"spatial.back": "后",
|
||||||
"spatial.down" : "下",
|
"spatial.down": "下",
|
||||||
"spatial.listener" : "您",
|
"spatial.listener": "您",
|
||||||
"spatial.audioSource" : "音源",
|
"spatial.audioSource": "音源",
|
||||||
|
|
||||||
// Settings - Unfinished
|
// Settings - Unfinished
|
||||||
"settings.header.unfinished": "未完成",
|
"settings.header.unfinished": "未完成",
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
{
|
{
|
||||||
|
|
||||||
// i18n Info
|
// i18n Info
|
||||||
"i18n.languageName": "繁體中文(香港)", // name of language in native language
|
"i18n.languageName": "繁體中文(香港)", // name of language in native language
|
||||||
"i18n.languageNameEnglish": "Trad. Chinese (Hong Kong)", // name of language in English
|
"i18n.languageNameEnglish": "Trad. Chinese (Hong Kong)", // 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": "@kyw504100 @maikirakiwi", // Authors, if you contribute to this file feel free to add your name seperated with a space
|
"i18n.authors": "@kyw504100 @maikirakiwi", // Authors, if you contribute to this file feel free to add your name seperated with a space
|
||||||
|
@ -19,6 +18,7 @@
|
||||||
"notification.updatingLibrarySongs": "正在更新資料庫的歌曲...",
|
"notification.updatingLibrarySongs": "正在更新資料庫的歌曲...",
|
||||||
"notification.updatingLibraryAlbums": "正在更新資料庫的專輯...",
|
"notification.updatingLibraryAlbums": "正在更新資料庫的專輯...",
|
||||||
"notification.updatingLibraryArtists": "正在更新資料庫的藝人...",
|
"notification.updatingLibraryArtists": "正在更新資料庫的藝人...",
|
||||||
|
|
||||||
// Terms
|
// Terms
|
||||||
"term.appleInc": "Apple Inc.",
|
"term.appleInc": "Apple Inc.",
|
||||||
"term.appleMusic": "Apple Music", // Follows brand term
|
"term.appleMusic": "Apple Music", // Follows brand term
|
||||||
|
@ -33,6 +33,7 @@
|
||||||
"term.about": "關於",
|
"term.about": "關於",
|
||||||
"term.privateSession": "私人模式",
|
"term.privateSession": "私人模式",
|
||||||
"term.queue": "待播清單",
|
"term.queue": "待播清單",
|
||||||
|
"term.history": "歷史紀錄",
|
||||||
"term.search": "搜尋",
|
"term.search": "搜尋",
|
||||||
"term.library": "資料庫",
|
"term.library": "資料庫",
|
||||||
"term.listenNow": "立即聆聽",
|
"term.listenNow": "立即聆聽",
|
||||||
|
@ -45,6 +46,11 @@
|
||||||
"term.podcasts": "Podcasts",
|
"term.podcasts": "Podcasts",
|
||||||
"term.playlists": "播放列表",
|
"term.playlists": "播放列表",
|
||||||
"term.playlist": "播放列表",
|
"term.playlist": "播放列表",
|
||||||
|
"term.newPlaylist": "新播放列表",
|
||||||
|
"term.newPlaylistFolder": "新資料夾",
|
||||||
|
"term.createNewPlaylist": "新增播放列表",
|
||||||
|
"term.createNewPlaylistFolder": "新增資料夾",
|
||||||
|
"term.deletePlaylist": "你確認要刪除這個播放列表?",
|
||||||
"term.play": "播放",
|
"term.play": "播放",
|
||||||
"term.pause": "暫停",
|
"term.pause": "暫停",
|
||||||
"term.previous": "上一首",
|
"term.previous": "上一首",
|
||||||
|
@ -55,6 +61,7 @@
|
||||||
"term.mute": "靜音",
|
"term.mute": "靜音",
|
||||||
"term.unmute": "取消靜音",
|
"term.unmute": "取消靜音",
|
||||||
"term.share": "分享",
|
"term.share": "分享",
|
||||||
|
"term.share.success": "已複製至剪貼簿",
|
||||||
"term.settings": "設定",
|
"term.settings": "設定",
|
||||||
"term.seeAll": "顯示全部",
|
"term.seeAll": "顯示全部",
|
||||||
"term.sortBy": "排序",
|
"term.sortBy": "排序",
|
||||||
|
@ -86,7 +93,7 @@
|
||||||
"term.less": "較少",
|
"term.less": "較少",
|
||||||
"term.showMore": "顯示更多",
|
"term.showMore": "顯示更多",
|
||||||
"term.showLess": "顯示較少",
|
"term.showLess": "顯示較少",
|
||||||
"term.topSongs" : "熱門歌曲",
|
"term.topSongs": "熱門歌曲",
|
||||||
"term.latestReleases": "最新發行",
|
"term.latestReleases": "最新發行",
|
||||||
"term.time.added": "加入於",
|
"term.time.added": "加入於",
|
||||||
"term.time.released": "發行於",
|
"term.time.released": "發行於",
|
||||||
|
@ -118,7 +125,23 @@
|
||||||
"term.tracks": "首歌曲", // Assume x amount of tracks. e.g. 50 tracks
|
"term.tracks": "首歌曲", // Assume x amount of tracks. e.g. 50 tracks
|
||||||
"term.videos": "影片",
|
"term.videos": "影片",
|
||||||
"term.menu": "選項",
|
"term.menu": "選項",
|
||||||
"term.showAlbum": "顯示完整的專輯",
|
"term.check": "檢查",
|
||||||
|
"term.aboutArtist": "關於 {{artistName}}", // e.g. 'About Doja Cat'
|
||||||
|
"term.topResult": "熱門搜尋結果", // Search Results
|
||||||
|
"term.sharedPlaylists": "播放列表", // Search Results
|
||||||
|
"term.people": "個人檔案", // Search Results
|
||||||
|
"term.newpreset.name": "新均衡器範本名稱", // Equalizer Preset
|
||||||
|
"term.addedpreset": "已新增",
|
||||||
|
"term.deletepreset.warn": "你確認要刪除這個範本?",
|
||||||
|
"term.deletedpreset": "已刪除",
|
||||||
|
"term.musicVideos": "MV", // Search page friendlyTypes
|
||||||
|
"term.stations": "電台",
|
||||||
|
//"term.curators": "Curators",
|
||||||
|
//"term.appleCurators": "Apple Curators",
|
||||||
|
"term.radioShows": "廣播單集",
|
||||||
|
"term.recordLabels": "唱片公司",
|
||||||
|
"term.videoExtras": "影片特輯",
|
||||||
|
//"term.top": "Top",
|
||||||
|
|
||||||
// Home
|
// Home
|
||||||
"home.title": "主頁",
|
"home.title": "主頁",
|
||||||
|
@ -129,13 +152,14 @@
|
||||||
"home.madeForYou": "為您推薦",
|
"home.madeForYou": "為您推薦",
|
||||||
"home.friendsListeningTo": "朋友正在聆聽",
|
"home.friendsListeningTo": "朋友正在聆聽",
|
||||||
"home.followedArtists": "追蹤的藝人",
|
"home.followedArtists": "追蹤的藝人",
|
||||||
|
|
||||||
// Errors
|
// Errors
|
||||||
"error.appleMusicSubRequired": "需要訂閱Apple Music以使用Cider",
|
"error.appleMusicSubRequired": "需要訂閱Apple Music以使用Cider",
|
||||||
"error.connectionError": "無法連接到 Apple Music。",
|
"error.connectionError": "無法連接到 Apple Music。",
|
||||||
"error.noResults": "沒有結果",
|
"error.noResults": "沒有結果",
|
||||||
"error.noResults.description": "請嘗試新的搜尋內容。",
|
"error.noResults.description": "請嘗試新的搜尋內容。",
|
||||||
|
|
||||||
//Podcasts
|
// Podcasts
|
||||||
"podcast.followOnCider": "在Cider上追蹤",
|
"podcast.followOnCider": "在Cider上追蹤",
|
||||||
"podcast.followedOnCider": "已在Cider上追蹤",
|
"podcast.followedOnCider": "已在Cider上追蹤",
|
||||||
"podcast.subscribeOnItunes": "在iTunes上訂閱",
|
"podcast.subscribeOnItunes": "在iTunes上訂閱",
|
||||||
|
@ -185,6 +209,14 @@
|
||||||
"action.removeTracks": "從待播清單刪除 ${self.selectedItems.length} 首歌曲",
|
"action.removeTracks": "從待播清單刪除 ${self.selectedItems.length} 首歌曲",
|
||||||
"action.import": "匯入",
|
"action.import": "匯入",
|
||||||
"action.export": "匯出",
|
"action.export": "匯出",
|
||||||
|
"action.showAlbum": "顯示完整的專輯",
|
||||||
|
"action.tray.minimize": "縮小至系統托盤",
|
||||||
|
"action.tray.quit": "結束",
|
||||||
|
"action.tray.show": "顯示",
|
||||||
|
"action.update": "更新",
|
||||||
|
"action.copy": "複製",
|
||||||
|
"action.newpreset": "新增範本", //Equallizer preset
|
||||||
|
"action.deletepreset": "刪除範本",
|
||||||
|
|
||||||
// Settings - General
|
// Settings - General
|
||||||
"settings.header.general": "一般",
|
"settings.header.general": "一般",
|
||||||
|
@ -196,20 +228,30 @@
|
||||||
"settings.option.general.language.fun": "惡搞語言",
|
"settings.option.general.language.fun": "惡搞語言",
|
||||||
"settings.option.general.language.unsorted": "未分類",
|
"settings.option.general.language.unsorted": "未分類",
|
||||||
|
|
||||||
|
// Update Cider
|
||||||
|
"settings.option.general.updateCider": "更新 Cider", // Button
|
||||||
|
|
||||||
// Settings - Audio
|
// Settings - Audio
|
||||||
"settings.header.audio": "音訊",
|
"settings.header.audio": "音訊",
|
||||||
"settings.header.audio.description": "調整Cider的音訊設定",
|
"settings.header.audio.description": "調整Cider的音訊設定",
|
||||||
"settings.option.audio.quality": "音訊音質", // Dropdown
|
"settings.option.audio.quality": "音訊音質", // Dropdown
|
||||||
|
"settings.header.audio.quality.hireslossless": "高清無損壓縮",
|
||||||
|
"settings.header.audio.quality.hireslossless.description": "(高達 24-bit/192 kHz)",
|
||||||
|
"settings.header.audio.quality.lossless": "無損壓縮",
|
||||||
|
"settings.header.audio.quality.lossless.description": "(高達 24-bit/48 kHz)",
|
||||||
"settings.header.audio.quality.high": "高素質",
|
"settings.header.audio.quality.high": "高素質",
|
||||||
"settings.header.audio.quality.low": "高效率",
|
"settings.header.audio.quality.low": "高效率",
|
||||||
"settings.header.audio.quality.auto": "自動",
|
"settings.header.audio.quality.auto": "自動",
|
||||||
"settings.option.audio.seamlessTransition": "無縫播放", // Toggle
|
"settings.option.audio.seamlessTransition": "無縫播放", // Toggle
|
||||||
"settings.option.audio.enableAdvancedFunctionality": "進階功能", // Toggle
|
"settings.option.audio.enableAdvancedFunctionality": "進階功能", // Toggle
|
||||||
"settings.option.audio.enableAdvancedFunctionality.description": "啟用 AudioContext 將解鎖類似音量平衡和均衡器的進階功能。但是會在一些電腦造成音樂卡頓。",
|
"settings.option.audio.enableAdvancedFunctionality.description": "啟用 AudioContext 將解鎖類似音量平衡和均衡器的進階功能。但是會在一些電腦造成音樂卡頓。",
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.decryptLLPW": "無損壓縮解碼", // Toggle
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.decryptLLPW.description": "提供 Cider 解碼無損壓縮檔案的能力,但相應地會增加電腦的工作量。",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.audioNormalization": "音量平衡", // Toggle
|
"settings.option.audio.enableAdvancedFunctionality.audioNormalization": "音量平衡", // Toggle
|
||||||
"settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "將平衡輕柔和響亮的歌曲,建立更統一的聆聽體驗。",
|
"settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "將平衡輕柔和響亮的歌曲,建立更統一的聆聽體驗。",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "空間音訊", // Toggle
|
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "空間音訊", // Toggle
|
||||||
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "將音訊進行空間化處理來製造一個更立體的聆聽體驗(注:此功能不是官方的杜比全景聲)",
|
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "將音訊進行空間化處理來製造一個更立體的聆聽體驗(注:此功能不是官方的杜比全景聲)",
|
||||||
|
|
||||||
// Settings - Visual
|
// Settings - Visual
|
||||||
"settings.header.visual": "外觀",
|
"settings.header.visual": "外觀",
|
||||||
"settings.header.visual.description": "調整Cider的外觀",
|
"settings.header.visual.description": "調整Cider的外觀",
|
||||||
|
@ -232,6 +274,11 @@
|
||||||
"settings.option.visual.hardwareAcceleration.description": "需要重啓 Cider 才能生效",
|
"settings.option.visual.hardwareAcceleration.description": "需要重啓 Cider 才能生效",
|
||||||
"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 - Visual - Theme name
|
||||||
|
"settings.option.visual.theme.default": "預設",
|
||||||
|
"settings.option.visual.theme.dark": "午夜暗",
|
||||||
// Refer to term.disabled for the disabled option
|
// Refer to term.disabled for the disabled option
|
||||||
"settings.option.visual.showPersonalInfo": "顯示個人檔案", // Toggle
|
"settings.option.visual.showPersonalInfo": "顯示個人檔案", // Toggle
|
||||||
|
|
||||||
|
@ -252,42 +299,42 @@
|
||||||
"settings.header.connectivity.discordRPC.cider": "顯示為'Cider'",
|
"settings.header.connectivity.discordRPC.cider": "顯示為'Cider'",
|
||||||
"settings.header.connectivity.discordRPC.appleMusic": "顯示為'Apple Music'",
|
"settings.header.connectivity.discordRPC.appleMusic": "顯示為'Apple Music'",
|
||||||
"settings.option.connectivity.discordRPC.clearOnPause": "暫停時清除 Discord 狀態", // Toggle
|
"settings.option.connectivity.discordRPC.clearOnPause": "暫停時清除 Discord 狀態", // Toggle
|
||||||
"settings.option.connectivity.lastfmScrobble": "LastFM Scrobbling 記錄", // Option to Connect
|
"settings.option.connectivity.lastfmScrobble": "Last.fm Scrobbling 記錄", // Option to Connect
|
||||||
"settings.option.connectivity.lastfmScrobble.delay": "LastFM Scrobble 延遲 (%)",
|
"settings.option.connectivity.lastfmScrobble.delay": "Last.fm Scrobble 延遲 (%)",
|
||||||
"settings.option.connectivity.lastfmScrobble.nowPlaying": "啟用 LastFM 正在播放",
|
"settings.option.connectivity.lastfmScrobble.nowPlaying": "啟用 Last.fm 正在播放",
|
||||||
"settings.option.connectivity.lastfmScrobble.removeFeatured": "從歌名中移除藝人推薦 (LastFM)",
|
"settings.option.connectivity.lastfmScrobble.removeFeatured": "從歌名中移除藝人推薦 (Last.fm)",
|
||||||
"settings.option.connectivity.lastfmScrobble.filterLoop": "Filter looped track (LastFM)",
|
//"settings.option.connectivity.lastfmScrobble.filterLoop": "Filter looped track (Last.fm)",
|
||||||
// Refer to term.connect for the connect button
|
// Refer to term.connect for the connect button
|
||||||
|
|
||||||
// Settings - Experimental
|
// Settings - Experimental
|
||||||
"settings.header.experimental": "實驗性功能",
|
"settings.header.experimental": "實驗性功能",
|
||||||
"settings.header.experimental.description": "調整Cider的實驗性功能",
|
"settings.header.experimental.description": "調整Cider的實驗性功能",
|
||||||
"settings.option.experimental.compactUI": "緊凑型 UI", // Toggle
|
"settings.option.experimental.compactUI": "緊凑型 UI", // Toggle
|
||||||
"settings.option.experimental.closeButtonBehaviour": "關閉按鈕行為",
|
"settings.option.experimental.close_button_hide": "以關閉按鈕來隱藏 Cider",
|
||||||
"settings.option.experimental.closeButtonBehaviour.quit": "結束 Cider",
|
"settings.option.experimental.copy_log": "複製運行記錄檔至剪貼簿",
|
||||||
"settings.option.experimental.closeButtonBehaviour.minimizeTaskbar": "縮小至工作列",
|
//"settings.option.experimental.inline_playlists": "Inline Playlists and Albums",
|
||||||
"settings.option.experimental.closeButtonBehaviour.minimizeTray": "縮小至系統托盤",
|
|
||||||
// Refer to term.disabled & term.enabled
|
|
||||||
|
|
||||||
|
// Refer to term.disabled & term.enabled
|
||||||
// Spatialization Menu
|
// Spatialization Menu
|
||||||
"spatial.spatialProperties" : "空間音訊屬性",
|
"spatial.notTurnedOn": "請先在設定中啟用空間音訊。",
|
||||||
"spatial.width" : "闊度",
|
"spatial.spatialProperties": "空間音訊屬性",
|
||||||
"spatial.height" : "高度",
|
"spatial.width": "闊度",
|
||||||
"spatial.depth" : "深度",
|
"spatial.height": "高度",
|
||||||
"spatial.gain" : "增益",
|
"spatial.depth": "深度",
|
||||||
"spatial.roomMaterials" : "空間材質",
|
"spatial.gain": "增益",
|
||||||
"spatial.roomDimensions" : "空間大小",
|
"spatial.roomMaterials": "空間材質",
|
||||||
"spatial.roomPositions" : "空間位置",
|
"spatial.roomDimensions": "空間大小",
|
||||||
"spatial.setDimensions" : "大小設定",
|
"spatial.roomPositions": "空間位置",
|
||||||
"spatial.setPositions" : "位置設定",
|
"spatial.setDimensions": "大小設定",
|
||||||
"spatial.up" : "上方",
|
"spatial.setPositions": "位置設定",
|
||||||
"spatial.front" : "前方",
|
"spatial.up": "上方",
|
||||||
"spatial.left" : "左方",
|
"spatial.front": "前方",
|
||||||
"spatial.right" : "右方",
|
"spatial.left": "左方",
|
||||||
"spatial.back" : "後方",
|
"spatial.right": "右方",
|
||||||
"spatial.down" : "下方",
|
"spatial.back": "後方",
|
||||||
"spatial.listener" : "觀眾",
|
"spatial.down": "下方",
|
||||||
"spatial.audioSource" : "音源",
|
"spatial.listener": "觀眾",
|
||||||
|
"spatial.audioSource": "音源",
|
||||||
|
|
||||||
// Settings - Unfinished
|
// Settings - Unfinished
|
||||||
"settings.header.unfinished": "未完成",
|
"settings.header.unfinished": "未完成",
|
||||||
|
@ -296,6 +343,6 @@
|
||||||
"remote.web.title": "遙距控制 Cider",
|
"remote.web.title": "遙距控制 Cider",
|
||||||
"remote.web.description": "掃描以下的二維碼以控制 Cider",
|
"remote.web.description": "掃描以下的二維碼以控制 Cider",
|
||||||
|
|
||||||
//About
|
// About
|
||||||
"about.thanks": "感謝 Cider Collective 以及所有貢獻者所作出的貢獻。"
|
"about.thanks": "感謝 Cider Collective 以及所有貢獻者所作出的貢獻。"
|
||||||
}
|
}
|
|
@ -1,16 +1,15 @@
|
||||||
{
|
{
|
||||||
|
// i18n Info
|
||||||
|
"i18n.languageName": "繁體中文(台灣)", // name of language in native language
|
||||||
|
"i18n.languageNameEnglish": "Trad. Chinese (Taiwan)", // name of language in English
|
||||||
|
"i18n.category": "main", // main = real language, fun = fun community languages
|
||||||
|
"i18n.authors": "@maikirakiwi @jay900604", // Authors, if you contribute to this file feel free to add your name seperated with a space
|
||||||
|
|
||||||
// App info
|
// App info
|
||||||
"app.name": "Cider",
|
"app.name": "Cider",
|
||||||
|
|
||||||
"date.format": "${y}年${m}月${d}日",
|
"date.format": "${y}年${m}月${d}日",
|
||||||
|
|
||||||
// i18n Info
|
|
||||||
"i18n.languageName": "繁體中文(台灣)", // name of language in native language
|
|
||||||
"i18n.languageNameEnglish": "Trad. Chinese (Taiwan)", // name of language in English
|
|
||||||
"i18n.category": "main", // main = real language, fun = fun community languages
|
|
||||||
"i18n.authors": "@maikirakiwi", // Authors, if you contribute to this file feel free to add your name seperated with a space
|
|
||||||
|
|
||||||
|
|
||||||
// Dialogs
|
// Dialogs
|
||||||
"dialog.cancel": "取消",
|
"dialog.cancel": "取消",
|
||||||
"dialog.ok": "確定",
|
"dialog.ok": "確定",
|
||||||
|
@ -19,6 +18,7 @@
|
||||||
"notification.updatingLibrarySongs": "正在更新資料庫的歌曲...",
|
"notification.updatingLibrarySongs": "正在更新資料庫的歌曲...",
|
||||||
"notification.updatingLibraryAlbums": "正在更新資料庫的專輯...",
|
"notification.updatingLibraryAlbums": "正在更新資料庫的專輯...",
|
||||||
"notification.updatingLibraryArtists": "正在更新資料庫的藝人...",
|
"notification.updatingLibraryArtists": "正在更新資料庫的藝人...",
|
||||||
|
|
||||||
// Terms
|
// Terms
|
||||||
"term.appleMusic": "Apple Music", // Follows brand term
|
"term.appleMusic": "Apple Music", // Follows brand term
|
||||||
"term.applePodcasts": "Apple Podcasts", // Follows brand term
|
"term.applePodcasts": "Apple Podcasts", // Follows brand term
|
||||||
|
@ -54,6 +54,7 @@
|
||||||
"term.mute": "靜音",
|
"term.mute": "靜音",
|
||||||
"term.unmute": "取消靜音",
|
"term.unmute": "取消靜音",
|
||||||
"term.share": "分享",
|
"term.share": "分享",
|
||||||
|
"term.share.success": "已複製至剪貼簿",
|
||||||
"term.settings": "設定",
|
"term.settings": "設定",
|
||||||
"term.seeAll": "顯示全部",
|
"term.seeAll": "顯示全部",
|
||||||
"term.sortBy": "排序",
|
"term.sortBy": "排序",
|
||||||
|
@ -71,7 +72,7 @@
|
||||||
"term.viewAs.list": "列表",
|
"term.viewAs.list": "列表",
|
||||||
"term.size": "大小",
|
"term.size": "大小",
|
||||||
"term.size.normal": "正常",
|
"term.size.normal": "正常",
|
||||||
"term.size.compact": "緊凑",
|
"term.size.compact": "緊密",
|
||||||
"term.enable": "啟用",
|
"term.enable": "啟用",
|
||||||
"term.disable": "停用",
|
"term.disable": "停用",
|
||||||
"term.enabled": "已啟用",
|
"term.enabled": "已啟用",
|
||||||
|
@ -85,7 +86,7 @@
|
||||||
"term.less": "更少",
|
"term.less": "更少",
|
||||||
"term.showMore": "顯示更多",
|
"term.showMore": "顯示更多",
|
||||||
"term.showLess": "顯示更少",
|
"term.showLess": "顯示更少",
|
||||||
"term.topSongs" : "熱門歌曲",
|
"term.topSongs": "熱門歌曲",
|
||||||
"term.latestReleases": "最新發行",
|
"term.latestReleases": "最新發行",
|
||||||
"term.time.added": "加入於",
|
"term.time.added": "加入於",
|
||||||
"term.time.released": "發行於",
|
"term.time.released": "發行於",
|
||||||
|
@ -96,18 +97,18 @@
|
||||||
"term.time.minute": "分鐘",
|
"term.time.minute": "分鐘",
|
||||||
"term.time.seconds": "秒",
|
"term.time.seconds": "秒",
|
||||||
"term.time.second": "秒",
|
"term.time.second": "秒",
|
||||||
"term.fullscreenView": "全螢幕顯示歌詞",
|
"term.fullscreenView": "全螢幕顯示",
|
||||||
"term.defaultView": "預設顯示",
|
"term.defaultView": "預設顯示",
|
||||||
"term.audioSettings": "音訊設定",
|
"term.audioSettings": "音訊設定",
|
||||||
"term.spacializedAudioSetting": "音訊空間設定",
|
"term.spacializedAudioSetting": "空間音訊設定",
|
||||||
"term.clearAll": "清空",
|
"term.clearAll": "清空",
|
||||||
"term.recentStations": "最近收聽的廣播",
|
"term.recentStations": "最近收聽的廣播",
|
||||||
"term.language": "語言",
|
"term.language": "語言",
|
||||||
"term.noLyrics": "正在載入。。/ 無歌詞結果 / 純音樂",
|
"term.noLyrics": "正在載入。。/ 無歌詞結果 / 純音樂",
|
||||||
"term.copyright": "版權聲明",
|
"term.copyright": "版權聲明",
|
||||||
"term.rightsReserved": "保留所有權利。",
|
"term.rightsReserved": "保留所有權利。",
|
||||||
"term.sponsor": "贊助",
|
"term.sponsor": "贊助我們",
|
||||||
"term.socials": "社群",
|
"term.socials": "社群平台",
|
||||||
"term.ciderTeam": "Cider 團隊",
|
"term.ciderTeam": "Cider 團隊",
|
||||||
"term.developer": "開發者",
|
"term.developer": "開發者",
|
||||||
"term.socialTeam": "公關團隊",
|
"term.socialTeam": "公關團隊",
|
||||||
|
@ -119,7 +120,6 @@
|
||||||
"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.updateCider": "更新 Cider",
|
|
||||||
|
|
||||||
// Home
|
// Home
|
||||||
"home.title": "首頁",
|
"home.title": "首頁",
|
||||||
|
@ -130,13 +130,14 @@
|
||||||
"home.madeForYou": "為您推薦",
|
"home.madeForYou": "為您推薦",
|
||||||
"home.friendsListeningTo": "朋友正在聆聽",
|
"home.friendsListeningTo": "朋友正在聆聽",
|
||||||
"home.followedArtists": "追蹤的藝人",
|
"home.followedArtists": "追蹤的藝人",
|
||||||
|
|
||||||
// Errors
|
// Errors
|
||||||
"error.appleMusicSubRequired": "需要訂閱 Apple Music 以使用 Cider",
|
"error.appleMusicSubRequired": "需要訂閱 Apple Music 以使用 Cider",
|
||||||
"error.connectionError": "無法連線到 Apple Music。",
|
"error.connectionError": "無法連接到 Apple Music。",
|
||||||
"error.noResults": "沒有結果",
|
"error.noResults": "沒有結果",
|
||||||
"error.noResults.description": "嘗試新的搜尋項目。",
|
"error.noResults.description": "嘗試新的搜尋項目。",
|
||||||
|
|
||||||
//Podcasts
|
// Podcasts
|
||||||
"podcast.followOnCider": "在 Cider 上追蹤",
|
"podcast.followOnCider": "在 Cider 上追蹤",
|
||||||
"podcast.followedOnCider": "已追蹤",
|
"podcast.followedOnCider": "已追蹤",
|
||||||
"podcast.subscribeOnItunes": "在 iTunes 上訂閱",
|
"podcast.subscribeOnItunes": "在 iTunes 上訂閱",
|
||||||
|
@ -190,12 +191,18 @@
|
||||||
"action.tray.quit": "關閉",
|
"action.tray.quit": "關閉",
|
||||||
"action.tray.show": "顯示",
|
"action.tray.show": "顯示",
|
||||||
"action.update": "更新",
|
"action.update": "更新",
|
||||||
|
"action.copy": "複製",
|
||||||
|
"action.newpreset": "新增預設", // Equalizer Preset
|
||||||
|
"action.deletepreset": "刪除預設", // Equalizer Preset
|
||||||
|
|
||||||
// Language optgroups
|
// Language optgroups
|
||||||
"settings.option.general.language.main": "語言",
|
"settings.option.general.language.main": "語言",
|
||||||
"settings.option.general.language.fun": "惡搞語言",
|
"settings.option.general.language.fun": "特殊語言",
|
||||||
"settings.option.general.language.unsorted": "未分類",
|
"settings.option.general.language.unsorted": "未分類",
|
||||||
|
|
||||||
|
// Update Cider
|
||||||
|
"settings.option.general.updateCider": "更新 Cider", // Button
|
||||||
|
|
||||||
// Settings - Audio
|
// Settings - Audio
|
||||||
"settings.header.audio": "音訊",
|
"settings.header.audio": "音訊",
|
||||||
"settings.header.audio.description": "調整 Cider 的音訊設定",
|
"settings.header.audio.description": "調整 Cider 的音訊設定",
|
||||||
|
@ -204,18 +211,23 @@
|
||||||
"settings.header.audio.quality.hireslossless.description": "(高達 24-bit/192 kHz)",
|
"settings.header.audio.quality.hireslossless.description": "(高達 24-bit/192 kHz)",
|
||||||
"settings.header.audio.quality.lossless": "無損壓縮",
|
"settings.header.audio.quality.lossless": "無損壓縮",
|
||||||
"settings.header.audio.quality.lossless.description": "(高達 24-bit/48 kHz)",
|
"settings.header.audio.quality.lossless.description": "(高達 24-bit/48 kHz)",
|
||||||
|
"settings.header.audio.quality.enhanced": "數位增強",
|
||||||
"settings.header.audio.quality.high": "高品質",
|
"settings.header.audio.quality.high": "高品質",
|
||||||
"settings.header.audio.quality.low": "高效率",
|
"settings.header.audio.quality.standard": "高效率",
|
||||||
"settings.header.audio.quality.auto": "自動",
|
"settings.header.audio.quality.auto": "自動",
|
||||||
"settings.option.audio.seamlessTransition": "無間斷播放", // Toggle
|
"settings.option.audio.seamlessTransition": "無間斷播放", // Toggle
|
||||||
"settings.option.audio.enableAdvancedFunctionality": "進階音訊功能", // Toggle
|
"settings.option.audio.enableAdvancedFunctionality": "進階音訊功能", // Toggle
|
||||||
"settings.option.audio.enableAdvancedFunctionality.description": "啟用 AudioContext 將解鎖類似音訊標準和等化器的進階功能。但這並不一定適合每部電腦,可能會發生音樂卡頓。",
|
"settings.option.audio.enableAdvancedFunctionality.description": "啟用 AudioContext 將開啟類似音訊平衡和等化器的進階設定。但這並不一定適合每部電腦,可能會發生音樂卡頓。",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.decryptLLPW": "無損壓縮解碼", // Toggle
|
"settings.option.audio.enableAdvancedFunctionality.ciderPPE": "Cider 數位增強音訊處理™️", // Toggle
|
||||||
"settings.option.audio.enableAdvancedFunctionality.decryptLLPW.description": "提供 Cider 解碼無損壓縮檔案的能力,但相對應的也會提升對電腦效能的使用率。",
|
"settings.option.audio.enableAdvancedFunctionality.ciderPPE.description": "將欺騙您的大腦讓您感受到近似保真壓縮的音質。| 由 Maikiwi 設計",
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength": "數位增強音訊處理設定", // Toggle
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.description": "將更改音訊處理的激進/振奮程度(增強選項有可能會引起雜訊)",
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.standard": "標準",
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.aggressive": "增強",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.audioNormalization": "音訊平衡", // Toggle
|
"settings.option.audio.enableAdvancedFunctionality.audioNormalization": "音訊平衡", // Toggle
|
||||||
"settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "將平衡輕柔和響亮的歌曲,建立更統一的聆聽體驗。",
|
"settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "將平衡輕柔和響亮的歌曲,建立更統一舒適的聆聽體驗。",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "空間音訊", // Toggle
|
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "空間音訊", // Toggle
|
||||||
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "將音訊進行空間化處理來製造一個更立體的聆聽體驗(註:此功能不是官方的杜比全景聲)。",
|
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "將音訊進行空間化處理來製造一個更立體的聆聽體驗(註:此功能不是官方的杜比全景聲)",
|
||||||
|
|
||||||
// Settings - Visual
|
// Settings - Visual
|
||||||
"settings.header.visual": "外觀",
|
"settings.header.visual": "外觀",
|
||||||
|
@ -223,6 +235,7 @@
|
||||||
"settings.option.visual.windowBackgroundStyle": "視窗背景樣式", // Toggle
|
"settings.option.visual.windowBackgroundStyle": "視窗背景樣式", // Toggle
|
||||||
"settings.header.visual.windowBackgroundStyle.none": "空白",
|
"settings.header.visual.windowBackgroundStyle.none": "空白",
|
||||||
"settings.header.visual.windowBackgroundStyle.artwork": "專輯封面",
|
"settings.header.visual.windowBackgroundStyle.artwork": "專輯封面",
|
||||||
|
"settings.header.visual.windowBackgroundStyle.image": "圖片",
|
||||||
"settings.option.visual.animatedArtwork": "動態專輯封面", // Dropdown
|
"settings.option.visual.animatedArtwork": "動態專輯封面", // Dropdown
|
||||||
"settings.header.visual.animatedArtwork.always": "總是顯示",
|
"settings.header.visual.animatedArtwork.always": "總是顯示",
|
||||||
"settings.header.visual.animatedArtwork.limited": "只在藝人頁面和專輯封面顯示",
|
"settings.header.visual.animatedArtwork.limited": "只在藝人頁面和專輯封面顯示",
|
||||||
|
@ -238,7 +251,10 @@
|
||||||
"settings.option.visual.hardwareAcceleration.description": "需要重新啟動 Cider 才會套用",
|
"settings.option.visual.hardwareAcceleration.description": "需要重新啟動 Cider 才會套用",
|
||||||
"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 - Visual - Theme name
|
||||||
|
"settings.option.visual.theme.default": "Cider",
|
||||||
|
"settings.option.visual.theme.dark": "暗黑模式",
|
||||||
// Refer to term.disabled for the disabled option
|
// Refer to term.disabled for the disabled option
|
||||||
"settings.option.visual.showPersonalInfo": "顯示個人檔案", // Toggle
|
"settings.option.visual.showPersonalInfo": "顯示個人檔案", // Toggle
|
||||||
|
|
||||||
|
@ -258,6 +274,7 @@
|
||||||
"settings.header.connectivity": "外部連接",
|
"settings.header.connectivity": "外部連接",
|
||||||
"settings.header.connectivity.description": "調整 Cider 與外部的連接",
|
"settings.header.connectivity.description": "調整 Cider 與外部的連接",
|
||||||
"settings.option.connectivity.discordRPC": "Discord 動態", // Dropdown
|
"settings.option.connectivity.discordRPC": "Discord 動態", // Dropdown
|
||||||
|
"settings.option.connectivity.playbackNotifications": "歌曲播放通知", // Toggle
|
||||||
// Refer to term.disabled for the disabled option
|
// Refer to term.disabled for the disabled option
|
||||||
"settings.header.connectivity.discordRPC.cider": "顯示正在玩 'Cider'",
|
"settings.header.connectivity.discordRPC.cider": "顯示正在玩 'Cider'",
|
||||||
"settings.header.connectivity.discordRPC.appleMusic": "顯示正在玩 'Apple Music'",
|
"settings.header.connectivity.discordRPC.appleMusic": "顯示正在玩 'Apple Music'",
|
||||||
|
@ -271,13 +288,16 @@
|
||||||
// Settings - Experimental
|
// Settings - Experimental
|
||||||
"settings.header.experimental": "實驗性功能",
|
"settings.header.experimental": "實驗性功能",
|
||||||
"settings.header.experimental.description": "調整 Cider 的實驗性功能",
|
"settings.header.experimental.description": "調整 Cider 的實驗性功能",
|
||||||
"settings.option.experimental.compactUI": "緊凑的介面", // Toggle
|
"settings.option.experimental.compactUI": "使用緊密的介面設計", // Toggle
|
||||||
"settings.option.experimental.closeButtonBehaviour": "關閉按鈕操作", // Dropdown
|
"settings.option.experimental.closeButtonBehaviour": "關閉按鈕操作", // Dropdown
|
||||||
"settings.option.experimental.close_button_hide": "關閉按鈕將 Cider 隱藏至系統列",
|
"settings.option.experimental.close_button_hide": "關閉按鈕將 Cider 隱藏至系統列",
|
||||||
// Refer to term.disabled & term.enabled
|
"settings.option.experimental.copy_log": "複製執行紀錄檔至剪貼簿",
|
||||||
|
"settings.option.experimental.inline_playlists": "將播放列表做為行内元素顯示",
|
||||||
|
|
||||||
|
// Refer to term.disabled & term.enabled
|
||||||
// Spatialization Menu
|
// Spatialization Menu
|
||||||
"spatial.spatialProperties" : "音訊空間屬性",
|
"spatial.notTurnedOn": "空間音訊目前是關閉狀態,請先啟用再使用。",
|
||||||
|
"spatial.spatialProperties" : "空間音訊屬性設定",
|
||||||
"spatial.width" : "寬度",
|
"spatial.width" : "寬度",
|
||||||
"spatial.height" : "高度",
|
"spatial.height" : "高度",
|
||||||
"spatial.depth" : "深度",
|
"spatial.depth" : "深度",
|
||||||
|
@ -286,7 +306,7 @@
|
||||||
"spatial.roomDimensions" : "空間尺寸",
|
"spatial.roomDimensions" : "空間尺寸",
|
||||||
"spatial.roomPositions" : "空間位置",
|
"spatial.roomPositions" : "空間位置",
|
||||||
"spatial.setDimensions" : "設定尺寸",
|
"spatial.setDimensions" : "設定尺寸",
|
||||||
"spatial.setPositions" : "設定位置",
|
"spatial.setPositions" : "套用設定",
|
||||||
"spatial.up" : "上",
|
"spatial.up" : "上",
|
||||||
"spatial.front" : "前",
|
"spatial.front" : "前",
|
||||||
"spatial.left" : "左",
|
"spatial.left" : "左",
|
||||||
|
@ -297,7 +317,7 @@
|
||||||
"spatial.audioSource" : "音訊來源",
|
"spatial.audioSource" : "音訊來源",
|
||||||
|
|
||||||
// Settings - Unfinished
|
// Settings - Unfinished
|
||||||
"settings.header.unfinished": "未完成",
|
"settings.header.unfinished": "未開發完成的功能",
|
||||||
|
|
||||||
// Web Remote
|
// Web Remote
|
||||||
"remote.web.title": "Cider 遠端操控",
|
"remote.web.title": "Cider 遠端操控",
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
{
|
{
|
||||||
|
|
||||||
// i18n Info
|
// i18n Info
|
||||||
"i18n.languageName": "廣東話(香港﹚", // name of language in native language
|
"i18n.languageName": "廣東話(香港)", // name of language in native language
|
||||||
"i18n.languageNameEnglish": "Cantonese (Hong Kong)", // name of language in English
|
"i18n.languageNameEnglish": "Cantonese (Hong Kong)", // 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": "@tszngaiyip @strikesnc", // Authors, if you contribute to this file feel free to add your name seperated with a space
|
"i18n.authors": "@tszngaiyip @strikesnc", // Authors, if you contribute to this file feel free to add your name seperated with a space
|
||||||
|
@ -19,6 +18,7 @@
|
||||||
"notification.updatingLibrarySongs": "更新緊資料庫嘅歌曲...",
|
"notification.updatingLibrarySongs": "更新緊資料庫嘅歌曲...",
|
||||||
"notification.updatingLibraryAlbums": "更新緊資料庫嘅專輯...",
|
"notification.updatingLibraryAlbums": "更新緊資料庫嘅專輯...",
|
||||||
"notification.updatingLibraryArtists": "更新緊資料庫嘅藝人...",
|
"notification.updatingLibraryArtists": "更新緊資料庫嘅藝人...",
|
||||||
|
|
||||||
// Terms
|
// Terms
|
||||||
"term.appleInc": "Apple Inc.",
|
"term.appleInc": "Apple Inc.",
|
||||||
"term.appleMusic": "Apple Music",
|
"term.appleMusic": "Apple Music",
|
||||||
|
@ -33,6 +33,7 @@
|
||||||
"term.about": "關於",
|
"term.about": "關於",
|
||||||
"term.privateSession": "無痕模式",
|
"term.privateSession": "無痕模式",
|
||||||
"term.queue": "待播清單",
|
"term.queue": "待播清單",
|
||||||
|
"term.history": "播放歷史",
|
||||||
"term.search": "搵野",
|
"term.search": "搵野",
|
||||||
"term.library": "資料庫",
|
"term.library": "資料庫",
|
||||||
"term.listenNow": "即刻聽",
|
"term.listenNow": "即刻聽",
|
||||||
|
@ -45,6 +46,11 @@
|
||||||
"term.podcasts": "Podcasts",
|
"term.podcasts": "Podcasts",
|
||||||
"term.playlists": "播放清單",
|
"term.playlists": "播放清單",
|
||||||
"term.playlist": "播放清單",
|
"term.playlist": "播放清單",
|
||||||
|
"term.newPlaylist": "新播放清單",
|
||||||
|
"term.newPlaylistFolder": "新資料夾",
|
||||||
|
"term.createNewPlaylist": "新增播放清單",
|
||||||
|
"term.createNewPlaylistFolder": "新增資料夾",
|
||||||
|
"term.deletePlaylist": "你係咪要刪除呢個播放清單?",
|
||||||
"term.play": "播放",
|
"term.play": "播放",
|
||||||
"term.pause": "暫停",
|
"term.pause": "暫停",
|
||||||
"term.previous": "前一首",
|
"term.previous": "前一首",
|
||||||
|
@ -55,6 +61,7 @@
|
||||||
"term.mute": "靜音",
|
"term.mute": "靜音",
|
||||||
"term.unmute": "取消靜音",
|
"term.unmute": "取消靜音",
|
||||||
"term.share": "分享",
|
"term.share": "分享",
|
||||||
|
"term.share.success": "複製咗喺剪貼簿",
|
||||||
"term.settings": "設定",
|
"term.settings": "設定",
|
||||||
"term.seeAll": "睇哂全部",
|
"term.seeAll": "睇哂全部",
|
||||||
"term.sortBy": "排序",
|
"term.sortBy": "排序",
|
||||||
|
@ -86,7 +93,7 @@
|
||||||
"term.less": "少啲",
|
"term.less": "少啲",
|
||||||
"term.showMore": "顯示多啲",
|
"term.showMore": "顯示多啲",
|
||||||
"term.showLess": "顯示少啲",
|
"term.showLess": "顯示少啲",
|
||||||
"term.topSongs" : "熱門歌曲",
|
"term.topSongs": "熱門歌曲",
|
||||||
"term.latestReleases": "最新出嘅",
|
"term.latestReleases": "最新出嘅",
|
||||||
"term.time.added": "加入於",
|
"term.time.added": "加入於",
|
||||||
"term.time.released": "發行於",
|
"term.time.released": "發行於",
|
||||||
|
@ -118,7 +125,23 @@
|
||||||
"term.tracks": "首歌", // Assume x amount of tracks. e.g. 50 tracks
|
"term.tracks": "首歌", // Assume x amount of tracks. e.g. 50 tracks
|
||||||
"term.videos": "影片",
|
"term.videos": "影片",
|
||||||
"term.menu": "選項",
|
"term.menu": "選項",
|
||||||
"term.showAlbum": "顯示完整嘅專輯",
|
"term.check": "檢查",
|
||||||
|
"term.aboutArtist": "關於 {{artistName}}", // e.g. 'About Doja Cat'
|
||||||
|
"term.topResult": "熱門搜尋結果", // Search Results
|
||||||
|
"term.sharedPlaylists": "播放清單", // Search Results
|
||||||
|
"term.people": "個人檔案", // Search Results
|
||||||
|
"term.newpreset.name": "新EQ範本嘅名", // Equalizer Preset
|
||||||
|
"term.addedpreset": "新增咗",
|
||||||
|
"term.deletepreset.warn": "你係咪要刪除呢個範本?",
|
||||||
|
"term.deletedpreset": "刪除咗",
|
||||||
|
"term.musicVideos": "MV", // Search page friendlyTypes
|
||||||
|
"term.stations": "電台",
|
||||||
|
//"term.curators": "Curators",
|
||||||
|
//"term.appleCurators": "Apple Curators",
|
||||||
|
"term.radioShows": "電台單集",
|
||||||
|
"term.recordLabels": "唱片公司",
|
||||||
|
"term.videoExtras": "相關嘅片",
|
||||||
|
//"term.top": "Top",
|
||||||
|
|
||||||
// Home
|
// Home
|
||||||
"home.title": "主頁",
|
"home.title": "主頁",
|
||||||
|
@ -129,13 +152,14 @@
|
||||||
"home.madeForYou": "為你而整",
|
"home.madeForYou": "為你而整",
|
||||||
"home.friendsListeningTo": "你啲Friend聽緊",
|
"home.friendsListeningTo": "你啲Friend聽緊",
|
||||||
"home.followedArtists": "Follow左嘅藝人",
|
"home.followedArtists": "Follow左嘅藝人",
|
||||||
|
|
||||||
// Errors
|
// Errors
|
||||||
"error.appleMusicSubRequired": "需要訂閱Apple Music先可以用Cider。",
|
"error.appleMusicSubRequired": "需要訂閱Apple Music先可以用Cider。",
|
||||||
"error.connectionError": "連接唔到Apple Music。",
|
"error.connectionError": "連接唔到Apple Music。",
|
||||||
"error.noResults": "冇結果。",
|
"error.noResults": "冇結果。",
|
||||||
"error.noResults.description": "重新搵過啦。",
|
"error.noResults.description": "重新搵過啦。",
|
||||||
|
|
||||||
//Podcasts
|
// Podcasts
|
||||||
"podcast.followOnCider": "喺Cider上Follow",
|
"podcast.followOnCider": "喺Cider上Follow",
|
||||||
"podcast.followedOnCider": "喺Cider上Follow左",
|
"podcast.followedOnCider": "喺Cider上Follow左",
|
||||||
"podcast.subscribeOnItunes": "喺iTunes上訂閱",
|
"podcast.subscribeOnItunes": "喺iTunes上訂閱",
|
||||||
|
@ -185,6 +209,14 @@
|
||||||
"action.removeTracks": "喺待播清單到刪除 ${self.selectedItems.length} 首歌曲",
|
"action.removeTracks": "喺待播清單到刪除 ${self.selectedItems.length} 首歌曲",
|
||||||
"action.import": "匯入",
|
"action.import": "匯入",
|
||||||
"action.export": "匯出",
|
"action.export": "匯出",
|
||||||
|
"action.showAlbum": "顯示完整嘅專輯",
|
||||||
|
"action.tray.minimize": "收埋喺系統托盤",
|
||||||
|
"action.tray.quit": "結束",
|
||||||
|
"action.tray.show": "顯示",
|
||||||
|
"action.update": "更新",
|
||||||
|
"action.copy": "複製",
|
||||||
|
"action.newpreset": "新增範本", // Equalizer Preset
|
||||||
|
"action.deletepreset": "刪除範本",
|
||||||
|
|
||||||
// Settings - General
|
// Settings - General
|
||||||
"settings.header.general": "一般",
|
"settings.header.general": "一般",
|
||||||
|
@ -196,6 +228,9 @@
|
||||||
"settings.option.general.language.fun": "惡搞語言",
|
"settings.option.general.language.fun": "惡搞語言",
|
||||||
"settings.option.general.language.unsorted": "未分類",
|
"settings.option.general.language.unsorted": "未分類",
|
||||||
|
|
||||||
|
// Update Cider
|
||||||
|
"settings.option.general.updateCider": "更新 Cider", // Button
|
||||||
|
|
||||||
// Settings - Audio
|
// Settings - Audio
|
||||||
"settings.header.audio": "音訊",
|
"settings.header.audio": "音訊",
|
||||||
"settings.header.audio.description": "調整Cider嘅音訊設定",
|
"settings.header.audio.description": "調整Cider嘅音訊設定",
|
||||||
|
@ -210,6 +245,7 @@
|
||||||
"settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "平衡輕柔同響亮嘅歌曲,令你有統一嘅聆聽體驗。",
|
"settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "平衡輕柔同響亮嘅歌曲,令你有統一嘅聆聽體驗。",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "空間音訊", // Toggle
|
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "空間音訊", // Toggle
|
||||||
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "空間化音訊,製造一個更立體嘅聆聽體驗(注意:呢個功能唔係官方嘅杜比全景聲)",
|
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "空間化音訊,製造一個更立體嘅聆聽體驗(注意:呢個功能唔係官方嘅杜比全景聲)",
|
||||||
|
|
||||||
// Settings - Visual
|
// Settings - Visual
|
||||||
"settings.header.visual": "外觀",
|
"settings.header.visual": "外觀",
|
||||||
"settings.header.visual.description": "調整Cider嘅外觀",
|
"settings.header.visual.description": "調整Cider嘅外觀",
|
||||||
|
@ -232,6 +268,11 @@
|
||||||
"settings.option.visual.hardwareAcceleration.description": "需要重開Cider先會生效",
|
"settings.option.visual.hardwareAcceleration.description": "需要重開Cider先會生效",
|
||||||
"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 - Visual - Theme name
|
||||||
|
"settings.option.visual.theme.default": "預設",
|
||||||
|
"settings.option.visual.theme.dark": "黑色",
|
||||||
// Refer to term.disabled for the disabled option
|
// Refer to term.disabled for the disabled option
|
||||||
"settings.option.visual.showPersonalInfo": "顯示個人檔案", // Toggle
|
"settings.option.visual.showPersonalInfo": "顯示個人檔案", // Toggle
|
||||||
|
|
||||||
|
@ -252,42 +293,42 @@
|
||||||
"settings.header.connectivity.discordRPC.cider": "顯示為'Cider'",
|
"settings.header.connectivity.discordRPC.cider": "顯示為'Cider'",
|
||||||
"settings.header.connectivity.discordRPC.appleMusic": "顯示為'Apple Music'",
|
"settings.header.connectivity.discordRPC.appleMusic": "顯示為'Apple Music'",
|
||||||
"settings.option.connectivity.discordRPC.clearOnPause": "暫停時清除 Discord 狀態", // Toggle
|
"settings.option.connectivity.discordRPC.clearOnPause": "暫停時清除 Discord 狀態", // Toggle
|
||||||
"settings.option.connectivity.lastfmScrobble": "LastFM Scrobbling 記錄", // Option to Connect
|
"settings.option.connectivity.lastfmScrobble": "Last.FM Scrobbling 記錄", // Option to Connect
|
||||||
"settings.option.connectivity.lastfmScrobble.delay": "LastFM Scrobble 延遲 (%)",
|
"settings.option.connectivity.lastfmScrobble.delay": "Last.FM Scrobble 延遲 (%)",
|
||||||
"settings.option.connectivity.lastfmScrobble.nowPlaying": "啟用 LastFM 正在播放",
|
"settings.option.connectivity.lastfmScrobble.nowPlaying": "啟用 Last.FM 正在播放",
|
||||||
"settings.option.connectivity.lastfmScrobble.removeFeatured": "從歌名中移除藝人推薦 (LastFM)",
|
"settings.option.connectivity.lastfmScrobble.removeFeatured": "從歌名中移除藝人推薦 (Last.FM)",
|
||||||
"settings.option.connectivity.lastfmScrobble.filterLoop": "Filter looped track (LastFM)",
|
"settings.option.connectivity.lastfmScrobble.filterLoop": "Filter looped track (Last.FM)",
|
||||||
// Refer to term.connect for the connect button
|
// Refer to term.connect for the connect button
|
||||||
|
|
||||||
// Settings - Experimental
|
// Settings - Experimental
|
||||||
"settings.header.experimental": "實驗性功能",
|
"settings.header.experimental": "實驗性功能",
|
||||||
"settings.header.experimental.description": "調整Cider嘅實驗性功能",
|
"settings.header.experimental.description": "調整Cider嘅實驗性功能",
|
||||||
"settings.option.experimental.compactUI": "逼啲既 UI", // Toggle
|
"settings.option.experimental.compactUI": "逼啲既 UI", // Toggle
|
||||||
"settings.option.experimental.closeButtonBehaviour": "關閉按鈕行為",
|
"settings.option.experimental.close_button_hide": "㩒交叉制嚟隱藏 Cider",
|
||||||
"settings.option.experimental.closeButtonBehaviour.quit": "熄左Cider佢",
|
"settings.option.experimental.copy_log": "將log複製喺剪貼簿",
|
||||||
"settings.option.experimental.closeButtonBehaviour.minimizeTaskbar": "收埋Cider喺工作列",
|
//"settings.option.experimental.inline_playlists": "Inline Playlists and Albums",
|
||||||
"settings.option.experimental.closeButtonBehaviour.minimizeTray": "收埋Cider喺系統托盤",
|
|
||||||
// Refer to term.disabled & term.enabled
|
|
||||||
|
|
||||||
|
// Refer to term.disabled & term.enabled
|
||||||
// Spatialization Menu
|
// Spatialization Menu
|
||||||
"spatial.spatialProperties" : "空間音訊屬性",
|
"spatial.notTurnedOn": "唔該喺設定入面啟用左空間音訊先。",
|
||||||
"spatial.width" : "幾闊",
|
"spatial.spatialProperties": "空間音訊屬性",
|
||||||
"spatial.height" : "幾高",
|
"spatial.width": "幾闊",
|
||||||
"spatial.depth" : "幾深",
|
"spatial.height": "幾高",
|
||||||
"spatial.gain" : "增益",
|
"spatial.depth": "幾深",
|
||||||
"spatial.roomMaterials" : "空間材質",
|
"spatial.gain": "增益",
|
||||||
"spatial.roomDimensions" : "空間大小",
|
"spatial.roomMaterials": "空間材質",
|
||||||
"spatial.roomPositions" : "空間位置",
|
"spatial.roomDimensions": "空間大小",
|
||||||
"spatial.setDimensions" : "大小設定",
|
"spatial.roomPositions": "空間位置",
|
||||||
"spatial.setPositions" : "位置設定",
|
"spatial.setDimensions": "大小設定",
|
||||||
"spatial.up" : "上面",
|
"spatial.setPositions": "位置設定",
|
||||||
"spatial.front" : "前面",
|
"spatial.up": "上面",
|
||||||
"spatial.left" : "左邊",
|
"spatial.front": "前面",
|
||||||
"spatial.right" : "右邊",
|
"spatial.left": "左邊",
|
||||||
"spatial.back" : "後面",
|
"spatial.right": "右邊",
|
||||||
"spatial.down" : "下面",
|
"spatial.back": "後面",
|
||||||
"spatial.listener" : "觀眾",
|
"spatial.down": "下面",
|
||||||
"spatial.audioSource" : "音源",
|
"spatial.listener": "觀眾",
|
||||||
|
"spatial.audioSource": "音源",
|
||||||
|
|
||||||
// Settings - Unfinished
|
// Settings - Unfinished
|
||||||
"settings.header.unfinished": "未搞掂",
|
"settings.header.unfinished": "未搞掂",
|
||||||
|
|
|
@ -1,6 +1,8 @@
|
||||||
import {app, Menu, nativeImage, Tray} from 'electron';
|
import {app, Menu, nativeImage, Tray, ipcMain, clipboard, shell} from 'electron';
|
||||||
|
import {readFileSync} from "fs";
|
||||||
import * as path from 'path';
|
import * as path from 'path';
|
||||||
import {utils} from './utils'
|
import * as log from 'electron-log';
|
||||||
|
import {utils} from './utils';
|
||||||
|
|
||||||
export class AppEvents {
|
export class AppEvents {
|
||||||
private protocols: string[] = [
|
private protocols: string[] = [
|
||||||
|
@ -24,6 +26,7 @@ export class AppEvents {
|
||||||
* @returns {void}
|
* @returns {void}
|
||||||
*/
|
*/
|
||||||
private start(): void {
|
private start(): void {
|
||||||
|
AppEvents.initLogging()
|
||||||
console.info('[AppEvents] App started');
|
console.info('[AppEvents] App started');
|
||||||
|
|
||||||
/**********************************************************************************************************************
|
/**********************************************************************************************************************
|
||||||
|
@ -169,6 +172,18 @@ export class AppEvents {
|
||||||
let url = arg.split('//')[1]
|
let url = arg.split('//')[1]
|
||||||
console.warn(`[LinkHandler] Attempting to load url: ${url}`);
|
console.warn(`[LinkHandler] Attempting to load url: ${url}`);
|
||||||
utils.getWindow().webContents.send('play', 'url', url)
|
utils.getWindow().webContents.send('play', 'url', url)
|
||||||
|
} else if (arg.includes('/debug/appdata')) {
|
||||||
|
shell.openPath(app.getPath('userData'))
|
||||||
|
} else if (arg.includes('/debug/logs')) {
|
||||||
|
shell.openPath(app.getPath('logs'))
|
||||||
|
} else if (arg.includes('/discord')) {
|
||||||
|
shell.openExternal('https://discord.gg/applemusic')
|
||||||
|
} else if (arg.includes('/github')) {
|
||||||
|
shell.openExternal('https://github.com/ciderapp/cider')
|
||||||
|
} else if (arg.includes('/donate')) {
|
||||||
|
shell.openExternal('https://opencollective.com/ciderapp')
|
||||||
|
} else if (arg.includes('/beep')) {
|
||||||
|
shell.beep()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -264,7 +279,7 @@ export class AppEvents {
|
||||||
|
|
||||||
const menu = Menu.buildFromTemplate([
|
const menu = Menu.buildFromTemplate([
|
||||||
{
|
{
|
||||||
label: (visible ? this.i18n['action.tray.minimize'] : this.i18n['action.tray.show'].includes("{appName}") ? `${this.i18n['action.tray.show'].replace("{appName}", app.getName())}` : `${this.i18n['action.tray.show']} ${app.getName()}`),
|
label: (visible ? this.i18n['action.tray.minimize'] : `${this.i18n['action.tray.show']} ${app.getName()}`),
|
||||||
click: () => {
|
click: () => {
|
||||||
if (utils.getWindow()) {
|
if (utils.getWindow()) {
|
||||||
if (visible) {
|
if (visible) {
|
||||||
|
@ -284,4 +299,18 @@ export class AppEvents {
|
||||||
])
|
])
|
||||||
this.tray.setContextMenu(menu)
|
this.tray.setContextMenu(menu)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Initializes logging in the application
|
||||||
|
* @private
|
||||||
|
*/
|
||||||
|
private static initLogging() {
|
||||||
|
log.transports.console.format = '[{h}:{i}:{s}.{ms}] [{level}] {text}';
|
||||||
|
Object.assign(console, log.functions);
|
||||||
|
|
||||||
|
ipcMain.on('fetch-log', (_event) => {
|
||||||
|
const data = readFileSync(log.transports.file.getFile().path, {encoding: 'utf8', flag: 'r'});
|
||||||
|
clipboard.writeText(data)
|
||||||
|
})
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,31 +1,24 @@
|
||||||
import * as path from "path";
|
import {join} from "path";
|
||||||
import {app, BrowserWindow as bw, ipcMain, shell} from "electron";
|
import {app, BrowserWindow as bw, ipcMain, ShareMenu, shell} from "electron";
|
||||||
import * as windowStateKeeper from "electron-window-state";
|
import * as windowStateKeeper from "electron-window-state";
|
||||||
import * as express from "express";
|
import * as express from "express";
|
||||||
import * as getPort from "get-port";
|
import * as getPort from "get-port";
|
||||||
import * as yt from "youtube-search-without-api-key";
|
import {search} from "youtube-search-without-api-key";
|
||||||
import * as fs from "fs";
|
import {existsSync, mkdirSync, readdirSync, readFileSync, writeFileSync} from "fs";
|
||||||
import {Stream} from "stream";
|
import {Stream} from "stream";
|
||||||
import * as qrcode from "qrcode-terminal";
|
import {networkInterfaces} from "os";
|
||||||
import * as os from "os";
|
|
||||||
import * as mm from 'music-metadata';
|
import * as mm from 'music-metadata';
|
||||||
import fetch from 'electron-fetch'
|
import fetch from 'electron-fetch'
|
||||||
import {wsapi} from "./wsapi";
|
import {wsapi} from "./wsapi";
|
||||||
import {jsonc} from "jsonc";
|
import {jsonc} from "jsonc";
|
||||||
import {NsisUpdater} from "electron-updater";
|
import {AppImageUpdater, NsisUpdater} from "electron-updater";
|
||||||
import {utils} from './utils'
|
import {utils} from './utils';
|
||||||
|
|
||||||
|
|
||||||
export class BrowserWindow {
|
export class BrowserWindow {
|
||||||
public static win: any | undefined = null;
|
public static win: any | undefined = null;
|
||||||
private devMode: boolean = !app.isPackaged;
|
private devMode: boolean = !app.isPackaged;
|
||||||
|
|
||||||
private paths: any = {
|
|
||||||
srcPath: path.join(__dirname, "../../src"),
|
|
||||||
resourcePath: path.join(__dirname, "../../resources"),
|
|
||||||
ciderCache: path.resolve(app.getPath("userData"), "CiderCache"),
|
|
||||||
themes: path.resolve(app.getPath("userData"), "Themes"),
|
|
||||||
plugins: path.resolve(app.getPath("userData"), "Plugins"),
|
|
||||||
};
|
|
||||||
private audioStream: any = new Stream.PassThrough();
|
private audioStream: any = new Stream.PassThrough();
|
||||||
private clientPort: number = 0;
|
private clientPort: number = 0;
|
||||||
private remotePort: number = 6942;
|
private remotePort: number = 6942;
|
||||||
|
@ -33,11 +26,55 @@ export class BrowserWindow {
|
||||||
env: {
|
env: {
|
||||||
platform: process.platform,
|
platform: process.platform,
|
||||||
dev: app.isPackaged,
|
dev: app.isPackaged,
|
||||||
|
components: [
|
||||||
|
"pages/podcasts",
|
||||||
|
"pages/apple-account-settings",
|
||||||
|
"pages/library-songs",
|
||||||
|
"pages/browse",
|
||||||
|
"pages/settings",
|
||||||
|
"pages/listen_now",
|
||||||
|
"pages/home",
|
||||||
|
"pages/artist-feed",
|
||||||
|
"pages/cider-playlist",
|
||||||
|
"pages/playlist-inline",
|
||||||
|
"pages/recordLabel",
|
||||||
|
"pages/collection-list",
|
||||||
|
"pages/apple-curator",
|
||||||
|
"pages/artist",
|
||||||
|
"pages/search",
|
||||||
|
"pages/about",
|
||||||
|
"pages/library-videos",
|
||||||
|
"components/mediaitem-artwork",
|
||||||
|
"components/artwork-material",
|
||||||
|
"components/menu-panel",
|
||||||
|
"components/sidebar-playlist",
|
||||||
|
"components/spatial-properties",
|
||||||
|
"components/audio-settings",
|
||||||
|
"components/qrcode-modal",
|
||||||
|
"components/equalizer",
|
||||||
|
"components/add-to-playlist",
|
||||||
|
"components/queue",
|
||||||
|
"components/mediaitem-scroller-horizontal",
|
||||||
|
"components/mediaitem-scroller-horizontal-large",
|
||||||
|
"components/mediaitem-scroller-horizontal-sp",
|
||||||
|
"components/mediaitem-scroller-horizontal-mvview",
|
||||||
|
"components/mediaitem-list-item",
|
||||||
|
"components/mediaitem-hrect",
|
||||||
|
"components/mediaitem-square",
|
||||||
|
"components/mediaitem-mvview",
|
||||||
|
"components/libraryartist-item",
|
||||||
|
"components/listennow-child",
|
||||||
|
"components/mediaitem-mvview-sp",
|
||||||
|
"components/animatedartwork-view",
|
||||||
|
"components/lyrics-view",
|
||||||
|
"components/fullscreen",
|
||||||
|
"components/miniplayer",
|
||||||
|
]
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
private options: any = {
|
private options: any = {
|
||||||
icon: path.join(
|
icon: join(
|
||||||
this.paths.resourcePath,
|
utils.getPath('resourcePath'),
|
||||||
`icons/icon.` + (process.platform === "win32" ? "ico" : "png")
|
`icons/icon.` + (process.platform === "win32" ? "ico" : "png")
|
||||||
),
|
),
|
||||||
width: 1024,
|
width: 1024,
|
||||||
|
@ -48,11 +85,13 @@ export class BrowserWindow {
|
||||||
minHeight: 390,
|
minHeight: 390,
|
||||||
frame: false,
|
frame: false,
|
||||||
title: "Cider",
|
title: "Cider",
|
||||||
vibrancy: "dark",
|
vibrancy: "fullscreen-ui",
|
||||||
transparent: process.platform === "darwin",
|
transparent: process.platform === "darwin",
|
||||||
hasShadow: false,
|
hasShadow: false,
|
||||||
show: false,
|
show: false,
|
||||||
backgroundColor: "#1E1E1E",
|
backgroundColor: "#1E1E1E",
|
||||||
|
titleBarStyle: 'hidden',
|
||||||
|
trafficLightPosition: {x: 15, y: 20},
|
||||||
webPreferences: {
|
webPreferences: {
|
||||||
nodeIntegration: true,
|
nodeIntegration: true,
|
||||||
sandbox: true,
|
sandbox: true,
|
||||||
|
@ -62,7 +101,7 @@ export class BrowserWindow {
|
||||||
plugins: true,
|
plugins: true,
|
||||||
nodeIntegrationInWorker: false,
|
nodeIntegrationInWorker: false,
|
||||||
webSecurity: false,
|
webSecurity: false,
|
||||||
preload: path.join(this.paths.srcPath, "./preload/cider-preload.js"),
|
preload: join(utils.getPath('srcPath'), "./preload/cider-preload.js"),
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -71,7 +110,7 @@ export class BrowserWindow {
|
||||||
*/
|
*/
|
||||||
async createWindow(): Promise<Electron.BrowserWindow> {
|
async createWindow(): Promise<Electron.BrowserWindow> {
|
||||||
this.clientPort = await getPort({port: 9000});
|
this.clientPort = await getPort({port: 9000});
|
||||||
this.verifyFiles();
|
BrowserWindow.verifyFiles();
|
||||||
|
|
||||||
// Load the previous state with fallback to defaults
|
// Load the previous state with fallback to defaults
|
||||||
const windowState = windowStateKeeper({
|
const windowState = windowStateKeeper({
|
||||||
|
@ -101,7 +140,7 @@ export class BrowserWindow {
|
||||||
/**
|
/**
|
||||||
* Verifies the files for the renderer to use (Cache, library info, etc.)
|
* Verifies the files for the renderer to use (Cache, library info, etc.)
|
||||||
*/
|
*/
|
||||||
private verifyFiles(): void {
|
private static verifyFiles(): void {
|
||||||
const expectedDirectories = ["CiderCache"];
|
const expectedDirectories = ["CiderCache"];
|
||||||
const expectedFiles = [
|
const expectedFiles = [
|
||||||
"library-songs.json",
|
"library-songs.json",
|
||||||
|
@ -112,19 +151,19 @@ export class BrowserWindow {
|
||||||
];
|
];
|
||||||
for (let i = 0; i < expectedDirectories.length; i++) {
|
for (let i = 0; i < expectedDirectories.length; i++) {
|
||||||
if (
|
if (
|
||||||
!fs.existsSync(
|
!existsSync(
|
||||||
path.join(app.getPath("userData"), expectedDirectories[i])
|
join(app.getPath("userData"), expectedDirectories[i])
|
||||||
)
|
)
|
||||||
) {
|
) {
|
||||||
fs.mkdirSync(
|
mkdirSync(
|
||||||
path.join(app.getPath("userData"), expectedDirectories[i])
|
join(app.getPath("userData"), expectedDirectories[i])
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for (let i = 0; i < expectedFiles.length; i++) {
|
for (let i = 0; i < expectedFiles.length; i++) {
|
||||||
const file = path.join(this.paths.ciderCache, expectedFiles[i]);
|
const file = join(utils.getPath('ciderCache'), expectedFiles[i]);
|
||||||
if (!fs.existsSync(file)) {
|
if (!existsSync(file)) {
|
||||||
fs.writeFileSync(file, JSON.stringify([]));
|
writeFileSync(file, JSON.stringify([]));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -135,8 +174,8 @@ export class BrowserWindow {
|
||||||
private startWebServer(): void {
|
private startWebServer(): void {
|
||||||
const app = express();
|
const app = express();
|
||||||
|
|
||||||
app.use(express.static(path.join(this.paths.srcPath, "./renderer/")));
|
app.use(express.static(join(utils.getPath('srcPath'), "./renderer/")));
|
||||||
app.set("views", path.join(this.paths.srcPath, "./renderer/views"));
|
app.set("views", join(utils.getPath('srcPath'), "./renderer/views"));
|
||||||
app.set("view engine", "ejs");
|
app.set("view engine", "ejs");
|
||||||
let firstRequest = true;
|
let firstRequest = true;
|
||||||
app.use((req, res, next) => {
|
app.use((req, res, next) => {
|
||||||
|
@ -155,6 +194,53 @@ export class BrowserWindow {
|
||||||
res.render("main", this.EnvironmentVariables);
|
res.render("main", this.EnvironmentVariables);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
app.get("/api/playback/:action", (req, res) => {
|
||||||
|
const action = req.params.action;
|
||||||
|
switch (action) {
|
||||||
|
case "playpause":
|
||||||
|
BrowserWindow.win.webContents.executeJavaScript("wsapi.togglePlayPause()")
|
||||||
|
res.send("Play/Pause toggle")
|
||||||
|
break;
|
||||||
|
case "play":
|
||||||
|
BrowserWindow.win.webContents.executeJavaScript("MusicKit.getInstance().play()")
|
||||||
|
res.send("Playing")
|
||||||
|
break;
|
||||||
|
case "pause":
|
||||||
|
BrowserWindow.win.webContents.executeJavaScript("MusicKit.getInstance().pause()")
|
||||||
|
res.send("Paused")
|
||||||
|
break;
|
||||||
|
case "stop":
|
||||||
|
BrowserWindow.win.webContents.executeJavaScript("MusicKit.getInstance().stop()")
|
||||||
|
res.send("Stopped")
|
||||||
|
break;
|
||||||
|
case "next":
|
||||||
|
BrowserWindow.win.webContents.executeJavaScript("MusicKit.getInstance().skipToNextItem()")
|
||||||
|
res.send("Next")
|
||||||
|
break;
|
||||||
|
case "previous":
|
||||||
|
BrowserWindow.win.webContents.executeJavaScript("MusicKit.getInstance().skipToPreviousItem()")
|
||||||
|
res.send("Previous")
|
||||||
|
break;
|
||||||
|
default: {
|
||||||
|
res.send("Invalid action")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
app.get("/themes/:theme", (req, res) => {
|
||||||
|
const theme = req.params.theme.toLowerCase();
|
||||||
|
const themePath = join(utils.getPath('srcPath'), "./renderer/themes/", theme);
|
||||||
|
const userThemePath = join(utils.getPath('themes'), theme);
|
||||||
|
if (existsSync(userThemePath)) {
|
||||||
|
res.sendFile(userThemePath);
|
||||||
|
} else if (existsSync(themePath)) {
|
||||||
|
res.sendFile(themePath);
|
||||||
|
} else {
|
||||||
|
res.send(`// Theme not found - ${userThemePath}`);
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
app.get("/audio.webm", (req, res) => {
|
app.get("/audio.webm", (req, res) => {
|
||||||
try {
|
try {
|
||||||
req.socket.setTimeout(Number.MAX_SAFE_INTEGER);
|
req.socket.setTimeout(Number.MAX_SAFE_INTEGER);
|
||||||
|
@ -183,13 +269,12 @@ export class BrowserWindow {
|
||||||
});
|
});
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Remote Client (I had no idea how to add it to our existing express server, so I just made another one) -@quacksire
|
* Remote Client -@quacksire
|
||||||
* TODO: Broadcast the remote so that /web-remote/ can connect
|
* https://github.com/ciderapp/Apple-Music-Electron/blob/818189ed40ff600d76eb59d22016723a75885cd5/resources/functions/handler.js#L1173
|
||||||
* https://github.com/ciderapp/Apple-Music-Electron/blob/818ed18940ff600d76eb59d22016723a75885cd5/resources/functions/handler.js#L1173
|
|
||||||
*/
|
*/
|
||||||
const remote = express();
|
const remote = express();
|
||||||
remote.use(express.static(path.join(this.paths.srcPath, "./web-remote/")))
|
remote.use(express.static(join(utils.getPath('srcPath'), "./web-remote/")))
|
||||||
remote.set("views", path.join(this.paths.srcPath, "./web-remote/views"));
|
remote.set("views", join(utils.getPath('srcPath'), "./web-remote/views"));
|
||||||
remote.set("view engine", "ejs");
|
remote.set("view engine", "ejs");
|
||||||
getPort({port: 6942}).then((port) => {
|
getPort({port: 6942}).then((port) => {
|
||||||
this.remotePort = port;
|
this.remotePort = port;
|
||||||
|
@ -197,17 +282,6 @@ export class BrowserWindow {
|
||||||
this.broadcastRemote()
|
this.broadcastRemote()
|
||||||
remote.listen(this.remotePort, () => {
|
remote.listen(this.remotePort, () => {
|
||||||
console.log(`Cider remote port: ${this.remotePort}`);
|
console.log(`Cider remote port: ${this.remotePort}`);
|
||||||
if (firstRequest) {
|
|
||||||
console.log("---- Ignore Me ;) ---");
|
|
||||||
qrcode.generate(`http://${os.hostname}:${this.remotePort}`);
|
|
||||||
console.log("---- Ignore Me ;) ---");
|
|
||||||
/*
|
|
||||||
*
|
|
||||||
* USING https://www.npmjs.com/package/qrcode-terminal for terminal
|
|
||||||
* WE SHOULD USE https://www.npmjs.com/package/qrcode for the remote (or others) for showing to user via an in-app dialog
|
|
||||||
* -@quacksire
|
|
||||||
*/
|
|
||||||
}
|
|
||||||
firstRequest = false;
|
firstRequest = false;
|
||||||
})
|
})
|
||||||
remote.get("/", (_req, res) => {
|
remote.get("/", (_req, res) => {
|
||||||
|
@ -281,16 +355,24 @@ export class BrowserWindow {
|
||||||
event.returnValue = process.platform;
|
event.returnValue = process.platform;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
ipcMain.on("get-themes", (event, _key) => {
|
||||||
|
if (existsSync(utils.getPath("themes"))) {
|
||||||
|
event.returnValue = readdirSync(utils.getPath("themes"));
|
||||||
|
} else {
|
||||||
|
event.returnValue = [];
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
ipcMain.on("get-i18n", (event, key) => {
|
ipcMain.on("get-i18n", (event, key) => {
|
||||||
event.returnValue = utils.getLocale(key);
|
event.returnValue = utils.getLocale(key);
|
||||||
});
|
});
|
||||||
|
|
||||||
ipcMain.on("get-i18n-listing", event => {
|
ipcMain.on("get-i18n-listing", event => {
|
||||||
let i18nFiles = fs.readdirSync(path.join(__dirname, "../../src/i18n")).filter(file => file.endsWith(".jsonc"));
|
let i18nFiles = readdirSync(join(__dirname, "../../src/i18n")).filter(file => file.endsWith(".jsonc"));
|
||||||
// read all the files and parse them
|
// read all the files and parse them
|
||||||
let i18nListing = []
|
let i18nListing = []
|
||||||
for (let i = 0; i < i18nFiles.length; i++) {
|
for (let i = 0; i < i18nFiles.length; i++) {
|
||||||
const i18n: { [index: string]: Object } = jsonc.parse(fs.readFileSync(path.join(__dirname, `../../src/i18n/${i18nFiles[i]}`), "utf8"));
|
const i18n: { [index: string]: Object } = jsonc.parse(readFileSync(join(__dirname, `../../src/i18n/${i18nFiles[i]}`), "utf8"));
|
||||||
i18nListing.push({
|
i18nListing.push({
|
||||||
"code": i18nFiles[i].replace(".jsonc", ""),
|
"code": i18nFiles[i].replace(".jsonc", ""),
|
||||||
"nameNative": i18n["i18n.languageName"] ?? i18nFiles[i].replace(".jsonc", ""),
|
"nameNative": i18n["i18n.languageName"] ?? i18nFiles[i].replace(".jsonc", ""),
|
||||||
|
@ -311,75 +393,75 @@ export class BrowserWindow {
|
||||||
});
|
});
|
||||||
|
|
||||||
ipcMain.on("put-library-songs", (_event, arg) => {
|
ipcMain.on("put-library-songs", (_event, arg) => {
|
||||||
fs.writeFileSync(
|
writeFileSync(
|
||||||
path.join(this.paths.ciderCache, "library-songs.json"),
|
join(utils.getPath('ciderCache'), "library-songs.json"),
|
||||||
JSON.stringify(arg)
|
JSON.stringify(arg)
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
ipcMain.on("put-library-artists", (_event, arg) => {
|
ipcMain.on("put-library-artists", (_event, arg) => {
|
||||||
fs.writeFileSync(
|
writeFileSync(
|
||||||
path.join(this.paths.ciderCache, "library-artists.json"),
|
join(utils.getPath('ciderCache'), "library-artists.json"),
|
||||||
JSON.stringify(arg)
|
JSON.stringify(arg)
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
ipcMain.on("put-library-albums", (_event, arg) => {
|
ipcMain.on("put-library-albums", (_event, arg) => {
|
||||||
fs.writeFileSync(
|
writeFileSync(
|
||||||
path.join(this.paths.ciderCache, "library-albums.json"),
|
join(utils.getPath('ciderCache'), "library-albums.json"),
|
||||||
JSON.stringify(arg)
|
JSON.stringify(arg)
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
ipcMain.on("put-library-playlists", (_event, arg) => {
|
ipcMain.on("put-library-playlists", (_event, arg) => {
|
||||||
fs.writeFileSync(
|
writeFileSync(
|
||||||
path.join(this.paths.ciderCache, "library-playlists.json"),
|
join(utils.getPath('ciderCache'), "library-playlists.json"),
|
||||||
JSON.stringify(arg)
|
JSON.stringify(arg)
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
ipcMain.on("put-library-recentlyAdded", (_event, arg) => {
|
ipcMain.on("put-library-recentlyAdded", (_event, arg) => {
|
||||||
fs.writeFileSync(
|
writeFileSync(
|
||||||
path.join(this.paths.ciderCache, "library-recentlyAdded.json"),
|
join(utils.getPath('ciderCache'), "library-recentlyAdded.json"),
|
||||||
JSON.stringify(arg)
|
JSON.stringify(arg)
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
ipcMain.on("get-library-songs", (event) => {
|
ipcMain.on("get-library-songs", (event) => {
|
||||||
let librarySongs = fs.readFileSync(
|
let librarySongs = readFileSync(
|
||||||
path.join(this.paths.ciderCache, "library-songs.json"),
|
join(utils.getPath('ciderCache'), "library-songs.json"),
|
||||||
"utf8"
|
"utf8"
|
||||||
);
|
);
|
||||||
event.returnValue = JSON.parse(librarySongs);
|
event.returnValue = JSON.parse(librarySongs);
|
||||||
});
|
});
|
||||||
|
|
||||||
ipcMain.on("get-library-artists", (event) => {
|
ipcMain.on("get-library-artists", (event) => {
|
||||||
let libraryArtists = fs.readFileSync(
|
let libraryArtists = readFileSync(
|
||||||
path.join(this.paths.ciderCache, "library-artists.json"),
|
join(utils.getPath('ciderCache'), "library-artists.json"),
|
||||||
"utf8"
|
"utf8"
|
||||||
);
|
);
|
||||||
event.returnValue = JSON.parse(libraryArtists);
|
event.returnValue = JSON.parse(libraryArtists);
|
||||||
});
|
});
|
||||||
|
|
||||||
ipcMain.on("get-library-albums", (event) => {
|
ipcMain.on("get-library-albums", (event) => {
|
||||||
let libraryAlbums = fs.readFileSync(
|
let libraryAlbums = readFileSync(
|
||||||
path.join(this.paths.ciderCache, "library-albums.json"),
|
join(utils.getPath('ciderCache'), "library-albums.json"),
|
||||||
"utf8"
|
"utf8"
|
||||||
);
|
);
|
||||||
event.returnValue = JSON.parse(libraryAlbums);
|
event.returnValue = JSON.parse(libraryAlbums);
|
||||||
});
|
});
|
||||||
|
|
||||||
ipcMain.on("get-library-playlists", (event) => {
|
ipcMain.on("get-library-playlists", (event) => {
|
||||||
let libraryPlaylists = fs.readFileSync(
|
let libraryPlaylists = readFileSync(
|
||||||
path.join(this.paths.ciderCache, "library-playlists.json"),
|
join(utils.getPath('ciderCache'), "library-playlists.json"),
|
||||||
"utf8"
|
"utf8"
|
||||||
);
|
);
|
||||||
event.returnValue = JSON.parse(libraryPlaylists);
|
event.returnValue = JSON.parse(libraryPlaylists);
|
||||||
});
|
});
|
||||||
|
|
||||||
ipcMain.on("get-library-recentlyAdded", (event) => {
|
ipcMain.on("get-library-recentlyAdded", (event) => {
|
||||||
let libraryRecentlyAdded = fs.readFileSync(
|
let libraryRecentlyAdded = readFileSync(
|
||||||
path.join(this.paths.ciderCache, "library-recentlyAdded.json"),
|
join(utils.getPath('ciderCache'), "library-recentlyAdded.json"),
|
||||||
"utf8"
|
"utf8"
|
||||||
);
|
);
|
||||||
event.returnValue = JSON.parse(libraryRecentlyAdded);
|
event.returnValue = JSON.parse(libraryRecentlyAdded);
|
||||||
|
@ -387,14 +469,14 @@ export class BrowserWindow {
|
||||||
|
|
||||||
ipcMain.handle("getYTLyrics", async (_event, track, artist) => {
|
ipcMain.handle("getYTLyrics", async (_event, track, artist) => {
|
||||||
const u = track + " " + artist + " official video";
|
const u = track + " " + artist + " official video";
|
||||||
return await yt.search(u);
|
return await search(u);
|
||||||
});
|
});
|
||||||
|
|
||||||
ipcMain.on("close", () => {
|
ipcMain.on("close", (_event) => {
|
||||||
BrowserWindow.win.close();
|
BrowserWindow.win.close();
|
||||||
});
|
});
|
||||||
|
|
||||||
ipcMain.on("maximize", () => {
|
ipcMain.on("maximize", (_event) => {
|
||||||
// listen for maximize event
|
// listen for maximize event
|
||||||
if (BrowserWindow.win.isMaximized()) {
|
if (BrowserWindow.win.isMaximized()) {
|
||||||
BrowserWindow.win.unmaximize();
|
BrowserWindow.win.unmaximize();
|
||||||
|
@ -443,18 +525,27 @@ export class BrowserWindow {
|
||||||
|
|
||||||
ipcMain.on('play', (_event, type, id) => {
|
ipcMain.on('play', (_event, type, id) => {
|
||||||
BrowserWindow.win.webContents.executeJavaScript(`
|
BrowserWindow.win.webContents.executeJavaScript(`
|
||||||
MusicKit.getInstance().setQueue({ ${type}: '${id}'}).then(function(queue) {
|
MusicKit.getInstance().setQueue({ ${type}: '${id}'}).then(function(queue) {
|
||||||
MusicKit.getInstance().play();
|
MusicKit.getInstance().play();
|
||||||
});
|
});
|
||||||
`)
|
`)
|
||||||
})
|
});
|
||||||
|
|
||||||
//QR Code
|
//QR Code
|
||||||
ipcMain.handle('showQR', async (event, _) => {
|
ipcMain.handle('showQR', async (_event, _) => {
|
||||||
let url = `http://${BrowserWindow.getIP()}:${this.remotePort}`;
|
let url = `http://${BrowserWindow.getIP()}:${this.remotePort}`;
|
||||||
shell.openExternal(`https://cider.sh/pair-remote?url=${Buffer.from(encodeURI(url)).toString('base64')}`).catch(console.error);
|
shell.openExternal(`https://cider.sh/pair-remote?url=${Buffer.from(encodeURI(url)).toString('base64')}`).catch(console.error);
|
||||||
})
|
});
|
||||||
|
|
||||||
|
ipcMain.on('get-remote-pair-url', (_event, _) => {
|
||||||
|
let url = `http://${BrowserWindow.getIP()}:${this.remotePort}`;
|
||||||
|
BrowserWindow.win.webContents.send('send-remote-pair-url', url);
|
||||||
|
});
|
||||||
|
if (process.platform === "darwin") {
|
||||||
|
app.setUserActivity('com.CiderCollective.remote.pair', {
|
||||||
|
ip: `${BrowserWindow.getIP()}`
|
||||||
|
}, `http://${BrowserWindow.getIP()}:${this.remotePort}`);
|
||||||
|
}
|
||||||
// Get previews for normalization
|
// Get previews for normalization
|
||||||
ipcMain.on("getPreviewURL", (_event, url) => {
|
ipcMain.on("getPreviewURL", (_event, url) => {
|
||||||
|
|
||||||
|
@ -466,19 +557,49 @@ export class BrowserWindow {
|
||||||
console.log('sc', SoundCheckTag)
|
console.log('sc', SoundCheckTag)
|
||||||
BrowserWindow.win.webContents.send('SoundCheckTag', SoundCheckTag)
|
BrowserWindow.win.webContents.send('SoundCheckTag', SoundCheckTag)
|
||||||
}).catch(err => {
|
}).catch(err => {
|
||||||
console.log(err)
|
console.log(err)
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
ipcMain.on('check-for-update', async (_event, url) => {
|
ipcMain.on('check-for-update', async (_event) => {
|
||||||
|
const branch = utils.getStoreValue('general.update_branch')
|
||||||
|
let latestbranch = await fetch(`https://circleci.com/api/v1.1/project/gh/ciderapp/Cider/latest/artifacts?branch=${branch}&filter=successful`)
|
||||||
|
if (latestbranch.status != 200) {
|
||||||
|
console.log(`Error fetching latest artifact from the **${branch}** branch`)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
let latestbranchjson = await latestbranch.json()
|
||||||
|
let base_url = latestbranchjson[0].url
|
||||||
|
base_url = base_url.substr(0, base_url.lastIndexOf('/'))
|
||||||
|
|
||||||
const options: any = {
|
const options: any = {
|
||||||
provider: 'generic',
|
provider: 'generic',
|
||||||
url: 'https://43-429851205-gh.circle-artifacts.com/0/%7E/Cider/dist/artifacts' //Base URL
|
url: `${base_url}`
|
||||||
}
|
}
|
||||||
const autoUpdater = new NsisUpdater(options) //Windows Only (for now) -q
|
/*
|
||||||
await autoUpdater.checkForUpdatesAndNotify()
|
* Have to handle the auto updaters seperatly until we can support macOS. electron-builder limitation -q
|
||||||
|
*/
|
||||||
|
const win_autoUpdater = new NsisUpdater(options) //Windows
|
||||||
|
const linux_autoUpdater = new AppImageUpdater(options) //Linux
|
||||||
|
await win_autoUpdater.checkForUpdatesAndNotify()
|
||||||
|
await linux_autoUpdater.checkForUpdatesAndNotify()
|
||||||
|
});
|
||||||
|
|
||||||
|
ipcMain.on('share-menu', async (_event, url) => {
|
||||||
|
if (process.platform != 'darwin') return;
|
||||||
|
//https://www.electronjs.org/docs/latest/api/share-menu
|
||||||
|
console.log('[Share Sheet - App.ts]', url)
|
||||||
|
const options = {
|
||||||
|
title: 'Share',
|
||||||
|
urls: [url]
|
||||||
|
};
|
||||||
|
// @ts-ignore
|
||||||
|
const shareMenu = new ShareMenu(options);
|
||||||
|
shareMenu.popup();
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
/* *********************************************************************************************
|
/* *********************************************************************************************
|
||||||
* Window Events
|
* Window Events
|
||||||
* **********************************************************************************************/
|
* **********************************************************************************************/
|
||||||
|
@ -545,10 +666,14 @@ export class BrowserWindow {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets ip
|
||||||
|
* @private
|
||||||
|
*/
|
||||||
private static getIP(): string {
|
private static getIP(): string {
|
||||||
let ip: string = '';
|
let ip: string = '';
|
||||||
let alias = 0;
|
let alias = 0;
|
||||||
const ifaces: any = os.networkInterfaces();
|
const ifaces: any = networkInterfaces();
|
||||||
for (let dev in ifaces) {
|
for (let dev in ifaces) {
|
||||||
ifaces[dev].forEach((details: any) => {
|
ifaces[dev].forEach((details: any) => {
|
||||||
if (details.family === 'IPv4') {
|
if (details.family === 'IPv4') {
|
||||||
|
|
|
@ -6,12 +6,13 @@ export class Store {
|
||||||
|
|
||||||
private defaults: any = {
|
private defaults: any = {
|
||||||
"general": {
|
"general": {
|
||||||
"close_button_hide": true,
|
"close_button_hide": false,
|
||||||
"open_on_startup": false,
|
"open_on_startup": false,
|
||||||
"discord_rpc": 1, // 0 = disabled, 1 = enabled as Cider, 2 = enabled as Apple Music
|
"discord_rpc": 1, // 0 = disabled, 1 = enabled as Cider, 2 = enabled as Apple Music
|
||||||
"discord_rpc_clear_on_pause": true,
|
"discord_rpc_clear_on_pause": true,
|
||||||
"language": "en_US", // electron.app.getLocale().replace('-', '_') this can be used in future
|
"language": "en_US", // electron.app.getLocale().replace('-', '_') this can be used in future
|
||||||
"playbackNotifications": true
|
"playbackNotifications": true,
|
||||||
|
"update_branch": "main"
|
||||||
},
|
},
|
||||||
"home": {
|
"home": {
|
||||||
"followedArtists": [],
|
"followedArtists": [],
|
||||||
|
@ -26,16 +27,15 @@ export class Store {
|
||||||
},
|
},
|
||||||
"audio": {
|
"audio": {
|
||||||
"volume": 1,
|
"volume": 1,
|
||||||
|
"volumeStep": 0.02,
|
||||||
"lastVolume": 1,
|
"lastVolume": 1,
|
||||||
"muted": false,
|
"muted": false,
|
||||||
"quality": "256",
|
"quality": "HIGH",
|
||||||
"seamless_audio": true,
|
"seamless_audio": true,
|
||||||
"normalization": false,
|
"normalization": false,
|
||||||
|
"ciderPPE": false,
|
||||||
|
"ciderPPE_value": 0.5,
|
||||||
"spatial": false,
|
"spatial": false,
|
||||||
"maxVolume": 1,
|
|
||||||
"volumePrecision": 0.1,
|
|
||||||
"volumeRoundMax": 0.9,
|
|
||||||
"volumeRoundMin": 0.1,
|
|
||||||
"spatial_properties": {
|
"spatial_properties": {
|
||||||
"presets": [],
|
"presets": [],
|
||||||
"gain": 0.8,
|
"gain": 0.8,
|
||||||
|
@ -59,10 +59,9 @@ export class Store {
|
||||||
'preset': "default",
|
'preset': "default",
|
||||||
'frequencies': [32, 63, 125, 250, 500, 1000, 2000, 4000, 8000, 16000],
|
'frequencies': [32, 63, 125, 250, 500, 1000, 2000, 4000, 8000, 16000],
|
||||||
'gain': [0,0,0,0,0,0,0,0,0,0],
|
'gain': [0,0,0,0,0,0,0,0,0,0],
|
||||||
'Q' : [1,1,1,1,1,1,1,1,1,1],
|
'Q': [1,1,1,1,1,1,1,1,1,1],
|
||||||
'preamp' : 0,
|
'mix': 1,
|
||||||
'mix' : 1,
|
'vibrantBass': 0,
|
||||||
'vibrantBass' : 0,
|
|
||||||
'presets': [],
|
'presets': [],
|
||||||
'userGenerated': false
|
'userGenerated': false
|
||||||
},
|
},
|
||||||
|
@ -142,11 +141,11 @@ export class Store {
|
||||||
* IPC Handler
|
* IPC Handler
|
||||||
*/
|
*/
|
||||||
private ipcHandler(): void {
|
private ipcHandler(): void {
|
||||||
electron.ipcMain.handle('getStoreValue', (event, key, defaultValue) => {
|
electron.ipcMain.handle('getStoreValue', (_event, key, defaultValue) => {
|
||||||
return (defaultValue ? Store.cfg.get(key, true) : Store.cfg.get(key));
|
return (defaultValue ? Store.cfg.get(key, true) : Store.cfg.get(key));
|
||||||
});
|
});
|
||||||
|
|
||||||
electron.ipcMain.handle('setStoreValue', (event, key, value) => {
|
electron.ipcMain.handle('setStoreValue', (_event, key, value) => {
|
||||||
Store.cfg.set(key, value);
|
Store.cfg.set(key, value);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -154,7 +153,7 @@ export class Store {
|
||||||
event.returnValue = Store.cfg.store
|
event.returnValue = Store.cfg.store
|
||||||
})
|
})
|
||||||
|
|
||||||
electron.ipcMain.on('setStore', (event, store) => {
|
electron.ipcMain.on('setStore', (_event, store) => {
|
||||||
Store.cfg.store = store
|
Store.cfg.store = store
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,9 +3,33 @@ import * as path from "path";
|
||||||
import {jsonc} from "jsonc";
|
import {jsonc} from "jsonc";
|
||||||
import {Store} from "./store";
|
import {Store} from "./store";
|
||||||
import {BrowserWindow as bw} from "./browserwindow";
|
import {BrowserWindow as bw} from "./browserwindow";
|
||||||
|
import {app} from "electron";
|
||||||
|
|
||||||
export class utils {
|
export class utils {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Paths for the application to use
|
||||||
|
*/
|
||||||
|
private static paths: any = {
|
||||||
|
srcPath: path.join(__dirname, "../../src"),
|
||||||
|
rendererPath: path.join(__dirname, "../../src/renderer"),
|
||||||
|
mainPath: path.join(__dirname, "../../src/main"),
|
||||||
|
resourcePath: path.join(__dirname, "../../resources"),
|
||||||
|
i18nPath: path.join(__dirname, "../../src/i18n"),
|
||||||
|
ciderCache: path.resolve(app.getPath("userData"), "CiderCache"),
|
||||||
|
themes: path.resolve(app.getPath("userData"), "Themes"),
|
||||||
|
plugins: path.resolve(app.getPath("userData"), "Plugins"),
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the path
|
||||||
|
* @returns {string}
|
||||||
|
* @param name
|
||||||
|
*/
|
||||||
|
static getPath(name: string): string {
|
||||||
|
return this.paths[name];
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Fetches the i18n locale for the given language.
|
* Fetches the i18n locale for the given language.
|
||||||
* @param language {string} The language to fetch the locale for.
|
* @param language {string} The language to fetch the locale for.
|
||||||
|
@ -13,10 +37,10 @@ export class utils {
|
||||||
* @returns {string | Object} The locale value.
|
* @returns {string | Object} The locale value.
|
||||||
*/
|
*/
|
||||||
static getLocale(language: string, key?: string): string | object {
|
static getLocale(language: string, key?: string): string | object {
|
||||||
let i18n: { [index: string]: Object } = jsonc.parse(fs.readFileSync(path.join(__dirname, "../../src/i18n/en_US.jsonc"), "utf8"));
|
let i18n: { [index: string]: Object } = jsonc.parse(fs.readFileSync(path.join(this.paths.i18nPath, "en_US.jsonc"), "utf8"));
|
||||||
|
|
||||||
if (language !== "en_US" && fs.existsSync(path.join(__dirname, `../../src/i18n/${language}.jsonc`))) {
|
if (language !== "en_US" && fs.existsSync(path.join(this.paths.i18nPath, `${language}.jsonc`))) {
|
||||||
i18n = Object.assign(i18n, jsonc.parse(fs.readFileSync(path.join(__dirname, `../../src/i18n/${language}.jsonc`), "utf8")));
|
i18n = Object.assign(i18n, jsonc.parse(fs.readFileSync(path.join(this.paths.i18nPath, `${language}.jsonc`), "utf8")));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (key) {
|
if (key) {
|
||||||
|
@ -58,4 +82,25 @@ export class utils {
|
||||||
static getWindow(): Electron.BrowserWindow {
|
static getWindow(): Electron.BrowserWindow {
|
||||||
return bw.win
|
return bw.win
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Playback Functions
|
||||||
|
*/
|
||||||
|
static playback = {
|
||||||
|
pause: () => {
|
||||||
|
bw.win.webContents.executeJavaScript("MusicKitInterop.pause()")
|
||||||
|
},
|
||||||
|
play: () => {
|
||||||
|
bw.win.webContents.executeJavaScript("MusicKitInterop.play()")
|
||||||
|
},
|
||||||
|
playPause: () => {
|
||||||
|
bw.win.webContents.executeJavaScript("MusicKitInterop.playPause()")
|
||||||
|
},
|
||||||
|
next: () => {
|
||||||
|
bw.win.webContents.executeJavaScript("MusicKitInterop.next()")
|
||||||
|
},
|
||||||
|
previous: () => {
|
||||||
|
bw.win.webContents.executeJavaScript("MusicKitInterop.previous()")
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
239
src/main/plugins/menubar.ts
Normal file
239
src/main/plugins/menubar.ts
Normal file
|
@ -0,0 +1,239 @@
|
||||||
|
import {app, Menu, shell} from "electron";
|
||||||
|
|
||||||
|
export default class Thumbar {
|
||||||
|
/**
|
||||||
|
* Private variables for interaction in plugins
|
||||||
|
*/
|
||||||
|
private _win: any;
|
||||||
|
private _app: any;
|
||||||
|
private _store: any;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Base Plugin Details (Eventually implemented into a GUI in settings)
|
||||||
|
*/
|
||||||
|
public name: string = 'Menubar Plugin';
|
||||||
|
public description: string = 'Creates the menubar';
|
||||||
|
public version: string = '1.0.0';
|
||||||
|
public author: string = 'Core / Quack';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Thumbnail Toolbar Assets
|
||||||
|
* NATIVE-IMAGE DOESN'T SUPPORT SVG
|
||||||
|
private icons: { [key: string]: Electron.NativeImage } = {
|
||||||
|
remoteIcon: nativeImage.createFromPath(join(utils.getPath('rendererPath'), 'views/svg/smartphone.svg')).toPNG(),
|
||||||
|
soundIcon: nativeImage.createFromPath(join(utils.getPath('rendererPath'), 'views/svg/headphones.svg')).toPNG(),
|
||||||
|
aboutIcon: nativeImage.createFromPath(join(utils.getPath('rendererPath'), 'views/svg/info.svg')).toPNG(),
|
||||||
|
settingsIcon: nativeImage.createFromPath(join(utils.getPath('rendererPath'), 'views/svg/settings.svg')).toPNG(),
|
||||||
|
logoutIcon: nativeImage.createFromPath(join(utils.getPath('rendererPath'), 'views/svg/log-out.svg')).toPNG(),
|
||||||
|
ciderIcon: nativeImage.createFromPath(join(utils.getPath('rendererPath'), 'assets/logocute.png')).toPNG(),
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Menubar Assets
|
||||||
|
* @private
|
||||||
|
*/
|
||||||
|
private isMac: boolean = process.platform === 'darwin';
|
||||||
|
private menubarTemplate: any = [
|
||||||
|
{
|
||||||
|
label: app.getName(),
|
||||||
|
submenu: [
|
||||||
|
{ role: 'about' },
|
||||||
|
{ type: 'separator' },
|
||||||
|
{ role: 'services' },
|
||||||
|
{ type: 'separator' },
|
||||||
|
{ role: 'hide' },
|
||||||
|
{ role: 'hideOthers' },
|
||||||
|
{ role: 'unhide' },
|
||||||
|
{ type: 'separator' },
|
||||||
|
{ role: 'quit' }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: 'View',
|
||||||
|
submenu: [
|
||||||
|
{role: 'reload'},
|
||||||
|
{role: 'forceReload'},
|
||||||
|
{role: 'toggleDevTools'},
|
||||||
|
{type: 'separator'},
|
||||||
|
{role: 'resetZoom'},
|
||||||
|
{role: 'zoomIn'},
|
||||||
|
{role: 'zoomOut'},
|
||||||
|
{type: 'separator'},
|
||||||
|
{role: 'togglefullscreen'},
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: 'Window',
|
||||||
|
submenu: [
|
||||||
|
{role: 'minimize'},
|
||||||
|
{role: 'zoom'},
|
||||||
|
...(this.isMac ? [
|
||||||
|
{type: 'separator'},
|
||||||
|
{role: 'front'},
|
||||||
|
{type: 'separator'},
|
||||||
|
{role: 'window'}
|
||||||
|
] : [
|
||||||
|
{role: 'close'}
|
||||||
|
]),
|
||||||
|
{type: 'separator'},
|
||||||
|
{
|
||||||
|
label: 'Web Remote',
|
||||||
|
accelerator: 'CommandOrControl+Shift+W',
|
||||||
|
sublabel: 'Opens in external window',
|
||||||
|
click: () => this._win.webContents.executeJavaScript(`ipcRenderer.invoke('showQR')`)
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: 'Audio Settings',
|
||||||
|
accelerator: 'CommandOrControl+Shift+A',
|
||||||
|
click: () => this._win.webContents.executeJavaScript(`app.modals.audioSettings = true`)
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: 'Settings',
|
||||||
|
accelerator: 'CommandOrControl+,',
|
||||||
|
click: () => this._win.webContents.executeJavaScript(`app.appRoute('settings')`)
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: 'Controls',
|
||||||
|
submenu: [
|
||||||
|
{
|
||||||
|
label: 'Pause / Play',
|
||||||
|
accelerator: 'Space',
|
||||||
|
click: () => this._win.webContents.executeJavaScript(`MusicKitInterop.playPause()`)
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: 'Next',
|
||||||
|
accelerator: 'CommandOrControl+Right',
|
||||||
|
click: () => this._win.webContents.executeJavaScript(`MusicKitInterop.next()`)
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: 'Previous',
|
||||||
|
accelerator: 'CommandOrControl+Left',
|
||||||
|
click: () => this._win.webContents.executeJavaScript(`MusicKitInterop.previous()`)
|
||||||
|
},
|
||||||
|
{ type: 'separator' },
|
||||||
|
{
|
||||||
|
label: 'Volume Up',
|
||||||
|
accelerator: 'CommandOrControl+Up',
|
||||||
|
click: () => this._win.webContents.executeJavaScript(`app.volumeUp()`)
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: 'Volume Down',
|
||||||
|
accelerator: 'CommandOrControl+Down',
|
||||||
|
click: () => this._win.webContents.executeJavaScript(`app.volumeDown()`)
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: 'Account',
|
||||||
|
submenu: [
|
||||||
|
{
|
||||||
|
label: 'Account Settings',
|
||||||
|
click: () => this._win.webContents.executeJavaScript(`app.appRoute('apple-account-settings')`)
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: 'Sign Out',
|
||||||
|
click: () => this._win.webContents.executeJavaScript(`app.unauthorize()`)
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: 'Support',
|
||||||
|
role: 'help',
|
||||||
|
submenu: [
|
||||||
|
{
|
||||||
|
label: 'Discord',
|
||||||
|
click: () => shell.openExternal("https://discord.gg/AppleMusic").catch(console.error)
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: 'GitHub Wiki',
|
||||||
|
click: () => shell.openExternal("https://github.com/ciderapp/Cider/wiki/Troubleshooting").catch(console.error)
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: 'About',
|
||||||
|
click: () => this._win.webContents.executeJavaScript(`app.appRoute('about')`)
|
||||||
|
},
|
||||||
|
{type: 'separator'},
|
||||||
|
{
|
||||||
|
label: 'Report a...',
|
||||||
|
submenu: [
|
||||||
|
{
|
||||||
|
label: 'Bug',
|
||||||
|
click: () => shell.openExternal("https://github.com/ciderapp/Cider/issues/new?assignees=&labels=bug%2Ctriage&template=bug_report.yaml&title=%5BBug%5D%3A+").catch(console.error)
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: 'Feature Request',
|
||||||
|
click: () => shell.openExternal("https://github.com/ciderapp/Cider/issues/new?assignees=&labels=enhancement%2Ctriage&template=feature_request.yaml&title=%5BEnhancement%5D%3A+").catch(console.error)
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: 'Translation Report/Request',
|
||||||
|
click: () => shell.openExternal("https://github.com/ciderapp/Cider/issues/new?assignees=&labels=%F0%9F%8C%90+Translations&template=translation.yaml&title=%5BTranslation%5D%3A+").catch(console.error)
|
||||||
|
},
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{type: 'separator'},
|
||||||
|
{
|
||||||
|
label: 'View License',
|
||||||
|
click: () => shell.openExternal("https://github.com/ciderapp/Cider/blob/main/LICENSE").catch(console.error)
|
||||||
|
},
|
||||||
|
{type: 'separator'},
|
||||||
|
{
|
||||||
|
label: 'Toggle Developer Tools',
|
||||||
|
accelerator: 'Option+CommandOrControl+I',
|
||||||
|
click: () => this._win.webContents.openDevTools()
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: 'Open Configuration File in Editor',
|
||||||
|
click: () => this._store.openInEditor()
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
||||||
|
/*******************************************************************************************
|
||||||
|
* Public Methods
|
||||||
|
* ****************************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Runs on plugin load (Currently run on application start)
|
||||||
|
*/
|
||||||
|
constructor(app: any, store: any) {
|
||||||
|
this._app = app;
|
||||||
|
this._store = store
|
||||||
|
console.debug(`[Plugin][${this.name}] Loading Complete.`);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Runs on app ready
|
||||||
|
*/
|
||||||
|
onReady(win: Electron.BrowserWindow): void {
|
||||||
|
this._win = win;
|
||||||
|
Menu.setApplicationMenu(Menu.buildFromTemplate(this.menubarTemplate))
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Runs on app stop
|
||||||
|
*/
|
||||||
|
onBeforeQuit(): void {
|
||||||
|
console.debug(`[Plugin][${this.name}] Stopped.`);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Runs on playback State Change
|
||||||
|
* @param attributes Music Attributes (attributes.status = current state)
|
||||||
|
*/
|
||||||
|
onPlaybackStateDidChange(attributes: object): void {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Runs on song change
|
||||||
|
* @param attributes Music Attributes
|
||||||
|
*/
|
||||||
|
onNowPlayingItemDidChange(attributes: object): void {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
133
src/main/plugins/thumbar.ts
Normal file
133
src/main/plugins/thumbar.ts
Normal file
|
@ -0,0 +1,133 @@
|
||||||
|
import {nativeImage, nativeTheme} from "electron";
|
||||||
|
import {utils} from "../base/utils";
|
||||||
|
import {join} from "path";
|
||||||
|
|
||||||
|
export default class Thumbar {
|
||||||
|
/**
|
||||||
|
* Private variables for interaction in plugins
|
||||||
|
*/
|
||||||
|
private _win: any;
|
||||||
|
private _app: any;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Base Plugin Details (Eventually implemented into a GUI in settings)
|
||||||
|
*/
|
||||||
|
public name: string = 'Thumbnail Toolbar Plugin';
|
||||||
|
public description: string = 'Creates and managed the thumbnail toolbar buttons and their events';
|
||||||
|
public version: string = '1.0.0';
|
||||||
|
public author: string = 'Core';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Thumbnail Toolbar Assets
|
||||||
|
*/
|
||||||
|
private icons: { [key: string]: Electron.NativeImage } = {
|
||||||
|
pause: nativeImage.createFromPath(join(utils.getPath('resourcePath'), 'icons/thumbar', `${nativeTheme.shouldUseDarkColors ? 'light' : 'dark'}_pause.png`)),
|
||||||
|
play: nativeImage.createFromPath(join(utils.getPath('resourcePath'), 'icons/thumbar', `${nativeTheme.shouldUseDarkColors ? 'light' : 'dark'}_play.png`)),
|
||||||
|
next: nativeImage.createFromPath(join(utils.getPath('resourcePath'), 'icons/thumbar', `${nativeTheme.shouldUseDarkColors ? 'light' : 'dark'}_next.png`)),
|
||||||
|
previous: nativeImage.createFromPath(join(utils.getPath('resourcePath'), 'icons/thumbar', `${nativeTheme.shouldUseDarkColors ? 'light' : 'dark'}_previous.png`)),
|
||||||
|
}
|
||||||
|
|
||||||
|
/*******************************************************************************************
|
||||||
|
* Private Methods
|
||||||
|
* ****************************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Blocks non-windows systems from running this plugin
|
||||||
|
* @private
|
||||||
|
* @decorator
|
||||||
|
*/
|
||||||
|
private static windowsOnly(_target: any, _propertyKey: string, descriptor: PropertyDescriptor) {
|
||||||
|
if (process.platform !== 'win32') {
|
||||||
|
descriptor.value = function () {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Update the thumbnail toolbar
|
||||||
|
*/
|
||||||
|
@Thumbar.windowsOnly
|
||||||
|
private updateButtons(attributes: any) {
|
||||||
|
|
||||||
|
console.log(attributes)
|
||||||
|
|
||||||
|
if (!attributes) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
const buttons = [
|
||||||
|
{
|
||||||
|
tooltip: 'Previous',
|
||||||
|
icon: this.icons.previous,
|
||||||
|
click() {
|
||||||
|
utils.playback.previous()
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
tooltip: attributes.status ? 'Pause' : 'Play',
|
||||||
|
icon: attributes.status ? this.icons.pause : this.icons.play,
|
||||||
|
click() {
|
||||||
|
utils.playback.playPause()
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
tooltip: 'Next',
|
||||||
|
icon: this.icons.next,
|
||||||
|
click() {
|
||||||
|
utils.playback.next()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
if (!attributes.playParams || attributes.playParams.id === 'no-id-found') {
|
||||||
|
this._win.setThumbarButtons([])
|
||||||
|
} else {
|
||||||
|
this._win.setThumbarButtons(buttons);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/*******************************************************************************************
|
||||||
|
* Public Methods
|
||||||
|
* ****************************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Runs on plugin load (Currently run on application start)
|
||||||
|
*/
|
||||||
|
constructor(app: any, _store: any) {
|
||||||
|
this._app = app;
|
||||||
|
console.debug(`[Plugin][${this.name}] Loading Complete.`);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Runs on app ready
|
||||||
|
*/
|
||||||
|
onReady(win: Electron.BrowserWindow): void {
|
||||||
|
this._win = win;
|
||||||
|
console.debug(`[Plugin][${this.name}] Ready.`);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Runs on app stop
|
||||||
|
*/
|
||||||
|
onBeforeQuit(): void {
|
||||||
|
console.debug(`[Plugin][${this.name}] Stopped.`);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Runs on playback State Change
|
||||||
|
* @param attributes Music Attributes (attributes.status = current state)
|
||||||
|
*/
|
||||||
|
onPlaybackStateDidChange(attributes: object): void {
|
||||||
|
this.updateButtons(attributes)
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Runs on song change
|
||||||
|
* @param attributes Music Attributes
|
||||||
|
*/
|
||||||
|
onNowPlayingItemDidChange(attributes: object): void {
|
||||||
|
this.updateButtons(attributes)
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
1
src/renderer/assets/ppe.svg
Normal file
1
src/renderer/assets/ppe.svg
Normal file
|
@ -0,0 +1 @@
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-codesandbox"><path d="M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z"></path><polyline points="7.5 4.21 12 6.81 16.5 4.21"></polyline><polyline points="7.5 19.79 7.5 14.6 3 12"></polyline><polyline points="21 12 16.5 14.6 16.5 19.79"></polyline><polyline points="3.27 6.96 12 12.01 20.73 6.96"></polyline><line x1="12" y1="22.08" x2="12" y2="12"></line></svg>
|
After Width: | Height: | Size: 638 B |
|
@ -8,6 +8,8 @@ var CiderAudio = {
|
||||||
audioBands : null,
|
audioBands : null,
|
||||||
preampNode : null,
|
preampNode : null,
|
||||||
vibrantbassNode: null,
|
vibrantbassNode: null,
|
||||||
|
llpw: null,
|
||||||
|
llpwEnabled: null
|
||||||
},
|
},
|
||||||
init: function (cb = function () { }) {
|
init: function (cb = function () { }) {
|
||||||
//AudioOutputs.fInit = true;
|
//AudioOutputs.fInit = true;
|
||||||
|
@ -29,14 +31,29 @@ var CiderAudio = {
|
||||||
try{ CiderAudio.audioNodes.spatialNode.disconnect();} catch(e){}
|
try{ CiderAudio.audioNodes.spatialNode.disconnect();} catch(e){}
|
||||||
try{
|
try{
|
||||||
CiderAudio.audioNodes.preampNode.disconnect();
|
CiderAudio.audioNodes.preampNode.disconnect();
|
||||||
CiderAudio.audioNodes.vibrantbassNode.disconnect();
|
for (var i of CiderAudio.audioNodes.llpw){
|
||||||
CiderAudio.audioNodes.audioBands[0].disconnect();
|
i.disconnect();
|
||||||
CiderAudio.audioNodes.audioBands[9].disconnect();
|
}
|
||||||
|
for (var i of CiderAudio.audioNodes.vibrantbassNode){
|
||||||
|
i.disconnect();
|
||||||
|
}
|
||||||
|
for (var i of CiderAudio.audioNodes.audioBands){
|
||||||
|
i.disconnect();
|
||||||
|
}
|
||||||
} catch(e){}
|
} catch(e){}
|
||||||
|
try{
|
||||||
|
CiderAudio.audioNodes = {
|
||||||
|
gainNode : null,
|
||||||
|
spatialNode : null,
|
||||||
|
spatialInput: null,
|
||||||
|
audioBands : null,
|
||||||
|
preampNode : null,
|
||||||
|
vibrantbassNode: null,
|
||||||
|
}
|
||||||
|
} catch (e) {}
|
||||||
CiderAudio.source.connect(CiderAudio.context.destination);} catch(e){}
|
CiderAudio.source.connect(CiderAudio.context.destination);} catch(e){}
|
||||||
},
|
},
|
||||||
connectContext: function (mediaElem){
|
connectContext: function (mediaElem){
|
||||||
|
|
||||||
if (!CiderAudio.context){
|
if (!CiderAudio.context){
|
||||||
CiderAudio.context = new (window.AudioContext || window.webkitAudioContext);
|
CiderAudio.context = new (window.AudioContext || window.webkitAudioContext);
|
||||||
}
|
}
|
||||||
|
@ -109,7 +126,10 @@ var CiderAudio = {
|
||||||
let VIBRANTBASSBANDS = app.cfg.audio.vibrantBass.frequencies;
|
let VIBRANTBASSBANDS = app.cfg.audio.vibrantBass.frequencies;
|
||||||
let VIBRANTBASSGAIN = app.cfg.audio.vibrantBass.gain;
|
let VIBRANTBASSGAIN = app.cfg.audio.vibrantBass.gain;
|
||||||
let VIBRANTBASSQ = app.cfg.audio.vibrantBass.Q;
|
let VIBRANTBASSQ = app.cfg.audio.vibrantBass.Q;
|
||||||
CiderAudio.audioNodes.audioBands = []; CiderAudio.audioNodes.vibrantbassNode = [];
|
let LLPW_Q = [5, 1, 3.536, 1.25, 8.409, 1.25, 14.14, 7.071, 5, 0.625, 16.82, 20, 20, 20, 28.28, 28.28, 28.28, 20, 33.64, 33.64, 10, 28.28, 7.071, 3.856];
|
||||||
|
let LLPW_GAIN = [0.38, -1.81, -0.23, -0.51, 0.4, 0.84, 0.36, -0.34, 0.27, -1.2, -0.42, -0.67, 0.81, 1.31, -0.71, 0.68, -1.04, 0.79, -0.73, -1.33, 1.17, 0.57, 0.35, 6.33];
|
||||||
|
let LLPW_FREQUENCIES = [16.452, 24.636, 37.134, 74.483, 159.54, 308.18, 670.21, 915.81, 1200.7, 2766.4, 2930.6, 4050.6, 4409.1, 5395.2, 5901.6, 6455.5, 7164.1, 7724.1, 8449, 10573, 12368, 14198, 17910, 18916];
|
||||||
|
CiderAudio.audioNodes.audioBands = []; CiderAudio.audioNodes.vibrantbassNode = []; CiderAudio.audioNodes.llpw = [];
|
||||||
|
|
||||||
for (i = 0; i < BANDS.length; i++) {
|
for (i = 0; i < BANDS.length; i++) {
|
||||||
CiderAudio.audioNodes.audioBands[i] = CiderAudio.context.createBiquadFilter();
|
CiderAudio.audioNodes.audioBands[i] = CiderAudio.context.createBiquadFilter();
|
||||||
|
@ -119,18 +139,27 @@ var CiderAudio = {
|
||||||
CiderAudio.audioNodes.audioBands[i].gain.value = GAIN[i] * app.cfg.audio.equalizer.mix;
|
CiderAudio.audioNodes.audioBands[i].gain.value = GAIN[i] * app.cfg.audio.equalizer.mix;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for (i = 0; i < LLPW_FREQUENCIES.length; i++) {
|
||||||
|
CiderAudio.audioNodes.llpw[i] = CiderAudio.context.createBiquadFilter();
|
||||||
|
CiderAudio.audioNodes.llpw[i].type = 'peaking'; // 'peaking';
|
||||||
|
CiderAudio.audioNodes.llpw[i].frequency.value = LLPW_FREQUENCIES[i];
|
||||||
|
CiderAudio.audioNodes.llpw[i].Q.value = LLPW_Q[i];
|
||||||
|
CiderAudio.audioNodes.llpw[i].gain.value = LLPW_GAIN[i] * app.cfg.audio.ciderPPE_value * CiderAudio.audioNodes.llpwEnabled;
|
||||||
|
}
|
||||||
|
|
||||||
CiderAudio.audioNodes.preampNode = CiderAudio.context.createBiquadFilter();
|
CiderAudio.audioNodes.preampNode = CiderAudio.context.createBiquadFilter();
|
||||||
CiderAudio.audioNodes.preampNode.type = 'highshelf';
|
CiderAudio.audioNodes.preampNode.type = 'highshelf';
|
||||||
CiderAudio.audioNodes.preampNode.frequency.value = 0; // allow all
|
CiderAudio.audioNodes.preampNode.frequency.value = 0; // Passthrough
|
||||||
CiderAudio.audioNodes.preampNode.gain.value = app.cfg.audio.equalizer.preamp;
|
if (CiderAudio.audioNodes.llpwEnabled === 1) {CiderAudio.audioNodes.preampNode.gain.value = (-Math.max(...app.cfg.audio.equalizer.gain.concat(CiderAudio.audioNodes.llpw[23].gain.value)));}
|
||||||
|
else {CiderAudio.audioNodes.preampNode.gain.value = (-Math.max(...app.cfg.audio.equalizer.gain));}
|
||||||
|
|
||||||
for (i = 0; i < VIBRANTBASSBANDS.length; i++) {
|
for (i = 0; i < VIBRANTBASSBANDS.length; i++) {
|
||||||
CiderAudio.audioNodes.vibrantbassNode[i] = CiderAudio.context.createBiquadFilter();
|
CiderAudio.audioNodes.vibrantbassNode[i] = CiderAudio.context.createBiquadFilter();
|
||||||
CiderAudio.audioNodes.vibrantbassNode[i].type = 'peaking'; // 'peaking';
|
CiderAudio.audioNodes.vibrantbassNode[i].type = 'peaking'; // 'peaking';
|
||||||
CiderAudio.audioNodes.vibrantbassNode[i].frequency.value = VIBRANTBASSBANDS[i];
|
CiderAudio.audioNodes.vibrantbassNode[i].frequency.value = VIBRANTBASSBANDS[i];
|
||||||
CiderAudio.audioNodes.vibrantbassNode[i].Q.value = VIBRANTBASSQ[i];
|
CiderAudio.audioNodes.vibrantbassNode[i].Q.value = VIBRANTBASSQ[i];
|
||||||
CiderAudio.audioNodes.vibrantbassNode[i].gain.value = VIBRANTBASSGAIN[i] * app.cfg.audio.vibrantBass.multiplier;
|
CiderAudio.audioNodes.vibrantbassNode[i].gain.value = VIBRANTBASSGAIN[i] * app.cfg.audio.vibrantBass.multiplier;}
|
||||||
}
|
|
||||||
|
|
||||||
if (app.cfg.audio.spatial) {
|
if (app.cfg.audio.spatial) {
|
||||||
try{
|
try{
|
||||||
|
@ -142,13 +171,18 @@ var CiderAudio = {
|
||||||
CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.preampNode);
|
CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.preampNode);
|
||||||
}
|
}
|
||||||
|
|
||||||
CiderAudio.audioNodes.preampNode.connect(CiderAudio.audioNodes.vibrantbassNode[0]);
|
CiderAudio.audioNodes.preampNode.connect(CiderAudio.audioNodes.llpw[0]);
|
||||||
|
|
||||||
|
for (i = 1; i < LLPW_FREQUENCIES.length; i ++) {
|
||||||
|
CiderAudio.audioNodes.llpw[i-1].connect(CiderAudio.audioNodes.llpw[i]);
|
||||||
|
}
|
||||||
|
CiderAudio.audioNodes.llpw[LLPW_FREQUENCIES.length-1].connect(CiderAudio.audioNodes.vibrantbassNode[0]);
|
||||||
for (i = 1; i < VIBRANTBASSBANDS.length; i ++) {
|
for (i = 1; i < VIBRANTBASSBANDS.length; i ++) {
|
||||||
CiderAudio.audioNodes.vibrantbassNode[i-1].connect(CiderAudio.audioNodes.vibrantbassNode[i]);
|
CiderAudio.audioNodes.vibrantbassNode[i-1].connect(CiderAudio.audioNodes.vibrantbassNode[i]);
|
||||||
}
|
}
|
||||||
CiderAudio.audioNodes.vibrantbassNode[VIBRANTBASSBANDS.length-1].connect(CiderAudio.audioNodes.audioBands[0]);
|
CiderAudio.audioNodes.vibrantbassNode[VIBRANTBASSBANDS.length-1].connect(CiderAudio.audioNodes.audioBands[0]);
|
||||||
|
|
||||||
|
|
||||||
for (i = 1; i < BANDS.length; i ++) {
|
for (i = 1; i < BANDS.length; i ++) {
|
||||||
CiderAudio.audioNodes.audioBands[i-1].connect(CiderAudio.audioNodes.audioBands[i]);
|
CiderAudio.audioNodes.audioBands[i-1].connect(CiderAudio.audioNodes.audioBands[i]);
|
||||||
}
|
}
|
||||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -1,10 +1,10 @@
|
||||||
@import url("ameframework.css");
|
|
||||||
@import url("assets/fonts/Inter/inter.css");
|
@import url("assets/fonts/Inter/inter.css");
|
||||||
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100;300;400;500;700;900&display=swap');
|
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100;300;400;500;700;900&display=swap');
|
||||||
@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@100;300;400;500;700;900&display=swap");
|
@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@100;300;400;500;700;900&display=swap");
|
||||||
@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+HK:wght@100;300;400;500;700;900&display=swap");
|
@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+HK:wght@100;300;400;500;700;900&display=swap");
|
||||||
@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+TC:wght@100;300;400;500;700;900&display=swap");
|
@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+TC:wght@100;300;400;500;700;900&display=swap");
|
||||||
@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@100;300;400;500;700;900&display=swap");
|
@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@100;300;400;500;700;900&display=swap");
|
||||||
|
@import url("less/ameframework.less");
|
||||||
@import url("less/bootstrap.less");
|
@import url("less/bootstrap.less");
|
||||||
@import url("less/notyf.less");
|
@import url("less/notyf.less");
|
||||||
|
|
||||||
|
@ -68,10 +68,6 @@ body[loading] {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
body[platform='linux'] {
|
|
||||||
background: #222;
|
|
||||||
}
|
|
||||||
|
|
||||||
body.notransparency::before {
|
body.notransparency::before {
|
||||||
content: "";
|
content: "";
|
||||||
position: absolute;
|
position: absolute;
|
||||||
|
@ -83,6 +79,14 @@ body.notransparency::before {
|
||||||
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAMAAAAp4XiDAAAAUVBMVEWFhYWDg4N3d3dtbW17e3t1dXWBgYGHh4d5eXlzc3OLi4ubm5uVlZWPj4+NjY19fX2JiYl/f39ra2uRkZGZmZlpaWmXl5dvb29xcXGTk5NnZ2c8TV1mAAAAG3RSTlNAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAvEOwtAAAFVklEQVR4XpWWB67c2BUFb3g557T/hRo9/WUMZHlgr4Bg8Z4qQgQJlHI4A8SzFVrapvmTF9O7dmYRFZ60YiBhJRCgh1FYhiLAmdvX0CzTOpNE77ME0Zty/nWWzchDtiqrmQDeuv3powQ5ta2eN0FY0InkqDD73lT9c9lEzwUNqgFHs9VQce3TVClFCQrSTfOiYkVJQBmpbq2L6iZavPnAPcoU0dSw0SUTqz/GtrGuXfbyyBniKykOWQWGqwwMA7QiYAxi+IlPdqo+hYHnUt5ZPfnsHJyNiDtnpJyayNBkF6cWoYGAMY92U2hXHF/C1M8uP/ZtYdiuj26UdAdQQSXQErwSOMzt/XWRWAz5GuSBIkwG1H3FabJ2OsUOUhGC6tK4EMtJO0ttC6IBD3kM0ve0tJwMdSfjZo+EEISaeTr9P3wYrGjXqyC1krcKdhMpxEnt5JetoulscpyzhXN5FRpuPHvbeQaKxFAEB6EN+cYN6xD7RYGpXpNndMmZgM5Dcs3YSNFDHUo2LGfZuukSWyUYirJAdYbF3MfqEKmjM+I2EfhA94iG3L7uKrR+GdWD73ydlIB+6hgref1QTlmgmbM3/LeX5GI1Ux1RWpgxpLuZ2+I+IjzZ8wqE4nilvQdkUdfhzI5QDWy+kw5Wgg2pGpeEVeCCA7b85BO3F9DzxB3cdqvBzWcmzbyMiqhzuYqtHRVG2y4x+KOlnyqla8AoWWpuBoYRxzXrfKuILl6SfiWCbjxoZJUaCBj1CjH7GIaDbc9kqBY3W/Rgjda1iqQcOJu2WW+76pZC9QG7M00dffe9hNnseupFL53r8F7YHSwJWUKP2q+k7RdsxyOB11n0xtOvnW4irMMFNV4H0uqwS5ExsmP9AxbDTc9JwgneAT5vTiUSm1E7BSflSt3bfa1tv8Di3R8n3Af7MNWzs49hmauE2wP+ttrq+AsWpFG2awvsuOqbipWHgtuvuaAE+A1Z/7gC9hesnr+7wqCwG8c5yAg3AL1fm8T9AZtp/bbJGwl1pNrE7RuOX7PeMRUERVaPpEs+yqeoSmuOlokqw49pgomjLeh7icHNlG19yjs6XXOMedYm5xH2YxpV2tc0Ro2jJfxC50ApuxGob7lMsxfTbeUv07TyYxpeLucEH1gNd4IKH2LAg5TdVhlCafZvpskfncCfx8pOhJzd76bJWeYFnFciwcYfubRc12Ip/ppIhA1/mSZ/RxjFDrJC5xifFjJpY2Xl5zXdguFqYyTR1zSp1Y9p+tktDYYSNflcxI0iyO4TPBdlRcpeqjK/piF5bklq77VSEaA+z8qmJTFzIWiitbnzR794USKBUaT0NTEsVjZqLaFVqJoPN9ODG70IPbfBHKK+/q/AWR0tJzYHRULOa4MP+W/HfGadZUbfw177G7j/OGbIs8TahLyynl4X4RinF793Oz+BU0saXtUHrVBFT/DnA3ctNPoGbs4hRIjTok8i+algT1lTHi4SxFvONKNrgQFAq2/gFnWMXgwffgYMJpiKYkmW3tTg3ZQ9Jq+f8XN+A5eeUKHWvJWJ2sgJ1Sop+wwhqFVijqWaJhwtD8MNlSBeWNNWTa5Z5kPZw5+LbVT99wqTdx29lMUH4OIG/D86ruKEauBjvH5xy6um/Sfj7ei6UUVk4AIl3MyD4MSSTOFgSwsH/QJWaQ5as7ZcmgBZkzjjU1UrQ74ci1gWBCSGHtuV1H2mhSnO3Wp/3fEV5a+4wz//6qy8JxjZsmxxy5+4w9CDNJY09T072iKG0EnOS0arEYgXqYnXcYHwjTtUNAcMelOd4xpkoqiTYICWFq0JSiPfPDQdnt+4/wuqcXY47QILbgAAAABJRU5ErkJggg==);
|
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAMAAAAp4XiDAAAAUVBMVEWFhYWDg4N3d3dtbW17e3t1dXWBgYGHh4d5eXlzc3OLi4ubm5uVlZWPj4+NjY19fX2JiYl/f39ra2uRkZGZmZlpaWmXl5dvb29xcXGTk5NnZ2c8TV1mAAAAG3RSTlNAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAvEOwtAAAFVklEQVR4XpWWB67c2BUFb3g557T/hRo9/WUMZHlgr4Bg8Z4qQgQJlHI4A8SzFVrapvmTF9O7dmYRFZ60YiBhJRCgh1FYhiLAmdvX0CzTOpNE77ME0Zty/nWWzchDtiqrmQDeuv3powQ5ta2eN0FY0InkqDD73lT9c9lEzwUNqgFHs9VQce3TVClFCQrSTfOiYkVJQBmpbq2L6iZavPnAPcoU0dSw0SUTqz/GtrGuXfbyyBniKykOWQWGqwwMA7QiYAxi+IlPdqo+hYHnUt5ZPfnsHJyNiDtnpJyayNBkF6cWoYGAMY92U2hXHF/C1M8uP/ZtYdiuj26UdAdQQSXQErwSOMzt/XWRWAz5GuSBIkwG1H3FabJ2OsUOUhGC6tK4EMtJO0ttC6IBD3kM0ve0tJwMdSfjZo+EEISaeTr9P3wYrGjXqyC1krcKdhMpxEnt5JetoulscpyzhXN5FRpuPHvbeQaKxFAEB6EN+cYN6xD7RYGpXpNndMmZgM5Dcs3YSNFDHUo2LGfZuukSWyUYirJAdYbF3MfqEKmjM+I2EfhA94iG3L7uKrR+GdWD73ydlIB+6hgref1QTlmgmbM3/LeX5GI1Ux1RWpgxpLuZ2+I+IjzZ8wqE4nilvQdkUdfhzI5QDWy+kw5Wgg2pGpeEVeCCA7b85BO3F9DzxB3cdqvBzWcmzbyMiqhzuYqtHRVG2y4x+KOlnyqla8AoWWpuBoYRxzXrfKuILl6SfiWCbjxoZJUaCBj1CjH7GIaDbc9kqBY3W/Rgjda1iqQcOJu2WW+76pZC9QG7M00dffe9hNnseupFL53r8F7YHSwJWUKP2q+k7RdsxyOB11n0xtOvnW4irMMFNV4H0uqwS5ExsmP9AxbDTc9JwgneAT5vTiUSm1E7BSflSt3bfa1tv8Di3R8n3Af7MNWzs49hmauE2wP+ttrq+AsWpFG2awvsuOqbipWHgtuvuaAE+A1Z/7gC9hesnr+7wqCwG8c5yAg3AL1fm8T9AZtp/bbJGwl1pNrE7RuOX7PeMRUERVaPpEs+yqeoSmuOlokqw49pgomjLeh7icHNlG19yjs6XXOMedYm5xH2YxpV2tc0Ro2jJfxC50ApuxGob7lMsxfTbeUv07TyYxpeLucEH1gNd4IKH2LAg5TdVhlCafZvpskfncCfx8pOhJzd76bJWeYFnFciwcYfubRc12Ip/ppIhA1/mSZ/RxjFDrJC5xifFjJpY2Xl5zXdguFqYyTR1zSp1Y9p+tktDYYSNflcxI0iyO4TPBdlRcpeqjK/piF5bklq77VSEaA+z8qmJTFzIWiitbnzR794USKBUaT0NTEsVjZqLaFVqJoPN9ODG70IPbfBHKK+/q/AWR0tJzYHRULOa4MP+W/HfGadZUbfw177G7j/OGbIs8TahLyynl4X4RinF793Oz+BU0saXtUHrVBFT/DnA3ctNPoGbs4hRIjTok8i+algT1lTHi4SxFvONKNrgQFAq2/gFnWMXgwffgYMJpiKYkmW3tTg3ZQ9Jq+f8XN+A5eeUKHWvJWJ2sgJ1Sop+wwhqFVijqWaJhwtD8MNlSBeWNNWTa5Z5kPZw5+LbVT99wqTdx29lMUH4OIG/D86ruKEauBjvH5xy6um/Sfj7ei6UUVk4AIl3MyD4MSSTOFgSwsH/QJWaQ5as7ZcmgBZkzjjU1UrQ74ci1gWBCSGHtuV1H2mhSnO3Wp/3fEV5a+4wz//6qy8JxjZsmxxy5+4w9CDNJY09T072iKG0EnOS0arEYgXqYnXcYHwjTtUNAcMelOd4xpkoqiTYICWFq0JSiPfPDQdnt+4/wuqcXY47QILbgAAAABJRU5ErkJggg==);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
body.stopanimation * {
|
||||||
|
animation: unset !important;
|
||||||
|
|
||||||
|
.loadbar-sound {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
*,
|
*,
|
||||||
*:before,
|
*:before,
|
||||||
*:after {
|
*:after {
|
||||||
|
@ -151,7 +155,7 @@ body.notransparency::before {
|
||||||
right: 0;
|
right: 0;
|
||||||
bottom: 0;
|
bottom: 0;
|
||||||
opacity: 0.5;
|
opacity: 0.5;
|
||||||
z-index:0;
|
z-index: 0;
|
||||||
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAMAAAAp4XiDAAAAUVBMVEWFhYWDg4N3d3dtbW17e3t1dXWBgYGHh4d5eXlzc3OLi4ubm5uVlZWPj4+NjY19fX2JiYl/f39ra2uRkZGZmZlpaWmXl5dvb29xcXGTk5NnZ2c8TV1mAAAAG3RSTlNAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAvEOwtAAAFVklEQVR4XpWWB67c2BUFb3g557T/hRo9/WUMZHlgr4Bg8Z4qQgQJlHI4A8SzFVrapvmTF9O7dmYRFZ60YiBhJRCgh1FYhiLAmdvX0CzTOpNE77ME0Zty/nWWzchDtiqrmQDeuv3powQ5ta2eN0FY0InkqDD73lT9c9lEzwUNqgFHs9VQce3TVClFCQrSTfOiYkVJQBmpbq2L6iZavPnAPcoU0dSw0SUTqz/GtrGuXfbyyBniKykOWQWGqwwMA7QiYAxi+IlPdqo+hYHnUt5ZPfnsHJyNiDtnpJyayNBkF6cWoYGAMY92U2hXHF/C1M8uP/ZtYdiuj26UdAdQQSXQErwSOMzt/XWRWAz5GuSBIkwG1H3FabJ2OsUOUhGC6tK4EMtJO0ttC6IBD3kM0ve0tJwMdSfjZo+EEISaeTr9P3wYrGjXqyC1krcKdhMpxEnt5JetoulscpyzhXN5FRpuPHvbeQaKxFAEB6EN+cYN6xD7RYGpXpNndMmZgM5Dcs3YSNFDHUo2LGfZuukSWyUYirJAdYbF3MfqEKmjM+I2EfhA94iG3L7uKrR+GdWD73ydlIB+6hgref1QTlmgmbM3/LeX5GI1Ux1RWpgxpLuZ2+I+IjzZ8wqE4nilvQdkUdfhzI5QDWy+kw5Wgg2pGpeEVeCCA7b85BO3F9DzxB3cdqvBzWcmzbyMiqhzuYqtHRVG2y4x+KOlnyqla8AoWWpuBoYRxzXrfKuILl6SfiWCbjxoZJUaCBj1CjH7GIaDbc9kqBY3W/Rgjda1iqQcOJu2WW+76pZC9QG7M00dffe9hNnseupFL53r8F7YHSwJWUKP2q+k7RdsxyOB11n0xtOvnW4irMMFNV4H0uqwS5ExsmP9AxbDTc9JwgneAT5vTiUSm1E7BSflSt3bfa1tv8Di3R8n3Af7MNWzs49hmauE2wP+ttrq+AsWpFG2awvsuOqbipWHgtuvuaAE+A1Z/7gC9hesnr+7wqCwG8c5yAg3AL1fm8T9AZtp/bbJGwl1pNrE7RuOX7PeMRUERVaPpEs+yqeoSmuOlokqw49pgomjLeh7icHNlG19yjs6XXOMedYm5xH2YxpV2tc0Ro2jJfxC50ApuxGob7lMsxfTbeUv07TyYxpeLucEH1gNd4IKH2LAg5TdVhlCafZvpskfncCfx8pOhJzd76bJWeYFnFciwcYfubRc12Ip/ppIhA1/mSZ/RxjFDrJC5xifFjJpY2Xl5zXdguFqYyTR1zSp1Y9p+tktDYYSNflcxI0iyO4TPBdlRcpeqjK/piF5bklq77VSEaA+z8qmJTFzIWiitbnzR794USKBUaT0NTEsVjZqLaFVqJoPN9ODG70IPbfBHKK+/q/AWR0tJzYHRULOa4MP+W/HfGadZUbfw177G7j/OGbIs8TahLyynl4X4RinF793Oz+BU0saXtUHrVBFT/DnA3ctNPoGbs4hRIjTok8i+algT1lTHi4SxFvONKNrgQFAq2/gFnWMXgwffgYMJpiKYkmW3tTg3ZQ9Jq+f8XN+A5eeUKHWvJWJ2sgJ1Sop+wwhqFVijqWaJhwtD8MNlSBeWNNWTa5Z5kPZw5+LbVT99wqTdx29lMUH4OIG/D86ruKEauBjvH5xy6um/Sfj7ei6UUVk4AIl3MyD4MSSTOFgSwsH/QJWaQ5as7ZcmgBZkzjjU1UrQ74ci1gWBCSGHtuV1H2mhSnO3Wp/3fEV5a+4wz//6qy8JxjZsmxxy5+4w9CDNJY09T072iKG0EnOS0arEYgXqYnXcYHwjTtUNAcMelOd4xpkoqiTYICWFq0JSiPfPDQdnt+4/wuqcXY47QILbgAAAABJRU5ErkJggg==);
|
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAMAAAAp4XiDAAAAUVBMVEWFhYWDg4N3d3dtbW17e3t1dXWBgYGHh4d5eXlzc3OLi4ubm5uVlZWPj4+NjY19fX2JiYl/f39ra2uRkZGZmZlpaWmXl5dvb29xcXGTk5NnZ2c8TV1mAAAAG3RSTlNAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAvEOwtAAAFVklEQVR4XpWWB67c2BUFb3g557T/hRo9/WUMZHlgr4Bg8Z4qQgQJlHI4A8SzFVrapvmTF9O7dmYRFZ60YiBhJRCgh1FYhiLAmdvX0CzTOpNE77ME0Zty/nWWzchDtiqrmQDeuv3powQ5ta2eN0FY0InkqDD73lT9c9lEzwUNqgFHs9VQce3TVClFCQrSTfOiYkVJQBmpbq2L6iZavPnAPcoU0dSw0SUTqz/GtrGuXfbyyBniKykOWQWGqwwMA7QiYAxi+IlPdqo+hYHnUt5ZPfnsHJyNiDtnpJyayNBkF6cWoYGAMY92U2hXHF/C1M8uP/ZtYdiuj26UdAdQQSXQErwSOMzt/XWRWAz5GuSBIkwG1H3FabJ2OsUOUhGC6tK4EMtJO0ttC6IBD3kM0ve0tJwMdSfjZo+EEISaeTr9P3wYrGjXqyC1krcKdhMpxEnt5JetoulscpyzhXN5FRpuPHvbeQaKxFAEB6EN+cYN6xD7RYGpXpNndMmZgM5Dcs3YSNFDHUo2LGfZuukSWyUYirJAdYbF3MfqEKmjM+I2EfhA94iG3L7uKrR+GdWD73ydlIB+6hgref1QTlmgmbM3/LeX5GI1Ux1RWpgxpLuZ2+I+IjzZ8wqE4nilvQdkUdfhzI5QDWy+kw5Wgg2pGpeEVeCCA7b85BO3F9DzxB3cdqvBzWcmzbyMiqhzuYqtHRVG2y4x+KOlnyqla8AoWWpuBoYRxzXrfKuILl6SfiWCbjxoZJUaCBj1CjH7GIaDbc9kqBY3W/Rgjda1iqQcOJu2WW+76pZC9QG7M00dffe9hNnseupFL53r8F7YHSwJWUKP2q+k7RdsxyOB11n0xtOvnW4irMMFNV4H0uqwS5ExsmP9AxbDTc9JwgneAT5vTiUSm1E7BSflSt3bfa1tv8Di3R8n3Af7MNWzs49hmauE2wP+ttrq+AsWpFG2awvsuOqbipWHgtuvuaAE+A1Z/7gC9hesnr+7wqCwG8c5yAg3AL1fm8T9AZtp/bbJGwl1pNrE7RuOX7PeMRUERVaPpEs+yqeoSmuOlokqw49pgomjLeh7icHNlG19yjs6XXOMedYm5xH2YxpV2tc0Ro2jJfxC50ApuxGob7lMsxfTbeUv07TyYxpeLucEH1gNd4IKH2LAg5TdVhlCafZvpskfncCfx8pOhJzd76bJWeYFnFciwcYfubRc12Ip/ppIhA1/mSZ/RxjFDrJC5xifFjJpY2Xl5zXdguFqYyTR1zSp1Y9p+tktDYYSNflcxI0iyO4TPBdlRcpeqjK/piF5bklq77VSEaA+z8qmJTFzIWiitbnzR794USKBUaT0NTEsVjZqLaFVqJoPN9ODG70IPbfBHKK+/q/AWR0tJzYHRULOa4MP+W/HfGadZUbfw177G7j/OGbIs8TahLyynl4X4RinF793Oz+BU0saXtUHrVBFT/DnA3ctNPoGbs4hRIjTok8i+algT1lTHi4SxFvONKNrgQFAq2/gFnWMXgwffgYMJpiKYkmW3tTg3ZQ9Jq+f8XN+A5eeUKHWvJWJ2sgJ1Sop+wwhqFVijqWaJhwtD8MNlSBeWNNWTa5Z5kPZw5+LbVT99wqTdx29lMUH4OIG/D86ruKEauBjvH5xy6um/Sfj7ei6UUVk4AIl3MyD4MSSTOFgSwsH/QJWaQ5as7ZcmgBZkzjjU1UrQ74ci1gWBCSGHtuV1H2mhSnO3Wp/3fEV5a+4wz//6qy8JxjZsmxxy5+4w9CDNJY09T072iKG0EnOS0arEYgXqYnXcYHwjTtUNAcMelOd4xpkoqiTYICWFq0JSiPfPDQdnt+4/wuqcXY47QILbgAAAABJRU5ErkJggg==);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -159,6 +163,7 @@ body.notransparency::before {
|
||||||
z-index: 1;
|
z-index: 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//&::before {
|
//&::before {
|
||||||
// position: absolute;
|
// position: absolute;
|
||||||
// top: -50%;
|
// top: -50%;
|
||||||
|
@ -287,25 +292,25 @@ input[type="text"], input[type="number"] {
|
||||||
|
|
||||||
.artworkMaterial {
|
.artworkMaterial {
|
||||||
position: relative;
|
position: relative;
|
||||||
height:100%;
|
height: 100%;
|
||||||
width:100%;
|
width: 100%;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
pointer-events: none;
|
pointer-events: none;
|
||||||
|
|
||||||
>img {
|
> img {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
width: 200%;
|
width: 200%;
|
||||||
opacity: 0.5;
|
opacity: 0.5;
|
||||||
filter: brightness(200%) blur(180px) saturate(280%) contrast(2);
|
filter: brightness(200%) blur(180px) saturate(280%) contrast(2);
|
||||||
}
|
}
|
||||||
|
|
||||||
>img:first-child {
|
> img:first-child {
|
||||||
top:0;
|
top: 0;
|
||||||
left:0;
|
left: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
>img:last-child {
|
> img:last-child {
|
||||||
bottom:0;
|
bottom: 0;
|
||||||
right: 0;
|
right: 0;
|
||||||
transform: rotate(180deg);
|
transform: rotate(180deg);
|
||||||
}
|
}
|
||||||
|
@ -493,9 +498,11 @@ input[type=range].web-slider::-webkit-slider-runnable-track {
|
||||||
}
|
}
|
||||||
|
|
||||||
.app-sidebar-footer {
|
.app-sidebar-footer {
|
||||||
|
border-top: 1px solid rgba(200, 200, 200, 0.15);
|
||||||
padding: 11px;
|
padding: 11px;
|
||||||
|
|
||||||
.app-playback-controls {
|
.app-playback-controls {
|
||||||
|
margin: 0 auto;
|
||||||
.control-buttons {
|
.control-buttons {
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
|
@ -557,7 +564,7 @@ input[type=range].web-slider::-webkit-slider-runnable-track {
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
margin-right: 35px ;
|
margin-right: 35px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.app-sidebar-button > .sidebar-user-text .fullname {
|
.app-sidebar-button > .sidebar-user-text .fullname {
|
||||||
|
@ -655,7 +662,7 @@ input[type=range].web-slider::-webkit-slider-runnable-track {
|
||||||
}
|
}
|
||||||
|
|
||||||
.usermenu-container {
|
.usermenu-container {
|
||||||
bottom: 66px;
|
top: 0px;
|
||||||
#cmenu.container();
|
#cmenu.container();
|
||||||
|
|
||||||
.usermenu-body {
|
.usermenu-body {
|
||||||
|
@ -665,17 +672,17 @@ input[type=range].web-slider::-webkit-slider-runnable-track {
|
||||||
#cmenu.item();
|
#cmenu.item();
|
||||||
|
|
||||||
.usermenu-item-icon {
|
.usermenu-item-icon {
|
||||||
position:relative;
|
position: relative;
|
||||||
top:1.5px;
|
top: 1.5px;
|
||||||
right:3px;
|
right: 3px;
|
||||||
display:table-cell;
|
display: table-cell;
|
||||||
}
|
}
|
||||||
|
|
||||||
.usermenu-item-name {
|
.usermenu-item-name {
|
||||||
position:relative;
|
position: relative;
|
||||||
bottom:2px;
|
bottom: 2px;
|
||||||
padding-left: 5px;
|
padding-left: 5px;
|
||||||
display:table-cell;
|
display: table-cell;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -869,6 +876,7 @@ input[type=range].web-slider::-webkit-slider-runnable-track {
|
||||||
.app-chrome .app-chrome--left {
|
.app-chrome .app-chrome--left {
|
||||||
width: 30%;
|
width: 30%;
|
||||||
justify-content: left;
|
justify-content: left;
|
||||||
|
-webkit-app-region: drag;
|
||||||
}
|
}
|
||||||
|
|
||||||
.app-chrome .app-chrome--center {
|
.app-chrome .app-chrome--center {
|
||||||
|
@ -986,18 +994,31 @@ input[type=range].web-slider::-webkit-slider-runnable-track {
|
||||||
height: 100%;
|
height: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
.app-chrome .app-chrome-item > .app-title {
|
.app-chrome .app-chrome-item > .app-mainmenu {
|
||||||
width: 100px;
|
width: 110px;
|
||||||
font-size: 13px;
|
font-size: 13px;
|
||||||
background: url("./AppHeader.svg");
|
background: url("./assets/AppChromeBtn.svg");
|
||||||
background-size: 95px;
|
background-size: contain;
|
||||||
background-repeat: no-repeat;
|
background-repeat: no-repeat;
|
||||||
background-position: center;
|
background-position: center;
|
||||||
height: 100%;
|
height: 70%;
|
||||||
margin-right: 16px;
|
margin-right: 16px;
|
||||||
margin-left: 16px;
|
margin-left: 16px;
|
||||||
image-rendering: -webkit-optimize-contrast;
|
margin-top: 1.5px;
|
||||||
-webkit-app-region: drag;
|
border: 0px;
|
||||||
|
border-radius: 6px;
|
||||||
|
|
||||||
|
&:hover {
|
||||||
|
background-color: var(--selected);
|
||||||
|
}
|
||||||
|
|
||||||
|
&:active, &.active {
|
||||||
|
background-color: var(--selected-click);
|
||||||
|
}
|
||||||
|
|
||||||
|
&.active {
|
||||||
|
background-image: url("./assets/AppChromeBtn-Open.svg");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.app-chrome .app-chrome-item > .window-controls {
|
.app-chrome .app-chrome-item > .window-controls {
|
||||||
|
@ -1051,6 +1072,44 @@ input[type=range].web-slider::-webkit-slider-runnable-track {
|
||||||
height: 100%;
|
height: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
body[platform="darwin"] .app-chrome .app-chrome-item > .window-controls > div.minimize {
|
||||||
|
height: 12px;
|
||||||
|
width: 12px;
|
||||||
|
background-color: rgb(255, 92, 92);
|
||||||
|
border-radius: 50%;
|
||||||
|
display: inline-block;
|
||||||
|
margin: auto 4px;
|
||||||
|
color: rgb(130, 0, 5);
|
||||||
|
-webkit-app-region: no-drag;
|
||||||
|
background-image: unset;
|
||||||
|
}
|
||||||
|
|
||||||
|
body[platform="darwin"] .app-chrome .app-chrome-item > .window-controls {
|
||||||
|
width: 67px;
|
||||||
|
}
|
||||||
|
|
||||||
|
body[platform="darwin"] .app-chrome .app-chrome-item > .window-controls > div.minmax {
|
||||||
|
height: 12px;
|
||||||
|
width: 12px;
|
||||||
|
background-color: rgb(255, 189, 76);
|
||||||
|
border-radius: 50%;
|
||||||
|
display: inline-block;
|
||||||
|
margin: auto 4px;
|
||||||
|
-webkit-app-region: no-drag;
|
||||||
|
background-image: unset;
|
||||||
|
}
|
||||||
|
|
||||||
|
body[platform="darwin"] .app-chrome .app-chrome-item > .window-controls > div.close {
|
||||||
|
height: 12px;
|
||||||
|
width: 12px;
|
||||||
|
background-color: rgb(0, 202, 86);
|
||||||
|
border-radius: 50%;
|
||||||
|
display: inline-block;
|
||||||
|
margin: auto 4px auto 4px;
|
||||||
|
-webkit-app-region: no-drag;
|
||||||
|
background-image: unset;
|
||||||
|
}
|
||||||
|
|
||||||
.app-chrome .app-chrome-item.playback-controls {
|
.app-chrome .app-chrome-item.playback-controls {
|
||||||
width: 80%;
|
width: 80%;
|
||||||
height: 90%;
|
height: 90%;
|
||||||
|
@ -1067,32 +1126,53 @@ input[type=range].web-slider::-webkit-slider-runnable-track {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
.app-chrome .app-chrome-item > .app-playback-controls .song-name {
|
.app-chrome .app-chrome-item > .app-playback-controls {
|
||||||
font-weight: 600;
|
.song-name {
|
||||||
text-align: center;
|
font-weight: 600;
|
||||||
font-size: 13px;
|
text-align: center;
|
||||||
height: 1.3em;
|
font-size: 13px;
|
||||||
line-height: 1.3em;
|
height: 1.3em;
|
||||||
white-space: nowrap;
|
line-height: 1.3em;
|
||||||
max-width: 360px;
|
white-space: nowrap;
|
||||||
|
max-width: 360px;
|
||||||
|
|
||||||
.song-name-normal {
|
.song-name-normal {
|
||||||
height: inherit;
|
height: inherit;
|
||||||
}
|
}
|
||||||
|
|
||||||
&.song-artist-marquee {
|
&.song-artist-marquee {
|
||||||
> marquee {
|
> marquee {
|
||||||
//margin-bottom: -3px;
|
//margin-bottom: -3px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.explicit-icon {
|
||||||
|
background-image: url("./assets/explicit.svg");
|
||||||
|
height: 9px;
|
||||||
|
width: 13px;
|
||||||
|
filter: contrast(0);
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
margin-left: 3px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.explicit-icon {
|
.lossless-icon {
|
||||||
background-image: url("./assets/explicit.svg");
|
background-image: url("./assets/lossless.svg") !important;
|
||||||
height: 9px;
|
}
|
||||||
width: 36px;
|
|
||||||
|
.ppe-icon {
|
||||||
|
background-image: url("./assets/ppe.svg") !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.audio-type {
|
||||||
filter: contrast(0);
|
filter: contrast(0);
|
||||||
background-repeat: no-repeat;
|
background-repeat: no-repeat;
|
||||||
margin-left: 3px;
|
background-size: contain;
|
||||||
|
height: 15px;
|
||||||
|
width: 15px;
|
||||||
|
position: absolute;
|
||||||
|
right: 0;
|
||||||
|
margin-bottom: 15px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1105,43 +1185,49 @@ input[type=range].web-slider::-webkit-slider-runnable-track {
|
||||||
margin: 0 0 0 0.25em;
|
margin: 0 0 0 0.25em;
|
||||||
}
|
}
|
||||||
|
|
||||||
.app-playback-controls:hover .marquee{
|
.app-playback-controls:hover .marquee {
|
||||||
animation: unset;
|
animation: unset;
|
||||||
&.song-artist{
|
|
||||||
|
&.song-artist {
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
}
|
}
|
||||||
.song-artist{
|
|
||||||
|
.song-artist {
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
}
|
}
|
||||||
&.song-name{
|
|
||||||
|
&.song-name {
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
}
|
}
|
||||||
&::after{
|
|
||||||
|
&::after {
|
||||||
content: none !important;
|
content: none !important;
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
.marquee{
|
.marquee {
|
||||||
animation: marquee 15s linear infinite;
|
animation: marquee 15s linear infinite;
|
||||||
&.song-artist{
|
|
||||||
overflow: unset ;
|
&.song-artist {
|
||||||
|
overflow: unset;
|
||||||
}
|
}
|
||||||
.song-artist{
|
|
||||||
overflow: unset ;
|
.song-artist {
|
||||||
|
overflow: unset;
|
||||||
}
|
}
|
||||||
&.song-name{
|
|
||||||
overflow: unset ;
|
&.song-name {
|
||||||
|
overflow: unset;
|
||||||
}
|
}
|
||||||
&::after{
|
|
||||||
|
&::after {
|
||||||
content: attr(data-value);
|
content: attr(data-value);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
.app-chrome .app-chrome-item > .app-playback-controls .song-progress {
|
.app-chrome .app-chrome-item > .app-playback-controls .song-progress {
|
||||||
@bgColor: transparent;
|
@bgColor: transparent;
|
||||||
//height: 16px;
|
//height: 16px;
|
||||||
|
@ -1241,15 +1327,18 @@ input[type=range].web-slider::-webkit-slider-runnable-track {
|
||||||
&:focus {
|
&:focus {
|
||||||
outline: none;
|
outline: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
&:hover {
|
&:hover {
|
||||||
background: var(--hover);
|
background: var(--hover);
|
||||||
}
|
}
|
||||||
|
|
||||||
&:active {
|
&:active {
|
||||||
background: var(--selected-click);
|
background: var(--selected-click);
|
||||||
transform: scale(0.95);
|
transform: scale(0.95);
|
||||||
}
|
}
|
||||||
|
|
||||||
.svg-icon {
|
.svg-icon {
|
||||||
--url: url('views/svg/more.svg')!important;
|
--url: url('views/svg/more.svg') !important;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1264,7 +1353,7 @@ input[type=range].web-slider::-webkit-slider-runnable-track {
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
}
|
}
|
||||||
|
|
||||||
.app-chrome .app-chrome-item > .app-playback-controls .playback-info > .song-progress{
|
.app-chrome .app-chrome-item > .app-playback-controls .playback-info > .song-progress {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1275,7 +1364,8 @@ input[type=range].web-slider::-webkit-slider-runnable-track {
|
||||||
display: flex;
|
display: flex;
|
||||||
position: relative;
|
position: relative;
|
||||||
}
|
}
|
||||||
.app-chrome .app-chrome-item > .app-playback-controls > div >.song-artist-album {
|
|
||||||
|
.app-chrome .app-chrome-item > .app-playback-controls > div > .song-artist-album {
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
|
@ -1288,11 +1378,11 @@ input[type=range].web-slider::-webkit-slider-runnable-track {
|
||||||
max-width: 340px;
|
max-width: 340px;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
|
|
||||||
.song-artist-album-content{
|
.song-artist-album-content {
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
width:100%;
|
width: 100%;
|
||||||
|
|
||||||
&.song-artist-normal {
|
&.song-artist-normal {
|
||||||
height: inherit;
|
height: inherit;
|
||||||
|
@ -1326,7 +1416,7 @@ input[type="range"].web-slider.display--small::-webkit-slider-thumb {
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Window is smaller <= 1023px width */
|
/* Window is smaller <= 1023px width */
|
||||||
@media only screen and (max-width: 1023px) {
|
@media only screen and (max-width: 1120px) {
|
||||||
.display--small {
|
.display--small {
|
||||||
display: inherit !important;;
|
display: inherit !important;;
|
||||||
|
|
||||||
|
@ -1382,7 +1472,6 @@ input[type="range"].web-slider.display--small::-webkit-slider-thumb {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
.display--large {
|
.display--large {
|
||||||
display: none !important;
|
display: none !important;
|
||||||
}
|
}
|
||||||
|
@ -2164,15 +2253,16 @@ input[type="range"].web-slider.display--small::-webkit-slider-thumb {
|
||||||
border: 1px solid rgba(100, 100, 100, 0.35);
|
border: 1px solid rgba(100, 100, 100, 0.35);
|
||||||
border-top: 1px solid rgba(100, 100, 100, 0.5);
|
border-top: 1px solid rgba(100, 100, 100, 0.5);
|
||||||
color: #eee;
|
color: #eee;
|
||||||
|
white-space: nowrap;
|
||||||
transition: transform 0.2s var(--appleEase), box-shadow 0.2s var(--appleEase);
|
transition: transform 0.2s var(--appleEase), box-shadow 0.2s var(--appleEase);
|
||||||
|
|
||||||
&.md-btn-block {
|
&.md-btn-block {
|
||||||
display: block;
|
display: block;
|
||||||
width:100%;
|
width: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
&.md-btn-glyph {
|
&.md-btn-glyph {
|
||||||
display:flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
|
@ -2185,6 +2275,11 @@ input[type="range"].web-slider.display--small::-webkit-slider-thumb {
|
||||||
border-top: 1px solid rgb(220 53 69 / 50%);
|
border-top: 1px solid rgb(220 53 69 / 50%);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
&.md-btn-small {
|
||||||
|
padding: 6px 8px;
|
||||||
|
font-size: 13px;
|
||||||
|
}
|
||||||
|
|
||||||
&:hover {
|
&:hover {
|
||||||
filter: brightness(125%);
|
filter: brightness(125%);
|
||||||
}
|
}
|
||||||
|
@ -2211,8 +2306,29 @@ input[type="range"].web-slider.display--small::-webkit-slider-thumb {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.btn-group {
|
||||||
|
display:inline-flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
> .md-btn {
|
||||||
|
border-radius:0px;
|
||||||
|
width:100%;
|
||||||
|
}
|
||||||
|
> .md-btn:first-child {
|
||||||
|
border-top-left-radius: 6px;
|
||||||
|
border-bottom-left-radius: 6px;
|
||||||
|
}
|
||||||
|
> .md-btn:last-child {
|
||||||
|
border-top-right-radius: 6px;
|
||||||
|
border-bottom-right-radius: 6px;
|
||||||
|
}
|
||||||
|
> .md-btn:not(:first-child):not(:last-child) {
|
||||||
|
border-radius: 0px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
.md-ico-play {
|
.md-ico-play {
|
||||||
content:url("./assets/play.svg");
|
content: url("./assets/play.svg");
|
||||||
width: 10px;
|
width: 10px;
|
||||||
height: 12px;
|
height: 12px;
|
||||||
margin-right: 1px;
|
margin-right: 1px;
|
||||||
|
@ -2220,7 +2336,7 @@ input[type="range"].web-slider.display--small::-webkit-slider-thumb {
|
||||||
}
|
}
|
||||||
|
|
||||||
.md-ico-shuffle {
|
.md-ico-shuffle {
|
||||||
content:url("./assets/shuffle.svg");
|
content: url("./assets/shuffle.svg");
|
||||||
width: 1em;
|
width: 1em;
|
||||||
height: 1em;
|
height: 1em;
|
||||||
margin-right: 1px;
|
margin-right: 1px;
|
||||||
|
@ -2229,7 +2345,7 @@ input[type="range"].web-slider.display--small::-webkit-slider-thumb {
|
||||||
}
|
}
|
||||||
|
|
||||||
.md-ico-remove {
|
.md-ico-remove {
|
||||||
content:url("./assets/feather/x-circle-white.svg");
|
content: url("./assets/feather/x-circle-white.svg");
|
||||||
width: 16px;
|
width: 16px;
|
||||||
height: 16px;
|
height: 16px;
|
||||||
margin-right: 1px;
|
margin-right: 1px;
|
||||||
|
@ -2238,7 +2354,7 @@ input[type="range"].web-slider.display--small::-webkit-slider-thumb {
|
||||||
}
|
}
|
||||||
|
|
||||||
.md-ico-add {
|
.md-ico-add {
|
||||||
content:url("./assets/feather/plus-circle-white.svg");
|
content: url("./assets/feather/plus-circle-white.svg");
|
||||||
width: 1em;
|
width: 1em;
|
||||||
height: 1em;
|
height: 1em;
|
||||||
margin-right: 1px;
|
margin-right: 1px;
|
||||||
|
@ -2737,7 +2853,7 @@ input[type="range"].web-slider.display--small::-webkit-slider-thumb {
|
||||||
margin: 32px 6px;
|
margin: 32px 6px;
|
||||||
font-size: 0.8rem;
|
font-size: 0.8rem;
|
||||||
white-space: pre-wrap;
|
white-space: pre-wrap;
|
||||||
display:block;
|
display: block;
|
||||||
}
|
}
|
||||||
|
|
||||||
.podcast-artwork {
|
.podcast-artwork {
|
||||||
|
@ -2776,6 +2892,7 @@ input[type="range"].web-slider.display--small::-webkit-slider-thumb {
|
||||||
top: 0;
|
top: 0;
|
||||||
z-index: 2;
|
z-index: 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
.close-btn {
|
.close-btn {
|
||||||
width: 50px;
|
width: 50px;
|
||||||
height: 42px;
|
height: 42px;
|
||||||
|
@ -2810,7 +2927,7 @@ input[type="range"].web-slider.display--small::-webkit-slider-thumb {
|
||||||
}
|
}
|
||||||
|
|
||||||
.podcast-header {
|
.podcast-header {
|
||||||
text-align:center;
|
text-align: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
.podcast-play-btn {
|
.podcast-play-btn {
|
||||||
|
@ -2823,7 +2940,7 @@ input[type="range"].web-slider.display--small::-webkit-slider-thumb {
|
||||||
margin: 12px;
|
margin: 12px;
|
||||||
font-size: 0.75em;
|
font-size: 0.75em;
|
||||||
white-space: pre-wrap;
|
white-space: pre-wrap;
|
||||||
display:block;
|
display: block;
|
||||||
line-break: anywhere;
|
line-break: anywhere;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2851,8 +2968,6 @@ input[type="range"].web-slider.display--small::-webkit-slider-thumb {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* Album / Playlist Page */
|
/* Album / Playlist Page */
|
||||||
.playlist-page {
|
.playlist-page {
|
||||||
--bgColor: transparent;
|
--bgColor: transparent;
|
||||||
|
@ -2898,7 +3013,7 @@ input[type="range"].web-slider.display--small::-webkit-slider-thumb {
|
||||||
opacity: .7;
|
opacity: .7;
|
||||||
animation: playlistArtworkFadeIn 1s var(--appleEase);
|
animation: playlistArtworkFadeIn 1s var(--appleEase);
|
||||||
|
|
||||||
.artworkMaterial>img {
|
.artworkMaterial > img {
|
||||||
filter: brightness(100%) blur(80px) saturate(100%) contrast(1);
|
filter: brightness(100%) blur(80px) saturate(100%) contrast(1);
|
||||||
object-position: center;
|
object-position: center;
|
||||||
object-fit: cover;
|
object-fit: cover;
|
||||||
|
@ -2921,7 +3036,7 @@ input[type="range"].web-slider.display--small::-webkit-slider-thumb {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
|
|
||||||
>.row {
|
> .row {
|
||||||
width: calc(100% - 32px);
|
width: calc(100% - 32px);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3062,16 +3177,58 @@ input[type="range"].web-slider.display--small::-webkit-slider-thumb {
|
||||||
margin: 6px;
|
margin: 6px;
|
||||||
opacity: 0.7;
|
opacity: 0.7;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
&.inline-playlist {
|
||||||
|
overflow: hidden;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
background: rgba(0, 0, 0, 0.5);
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
z-index: 6;
|
||||||
|
position: sticky;
|
||||||
|
margin-top: calc(var(--navigationBarHeight) * -1);
|
||||||
|
|
||||||
|
.floating-header {
|
||||||
|
opacity: 1;
|
||||||
|
top: 0px;
|
||||||
|
z-index: 6;
|
||||||
|
padding: 1em;
|
||||||
|
backdrop-filter: unset;
|
||||||
|
background: black;
|
||||||
|
h3 {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.playlist-inner {
|
||||||
|
background: black;
|
||||||
|
width: 80%;
|
||||||
|
height: 100%;
|
||||||
|
overflow: overlay;
|
||||||
|
box-shadow: var(--ciderShadow-Generic);
|
||||||
|
border-radius: var(--mediaItemRadius) var(--mediaItemRadius) 0px 0px;
|
||||||
|
|
||||||
|
.close-btn {
|
||||||
|
position: sticky;
|
||||||
|
top: 16px;
|
||||||
|
left: 16px;
|
||||||
|
margin-left: 16px;
|
||||||
|
z-index: 7;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@keyframes playlistArtworkFadeIn {
|
@keyframes playlistArtworkFadeIn {
|
||||||
0%{
|
0% {
|
||||||
opacity: 0;
|
opacity: 0;
|
||||||
}
|
}
|
||||||
100%{
|
100% {
|
||||||
opacity: 0.7;
|
opacity: 0.7;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Collection Page
|
// Collection Page
|
||||||
.collection-page {
|
.collection-page {
|
||||||
padding-bottom: 128px;
|
padding-bottom: 128px;
|
||||||
|
@ -3145,6 +3302,7 @@ input[type="range"].web-slider.display--small::-webkit-slider-thumb {
|
||||||
|
|
||||||
.header-content {
|
.header-content {
|
||||||
z-index: 1;
|
z-index: 1;
|
||||||
|
margin-top: -16px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -3160,7 +3318,7 @@ input[type="range"].web-slider.display--small::-webkit-slider-thumb {
|
||||||
opacity: .7;
|
opacity: .7;
|
||||||
animation: playlistArtworkFadeIn 1s var(--appleEase);
|
animation: playlistArtworkFadeIn 1s var(--appleEase);
|
||||||
|
|
||||||
.artworkMaterial>img {
|
.artworkMaterial > img {
|
||||||
filter: brightness(100%) blur(80px) saturate(100%) contrast(1);
|
filter: brightness(100%) blur(80px) saturate(100%) contrast(1);
|
||||||
object-position: center;
|
object-position: center;
|
||||||
object-fit: cover;
|
object-fit: cover;
|
||||||
|
@ -3205,7 +3363,6 @@ input[type="range"].web-slider.display--small::-webkit-slider-thumb {
|
||||||
width: 200px;
|
width: 200px;
|
||||||
height: 200px;
|
height: 200px;
|
||||||
margin: 32px;
|
margin: 32px;
|
||||||
margin-top: -5px;
|
|
||||||
position: relative;
|
position: relative;
|
||||||
|
|
||||||
.overlay-play {
|
.overlay-play {
|
||||||
|
@ -3264,6 +3421,7 @@ input[type="range"].web-slider.display--small::-webkit-slider-thumb {
|
||||||
transition: transform 0s var(--appleEase), box-shadow 0.2s var(--appleEase);
|
transition: transform 0s var(--appleEase), box-shadow 0.2s var(--appleEase);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.artist-title {
|
.artist-title {
|
||||||
|
|
||||||
.artist-play {
|
.artist-play {
|
||||||
|
@ -3412,11 +3570,13 @@ input[type="range"].web-slider.display--small::-webkit-slider-thumb {
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
|
-webkit-app-region: no-drag;
|
||||||
|
|
||||||
.menu-header-body {
|
.menu-header-body {
|
||||||
padding: 6px;
|
padding: 6px;
|
||||||
display: flex;
|
display: flex;
|
||||||
background: rgb(200 200 200 / 10%);
|
background: rgb(200 200 200 / 10%);
|
||||||
|
|
||||||
.menu-option-header {
|
.menu-option-header {
|
||||||
width: 40px;
|
width: 40px;
|
||||||
height: 40px;
|
height: 40px;
|
||||||
|
@ -3429,7 +3589,7 @@ input[type="range"].web-slider.display--small::-webkit-slider-thumb {
|
||||||
background: transparent;
|
background: transparent;
|
||||||
|
|
||||||
&.active {
|
&.active {
|
||||||
.sidebar-icon>.svg-icon {
|
.sidebar-icon > .svg-icon {
|
||||||
--color: var(--keyColor);
|
--color: var(--keyColor);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -3443,6 +3603,7 @@ input[type="range"].web-slider.display--small::-webkit-slider-thumb {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.menu-panel-body {
|
.menu-panel-body {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-flow: column;
|
flex-flow: column;
|
||||||
|
@ -3540,7 +3701,8 @@ input[type="range"].web-slider.display--small::-webkit-slider-thumb {
|
||||||
height: 32px;
|
height: 32px;
|
||||||
width: 32px;
|
width: 32px;
|
||||||
}
|
}
|
||||||
.infinity{
|
|
||||||
|
.infinity {
|
||||||
content: url("./assets/infinity.svg");
|
content: url("./assets/infinity.svg");
|
||||||
margin: auto;
|
margin: auto;
|
||||||
}
|
}
|
||||||
|
@ -3720,15 +3882,33 @@ input[type="range"].web-slider.display--small::-webkit-slider-thumb {
|
||||||
/* CSS.gg
|
/* CSS.gg
|
||||||
*/
|
*/
|
||||||
@keyframes load-bar {
|
@keyframes load-bar {
|
||||||
10% {box-shadow: inset 0 -4px 0}
|
10% {
|
||||||
20% {box-shadow: inset 0 -10px 0}
|
box-shadow: inset 0 -4px 0
|
||||||
30% {box-shadow: inset 0 -12px 0}
|
}
|
||||||
40% {box-shadow: inset 0 -8px 0}
|
20% {
|
||||||
50% {box-shadow: inset 0 -4px 0}
|
box-shadow: inset 0 -10px 0
|
||||||
60% {box-shadow: inset 0 -6px 0}
|
}
|
||||||
80% {box-shadow: inset 0 -12px 0}
|
30% {
|
||||||
90% {box-shadow: inset 0 -6px 0}
|
box-shadow: inset 0 -12px 0
|
||||||
to {box-shadow: inset 0 -2px 0}
|
}
|
||||||
|
40% {
|
||||||
|
box-shadow: inset 0 -8px 0
|
||||||
|
}
|
||||||
|
50% {
|
||||||
|
box-shadow: inset 0 -4px 0
|
||||||
|
}
|
||||||
|
60% {
|
||||||
|
box-shadow: inset 0 -6px 0
|
||||||
|
}
|
||||||
|
80% {
|
||||||
|
box-shadow: inset 0 -12px 0
|
||||||
|
}
|
||||||
|
90% {
|
||||||
|
box-shadow: inset 0 -6px 0
|
||||||
|
}
|
||||||
|
to {
|
||||||
|
box-shadow: inset 0 -2px 0
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.loadbar-sound,
|
.loadbar-sound,
|
||||||
|
@ -3740,24 +3920,28 @@ input[type="range"].web-slider.display--small::-webkit-slider-thumb {
|
||||||
height: 28px;
|
height: 28px;
|
||||||
box-shadow: inset 0 -12px 0;
|
box-shadow: inset 0 -12px 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.loadbar-sound {
|
.loadbar-sound {
|
||||||
margin-left: 22px;
|
margin-left: 22px;
|
||||||
margin-top: -16px;
|
margin-top: -16px;
|
||||||
position: relative;
|
position: relative;
|
||||||
transform: scale(var(--load-bar,1));
|
transform: scale(var(--load-bar, 1));
|
||||||
color: var(--keyColor);
|
color: var(--keyColor);
|
||||||
display: block;
|
display: block;
|
||||||
}
|
}
|
||||||
|
|
||||||
.loadbar-sound::after,
|
.loadbar-sound::after,
|
||||||
.loadbar-sound::before {
|
.loadbar-sound::before {
|
||||||
content: "";
|
content: "";
|
||||||
position: absolute;
|
position: absolute;
|
||||||
bottom: 0
|
bottom: 0
|
||||||
}
|
}
|
||||||
|
|
||||||
.loadbar-sound::before {
|
.loadbar-sound::before {
|
||||||
left: -4.5px;
|
left: -4.5px;
|
||||||
animation-delay: -2.4s
|
animation-delay: -2.4s
|
||||||
}
|
}
|
||||||
|
|
||||||
.loadbar-sound::after {
|
.loadbar-sound::after {
|
||||||
right: -4.2px;
|
right: -4.2px;
|
||||||
animation-delay: -3.7s
|
animation-delay: -3.7s
|
||||||
|
@ -4486,7 +4670,7 @@ input[type="range"].web-slider.display--small::-webkit-slider-thumb {
|
||||||
height: 50vh;
|
height: 50vh;
|
||||||
}
|
}
|
||||||
|
|
||||||
@media only screen and (max-width: 1023px) {
|
@media only screen and (max-width: 1121px) {
|
||||||
.display--large {
|
.display--large {
|
||||||
display: flex !important;
|
display: flex !important;
|
||||||
}
|
}
|
||||||
|
@ -4861,7 +5045,7 @@ input[type="range"].web-slider.display--small::-webkit-slider-thumb {
|
||||||
-webkit-app-region: no-drag;
|
-webkit-app-region: no-drag;
|
||||||
}
|
}
|
||||||
|
|
||||||
#mini-pin{
|
#mini-pin {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -4877,7 +5061,7 @@ input[type="range"].web-slider.display--small::-webkit-slider-thumb {
|
||||||
height: 50vh;
|
height: 50vh;
|
||||||
}
|
}
|
||||||
|
|
||||||
@media only screen and (max-width: 1023px) {
|
@media only screen and (max-width: 1121px) {
|
||||||
.display--large {
|
.display--large {
|
||||||
display: flex !important;
|
display: flex !important;
|
||||||
}
|
}
|
||||||
|
@ -5091,7 +5275,7 @@ input[type="range"].web-slider.display--small::-webkit-slider-thumb {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
|
|
||||||
.mediaitem-artwork{
|
.mediaitem-artwork {
|
||||||
border-radius: unset;
|
border-radius: unset;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -5105,8 +5289,9 @@ input[type="range"].web-slider.display--small::-webkit-slider-thumb {
|
||||||
z-index: 3;
|
z-index: 3;
|
||||||
opacity: 0;
|
opacity: 0;
|
||||||
padding: 3%;
|
padding: 3%;
|
||||||
|
|
||||||
&:hover {
|
&:hover {
|
||||||
opacity : 1;
|
opacity: 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -5250,6 +5435,7 @@ input[type="range"].web-slider.display--small::-webkit-slider-thumb {
|
||||||
height: 300px;
|
height: 300px;
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
|
|
||||||
.grid-body {
|
.grid-body {
|
||||||
display: grid;
|
display: grid;
|
||||||
grid-auto-flow: column dense;
|
grid-auto-flow: column dense;
|
||||||
|
@ -5276,7 +5462,7 @@ input[type="range"].web-slider.display--small::-webkit-slider-thumb {
|
||||||
}
|
}
|
||||||
|
|
||||||
.settings-page {
|
.settings-page {
|
||||||
padding:0px;
|
padding: 0px;
|
||||||
|
|
||||||
.md-option-header {
|
.md-option-header {
|
||||||
padding: 1.25em 1.25em;
|
padding: 1.25em 1.25em;
|
||||||
|
@ -5286,6 +5472,7 @@ input[type="range"].web-slider.display--small::-webkit-slider-thumb {
|
||||||
font-size: 1.0em;
|
font-size: 1.0em;
|
||||||
background: rgb(255 255 255 / 3%);
|
background: rgb(255 255 255 / 3%);
|
||||||
}
|
}
|
||||||
|
|
||||||
.settings-option-body {
|
.settings-option-body {
|
||||||
margin: 16px;
|
margin: 16px;
|
||||||
}
|
}
|
||||||
|
@ -5755,7 +5942,7 @@ body.no-gpu {
|
||||||
.modal-window {
|
.modal-window {
|
||||||
height: 330px;
|
height: 330px;
|
||||||
max-height: 330px;
|
max-height: 330px;
|
||||||
width: 800px;
|
width: 740px;
|
||||||
max-width: 800px;
|
max-width: 800px;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
|
|
||||||
|
@ -5799,43 +5986,49 @@ body.no-gpu {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.modal-content{
|
|
||||||
|
.modal-content {
|
||||||
display: block;
|
display: block;
|
||||||
|
|
||||||
.inputs-container{
|
.inputs-container {
|
||||||
margin-left: 8px;
|
margin-left: 8px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.input-container{
|
.input-container {
|
||||||
display: inline-grid;
|
display: inline-grid;
|
||||||
width: 54px;
|
width: 54px;
|
||||||
justify-items: center;
|
justify-items: center;
|
||||||
font-size: 0.7em;
|
font-size: 0.7em;
|
||||||
}
|
}
|
||||||
.input-container.mini{
|
|
||||||
|
.input-container.mini {
|
||||||
display: inline-grid;
|
display: inline-grid;
|
||||||
width: 43px;
|
width: 43px;
|
||||||
justify-items: center;
|
justify-items: center;
|
||||||
font-size: 0.7em;
|
font-size: 0.7em;
|
||||||
}
|
}
|
||||||
.freq-header{
|
|
||||||
|
.freq-header {
|
||||||
margin-bottom: 2px;
|
margin-bottom: 2px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.reset-button{
|
.reset-button {
|
||||||
width: 50%;
|
width: 50%;
|
||||||
margin-left: 25%;
|
margin-left: 25%;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
input.eq-slider {
|
input.eq-slider {
|
||||||
-webkit-appearance: slider-vertical;
|
-webkit-appearance: slider-vertical;
|
||||||
width: 5%;
|
width: 5%;
|
||||||
}
|
}
|
||||||
input[type="number"]{
|
|
||||||
|
input[type="number"] {
|
||||||
padding: unset;
|
padding: unset;
|
||||||
width: 55px;
|
width: 55px;
|
||||||
}
|
}
|
||||||
.header input.eq-slider {
|
|
||||||
|
.header input.eq-slider {
|
||||||
-webkit-appearance: slider-vertical;
|
-webkit-appearance: slider-vertical;
|
||||||
width: 5%;
|
width: 5%;
|
||||||
opacity: 0;
|
opacity: 0;
|
||||||
|
@ -5849,5 +6042,17 @@ body.no-gpu {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
body[platform='darwin'] {
|
||||||
|
#window-controls-container {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.app-chrome .app-chrome-item > .app-mainmenu {
|
||||||
|
opacity: 0;
|
||||||
|
pointer-events: none;
|
||||||
|
-webkit-app-region: drag;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@import url("less/compact.less");
|
@import url("less/compact.less");
|
||||||
|
|
141
src/renderer/views/app/chrome-top.ejs
Normal file
141
src/renderer/views/app/chrome-top.ejs
Normal file
|
@ -0,0 +1,141 @@
|
||||||
|
<div class="app-chrome" :style="{'display': chrome.topChromeVisible ? '' : 'none'}">
|
||||||
|
<div class="app-chrome--left">
|
||||||
|
<div class="app-chrome-item full-height" v-if="chrome.windowControlPosition == 'left'">
|
||||||
|
<div class="window-controls">
|
||||||
|
<div class="close" @click="ipcRenderer.send('close')"></div>
|
||||||
|
<div class="minimize" @click="ipcRenderer.send('minimize')"></div>
|
||||||
|
<div class="minmax restore" v-if="chrome.maximized"
|
||||||
|
@click="ipcRenderer.send('maximize')">
|
||||||
|
</div>
|
||||||
|
<div class="minmax" v-else @click="ipcRenderer.send('maximize')"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="app-chrome-item full-height" v-else>
|
||||||
|
<button class="app-mainmenu"
|
||||||
|
@blur="mainMenuVisibility(false)"
|
||||||
|
@click="mainMenuVisibility(true)"
|
||||||
|
:class="{active: chrome.menuOpened}"></button>
|
||||||
|
</div>
|
||||||
|
<div class="app-chrome-item display--large">
|
||||||
|
<button class="playback-button--small shuffle" v-if="mk.shuffleMode == 0"
|
||||||
|
@click="mk.shuffleMode = 1"></button>
|
||||||
|
<button class="playback-button--small shuffle active" v-else
|
||||||
|
@click="mk.shuffleMode = 0"></button>
|
||||||
|
</div>
|
||||||
|
<div class="app-chrome-item display--large">
|
||||||
|
<button class="playback-button previous" @click="prevButton()"></button>
|
||||||
|
</div>
|
||||||
|
<div class="app-chrome-item display--large">
|
||||||
|
<button class="playback-button pause" @click="mk.pause()" v-if="mk.isPlaying"></button>
|
||||||
|
<button class="playback-button play" @click="mk.play()" v-else></button>
|
||||||
|
</div>
|
||||||
|
<div class="app-chrome-item display--large">
|
||||||
|
<button class="playback-button next" @click="mk.skipToNextItem()"></button>
|
||||||
|
</div>
|
||||||
|
<div class="app-chrome-item display--large">
|
||||||
|
<button class="playback-button--small repeat" v-if="mk.repeatMode == 0"
|
||||||
|
@click="mk.repeatMode = 1"></button>
|
||||||
|
<button class="playback-button--small repeat repeatOne" @click="mk.repeatMode = 2"
|
||||||
|
v-else-if="mk.repeatMode == 1"></button>
|
||||||
|
<button class="playback-button--small repeat active" @click="mk.repeatMode = 0"
|
||||||
|
v-else-if="mk.repeatMode == 2"></button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="app-chrome--center">
|
||||||
|
<div class="app-chrome-item playback-controls">
|
||||||
|
<template v-if="mkReady()">
|
||||||
|
<div class="app-playback-controls" @mouseover="chrome.progresshover = true"
|
||||||
|
@mouseleave="chrome.progresshover = false" @contextmenu="nowPlayingContextMenu">
|
||||||
|
<div class="artwork" @click="drawer.open = false; fullscreen(true)">
|
||||||
|
<mediaitem-artwork :url="currentArtUrl"></mediaitem-artwork>
|
||||||
|
</div>
|
||||||
|
<div class="playback-info">
|
||||||
|
<div class="song-name"
|
||||||
|
:class="[isElementOverflowing('#app-main > div.app-chrome > div.app-chrome--center > div > div > div.playback-info > div.song-name') ? 'marquee' : '']">
|
||||||
|
{{ mk.nowPlayingItem["attributes"]["name"] }}
|
||||||
|
<div class="explicit-icon"
|
||||||
|
v-if="mk.nowPlayingItem['attributes']['contentRating'] == 'explicit'"
|
||||||
|
style="display: inline-block"></div>
|
||||||
|
</div>
|
||||||
|
<div class="audio-type ppe-icon" v-if="cfg.advanced.ciderPPE == true"></div>
|
||||||
|
<div class="song-artist-album">
|
||||||
|
<div class="song-artist-album-content"
|
||||||
|
:class="[isElementOverflowing('#app-main > .app-chrome .app-chrome-item > .app-playback-controls > div >.song-artist-album > .song-artist-album-content') ? 'marquee' : '']"
|
||||||
|
style="display: inline-block; -webkit-box-orient: horizontal; white-space: nowrap;">
|
||||||
|
<div class="item-navigate song-artist" style="display: inline-block"
|
||||||
|
@click="getNowPlayingItemDetailed(`artist`)">
|
||||||
|
{{ mk.nowPlayingItem["attributes"]["artistName"] }}
|
||||||
|
</div>
|
||||||
|
<div class="song-artist item-navigate" style="display: inline-block"
|
||||||
|
@click="getNowPlayingItemDetailed('album')"
|
||||||
|
v-if="mk.nowPlayingItem['attributes']['albumName'] != ''">
|
||||||
|
<div class="separator" style="display: inline-block;">{{"—"}}</div>
|
||||||
|
{{(mk.nowPlayingItem["attributes"]["albumName"]) ?
|
||||||
|
(mk.nowPlayingItem["attributes"]["albumName"]) : "" }}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="song-progress">
|
||||||
|
<div class="song-duration"
|
||||||
|
style="justify-content: space-between; height: 1px;"
|
||||||
|
:style="[chrome.progresshover ? {'display': 'flex'} : {'display' : 'none'} ]">
|
||||||
|
<p style="width: auto">{{ convertTime(getSongProgress()) }}</p>
|
||||||
|
<p style="width: auto">{{ convertTime(mk.currentPlaybackDuration) }}
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<input type="range" step="0.01" min="0" :style="progressBarStyle()"
|
||||||
|
@input="playerLCD.desiredDuration = $event.target.value;playerLCD.userInteraction = true"
|
||||||
|
@mouseup="mk.seekToTime($event.target.value);playerLCD.desiredDuration = 0;playerLCD.userInteraction = false"
|
||||||
|
:max="mk.currentPlaybackDuration" :value="getSongProgress()">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<template v-if="mk.nowPlayingItem['attributes']['playParams']">
|
||||||
|
<div class="actions">
|
||||||
|
<button class="lcdMenu" @click="nowPlayingContextMenu">
|
||||||
|
<div class="svg-icon"></div>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="app-chrome--right">
|
||||||
|
<div class="app-chrome-item volume display--large">
|
||||||
|
<button class="volume-button--small volume" @click="muteButtonPressed()"
|
||||||
|
:class="{'active': this.cfg.audio.volume == 0}"></button>
|
||||||
|
<input type="range" @wheel="volumeWheel" :step="cfg.audio.volumeStep" min="0" max="1"
|
||||||
|
v-model="mk.volume" v-if="typeof mk.volume != 'undefined'" @change="checkMuteChange()">
|
||||||
|
</div>
|
||||||
|
<div class="app-chrome-item generic">
|
||||||
|
<button class="playback-button--small miniplayer"
|
||||||
|
@click="drawer.open = false; miniPlayer(true)"></button>
|
||||||
|
</div>
|
||||||
|
<div class="app-chrome-item generic">
|
||||||
|
<button class="playback-button--small queue" :class="{'active': drawer.panel == 'queue'}"
|
||||||
|
@click="invokeDrawer('queue')"></button>
|
||||||
|
</div>
|
||||||
|
<div class="app-chrome-item generic">
|
||||||
|
<template v-if="lyrics && lyrics != [] && lyrics.length > 0">
|
||||||
|
<button class="playback-button--small lyrics"
|
||||||
|
:class="{'active': drawer.panel == 'lyrics'}"
|
||||||
|
@click="invokeDrawer('lyrics')"></button>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div class="app-chrome-item full-height" id="window-controls-container" v-if="chrome.windowControlPosition == 'right'">
|
||||||
|
<div class="window-controls">
|
||||||
|
<div class="minimize" @click="ipcRenderer.send('minimize')"></div>
|
||||||
|
<div class="minmax restore" v-if="chrome.maximized"
|
||||||
|
@click="ipcRenderer.send('maximize')">
|
||||||
|
</div>
|
||||||
|
<div class="minmax" v-else @click="ipcRenderer.send('maximize')"></div>
|
||||||
|
<div class="close" @click="ipcRenderer.send('close')"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
|
@ -23,11 +23,6 @@
|
||||||
<input tabindex="0" type="range" class="eq-slider mini" orient="vertical" min="-15" max="15" step="1" v-model="$root.cfg.audio.equalizer.vibrantBass" @change="changeVibrantBass()">
|
<input tabindex="0" type="range" class="eq-slider mini" orient="vertical" min="-15" max="15" step="1" v-model="$root.cfg.audio.equalizer.vibrantBass" @change="changeVibrantBass()">
|
||||||
Vibrant Bass
|
Vibrant Bass
|
||||||
</div>
|
</div>
|
||||||
<div class="input-container mini">
|
|
||||||
<input tabindex="0" type="number" class="eq-freq" orient="vertical" min="-12" max="12" step="0.1" v-model="$root.cfg.audio.equalizer.preamp" @change="changePreamp()">
|
|
||||||
<input tabindex="0" type="range" class="eq-slider mini" orient="vertical" min="-12" max="12" step="0.1" v-model="$root.cfg.audio.equalizer.preamp" @change="changePreamp()">
|
|
||||||
Preamp
|
|
||||||
</div>
|
|
||||||
<div class="input-container mini">
|
<div class="input-container mini">
|
||||||
{{$root.cfg.audio.equalizer.mix}}
|
{{$root.cfg.audio.equalizer.mix}}
|
||||||
<input tabindex="0" type="range" class="eq-slider mini" orient="vertical" min="0" max="2" step="0.1" v-model="$root.cfg.audio.equalizer.mix" @change="changeMix()">
|
<input tabindex="0" type="range" class="eq-slider mini" orient="vertical" min="0" max="2" step="0.1" v-model="$root.cfg.audio.equalizer.mix" @change="changeMix()">
|
||||||
|
@ -128,7 +123,6 @@
|
||||||
this.frequencies = []
|
this.frequencies = []
|
||||||
this.gain = []
|
this.gain = []
|
||||||
this.Q = []
|
this.Q = []
|
||||||
this.preamp = 0
|
|
||||||
this.mix = 1
|
this.mix = 1
|
||||||
this.vibrantBass = 0
|
this.vibrantBass = 0
|
||||||
this.userGenerated = true
|
this.userGenerated = true
|
||||||
|
@ -140,7 +134,6 @@
|
||||||
'frequencies': [32, 63, 125, 250, 500, 1000, 2000, 4000, 8000, 16000],
|
'frequencies': [32, 63, 125, 250, 500, 1000, 2000, 4000, 8000, 16000],
|
||||||
'gain': [0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
'gain': [0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||||
'Q': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
|
'Q': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
|
||||||
'preamp': 0,
|
|
||||||
'mix': 1,
|
'mix': 1,
|
||||||
'vibrantBass': 0,
|
'vibrantBass': 0,
|
||||||
'userGenerated': false
|
'userGenerated': false
|
||||||
|
@ -150,7 +143,6 @@
|
||||||
'frequencies': [32, 75, 125, 197, 500, 1000, 2000, 3040, 8000, 16000],
|
'frequencies': [32, 75, 125, 197, 500, 1000, 2000, 3040, 8000, 16000],
|
||||||
'gain': [0, 2.1, 0, 0.8, 0, 0, 0, -1.5, 0, 0],
|
'gain': [0, 2.1, 0, 0.8, 0, 0, 0, -1.5, 0, 0],
|
||||||
'Q': [1, 0.7, 1, 1.5, 1, 1, 1, 2, 1, 1],
|
'Q': [1, 0.7, 1, 1.5, 1, 1, 1, 2, 1, 1],
|
||||||
'preamp': 0,
|
|
||||||
'mix': 1,
|
'mix': 1,
|
||||||
'vibrantBass': 0,
|
'vibrantBass': 0,
|
||||||
'userGenerated': false
|
'userGenerated': false
|
||||||
|
@ -160,7 +152,6 @@
|
||||||
'frequencies': [32, 63, 125, 250, 466, 1000, 2000, 4000, 8000, 20000],
|
'frequencies': [32, 63, 125, 250, 466, 1000, 2000, 4000, 8000, 20000],
|
||||||
'gain': [0, 0, 0, 0, -2, 0, 0, 0, 0, 10],
|
'gain': [0, 0, 0, 0, -2, 0, 0, 0, 0, 10],
|
||||||
'Q': [1, 1, 1, 1, 0.6, 1, 1, 1, 1, 0.1],
|
'Q': [1, 1, 1, 1, 0.6, 1, 1, 1, 1, 0.1],
|
||||||
'preamp': 0,
|
|
||||||
'mix': 1,
|
'mix': 1,
|
||||||
'vibrantBass': 0,
|
'vibrantBass': 0,
|
||||||
'userGenerated': false
|
'userGenerated': false
|
||||||
|
@ -170,7 +161,6 @@
|
||||||
'frequencies': [32, 75, 125, 220, 700, 1000, 2000, 4000, 10000, 16000],
|
'frequencies': [32, 75, 125, 220, 700, 1000, 2000, 4000, 10000, 16000],
|
||||||
'gain': [0, -8, 0, -0.1, -3, 0, 0, 0, 4, 0],
|
'gain': [0, -8, 0, -0.1, -3, 0, 0, 0, 4, 0],
|
||||||
'Q': [1, 0.2, 1, 2.0, 1.4, 1, 1, 1, 0.1, 1],
|
'Q': [1, 0.2, 1, 2.0, 1.4, 1, 1, 1, 0.1, 1],
|
||||||
'preamp': 0,
|
|
||||||
'mix': 1,
|
'mix': 1,
|
||||||
'vibrantBass': 0,
|
'vibrantBass': 0,
|
||||||
'userGenerated': false
|
'userGenerated': false
|
||||||
|
@ -180,7 +170,6 @@
|
||||||
'frequencies': [20, 63, 125, 250, 400, 1000, 2000, 4000, 8000, 20000],
|
'frequencies': [20, 63, 125, 250, 400, 1000, 2000, 4000, 8000, 20000],
|
||||||
'gain': [-22, 0, 0, 0, -3, 0, 1.8, 0, 0, 3.5],
|
'gain': [-22, 0, 0, 0, -3, 0, 1.8, 0, 0, 3.5],
|
||||||
'Q': [0.3, 1, 1, 1, 2.0, 1, 0.7, 1, 1, 0.8],
|
'Q': [0.3, 1, 1, 1, 2.0, 1, 0.7, 1, 1, 0.8],
|
||||||
'preamp': 0,
|
|
||||||
'mix': 1,
|
'mix': 1,
|
||||||
'vibrantBass': 0,
|
'vibrantBass': 0,
|
||||||
'userGenerated': false
|
'userGenerated': false
|
||||||
|
@ -190,7 +179,6 @@
|
||||||
'frequencies': [20, 63, 155, 250, 500, 1000, 2000, 5000, 11000, 16000],
|
'frequencies': [20, 63, 155, 250, 500, 1000, 2000, 5000, 11000, 16000],
|
||||||
'gain': [-15, 0, -3, 0, 0, 0, 0, 3.1, 0, 0],
|
'gain': [-15, 0, -3, 0, 0, 0, 0, 3.1, 0, 0],
|
||||||
'Q': [0.5, 1, 2, 1, 1, 1, 1, 1.5, 0.1, 1],
|
'Q': [0.5, 1, 2, 1, 1, 1, 1, 1.5, 0.1, 1],
|
||||||
'preamp': 0,
|
|
||||||
'mix': 1,
|
'mix': 1,
|
||||||
'vibrantBass': 0,
|
'vibrantBass': 0,
|
||||||
'userGenerated': false
|
'userGenerated': false
|
||||||
|
@ -200,7 +188,6 @@
|
||||||
'frequencies': [32, 63, 125, 250, 500, 1128, 2000, 4057, 8000, 16000],
|
'frequencies': [32, 63, 125, 250, 500, 1128, 2000, 4057, 8000, 16000],
|
||||||
'gain': [0, 0, 0, 0, 0, 2, 0, -6.4, 0, 0],
|
'gain': [0, 0, 0, 0, 0, 2, 0, -6.4, 0, 0],
|
||||||
'Q': [1, 1, 1, 1, 1, 2, 1, 1, 1, 1],
|
'Q': [1, 1, 1, 1, 1, 2, 1, 1, 1, 1],
|
||||||
'preamp': 0,
|
|
||||||
'mix': 1,
|
'mix': 1,
|
||||||
'vibrantBass': 0,
|
'vibrantBass': 0,
|
||||||
'userGenerated': false
|
'userGenerated': false
|
||||||
|
@ -210,7 +197,6 @@
|
||||||
'frequencies': [35, 63, 125, 250, 500, 800, 2000, 4000, 8000, 20000],
|
'frequencies': [35, 63, 125, 250, 500, 800, 2000, 4000, 8000, 20000],
|
||||||
'gain': [5, 0, 0, 0, 0, -5, 0, 0, 0, 5],
|
'gain': [5, 0, 0, 0, 0, -5, 0, 0, 0, 5],
|
||||||
'Q': [0.1, 1, 1, 1, 1, 0.6, 1, 1, 1, 0.2],
|
'Q': [0.1, 1, 1, 1, 1, 0.6, 1, 1, 1, 0.2],
|
||||||
'preamp': 0,
|
|
||||||
'mix': 1,
|
'mix': 1,
|
||||||
'vibrantBass': 0,
|
'vibrantBass': 0,
|
||||||
'userGenerated': false
|
'userGenerated': false
|
||||||
|
@ -221,7 +207,6 @@
|
||||||
'frequencies': [45.53,88.06,116.18,161.3,247.05,295.6,365.79,495.13,716.85,960.76],
|
'frequencies': [45.53,88.06,116.18,161.3,247.05,295.6,365.79,495.13,716.85,960.76],
|
||||||
'gain': [-0.36,4.07,-1.3,1.92,0.77,-0.53,-1.33,0.44,0.46,-0.5],
|
'gain': [-0.36,4.07,-1.3,1.92,0.77,-0.53,-1.33,0.44,0.46,-0.5],
|
||||||
'Q': [1.768,0.625,5,8.409,10,16.82,5.946,7.071,20,10],
|
'Q': [1.768,0.625,5,8.409,10,16.82,5.946,7.071,20,10],
|
||||||
'preamp': -2,
|
|
||||||
'mix': 1,
|
'mix': 1,
|
||||||
'vibrantBass': 0,
|
'vibrantBass': 0,
|
||||||
'userGenerated': false
|
'userGenerated': false
|
||||||
|
@ -232,7 +217,6 @@
|
||||||
'frequencies': [32, 63, 125, 250, 500, 1000, 2000, 4000, 8000, 16000],
|
'frequencies': [32, 63, 125, 250, 500, 1000, 2000, 4000, 8000, 16000],
|
||||||
'gain': [2.7, 2.2, 1.6, 1.4, 0.6, 0, 0, 0, 0, 0],
|
'gain': [2.7, 2.2, 1.6, 1.4, 0.6, 0, 0, 0, 0, 0],
|
||||||
'Q': [1.4, 1.4, 1.4, 1.4, 1.4, 1, 1, 1, 1, 1],
|
'Q': [1.4, 1.4, 1.4, 1.4, 1.4, 1, 1, 1, 1, 1],
|
||||||
'preamp': 0,
|
|
||||||
'mix': 1,
|
'mix': 1,
|
||||||
'vibrantBass': 0,
|
'vibrantBass': 0,
|
||||||
'userGenerated': false
|
'userGenerated': false
|
||||||
|
@ -242,7 +226,6 @@
|
||||||
'frequencies': [32, 63, 160, 250, 500, 1000, 2000, 3500, 8000, 20000],
|
'frequencies': [32, 63, 160, 250, 500, 1000, 2000, 3500, 8000, 20000],
|
||||||
'gain': [2.7, 2.2, 1.6, 1.4, 0.6, 0, 0, 0, 0, 0],
|
'gain': [2.7, 2.2, 1.6, 1.4, 0.6, 0, 0, 0, 0, 0],
|
||||||
'Q': [0.7, 0.7, 0.7, 0.7, 0.7, 1, 1, 1, 1, 1],
|
'Q': [0.7, 0.7, 0.7, 0.7, 0.7, 1, 1, 1, 1, 1],
|
||||||
'preamp': 0,
|
|
||||||
'mix': 1,
|
'mix': 1,
|
||||||
'vibrantBass': 0,
|
'vibrantBass': 0,
|
||||||
'userGenerated': false
|
'userGenerated': false
|
||||||
|
@ -335,16 +318,18 @@
|
||||||
CiderAudio.audioNodes.vibrantbassNode[i].gain.value = app.cfg.audio.vibrantBass.gain[i] * (app.cfg.audio.equalizer.vibrantBass / 10);
|
CiderAudio.audioNodes.vibrantbassNode[i].gain.value = app.cfg.audio.vibrantBass.gain[i] * (app.cfg.audio.equalizer.vibrantBass / 10);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
changePreamp() {
|
|
||||||
CiderAudio.audioNodes.preampNode.gain.value = app.cfg.audio.equalizer.preamp;
|
|
||||||
},
|
|
||||||
changeMix() {
|
changeMix() {
|
||||||
for (var i = 0; i < 10; i++) {
|
for (var i = 0; i < 10; i++) {
|
||||||
CiderAudio.audioNodes.audioBands[i].gain.value = app.cfg.audio.equalizer.gain[i] * app.cfg.audio.equalizer.mix
|
CiderAudio.audioNodes.audioBands[i].gain.value = app.cfg.audio.equalizer.gain[i] * app.cfg.audio.equalizer.mix
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
changePreamp() {
|
||||||
|
if (CiderAudio.audioNodes.llpwEnabled === 1) {CiderAudio.audioNodes.preampNode.gain.value = (-Math.max(...app.cfg.audio.equalizer.gain.concat(CiderAudio.audioNodes.llpw[23].gain.value)));}
|
||||||
|
else {CiderAudio.audioNodes.preampNode.gain.value = (-Math.max(...app.cfg.audio.equalizer.gain));}
|
||||||
|
},
|
||||||
changeGain(i) {
|
changeGain(i) {
|
||||||
CiderAudio.audioNodes.audioBands[i].gain.value = app.cfg.audio.equalizer.gain[i] * app.cfg.audio.equalizer.mix
|
CiderAudio.audioNodes.audioBands[i].gain.value = app.cfg.audio.equalizer.gain[i] * app.cfg.audio.equalizer.mix
|
||||||
|
this.changePreamp()
|
||||||
},
|
},
|
||||||
changeFreq(i) {
|
changeFreq(i) {
|
||||||
CiderAudio.audioNodes.audioBands[i].frequency.value = app.cfg.audio.equalizer.frequencies[i]
|
CiderAudio.audioNodes.audioBands[i].frequency.value = app.cfg.audio.equalizer.frequencies[i]
|
||||||
|
@ -357,10 +342,10 @@
|
||||||
'frequencies': [32, 63, 125, 250, 500, 1000, 2000, 4000, 8000, 16000],
|
'frequencies': [32, 63, 125, 250, 500, 1000, 2000, 4000, 8000, 16000],
|
||||||
'gain': [0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
'gain': [0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||||
'Q': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
|
'Q': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
|
||||||
'preamp': 0,
|
|
||||||
'mix': 1,
|
'mix': 1,
|
||||||
'vibrantBass': 0,
|
'vibrantBass': 0,
|
||||||
})
|
})
|
||||||
|
CiderAudio.audioNodes.preampNode.gain.value = 0;
|
||||||
if (app.cfg.audio.equalizer.userGenerated) {
|
if (app.cfg.audio.equalizer.userGenerated) {
|
||||||
this.saveSelectedPreset()
|
this.saveSelectedPreset()
|
||||||
}
|
}
|
||||||
|
@ -375,7 +360,6 @@
|
||||||
newPreset.frequencies = eqSettings.frequencies
|
newPreset.frequencies = eqSettings.frequencies
|
||||||
newPreset.gain = eqSettings.gain
|
newPreset.gain = eqSettings.gain
|
||||||
newPreset.Q = eqSettings.Q
|
newPreset.Q = eqSettings.Q
|
||||||
newPreset.preamp = eqSettings.preamp
|
|
||||||
newPreset.mix = eqSettings.mix
|
newPreset.mix = eqSettings.mix
|
||||||
newPreset.vibrantBass = eqSettings.vibrantBass
|
newPreset.vibrantBass = eqSettings.vibrantBass
|
||||||
app.cfg.audio.equalizer.presets.push(newPreset)
|
app.cfg.audio.equalizer.presets.push(newPreset)
|
||||||
|
@ -393,14 +377,13 @@
|
||||||
preset.frequencies = app.cfg.audio.equalizer.frequencies
|
preset.frequencies = app.cfg.audio.equalizer.frequencies
|
||||||
preset.gain = app.cfg.audio.equalizer.gain
|
preset.gain = app.cfg.audio.equalizer.gain
|
||||||
preset.Q = app.cfg.audio.equalizer.Q
|
preset.Q = app.cfg.audio.equalizer.Q
|
||||||
preset.preamp = app.cfg.audio.equalizer.preamp
|
|
||||||
preset.mix = app.cfg.audio.equalizer.mix
|
preset.mix = app.cfg.audio.equalizer.mix
|
||||||
preset.vibrantBass = app.cfg.audio.equalizer.vibrantBass
|
preset.vibrantBass = app.cfg.audio.equalizer.vibrantBass
|
||||||
notyf.success("Saved Preset")
|
notyf.success("Saved Preset")
|
||||||
},
|
},
|
||||||
exportPreset() {
|
exportPreset() {
|
||||||
const preset = app.cfg.audio.equalizer.presets.find(p => p.preset == app.cfg.audio.equalizer.preset)
|
const preset = app.cfg.audio.equalizer.presets.find(p => p.preset == app.cfg.audio.equalizer.preset)
|
||||||
const jsonObj = {"name": preset.name, "author": app.chrome.userinfo.attributes.name, "frequency": preset.frequencies, "gain": preset.gain, "q": preset.Q, "preamp": preset.preamp, "mix": preset.mix, "vibrantBass": preset.vibrantBass};
|
const jsonObj = {"name": preset.name, "author": app.chrome.userinfo.attributes.name, "frequency": preset.frequencies, "gain": preset.gain, "q": preset.Q, "mix": preset.mix, "vibrantBass": preset.vibrantBass};
|
||||||
ipcRenderer.send("export-eq", jsonObj)
|
ipcRenderer.send("export-eq", jsonObj)
|
||||||
},
|
},
|
||||||
importPreset() {
|
importPreset() {
|
||||||
|
@ -411,7 +394,6 @@
|
||||||
newPreset.frequencies = result.frequency
|
newPreset.frequencies = result.frequency
|
||||||
newPreset.gain = result.gain
|
newPreset.gain = result.gain
|
||||||
newPreset.Q = result.q
|
newPreset.Q = result.q
|
||||||
newPreset.preamp = result.preamp
|
|
||||||
newPreset.mix = result.mix
|
newPreset.mix = result.mix
|
||||||
newPreset.vibrantBass = result.vibrantBass
|
newPreset.vibrantBass = result.vibrantBass
|
||||||
app.cfg.audio.equalizer.presets.push(newPreset)
|
app.cfg.audio.equalizer.presets.push(newPreset)
|
||||||
|
@ -423,7 +405,6 @@
|
||||||
},
|
},
|
||||||
applyPreset(preset) {
|
applyPreset(preset) {
|
||||||
Object.assign(this.$root.cfg.audio.equalizer, preset)
|
Object.assign(this.$root.cfg.audio.equalizer, preset)
|
||||||
this.changePreamp()
|
|
||||||
this.changeVibrantBass()
|
this.changeVibrantBass()
|
||||||
for (var i = 0; i < 10; i++) {
|
for (var i = 0; i < 10; i++) {
|
||||||
this.changeGain(i)
|
this.changeGain(i)
|
||||||
|
|
|
@ -41,8 +41,8 @@
|
||||||
<div class="song-progress">
|
<div class="song-progress">
|
||||||
<div class="song-duration" style="justify-content: space-between; height: 1px;"
|
<div class="song-duration" style="justify-content: space-between; height: 1px;"
|
||||||
:style="[app.chrome.progresshover ? {'display': 'flex'} : {'display' : 'none'} ]">
|
:style="[app.chrome.progresshover ? {'display': 'flex'} : {'display' : 'none'} ]">
|
||||||
<p style="width: auto">{{ app.convertToMins(app.getSongProgress()) }}</p>
|
<p style="width: auto">{{ app.convertTime(app.getSongProgress()) }}</p>
|
||||||
<p style="width: auto">{{ app.convertToMins(app.mk.currentPlaybackDuration) }}</p>
|
<p style="width: auto">{{ app.convertTime(app.mk.currentPlaybackDuration) }}</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<input type="range" step="0.01" min="0" :style="app.progressBarStyle()"
|
<input type="range" step="0.01" min="0" :style="app.progressBarStyle()"
|
||||||
|
|
|
@ -90,17 +90,17 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
props: {
|
props: {
|
||||||
'item': {type: Object, required: true},
|
'item': { type: Object, required: true },
|
||||||
'parent': {type: String, required: false},
|
'parent': { type: String, required: false },
|
||||||
'index': {type: Number, required: false, default: -1},
|
'index': { type: Number, required: false, default: -1 },
|
||||||
'show-artwork': {type: Boolean, default: true},
|
'show-artwork': { type: Boolean, default: true },
|
||||||
'show-library-status': {type: Boolean, default: true},
|
'show-library-status': { type: Boolean, default: true },
|
||||||
'show-meta-data': {type: Boolean, default: false},
|
'show-meta-data': { type: Boolean, default: false },
|
||||||
'show-duration': {type: Boolean, default: true},
|
'show-duration': { type: Boolean, default: true },
|
||||||
'showIndex': {type: Boolean, required: false},
|
'showIndex': { type: Boolean, required: false },
|
||||||
'showIndexPlaylist': {type: Boolean, required: false},
|
'showIndexPlaylist': { type: Boolean, required: false },
|
||||||
'contextExt': {type: Object, required: false},
|
'contextExt': { type: Object, required: false },
|
||||||
'class-list': {type: String, required: false, default: ""},
|
'class-list': { type: String, required: false, default: "" },
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
let duration = this.item.attributes.durationInMillis ?? 0
|
let duration = this.item.attributes.durationInMillis ?? 0
|
||||||
|
@ -115,8 +115,8 @@
|
||||||
return color
|
return color
|
||||||
},
|
},
|
||||||
async checkLibrary() {
|
async checkLibrary() {
|
||||||
if(this.addedToLibrary) {return this.addedToLibrary}
|
if (this.addedToLibrary) { return this.addedToLibrary }
|
||||||
if(this.item.type.includes("library-playlists") || this.item.type.includes("station")) {
|
if (this.item.type.includes("library-playlists") || this.item.type.includes("station")) {
|
||||||
this.addedToLibrary = true
|
this.addedToLibrary = true
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
@ -126,10 +126,10 @@
|
||||||
return this.addedToLibrary
|
return this.addedToLibrary
|
||||||
},
|
},
|
||||||
getClasses() {
|
getClasses() {
|
||||||
if(this.classList) {
|
if (this.classList) {
|
||||||
this.addClasses = {}
|
this.addClasses = {}
|
||||||
let classList = this.classList.split(' ')
|
let classList = this.classList.split(' ')
|
||||||
for(let i = 0; i < classList.length; i++) {
|
for (let i = 0; i < classList.length; i++) {
|
||||||
this.addClasses[classList[i]] = true
|
this.addClasses[classList[i]] = true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -259,7 +259,7 @@
|
||||||
for (let kind in itemsToPlay) {
|
for (let kind in itemsToPlay) {
|
||||||
let ids = itemsToPlay[kind]
|
let ids = itemsToPlay[kind]
|
||||||
if (ids.length > 0) {
|
if (ids.length > 0) {
|
||||||
app.mk.playNext({[kind + "s"]: itemsToPlay[kind]})
|
app.mk.playNext({ [kind + "s"]: itemsToPlay[kind] })
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
console.log(itemsToPlay)
|
console.log(itemsToPlay)
|
||||||
|
@ -281,7 +281,7 @@
|
||||||
for (let kind in itemsToPlay) {
|
for (let kind in itemsToPlay) {
|
||||||
let ids = itemsToPlay[kind]
|
let ids = itemsToPlay[kind]
|
||||||
if (ids.length > 0) {
|
if (ids.length > 0) {
|
||||||
app.mk.playLater({[kind + "s"]: itemsToPlay[kind]})
|
app.mk.playLater({ [kind + "s"]: itemsToPlay[kind] })
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
app.selectedMediaItems = []
|
app.selectedMediaItems = []
|
||||||
|
@ -363,7 +363,7 @@
|
||||||
"name": app.getLz('action.playNext'),
|
"name": app.getLz('action.playNext'),
|
||||||
"icon": "./assets/arrow-bend-up.svg",
|
"icon": "./assets/arrow-bend-up.svg",
|
||||||
"action": function () {
|
"action": function () {
|
||||||
app.mk.playNext({[self.item.attributes.playParams.kind ?? self.item.type]: self.item.attributes.playParams.id ?? self.item.id})
|
app.mk.playNext({ [self.item.attributes.playParams.kind ?? self.item.type]: self.item.attributes.playParams.id ?? self.item.id })
|
||||||
app.mk.queue._reindex()
|
app.mk.queue._reindex()
|
||||||
app.selectedMediaItems = []
|
app.selectedMediaItems = []
|
||||||
}
|
}
|
||||||
|
@ -372,7 +372,7 @@
|
||||||
"name": app.getLz('action.playLater'),
|
"name": app.getLz('action.playLater'),
|
||||||
"icon": "./assets/arrow-bend-down.svg",
|
"icon": "./assets/arrow-bend-down.svg",
|
||||||
"action": function () {
|
"action": function () {
|
||||||
app.mk.playLater({[self.item.attributes.playParams.kind ?? self.item.type]: self.item.attributes.playParams.id ?? self.item.id})
|
app.mk.playLater({ [self.item.attributes.playParams.kind ?? self.item.type]: self.item.attributes.playParams.id ?? self.item.id })
|
||||||
app.mk.queue._reindex()
|
app.mk.queue._reindex()
|
||||||
app.selectedMediaItems = []
|
app.selectedMediaItems = []
|
||||||
}
|
}
|
||||||
|
@ -381,7 +381,7 @@
|
||||||
"icon": "./assets/feather/radio.svg",
|
"icon": "./assets/feather/radio.svg",
|
||||||
"name": app.getLz('action.startRadio'),
|
"name": app.getLz('action.startRadio'),
|
||||||
"action": function () {
|
"action": function () {
|
||||||
app.mk.setStationQueue({song: self.item.attributes.playParams.id ?? self.item.id}).then(() => {
|
app.mk.setStationQueue({ song: self.item.attributes.playParams.id ?? self.item.id }).then(() => {
|
||||||
app.mk.play()
|
app.mk.play()
|
||||||
app.selectedMediaItems = []
|
app.selectedMediaItems = []
|
||||||
})
|
})
|
||||||
|
@ -405,12 +405,26 @@
|
||||||
"icon": "./assets/feather/share.svg",
|
"icon": "./assets/feather/share.svg",
|
||||||
"name": app.getLz('action.share'),
|
"name": app.getLz('action.share'),
|
||||||
"action": function () {
|
"action": function () {
|
||||||
if (!self.item.attributes.url && self.item.relationships){
|
if (!self.item.attributes.url && self.item.relationships) {
|
||||||
if (self.item.relationships.catalog){
|
if (self.item.relationships.catalog) {
|
||||||
app.mkapi(self.item.attributes.playParams.kind, false, self.item.relationships.catalog.data[0].id).then(u => {self.app.copyToClipboard((u.data.data.length && u.data.data.length > 0)? u.data.data[0].attributes.url : u.data.data.attributes.url)})
|
app.mkapi(self.item.attributes.playParams.kind, false, self.item.relationships.catalog.data[0].id).then(u => { self.app.copyToClipboard((u.data.data.length && u.data.data.length > 0) ? u.data.data[0].attributes.url : u.data.data.attributes.url) })
|
||||||
}
|
}
|
||||||
}else {
|
} else {
|
||||||
self.app.copyToClipboard(self.item.attributes.url)}
|
self.app.copyToClipboard(self.item.attributes.url)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"icon": "./assets/feather/share.svg",
|
||||||
|
"name": `${app.getLz('action.share')} (song.link)`,
|
||||||
|
"action": function () {
|
||||||
|
if (!self.item.attributes.url && self.item.relationships) {
|
||||||
|
if (self.item.relationships.catalog) {
|
||||||
|
app.mkapi(self.item.attributes.playParams.kind, false, self.item.relationships.catalog.data[0].id).then(u => { self.app.songLinkShare((u.data.data.length && u.data.data.length > 0) ? u.data.data[0].attributes.url : u.data.data.attributes.url) })
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
self.app.songLinkShare(self.item.attributes.url)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
@ -430,30 +444,30 @@
|
||||||
try {
|
try {
|
||||||
await this.checkLibrary().then(res => {
|
await this.checkLibrary().then(res => {
|
||||||
console.log(res)
|
console.log(res)
|
||||||
if(res) {
|
if (res) {
|
||||||
menus.normal.items.find(x => x.id == 'addToLibrary').hidden = true
|
menus.normal.items.find(x => x.id == 'addToLibrary').hidden = true
|
||||||
menus.normal.items.find(x => x.id == 'removeFromLibrary').hidden = false
|
menus.normal.items.find(x => x.id == 'removeFromLibrary').hidden = false
|
||||||
}else{
|
} else {
|
||||||
menus.normal.items.find(x => x.id == 'addToLibrary').disabled = false
|
menus.normal.items.find(x => x.id == 'addToLibrary').disabled = false
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
}catch(e) {
|
} catch (e) {
|
||||||
|
|
||||||
}
|
}
|
||||||
try{
|
try {
|
||||||
let rating = await app.getRating(self.item)
|
let rating = await app.getRating(self.item)
|
||||||
if (rating == 0) {
|
if (rating == 0) {
|
||||||
menus.normal.headerItems.find(x => x.id == 'love').disabled = false
|
menus.normal.headerItems.find(x => x.id == 'love').disabled = false
|
||||||
menus.normal.headerItems.find(x => x.id == 'dislike').disabled = false
|
menus.normal.headerItems.find(x => x.id == 'dislike').disabled = false
|
||||||
} else if (rating == 1) {
|
} else if (rating == 1) {
|
||||||
menus.normal.headerItems.find(x => x.id == 'unlove').hidden = false
|
menus.normal.headerItems.find(x => x.id == 'unlove').hidden = false
|
||||||
menus.normal.headerItems.find(x => x.id == 'love').hidden = true
|
menus.normal.headerItems.find(x => x.id == 'love').hidden = true
|
||||||
} else if (rating == -1) {
|
} else if (rating == -1) {
|
||||||
menus.normal.headerItems.find(x => x.id == 'undo_dislike').hidden = false
|
menus.normal.headerItems.find(x => x.id == 'undo_dislike').hidden = false
|
||||||
menus.normal.headerItems.find(x => x.id == 'dislike').hidden = true
|
menus.normal.headerItems.find(x => x.id == 'dislike').hidden = true
|
||||||
}
|
}
|
||||||
} catch(err) {
|
} catch (err) {
|
||||||
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -474,7 +488,7 @@
|
||||||
},
|
},
|
||||||
async removeFromLibrary() {
|
async removeFromLibrary() {
|
||||||
let item = this.item
|
let item = this.item
|
||||||
let params = {"fields[songs]": "inLibrary", "fields[albums]": "inLibrary", "relate": "library"}
|
let params = { "fields[songs]": "inLibrary", "fields[albums]": "inLibrary", "relate": "library" }
|
||||||
let id = item.id ?? item.attributes.playParams.id
|
let id = item.id ?? item.attributes.playParams.id
|
||||||
let res = await app.mkapi(item.attributes.playParams.kind ?? item.type, item.attributes.playParams.isLibrary ?? false, item.attributes.playParams.id ?? item.id, params);
|
let res = await app.mkapi(item.attributes.playParams.kind ?? item.type, item.attributes.playParams.isLibrary ?? false, item.attributes.playParams.id ?? item.id, params);
|
||||||
if (res && res.relationships && res.relationships.library && res.relationships.library.data && res.relationships.library.data.length > 0) {
|
if (res && res.relationships && res.relationships.library && res.relationships.library.data && res.relationships.library.data.length > 0) {
|
||||||
|
@ -502,10 +516,10 @@
|
||||||
let truekind = (!kind.endsWith("s")) ? (kind + "s") : kind;
|
let truekind = (!kind.endsWith("s")) ? (kind + "s") : kind;
|
||||||
console.log(item, parent, childIndex, kind, id, isLibrary, kind == "playlists", id.startsWith("p.") || id.startsWith("pl.u"))
|
console.log(item, parent, childIndex, kind, id, isLibrary, kind == "playlists", id.startsWith("p.") || id.startsWith("pl.u"))
|
||||||
app.mk.stop().then(() => {
|
app.mk.stop().then(() => {
|
||||||
if (parent != null && childIndex != null) {
|
if (parent != null && childIndex != null) {
|
||||||
app.queueParentandplayChild(parent, childIndex, item);
|
app.queueParentandplayChild(parent, childIndex, item);
|
||||||
}
|
}
|
||||||
else if (kind.includes("playlist") && (id.startsWith("p.") || id.startsWith("pl."))){
|
else if (kind.includes("playlist") && (id.startsWith("p.") || id.startsWith("pl."))) {
|
||||||
function shuffleArray(array) {
|
function shuffleArray(array) {
|
||||||
for (var i = array.length - 1; i > 0; i--) {
|
for (var i = array.length - 1; i > 0; i--) {
|
||||||
var j = Math.floor(Math.random() * (i + 1));
|
var j = Math.floor(Math.random() * (i + 1));
|
||||||
|
@ -514,58 +528,59 @@
|
||||||
array[j] = temp;
|
array[j] = temp;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
app.mk.setQueue({[truekind]: [item.attributes.playParams.id ?? item.id]}).then(function () {
|
app.mk.setQueue({ [truekind]: [item.attributes.playParams.id ?? item.id] }).then(function () {
|
||||||
app.mk.play().then(function (){
|
app.mk.play().then(function () {
|
||||||
var playlistId = id
|
var playlistId = id
|
||||||
function getPlaylist(id, isLibrary){
|
function getPlaylist(id, isLibrary) {
|
||||||
if (isLibrary){
|
if (isLibrary) {
|
||||||
return this.app.mk.api.v3.music(`/v1/me/library/playlists/${id}`)
|
return this.app.mk.api.v3.music(`/v1/me/library/playlists/${id}`)
|
||||||
} else { return this.app.mk.api.v3.music(`/v1/catalog/${app.mk.storefrontId}/playlists/${id}`)}
|
} else { return this.app.mk.api.v3.music(`/v1/catalog/${app.mk.storefrontId}/playlists/${id}`) }
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
getPlaylist(id, isLibrary).then(res => {
|
||||||
|
//let query = res.relationships.tracks.data.map(item => new MusicKit.MediaItem(item));
|
||||||
|
//if (app.mk.shuffleMode == 1){shuffleArray(query); }
|
||||||
|
// console.log(query)
|
||||||
|
// app.mk.queue.append(query)
|
||||||
|
if (!res.data.relationships.tracks.next) {
|
||||||
|
return
|
||||||
|
} else {
|
||||||
|
getPlaylistTracks(res.data.relationships.tracks.next)
|
||||||
}
|
}
|
||||||
try {
|
|
||||||
getPlaylist(id, isLibrary).then(res => {
|
|
||||||
//let query = res.relationships.tracks.data.map(item => new MusicKit.MediaItem(item));
|
|
||||||
//if (app.mk.shuffleMode == 1){shuffleArray(query); }
|
|
||||||
// console.log(query)
|
|
||||||
// app.mk.queue.append(query)
|
|
||||||
if (!res.data.relationships.tracks.next) {
|
|
||||||
return
|
|
||||||
} else {
|
|
||||||
getPlaylistTracks(res.data.relationships.tracks.next)
|
|
||||||
}
|
|
||||||
|
|
||||||
function getPlaylistTracks(next) {
|
function getPlaylistTracks(next) {
|
||||||
app.apiCall(app.musicBaseUrl + next, res => {
|
app.apiCall(app.musicBaseUrl + next, res => {
|
||||||
// if (res.id != playlistId || next.includes(playlistId)) {
|
// if (res.id != playlistId || next.includes(playlistId)) {
|
||||||
// return
|
// return
|
||||||
// }
|
// }
|
||||||
console.log('nextres', res)
|
console.log('nextres', res)
|
||||||
let query = res.data.map(item => new MusicKit.MediaItem(item))
|
let query = res.data.map(item => new MusicKit.MediaItem(item))
|
||||||
if (app.mk.shuffleMode == 1){shuffleArray(query); console.log('shf')}
|
if (app.mk.shuffleMode == 1) { shuffleArray(query); console.log('shf') }
|
||||||
app.mk.queue.append(query)
|
app.mk.queue.append(query)
|
||||||
|
|
||||||
if (res.next) {
|
if (res.next) {
|
||||||
getPlaylistTracks(res.next)
|
getPlaylistTracks(res.next)
|
||||||
}
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
} catch (e) {}
|
}
|
||||||
|
})
|
||||||
|
} catch (e) { }
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
app.playMediaItemById(item.attributes.playParams.id ?? item.id, item.attributes.playParams.kind ?? item.type, item.attributes.playParams.isLibrary ?? false, item.attributes.url)
|
app.playMediaItemById(item.attributes.playParams.id ?? item.id, item.attributes.playParams.kind ?? item.type, item.attributes.playParams.isLibrary ?? false, item.attributes.url)
|
||||||
}})
|
}
|
||||||
|
})
|
||||||
},
|
},
|
||||||
route(){
|
route() {
|
||||||
let kind = (this.item.attributes.playParams ? (this.item.attributes.playParams.kind ?? (this.item.type ?? '')) : (this.item.type ?? ''));
|
let kind = (this.item.attributes.playParams ? (this.item.attributes.playParams.kind ?? (this.item.type ?? '')) : (this.item.type ?? ''));
|
||||||
if (kind.toLowerCase().includes('album') || kind.toLowerCase().includes('playlist')){
|
if (kind.toLowerCase().includes('album') || kind.toLowerCase().includes('playlist')) {
|
||||||
app.routeView(this.item)
|
app.routeView(this.item)
|
||||||
} else {
|
} else {
|
||||||
this.playTrack()
|
this.playTrack()
|
||||||
|
|
|
@ -1,244 +0,0 @@
|
||||||
<script type="text/x-template" id="mediaitem-square-large">
|
|
||||||
<div ref="main" style="position: relative; display: inline-flex;" @contextmenu="contextMenu">
|
|
||||||
<div @click.self='app.routeView(item)'
|
|
||||||
class="cd-mediaitem-square-large" ref="main2">
|
|
||||||
<div class="artwork">
|
|
||||||
<mediaitem-artwork
|
|
||||||
:url="item.attributes.artwork ? item.attributes.artwork.url : ''"
|
|
||||||
:video="(item.attributes != null && item.attributes.editorialVideo != null) ? (item.attributes.editorialVideo.motionDetailSquare ? item.attributes.editorialVideo.motionDetailSquare.video : (item.attributes.editorialVideo.motionSquareVideo1x1 ? item.attributes.editorialVideo.motionSquareVideo1x1.video : '')) : '' "
|
|
||||||
size="300"
|
|
||||||
:type="item.type"></mediaitem-artwork>
|
|
||||||
</div>
|
|
||||||
<div class="cd-mediaitem-square-large-overlay" @click.self='app.routeView(item)'>
|
|
||||||
<div class="button" style="
|
|
||||||
border-radius: 50%;
|
|
||||||
background: rgba(50,50,50,0.7);"
|
|
||||||
:style="[(!(item.attributes.playParams ? (item.attributes.playParams.kind ?? (item.type ?? '')): (item.type ?? '')).includes('radioStation') && !(item.attributes.playParams ? (item.attributes.playParams.kind ?? (item.type ?? '')): (item.type ?? '')).includes('song')) ? {'margin': '140px','position': 'absolute',
|
|
||||||
width: '40px',
|
|
||||||
height: '40px',} :
|
|
||||||
{margin: '35px', 'position': 'absolute',
|
|
||||||
width: '120px',
|
|
||||||
height: '120px',}]" @click="app.playMediaItem(item)">
|
|
||||||
<%- include("../svg/play.svg") %>
|
|
||||||
</div>
|
|
||||||
<div class="button" style="
|
|
||||||
border-radius: 50%;
|
|
||||||
background: rgba(50,50,50,0.7);"
|
|
||||||
:style="[(!(item.attributes.playParams ? (item.attributes.playParams.kind ?? (item.type ?? '')): (item.type ?? '')).includes('radioStation') && !(item.attributes.playParams ? (item.attributes.playParams.kind ?? (item.type ?? '')): (item.type ?? '')).includes('song')) ? {'position': 'absolute','margin': '140px',
|
|
||||||
width: '40px', 'margin-left': '10px',
|
|
||||||
height: '40px',} :
|
|
||||||
{display: 'none',margin: '35px','position': 'absolute',
|
|
||||||
width: '120px',
|
|
||||||
height: '120px',}]" @click="clickContext() ">
|
|
||||||
<%- include("../svg/more.svg") %>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="title text-overflow-elipsis" @click='app.routeView(item)'>
|
|
||||||
{{ item.attributes.name ?? '' }}
|
|
||||||
</div>
|
|
||||||
<div class="subtitle text-overflow-elipsis item-navigate" v-if="item.attributes.artistName" :style = "{'z-index': ((item.attributes.editorialNotes == null) && item.attributes.artistName) ? '4' : ''}" @click="if(item.attributes.artistName)app.searchAndNavigate(item,'artist')">
|
|
||||||
{{ item.attributes.artistName ?? '' }}
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<div class="cd-mediaitem-square-large-overlay" @click.self='app.routeView(item)' tabindex="0">
|
|
||||||
<div class="button" style="
|
|
||||||
border-radius: 50%;
|
|
||||||
background: rgba(50,50,50,0.7);"
|
|
||||||
:style="[(!(item.attributes.playParams ? (item.attributes.playParams.kind ?? (item.type ?? '')): (item.type ?? '')).includes('radioStation') && !(item.attributes.playParams ? (item.attributes.playParams.kind ?? (item.type ?? '')): (item.type ?? '')).includes('song')) ? {'margin': '140px','position': 'absolute',
|
|
||||||
width: '40px',
|
|
||||||
height: '40px',} :
|
|
||||||
{margin: '35px','position': 'absolute',
|
|
||||||
width: '120px',
|
|
||||||
height: '120px',}]" @click="app.playMediaItem(item)">
|
|
||||||
<%- include("../svg/play.svg") %>
|
|
||||||
</div>
|
|
||||||
<div class="button" style="
|
|
||||||
border-radius: 50%;
|
|
||||||
background: rgba(50,50,50,0.7);"
|
|
||||||
:style="[(!(item.attributes.playParams ? (item.attributes.playParams.kind ?? (item.type ?? '')): (item.type ?? '')).includes('radioStation') && !(item.attributes.playParams ? (item.attributes.playParams.kind ?? (item.type ?? '')): (item.type ?? '')).includes('song')) ? {'position': 'absolute','margin': '140px',
|
|
||||||
width: '40px', 'margin-left': '10px',
|
|
||||||
height: '40px',} :
|
|
||||||
{display: 'none',margin: '35px','position': 'absolute',
|
|
||||||
width: '120px',
|
|
||||||
height: '120px',}]" @click="console.log('as');contextMenu()">
|
|
||||||
<%- include("../svg/more.svg") %>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
Vue.component('mediaitem-square-large', {
|
|
||||||
template: '#mediaitem-square-large',
|
|
||||||
props: ['item'],
|
|
||||||
data: function () {
|
|
||||||
return {
|
|
||||||
isVisible: false,
|
|
||||||
addedToLibrary: false,
|
|
||||||
app: this.$root,
|
|
||||||
}
|
|
||||||
},
|
|
||||||
methods: {
|
|
||||||
clickContext() {
|
|
||||||
var evt = document.createEvent('MouseEvent');
|
|
||||||
var rect = this.$refs.main2.getBoundingClientRect();
|
|
||||||
evt.initMouseEvent(
|
|
||||||
"contextmenu",
|
|
||||||
true /* bubble */, true /* cancelable */,
|
|
||||||
window, null,
|
|
||||||
0, 0, rect.x + 100, rect.y + 100, /* coordinates */
|
|
||||||
false, false, false, false, /* modifier keys */
|
|
||||||
0 /*left*/, null
|
|
||||||
);
|
|
||||||
this.$refs.main.dispatchEvent(evt);
|
|
||||||
},
|
|
||||||
async isInLibrary() {
|
|
||||||
if (this.item.type && !this.item.type.includes("library")) {
|
|
||||||
var params = {
|
|
||||||
"fields[playlists]": "inLibrary",
|
|
||||||
"fields[albums]": "inLibrary",
|
|
||||||
"relate": "library",
|
|
||||||
"extend": this.revisedRandId()
|
|
||||||
}
|
|
||||||
var res = await app.mkapi(this.item.attributes.playParams.kind ?? this.item.type, this.item.attributes.playParams.isLibrary ?? false, this.item.attributes.playParams.id ?? this.item.id, params);
|
|
||||||
this.addedToLibrary = (res && res.attributes && res.attributes.inLibrary) ? res.attributes.inLibrary : false
|
|
||||||
} else {
|
|
||||||
this.addedToLibrary = true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
async removeFromLibrary(id) {
|
|
||||||
var params = {
|
|
||||||
"fields[playlists]": "inLibrary",
|
|
||||||
"fields[songs]": "inLibrary",
|
|
||||||
"fields[albums]": "inLibrary",
|
|
||||||
"relate": "library",
|
|
||||||
"extend": this.revisedRandId()
|
|
||||||
}
|
|
||||||
var id = this.item.id ?? this.item.attributes.playParams.id
|
|
||||||
var res = await app.mkapi(this.item.attributes.playParams.kind ?? this.item.type, this.item.attributes.playParams.isLibrary ?? false, this.item.attributes.playParams.id ?? this.item.id, params);
|
|
||||||
if (res && res.relationships && res.relationships.library && res.relationships.library.data && res.relationships.library.data.length > 0) {
|
|
||||||
id = res.relationships.library.data[0].id
|
|
||||||
}
|
|
||||||
let kind = this.item.attributes.playParams.kind ?? this.item.type ?? '';
|
|
||||||
var truekind = (!kind.endsWith("s")) ? (kind + "s") : kind;
|
|
||||||
app.mk.api.v3.music(`v1/me/library/${truekind}/${id.toString()}`,{},
|
|
||||||
{
|
|
||||||
fetchOptions: {
|
|
||||||
method: "DELETE"
|
|
||||||
}})
|
|
||||||
this.addedToLibrary = true
|
|
||||||
},
|
|
||||||
async contextMenu(event) {
|
|
||||||
if (!event) { event = this.$refs.main } else { console.log(event) }
|
|
||||||
let self = this
|
|
||||||
let useMenu = "normal"
|
|
||||||
await this.isInLibrary()
|
|
||||||
if (app.selectedMediaItems.length <= 1) {
|
|
||||||
app.selectedMediaItems = []
|
|
||||||
app.select_selectMediaItem(this.item.attributes.playParams.id ?? this.item.id, this.item.attributes.playParams.kind ?? this.item.type, this.index, this.guid, this.item.attributes.playParams.isLibrary ?? false)
|
|
||||||
} else {
|
|
||||||
useMenu = "multiple"
|
|
||||||
}
|
|
||||||
let menus = {
|
|
||||||
multiple: {
|
|
||||||
items: [
|
|
||||||
{
|
|
||||||
name: this.$root.getLz('action.playTracksNext').replace("${app.selectedMediaItems.length}", app.selectedMediaItems.length),
|
|
||||||
action: () => {
|
|
||||||
let itemsToPlay = {}
|
|
||||||
app.selectedMediaItems.forEach(item => {
|
|
||||||
if (!itemsToPlay[item.kind]) {
|
|
||||||
itemsToPlay[item.kind] = []
|
|
||||||
}
|
|
||||||
itemsToPlay[item.kind].push(item.id)
|
|
||||||
})
|
|
||||||
// loop through itemsToPlay
|
|
||||||
for (let kind in itemsToPlay) {
|
|
||||||
let ids = itemsToPlay[kind]
|
|
||||||
if (ids.length > 0) {
|
|
||||||
app.mk.playNext({ [kind + "s"]: itemsToPlay[kind] })
|
|
||||||
}
|
|
||||||
}
|
|
||||||
console.log(itemsToPlay)
|
|
||||||
app.selectedMediaItems = []
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: app.getLz('action.playTracksLater').replace("${app.selectedMediaItems.length}", app.selectedMediaItems.length),
|
|
||||||
action: () => {
|
|
||||||
let itemsToPlay = {}
|
|
||||||
app.selectedMediaItems.forEach(item => {
|
|
||||||
if (!itemsToPlay[item.kind]) {
|
|
||||||
itemsToPlay[item.kind] = []
|
|
||||||
}
|
|
||||||
itemsToPlay[item.kind].push(item.id)
|
|
||||||
})
|
|
||||||
// loop through itemsToPlay
|
|
||||||
for (let kind in itemsToPlay) {
|
|
||||||
let ids = itemsToPlay[kind]
|
|
||||||
if (ids.length > 0) {
|
|
||||||
app.mk.playLater({ [kind + "s"]: itemsToPlay[kind] })
|
|
||||||
}
|
|
||||||
}
|
|
||||||
app.selectedMediaItems = []
|
|
||||||
}
|
|
||||||
},
|
|
||||||
]
|
|
||||||
},
|
|
||||||
normal: {
|
|
||||||
items: [
|
|
||||||
{
|
|
||||||
"name": "Play Next",
|
|
||||||
"action": function () {
|
|
||||||
app.mk.playNext({[self.item.attributes.playParams.kind ?? self.item.type]: self.item.attributes.playParams.id ?? self.item.id})
|
|
||||||
app.mk.queue._reindex()
|
|
||||||
app.selectedMediaItems = []
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Play Later",
|
|
||||||
"action": function () {
|
|
||||||
app.mk.playLater({[self.item.attributes.playParams.kind ?? self.item.type]: self.item.attributes.playParams.id ?? self.item.id})
|
|
||||||
app.mk.queue._reindex()
|
|
||||||
app.selectedMediaItems = []
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "addToPlaylist",
|
|
||||||
"name": "Add to Playlist...",
|
|
||||||
"action": function () {
|
|
||||||
app.promptAddToPlaylist()
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": (this.addedToLibrary) ? "Remove from Library..." : "Add to Library...",
|
|
||||||
"action": async function () {
|
|
||||||
let item_id = self.item.attributes.playParams.id ?? self.item.id;
|
|
||||||
let data_type = self.item.attributes.playParams.kind ?? self.item.type;
|
|
||||||
if (self.addedToLibrary != true) {
|
|
||||||
console.log("add");
|
|
||||||
app.addToLibrary(item_id);
|
|
||||||
self.addedToLibrary = true
|
|
||||||
} else {
|
|
||||||
console.log("remove");
|
|
||||||
await self.removeFromLibrary(item_id);
|
|
||||||
self.addedToLibrary = false
|
|
||||||
}
|
|
||||||
;
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": this.$root.getLz('term.share'),
|
|
||||||
"action": function () {
|
|
||||||
self.app.copyToClipboard(self.item.attributes.url)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
CiderContextMenu.Create(event, menus[useMenu])
|
|
||||||
},
|
|
||||||
}
|
|
||||||
});
|
|
||||||
</script>
|
|
|
@ -1,293 +0,0 @@
|
||||||
<script type="text/x-template" id="mediaitem-square-sp">
|
|
||||||
<div ref="main" style="position: relative; display: inline-flex;" @contextmenu="contextMenu" v-observe-visibility="{callback: visibilityChanged}" width="250px">
|
|
||||||
<div @click.self='app.routeView(item)' v-if="isVisible"
|
|
||||||
class="cd-mediaitem-square-sp" ref="main2"
|
|
||||||
:style="{'--spcolor' : (item.attributes.artwork.bgColor != null) ? ('#'+item.attributes.artwork.bgColor) : `black`}">
|
|
||||||
<div class="artwork">
|
|
||||||
<mediaitem-artwork
|
|
||||||
:url="item.attributes.artwork ? item.attributes.artwork.url : ''"
|
|
||||||
size="300"
|
|
||||||
:video="(item.attributes != null && item.attributes.editorialVideo != null) ? (item.attributes.editorialVideo.motionDetailSquare ? item.attributes.editorialVideo.motionDetailSquare.video : (item.attributes.editorialVideo.motionSquareVideo1x1 ? item.attributes.editorialVideo.motionSquareVideo1x1.video : '')) : '' "
|
|
||||||
:type="item.type"></mediaitem-artwork>
|
|
||||||
</div>
|
|
||||||
<div class="cd-mediaitem-square-large-overlay" @click.self='app.routeView(item)'>
|
|
||||||
<div class="button" style="
|
|
||||||
border-radius: 50%;
|
|
||||||
background: rgba(50,50,50,0.7);"
|
|
||||||
:style="[(!(item.attributes.playParams ? (item.attributes.playParams.kind ?? (item.type ?? '')): (item.type ?? '')).includes('radioStation') && !(item.attributes.playParams ? (item.attributes.playParams.kind ?? (item.type ?? '')): (item.type ?? '')).includes('song')) ? {'margin': '153px','position': 'absolute','margin-left': '153px',
|
|
||||||
width: '30px',
|
|
||||||
height: '30px',} :
|
|
||||||
{margin: '35px',display:'none',
|
|
||||||
width: '120px',
|
|
||||||
height: '120px',}]" @click="clickContext()">
|
|
||||||
<%- include("../svg/more.svg") %>
|
|
||||||
</div>
|
|
||||||
<div class="button" style="
|
|
||||||
border-radius: 50%;
|
|
||||||
background: rgba(50,50,50,0.7);"
|
|
||||||
:style="[(!(item.attributes.playParams ? (item.attributes.playParams.kind ?? (item.type ?? '')): (item.type ?? '')).includes('radioStation') && !(item.attributes.playParams ? (item.attributes.playParams.kind ?? (item.type ?? '')): (item.type ?? '')).includes('song')) ? {'position': 'absolute','margin': '153px',
|
|
||||||
width: '30px', 'margin-left': '8px',
|
|
||||||
height: '30px',} :
|
|
||||||
{margin: '35px','position': 'absolute',
|
|
||||||
width: '120px',
|
|
||||||
height: '120px',}]" @click="app.playMediaItem(item)">
|
|
||||||
<%- include("../svg/play.svg") %>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="title text-overflow-elipsis"
|
|
||||||
:style="{'color' : (item.attributes.artwork.textColor1 != null) ? ('#'+item.attributes.artwork.textColor1) : `#eee`}"
|
|
||||||
style="font-weight: 600">
|
|
||||||
{{ item.attributes.name }}
|
|
||||||
</div>
|
|
||||||
<div class="subtitle text-overflow-elipsis "
|
|
||||||
:class="{'item-navigate': ((item.attributes.editorialNotes == null) && item.attributes.artistName)}"
|
|
||||||
:style="{ 'z-index': ((item.attributes.editorialNotes == null) && item.attributes.artistName) ? '4' : '' ,'color' : (item.attributes.artwork.textColor1 != null) ? ('#'+item.attributes.artwork.textColor1) : `#eee`}"
|
|
||||||
style="padding-left: 4px;padding-right: 4px; display: -webkit-box;-webkit-box-orient: vertical; -webkit-line-clamp: 2;white-space: normal;"
|
|
||||||
@click="subtitleSearchNavigate(item)"
|
|
||||||
>
|
|
||||||
{{ (item.attributes.editorialNotes != null) ? item.attributes.editorialNotes.short
|
|
||||||
:(item.attributes.artistName ?? '') }}
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<div class="cd-mediaitem-square-large-overlay" @click.self='app.routeView(item)' tabindex="0" v-if="isVisible">
|
|
||||||
<div class="button" style="
|
|
||||||
border-radius: 50%;
|
|
||||||
background: rgba(50,50,50,0.7);"
|
|
||||||
:style="[(!(item.attributes.playParams ? (item.attributes.playParams.kind ?? (item.type ?? '')): (item.type ?? '')).includes('radioStation') && !(item.attributes.playParams ? (item.attributes.playParams.kind ?? (item.type ?? '')): (item.type ?? '')).includes('song')) ? {'margin': '153px','position': 'absolute','margin-left': '153px',
|
|
||||||
width: '30px',
|
|
||||||
height: '30px',} :
|
|
||||||
{margin: '35px','position': 'absolute', display: 'none',
|
|
||||||
width: '120px',
|
|
||||||
height: '120px',}]" @click="clickContext()">
|
|
||||||
<%- include("../svg/more.svg") %>
|
|
||||||
</div>
|
|
||||||
<div class="button" style="
|
|
||||||
border-radius: 50%;
|
|
||||||
background: rgba(50,50,50,0.7);"
|
|
||||||
:style="[(!(item.attributes.playParams ? (item.attributes.playParams.kind ?? (item.type ?? '')): (item.type ?? '')).includes('radioStation') && !(item.attributes.playParams ? (item.attributes.playParams.kind ?? (item.type ?? '')): (item.type ?? '')).includes('song')) ? {'position': 'absolute','margin': '153px',
|
|
||||||
width: '30px', 'margin-left': '8px',
|
|
||||||
height: '30px',} :
|
|
||||||
{margin: '35px','position': 'absolute',
|
|
||||||
width: '120px',
|
|
||||||
height: '120px',}]" @click="app.playMediaItem(item)">
|
|
||||||
<%- include("../svg/play.svg") %>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
Vue.component('mediaitem-square-sp', {
|
|
||||||
template: '#mediaitem-square-sp',
|
|
||||||
props: ['item'],
|
|
||||||
data: function () {
|
|
||||||
return {
|
|
||||||
app: this.$root,
|
|
||||||
isVisible: true,
|
|
||||||
addedToLibrary : false,
|
|
||||||
}
|
|
||||||
},
|
|
||||||
methods: {
|
|
||||||
revisedRandId() {
|
|
||||||
return Math.random().toString(36).replace(/[^a-z]+/g, '').substr(2, 10);
|
|
||||||
},
|
|
||||||
async isInLibrary() {
|
|
||||||
if (this.item.type && !this.item.type.includes("library")) {
|
|
||||||
var params = {"fields[playlists]": "inLibrary", "fields[albums]": "inLibrary", "relate": "library", "extend": this.revisedRandId()}
|
|
||||||
var res = await app.mkapi(this.item.attributes.playParams.kind ?? this.item.type, this.item.attributes.playParams.isLibrary ?? false, this.item.attributes.playParams.id ?? this.item.id, params);
|
|
||||||
res = res.data.data[0]
|
|
||||||
this.addedToLibrary = (res && res.attributes && res.attributes.inLibrary) ? res.attributes.inLibrary : false
|
|
||||||
} else {
|
|
||||||
this.addedToLibrary = true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
async removeFromLibrary(id) {
|
|
||||||
var params = {"fields[playlists]": "inLibrary","fields[songs]": "inLibrary", "fields[albums]": "inLibrary", "relate": "library", "extend": this.revisedRandId()}
|
|
||||||
var id = this.item.id ?? this.item.attributes.playParams.id
|
|
||||||
var res = await app.mkapi(this.item.attributes.playParams.kind ?? this.item.type, this.item.attributes.playParams.isLibrary ?? false, this.item.attributes.playParams.id ?? this.item.id, params);
|
|
||||||
res = res.data.data[0]
|
|
||||||
if (res && res.relationships && res.relationships.library && res.relationships.library.data && res.relationships.library.data.length > 0) {
|
|
||||||
id = res.relationships.library.data[0].id
|
|
||||||
}
|
|
||||||
let kind = this.item.attributes.playParams.kind ?? this.item.type ?? '';
|
|
||||||
var truekind = (!kind.endsWith("s")) ? (kind + "s") : kind;
|
|
||||||
app.mk.api.v3.music(`v1/me/library/${truekind}/${id.toString()}`,{},
|
|
||||||
{
|
|
||||||
fetchOptions: {
|
|
||||||
method: "DELETE"
|
|
||||||
}})
|
|
||||||
this.addedToLibrary = true
|
|
||||||
},
|
|
||||||
subtitleSearchNavigate(item) {
|
|
||||||
if((item.attributes.editorialNotes == null) && item.attributes.artistName)app.searchAndNavigate(item,'artist')
|
|
||||||
},
|
|
||||||
clickContext() {
|
|
||||||
var evt = document.createEvent('MouseEvent');
|
|
||||||
var rect = this.$refs.main2.getBoundingClientRect();
|
|
||||||
evt.initMouseEvent(
|
|
||||||
"contextmenu",
|
|
||||||
true /* bubble */, true /* cancelable */,
|
|
||||||
window, null,
|
|
||||||
0, 0, rect.x + 100, rect.y + 100, /* coordinates */
|
|
||||||
false, false, false, false, /* modifier keys */
|
|
||||||
0 /*left*/, null
|
|
||||||
);
|
|
||||||
this.$refs.main.dispatchEvent(evt);
|
|
||||||
}
|
|
||||||
,
|
|
||||||
visibilityChanged: function (isVisible, entry) {
|
|
||||||
this.isVisible = isVisible
|
|
||||||
},
|
|
||||||
async contextMenu(event) {
|
|
||||||
if (!event) {
|
|
||||||
event = this.$refs.main
|
|
||||||
} else {
|
|
||||||
console.log(event)
|
|
||||||
}
|
|
||||||
let self = this
|
|
||||||
let useMenu = "normal"
|
|
||||||
await this.isInLibrary()
|
|
||||||
if (app.selectedMediaItems.length <= 1) {
|
|
||||||
app.selectedMediaItems = []
|
|
||||||
app.select_selectMediaItem(this.item.attributes.playParams.id ?? this.item.id, this.item.attributes.playParams.kind ?? this.item.type, this.index, this.guid, this.item.attributes.playParams.isLibrary ?? false)
|
|
||||||
} else {
|
|
||||||
useMenu = "multiple"
|
|
||||||
}
|
|
||||||
let menus = {
|
|
||||||
multiple: {
|
|
||||||
items: [
|
|
||||||
{
|
|
||||||
name: app.getLz('action.playTracksNext').replace("${app.selectedMediaItems.length}", app.selectedMediaItems.length),
|
|
||||||
action: () => {
|
|
||||||
let itemsToPlay = {}
|
|
||||||
app.selectedMediaItems.forEach(item => {
|
|
||||||
if (!itemsToPlay[item.kind]) {
|
|
||||||
itemsToPlay[item.kind] = []
|
|
||||||
}
|
|
||||||
itemsToPlay[item.kind].push(item.id)
|
|
||||||
})
|
|
||||||
// loop through itemsToPlay
|
|
||||||
for (let kind in itemsToPlay) {
|
|
||||||
let ids = itemsToPlay[kind]
|
|
||||||
if (ids.length > 0) {
|
|
||||||
app.mk.playNext({[kind + "s"]: itemsToPlay[kind]})
|
|
||||||
}
|
|
||||||
}
|
|
||||||
console.log(itemsToPlay)
|
|
||||||
app.selectedMediaItems = []
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: app.getLz('action.playTracksLater').replace("${app.selectedMediaItems.length}", app.selectedMediaItems.length),
|
|
||||||
action: () => {
|
|
||||||
let itemsToPlay = {}
|
|
||||||
app.selectedMediaItems.forEach(item => {
|
|
||||||
if (!itemsToPlay[item.kind]) {
|
|
||||||
itemsToPlay[item.kind] = []
|
|
||||||
}
|
|
||||||
itemsToPlay[item.kind].push(item.id)
|
|
||||||
})
|
|
||||||
// loop through itemsToPlay
|
|
||||||
for (let kind in itemsToPlay) {
|
|
||||||
let ids = itemsToPlay[kind]
|
|
||||||
if (ids.length > 0) {
|
|
||||||
app.mk.playLater({[kind + "s"]: itemsToPlay[kind]})
|
|
||||||
}
|
|
||||||
}
|
|
||||||
app.selectedMediaItems = []
|
|
||||||
}
|
|
||||||
},
|
|
||||||
]
|
|
||||||
},
|
|
||||||
normal: {
|
|
||||||
items: [
|
|
||||||
|
|
||||||
{
|
|
||||||
"name": "Play Next",
|
|
||||||
"action": function () {
|
|
||||||
app.mk.playNext({[self.item.attributes.playParams.kind ?? self.item.type]: self.item.attributes.playParams.id ?? self.item.id})
|
|
||||||
app.mk.queue._reindex()
|
|
||||||
app.selectedMediaItems = []
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Play Later",
|
|
||||||
"action": function () {
|
|
||||||
app.mk.playLater({[self.item.attributes.playParams.kind ?? self.item.type]: self.item.attributes.playParams.id ?? self.item.id})
|
|
||||||
app.mk.queue._reindex()
|
|
||||||
app.selectedMediaItems = []
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "addToPlaylist",
|
|
||||||
"name": "Add to Playlist...",
|
|
||||||
"action": function () {
|
|
||||||
app.promptAddToPlaylist()
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "love",
|
|
||||||
"name": "Love",
|
|
||||||
"disabled": true,
|
|
||||||
"action": function () {
|
|
||||||
app.love(self.item)
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "unlove",
|
|
||||||
"name": "Unlove",
|
|
||||||
"disabled": true,
|
|
||||||
"action": function () {
|
|
||||||
app.unlove(self.item)
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "dislike",
|
|
||||||
"name": "Dislike",
|
|
||||||
"disabled": true,
|
|
||||||
"action": function () {
|
|
||||||
app.dislike(self.item)
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "undo_dislike",
|
|
||||||
"name": "Undo dislike",
|
|
||||||
"disabled": true,
|
|
||||||
"action": function () {
|
|
||||||
app.unlove(self.item)
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": (this.addedToLibrary) ? "Remove from Library..." : "Add to Library...",
|
|
||||||
"action": async function () {
|
|
||||||
let item_id = self.item.attributes.playParams.id ?? self.item.id;
|
|
||||||
let data_type = self.item.attributes.playParams.kind ?? self.item.type;
|
|
||||||
if (self.addedToLibrary != true) { console.log("add"); app.addToLibrary(item_id); self.addedToLibrary = true}
|
|
||||||
else { console.log("remove"); await self.removeFromLibrary(item_id); self.addedToLibrary = false};
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
let rating = await app.getRating(self.item)
|
|
||||||
if(rating == 0) {
|
|
||||||
menus.normal.items.find(x => x.id == 'love').disabled = false
|
|
||||||
menus.normal.items.find(x => x.id == 'dislike').disabled = false
|
|
||||||
}else if(rating == 1) {
|
|
||||||
menus.normal.items.find(x => x.id == 'unlove').disabled = false
|
|
||||||
}else if(rating == -1) {
|
|
||||||
menus.normal.items.find(x => x.id == 'undo_dislike').disabled = false
|
|
||||||
}
|
|
||||||
if ((self.item.attributes.playParams.kind ?? self.item.type).includes("playlist")) {
|
|
||||||
// remove the add to playlist option by id "addToPlaylist" using the .filter() method
|
|
||||||
menus.normal.items = menus.normal.items.filter(function (item) {
|
|
||||||
return item.id != "addToPlaylist"
|
|
||||||
})
|
|
||||||
}
|
|
||||||
CiderContextMenu.Create(event, menus[useMenu])
|
|
||||||
},
|
|
||||||
}
|
|
||||||
});
|
|
||||||
</script>
|
|
|
@ -402,6 +402,18 @@
|
||||||
}else {
|
}else {
|
||||||
self.app.copyToClipboard(self.item.attributes.url)}
|
self.app.copyToClipboard(self.item.attributes.url)}
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"icon": "./assets/feather/share.svg",
|
||||||
|
"name": `${app.getLz('action.share')} (song.link)`,
|
||||||
|
"action": function () {
|
||||||
|
if (!self.item.attributes.url && self.item.relationships){
|
||||||
|
if (self.item.relationships.catalog){
|
||||||
|
app.mkapi(self.item.attributes.playParams.kind, false, self.item.relationships.catalog.data[0].id).then(u => {self.app.songLinkShare((u.data.data.length && u.data.data.length > 0)? u.data.data[0].attributes.url : u.data.data.attributes.url)})
|
||||||
|
}
|
||||||
|
}else {
|
||||||
|
self.app.songLinkShare(self.item.attributes.url)}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
|
@ -44,8 +44,8 @@
|
||||||
<div class="song-progress">
|
<div class="song-progress">
|
||||||
<div class="song-duration" style="justify-content: space-between; height: 1px; margin-bottom: 1px;"
|
<div class="song-duration" style="justify-content: space-between; height: 1px; margin-bottom: 1px;"
|
||||||
:style="[app.chrome.progresshover ? {'display': 'flex'} : {'display' : 'none'} ]">
|
:style="[app.chrome.progresshover ? {'display': 'flex'} : {'display' : 'none'} ]">
|
||||||
<p style="width: auto">{{ app.convertToMins(app.getSongProgress()) }}</p>
|
<p style="width: auto">{{ app.convertTime(app.getSongProgress()) }}</p>
|
||||||
<p style="width: auto">{{ app.convertToMins(app.mk.currentPlaybackDuration) }}</p>
|
<p style="width: auto">{{ app.convertTime(app.mk.currentPlaybackDuration) }}</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<input type="range" step="0.01" min="0" :style="app.progressBarStyle()"
|
<input type="range" step="0.01" min="0" :style="app.progressBarStyle()"
|
||||||
|
|
|
@ -1,65 +0,0 @@
|
||||||
<script type="text/x-template" id="queue-item">
|
|
||||||
<template>
|
|
||||||
<div v-observe-visibility="{callback: visibilityChanged}"
|
|
||||||
@contextmenu="contextMenu"
|
|
||||||
class="cd-mediaitem-list-item">
|
|
||||||
<template v-if="isVisible">
|
|
||||||
<div class="artwork">
|
|
||||||
<mediaitem-artwork
|
|
||||||
:url="item.attributes.artwork ? item.attributes.artwork.url : ''"
|
|
||||||
size="34"
|
|
||||||
:type="item.type"></mediaitem-artwork>
|
|
||||||
</div>
|
|
||||||
<div class="info-rect" :style="{'padding-left': '16px'}">
|
|
||||||
<div class="title text-overflow-elipsis">
|
|
||||||
{{ item.attributes.name }}
|
|
||||||
</div>
|
|
||||||
<div class="subtitle text-overflow-elipsis" style="-webkit-box-orient: horizontal;">
|
|
||||||
<template v-if="item.attributes.artistName" >
|
|
||||||
<div class="artist item-navigate text-overflow-elipsis" @click="app.searchAndNavigate(item,'artist')">
|
|
||||||
{{ item.attributes.artistName }}
|
|
||||||
</div>
|
|
||||||
<template v-if="item.attributes.albumName"> — </template>
|
|
||||||
<template v-if="item.attributes.albumName">
|
|
||||||
<div class="artist item-navigate text-overflow-elipsis" @click="app.searchAndNavigate(item,'album')">
|
|
||||||
{{ item.attributes.albumName }}
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
</template>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="duration">
|
|
||||||
{{ msToMinSec(item.attributes.durationInMillis ?? 0) }}
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
Vue.component('queue-item', {
|
|
||||||
template: '#queue-item',
|
|
||||||
props: ['item'],
|
|
||||||
data: function () {
|
|
||||||
return {}
|
|
||||||
},
|
|
||||||
methods: {
|
|
||||||
contextMenu(event) {
|
|
||||||
let self = this
|
|
||||||
CiderContextMenu.Create(event, {
|
|
||||||
items: [{
|
|
||||||
"name": $root.getLz('action.removeFromQueue'),
|
|
||||||
"action": function () {
|
|
||||||
|
|
||||||
}
|
|
||||||
}]
|
|
||||||
});
|
|
||||||
},
|
|
||||||
msToMinSec(ms) {
|
|
||||||
var minutes = Math.floor(ms / 60000);
|
|
||||||
var seconds = ((ms % 60000) / 1000).toFixed(0);
|
|
||||||
return minutes + ":" + (seconds < 10 ? '0' : '') + seconds;
|
|
||||||
},
|
|
||||||
}
|
|
||||||
});
|
|
||||||
</script>
|
|
88
src/renderer/views/components/share-sheet.ejs
Normal file
88
src/renderer/views/components/share-sheet.ejs
Normal file
|
@ -0,0 +1,88 @@
|
||||||
|
<script type="text/x-template" id="add-to-playlist">
|
||||||
|
<template>
|
||||||
|
<div class="modal-fullscreen addtoplaylist-panel" @click.self="app.resetState()" @contextmenu.self="app.resetState()">
|
||||||
|
<div class="modal-window">
|
||||||
|
<div class="modal-header">
|
||||||
|
<div class="modal-title">{{app.getLz('action.addToPlaylist')}}</div>
|
||||||
|
<button class="close-btn" @click="app.resetState()"></button>
|
||||||
|
</div>
|
||||||
|
<div class="modal-content">
|
||||||
|
<button class="playlist-item"
|
||||||
|
@click="app.addSelectedToNewPlaylist()" style="width:100%;">
|
||||||
|
<div class="icon"><%- include("../svg/plus.svg") %></div>
|
||||||
|
<div class="name">{{app.getLz('action.createPlaylist')}}</div>
|
||||||
|
</button>
|
||||||
|
<sidebar-playlist :playlist-select="playlistSelect" v-for="item in $root.getPlaylistFolderChildren('p.playlistsroot')" :item="item">
|
||||||
|
</sidebar-playlist>
|
||||||
|
</div>
|
||||||
|
<div class="modal-search">
|
||||||
|
<div class="search-input-container" style="width:100%;margin: 16px 0;">
|
||||||
|
<div class="search-input--icon"></div>
|
||||||
|
<input type="search"
|
||||||
|
ref="searchInput"
|
||||||
|
style="width:100%;"
|
||||||
|
spellcheck="false"
|
||||||
|
:placeholder="app.getLz('term.search') + '...'"
|
||||||
|
v-model="searchQuery"
|
||||||
|
@input="search()"
|
||||||
|
class="search-input">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
Vue.component('add-to-playlist', {
|
||||||
|
template: '#add-to-playlist',
|
||||||
|
data: function () {
|
||||||
|
return {
|
||||||
|
playlistSorted: [],
|
||||||
|
searchQuery: "",
|
||||||
|
focused: "",
|
||||||
|
app: this.$root,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
props: {
|
||||||
|
playlists: {
|
||||||
|
type: Array,
|
||||||
|
required: true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
mounted() {
|
||||||
|
this.search()
|
||||||
|
this.$refs.searchInput.focus()
|
||||||
|
this.$refs.searchInput.addEventListener('keydown', (e) => {
|
||||||
|
if (e.keyCode == 13) {
|
||||||
|
if (this.focused != "") {
|
||||||
|
this.addToPlaylist(this.focused)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
playlistSelect(playlist) {
|
||||||
|
if(playlist.type != "library-playlist-folders") {
|
||||||
|
this.addToPlaylist(playlist.id)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
addToPlaylist(id) {
|
||||||
|
app.addSelectedToPlaylist(id)
|
||||||
|
},
|
||||||
|
search() {
|
||||||
|
this.focused = ""
|
||||||
|
if (this.searchQuery == "") {
|
||||||
|
this.playlistSorted = this.playlists
|
||||||
|
} else {
|
||||||
|
this.playlistSorted = this.playlists.filter(playlist => {
|
||||||
|
return playlist.attributes.name.toLowerCase().indexOf(this.searchQuery.toLowerCase()) > -1
|
||||||
|
})
|
||||||
|
if (this.playlistSorted.length == 1) {
|
||||||
|
this.focused = this.playlistSorted[0].id
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
}
|
||||||
|
});
|
||||||
|
</script>
|
|
@ -6,6 +6,9 @@
|
||||||
</div>
|
</div>
|
||||||
<div class="settings-option-body">
|
<div class="settings-option-body">
|
||||||
<div class="md-option-line">
|
<div class="md-option-line">
|
||||||
|
<div class="md-option-segment">
|
||||||
|
{{$root.getLz('term.accountSettings')}}
|
||||||
|
</div>
|
||||||
<div class="md-option-segment md-option-segment_auto">
|
<div class="md-option-segment md-option-segment_auto">
|
||||||
<button class="md-btn" @click="app.appRoute('apple-account-settings')">
|
<button class="md-btn" @click="app.appRoute('apple-account-settings')">
|
||||||
{{$root.getLz('term.accountSettings')}}
|
{{$root.getLz('term.accountSettings')}}
|
||||||
|
@ -32,10 +35,10 @@
|
||||||
<div class="md-option-segment md-option-segment_auto">
|
<div class="md-option-segment md-option-segment_auto">
|
||||||
<select class="md-select" style="width:180px;" v-model="app.cfg.audio.quality"
|
<select class="md-select" style="width:180px;" v-model="app.cfg.audio.quality"
|
||||||
v-on:change="changeAudioQuality">
|
v-on:change="changeAudioQuality">
|
||||||
<!-- // <option value="990">Extreme</option> -->
|
<!-- // <option value="">{{$root.getLz('settings.header.audio.quality.hireslossless')}}</option> -->
|
||||||
<option value="256">{{$root.getLz('settings.header.audio.quality.high')}}</option>
|
<!-- <option value="">{{$root.getLz('settings.header.audio.quality.lossless')}}</option> -->
|
||||||
<option value="64">{{$root.getLz('settings.header.audio.quality.low')}}</option>
|
<option value="HIGH">{{$root.getLz('settings.header.audio.quality.high')}} ({{$root.getLz('settings.header.audio.quality.high.description')}})</option>
|
||||||
<option value="auto">{{$root.getLz('settings.header.audio.quality.auto')}}</option>
|
<option value="STANDARD">{{$root.getLz('settings.header.audio.quality.standard')}} ({{$root.getLz('settings.header.audio.quality.standard.description')}})</option>
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -58,6 +61,31 @@
|
||||||
switch/>
|
switch/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="md-option-line" v-show="app.cfg.advanced.AudioContext">
|
||||||
|
<div class="md-option-segment">
|
||||||
|
{{$root.getLz('settings.option.audio.enableAdvancedFunctionality.ciderPPE')}}
|
||||||
|
<br>
|
||||||
|
<small>{{$root.getLz('settings.option.audio.enableAdvancedFunctionality.ciderPPE.description')}}</small>
|
||||||
|
</div>
|
||||||
|
<div class="md-option-segment md-option-segment_auto">
|
||||||
|
<input type="checkbox" v-model="app.cfg.advanced.ciderPPE" v-on:change="ciderPPE" switch/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="md-option-line" v-show="app.cfg.advanced.AudioContext && app.cfg.advanced.ciderPPE === true">
|
||||||
|
<div class="md-option-segment">
|
||||||
|
{{$root.getLz('settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength')}}
|
||||||
|
<br>
|
||||||
|
<small>{{$root.getLz('settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.description')}}</small>
|
||||||
|
</div>
|
||||||
|
<div class="md-option-segment md-option-segment_auto">
|
||||||
|
<button class="md-btn" :disabled="app.cfg.audio.ciderPPE_value === 0.5" v-model="app.cfg.audio.ciderPPE_value" onclick="app.cfg.audio.ciderPPE_value = 0.5">
|
||||||
|
{{$root.getLz('settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.standard')}}
|
||||||
|
</button>
|
||||||
|
<button class="md-btn" style="margin-top: 5px;" :disabled="app.cfg.audio.ciderPPE_value === 0.55" v-model="app.cfg.audio.ciderPPE_value" onclick="app.cfg.audio.ciderPPE_value = 0.55">
|
||||||
|
{{$root.getLz('settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.aggressive')}}
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<div class="md-option-line" v-show="app.cfg.advanced.AudioContext">
|
<div class="md-option-line" v-show="app.cfg.advanced.AudioContext">
|
||||||
<div class="md-option-segment">
|
<div class="md-option-segment">
|
||||||
{{$root.getLz('term.equalizer')}}
|
{{$root.getLz('term.equalizer')}}
|
||||||
|
@ -94,6 +122,18 @@
|
||||||
<span>{{$root.getLz('settings.header.visual')}}</span>
|
<span>{{$root.getLz('settings.header.visual')}}</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="settings-option-body">
|
<div class="settings-option-body">
|
||||||
|
<div class="md-option-line">
|
||||||
|
<div class="md-option-segment">
|
||||||
|
{{$root.getLz('settings.header.visual.theme')}}
|
||||||
|
</div>
|
||||||
|
<div class="md-option-segment md-option-segment_auto">
|
||||||
|
<select class="md-select" @change="$root.setTheme($root.cfg.visual.theme)" v-model="$root.cfg.visual.theme">
|
||||||
|
<option value="default.less">{{$root.getLz('settings.option.visual.theme.default')}}</option>
|
||||||
|
<option value="dark.less">{{$root.getLz('settings.option.visual.theme.dark')}}</option>
|
||||||
|
<option v-for="theme in themes" :value="theme">{{ theme }}</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<div class="md-option-line">
|
<div class="md-option-line">
|
||||||
<div class="md-option-segment">
|
<div class="md-option-segment">
|
||||||
{{$root.getLz('settings.option.visual.windowBackgroundStyle')}}
|
{{$root.getLz('settings.option.visual.windowBackgroundStyle')}}
|
||||||
|
@ -581,6 +621,15 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div class="md-option-line">
|
||||||
|
<div class="md-option-segment">
|
||||||
|
{{$root.getLz('settings.option.experimental.inline_playlists')}}
|
||||||
|
</div>
|
||||||
|
<div class="md-option-segment md-option-segment_auto">
|
||||||
|
<input type="checkbox" v-model="app.cfg.advanced.experiments.includes('inline-playlists')" @click="app.cfg.advanced.experiments.includes('inline-playlists') ? removeExperiment('inline-playlists') : addExperiment('inline-playlists')" switch/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="md-option-line">
|
<div class="md-option-line">
|
||||||
<div class="md-option-segment">
|
<div class="md-option-segment">
|
||||||
{{$root.getLz('term.language')}}
|
{{$root.getLz('term.language')}}
|
||||||
|
@ -606,7 +655,7 @@
|
||||||
</div>
|
</div>
|
||||||
<div class="md-option-line">
|
<div class="md-option-line">
|
||||||
<div class="md-option-segment">
|
<div class="md-option-segment">
|
||||||
{{$root.getLz('term.updateCider')}}
|
{{$root.getLz('settings.option.general.updateCider')}}
|
||||||
</div>
|
</div>
|
||||||
<div class="md-option-segment md-option-segment_auto">
|
<div class="md-option-segment md-option-segment_auto">
|
||||||
<button class="md-btn" @click="app.checkForUpdate()">
|
<button class="md-btn" @click="app.checkForUpdate()">
|
||||||
|
@ -614,22 +663,39 @@
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="md-option-line">
|
||||||
|
<div class="md-option-segment">
|
||||||
|
{{$root.getLz('settings.option.general.updateCider.branch')}}<br>
|
||||||
|
<small>({{$root.getLz('settings.option.general.updateCider.branch.description')}})</small>
|
||||||
|
</div>
|
||||||
|
<div class="md-option-segment md-option-segment_auto">
|
||||||
|
<select class="md-select" style="width:180px;" v-model="app.cfg.general.update_branch">
|
||||||
|
<option value="main">
|
||||||
|
{{$root.getLz('settings.option.general.updateCider.branch.main')}}
|
||||||
|
</option>
|
||||||
|
<option value="develop">
|
||||||
|
{{$root.getLz('settings.option.general.updateCider.branch.develop')}}
|
||||||
|
</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="md-option-line">
|
||||||
|
<div class="md-option-segment">
|
||||||
|
{{$root.getLz('settings.option.experimental.copy_log')}}
|
||||||
|
</div>
|
||||||
|
<div class="md-option-segment md-option-segment_auto">
|
||||||
|
<button class="md-btn" @click="copyLogs">
|
||||||
|
{{$root.getLz('action.copy')}}
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div style="opacity: 0.5; pointer-events: none">
|
<div style="opacity: 0.5; pointer-events: none">
|
||||||
<div class="md-option-header">
|
<div class="md-option-header">
|
||||||
<span>{{$root.getLz('settings.header.unfinished')}}</span>
|
<span>{{$root.getLz('settings.header.unfinished')}}</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="settings-option-body">
|
<div class="settings-option-body">
|
||||||
<div class="md-option-line">
|
|
||||||
<div class="md-option-segment">
|
|
||||||
Theme
|
|
||||||
</div>
|
|
||||||
<div class="md-option-segment md-option-segment_auto">
|
|
||||||
<select class="md-select">
|
|
||||||
<option value="0">Cider</option>
|
|
||||||
</select>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="md-option-line">
|
<div class="md-option-line">
|
||||||
<div class="md-option-segment">
|
<div class="md-option-segment">
|
||||||
Theme Options
|
Theme Options
|
||||||
|
@ -686,86 +752,109 @@
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
Vue.component('cider-settings', {
|
Vue.component('cider-settings', {
|
||||||
template: "#cider-settings",
|
template: "#cider-settings",
|
||||||
props: [],
|
props: [],
|
||||||
data: function () {
|
data: function () {
|
||||||
return {
|
return {
|
||||||
app: this.$root
|
app: this.$root,
|
||||||
}
|
themes: ipcRenderer.sendSync("get-themes")
|
||||||
},
|
}
|
||||||
mounted: function () {
|
},
|
||||||
if (app.cfg.lastfm.enabled) {
|
mounted: function () {
|
||||||
const element = document.getElementById('lfmConnect');
|
if (app.cfg.lastfm.enabled) {
|
||||||
if (element) {
|
const element = document.getElementById('lfmConnect');
|
||||||
element.innerHTML = `Disconnect\n<p style="font-size: 8px"><i>(Authed: ${app.cfg.lastfm.auth_token})</i></p>`;
|
if (element) {
|
||||||
element.onclick = app.LastFMDeauthorize;
|
element.innerHTML = `Disconnect\n<p style="font-size: 8px"><i>(Authed: ${app.cfg.lastfm.auth_token})</i></p>`;
|
||||||
}
|
element.onclick = app.LastFMDeauthorize;
|
||||||
}
|
}
|
||||||
},
|
}
|
||||||
methods: {
|
},
|
||||||
getLanguages: function () {
|
methods: {
|
||||||
let langs = this.$root.lzListing
|
copyLogs() {
|
||||||
let categories = {
|
ipcRenderer.send('fetch-log')
|
||||||
"main": [],
|
notyf.success(app.getLz('term.share.success'));
|
||||||
"fun": [],
|
},
|
||||||
"unsorted": []
|
getLanguages: function () {
|
||||||
}
|
let langs = this.$root.lzListing
|
||||||
// sort by category if category is undefined or empty put it in "unsorted"
|
let categories = {
|
||||||
for (let i = 0; i < langs.length; i++) {
|
"main": [],
|
||||||
if (langs[i].category === undefined || langs[i].category === "") {
|
"fun": [],
|
||||||
categories.unsorted.push(langs[i])
|
"unsorted": []
|
||||||
} else {
|
}
|
||||||
categories[langs[i].category].push(langs[i])
|
// sort by category if category is undefined or empty put it in "unsorted"
|
||||||
}
|
for (let i = 0; i < langs.length; i++) {
|
||||||
}
|
if (langs[i].category === undefined || langs[i].category === "") {
|
||||||
// return
|
categories.unsorted.push(langs[i])
|
||||||
return categories
|
} else {
|
||||||
},
|
categories[langs[i].category].push(langs[i])
|
||||||
addExperiment(flag) {
|
}
|
||||||
app.cfg.advanced.experiments.push(flag);
|
}
|
||||||
},
|
// return
|
||||||
removeExperiment(flag) {
|
return categories
|
||||||
app.cfg.advanced.experiments.splice(app.cfg.advanced.experiments.indexOf(flag), 1);
|
},
|
||||||
},
|
addExperiment(flag) {
|
||||||
toggleAudioContext: function () {
|
app.cfg.advanced.experiments.push(flag);
|
||||||
if (app.cfg.advanced.AudioContext) {
|
},
|
||||||
CiderAudio.init();
|
removeExperiment(flag) {
|
||||||
if (app.cfg.audio.normalization) {
|
app.cfg.advanced.experiments.splice(app.cfg.advanced.experiments.indexOf(flag), 1);
|
||||||
CiderAudio.normalizerOn()
|
},
|
||||||
}
|
toggleAudioContext: function () {
|
||||||
if (app.cfg.audio.spatial) {
|
if (app.cfg.advanced.AudioContext) {
|
||||||
CiderAudio.spatialOn()
|
CiderAudio.init();
|
||||||
}
|
if (app.cfg.audio.normalization) {
|
||||||
} else {
|
CiderAudio.normalizerOn()
|
||||||
CiderAudio.off();
|
}
|
||||||
}
|
if (app.cfg.audio.spatial) {
|
||||||
},
|
CiderAudio.spatialOn()
|
||||||
toggleNormalization: function () {
|
}
|
||||||
if (app.cfg.audio.normalization) {
|
} else {
|
||||||
CiderAudio.normalizerOn()
|
app.cfg.advanced.ciderPPE = false;
|
||||||
} else {
|
CiderAudio.off();
|
||||||
CiderAudio.normalizerOff()
|
}
|
||||||
}
|
},
|
||||||
},
|
toggleNormalization: function () {
|
||||||
toggleSpatial: function () {
|
if (app.cfg.audio.normalization) {
|
||||||
if (app.cfg.audio.spatial) {
|
CiderAudio.normalizerOn()
|
||||||
CiderAudio.spatialOn()
|
} else {
|
||||||
} else {
|
CiderAudio.normalizerOff()
|
||||||
CiderAudio.spatialOff()
|
}
|
||||||
}
|
},
|
||||||
},
|
ciderPPE: function () {
|
||||||
changeAudioQuality: function () {
|
if (app.cfg.advanced.ciderPPE) {
|
||||||
app.mk.bitrate = app.cfg.audio.quality
|
if (app.cfg.audio.spatial) {
|
||||||
},
|
app.cfg.advanced.ciderPPE = false;
|
||||||
toggleUserInfo: function () {
|
notyf.error("CAP is not compatible with Spatialization. Please disable Spatialization to continue.")
|
||||||
app.chrome.hideUserInfo = !app.cfg.visual.showuserinfo
|
}
|
||||||
},
|
}
|
||||||
sendDataToMTT: function () {
|
},
|
||||||
ipcRenderer.invoke('setStoreValue', 'general.close_behavior', app.cfg.general.close_behavior);
|
toggleSpatial: function () {
|
||||||
|
if (app.cfg.audio.spatial) {
|
||||||
|
if (!app.cfg.advanced.ciderPPE) {
|
||||||
|
CiderAudio.spatialOn()
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
CiderAudio.spatialOff()
|
||||||
|
app.cfg.audio.spatial = false;
|
||||||
|
notyf.error("Spatialization is not compatible with CAP. Please disable CAP to continue.")
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
CiderAudio.spatialOff()
|
||||||
|
}
|
||||||
|
|
||||||
|
},
|
||||||
|
changeAudioQuality: function () {
|
||||||
|
1
|
||||||
|
app.mk.bitrate = MusicKit.PlaybackBitrate[app.cfg.audio.quality];
|
||||||
|
},
|
||||||
|
toggleUserInfo: function () {
|
||||||
|
app.chrome.hideUserInfo = !app.cfg.visual.showuserinfo
|
||||||
|
},
|
||||||
|
sendDataToMTT: function () {
|
||||||
|
ipcRenderer.invoke('setStoreValue', 'general.close_behavior', app.cfg.general.close_behavior);
|
||||||
// setStoreValue does not change plugin store values somehow
|
// setStoreValue does not change plugin store values somehow
|
||||||
ipcRenderer.invoke('update-store-mtt', app.cfg.general.close_behavior);
|
ipcRenderer.invoke('update-store-mtt', app.cfg.general.close_behavior);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
Loading…
Add table
Add a link
Reference in a new issue