Merge remote-tracking branch 'origin/develop' into develop
|
@ -42,6 +42,9 @@ jobs:
|
||||||
#command: yarn test
|
#command: yarn test
|
||||||
- store_test_results:
|
- store_test_results:
|
||||||
path: test-results
|
path: test-results
|
||||||
|
- run:
|
||||||
|
name: Append Commit BuildID to Version
|
||||||
|
command: yarn circle:append-bid
|
||||||
- run:
|
- run:
|
||||||
name: Generate Builds (Linux)
|
name: Generate Builds (Linux)
|
||||||
command: yarn dist -l -p never
|
command: yarn dist -l -p never
|
||||||
|
|
1
.gitignore
vendored
|
@ -2,6 +2,7 @@
|
||||||
dist
|
dist
|
||||||
build
|
build
|
||||||
.flatpak*
|
.flatpak*
|
||||||
|
yarn-cache
|
||||||
|
|
||||||
# Misc
|
# Misc
|
||||||
.idea
|
.idea
|
||||||
|
|
17
package.json
|
@ -23,20 +23,21 @@
|
||||||
"start:darwin": "yarn build && ELECTRON_ENABLE_LOGGING=true && electron ./build/index.js --enable-accelerated-mjpeg-decode --enable-accelerated-video --disable-gpu-driver-bug-workarounds --ignore-gpu-blacklist --enable-native-gpu-memory-buffers",
|
"start:darwin": "yarn build && ELECTRON_ENABLE_LOGGING=true && electron ./build/index.js --enable-accelerated-mjpeg-decode --enable-accelerated-video --disable-gpu-driver-bug-workarounds --ignore-gpu-blacklist --enable-native-gpu-memory-buffers",
|
||||||
"pack": "electron-builder --dir",
|
"pack": "electron-builder --dir",
|
||||||
"dist": "yarn build && electron-builder",
|
"dist": "yarn build && electron-builder",
|
||||||
|
"dist:macarm" : "yarn build && electron-builder --mac --arm64",
|
||||||
|
"dist:universalNotWorking": "yarn build && electron-builder --mac --universal",
|
||||||
"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-bid": "node resources/appendCommitToVersion"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@sentry/electron": "^2.5.4",
|
"@sentry/electron": "^2.5.4",
|
||||||
"@sentry/integrations": "^6.17.4",
|
"@sentry/integrations": "^6.17.4",
|
||||||
"castv2-client": "^1.2.0",
|
|
||||||
"discord-rpc": "^4.0.1",
|
"discord-rpc": "^4.0.1",
|
||||||
"ejs": "^3.1.6",
|
"ejs": "^3.1.6",
|
||||||
"electron-fetch": "^1.7.4",
|
"electron-fetch": "^1.7.4",
|
||||||
"electron-log": "^4.4.5",
|
"electron-log": "^4.4.5",
|
||||||
"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",
|
||||||
|
@ -48,18 +49,13 @@
|
||||||
"mpris-service": "^2.1.2",
|
"mpris-service": "^2.1.2",
|
||||||
"music-metadata": "^7.11.4",
|
"music-metadata": "^7.11.4",
|
||||||
"node-gyp": "^8.4.1",
|
"node-gyp": "^8.4.1",
|
||||||
"node-ssdp": "^4.0.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",
|
||||||
"source-map-support": "^0.5.21",
|
"source-map-support": "^0.5.21",
|
||||||
"tsc": "^2.0.4",
|
|
||||||
"typescript": "^4.5.5",
|
"typescript": "^4.5.5",
|
||||||
"upnp-mediarenderer-client": "^1.4.0",
|
|
||||||
"v8-compile-cache": "^2.3.0",
|
"v8-compile-cache": "^2.3.0",
|
||||||
"wavefile": "^11.0.0",
|
|
||||||
"ws": "^8.4.2",
|
"ws": "^8.4.2",
|
||||||
"xml2js": "^0.4.23",
|
"xml2js": "^0.4.23",
|
||||||
"youtube-search-without-api-key": "^1.0.7"
|
"youtube-search-without-api-key": "^1.0.7"
|
||||||
|
@ -71,7 +67,7 @@
|
||||||
"@types/qrcode-terminal": "^0.12.0",
|
"@types/qrcode-terminal": "^0.12.0",
|
||||||
"@types/ws": "^8.2.2",
|
"@types/ws": "^8.2.2",
|
||||||
"electron": "git+https://github.com/castlabs/electron-releases.git",
|
"electron": "git+https://github.com/castlabs/electron-releases.git",
|
||||||
"electron-builder": "^22.14.5",
|
"electron-builder": "^22.14.13",
|
||||||
"electron-webpack": "^2.8.2",
|
"electron-webpack": "^2.8.2",
|
||||||
"musickit-typescript": "^1.2.4",
|
"musickit-typescript": "^1.2.4",
|
||||||
"playwright": "^1.18.1",
|
"playwright": "^1.18.1",
|
||||||
|
@ -175,7 +171,6 @@
|
||||||
"target": [
|
"target": [
|
||||||
"dmg"
|
"dmg"
|
||||||
]
|
]
|
||||||
},
|
}
|
||||||
"artifactName": "${productName}.${ext}"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
exports.default = function(context) {
|
exports.default = function(context) {
|
||||||
const { execSync } = require('child_process')
|
const { execSync } = require('child_process')
|
||||||
|
const fs = require('fs')
|
||||||
|
|
||||||
if (process.platform !== 'darwin')
|
if (process.platform !== 'darwin')
|
||||||
return
|
return
|
||||||
|
@ -11,8 +12,12 @@ exports.default = function(context) {
|
||||||
|
|
||||||
|
|
||||||
console.log('VMP signing start')
|
console.log('VMP signing start')
|
||||||
|
if (fs.existsSync('dist/mac'))
|
||||||
execSync('python3 -m castlabs_evs.vmp -n sign-pkg dist/mac',{stdio: 'inherit'})
|
execSync('python3 -m castlabs_evs.vmp -n sign-pkg dist/mac',{stdio: 'inherit'})
|
||||||
|
if (fs.existsSync('dist/mac-arm64'))
|
||||||
|
execSync('python3 -m castlabs_evs.vmp -n sign-pkg dist/mac-arm64 -z',{stdio: 'inherit'})
|
||||||
|
if (fs.existsSync('dist/mac-x64'))
|
||||||
|
execSync('python3 -m castlabs_evs.vmp -n sign-pkg dist/mac-x64',{stdio: 'inherit'})
|
||||||
|
|
||||||
console.log('VMP signing complete')
|
console.log('VMP signing complete')
|
||||||
}
|
}
|
21
resources/appendCommitToVersion.js
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
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);
|
||||||
|
|
||||||
|
pvers = package.version.match(/\d+\./g)
|
||||||
|
|
||||||
|
// https://circleci.com/docs/2.0/env-vars/#built-in-environment-variables
|
||||||
|
package.version = `${pvers[0]}${pvers[1]}${process.env['CIRCLE_BUILD_NUM']}`
|
||||||
|
|
||||||
|
|
||||||
|
fs.writeFile('package.json', JSON.stringify(package), err => {
|
||||||
|
// error checking
|
||||||
|
if(err) throw err;
|
||||||
|
console.log("VERSION CHANGED");
|
||||||
|
});
|
|
@ -1,4 +1,4 @@
|
||||||
# Cider i18n
|
# Cider i18n Notices & Changelog
|
||||||
|
|
||||||
Some notes about Cider's i18n support.
|
Some notes about Cider's i18n support.
|
||||||
|
|
||||||
|
@ -21,7 +21,7 @@ been modified, the ones not mentioned in the list need modifying.
|
||||||
* `term.sharedPlaylists`: "Shared Playlists" - Added for `en_US`.
|
* `term.sharedPlaylists`: "Shared Playlists" - Added for `en_US`.
|
||||||
* `term.people`: "People" - Added for `en_US`.
|
* `term.people`: "People" - Added for `en_US`.
|
||||||
|
|
||||||
Updated 02/02/2022 17:16 UTC
|
Update 02/02/2022 17:16 UTC
|
||||||
|
|
||||||
* `term.newpreset.name`: Added for `en_US`.
|
* `term.newpreset.name`: Added for `en_US`.
|
||||||
* `term.addedpreset`: Added for `en_US`.
|
* `term.addedpreset`: Added for `en_US`.
|
||||||
|
@ -38,7 +38,7 @@ Updated 02/02/2022 17:16 UTC
|
||||||
* `action.newpreset`: Added for `en_US`.
|
* `action.newpreset`: Added for `en_US`.
|
||||||
* `action.deletepreset`: Added for `en_US`.
|
* `action.deletepreset`: Added for `en_US`.
|
||||||
|
|
||||||
Updated 04/02/2022 10:00 UTC
|
Update 04/02/2022 10:00 UTC
|
||||||
|
|
||||||
* `term.history`: Added for `en_US`.
|
* `term.history`: Added for `en_US`.
|
||||||
* `action.copy`: Added for `en_US`.
|
* `action.copy`: Added for `en_US`.
|
||||||
|
@ -56,3 +56,28 @@ Update 05/02/2022 09:00 UTC
|
||||||
* `settings.header.audio.quality.lossless.description`: 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`: Added for `en_US`.
|
||||||
* `settings.option.audio.enableAdvancedFunctionality.ciderPPE.description`: 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`.
|
||||||
|
|
||||||
|
Update 08/02/2022 10:20 UTC
|
||||||
|
|
||||||
|
* `settings.option.general.updateCider`: Added for `en_US`.
|
||||||
|
* `settings.option.general.updateCider.branch`: Added for `en_US`.
|
||||||
|
* `settings.option.general.updateCider.branch.description`: Added for `en_US`.
|
||||||
|
* `settings.option.general.updateCider.branch.main`: Added for `en_US`.
|
||||||
|
* `settings.option.general.updateCider.branch.develop`: Added for `en_US`.
|
||||||
|
* `settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength`: Added for `en_US`.
|
||||||
|
* `settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.description`: Added for `en_US`.
|
||||||
|
* `settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.standard`: Added for `en_US`.
|
||||||
|
* `settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.aggressive`: Added for `en_US`.
|
||||||
|
* `settings.warn.audio.enableAdvancedFunctionality.ciderPPE.compatibility`: Added for `en_US`.
|
||||||
|
* `settings.warn.audio.enableAdvancedFunctionality.audioSpatialization.compatibility`: Added for `en_US`.
|
||||||
|
* `term.requestError`: Added for `en_US`.
|
||||||
|
* `term.song.link.generate`: Added for `en_US`.
|
|
@ -1,4 +1,4 @@
|
||||||
{ // Base File
|
{
|
||||||
|
|
||||||
// i18n Info
|
// i18n Info
|
||||||
"i18n.languageName": "Deutsch", // name of language in native language
|
"i18n.languageName": "Deutsch", // name of language in native language
|
||||||
|
@ -19,6 +19,7 @@
|
||||||
"notification.updatingLibrarySongs": "Aktualisiere Songs...",
|
"notification.updatingLibrarySongs": "Aktualisiere Songs...",
|
||||||
"notification.updatingLibraryAlbums": "Aktualisiere Alben...",
|
"notification.updatingLibraryAlbums": "Aktualisiere Alben...",
|
||||||
"notification.updatingLibraryArtists": "Aktualisiere Künstler...",
|
"notification.updatingLibraryArtists": "Aktualisiere Künstler...",
|
||||||
|
|
||||||
// Terms
|
// Terms
|
||||||
"term.appleInc": "Apple Inc.",
|
"term.appleInc": "Apple Inc.",
|
||||||
"term.appleMusic": "Apple Music",
|
"term.appleMusic": "Apple Music",
|
||||||
|
@ -117,7 +118,6 @@
|
||||||
"term.tracks": "Lieder", // Assume x amount of tracks. e.g. 50 tracks
|
"term.tracks": "Lieder", // Assume x amount of tracks. e.g. 50 tracks
|
||||||
"term.videos": "Videos",
|
"term.videos": "Videos",
|
||||||
"term.menu": "Menü",
|
"term.menu": "Menü",
|
||||||
"action.showAlbum": "Zeige ganzes Album",
|
|
||||||
|
|
||||||
// Home
|
// Home
|
||||||
"home.title": "Home",
|
"home.title": "Home",
|
||||||
|
@ -128,13 +128,14 @@
|
||||||
"home.madeForYou": "Für dich gemacht",
|
"home.madeForYou": "Für dich gemacht",
|
||||||
"home.friendsListeningTo": "Freunde hören",
|
"home.friendsListeningTo": "Freunde hören",
|
||||||
"home.followedArtists": "Gefolgte Künstler",
|
"home.followedArtists": "Gefolgte Künstler",
|
||||||
|
|
||||||
// Errors
|
// Errors
|
||||||
"error.appleMusicSubRequired": "Apple Music benötigt ein Abonnement.",
|
"error.appleMusicSubRequired": "Apple Music benötigt ein Abonnement.",
|
||||||
"error.connectionError": "Es ist ein Fehler aufgetreten, während sich mit Apple Music verbunden wurde.",
|
"error.connectionError": "Es ist ein Fehler aufgetreten, während sich mit Apple Music verbunden wurde.",
|
||||||
"error.noResults": "Keine Ergebnisse.",
|
"error.noResults": "Keine Ergebnisse.",
|
||||||
"error.noResults.description": "Versuche einen anderen Suchbegriff.",
|
"error.noResults.description": "Versuche einen anderen Suchbegriff.",
|
||||||
|
|
||||||
//Podcasts
|
// Podcasts
|
||||||
"podcast.followOnCider": "Folge auf Cider",
|
"podcast.followOnCider": "Folge auf Cider",
|
||||||
"podcast.followedOnCider": "Gefolgt auf Cider",
|
"podcast.followedOnCider": "Gefolgt auf Cider",
|
||||||
"podcast.subscribeOnItunes": "Folge auf iTunes",
|
"podcast.subscribeOnItunes": "Folge auf iTunes",
|
||||||
|
@ -183,6 +184,7 @@
|
||||||
"action.removeTracks": "Entferne ${self.selectedItems.length} Lieder aus der Warteschlange",
|
"action.removeTracks": "Entferne ${self.selectedItems.length} Lieder aus der Warteschlange",
|
||||||
"action.import": "Importieren",
|
"action.import": "Importieren",
|
||||||
"action.export": "Exportieren",
|
"action.export": "Exportieren",
|
||||||
|
"action.showAlbum": "Zeige ganzes Album",
|
||||||
|
|
||||||
// Settings - General
|
// Settings - General
|
||||||
"settings.header.general": "Allgemein",
|
"settings.header.general": "Allgemein",
|
||||||
|
@ -194,6 +196,8 @@
|
||||||
"settings.option.general.language.fun": "Lustige Sprachen",
|
"settings.option.general.language.fun": "Lustige Sprachen",
|
||||||
"settings.option.general.language.unsorted": "Unsortiert",
|
"settings.option.general.language.unsorted": "Unsortiert",
|
||||||
|
|
||||||
|
// Update Cider
|
||||||
|
|
||||||
// Settings - Audio
|
// Settings - Audio
|
||||||
"settings.header.audio": "Audio",
|
"settings.header.audio": "Audio",
|
||||||
"settings.header.audio.description": "Passe die Audio-Einstellungen für Cider an.",
|
"settings.header.audio.description": "Passe die Audio-Einstellungen für Cider an.",
|
||||||
|
@ -208,6 +212,7 @@
|
||||||
"settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "Normalisiert die Lautstärke aller Lieder, um die Hörerfahrung einheitlicher zu machen.",
|
"settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "Normalisiert die Lautstärke aller Lieder, um die Hörerfahrung einheitlicher zu machen.",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "Räumliches Audio", // Toggle
|
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "Räumliches Audio", // Toggle
|
||||||
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "Macht die Musik räumlicher (3D-Effekt) (Beachte: Dies ist kein Dolby Atmos)",
|
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "Macht die Musik räumlicher (3D-Effekt) (Beachte: Dies ist kein Dolby Atmos)",
|
||||||
|
|
||||||
// Settings - Visual
|
// Settings - Visual
|
||||||
"settings.header.visual": "Visuell",
|
"settings.header.visual": "Visuell",
|
||||||
"settings.header.visual.description": "Passe die visuellen Einstellungen für Cider an.",
|
"settings.header.visual.description": "Passe die visuellen Einstellungen für Cider an.",
|
||||||
|
@ -230,6 +235,9 @@
|
||||||
"settings.option.visual.hardwareAcceleration.description": "Erfordert Neustart der Anwendung",
|
"settings.option.visual.hardwareAcceleration.description": "Erfordert Neustart der Anwendung",
|
||||||
"settings.header.visual.hardwareAcceleration.default": "Normal",
|
"settings.header.visual.hardwareAcceleration.default": "Normal",
|
||||||
"settings.header.visual.hardwareAcceleration.webGPU": "WebGPU",
|
"settings.header.visual.hardwareAcceleration.webGPU": "WebGPU",
|
||||||
|
|
||||||
|
// Settings - Visual - Theme name
|
||||||
|
|
||||||
// Refer to term.disabled for the disabled option
|
// Refer to term.disabled for the disabled option
|
||||||
"settings.option.visual.showPersonalInfo": "Persönliche Daten anzeigen", // Toggle
|
"settings.option.visual.showPersonalInfo": "Persönliche Daten anzeigen", // Toggle
|
||||||
|
|
||||||
|
@ -265,8 +273,8 @@
|
||||||
"settings.option.experimental.closeButtonBehaviour.quit": "Cider Schließen",
|
"settings.option.experimental.closeButtonBehaviour.quit": "Cider Schließen",
|
||||||
"settings.option.experimental.closeButtonBehaviour.minimizeTaskbar": "In Taskleiste minimieren",
|
"settings.option.experimental.closeButtonBehaviour.minimizeTaskbar": "In Taskleiste minimieren",
|
||||||
"settings.option.experimental.closeButtonBehaviour.minimizeTray": "In den Tray minimieren",
|
"settings.option.experimental.closeButtonBehaviour.minimizeTray": "In den Tray minimieren",
|
||||||
// Refer to term.disabled & term.enabled
|
|
||||||
|
|
||||||
|
// Refer to term.disabled & term.enabled
|
||||||
// Spatialization Menu
|
// Spatialization Menu
|
||||||
"spatial.spatialProperties" : "Räumliche Einstellungen",
|
"spatial.spatialProperties" : "Räumliche Einstellungen",
|
||||||
"spatial.width" : "Breite",
|
"spatial.width" : "Breite",
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
{
|
{
|
||||||
|
|
||||||
// i18n Info
|
// i18n Info
|
||||||
"i18n.languageName": "Ελληνικά",
|
"i18n.languageName": "Ελληνικά", // name of language in native language
|
||||||
"i18n.languageNameEnglish": "Greek",
|
"i18n.languageNameEnglish": "Greek", // name of language in English
|
||||||
"i18n.category": "main",
|
"i18n.category": "main", // main = real language, fun = fun community languages
|
||||||
"i18n.authors": "@down-bad",
|
"i18n.authors": "@down-bad", // 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,6 +19,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",
|
||||||
|
@ -117,7 +118,6 @@
|
||||||
"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": "Μενού",
|
||||||
"action.showAlbum": "Εμφάνιση ολόκληρου άλμπουμ",
|
|
||||||
|
|
||||||
// Home
|
// Home
|
||||||
"home.title": "Αρχική",
|
"home.title": "Αρχική",
|
||||||
|
@ -128,13 +128,14 @@
|
||||||
"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.",
|
||||||
"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",
|
||||||
|
@ -183,6 +184,7 @@
|
||||||
"action.removeTracks": "Αφαίρεση ${self.selectedItems.length} τραγουδιών από την ουρά",
|
"action.removeTracks": "Αφαίρεση ${self.selectedItems.length} τραγουδιών από την ουρά",
|
||||||
"action.import": "Εισαγωγή",
|
"action.import": "Εισαγωγή",
|
||||||
"action.export": "Εξαγωγή",
|
"action.export": "Εξαγωγή",
|
||||||
|
"action.showAlbum": "Εμφάνιση ολόκληρου άλμπουμ",
|
||||||
|
|
||||||
// Settings - General
|
// Settings - General
|
||||||
"settings.header.general": "Γενικά",
|
"settings.header.general": "Γενικά",
|
||||||
|
@ -194,6 +196,8 @@
|
||||||
"settings.option.general.language.fun": "Γλώσσες για πλάκα",
|
"settings.option.general.language.fun": "Γλώσσες για πλάκα",
|
||||||
"settings.option.general.language.unsorted": "Αταξινόμητες",
|
"settings.option.general.language.unsorted": "Αταξινόμητες",
|
||||||
|
|
||||||
|
// Update Cider
|
||||||
|
|
||||||
// Settings - Audio
|
// Settings - Audio
|
||||||
"settings.header.audio": "Ήχος",
|
"settings.header.audio": "Ήχος",
|
||||||
"settings.header.audio.description": "Προσαρμογή ρυθμίσεων ήχου για το Cider.",
|
"settings.header.audio.description": "Προσαρμογή ρυθμίσεων ήχου για το Cider.",
|
||||||
|
@ -208,6 +212,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": "Πιο τρισδιάστατος και χωρικοποιημένος ήχος (σημείωση: Αυτό δεν είναι Dolby Atmos)",
|
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "Πιο τρισδιάστατος και χωρικοποιημένος ήχος (σημείωση: Αυτό δεν είναι Dolby Atmos)",
|
||||||
|
|
||||||
// Settings - Visual
|
// Settings - Visual
|
||||||
"settings.header.visual": "Οπτικά",
|
"settings.header.visual": "Οπτικά",
|
||||||
"settings.header.visual.description": "Προσαρμογή οπτικών ρυθμίσεων για το Cider.",
|
"settings.header.visual.description": "Προσαρμογή οπτικών ρυθμίσεων για το Cider.",
|
||||||
|
@ -230,6 +235,9 @@
|
||||||
"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 - Visual - Theme name
|
||||||
|
|
||||||
// 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
|
||||||
|
|
||||||
|
@ -265,8 +273,8 @@
|
||||||
"settings.option.experimental.closeButtonBehaviour.quit": "Έξοδος του Cider",
|
"settings.option.experimental.closeButtonBehaviour.quit": "Έξοδος του Cider",
|
||||||
"settings.option.experimental.closeButtonBehaviour.minimizeTaskbar": "Ελαχιστοποίηση στη γραμμή εργασιών",
|
"settings.option.experimental.closeButtonBehaviour.minimizeTaskbar": "Ελαχιστοποίηση στη γραμμή εργασιών",
|
||||||
"settings.option.experimental.closeButtonBehaviour.minimizeTray": "Ελαχιστοποίηση στη γωνία γραμμής εργασιών",
|
"settings.option.experimental.closeButtonBehaviour.minimizeTray": "Ελαχιστοποίηση στη γωνία γραμμής εργασιών",
|
||||||
// Refer to term.disabled & term.enabled
|
|
||||||
|
|
||||||
|
// Refer to term.disabled & term.enabled
|
||||||
// Spatialization Menu
|
// Spatialization Menu
|
||||||
"spatial.spatialProperties" : "Χωρικές Ιδιότητες",
|
"spatial.spatialProperties" : "Χωρικές Ιδιότητες",
|
||||||
"spatial.width" : "Πλάτος",
|
"spatial.width" : "Πλάτος",
|
||||||
|
|
|
@ -19,6 +19,7 @@
|
||||||
"notification.updatingLibrarySongs": "UPDATING HODOR HODORS...",
|
"notification.updatingLibrarySongs": "UPDATING HODOR HODORS...",
|
||||||
"notification.updatingLibraryAlbums": "UPDATING HODOR HODORBUMS...",
|
"notification.updatingLibraryAlbums": "UPDATING HODOR HODORBUMS...",
|
||||||
"notification.updatingLibraryArtists": "UPDATING HODOR HODORTISTS...",
|
"notification.updatingLibraryArtists": "UPDATING HODOR HODORTISTS...",
|
||||||
|
|
||||||
// Terms
|
// Terms
|
||||||
"term.appleInc": "HODOR Inc.",
|
"term.appleInc": "HODOR Inc.",
|
||||||
"term.appleMusic": "HODOR MUSIC",
|
"term.appleMusic": "HODOR MUSIC",
|
||||||
|
@ -139,7 +140,7 @@
|
||||||
"error.noResults": "NO HODOR.",
|
"error.noResults": "NO HODOR.",
|
||||||
"error.noResults.description": "TRY NEW HODOR.",
|
"error.noResults.description": "TRY NEW HODOR.",
|
||||||
|
|
||||||
//Podcasts
|
// Podcasts
|
||||||
"podcast.followOnCider": "FOLLOW ON HODOR",
|
"podcast.followOnCider": "FOLLOW ON HODOR",
|
||||||
"podcast.followedOnCider": "FOLLOWING ON HODOR",
|
"podcast.followedOnCider": "FOLLOWING ON HODOR",
|
||||||
"podcast.subscribeOnItunes": "SUBSCRIBE ON iHODOR",
|
"podcast.subscribeOnItunes": "SUBSCRIBE ON iHODOR",
|
||||||
|
@ -190,12 +191,11 @@
|
||||||
"action.import": "HODOR IN",
|
"action.import": "HODOR IN",
|
||||||
"action.export": "HODOR OUT",
|
"action.export": "HODOR OUT",
|
||||||
"action.showAlbum": "SHOW HODOR HODOR",
|
"action.showAlbum": "SHOW HODOR HODOR",
|
||||||
// Waiting on Core for moving plugin to app.ts
|
|
||||||
"action.tray.minimize": "HODOR TO TRAY",
|
"action.tray.minimize": "HODOR TO TRAY",
|
||||||
"action.tray.quit": "HODOR",
|
"action.tray.quit": "HODOR",
|
||||||
"action.tray.show": "SEE",
|
"action.tray.show": "SEE",
|
||||||
|
|
||||||
// Settings - General (Reserved)
|
// Settings - General
|
||||||
"settings.header.general": "HODORAL",
|
"settings.header.general": "HODORAL",
|
||||||
"settings.header.general.description": "HODOR HODORAL HODOR FOR HODOR.",
|
"settings.header.general.description": "HODOR HODORAL HODOR FOR HODOR.",
|
||||||
"settings.option.general.language": "HODOR SPEAKS",
|
"settings.option.general.language": "HODOR SPEAKS",
|
||||||
|
@ -205,6 +205,8 @@
|
||||||
"settings.option.general.language.fun": "HODOR HODORS",
|
"settings.option.general.language.fun": "HODOR HODORS",
|
||||||
"settings.option.general.language.unsorted": "NO HODORS",
|
"settings.option.general.language.unsorted": "NO HODORS",
|
||||||
|
|
||||||
|
// Update Cider
|
||||||
|
|
||||||
// Settings - Audio
|
// Settings - Audio
|
||||||
"settings.header.audio": "HODOR HEARS",
|
"settings.header.audio": "HODOR HEARS",
|
||||||
"settings.header.audio.description": "ADJUST HODOR EARS FOR HODOR HODOR.",
|
"settings.header.audio.description": "ADJUST HODOR EARS FOR HODOR HODOR.",
|
||||||
|
@ -219,6 +221,7 @@
|
||||||
"settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "NORMALIZES HODOR VOLUME FOR INDIVIDUAL HODORS TO HODOR A MORE HODOR LISTENING HODOR.",
|
"settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "NORMALIZES HODOR VOLUME FOR INDIVIDUAL HODORS TO HODOR A MORE HODOR LISTENING HODOR.",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "HODOR SPATIALIZATION", // Toggle
|
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "HODOR SPATIALIZATION", // Toggle
|
||||||
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "SPATIALIZE HODOR AND MAKE HODOR MORE 3-HODOR (HODOR: THIS IS NOT HODOR ATMOS)",
|
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "SPATIALIZE HODOR AND MAKE HODOR MORE 3-HODOR (HODOR: THIS IS NOT HODOR ATMOS)",
|
||||||
|
|
||||||
// Settings - Visual
|
// Settings - Visual
|
||||||
"settings.header.visual": "HODOR SEES",
|
"settings.header.visual": "HODOR SEES",
|
||||||
"settings.header.visual.description": "ADJUST HODOR EYES FOR HODOR.",
|
"settings.header.visual.description": "ADJUST HODOR EYES FOR HODOR.",
|
||||||
|
@ -241,6 +244,9 @@
|
||||||
"settings.option.visual.hardwareAcceleration.description": "NEED RE HODOR",
|
"settings.option.visual.hardwareAcceleration.description": "NEED RE HODOR",
|
||||||
"settings.header.visual.hardwareAcceleration.default": "HODOR.",
|
"settings.header.visual.hardwareAcceleration.default": "HODOR.",
|
||||||
"settings.header.visual.hardwareAcceleration.webGPU": "WEB HODOR!!",
|
"settings.header.visual.hardwareAcceleration.webGPU": "WEB HODOR!!",
|
||||||
|
|
||||||
|
// Settings - Visual - Theme name
|
||||||
|
|
||||||
// Refer to term.disabled for the disabled option
|
// Refer to term.disabled for the disabled option
|
||||||
"settings.option.visual.showPersonalInfo": "SHOW HODOR NAME?", // Toggle
|
"settings.option.visual.showPersonalInfo": "SHOW HODOR NAME?", // Toggle
|
||||||
|
|
||||||
|
@ -276,8 +282,8 @@
|
||||||
"settings.option.experimental.closeButtonBehaviour.quit": "END HODOR",
|
"settings.option.experimental.closeButtonBehaviour.quit": "END HODOR",
|
||||||
"settings.option.experimental.closeButtonBehaviour.minimizeTaskbar": "MINIMIZE HODOR TO HODORBAR",
|
"settings.option.experimental.closeButtonBehaviour.minimizeTaskbar": "MINIMIZE HODOR TO HODORBAR",
|
||||||
"settings.option.experimental.closeButtonBehaviour.minimizeTray": "MINIMIZE HODOR TO HODORAY",
|
"settings.option.experimental.closeButtonBehaviour.minimizeTray": "MINIMIZE HODOR TO HODORAY",
|
||||||
// Refer to term.disabled & term.enabled
|
|
||||||
|
|
||||||
|
// Refer to term.disabled & term.enabled
|
||||||
// Spatialization Menu
|
// Spatialization Menu
|
||||||
"spatial.notTurnedOn": "HODOR SPATIALIZATION IS HODOR. TO HODOR, PLEASE HODOR IT HODOR.",
|
"spatial.notTurnedOn": "HODOR SPATIALIZATION IS HODOR. TO HODOR, PLEASE HODOR IT HODOR.",
|
||||||
"spatial.spatialProperties" : "SPATIAL HODOR",
|
"spatial.spatialProperties" : "SPATIAL HODOR",
|
||||||
|
@ -308,5 +314,4 @@
|
||||||
|
|
||||||
//About
|
//About
|
||||||
"about.thanks": "HODOR THANKS TO THE HODOR TEAM AND ALL OF OUR HODORS."
|
"about.thanks": "HODOR THANKS TO THE HODOR TEAM AND ALL OF OUR HODORS."
|
||||||
|
|
||||||
}
|
}
|
|
@ -1,19 +1,25 @@
|
||||||
{ // Base File
|
{
|
||||||
|
|
||||||
// i18n Info
|
// i18n Info
|
||||||
"i18n.languageName": "Engwish (OwO)", // name of language in native language
|
"i18n.languageName": "Engwish (OwO)", // name of language in native language
|
||||||
"i18n.languageNameEnglish": "Engwish (OwO)", // name of language in English
|
"i18n.languageNameEnglish": "Engwish (OwO)", // 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": "@deerwithacurl", // Authors, if you contribute to this file feel free to add your name seperated with a space
|
"i18n.authors": "@deerwithacurl @gamingliamstudios", // Authors, if you contribute to this file feel free to add your name seperated with a space
|
||||||
|
|
||||||
// App info
|
// App info
|
||||||
"app.name": "Cidew",
|
"app.name": "Cidew",
|
||||||
|
|
||||||
"date.format": "${m} ${d}, ${y}",
|
"date.format": "${m} ${d}, ${y}",
|
||||||
|
|
||||||
// Dialogs
|
// Dialogs
|
||||||
"dialog.cancel": "Nu",
|
"dialog.cancel": "Nu",
|
||||||
"dialog.ok": "Oki",
|
"dialog.ok": "Oki",
|
||||||
|
|
||||||
// Notification
|
// Notification
|
||||||
"notification.updatingLibrarySongs": "Updating wibwawy songs...",
|
"notification.updatingLibrarySongs": "Updating wibwawy songs...",
|
||||||
"notification.updatingLibraryAlbums": "Updating wibwawy awbums...",
|
"notification.updatingLibraryAlbums": "Updating wibwawy awbums...",
|
||||||
"notification.updatingLibraryArtists": "Updating wibwawy awtists...",
|
"notification.updatingLibraryArtists": "Updating wibwawy awtists...",
|
||||||
|
|
||||||
// Terms
|
// Terms
|
||||||
"term.appleInc": "Appwe Inc.",
|
"term.appleInc": "Appwe Inc.",
|
||||||
"term.appleMusic": "Appwe Mewsic",
|
"term.appleMusic": "Appwe Mewsic",
|
||||||
|
@ -121,7 +127,6 @@
|
||||||
"term.menu": "Menuwu",
|
"term.menu": "Menuwu",
|
||||||
"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 Cidew",
|
|
||||||
"term.topResult": "Top Wesuwt", // Search Results
|
"term.topResult": "Top Wesuwt", // Search Results
|
||||||
"term.sharedPlaylists": "Shawed Pwaywists", // Search Results
|
"term.sharedPlaylists": "Shawed Pwaywists", // Search Results
|
||||||
"term.people": "Peopwe", // Search Results
|
"term.people": "Peopwe", // Search Results
|
||||||
|
@ -137,6 +142,7 @@
|
||||||
"term.recordLabels": "Wecowd Wabews",
|
"term.recordLabels": "Wecowd Wabews",
|
||||||
"term.videoExtras": "Videowo Extwas",
|
"term.videoExtras": "Videowo Extwas",
|
||||||
"term.top": "Top",
|
"term.top": "Top",
|
||||||
|
|
||||||
// Home
|
// Home
|
||||||
"home.title": "Home",
|
"home.title": "Home",
|
||||||
"home.recentlyPlayed": "Wecentwy Pwayed",
|
"home.recentlyPlayed": "Wecentwy Pwayed",
|
||||||
|
@ -146,12 +152,14 @@
|
||||||
"home.madeForYou": "Made Fow Chu",
|
"home.madeForYou": "Made Fow Chu",
|
||||||
"home.friendsListeningTo": "Fwiends Wistening To",
|
"home.friendsListeningTo": "Fwiends Wistening To",
|
||||||
"home.followedArtists": "Fowwowed Awtists",
|
"home.followedArtists": "Fowwowed Awtists",
|
||||||
|
|
||||||
// Errors
|
// Errors
|
||||||
"error.appleMusicSubRequired": "Appwe Music wequiwes a subscwiption.",
|
"error.appleMusicSubRequired": "Appwe Music wequiwes a subscwiption.",
|
||||||
"error.connectionError": "Thewe was a pwobwem connecting to Appwe Mewsic.",
|
"error.connectionError": "Thewe was a pwobwem connecting to Appwe Mewsic.",
|
||||||
"error.noResults": "No Wesuwts.",
|
"error.noResults": "No Wesuwts.",
|
||||||
"error.noResults.description": "Twy a new seawch.",
|
"error.noResults.description": "Twy a new seawch.",
|
||||||
//Podcasts
|
|
||||||
|
// Podcasts
|
||||||
"podcast.followOnCider": "Fowwow On Cidew",
|
"podcast.followOnCider": "Fowwow On Cidew",
|
||||||
"podcast.followedOnCider": "Fowwowing On Cidew",
|
"podcast.followedOnCider": "Fowwowing On Cidew",
|
||||||
"podcast.subscribeOnItunes": "Subscwibe On iTuwunes",
|
"podcast.subscribeOnItunes": "Subscwibe On iTuwunes",
|
||||||
|
@ -160,6 +168,7 @@
|
||||||
"podcast.episodes": "Episowodes",
|
"podcast.episodes": "Episowodes",
|
||||||
"podcast.playEpisode": "Pway Episowode",
|
"podcast.playEpisode": "Pway Episowode",
|
||||||
"podcast.website": "Pawdcast Website",
|
"podcast.website": "Pawdcast Website",
|
||||||
|
|
||||||
// Actions
|
// Actions
|
||||||
"action.addToLibrary": "Add to Wibwawy",
|
"action.addToLibrary": "Add to Wibwawy",
|
||||||
"action.addToLibrary.success": "Added to Wibwawy",
|
"action.addToLibrary.success": "Added to Wibwawy",
|
||||||
|
@ -207,14 +216,24 @@
|
||||||
"action.update": "Update",
|
"action.update": "Update",
|
||||||
"action.newpreset": "New Pweset...", // Equalizer Preset
|
"action.newpreset": "New Pweset...", // Equalizer Preset
|
||||||
"action.deletepreset": "Dewete Pweset",
|
"action.deletepreset": "Dewete Pweset",
|
||||||
|
|
||||||
// Settings - General
|
// Settings - General
|
||||||
"settings.header.general": "Genewaw",
|
"settings.header.general": "Genewaw",
|
||||||
"settings.header.general.description": "Adjust the genewaw settings fow Cidew.",
|
"settings.header.general.description": "Adjust the genewaw settings fow Cidew.",
|
||||||
"settings.option.general.language": "Wanguage",
|
"settings.option.general.language": "Wanguage",
|
||||||
|
|
||||||
// Language optgroups
|
// Language optgroups
|
||||||
"settings.option.general.language.main": "Wanguages",
|
"settings.option.general.language.main": "Wanguages",
|
||||||
"settings.option.general.language.fun": "Fun Wanguages",
|
"settings.option.general.language.fun": "Fun Wanguages",
|
||||||
"settings.option.general.language.unsorted": "Unsowted",
|
"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 - Audio
|
||||||
"settings.header.audio": "Audiowo",
|
"settings.header.audio": "Audiowo",
|
||||||
"settings.header.audio.description": "Adjust the audiowo settings fow Cidew.",
|
"settings.header.audio.description": "Adjust the audiowo settings fow Cidew.",
|
||||||
|
@ -229,9 +248,9 @@
|
||||||
"settings.option.audio.seamlessTransition": "Seamwess Audiowo Twansition", // Toggle
|
"settings.option.audio.seamlessTransition": "Seamwess Audiowo Twansition", // Toggle
|
||||||
"settings.option.audio.enableAdvancedFunctionality": "Enabwe Advanced Functionawity", // 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.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": "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.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": "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.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.standard": "Standawd",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.aggressive": "Aggwessive",
|
"settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.aggressive": "Aggwessive",
|
||||||
|
@ -239,6 +258,7 @@
|
||||||
"settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "Nowmawizes peak vowume fow individuaw twacks to cweate a moar unifowm wistening expewience.",
|
"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": "Audiowo Spatiawization", // Toggle
|
||||||
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "Spatiawize audiowo and make audiowo moar 3-dimensionaw (note: Dis is not Dowby Atmos)",
|
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "Spatiawize audiowo and make audiowo moar 3-dimensionaw (note: Dis is not Dowby Atmos)",
|
||||||
|
|
||||||
// Settings - Visual
|
// Settings - Visual
|
||||||
"settings.header.visual": "Visuaw",
|
"settings.header.visual": "Visuaw",
|
||||||
"settings.header.visual.description": "Adjust the visuaw settings fow Cidew.",
|
"settings.header.visual.description": "Adjust the visuaw settings fow Cidew.",
|
||||||
|
@ -261,8 +281,12 @@
|
||||||
"settings.option.visual.hardwareAcceleration.description": "Wequiwes wewaunch",
|
"settings.option.visual.hardwareAcceleration.description": "Wequiwes wewaunch",
|
||||||
"settings.header.visual.hardwareAcceleration.default": "Defauwt",
|
"settings.header.visual.hardwareAcceleration.default": "Defauwt",
|
||||||
"settings.header.visual.hardwareAcceleration.webGPU": "WebGPU",
|
"settings.header.visual.hardwareAcceleration.webGPU": "WebGPU",
|
||||||
|
|
||||||
|
// Settings - Visual - Theme name
|
||||||
|
|
||||||
// Refer to term.disabled for the disabled option
|
// Refer to term.disabled for the disabled option
|
||||||
"settings.option.visual.showPersonalInfo": "Show Pewsonaw Info", // Toggle
|
"settings.option.visual.showPersonalInfo": "Show Pewsonaw Info", // Toggle
|
||||||
|
|
||||||
// Settings - Lyrics
|
// Settings - Lyrics
|
||||||
"settings.header.lyrics": "Wywics",
|
"settings.header.lyrics": "Wywics",
|
||||||
"settings.header.lyrics.description": "Adjust the wywics settings fow Cidew.",
|
"settings.header.lyrics.description": "Adjust the wywics settings fow Cidew.",
|
||||||
|
@ -270,6 +294,7 @@
|
||||||
"settings.option.lyrics.enableMusixmatchKaraoke": "Enabwe Kawaoke Mode (Musixmatch onwy)", // Toggle
|
"settings.option.lyrics.enableMusixmatchKaraoke": "Enabwe Kawaoke Mode (Musixmatch onwy)", // Toggle
|
||||||
"settings.option.lyrics.musixmatchPreferredLanguage": "Musixmatch Twanswation Pwefewwed Wanguage", // Dropdown
|
"settings.option.lyrics.musixmatchPreferredLanguage": "Musixmatch Twanswation Pwefewwed Wanguage", // Dropdown
|
||||||
"settings.option.lyrics.enableYoutubeLyrics": "Enabwe YouTube Wywics fow Mewsic Videowos", // Toggle
|
"settings.option.lyrics.enableYoutubeLyrics": "Enabwe YouTube Wywics fow Mewsic Videowos", // Toggle
|
||||||
|
|
||||||
// Settings - Connectivity
|
// Settings - Connectivity
|
||||||
"settings.header.connectivity": "Connectivity",
|
"settings.header.connectivity": "Connectivity",
|
||||||
"settings.header.connectivity.description": "Adjust the connectivity settings fow Cidew.",
|
"settings.header.connectivity.description": "Adjust the connectivity settings fow Cidew.",
|
||||||
|
@ -285,11 +310,13 @@
|
||||||
"settings.option.connectivity.lastfmScrobble.removeFeatured": "Wemove featuwing awtists fwom song titwe (Wast.fm)",
|
"settings.option.connectivity.lastfmScrobble.removeFeatured": "Wemove featuwing awtists fwom song titwe (Wast.fm)",
|
||||||
"settings.option.connectivity.lastfmScrobble.filterLoop": "Fiwtew wooped twack (Wast.fm)",
|
"settings.option.connectivity.lastfmScrobble.filterLoop": "Fiwtew wooped twack (Wast.fm)",
|
||||||
// Refer to term.connect for the connect button
|
// Refer to term.connect for the connect button
|
||||||
|
|
||||||
// Settings - Experimental
|
// Settings - Experimental
|
||||||
"settings.header.experimental": "Expewimentaw",
|
"settings.header.experimental": "Expewimentaw",
|
||||||
"settings.header.experimental.description": "Adjust the expewimentaw settings fow Cidew.",
|
"settings.header.experimental.description": "Adjust the expewimentaw settings fow Cidew.",
|
||||||
"settings.option.experimental.compactUI": "Wittwe UI", // Toggle
|
"settings.option.experimental.compactUI": "Wittwe UI", // Toggle
|
||||||
"settings.option.experimental.close_button_hide": "Cwose Button Shouwd Hide the Appwication",
|
"settings.option.experimental.close_button_hide": "Cwose Button Shouwd Hide the Appwication",
|
||||||
|
|
||||||
// Refer to term.disabled & term.enabled
|
// Refer to term.disabled & term.enabled
|
||||||
// Spatialization Menu
|
// Spatialization Menu
|
||||||
"spatial.notTurnedOn": "Audiowo Spatiawization is disabwed. To use, pwease enabwe it fiwst.",
|
"spatial.notTurnedOn": "Audiowo Spatiawization is disabwed. To use, pwease enabwe it fiwst.",
|
||||||
|
@ -311,11 +338,14 @@
|
||||||
"spatial.down": "Down",
|
"spatial.down": "Down",
|
||||||
"spatial.listener": "Wistenew",
|
"spatial.listener": "Wistenew",
|
||||||
"spatial.audioSource": "Audiowo Souwce",
|
"spatial.audioSource": "Audiowo Souwce",
|
||||||
|
|
||||||
// Settings - Unfinished
|
// Settings - Unfinished
|
||||||
"settings.header.unfinished": "Unfinished",
|
"settings.header.unfinished": "Unfinished",
|
||||||
|
|
||||||
// Web Remote
|
// Web Remote
|
||||||
"remote.web.title": "Cider Wiimote",
|
"remote.web.title": "Cidew Wiimote",
|
||||||
"remote.web.description": "Scan da QR code to paiw chur phone up with dis Cidew instance",
|
"remote.web.description": "Scan da QR code to paiw chur phone up with dis Cidew instance",
|
||||||
|
|
||||||
// About
|
// About
|
||||||
"about.thanks": "Majow tanks to da Cidew Cowwective Team and aww of ouw contwibutows."
|
"about.thanks": "Majow tanks to da Cidew Cowwective Team and aww of ouw contwibutows."
|
||||||
}
|
}
|
|
@ -1,4 +1,4 @@
|
||||||
{ // Base File
|
{
|
||||||
|
|
||||||
// i18n Info
|
// i18n Info
|
||||||
"i18n.languageName": "piss", // name of language in native language
|
"i18n.languageName": "piss", // name of language in native language
|
||||||
|
@ -19,6 +19,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",
|
||||||
|
@ -93,7 +94,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",
|
||||||
|
@ -127,7 +128,6 @@
|
||||||
"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.aboutArtist": "about pisser {{artistName}}", // e.g. 'About Doja Cat'
|
||||||
"term.updateCider": "piss on cider",
|
|
||||||
"term.topResult": "top piss", // Search Results
|
"term.topResult": "top piss", // Search Results
|
||||||
"term.sharedPlaylists": "shared pisslists", // Search Results
|
"term.sharedPlaylists": "shared pisslists", // Search Results
|
||||||
"term.people": "pissers", // Search Results
|
"term.people": "pissers", // Search Results
|
||||||
|
@ -153,13 +153,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",
|
||||||
|
@ -228,6 +229,9 @@
|
||||||
"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",
|
||||||
|
@ -243,12 +247,13 @@
|
||||||
"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": "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.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",
|
||||||
|
@ -311,8 +316,8 @@
|
||||||
"settings.option.experimental.close_button_hide": "play hide-and-seek when clicking close button",
|
"settings.option.experimental.close_button_hide": "play hide-and-seek when clicking close button",
|
||||||
"settings.option.experimental.copy_log": "copy sewage to pissboard",
|
"settings.option.experimental.copy_log": "copy sewage to pissboard",
|
||||||
"settings.option.experimental.inline_playlists": "inpiss pisslists and piss collections",
|
"settings.option.experimental.inline_playlists": "inpiss pisslists and piss collections",
|
||||||
// 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",
|
||||||
|
|
|
@ -19,6 +19,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!|:ᒷ ᒲ⚍ϟ╎ᔮ",
|
||||||
|
@ -93,7 +94,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": "∷ᒷ|:ᒷᖋϟᒷ↸",
|
||||||
|
@ -127,7 +128,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": "⚍i!↸ᖋᒣᒷ ᔮ╎↸ᒷ∷",
|
|
||||||
"term.topResult": "ᒣᒍi! ∷ᒷϟ⚍|:ᒣ", // Search Results
|
"term.topResult": "ᒣᒍi! ∷ᒷϟ⚍|:ᒣ", // Search Results
|
||||||
"term.sharedPlaylists": "ϟ⍑ᖋ∷ᒷ↸ i!|:ᖋ॥|:╎ϟᒣϟ", // Search Results
|
"term.sharedPlaylists": "ϟ⍑ᖋ∷ᒷ↸ i!|:ᖋ॥|:╎ϟᒣϟ", // Search Results
|
||||||
"term.people": "i!ᒷᒍi!|:ᒷ", // Search Results
|
"term.people": "i!ᒷᒍi!|:ᒷ", // Search Results
|
||||||
|
@ -135,6 +135,8 @@
|
||||||
"term.addedpreset": "ᖋ↸↸ᒷ↸ i!∷ᒷϟᒷᒣ",
|
"term.addedpreset": "ᖋ↸↸ᒷ↸ i!∷ᒷϟᒷᒣ",
|
||||||
"term.deletepreset.warn": "ᖋ∷ᒷ ॥ᒍ⚍ ϟ⚍∷ᒷ ॥ᒍ⚍ ∴ᖋリᒣ ᒣᒍ ↸ᒷ|:ᒷᒣᒷ ᒣ⍑╎ϟ i!∷ᒷϟᒷᒣ?",
|
"term.deletepreset.warn": "ᖋ∷ᒷ ॥ᒍ⚍ ϟ⚍∷ᒷ ॥ᒍ⚍ ∴ᖋリᒣ ᒣᒍ ↸ᒷ|:ᒷᒣᒷ ᒣ⍑╎ϟ i!∷ᒷϟᒷᒣ?",
|
||||||
"term.deletedpreset": "∷ᒷᒲᒍ⍊ᒷ↸ i!∷ᒷϟᒷᒣ",
|
"term.deletedpreset": "∷ᒷᒲᒍ⍊ᒷ↸ i!∷ᒷϟᒷᒣ",
|
||||||
|
"term.requestError": "ᒣ⍑ᒷ∷ᒷ ∴ᖋϟ ᖋ i!∷ᒍᕊ|:ᒷᒲ ∴╎ᒣ⍑ ᒣ⍑ᒷ ∷ᒷᑑ⚍ᒷϟᒣ.",
|
||||||
|
"term.song.link.generate": "┤ᒷᒣᒣ╎リ┤ ϟᒍリ┤.|:╎リ·ǀ· ϟ⍑ᖋ∷ᒷ ⚍∷|:...",
|
||||||
"term.musicVideos": "ᒲ⚍ϟ╎ᔮ ⍊╎↸ᒷᒍϟ", // Search page friendlyTypes
|
"term.musicVideos": "ᒲ⚍ϟ╎ᔮ ⍊╎↸ᒷᒍϟ", // Search page friendlyTypes
|
||||||
"term.stations": "ϟᒣᖋᒣ╎ᒍリϟ",
|
"term.stations": "ϟᒣᖋᒣ╎ᒍリϟ",
|
||||||
"term.curators": "ᔮ⚍∷ᖋᒣᒍ∷ϟ",
|
"term.curators": "ᔮ⚍∷ᖋᒣᒍ∷ϟ",
|
||||||
|
@ -153,13 +155,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": "ϟ⚍ᕊϟᔮ∷╎ᕊᒷ ᒍリ ╎ᒣ⚍リᒷϟ",
|
||||||
|
@ -228,6 +231,13 @@
|
||||||
"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.option.general.updateCider.branch": "ᔮ╎↸ᒷ∷ ⚍i!↸ᖋᒣᒷ ᕊ∷ᖋリᔮ⍑", // Dropdown
|
||||||
|
"settings.option.general.updateCider.branch.description": "ϟᒷ|:ᒷᔮᒣ ᒣ⍑ᒷ ᕊ∷ᖋリᔮ⍑ ᒣᒍ ⚍i!↸ᖋᒣᒷ ᔮ╎↸ᒷ∷ ᒣᒍ",
|
||||||
|
"settings.option.general.updateCider.branch.main": "ϟᒣᖋᕊ|:ᒷ",
|
||||||
|
"settings.option.general.updateCider.branch.develop": "↸ᒷ⍊ᒷ|:ᒍi!ᒲᒷリᒣ",
|
||||||
|
|
||||||
// Settings - Audio
|
// Settings - Audio
|
||||||
"settings.header.audio": "ᖋ⚍↸╎ᒍ",
|
"settings.header.audio": "ᖋ⚍↸╎ᒍ",
|
||||||
"settings.header.audio.description": "ᖋ↸⋮⚍ϟᒣ ᒣ⍑ᒷ ᖋ⚍↸╎ᒍ ϟᒷᒣᒣ╎リ┤ϟ ⎓ᒍ∷ ᔮ╎↸ᒷ∷.",
|
"settings.header.audio.description": "ᖋ↸⋮⚍ϟᒣ ᒣ⍑ᒷ ᖋ⚍↸╎ᒍ ϟᒷᒣᒣ╎リ┤ϟ ⎓ᒍ∷ ᔮ╎↸ᒷ∷.",
|
||||||
|
@ -237,17 +247,25 @@
|
||||||
"settings.header.audio.quality.lossless": "|:ᒍϟϟ|:ᒷϟϟ",
|
"settings.header.audio.quality.lossless": "|:ᒍϟϟ|:ᒷϟϟ",
|
||||||
"settings.header.audio.quality.lossless.description": "(⚍i! ᒣᒍ 24-ᕊ╎ᒣ/48 ·ǀ·⍑∩)",
|
"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.high.description": "256 ·ǀ·ᕊi!ϟ",
|
||||||
"settings.header.audio.quality.auto": "ᖋ⚍ᒣᒍ",
|
"settings.header.audio.quality.standard": "ϟᒣᖋリ↸ᖋ∷↸",
|
||||||
|
"settings.header.audio.quality.standard.description": "64 ·ǀ·ᕊi!ϟ",
|
||||||
"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.ciderPPE": "ᔮ╎↸ᒷ∷ ᖋ↸∷ᒷリᖋ|:╎リᒷ i!∷ᒍᔮᒷϟϟᒍ∷™️", // Toggle
|
||||||
"settings.option.audio.enableAdvancedFunctionality.decryptLLPW.description": "ᒷリᖋᕊ|:ᒷϟ ᒣ⍑ᒷ ᖋᕊ╎|:╎ᒣ॥ ⎓ᒍ∷ ᔮ╎↸ᒷ∷ ᒣᒍ ↸ᒷᔮ∷॥i!ᒣ |:ᒍϟϟ|:ᒷϟϟ ᖋ⚍↸╎ᒍ ⎓╎|:ᒷϟ. ᖋ ᒲ╎リᒍ∷ i!ᒷ∷⎓ᒍ∷ᒲᖋリᔮᒷ ⍑╎ᒣ ∴╎|:|: ᒍᔮᔮ⚍∷.",
|
"settings.option.audio.enableAdvancedFunctionality.ciderPPE.description": "i!ϟ॥ᔮ⍑ᒍᖋᔮᒍ⚍ϟᒣ╎ᔮ ᒷリ⍑ᖋリᔮᒷᒲᒷリᒣϟ ᒣ⍑ᖋᒣ ᒲᖋ·ǀ·ᒷϟ ᒷ⍊ᒷ∷॥ᒣ⍑╎リ┤ ϟᒍ⚍リ↸ ᕊᒍᒣ⍑ ∷╎ᔮ⍑ᒷ∷ ᖋリ↸ ᒲᒍ∷ᒷ |:╎⍊ᒷ|:॥ | ↸ᒷϟ╎┤リᒷ↸ ᕊ॥ ᒲᖋ╎·ǀ·╎∴╎.",
|
||||||
|
"settings.warn.audio.enableAdvancedFunctionality.ciderPPE.compatibility": "ᔮᖋi! ╎ϟ リᒍᒣ ᔮᒍᒲi!ᖋᒣ╎ᕊ|:ᒷ ∴╎ᒣ⍑ ϟi!ᖋᒣ╎ᖋ|:╎∩ᖋᒣ╎ᒍリ. i!|:ᒷᖋϟᒷ ↸╎ϟᖋᕊ|:ᒷ ϟi!ᖋᒣ╎ᖋ|:╎∩ᖋᒣ╎ᒍリ ᒣᒍ ᔮᒍリᒣ╎リ⚍ᒷ.",
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength": "ᔮᖋi! ϟᒣ∷ᒷリ┤ᒣ⍑", // Toggle
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.description": "ᔮ⍑ᖋリ┤ᒷϟ ᒣ⍑ᒷ ϟᒣ∷ᒷリ┤ᒣ⍑ ᒍ⎓ ᒣ⍑ᒷ i!∷ᒍᔮᒷϟϟ╎リ┤ ↸ᒍリᒷ ᒣᒍ ᒣ⍑ᒷ ᖋ⚍↸╎ᒍ. (ᖋ┤┤∷ᒷϟϟ╎⍊ᒷ ᒲᖋ॥ ॥╎ᒷ|:↸ ⚍リ↸ᒷϟ╎∷ᖋᕊ|:ᒷ ∷ᒷϟ⚍|:ᒣϟ)",
|
||||||
|
"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": "リᒍ∷ᒲᖋ|:╎∩ᒷϟ 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.warn.audio.enableAdvancedFunctionality.audioSpatialization.compatibility": "ϟi!ᖋᒣ╎ᖋ|:╎∩ᖋᒣ╎ᒍリ ╎ϟ リᒍᒣ ᔮᒍᒲi!ᖋᒣ╎ᕊ|:ᒷ ∴╎ᒣ⍑ ᔮᖋi!. i!|:ᒷᖋϟᒷ ↸╎ϟᖋᕊ|:ᒷ ᔮᖋi! ᒣᒍ ᔮᒍリᒣ╎リ⚍ᒷ.",
|
||||||
|
|
||||||
// Settings - Visual
|
// Settings - Visual
|
||||||
"settings.header.visual": "⍊╎ϟ⚍ᖋ|:",
|
"settings.header.visual": "⍊╎ϟ⚍ᖋ|:",
|
||||||
"settings.header.visual.description": "ᖋ↸⋮⚍ϟᒣ ᒣ⍑ᒷ ⍊╎ϟ⚍ᖋ| ϟᒷᒣᒣ╎リ┤ϟ ⎓ᒍ∷ ᔮ╎↸ᒷ∷.",
|
"settings.header.visual.description": "ᖋ↸⋮⚍ϟᒣ ᒣ⍑ᒷ ⍊╎ϟ⚍ᖋ| ϟᒷᒣᒣ╎リ┤ϟ ⎓ᒍ∷ ᔮ╎↸ᒷ∷.",
|
||||||
|
@ -310,28 +328,28 @@
|
||||||
"settings.option.experimental.close_button_hide": "ᔮ|:ᒍϟᒷ ᕊ⚍ᒣᒣᒍリ ϟ⍑ᒍ⚍|:↸ ⍑╎↸ᒷ ᒣ⍑ᒷ ᖋi!i!|:╎ᔮᖋᒣ╎ᒍリ",
|
"settings.option.experimental.close_button_hide": "ᔮ|:ᒍϟᒷ ᕊ⚍ᒣᒣᒍリ ϟ⍑ᒍ⚍|:↸ ⍑╎↸ᒷ ᒣ⍑ᒷ ᖋi!i!|:╎ᔮᖋᒣ╎ᒍリ",
|
||||||
"settings.option.experimental.copy_log": "ᔮᒍi!॥ |:ᒍ┤ϟ ᒣᒍ ᔮ|:╎i!ᕊᒍᖋ∷↸",
|
"settings.option.experimental.copy_log": "ᔮᒍi!॥ |:ᒍ┤ϟ ᒣᒍ ᔮ|:╎i!ᕊᒍᖋ∷↸",
|
||||||
"settings.option.experimental.inline_playlists": "╎リ|:╎リᒷ i!|:ᖋ॥|:╎ϟᒣϟ ᖋリ↸ ᖋ|:ᕊ⚍ᒲϟ",
|
"settings.option.experimental.inline_playlists": "╎リ|:╎リᒷ i!|:ᖋ॥|:╎ϟᒣϟ ᖋリ↸ ᖋ|:ᕊ⚍ᒲϟ",
|
||||||
// Refer to term.disabled & term.enabled
|
|
||||||
|
|
||||||
|
// Refer to term.disabled & term.enabled
|
||||||
// Spatialization Menu
|
// Spatialization Menu
|
||||||
"spatial.notTurnedOn": "ᖋ⚍↸╎ᒍ ϟi!ᖋᒣ╎ᖋ|:╎∩ᖋᒣ╎ᒍリ ╎ϟ ↸╎ϟᖋᕊ|:ᒷ↸. ᒣᒍ ⚍ϟᒷ, i!|:ᒷᖋϟᒷ ᒷリᖋᕊ|:ᒷ ╎ᒣ ⎓╎∷ϟᒣ.",
|
"spatial.notTurnedOn": "ᖋ⚍↸╎ᒍ ϟi!ᖋᒣ╎ᖋ|:╎∩ᖋᒣ╎ᒍリ ╎ϟ ↸╎ϟᖋᕊ|:ᒷ↸. ᒣᒍ ⚍ϟᒷ, i!|:ᒷᖋϟᒷ ᒷリᖋᕊ|:ᒷ ╎ᒣ ⎓╎∷ϟᒣ.",
|
||||||
"spatial.spatialProperties" : "ϟi!ᖋᒣ╎ᖋ|: i!∷ᒍi!ᒷ∷ᒣ╎ᒷϟ",
|
"spatial.spatialProperties": "ϟi!ᖋᒣ╎ᖋ|: i!∷ᒍi!ᒷ∷ᒣ╎ᒷϟ",
|
||||||
"spatial.width" : "∴╎↸ᒣ⍑",
|
"spatial.width": "∴╎↸ᒣ⍑",
|
||||||
"spatial.height" : "⍑ᒷ╎┤⍑ᒣ",
|
"spatial.height": "⍑ᒷ╎┤⍑ᒣ",
|
||||||
"spatial.depth" : "↸ᒷi!ᒣ⍑",
|
"spatial.depth": "↸ᒷi!ᒣ⍑",
|
||||||
"spatial.gain" : "┤ᖋ╎リ",
|
"spatial.gain": "┤ᖋ╎リ",
|
||||||
"spatial.roomMaterials" : "∷ᒍᒍᒲ ᒲᖋᒣᒷ∷╎ᖋ|:ϟ",
|
"spatial.roomMaterials": "∷ᒍᒍᒲ ᒲᖋᒣᒷ∷╎ᖋ|:ϟ",
|
||||||
"spatial.roomDimensions" : "∷ᒍᒍᒲ ↸╎ᒲᒷリϟ╎ᒍリϟ",
|
"spatial.roomDimensions": "∷ᒍᒍᒲ ↸╎ᒲᒷリϟ╎ᒍリϟ",
|
||||||
"spatial.roomPositions" : "∷ᒍᒍᒲ i!ᒍϟ╎ᒣ╎ᒍリϟ",
|
"spatial.roomPositions": "∷ᒍᒍᒲ i!ᒍϟ╎ᒣ╎ᒍリϟ",
|
||||||
"spatial.setDimensions" : "ϟᒷᒣ ↸╎ᒲᒷリϟ╎ᒍリϟ",
|
"spatial.setDimensions": "ϟᒷᒣ ↸╎ᒲᒷリϟ╎ᒍリϟ",
|
||||||
"spatial.setPositions" : "ϟᒷᒣ i!ᒍϟ╎ᒣ╎ᒍリϟ",
|
"spatial.setPositions": "ϟᒷᒣ i!ᒍϟ╎ᒣ╎ᒍリϟ",
|
||||||
"spatial.up" : "⚍i!",
|
"spatial.up": "⚍i!",
|
||||||
"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,19 +1,25 @@
|
||||||
{ // 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 @kyw504100", // 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": "${m} ${d}, ${y}",
|
"date.format": "${m} ${d}, ${y}",
|
||||||
|
|
||||||
// Dialogs
|
// Dialogs
|
||||||
"dialog.cancel": "Cancel",
|
"dialog.cancel": "Cancel",
|
||||||
"dialog.ok": "OK",
|
"dialog.ok": "OK",
|
||||||
|
|
||||||
// Notification
|
// Notification
|
||||||
"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",
|
||||||
|
@ -122,7 +128,6 @@
|
||||||
"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.topResult": "Top Result", // Search Results
|
||||||
"term.sharedPlaylists": "Shared Playlists", // Search Results
|
"term.sharedPlaylists": "Shared Playlists", // Search Results
|
||||||
"term.people": "People", // Search Results
|
"term.people": "People", // Search Results
|
||||||
|
@ -130,6 +135,8 @@
|
||||||
"term.addedpreset": "Added Preset",
|
"term.addedpreset": "Added Preset",
|
||||||
"term.deletepreset.warn": "Are you sure you want to delete this preset?",
|
"term.deletepreset.warn": "Are you sure you want to delete this preset?",
|
||||||
"term.deletedpreset": "Removed preset",
|
"term.deletedpreset": "Removed preset",
|
||||||
|
"term.requestError": "There was a problem with the request.",
|
||||||
|
"term.song.link.generate": "Getting song.link share URL...",
|
||||||
"term.musicVideos": "Music Videos", // Search page friendlyTypes
|
"term.musicVideos": "Music Videos", // Search page friendlyTypes
|
||||||
"term.stations": "Stations",
|
"term.stations": "Stations",
|
||||||
"term.curators": "Curators",
|
"term.curators": "Curators",
|
||||||
|
@ -138,6 +145,7 @@
|
||||||
"term.recordLabels": "Record Labels",
|
"term.recordLabels": "Record Labels",
|
||||||
"term.videoExtras": "Video Extras",
|
"term.videoExtras": "Video Extras",
|
||||||
"term.top": "Top",
|
"term.top": "Top",
|
||||||
|
|
||||||
// Home
|
// Home
|
||||||
"home.title": "Home",
|
"home.title": "Home",
|
||||||
"home.recentlyPlayed": "Recently Played",
|
"home.recentlyPlayed": "Recently Played",
|
||||||
|
@ -147,12 +155,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",
|
||||||
|
@ -161,6 +171,7 @@
|
||||||
"podcast.episodes": "Episodes",
|
"podcast.episodes": "Episodes",
|
||||||
"podcast.playEpisode": "Play Episode",
|
"podcast.playEpisode": "Play Episode",
|
||||||
"podcast.website": "Podcast Website",
|
"podcast.website": "Podcast Website",
|
||||||
|
|
||||||
// Actions
|
// Actions
|
||||||
"action.addToLibrary": "Add to Library",
|
"action.addToLibrary": "Add to Library",
|
||||||
"action.addToLibrary.success": "Added to Library",
|
"action.addToLibrary.success": "Added to Library",
|
||||||
|
@ -209,31 +220,42 @@
|
||||||
"action.copy": "Copy",
|
"action.copy": "Copy",
|
||||||
"action.newpreset": "New Preset...", // Equalizer Preset
|
"action.newpreset": "New Preset...", // Equalizer Preset
|
||||||
"action.deletepreset": "Delete Preset",
|
"action.deletepreset": "Delete Preset",
|
||||||
|
|
||||||
// Settings - General
|
// Settings - General
|
||||||
"settings.header.general": "General",
|
"settings.header.general": "General",
|
||||||
"settings.header.general.description": "Adjust the general settings for Cider.",
|
"settings.header.general.description": "Adjust the general settings for Cider.",
|
||||||
"settings.option.general.language": "Language",
|
"settings.option.general.language": "Language",
|
||||||
|
|
||||||
// Language optgroups
|
// Language optgroups
|
||||||
"settings.option.general.language.main": "Languages",
|
"settings.option.general.language.main": "Languages",
|
||||||
"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": "Hi-Res Lossless",
|
||||||
"settings.header.audio.quality.hireslossless.description": "(up to 24-bit/192 kHz)",
|
"settings.header.audio.quality.hireslossless.description": "up to 24-bit/192 kHz",
|
||||||
"settings.header.audio.quality.lossless": "Lossless",
|
"settings.header.audio.quality.lossless": "Lossless",
|
||||||
"settings.header.audio.quality.lossless.description": "(up to 24-bit/48 kHz)",
|
"settings.header.audio.quality.lossless.description": "up to 24-bit/48 kHz",
|
||||||
"settings.header.audio.quality.enhanced": "Enhanced",
|
|
||||||
"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": "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.ciderPPE.description": "Psychoacoustic Enhancements that makes everything sound both richer and more lively | Designed by Maikiwi.",
|
||||||
|
"settings.warn.audio.enableAdvancedFunctionality.ciderPPE.compatibility": "CAP is not compatible with Spatialization. Please disable Spatialization to continue.",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength": "CAP Strength", // Toggle
|
"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.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.standard": "Standard",
|
||||||
|
@ -242,6 +264,8 @@
|
||||||
"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.warn.audio.enableAdvancedFunctionality.audioSpatialization.compatibility": "Spatialization is not compatible with CAP. Please disable CAP to continue.",
|
||||||
|
|
||||||
// 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.",
|
||||||
|
@ -265,11 +289,14 @@
|
||||||
"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.header.visual.theme": "Theme",
|
||||||
|
|
||||||
// Settings - Visual - Theme name
|
// Settings - Visual - Theme name
|
||||||
"settings.option.visual.theme.default": "Cider",
|
"settings.option.visual.theme.default": "Cider",
|
||||||
"settings.option.visual.theme.dark": "Dark",
|
"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
|
||||||
|
|
||||||
// Settings - Lyrics
|
// Settings - Lyrics
|
||||||
"settings.header.lyrics": "Lyrics",
|
"settings.header.lyrics": "Lyrics",
|
||||||
"settings.header.lyrics.description": "Adjust the lyrics settings for Cider.",
|
"settings.header.lyrics.description": "Adjust the lyrics settings for Cider.",
|
||||||
|
@ -277,6 +304,7 @@
|
||||||
"settings.option.lyrics.enableMusixmatchKaraoke": "Enable Karaoke Mode (Musixmatch only)", // Toggle
|
"settings.option.lyrics.enableMusixmatchKaraoke": "Enable Karaoke Mode (Musixmatch only)", // Toggle
|
||||||
"settings.option.lyrics.musixmatchPreferredLanguage": "Musixmatch Translation Preferred Language", // Dropdown
|
"settings.option.lyrics.musixmatchPreferredLanguage": "Musixmatch Translation Preferred Language", // Dropdown
|
||||||
"settings.option.lyrics.enableYoutubeLyrics": "Enable Youtube Lyrics for Music Videos", // Toggle
|
"settings.option.lyrics.enableYoutubeLyrics": "Enable Youtube Lyrics for Music Videos", // Toggle
|
||||||
|
|
||||||
// Settings - Connectivity
|
// Settings - Connectivity
|
||||||
"settings.header.connectivity": "Connectivity",
|
"settings.header.connectivity": "Connectivity",
|
||||||
"settings.header.connectivity.description": "Adjust the connectivity settings for Cider.",
|
"settings.header.connectivity.description": "Adjust the connectivity settings for Cider.",
|
||||||
|
@ -292,6 +320,7 @@
|
||||||
"settings.option.connectivity.lastfmScrobble.removeFeatured": "Remove featuring artists from song title (Last.fm)",
|
"settings.option.connectivity.lastfmScrobble.removeFeatured": "Remove featuring artists from song title (Last.fm)",
|
||||||
"settings.option.connectivity.lastfmScrobble.filterLoop": "Filter looped track (Last.fm)",
|
"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": "Experimental",
|
"settings.header.experimental": "Experimental",
|
||||||
"settings.header.experimental.description": "Adjust the experimental settings for Cider.",
|
"settings.header.experimental.description": "Adjust the experimental settings for Cider.",
|
||||||
|
@ -299,6 +328,7 @@
|
||||||
"settings.option.experimental.close_button_hide": "Close Button Should Hide the Application",
|
"settings.option.experimental.close_button_hide": "Close Button Should Hide the Application",
|
||||||
"settings.option.experimental.copy_log": "Copy logs to clipboard",
|
"settings.option.experimental.copy_log": "Copy logs to clipboard",
|
||||||
"settings.option.experimental.inline_playlists": "Inline Playlists and Albums",
|
"settings.option.experimental.inline_playlists": "Inline Playlists and Albums",
|
||||||
|
|
||||||
// Refer to term.disabled & term.enabled
|
// 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.",
|
||||||
|
@ -320,11 +350,14 @@
|
||||||
"spatial.down": "Down",
|
"spatial.down": "Down",
|
||||||
"spatial.listener": "Listener",
|
"spatial.listener": "Listener",
|
||||||
"spatial.audioSource": "Audio Source",
|
"spatial.audioSource": "Audio Source",
|
||||||
|
|
||||||
// Settings - Unfinished
|
// Settings - Unfinished
|
||||||
"settings.header.unfinished": "Unfinished",
|
"settings.header.unfinished": "Unfinished",
|
||||||
|
|
||||||
// Web Remote
|
// Web Remote
|
||||||
"remote.web.title": "Cider Remote",
|
"remote.web.title": "Cider Remote",
|
||||||
"remote.web.description": "Scan the QR code to pair your phone up with this Cider instance",
|
"remote.web.description": "Scan the QR code to pair your phone up with this Cider instance",
|
||||||
|
|
||||||
// About
|
// About
|
||||||
"about.thanks": "Major thanks to the Cider Collective Team and all of our contributors."
|
"about.thanks": "Major thanks to the Cider Collective Team and all of our contributors."
|
||||||
}
|
}
|
|
@ -1,4 +1,4 @@
|
||||||
{ // Base File
|
{
|
||||||
|
|
||||||
// i18n Info
|
// i18n Info
|
||||||
"i18n.languageName": "Español (ES)", // name of language in native language
|
"i18n.languageName": "Español (ES)", // name of language in native language
|
||||||
|
@ -19,6 +19,7 @@
|
||||||
"notification.updatingLibrarySongs": "Actualizando canciones de la biblioteca...",
|
"notification.updatingLibrarySongs": "Actualizando canciones de la biblioteca...",
|
||||||
"notification.updatingLibraryAlbums": "Actualizando álbumes de la biblioteca...",
|
"notification.updatingLibraryAlbums": "Actualizando álbumes de la biblioteca...",
|
||||||
"notification.updatingLibraryArtists": "Actualizando biblioteca de artistas...",
|
"notification.updatingLibraryArtists": "Actualizando biblioteca de artistas...",
|
||||||
|
|
||||||
// Terms
|
// Terms
|
||||||
"term.appleInc": "Apple Inc.",
|
"term.appleInc": "Apple Inc.",
|
||||||
"term.appleMusic": "Apple Music",
|
"term.appleMusic": "Apple Music",
|
||||||
|
@ -91,7 +92,7 @@
|
||||||
"term.less": "Menos",
|
"term.less": "Menos",
|
||||||
"term.showMore": "Mostrar más",
|
"term.showMore": "Mostrar más",
|
||||||
"term.showLess": "Mostrar menos",
|
"term.showLess": "Mostrar menos",
|
||||||
"term.topSongs" : "Top canciones",
|
"term.topSongs": "Top canciones",
|
||||||
"term.latestReleases": "Últimos lanzamientos",
|
"term.latestReleases": "Últimos lanzamientos",
|
||||||
"term.time.added": "Añadido",
|
"term.time.added": "Añadido",
|
||||||
"term.time.released": "Lanzado",
|
"term.time.released": "Lanzado",
|
||||||
|
@ -125,7 +126,6 @@
|
||||||
"term.menu": "Menú",
|
"term.menu": "Menú",
|
||||||
"term.check": "Comprobar",
|
"term.check": "Comprobar",
|
||||||
"term.aboutArtist": "Más sobre {{artistName}}", // e.g. 'About Doja Cat'
|
"term.aboutArtist": "Más sobre {{artistName}}", // e.g. 'About Doja Cat'
|
||||||
"term.updateCider": "Actualizar Cider",
|
|
||||||
|
|
||||||
// Home
|
// Home
|
||||||
"home.title": "Inicio",
|
"home.title": "Inicio",
|
||||||
|
@ -136,13 +136,14 @@
|
||||||
"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
|
// Errors
|
||||||
"error.appleMusicSubRequired": "Apple Music necesita una suscripción.",
|
"error.appleMusicSubRequired": "Apple Music necesita una suscripción.",
|
||||||
"error.connectionError": "Ha habido un problema al conectar con Apple Music.",
|
"error.connectionError": "Ha habido un problema al conectar con Apple Music.",
|
||||||
"error.noResults": "Sin resultados",
|
"error.noResults": "Sin resultados",
|
||||||
"error.noResults.description": "Intenta otra búsqueda.",
|
"error.noResults.description": "Intenta otra búsqueda.",
|
||||||
|
|
||||||
//Podcasts
|
// Podcasts
|
||||||
"podcast.followOnCider": "Seguir en Cider",
|
"podcast.followOnCider": "Seguir en Cider",
|
||||||
"podcast.followedOnCider": "Siguiendo en Cider",
|
"podcast.followedOnCider": "Siguiendo en Cider",
|
||||||
"podcast.subscribeOnItunes": "Suscribirse en iTunes",
|
"podcast.subscribeOnItunes": "Suscribirse en iTunes",
|
||||||
|
@ -208,6 +209,9 @@
|
||||||
"settings.option.general.language.fun": "Idiomas divertidos",
|
"settings.option.general.language.fun": "Idiomas divertidos",
|
||||||
"settings.option.general.language.unsorted": "Sin clasificar",
|
"settings.option.general.language.unsorted": "Sin clasificar",
|
||||||
|
|
||||||
|
// Update Cider
|
||||||
|
"settings.option.general.updateCider": "Actualizar Cider", // Button
|
||||||
|
|
||||||
// Settings - Audio
|
// Settings - Audio
|
||||||
"settings.header.audio": "Audio",
|
"settings.header.audio": "Audio",
|
||||||
"settings.header.audio.description": "Ajustes del audio de Cider.",
|
"settings.header.audio.description": "Ajustes del audio de Cider.",
|
||||||
|
@ -222,6 +226,7 @@
|
||||||
"settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "Normaliza los picos altos de canciones para hacer la experiencia de escucha mejor.",
|
"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": "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.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 - Visual
|
||||||
"settings.header.visual": "Visual",
|
"settings.header.visual": "Visual",
|
||||||
"settings.header.visual.description": "Ajustes visuales para Cider.",
|
"settings.header.visual.description": "Ajustes visuales para Cider.",
|
||||||
|
@ -244,6 +249,9 @@
|
||||||
"settings.option.visual.hardwareAcceleration.description": "La app requiere reinicio",
|
"settings.option.visual.hardwareAcceleration.description": "La app requiere reinicio",
|
||||||
"settings.header.visual.hardwareAcceleration.default": "Por defecto",
|
"settings.header.visual.hardwareAcceleration.default": "Por defecto",
|
||||||
"settings.header.visual.hardwareAcceleration.webGPU": "WebGPU",
|
"settings.header.visual.hardwareAcceleration.webGPU": "WebGPU",
|
||||||
|
|
||||||
|
// Settings - Visual - Theme name
|
||||||
|
|
||||||
// Refer to term.disabled for the disabled option
|
// Refer to term.disabled for the disabled option
|
||||||
"settings.option.visual.showPersonalInfo": "Mostrar información personal", // Toggle
|
"settings.option.visual.showPersonalInfo": "Mostrar información personal", // Toggle
|
||||||
|
|
||||||
|
@ -276,8 +284,8 @@
|
||||||
"settings.header.experimental.description": "Ajustes en pruebas para Cider.",
|
"settings.header.experimental.description": "Ajustes en pruebas para Cider.",
|
||||||
"settings.option.experimental.compactUI": "Interfaz de usuario compacto", // Toggle
|
"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",
|
"settings.option.experimental.close_button_hide": "El botón de cerrar minimizará la aplicación en la bandeja",
|
||||||
// Refer to term.disabled & term.enabled
|
|
||||||
|
|
||||||
|
// Refer to term.disabled & term.enabled
|
||||||
// Spatialization Menu
|
// Spatialization Menu
|
||||||
"spatial.notTurnedOn": "La espacialización del audio esta desactivada. Para usarlo primero actívelo.",
|
"spatial.notTurnedOn": "La espacialización del audio esta desactivada. Para usarlo primero actívelo.",
|
||||||
"spatial.spatialProperties": "Propiedades espaciales",
|
"spatial.spatialProperties": "Propiedades espaciales",
|
||||||
|
@ -309,4 +317,4 @@
|
||||||
|
|
||||||
// About
|
// About
|
||||||
"about.thanks": "Muchísimas gracias al equipo de Cider Collective y también a todos nuestros contribuidores."
|
"about.thanks": "Muchísimas gracias al equipo de Cider Collective y también a todos nuestros contribuidores."
|
||||||
}
|
}
|
|
@ -1,4 +1,4 @@
|
||||||
{ // Base File
|
{
|
||||||
|
|
||||||
// i18n Info
|
// i18n Info
|
||||||
"i18n.languageName": "Français (CA)", // name of language in native language
|
"i18n.languageName": "Français (CA)", // name of language in native language
|
||||||
|
@ -19,6 +19,7 @@
|
||||||
"notification.updatingLibrarySongs": "Rafraîchir des chansons...",
|
"notification.updatingLibrarySongs": "Rafraîchir des chansons...",
|
||||||
"notification.updatingLibraryAlbums": "Rafraîchir des albums...",
|
"notification.updatingLibraryAlbums": "Rafraîchir des albums...",
|
||||||
"notification.updatingLibraryArtists": "Rafraîchir des artistes...",
|
"notification.updatingLibraryArtists": "Rafraîchir des artistes...",
|
||||||
|
|
||||||
// Terms
|
// Terms
|
||||||
"term.appleInc": "Apple Inc.",
|
"term.appleInc": "Apple Inc.",
|
||||||
"term.appleMusic": "Apple Music",
|
"term.appleMusic": "Apple Music",
|
||||||
|
@ -128,13 +129,14 @@
|
||||||
"home.madeForYou": "Creér pour toi",
|
"home.madeForYou": "Creér pour toi",
|
||||||
"home.friendsListeningTo": "Amis écoutant",
|
"home.friendsListeningTo": "Amis écoutant",
|
||||||
"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": "Un problème est survenu lors de la connexion à Apple Music.",
|
"error.connectionError": "Un problème est survenu lors de la connexion à Apple Music.",
|
||||||
"error.noResults": "Pas de resultats.",
|
"error.noResults": "Pas de resultats.",
|
||||||
"error.noResults.description": "Essayez une nouvelle recherche.",
|
"error.noResults.description": "Essayez une nouvelle recherche.",
|
||||||
|
|
||||||
//Podcasts
|
// Podcasts
|
||||||
"podcast.followOnCider": "Suivez sur Cider",
|
"podcast.followOnCider": "Suivez sur Cider",
|
||||||
"podcast.followedOnCider": "Suivi sur Cider",
|
"podcast.followedOnCider": "Suivi sur Cider",
|
||||||
"podcast.subscribeOnItunes": "S'abonner sur iTunes",
|
"podcast.subscribeOnItunes": "S'abonner sur iTunes",
|
||||||
|
@ -194,6 +196,8 @@
|
||||||
"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 - Audio
|
// Settings - Audio
|
||||||
"settings.header.audio": "Audio",
|
"settings.header.audio": "Audio",
|
||||||
"settings.header.audio.description": "Réglez les réglages audio de Cider.",
|
"settings.header.audio.description": "Réglez les réglages audio de Cider.",
|
||||||
|
@ -208,6 +212,7 @@
|
||||||
"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": "Audio Spatialization", // Toggle
|
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "Audio Spatialization", // Toggle
|
||||||
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "Spatialisez l'audio et rendez l'audio plus tridimensionnel (remarque: il ne s'agit pas de Dolby Atmos)",
|
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "Spatialisez l'audio et rendez l'audio plus tridimensionnel (remarque: il ne s'agit pas de Dolby Atmos)",
|
||||||
|
|
||||||
// Settings - Visual
|
// Settings - Visual
|
||||||
"settings.header.visual": "Visuel",
|
"settings.header.visual": "Visuel",
|
||||||
"settings.header.visual.description": "Ajustez les réglages visuels de Cider.",
|
"settings.header.visual.description": "Ajustez les réglages visuels de Cider.",
|
||||||
|
@ -230,6 +235,9 @@
|
||||||
"settings.option.visual.hardwareAcceleration.description": "Nécessite une relance",
|
"settings.option.visual.hardwareAcceleration.description": "Nécessite une relance",
|
||||||
"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 - Visual - Theme name
|
||||||
|
|
||||||
// Refer to term.disabled for the disabled option
|
// Refer to term.disabled for the disabled option
|
||||||
"settings.option.visual.showPersonalInfo": "Afficher les informations personnelles", // Toggle
|
"settings.option.visual.showPersonalInfo": "Afficher les informations personnelles", // Toggle
|
||||||
|
|
||||||
|
@ -265,8 +273,8 @@
|
||||||
"settings.option.experimental.closeButtonBehaviour.quit": "Quitter Cider",
|
"settings.option.experimental.closeButtonBehaviour.quit": "Quitter Cider",
|
||||||
"settings.option.experimental.closeButtonBehaviour.minimizeTaskbar": "Réduire à la barre des tâches",
|
"settings.option.experimental.closeButtonBehaviour.minimizeTaskbar": "Réduire à la barre des tâches",
|
||||||
"settings.option.experimental.closeButtonBehaviour.minimizeTray": "Réduire dans le bac",
|
"settings.option.experimental.closeButtonBehaviour.minimizeTray": "Réduire dans le bac",
|
||||||
// Refer to term.disabled & term.enabled
|
|
||||||
|
|
||||||
|
// Refer to term.disabled & term.enabled
|
||||||
// Spatialization Menu
|
// Spatialization Menu
|
||||||
"spatial.spatialProperties" : "Propriétés spatiales",
|
"spatial.spatialProperties" : "Propriétés spatiales",
|
||||||
"spatial.width" : "Largeur",
|
"spatial.width" : "Largeur",
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ // 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
|
||||||
|
@ -19,6 +19,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",
|
||||||
|
@ -93,7 +94,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é",
|
||||||
|
@ -127,7 +128,6 @@
|
||||||
"term.menu": "Menu",
|
"term.menu": "Menu",
|
||||||
"term.check": "Vérifier",
|
"term.check": "Vérifier",
|
||||||
"term.aboutArtist": "À propos de {{artistName}}", // e.g. 'About Doja Cat'
|
"term.aboutArtist": "À propos de {{artistName}}", // e.g. 'About Doja Cat'
|
||||||
"term.updateCider": "Mettre à jour Cider",
|
|
||||||
"term.topResult": "Meilleurs résultats", // Search Results
|
"term.topResult": "Meilleurs résultats", // Search Results
|
||||||
"term.sharedPlaylists": "Playlists partagées", // Search Results
|
"term.sharedPlaylists": "Playlists partagées", // Search Results
|
||||||
"term.people": "Personnes", // Search Results
|
"term.people": "Personnes", // Search Results
|
||||||
|
@ -153,13 +153,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",
|
||||||
|
@ -228,6 +229,9 @@
|
||||||
"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.",
|
||||||
|
@ -249,6 +253,7 @@
|
||||||
"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.",
|
||||||
|
@ -311,8 +316,8 @@
|
||||||
"settings.option.experimental.close_button_hide": "Le bouton de fermeture doit masquer l'application",
|
"settings.option.experimental.close_button_hide": "Le bouton de fermeture doit masquer l'application",
|
||||||
"settings.option.experimental.copy_log": "Copier les logs dans le presse-papier",
|
"settings.option.experimental.copy_log": "Copier les logs dans le presse-papier",
|
||||||
"settings.option.experimental.inline_playlists": "Playlists et albums en ligne",
|
"settings.option.experimental.inline_playlists": "Playlists et albums en ligne",
|
||||||
// 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.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",
|
||||||
|
@ -344,4 +349,3 @@
|
||||||
// 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."
|
||||||
}
|
}
|
||||||
|
|
359
src/i18n/hi_IN.jsonc
Normal file
|
@ -0,0 +1,359 @@
|
||||||
|
{
|
||||||
|
|
||||||
|
// i18n Info
|
||||||
|
"i18n.languageName": "English (US)", // name of language in native language
|
||||||
|
"i18n.languageNameEnglish": "English (US)", // name of language in English
|
||||||
|
"i18n.category": "main", // main = real language, fun = fun community languages
|
||||||
|
"i18n.authors": "@maikirakiwi @vringster", // Authors, if you contribute to this file feel free to add your name seperated with a space
|
||||||
|
|
||||||
|
// App info
|
||||||
|
"app.name": "Cider",
|
||||||
|
|
||||||
|
"date.format": "${m} ${d}, ${y}",
|
||||||
|
|
||||||
|
// Dialogs
|
||||||
|
"dialog.cancel": "रोकें",
|
||||||
|
"dialog.ok": "ठीक है",
|
||||||
|
|
||||||
|
// Notification
|
||||||
|
"notification.updatingLibrarySongs": "अपडेटिंग लाइब्रेरी के गाने...",
|
||||||
|
"notification.updatingLibraryAlbums": "अपडेटिंग लाइब्रेरी के एल्बम...",
|
||||||
|
"notification.updatingLibraryArtists": "अपडेटिंग लाइब्रेरी के कलाकार...",
|
||||||
|
|
||||||
|
// Terms
|
||||||
|
"term.appleInc": "Apple Inc.",
|
||||||
|
"term.appleMusic": "Apple Music",
|
||||||
|
"term.applePodcasts": "Apple Podcasts",
|
||||||
|
"term.itunes": "iTunes",
|
||||||
|
"term.github": "GitHub",
|
||||||
|
"term.discord": "Discord",
|
||||||
|
"term.learnMore": "और जानिए",
|
||||||
|
"term.accountSettings": "खाता सेटिंग्स",
|
||||||
|
"term.logout": "लॉग आऊट",
|
||||||
|
"term.login": "लॉग इन",
|
||||||
|
"term.about": "के बारे में",
|
||||||
|
"term.privateSession": "गुप्त सैशन",
|
||||||
|
"term.queue": "कतार",
|
||||||
|
"term.history": "हिस्टरी",
|
||||||
|
"term.search": "खोज करें",
|
||||||
|
"term.library": "लाइब्रेरी",
|
||||||
|
"term.listenNow": "अभी सुनियें",
|
||||||
|
"term.browse": "ब्राउज़",
|
||||||
|
"term.radio": "रेडियो",
|
||||||
|
"term.recentlyAdded": "हाल ही में जोड़ें हुए",
|
||||||
|
"term.songs": "गाने",
|
||||||
|
"term.albums": "एल्बम",
|
||||||
|
"term.artists": "कलाकार",
|
||||||
|
"term.podcasts": "पॉडकास्टस",
|
||||||
|
"term.playlists": "प्लेलिस्ट्स",
|
||||||
|
"term.playlist": "प्लेलिस्ट",
|
||||||
|
"term.newPlaylist": "नई प्लेलिस्ट्स",
|
||||||
|
"term.newPlaylistFolder": "नई प्लेलिस्ट्स फ़ोल्डर",
|
||||||
|
"term.createNewPlaylist": "नई प्लेलिस्ट्स बनाएं",
|
||||||
|
"term.createNewPlaylistFolder": "नई प्लेलिस्ट्स फ़ोल्डर बनाएं",
|
||||||
|
"term.deletePlaylist": "क्या आप वाकई इस प्लेलिस्ट को हटाना चाहते हैं",
|
||||||
|
"term.play": "प्ले",
|
||||||
|
"term.pause": "ठहराव",
|
||||||
|
"term.previous": "पिछले",
|
||||||
|
"term.next": "अगले",
|
||||||
|
"term.shuffle": "शफल",
|
||||||
|
"term.repeat": "रिपीट",
|
||||||
|
"term.volume": "वॉल्यूम",
|
||||||
|
"term.mute": "म्यूट",
|
||||||
|
"term.unmute": "अनम्यूट",
|
||||||
|
"term.share": "शेयर",
|
||||||
|
"term.share.success": "क्लिपबोर्ड में कॉपीड",
|
||||||
|
"term.settings": "सेटिंग्स",
|
||||||
|
"term.seeAll": "सभी देखें",
|
||||||
|
"term.sortBy": "सॉर्ट बाये",
|
||||||
|
"term.sortBy.album": "एल्बम",
|
||||||
|
"term.sortBy.artist": "कलाकार",
|
||||||
|
"term.sortBy.name": "नाम",
|
||||||
|
"term.sortBy.genre": "शैली",
|
||||||
|
"term.sortBy.releaseDate": "रिलीज़ की तारीख",
|
||||||
|
"term.sortBy.duration": "लंबाई",
|
||||||
|
"term.sortOrder": "ए-ज़ी",
|
||||||
|
"term.sortOrder.ascending": "असेंडिंग",
|
||||||
|
"term.sortOrder.descending": "डिसेंडिंग",
|
||||||
|
"term.viewAs": "वियू ऐस",
|
||||||
|
"term.viewAs.coverArt": "कवर आर्ट",
|
||||||
|
"term.viewAs.list": "सूची",
|
||||||
|
"term.size": "साइज़",
|
||||||
|
"term.size.normal": "साधारण",
|
||||||
|
"term.size.compact": "पिचका हुआ",
|
||||||
|
"term.enable": "खोलें",
|
||||||
|
"term.disable": "बंद",
|
||||||
|
"term.enabled": "खोला हुआ",
|
||||||
|
"term.disabled": "बंद हुआ हुआ",
|
||||||
|
"term.connect": "कनेक्ट",
|
||||||
|
"term.connecting": "कनेक्टिंग",
|
||||||
|
"term.disconnect": "डिसकनेक्ट",
|
||||||
|
"term.authed": "प्रमाणित",
|
||||||
|
"term.confirm": "पक्का?",
|
||||||
|
"term.more": "ज़्यादा",
|
||||||
|
"term.less": "कम",
|
||||||
|
"term.showMore": "दिखाएं ज़्यादा",
|
||||||
|
"term.showLess": "दिखाएं कम",
|
||||||
|
"term.topSongs": "Top Songs",
|
||||||
|
"term.latestReleases": "Latest Releases",
|
||||||
|
"term.time.added": "Added",
|
||||||
|
"term.time.released": "Released",
|
||||||
|
"term.time.updated": "Updated",
|
||||||
|
"term.time.hours": "hours",
|
||||||
|
"term.time.hour": "hour",
|
||||||
|
"term.time.minutes": "minutes",
|
||||||
|
"term.time.minute": "minute",
|
||||||
|
"term.time.seconds": "seconds",
|
||||||
|
"term.time.second": "second",
|
||||||
|
"term.fullscreenView": "Fullscreen View",
|
||||||
|
"term.defaultView": "Default View",
|
||||||
|
"term.audioSettings": "Audio Settings",
|
||||||
|
"term.clearAll": "Clear All",
|
||||||
|
"term.recentStations": "Recent Stations",
|
||||||
|
"term.language": "Language",
|
||||||
|
"term.funLanguages": "Fun",
|
||||||
|
"term.noLyrics": "Loading... / Lyrics not found./ Instrumental.",
|
||||||
|
"term.copyright": "Copyright",
|
||||||
|
"term.rightsReserved": "All Rights Reserved.",
|
||||||
|
"term.sponsor": "Sponsor this project",
|
||||||
|
"term.ciderTeam": "Cider Team",
|
||||||
|
"term.developer": "Developer",
|
||||||
|
"term.socialTeam": "Social Team",
|
||||||
|
"term.socials": "Socials",
|
||||||
|
"term.contributors": "Contributors",
|
||||||
|
"term.equalizer": "Equalizer",
|
||||||
|
"term.reset": "Reset",
|
||||||
|
"term.tracks": "tracks", // Assume x amount of tracks. e.g. 50 tracks
|
||||||
|
"term.videos": "Videos",
|
||||||
|
"term.menu": "Menu",
|
||||||
|
"term.check": "Check",
|
||||||
|
"term.aboutArtist": "About {{artistName}}", // e.g. 'About Doja Cat'
|
||||||
|
"term.topResult": "Top Result", // Search Results
|
||||||
|
"term.sharedPlaylists": "Shared Playlists", // Search Results
|
||||||
|
"term.people": "People", // Search Results
|
||||||
|
"term.newpreset.name": "नई 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.title": "Home",
|
||||||
|
"home.recentlyPlayed": "Recently Played",
|
||||||
|
"home.recentlyAdded": "Recently Added",
|
||||||
|
"home.artistsFeed": "Your Artists Feed",
|
||||||
|
"home.artistsFeed.noArtist": "Follow some artists first and their latest releases will be here",
|
||||||
|
"home.madeForYou": "Made For You",
|
||||||
|
"home.friendsListeningTo": "Friends Listening To",
|
||||||
|
"home.followedArtists": "Followed Artists",
|
||||||
|
|
||||||
|
// Errors
|
||||||
|
"error.appleMusicSubRequired": "Apple Music requires a subscription.",
|
||||||
|
"error.connectionError": "There was a problem connecting to Apple Music.",
|
||||||
|
"error.noResults": "No Results.",
|
||||||
|
"error.noResults.description": "Try a नई search.",
|
||||||
|
|
||||||
|
// Podcasts
|
||||||
|
"podcast.followOnCider": "Follow On Cider",
|
||||||
|
"podcast.followedOnCider": "Following On Cider",
|
||||||
|
"podcast.subscribeOnItunes": "Subscribe On iTunes",
|
||||||
|
"podcast.subscribedOnItunes": "Subscribed On iTunes",
|
||||||
|
"podcast.itunesStore": "iTunes Store",
|
||||||
|
"podcast.episodes": "Episodes",
|
||||||
|
"podcast.playEpisode": "Play Episode",
|
||||||
|
"podcast.website": "Podcast Website",
|
||||||
|
|
||||||
|
// Actions
|
||||||
|
"action.addToLibrary": "Add to Library",
|
||||||
|
"action.addToLibrary.success": "Added to Library",
|
||||||
|
"action.addToLibrary.error": "Error Adding to Library",
|
||||||
|
"action.removeFromLibrary": "Remove from Library",
|
||||||
|
"action.removeFromLibrary.success": "Removed from Library",
|
||||||
|
"action.addToQueue": "Add to Queue",
|
||||||
|
"action.addToQueue.success": "Added to Queue",
|
||||||
|
"action.addToQueue.error": "Error Adding to Queue",
|
||||||
|
"action.removeFromQueue": "Remove from Queue",
|
||||||
|
"action.removeFromQueue.success": "Removed from Queue",
|
||||||
|
"action.removeFromQueue.error": "Error Removing from Queue",
|
||||||
|
"action.createPlaylist": "बनाएं a नई Playlist",
|
||||||
|
"action.addToPlaylist": "Add to Playlist",
|
||||||
|
"action.removeFromPlaylist": "Remove from Playlist",
|
||||||
|
"action.addToFavorites": "Add to Favorites",
|
||||||
|
"action.follow": "Follow",
|
||||||
|
"action.follow.success": "Followed",
|
||||||
|
"action.follow.error": "Error Following",
|
||||||
|
"action.unfollow": "Unfollow",
|
||||||
|
"action.unfollow.success": "Unfollowed",
|
||||||
|
"action.unfollow.error": "Error Unfollowing",
|
||||||
|
"action.playNext": "Play Next",
|
||||||
|
"action.playLater": "Play Later",
|
||||||
|
"action.startRadio": "Start Radio",
|
||||||
|
"action.goToArtist": "Go to Artist",
|
||||||
|
"action.goToAlbum": "Go to Album",
|
||||||
|
"action.moveToTop": "Move to top",
|
||||||
|
"action.share": "Share",
|
||||||
|
"action.rename": "Rename",
|
||||||
|
"action.love": "Love",
|
||||||
|
"action.unlove": "Unlove",
|
||||||
|
"action.dislike": "Dislike",
|
||||||
|
"action.undoDislike": "Undo dislike",
|
||||||
|
"action.showWebRemoteQR": "Web Remote",
|
||||||
|
"action.playTracksNext": "Play ${app.selectedMediaItems.length} tracks next",
|
||||||
|
"action.playTracksLater": "Play ${app.selectedMediaItems.length} tracks later",
|
||||||
|
"action.removeTracks": "Remove ${self.selectedItems.length} tracks from queue",
|
||||||
|
"action.import": "Import",
|
||||||
|
"action.export": "Export",
|
||||||
|
"action.showAlbum": "दिखाएं Complete Album",
|
||||||
|
"action.tray.minimize": "Minimize to Tray",
|
||||||
|
"action.tray.quit": "Quit",
|
||||||
|
"action.tray.show": "दिखाएं",
|
||||||
|
"action.update": "Update",
|
||||||
|
"action.copy": "Copy",
|
||||||
|
"action.newpreset": "नई Preset...", // Equalizer Preset
|
||||||
|
"action.deletepreset": "Delete Preset",
|
||||||
|
|
||||||
|
// Settings - General
|
||||||
|
"settings.header.general": "General",
|
||||||
|
"settings.header.general.description": "Adjust the general settings for Cider.",
|
||||||
|
"settings.option.general.language": "Language",
|
||||||
|
|
||||||
|
// Language optgroups
|
||||||
|
"settings.option.general.language.main": "Languages",
|
||||||
|
"settings.option.general.language.fun": "Fun Languages",
|
||||||
|
"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.header.audio": "Audio",
|
||||||
|
"settings.header.audio.description": "Adjust the audio settings for Cider.",
|
||||||
|
"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.description": "256 kbps",
|
||||||
|
"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.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.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.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.description": "Spatialize audio and make audio more 3-dimensional (note: This is not Dolby Atmos)",
|
||||||
|
|
||||||
|
// Settings - Visual
|
||||||
|
"settings.header.visual": "Visual",
|
||||||
|
"settings.header.visual.description": "Adjust the visual settings for Cider.",
|
||||||
|
"settings.option.visual.windowBackgroundStyle": "Window Background Style", // Toggle
|
||||||
|
"settings.header.visual.windowBackgroundStyle.none": "None",
|
||||||
|
"settings.header.visual.windowBackgroundStyle.artwork": "Artwork",
|
||||||
|
"settings.header.visual.windowBackgroundStyle.image": "Image",
|
||||||
|
"settings.option.visual.animatedArtwork": "Animated Artwork", // Dropdown
|
||||||
|
"settings.header.visual.animatedArtwork.always": "Always",
|
||||||
|
"settings.header.visual.animatedArtwork.limited": "Limited to pages and special entries",
|
||||||
|
"settings.header.visual.animatedArtwork.disable": "Disable everywhere",
|
||||||
|
"settings.option.visual.animatedArtworkQuality": "Animated Artwork Quality", // Dropdown
|
||||||
|
"settings.header.visual.animatedArtworkQuality.low": "Low",
|
||||||
|
"settings.header.visual.animatedArtworkQuality.medium": "Medium",
|
||||||
|
"settings.header.visual.animatedArtworkQuality.high": "High",
|
||||||
|
"settings.header.visual.animatedArtworkQuality.veryHigh": "Very High",
|
||||||
|
"settings.header.visual.animatedArtworkQuality.extreme": "Extreme",
|
||||||
|
"settings.option.visual.animatedWindowBackground": "Animated Window Background", // Toggle
|
||||||
|
"settings.option.visual.hardwareAcceleration": "Hardware Acceleration", // Dropdown
|
||||||
|
"settings.option.visual.hardwareAcceleration.description": "Requires relaunch",
|
||||||
|
"settings.header.visual.hardwareAcceleration.default": "Default",
|
||||||
|
"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
|
||||||
|
"settings.option.visual.showPersonalInfo": "दिखाएं Personal Info", // Toggle
|
||||||
|
|
||||||
|
// Settings - Lyrics
|
||||||
|
"settings.header.lyrics": "Lyrics",
|
||||||
|
"settings.header.lyrics.description": "Adjust the lyrics settings for Cider.",
|
||||||
|
"settings.option.lyrics.enableMusixmatch": "Enable Musixmatch Lyrics", // Toggle
|
||||||
|
"settings.option.lyrics.enableMusixmatchKaraoke": "Enable Karaoke Mode (Musixmatch only)", // Toggle
|
||||||
|
"settings.option.lyrics.musixmatchPreferredLanguage": "Musixmatch Translation Preferred Language", // Dropdown
|
||||||
|
"settings.option.lyrics.enableYoutubeLyrics": "Enable Youtube Lyrics for Music Videos", // Toggle
|
||||||
|
|
||||||
|
// Settings - Connectivity
|
||||||
|
"settings.header.connectivity": "Connectivity",
|
||||||
|
"settings.header.connectivity.description": "Adjust the connectivity settings for Cider.",
|
||||||
|
"settings.option.connectivity.discordRPC": "Discord Rich Presence", // Dropdown
|
||||||
|
"settings.option.connectivity.playbackNotifications": "Playback Notifications", // Toggle
|
||||||
|
// Refer to term.disabled for the disabled option
|
||||||
|
"settings.header.connectivity.discordRPC.cider": "Display as 'Cider'",
|
||||||
|
"settings.header.connectivity.discordRPC.appleMusic": "Display as 'Apple Music'",
|
||||||
|
"settings.option.connectivity.discordRPC.clearOnPause": "Clear Discord Rich Presence on Pause", // Toggle
|
||||||
|
"settings.option.connectivity.lastfmScrobble": "Last.fm Scrobbling", // Option to Connect
|
||||||
|
"settings.option.connectivity.lastfmScrobble.delay": "Last.fm Scrobble Delay (%)",
|
||||||
|
"settings.option.connectivity.lastfmScrobble.nowPlaying": "Enable Last.fm Now Playing",
|
||||||
|
"settings.option.connectivity.lastfmScrobble.removeFeatured": "Remove featuring artists from song title (Last.fm)",
|
||||||
|
"settings.option.connectivity.lastfmScrobble.filterLoop": "Filter looped track (Last.fm)",
|
||||||
|
// Refer to term.connect for the connect button
|
||||||
|
|
||||||
|
// Settings - Experimental
|
||||||
|
"settings.header.experimental": "Experimental",
|
||||||
|
"settings.header.experimental.description": "Adjust the experimental settings for Cider.",
|
||||||
|
"settings.option.experimental.compactUI": "Compact UI", // Toggle
|
||||||
|
"settings.option.experimental.close_button_hide": "Close Button Should Hide the Application",
|
||||||
|
"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
|
||||||
|
"spatial.notTurnedOn": "Audio Spatialization is disabled. To use, please enable it first.",
|
||||||
|
"spatial.spatialProperties": "Spatial Properties",
|
||||||
|
"spatial.width": "Width",
|
||||||
|
"spatial.height": "Height",
|
||||||
|
"spatial.depth": "Depth",
|
||||||
|
"spatial.gain": "Gain",
|
||||||
|
"spatial.roomMaterials": "Room Materials",
|
||||||
|
"spatial.roomDimensions": "Room Dimensions",
|
||||||
|
"spatial.roomPositions": "Room Positions",
|
||||||
|
"spatial.setDimensions": "Set Dimensions",
|
||||||
|
"spatial.setPositions": "Set Positions",
|
||||||
|
"spatial.up": "Up",
|
||||||
|
"spatial.front": "Front",
|
||||||
|
"spatial.left": "Left",
|
||||||
|
"spatial.right": "Right",
|
||||||
|
"spatial.back": "Back",
|
||||||
|
"spatial.down": "Down",
|
||||||
|
"spatial.listener": "Listener",
|
||||||
|
"spatial.audioSource": "Audio Source",
|
||||||
|
|
||||||
|
// Settings - Unfinished
|
||||||
|
"settings.header.unfinished": "Unfinished",
|
||||||
|
|
||||||
|
// Web Remote
|
||||||
|
"remote.web.title": "Cider Remote",
|
||||||
|
"remote.web.description": "Scan the QR code to pair your phone up with this Cider instance",
|
||||||
|
|
||||||
|
// About
|
||||||
|
"about.thanks": "Major thanks to the Cider Collective Team and all of our contributors."
|
||||||
|
}
|
|
@ -1,10 +1,10 @@
|
||||||
{ // 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 +19,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 +47,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 +61,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 +93,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 +106,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 +170,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 +199,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 +279,12 @@
|
||||||
"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 +292,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 +308,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 +317,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 +350,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."
|
||||||
}
|
}
|
359
src/i18n/in_ID.jsonc
Normal file
|
@ -0,0 +1,359 @@
|
||||||
|
{
|
||||||
|
|
||||||
|
// i18n Info
|
||||||
|
"i18n.languageName": "Bahasa Indonesia", // name of language in native language
|
||||||
|
"i18n.languageNameEnglish": "Indonesian", // name of language in English
|
||||||
|
"i18n.category": "main", // main = real language, fun = fun community languages
|
||||||
|
"i18n.authors": "@crystalshower", // 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": "Batal",
|
||||||
|
"dialog.ok": "OK",
|
||||||
|
|
||||||
|
// Notification
|
||||||
|
"notification.updatingLibrarySongs": "Memperbarui Pustaka lagu...",
|
||||||
|
"notification.updatingLibraryAlbums": "Memperbarui Pustaka album...",
|
||||||
|
"notification.updatingLibraryArtists": "Memperbarui Pustaka artis...",
|
||||||
|
|
||||||
|
// Terms
|
||||||
|
"term.appleInc": "Apple Inc.",
|
||||||
|
"term.appleMusic": "Apple Music",
|
||||||
|
"term.applePodcasts": "Apple Podcasts",
|
||||||
|
"term.itunes": "iTunes",
|
||||||
|
"term.github": "GitHub",
|
||||||
|
"term.discord": "Discord",
|
||||||
|
"term.learnMore": "Pelajari lebih lanjut",
|
||||||
|
"term.accountSettings": "Pengaturan Akun",
|
||||||
|
"term.logout": "Keluar",
|
||||||
|
"term.login": "Masuk",
|
||||||
|
"term.about": "Tentang",
|
||||||
|
"term.privateSession": "Sesi Pribadi",
|
||||||
|
"term.queue": "Antrian",
|
||||||
|
"term.history": "Riwayat",
|
||||||
|
"term.search": "Cari",
|
||||||
|
"term.library": "Pustaka",
|
||||||
|
"term.listenNow": "Dengarkan Sekarang",
|
||||||
|
"term.browse": "Telusuri",
|
||||||
|
"term.radio": "Radio",
|
||||||
|
"term.recentlyAdded": "Baru Ditambahkan",
|
||||||
|
"term.songs": "Lagu",
|
||||||
|
"term.albums": "Album",
|
||||||
|
"term.artists": "Artis",
|
||||||
|
"term.podcasts": "Podcasts",
|
||||||
|
"term.playlists": "Playlist",
|
||||||
|
"term.playlist": "Playlist",
|
||||||
|
"term.newPlaylist": "Playlist Baru",
|
||||||
|
"term.newPlaylistFolder": "Folder Playlist Baru",
|
||||||
|
"term.createNewPlaylist": "Buat Playlist Baru",
|
||||||
|
"term.createNewPlaylistFolder": "Buat Folder Playlist Baru",
|
||||||
|
"term.deletePlaylist": "Yakin ingin menghapus playlist ini?",
|
||||||
|
"term.play": "Mainkan",
|
||||||
|
"term.pause": "Jeda",
|
||||||
|
"term.previous": "Sebelumnya",
|
||||||
|
"term.next": "Selanjutnya",
|
||||||
|
"term.shuffle": "Acak",
|
||||||
|
"term.repeat": "Ulangi",
|
||||||
|
"term.volume": "Volume",
|
||||||
|
"term.mute": "Bisu",
|
||||||
|
"term.unmute": "Bunyikan",
|
||||||
|
"term.share": "Bagikan",
|
||||||
|
"term.share.success": "Disalin ke clipboard",
|
||||||
|
"term.settings": "Pengaturan",
|
||||||
|
"term.seeAll": "Lihat Semua",
|
||||||
|
"term.sortBy": "Urutkan Berdasarkan",
|
||||||
|
"term.sortBy.album": "Album",
|
||||||
|
"term.sortBy.artist": "Artis",
|
||||||
|
"term.sortBy.name": "Nama",
|
||||||
|
"term.sortBy.genre": "Genre",
|
||||||
|
"term.sortBy.releaseDate": "Tanggal Rilis",
|
||||||
|
"term.sortBy.duration": "Durasi",
|
||||||
|
"term.sortOrder": "A-Z",
|
||||||
|
"term.sortOrder.ascending": "Terkecil",
|
||||||
|
"term.sortOrder.descending": "Terbesar",
|
||||||
|
"term.viewAs": "Lihat Sebagai",
|
||||||
|
"term.viewAs.coverArt": "Cover Art",
|
||||||
|
"term.viewAs.list": "Daftar",
|
||||||
|
"term.size": "Ukuran",
|
||||||
|
"term.size.normal": "Normal",
|
||||||
|
"term.size.compact": "Kompak",
|
||||||
|
"term.enable": "Aktifkan",
|
||||||
|
"term.disable": "Nonaktifkan",
|
||||||
|
"term.enabled": "Diaktifkan",
|
||||||
|
"term.disabled": "Dinonaktikan",
|
||||||
|
"term.connect": "Sambungkan",
|
||||||
|
"term.connecting": "Menyambungkan",
|
||||||
|
"term.disconnect": "Terputus",
|
||||||
|
"term.authed": "Diotentikasi",
|
||||||
|
"term.confirm": "Konfirmasi?",
|
||||||
|
"term.more": "Selebihnya",
|
||||||
|
"term.less": "Lebih Sedikit",
|
||||||
|
"term.showMore": "Tampilkan lebih banyak",
|
||||||
|
"term.showLess": "Tampilkan lebih sedikit",
|
||||||
|
"term.topSongs": "Lagu Teratas",
|
||||||
|
"term.latestReleases": "Rilis Terbaru",
|
||||||
|
"term.time.added": "Ditambahkan",
|
||||||
|
"term.time.released": "Dirilis",
|
||||||
|
"term.time.updated": "Diperbarui",
|
||||||
|
"term.time.hours": "jam",
|
||||||
|
"term.time.hour": "jam",
|
||||||
|
"term.time.minutes": "menit",
|
||||||
|
"term.time.minute": "menit",
|
||||||
|
"term.time.seconds": "detik",
|
||||||
|
"term.time.second": "detik",
|
||||||
|
"term.fullscreenView": "Mode Layar Penuh",
|
||||||
|
"term.defaultView": "Mode Default",
|
||||||
|
"term.audioSettings": "Pengaturan Audio",
|
||||||
|
"term.clearAll": "Bersihkan Semua",
|
||||||
|
"term.recentStations": "Stasiun Terbaru",
|
||||||
|
"term.language": "Bahasa",
|
||||||
|
"term.funLanguages": "Senang-senang",
|
||||||
|
"term.noLyrics": "Memuat... / Lirik tidak ditermukan./ Instrumental.",
|
||||||
|
"term.copyright": "Hak cipta",
|
||||||
|
"term.rightsReserved": "Hak cipta dilindungi Undang-undang.",
|
||||||
|
"term.sponsor": "Sponsori proyek ini",
|
||||||
|
"term.ciderTeam": "Cider Team",
|
||||||
|
"term.developer": "Pengembang",
|
||||||
|
"term.socialTeam": "Social Team",
|
||||||
|
"term.socials": "Sosial",
|
||||||
|
"term.contributors": "Kontributor",
|
||||||
|
"term.equalizer": "Equalizer",
|
||||||
|
"term.reset": "Atur Ulang",
|
||||||
|
"term.tracks": "lagu", // Assume x amount of tracks. e.g. 50 tracks
|
||||||
|
"term.videos": "Video",
|
||||||
|
"term.menu": "Menu",
|
||||||
|
"term.check": "Cek",
|
||||||
|
"term.aboutArtist": "Tentang {{artistName}}", // e.g. 'About Doja Cat'
|
||||||
|
"term.topResult": "Hasil Teratas", // Search Results
|
||||||
|
"term.sharedPlaylists": "Playlist yang dibagikan", // Search Results
|
||||||
|
"term.people": "Orang", // Search Results
|
||||||
|
"term.newpreset.name": "Nama Preset EQ Baru", // Equalizer Preset
|
||||||
|
"term.addedpreset": "Preset Ditambahkan",
|
||||||
|
"term.deletepreset.warn": "Yakin ingin menghapus preset ini?",
|
||||||
|
"term.deletedpreset": "Preset dihapus",
|
||||||
|
"term.musicVideos": "Video Musik", // Search page friendlyTypes
|
||||||
|
"term.stations": "Stasiun",
|
||||||
|
"term.curators": "Kurator",
|
||||||
|
"term.appleCurators": "Kurator Apple",
|
||||||
|
"term.radioShows": "Acara Radio",
|
||||||
|
"term.recordLabels": "Label Rekaman",
|
||||||
|
"term.videoExtras": "Bonus Video",
|
||||||
|
"term.top": "Atas",
|
||||||
|
|
||||||
|
// Home
|
||||||
|
"home.title": "Beranda",
|
||||||
|
"home.recentlyPlayed": "Baru Dimainkan",
|
||||||
|
"home.recentlyAdded": "Baru Ditambahkan",
|
||||||
|
"home.artistsFeed": "Feed Artis Anda",
|
||||||
|
"home.artistsFeed.noArtist": "Ikuti beberapa artis terlebih dahulu dan rilisan terbaru mereka akan ada di sini",
|
||||||
|
"home.madeForYou": "Dibuat Untuk Kamu",
|
||||||
|
"home.friendsListeningTo": "Teman Sedang Mendengarkan",
|
||||||
|
"home.followedArtists": "Artis Diikuti",
|
||||||
|
|
||||||
|
// Errors
|
||||||
|
"error.appleMusicSubRequired": "Apple Music memerlukan langganan.",
|
||||||
|
"error.connectionError": "Terjadi masalah saat menyambungkan ke Apple Music.",
|
||||||
|
"error.noResults": "Tidak ada hasil.",
|
||||||
|
"error.noResults.description": "Coba pencarian baru.",
|
||||||
|
|
||||||
|
// Podcasts
|
||||||
|
"podcast.followOnCider": "Ikuti Di Cider",
|
||||||
|
"podcast.followedOnCider": "Mengikuti Di Cider",
|
||||||
|
"podcast.subscribeOnItunes": "Langganan Di iTunes",
|
||||||
|
"podcast.subscribedOnItunes": "Berlangganan Di iTunes",
|
||||||
|
"podcast.itunesStore": "iTunes Store",
|
||||||
|
"podcast.episodes": "Episode",
|
||||||
|
"podcast.playEpisode": "Mainkan Episode",
|
||||||
|
"podcast.website": "Website Podcast",
|
||||||
|
|
||||||
|
// Actions
|
||||||
|
"action.addToLibrary": "Tambahkan ke Pustaka",
|
||||||
|
"action.addToLibrary.success": "Ditambahkan ke Pustaka",
|
||||||
|
"action.addToLibrary.error": "Terjadi Kesalahan Saat Menambahkan Pustaka",
|
||||||
|
"action.removeFromLibrary": "Hapus dari Pustaka",
|
||||||
|
"action.removeFromLibrary.success": "Dihapus dari Pustaka",
|
||||||
|
"action.addToQueue": "Tambahkan ke Antrian",
|
||||||
|
"action.addToQueue.success": "Ditambahkan ke Antrian",
|
||||||
|
"action.addToQueue.error": "Terjadi Kesalahan Saat Menambahkan ke Antrean",
|
||||||
|
"action.removeFromQueue": "Hapus dari Antrian",
|
||||||
|
"action.removeFromQueue.success": "Dihapus dari Antrian",
|
||||||
|
"action.removeFromQueue.error": "Terjadi Kesalahan Saat Menghapus Antrian",
|
||||||
|
"action.createPlaylist": "Buat Playlist Baru",
|
||||||
|
"action.addToPlaylist": "Tambahkan ke Playlist",
|
||||||
|
"action.removeFromPlaylist": "Hapus dari Playlist",
|
||||||
|
"action.addToFavorites": "Tambahkan ke Favorit",
|
||||||
|
"action.follow": "Ikuti",
|
||||||
|
"action.follow.success": "Diikuti",
|
||||||
|
"action.follow.error": "Kesalahan Dalam Mengikuti",
|
||||||
|
"action.unfollow": "Berhenti Mengikuti",
|
||||||
|
"action.unfollow.success": "Sudah Tidak Mengikuti",
|
||||||
|
"action.unfollow.error": "Terjadi Kesalahan Saat Berhenti Mengikuti",
|
||||||
|
"action.playNext": "Mainkan Selanjutnya",
|
||||||
|
"action.playLater": "Mainkan Nanti",
|
||||||
|
"action.startRadio": "Mulai Radio",
|
||||||
|
"action.goToArtist": "Lihat Halaman Artis",
|
||||||
|
"action.goToAlbum": "Lihat Halaman Album",
|
||||||
|
"action.moveToTop": "Pindah ke Atas",
|
||||||
|
"action.share": "Bagikan",
|
||||||
|
"action.rename": "Ubah Nama",
|
||||||
|
"action.love": "Suka",
|
||||||
|
"action.unlove": "Batal Suka",
|
||||||
|
"action.dislike": "Tidak Suka",
|
||||||
|
"action.undoDislike": "Batalkan Tidak Suka",
|
||||||
|
"action.showWebRemoteQR": "Remot Web",
|
||||||
|
"action.playTracksNext": "Mainkan ${app.selectedMediaItems.length} lagu selanjutnya",
|
||||||
|
"action.playTracksLater": "Mainkan ${app.selectedMediaItems.length} lagu nanti",
|
||||||
|
"action.removeTracks": "Hapus ${self.selectedItems.length} lagu dari antrian",
|
||||||
|
"action.import": "Impor",
|
||||||
|
"action.export": "Ekspor",
|
||||||
|
"action.showAlbum": "Tampilkan Album Sepenuhnya",
|
||||||
|
"action.tray.minimize": "Sembunyikan ke Tray",
|
||||||
|
"action.tray.quit": "Keluar",
|
||||||
|
"action.tray.show": "Tampilkan",
|
||||||
|
"action.update": "Perbarui",
|
||||||
|
"action.copy": "Salin",
|
||||||
|
"action.newpreset": "Preset Baru...", // Equalizer Preset
|
||||||
|
"action.deletepreset": "Hapus Preset",
|
||||||
|
|
||||||
|
// Settings - General
|
||||||
|
"settings.header.general": "Umum",
|
||||||
|
"settings.header.general.description": "Sesuaikan pengaturan umum untuk Cider.",
|
||||||
|
"settings.option.general.language": "Bahasa",
|
||||||
|
|
||||||
|
// Language optgroups
|
||||||
|
"settings.option.general.language.main": "Bahasa",
|
||||||
|
"settings.option.general.language.fun": "Bahasa Candaan",
|
||||||
|
"settings.option.general.language.unsorted": "Tidak disortir",
|
||||||
|
|
||||||
|
// Update Cider
|
||||||
|
"settings.option.general.updateCider": "Perbarui Cider", // Button. Refer to term.check for the check button
|
||||||
|
"settings.option.general.updateCider.branch": "Branch Pembaruan Cider", // Dropdown
|
||||||
|
"settings.option.general.updateCider.branch.description": "Pilih branch untuk memperbarui Cider",
|
||||||
|
"settings.option.general.updateCider.branch.main": "Stable",
|
||||||
|
"settings.option.general.updateCider.branch.develop": "Development",
|
||||||
|
|
||||||
|
// Settings - Audio
|
||||||
|
"settings.header.audio": "Audio",
|
||||||
|
"settings.header.audio.description": "Sesuaikan pengaturan audio untuk Cider.",
|
||||||
|
"settings.option.audio.quality": "Kualitas Audio", // Dropdown
|
||||||
|
"settings.header.audio.quality.hireslossless": "Hi-Res Lossless",
|
||||||
|
"settings.header.audio.quality.hireslossless.description": "sampai dari 24-bit/192 kHz",
|
||||||
|
"settings.header.audio.quality.lossless": "Lossless",
|
||||||
|
"settings.header.audio.quality.lossless.description": "sampai dari 24-bit/48 kHz",
|
||||||
|
"settings.header.audio.quality.high": "Tinggi",
|
||||||
|
"settings.header.audio.quality.high.description": "256 kbps",
|
||||||
|
"settings.header.audio.quality.standard": "Standar",
|
||||||
|
"settings.header.audio.quality.standard.description": "64 kbps",
|
||||||
|
"settings.option.audio.seamlessTransition": "Transisi Audio Mulus", // Toggle
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality": "Aktifkan Fungsi Lanjutan", // Toggle
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.description": "Mengaktifkan fungsionalitas AudioContext memungkinkan fitur audio lanjutan seperti Normalisasi Audio, Equalizer dan Visualizer. Namun pada beberapa perangkat dapat menyebabkan tersendatnya audio.",
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.ciderPPE": "Cider Adrenaline Processor™️", // Toggle
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.ciderPPE.description": "Peningkatan Psikoakustik yang membuat semuanya terdengar lebih jelas dan lebih hidup | Dirancang oleh Maikiwi.",
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength": "Kekuatan CAP", // Toggle
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.description": "Mengubah kekuatan pemrosesan yang dilakukan pada audio. (Agresif dapat menghasilkan hasil yang tidak diinginkan)",
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.standard": "Standar",
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.aggressive": "Agresif",
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.audioNormalization": "Normalisasi Audio", // Toggle
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "Menormalkan puncak volume untuk masing-masing lagu demi menciptakan pengalaman mendengarkan yang lebih seragam.",
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "Spasialisasi Audio", // Toggle
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "Atur ruang audio dan buat audio lebih 3 dimensi (NB: Bukan Dolby Atmos)",
|
||||||
|
|
||||||
|
// Settings - Visual
|
||||||
|
"settings.header.visual": "Visual",
|
||||||
|
"settings.header.visual.description": "Sesuaikan pengaturan visual untuk Cider.",
|
||||||
|
"settings.option.visual.windowBackgroundStyle": "Gaya Latar Belakang Jendela", // Toggle
|
||||||
|
"settings.header.visual.windowBackgroundStyle.none": "Tidak Ada",
|
||||||
|
"settings.header.visual.windowBackgroundStyle.artwork": "Artwork",
|
||||||
|
"settings.header.visual.windowBackgroundStyle.image": "Gambar",
|
||||||
|
"settings.option.visual.animatedArtwork": "Artwork Bergerak", // Dropdown
|
||||||
|
"settings.header.visual.animatedArtwork.always": "Selalu",
|
||||||
|
"settings.header.visual.animatedArtwork.limited": "Terbatas untuk halaman dan entri khusus",
|
||||||
|
"settings.header.visual.animatedArtwork.disable": "Matikan di semua tempat",
|
||||||
|
"settings.option.visual.animatedArtworkQuality": "Kualitas Artwork Bergerak", // Dropdown
|
||||||
|
"settings.header.visual.animatedArtworkQuality.low": "Rendah",
|
||||||
|
"settings.header.visual.animatedArtworkQuality.medium": "Medium",
|
||||||
|
"settings.header.visual.animatedArtworkQuality.high": "Tinggi",
|
||||||
|
"settings.header.visual.animatedArtworkQuality.veryHigh": "Sangat Tinggi",
|
||||||
|
"settings.header.visual.animatedArtworkQuality.extreme": "Paling Tinggi",
|
||||||
|
"settings.option.visual.animatedWindowBackground": "Jendela Latar Belakang Bergerak", // Toggle
|
||||||
|
"settings.option.visual.hardwareAcceleration": "Akselerasi Perangkat Keras (HW Acceleration)", // Dropdown
|
||||||
|
"settings.option.visual.hardwareAcceleration.description": "Membutuhkan dibuka ulang",
|
||||||
|
"settings.header.visual.hardwareAcceleration.default": "Default",
|
||||||
|
"settings.header.visual.hardwareAcceleration.webGPU": "WebGPU",
|
||||||
|
"settings.header.visual.theme": "Tema",
|
||||||
|
|
||||||
|
// Settings - Visual - Theme name
|
||||||
|
"settings.option.visual.theme.default": "Cider",
|
||||||
|
"settings.option.visual.theme.dark": "Gelap",
|
||||||
|
|
||||||
|
// Refer to term.disabled for the disabled option
|
||||||
|
"settings.option.visual.showPersonalInfo": "Tampilkan Info Pribadi", // Toggle
|
||||||
|
|
||||||
|
// Settings - Lyrics
|
||||||
|
"settings.header.lyrics": "Lyrics",
|
||||||
|
"settings.header.lyrics.description": "Sesuaikan pengaturan lirik untuk Cider.",
|
||||||
|
"settings.option.lyrics.enableMusixmatch": "Aktifkan Lirik Musixmatch", // Toggle
|
||||||
|
"settings.option.lyrics.enableMusixmatchKaraoke": "Aktifkan Mode Karaoke (khusus Musixmatch)", // Toggle
|
||||||
|
"settings.option.lyrics.musixmatchPreferredLanguage": "Bahasa Terjemahan Musixmatch", // Dropdown
|
||||||
|
"settings.option.lyrics.enableYoutubeLyrics": "Aktifkan Lirik Youtube untuk Video Musik", // Toggle
|
||||||
|
|
||||||
|
// Settings - Connectivity
|
||||||
|
"settings.header.connectivity": "Konektivitas",
|
||||||
|
"settings.header.connectivity.description": "Sesuaikan pengaturan konektivitas untuk Cider.",
|
||||||
|
"settings.option.connectivity.discordRPC": "Discord Rich Presence", // Dropdown
|
||||||
|
"settings.option.connectivity.playbackNotifications": "Pemberitahuan Pemutaran", // Toggle
|
||||||
|
// Refer to term.disabled for the disabled option
|
||||||
|
"settings.header.connectivity.discordRPC.cider": "Tampilkan sebagai 'Cider'",
|
||||||
|
"settings.header.connectivity.discordRPC.appleMusic": "Tampilkan sebagai 'Apple Music'",
|
||||||
|
"settings.option.connectivity.discordRPC.clearOnPause": "Sembunyikan Discord Rich Presence saat dijeda", // Toggle
|
||||||
|
"settings.option.connectivity.lastfmScrobble": "Last.fm Scrobbling", // Option to Connect
|
||||||
|
"settings.option.connectivity.lastfmScrobble.delay": "Delay Last.fm Scrobble (%)",
|
||||||
|
"settings.option.connectivity.lastfmScrobble.nowPlaying": "Aktifkan Last.fm Now Playing",
|
||||||
|
"settings.option.connectivity.lastfmScrobble.removeFeatured": "Hapus featuring artist dari judul lagu (Last.fm)",
|
||||||
|
"settings.option.connectivity.lastfmScrobble.filterLoop": "Filter lagu yang diulang (Last.fm)",
|
||||||
|
// Refer to term.connect for the connect button
|
||||||
|
|
||||||
|
// Settings - Experimental
|
||||||
|
"settings.header.experimental": "Eksperimental",
|
||||||
|
"settings.header.experimental.description": "Sesuaikan pengaturan eksperimental untuk Cider.",
|
||||||
|
"settings.option.experimental.compactUI": "UI Kompak", // Toggle
|
||||||
|
"settings.option.experimental.close_button_hide": "Tombol Tutup Menyembunyikan Aplikasi",
|
||||||
|
"settings.option.experimental.copy_log": "Salin log ke clipboard",
|
||||||
|
"settings.option.experimental.inline_playlists": "Playlist dan Album Sebaris",
|
||||||
|
|
||||||
|
// Refer to term.disabled & term.enabled
|
||||||
|
// Spatialization Menu
|
||||||
|
"spatial.notTurnedOn": "Spasialisasi Audio dinonaktifkan. Untuk menggunakan, aktifkan terlebih dahulu.",
|
||||||
|
"spatial.spatialProperties": "Spatial Properties",
|
||||||
|
"spatial.width": "Lebar",
|
||||||
|
"spatial.height": "Tinggi",
|
||||||
|
"spatial.depth": "Kedalaman",
|
||||||
|
"spatial.gain": "Gain",
|
||||||
|
"spatial.roomMaterials": "Bahan Ruangan",
|
||||||
|
"spatial.roomDimensions": "Dimensi Ruangan",
|
||||||
|
"spatial.roomPositions": "Posisi Ruangan",
|
||||||
|
"spatial.setDimensions": "Atur Dimensi",
|
||||||
|
"spatial.setPositions": "Atur Posisi",
|
||||||
|
"spatial.up": "Atas",
|
||||||
|
"spatial.front": "Depan",
|
||||||
|
"spatial.left": "Kiri",
|
||||||
|
"spatial.right": "Kanan",
|
||||||
|
"spatial.back": "Belakang",
|
||||||
|
"spatial.down": "Bawah",
|
||||||
|
"spatial.listener": "Pendegar",
|
||||||
|
"spatial.audioSource": "Sumber Audio",
|
||||||
|
|
||||||
|
// Settings - Unfinished
|
||||||
|
"settings.header.unfinished": "Belum Diselesaikan",
|
||||||
|
|
||||||
|
// Web Remote
|
||||||
|
"remote.web.title": "Remote Cider",
|
||||||
|
"remote.web.description": "Pindai kode QR untuk memasangkan ponsel Anda dengan Cider.",
|
||||||
|
|
||||||
|
// About
|
||||||
|
"about.thanks": "Terima kasih yang sebesar-besarnya kepada Cider Collective Team dan semua kontributor kami."
|
||||||
|
}
|
|
@ -1,4 +1,4 @@
|
||||||
{ // Base File
|
{
|
||||||
|
|
||||||
// i18n Info
|
// i18n Info
|
||||||
"i18n.languageName": "Italiano", // name of language in native language
|
"i18n.languageName": "Italiano", // name of language in native language
|
||||||
|
@ -19,6 +19,7 @@
|
||||||
"notification.updatingLibrarySongs": "Aggiornamento raccolta brani...",
|
"notification.updatingLibrarySongs": "Aggiornamento raccolta brani...",
|
||||||
"notification.updatingLibraryAlbums": "Aggornamento raccolta album...",
|
"notification.updatingLibraryAlbums": "Aggornamento raccolta album...",
|
||||||
"notification.updatingLibraryArtists": "Aggiornamento raccolta artisti...",
|
"notification.updatingLibraryArtists": "Aggiornamento raccolta artisti...",
|
||||||
|
|
||||||
// Terms
|
// Terms
|
||||||
"term.appleInc": "Apple Inc.",
|
"term.appleInc": "Apple Inc.",
|
||||||
"term.appleMusic": "Apple Music",
|
"term.appleMusic": "Apple Music",
|
||||||
|
@ -134,13 +135,14 @@
|
||||||
"home.madeForYou": "Per Te",
|
"home.madeForYou": "Per Te",
|
||||||
"home.friendsListeningTo": "Ascoltato da Amici",
|
"home.friendsListeningTo": "Ascoltato da Amici",
|
||||||
"home.followedArtists": "Artisti Seguiti",
|
"home.followedArtists": "Artisti Seguiti",
|
||||||
|
|
||||||
// Errors
|
// Errors
|
||||||
"error.appleMusicSubRequired": "Apple Music ha bisogno di un abbonamento.",
|
"error.appleMusicSubRequired": "Apple Music ha bisogno di un abbonamento.",
|
||||||
"error.connectionError": "C'è stato un problema nella connessione a Apple Music.",
|
"error.connectionError": "C'è stato un problema nella connessione a Apple Music.",
|
||||||
"error.noResults": "Nessun risultato.",
|
"error.noResults": "Nessun risultato.",
|
||||||
"error.noResults.description": "Prova un'altra ricerca.",
|
"error.noResults.description": "Prova un'altra ricerca.",
|
||||||
|
|
||||||
//Podcasts
|
// Podcasts
|
||||||
"podcast.followOnCider": "Segui in Cider",
|
"podcast.followOnCider": "Segui in Cider",
|
||||||
"podcast.followedOnCider": "Seguiti in Cider",
|
"podcast.followedOnCider": "Seguiti in Cider",
|
||||||
"podcast.subscribeOnItunes": "Iscriviti in iTunes",
|
"podcast.subscribeOnItunes": "Iscriviti in iTunes",
|
||||||
|
@ -191,7 +193,6 @@
|
||||||
"action.import": "Importa",
|
"action.import": "Importa",
|
||||||
"action.export": "Esporta",
|
"action.export": "Esporta",
|
||||||
"action.showAlbum": "Mostra Album Intero",
|
"action.showAlbum": "Mostra Album Intero",
|
||||||
// Waiting on Core for moving plugin to app.ts
|
|
||||||
"action.tray.minimize": "Minimizza nel tray",
|
"action.tray.minimize": "Minimizza nel tray",
|
||||||
"action.tray.quit": "Chiudi",
|
"action.tray.quit": "Chiudi",
|
||||||
"action.tray.show": "Mostra",
|
"action.tray.show": "Mostra",
|
||||||
|
@ -206,6 +207,8 @@
|
||||||
"settings.option.general.language.fun": "Lingue da Scherzo",
|
"settings.option.general.language.fun": "Lingue da Scherzo",
|
||||||
"settings.option.general.language.unsorted": "Non ordinato",
|
"settings.option.general.language.unsorted": "Non ordinato",
|
||||||
|
|
||||||
|
// Update Cider
|
||||||
|
|
||||||
// Settings - Audio
|
// Settings - Audio
|
||||||
"settings.header.audio": "Audio",
|
"settings.header.audio": "Audio",
|
||||||
"settings.header.audio.description": "Cambia le impostazioni di audio di Cider.",
|
"settings.header.audio.description": "Cambia le impostazioni di audio di Cider.",
|
||||||
|
@ -220,6 +223,7 @@
|
||||||
"settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "Normalizza il volume massimo nei brani per un'esperienza d'ascolto più uniforme.",
|
"settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "Normalizza il volume massimo nei brani per un'esperienza d'ascolto più uniforme.",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "Spazializzazione Audio", // Toggle
|
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "Spazializzazione Audio", // Toggle
|
||||||
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "Spazializza l'audio per dare un effetto più tridimensionale (nota: questo non è Dolby Atmos)",
|
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "Spazializza l'audio per dare un effetto più tridimensionale (nota: questo non è Dolby Atmos)",
|
||||||
|
|
||||||
// Settings - Visual
|
// Settings - Visual
|
||||||
"settings.header.visual": "Visuale",
|
"settings.header.visual": "Visuale",
|
||||||
"settings.header.visual.description": "Cambia le impostazioni visuali per Cider.",
|
"settings.header.visual.description": "Cambia le impostazioni visuali per Cider.",
|
||||||
|
@ -242,6 +246,9 @@
|
||||||
"settings.option.visual.hardwareAcceleration.description": "Richiede riavvio del'app",
|
"settings.option.visual.hardwareAcceleration.description": "Richiede riavvio del'app",
|
||||||
"settings.header.visual.hardwareAcceleration.default": "Normale",
|
"settings.header.visual.hardwareAcceleration.default": "Normale",
|
||||||
"settings.header.visual.hardwareAcceleration.webGPU": "WebGPU",
|
"settings.header.visual.hardwareAcceleration.webGPU": "WebGPU",
|
||||||
|
|
||||||
|
// Settings - Visual - Theme name
|
||||||
|
|
||||||
// Refer to term.disabled for the disabled option
|
// Refer to term.disabled for the disabled option
|
||||||
"settings.option.visual.showPersonalInfo": "Mostra Informazione Personale", // Toggle
|
"settings.option.visual.showPersonalInfo": "Mostra Informazione Personale", // Toggle
|
||||||
|
|
||||||
|
@ -277,8 +284,8 @@
|
||||||
"settings.option.experimental.closeButtonBehaviour.quit": "Chiudi Cider",
|
"settings.option.experimental.closeButtonBehaviour.quit": "Chiudi Cider",
|
||||||
"settings.option.experimental.closeButtonBehaviour.minimizeTaskbar": "Minimizza",
|
"settings.option.experimental.closeButtonBehaviour.minimizeTaskbar": "Minimizza",
|
||||||
"settings.option.experimental.closeButtonBehaviour.minimizeTray": "Minimizza Nel Tray",
|
"settings.option.experimental.closeButtonBehaviour.minimizeTray": "Minimizza Nel Tray",
|
||||||
// Refer to term.disabled & term.enabled
|
|
||||||
|
|
||||||
|
// Refer to term.disabled & term.enabled
|
||||||
// Spatialization Menu
|
// Spatialization Menu
|
||||||
"spatial.notTurnedOn": "Spazializzazione Audio è disattivata. Attivala prima.",
|
"spatial.notTurnedOn": "Spazializzazione Audio è disattivata. Attivala prima.",
|
||||||
"spatial.spatialProperties" : "Proprietà Spaziali",
|
"spatial.spatialProperties" : "Proprietà Spaziali",
|
||||||
|
|
|
@ -1,8 +1,4 @@
|
||||||
{
|
{
|
||||||
// App info
|
|
||||||
"app.name": "Cider",
|
|
||||||
|
|
||||||
"date.format": "${y}年${m}月${d}日",
|
|
||||||
|
|
||||||
// i18n Info
|
// i18n Info
|
||||||
"i18n.languageName": "日本語", // name of language in native language
|
"i18n.languageName": "日本語", // name of language in native language
|
||||||
|
@ -10,6 +6,11 @@
|
||||||
"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
|
||||||
|
|
||||||
|
// App info
|
||||||
|
"app.name": "Cider",
|
||||||
|
|
||||||
|
"date.format": "${y}年${m}月${d}日",
|
||||||
|
|
||||||
// Dialogs
|
// Dialogs
|
||||||
"dialog.cancel": "キャンセル",
|
"dialog.cancel": "キャンセル",
|
||||||
"dialog.ok": "OK",
|
"dialog.ok": "OK",
|
||||||
|
@ -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": "配信開始日",
|
||||||
|
@ -118,7 +119,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,13 +129,14 @@
|
||||||
"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に接続できません。",
|
||||||
"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で購読",
|
||||||
|
@ -193,6 +194,15 @@
|
||||||
"action.newpreset": "ニュープリセット", // Equalizer Preset
|
"action.newpreset": "ニュープリセット", // Equalizer Preset
|
||||||
"action.deletepreset": "プリセットを削除", // Equalizer Preset
|
"action.deletepreset": "プリセットを削除", // Equalizer Preset
|
||||||
|
|
||||||
|
// Settings - General
|
||||||
|
"settings.header.general": "一般",
|
||||||
|
"settings.header.general.description": "Ciderの一般設定",
|
||||||
|
|
||||||
|
// Language optgroups
|
||||||
|
|
||||||
|
// 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のオーディオ設定",
|
||||||
|
@ -203,12 +213,12 @@
|
||||||
"settings.header.audio.quality.lossless.description": "(最大解像度 24 ビット/48 kHz)",
|
"settings.header.audio.quality.lossless.description": "(最大解像度 24 ビット/48 kHz)",
|
||||||
"settings.header.audio.quality.enhanced": "エンハンスド",
|
"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": "Cider AEP™️", // Toggle
|
||||||
"settings.option.audio.enableAdvancedFunctionality.ciderPPE.description": "圧縮音源を高解像度に処理することによって、ロスレス相当の音質に向上させます。", // Toggle
|
"settings.option.audio.enableAdvancedFunctionality.ciderPPE.description": "圧縮音源を高解像度に処理することによって、ロスレス相当の音質に向上させます。", // Toggle
|
||||||
"settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength": "AEPの強さ", // 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.description": "Changes the strength of the processing done to the audio. (Aggressive may yield undesirable results)",
|
||||||
|
@ -218,6 +228,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のビジュアル設定",
|
||||||
|
@ -239,11 +250,12 @@
|
||||||
"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 - Visual - Theme name
|
||||||
|
|
||||||
// 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.header.general": "一般",
|
|
||||||
"settings.header.general.description": "Ciderの一般設定",
|
|
||||||
|
|
||||||
// Settings - Lyrics
|
// Settings - Lyrics
|
||||||
"settings.header.lyrics": "歌詞",
|
"settings.header.lyrics": "歌詞",
|
||||||
|
@ -272,27 +284,27 @@
|
||||||
"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": "未完成",
|
||||||
|
@ -303,5 +315,4 @@
|
||||||
|
|
||||||
//About
|
//About
|
||||||
"about.thanks": "Cider Collective とご協力いただいた貢献者様に感謝申し上げます。"
|
"about.thanks": "Cider Collective とご協力いただいた貢献者様に感謝申し上げます。"
|
||||||
|
|
||||||
}
|
}
|
|
@ -1,4 +1,4 @@
|
||||||
{ // Base File
|
{
|
||||||
|
|
||||||
// i18n Info
|
// i18n Info
|
||||||
"i18n.languageName": "한국어 (KR)", // name of language in native language
|
"i18n.languageName": "한국어 (KR)", // name of language in native language
|
||||||
|
@ -19,6 +19,7 @@
|
||||||
"notification.updatingLibrarySongs": "라이브러리의 노래를 업데이트하는 중입니다...",
|
"notification.updatingLibrarySongs": "라이브러리의 노래를 업데이트하는 중입니다...",
|
||||||
"notification.updatingLibraryAlbums": "라이브러리의 앨범을 업데이트하는 중입니다...",
|
"notification.updatingLibraryAlbums": "라이브러리의 앨범을 업데이트하는 중입니다...",
|
||||||
"notification.updatingLibraryArtists": "라이브러리의 아티스트를 업데이트하는 중입니다...",
|
"notification.updatingLibraryArtists": "라이브러리의 아티스트를 업데이트하는 중입니다...",
|
||||||
|
|
||||||
// Terms
|
// Terms
|
||||||
"term.appleInc": "Apple Inc.", // Follows brand term
|
"term.appleInc": "Apple Inc.", // Follows brand term
|
||||||
"term.appleMusic": "Apple Music", // Follows brand term
|
"term.appleMusic": "Apple Music", // Follows brand term
|
||||||
|
@ -127,7 +128,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 업데이트",
|
|
||||||
"term.topResult": "Top Result", // Search Results
|
"term.topResult": "Top Result", // Search Results
|
||||||
"term.sharedPlaylists": "공유 플레이리스트", // Search Results
|
"term.sharedPlaylists": "공유 플레이리스트", // Search Results
|
||||||
"term.people": "프로필", // Search Results
|
"term.people": "프로필", // Search Results
|
||||||
|
@ -153,13 +153,14 @@
|
||||||
"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에 연결하지 못했습니다.",
|
||||||
"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에서 구독",
|
||||||
|
@ -228,6 +229,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의 오디오 기능을 설정합니다.",
|
||||||
|
@ -242,6 +246,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": "오디오를 공간화하고 더욱 3차원적으로 만들어줍니다. (참고: 이 기능은 Dolby Atmos가 아닙니다.)",
|
"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의 시각 기능을 설정합니다.",
|
||||||
|
@ -304,8 +309,8 @@
|
||||||
"settings.option.experimental.close_button_hide": "닫기 버튼이 애플리케이션을 가릴 것입니다",
|
"settings.option.experimental.close_button_hide": "닫기 버튼이 애플리케이션을 가릴 것입니다",
|
||||||
"settings.option.experimental.copy_log": "로그를 클립보드에 복사하기",
|
"settings.option.experimental.copy_log": "로그를 클립보드에 복사하기",
|
||||||
"settings.option.experimental.inline_playlists": "인라인 플레이리스트 및 앨범",
|
"settings.option.experimental.inline_playlists": "인라인 플레이리스트 및 앨범",
|
||||||
// Refer to term.disabled & term.enabled
|
|
||||||
|
|
||||||
|
// Refer to term.disabled & term.enabled
|
||||||
// Spatialization Menu
|
// Spatialization Menu
|
||||||
"spatial.notTurnedOn": "오디오 공간화가 비활성화되어있습니다. 사용하기 전에 먼저 활성화해주세요.",
|
"spatial.notTurnedOn": "오디오 공간화가 비활성화되어있습니다. 사용하기 전에 먼저 활성화해주세요.",
|
||||||
"spatial.spatialProperties": "공간 설정",
|
"spatial.spatialProperties": "공간 설정",
|
||||||
|
|
|
@ -1,8 +1,4 @@
|
||||||
{ // Base File
|
{
|
||||||
// App info
|
|
||||||
"app.name": "Cider",
|
|
||||||
|
|
||||||
"date.format": "${d} ${m}, ${y}",
|
|
||||||
|
|
||||||
// i18n Info
|
// i18n Info
|
||||||
"i18n.languageName": "Português ( brasileiro )", // name of language in native language
|
"i18n.languageName": "Português ( brasileiro )", // name of language in native language
|
||||||
|
@ -10,6 +6,11 @@
|
||||||
"i18n.category": "main", // main = real language, fun = fun community languages
|
"i18n.category": "main", // main = real language, fun = fun community languages
|
||||||
"i18n.authors": "", // Authors, if you contribute to this file feel free to add your name seperated with a space
|
"i18n.authors": "", // 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
|
// Dialogs
|
||||||
"dialog.cancel": "Cancelar",
|
"dialog.cancel": "Cancelar",
|
||||||
"dialog.ok": "OK",
|
"dialog.ok": "OK",
|
||||||
|
@ -105,6 +106,7 @@
|
||||||
"home.madeForYou": "Feito para Você",
|
"home.madeForYou": "Feito para Você",
|
||||||
"home.friendsListeningTo": "Amigos Ouvindo",
|
"home.friendsListeningTo": "Amigos Ouvindo",
|
||||||
"home.followedArtists": "Artistas Seguidos",
|
"home.followedArtists": "Artistas Seguidos",
|
||||||
|
|
||||||
// Errors
|
// Errors
|
||||||
"error.appleMusicSubRequired": "Necessário uma assinatura Apple Music.",
|
"error.appleMusicSubRequired": "Necessário uma assinatura Apple Music.",
|
||||||
|
|
||||||
|
@ -142,6 +144,15 @@
|
||||||
"action.dislike": "Não Gostar",
|
"action.dislike": "Não Gostar",
|
||||||
"action.undoDislike": "Deixar de Não Gostar",
|
"action.undoDislike": "Deixar de Não Gostar",
|
||||||
"action.showWebRemoteQR": "Mostrar o QR para Página Remota",
|
"action.showWebRemoteQR": "Mostrar o QR para Página Remota",
|
||||||
|
|
||||||
|
// Settings - General
|
||||||
|
"settings.header.general": "Principal",
|
||||||
|
"settings.header.general.description": "Ajustar as definiçoes principais no Cider.",
|
||||||
|
|
||||||
|
// Language optgroups
|
||||||
|
|
||||||
|
// Update Cider
|
||||||
|
|
||||||
// Settings - Audio
|
// Settings - Audio
|
||||||
"settings.header.audio": "Audio",
|
"settings.header.audio": "Audio",
|
||||||
"settings.header.audio.description": "Ajustar as definições de audio no Cider.",
|
"settings.header.audio.description": "Ajustar as definições de audio no Cider.",
|
||||||
|
@ -156,6 +167,7 @@
|
||||||
"settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "Normaliza o volume alto para faixas individuais para criar uma experiência de audição mais uniforme.",
|
"settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "Normaliza o volume alto para faixas individuais para criar uma experiência de audição mais uniforme.",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "Audio Espacial", // Toggle
|
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "Audio Espacial", // Toggle
|
||||||
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "Espacialize o áudio e torne o áudio mais tridimensional (nota: isto não é Dolby Atmos)",
|
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "Espacialize o áudio e torne o áudio mais tridimensional (nota: isto não é Dolby Atmos)",
|
||||||
|
|
||||||
// Settings - Visual
|
// Settings - Visual
|
||||||
"settings.header.visual": "Visual",
|
"settings.header.visual": "Visual",
|
||||||
"settings.header.visual.description": "Ajustar as Definições de Visual do Cider.",
|
"settings.header.visual.description": "Ajustar as Definições de Visual do Cider.",
|
||||||
|
@ -178,12 +190,10 @@
|
||||||
"settings.header.visual.hardwareAcceleration.default": "Normal",
|
"settings.header.visual.hardwareAcceleration.default": "Normal",
|
||||||
"settings.header.visual.hardwareAcceleration.webGPU": "WebGPU",
|
"settings.header.visual.hardwareAcceleration.webGPU": "WebGPU",
|
||||||
|
|
||||||
|
// Settings - Visual - Theme name
|
||||||
|
|
||||||
// Refer to term.disabled for the disabled option
|
// Refer to term.disabled for the disabled option
|
||||||
"settings.option.visual.showPersonalInfo": "Mostrar Informaçoes Pessoais", // Toggle
|
"settings.option.visual.showPersonalInfo": "Mostrar Informaçoes Pessoais", // Toggle
|
||||||
// Settings - General (Reserved)
|
|
||||||
"settings.header.general": "Principal",
|
|
||||||
"settings.header.general.description": "Ajustar as definiçoes principais no Cider.",
|
|
||||||
|
|
||||||
// Settings - Lyrics
|
// Settings - Lyrics
|
||||||
"settings.header.lyrics": "Letras",
|
"settings.header.lyrics": "Letras",
|
||||||
|
@ -211,8 +221,8 @@
|
||||||
"settings.header.experimental": "Experimental",
|
"settings.header.experimental": "Experimental",
|
||||||
"settings.header.experimental.description": "Ajustar as definições experimental no Cider.",
|
"settings.header.experimental.description": "Ajustar as definições experimental no Cider.",
|
||||||
"settings.option.experimental.compactUI": "UI Compacto", // Toggle
|
"settings.option.experimental.compactUI": "UI Compacto", // Toggle
|
||||||
// Refer to term.disabled & term.enabled
|
|
||||||
|
|
||||||
|
// Refer to term.disabled & term.enabled
|
||||||
// Spatialization Menu
|
// Spatialization Menu
|
||||||
"spatial.spatialProperties" : "Propriedades do Espacial",
|
"spatial.spatialProperties" : "Propriedades do Espacial",
|
||||||
"spatial.width" : "Largura",
|
"spatial.width" : "Largura",
|
||||||
|
@ -232,13 +242,12 @@
|
||||||
"spatial.listener" : "Ouvinte",
|
"spatial.listener" : "Ouvinte",
|
||||||
"spatial.audioSource" : "Fonte de Audio",
|
"spatial.audioSource" : "Fonte de Audio",
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// Settings - Unfinished
|
// Settings - Unfinished
|
||||||
"settings.header.unfinished": "Inacabado",
|
"settings.header.unfinished": "Inacabado",
|
||||||
|
|
||||||
// Web Remote
|
// Web Remote
|
||||||
"remote.web.title": "Cider Remoto",
|
"remote.web.title": "Cider Remoto",
|
||||||
"remote.web.description": "Digitalize o código QR para emparelhar seu telefone com esta instância Cider"
|
"remote.web.description": "Digitalize o código QR para emparelhar seu telefone com esta instância Cider"
|
||||||
|
|
||||||
|
// About
|
||||||
}
|
}
|
330
src/i18n/sk_SK.jsonc
Normal file
|
@ -0,0 +1,330 @@
|
||||||
|
{
|
||||||
|
|
||||||
|
// 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-JurajJanosik", // 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": "Skuromn Počúvanie",
|
||||||
|
"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": "Normálny",
|
||||||
|
"term.size.compact": "Kompaktný",
|
||||||
|
"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'
|
||||||
|
|
||||||
|
// 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é",
|
||||||
|
|
||||||
|
// Update Cider
|
||||||
|
"settings.option.general.updateCider": "Aktualizovať Cider",
|
||||||
|
|
||||||
|
// 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.ciderPPE": "Cider Adrenaline Processor™️", // Toggle
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.ciderPPE.description": "Psychoakustické Vylepšenia ktoré urobia zvuk viac bohatý a živý | Urobil Maikiwi.",
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength": "CAP Sila", // Toggle
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.description": "Zmení silu CAP (Agresívná môže spôsobiť nežiadané výsledky)",
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.standard": "Štandardná",
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.aggressive": "Agresívná",
|
||||||
|
"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",
|
||||||
|
"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
|
||||||
|
"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",
|
||||||
|
"settings.option.experimental.compactUI": "Kompaktný UI", // Toggle
|
||||||
|
"settings.option.experimental.close_button_hide": "Zatvaranie aplikácie ju malo skriť",
|
||||||
|
|
||||||
|
// 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,4 +1,4 @@
|
||||||
{ // 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
|
||||||
|
@ -19,6 +19,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 +92,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 +126,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 +136,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 +209,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 +226,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.",
|
||||||
|
@ -244,6 +249,9 @@
|
||||||
"settings.option.visual.hardwareAcceleration.description": "kräver omstart",
|
"settings.option.visual.hardwareAcceleration.description": "kräver omstart",
|
||||||
"settings.header.visual.hardwareAcceleration.default": "Standard",
|
"settings.header.visual.hardwareAcceleration.default": "Standard",
|
||||||
"settings.header.visual.hardwareAcceleration.webGPU": "WebGPU",
|
"settings.header.visual.hardwareAcceleration.webGPU": "WebGPU",
|
||||||
|
|
||||||
|
// Settings - Visual - Theme name
|
||||||
|
|
||||||
// Refer to term.disabled for the disabled option
|
// Refer to term.disabled for the disabled option
|
||||||
"settings.option.visual.showPersonalInfo": "Visa personlig information", // Toggle
|
"settings.option.visual.showPersonalInfo": "Visa personlig information", // Toggle
|
||||||
|
|
||||||
|
@ -276,8 +284,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,4 +1,5 @@
|
||||||
{
|
{
|
||||||
|
|
||||||
// i18n Info
|
// i18n Info
|
||||||
"i18n.languageName": "Türkçe", // name of language in native language
|
"i18n.languageName": "Türkçe", // name of language in native language
|
||||||
"i18n.languageNameEnglish": "Turkish", // name of language in English
|
"i18n.languageNameEnglish": "Turkish", // name of language in English
|
||||||
|
@ -21,8 +22,8 @@
|
||||||
|
|
||||||
// Terms
|
// Terms
|
||||||
"term.appleInc": "Apple",
|
"term.appleInc": "Apple",
|
||||||
"term.appleMusic": "Apple Müzik",
|
"term.appleMusic": "Apple Music",
|
||||||
"term.applePodcasts": "Apple Podcastler",
|
"term.applePodcasts": "Apple Podcasts",
|
||||||
"term.itunes": "iTunes",
|
"term.itunes": "iTunes",
|
||||||
"term.github": "GitHub",
|
"term.github": "GitHub",
|
||||||
"term.discord": "Discord",
|
"term.discord": "Discord",
|
||||||
|
@ -124,6 +125,25 @@
|
||||||
"term.time.second": "saniye",
|
"term.time.second": "saniye",
|
||||||
"term.videos": "Video Klipler",
|
"term.videos": "Video Klipler",
|
||||||
"term.menu": "Menü",
|
"term.menu": "Menü",
|
||||||
|
"term.check": "Şimdi Kontrol Et",
|
||||||
|
"term.aboutArtist": "About {{artistName}}", // e.g. 'About Doja Cat'
|
||||||
|
"term.updateCider": "Güncellemeleri Denetle",
|
||||||
|
"term.share.success": "Panoya Kopyalandı",
|
||||||
|
"term.topResult": "En İyi Sonuç", // Search Results
|
||||||
|
"term.sharedPlaylists": "Paylaşılan Listeler", // Search Results
|
||||||
|
"term.people": "Kişiler", // Search Results
|
||||||
|
"term.newpreset.name": "Yeni Önayar İsmi", // Equalizer Preset
|
||||||
|
"term.addedpreset": "Önayar Kaydedildi",
|
||||||
|
"term.deletepreset.warn": "Bu önayarı silmek istediğinize emin misiniz?",
|
||||||
|
"term.deletedpreset": "Önayar Silindi",
|
||||||
|
"term.musicVideos": "Video Klipler", // Search page friendlyTypes
|
||||||
|
"term.stations": "İstasyonlar",
|
||||||
|
"term.curators": "Editörler",
|
||||||
|
"term.appleCurators": "Apple Editörleri",
|
||||||
|
"term.radioShows": "Radio Şovları",
|
||||||
|
"term.recordLabels": "Kayıt Stüdyoları",
|
||||||
|
"term.videoExtras": "Ekstra Videolar",
|
||||||
|
"term.top": "En İyi",
|
||||||
|
|
||||||
// Home
|
// Home
|
||||||
"home.title": "Ana Sayfa",
|
"home.title": "Ana Sayfa",
|
||||||
|
@ -141,7 +161,7 @@
|
||||||
"error.noResults": "Hiç sonuç yok",
|
"error.noResults": "Hiç sonuç yok",
|
||||||
"error.noResults.description": "Tekrar deneyin.",
|
"error.noResults.description": "Tekrar deneyin.",
|
||||||
|
|
||||||
//Podcasts
|
// Podcasts
|
||||||
"podcast.followOnCider": "Cider'de Takip Et",
|
"podcast.followOnCider": "Cider'de Takip Et",
|
||||||
"podcast.followedOnCider": "Cider'de Takip Ediliyor",
|
"podcast.followedOnCider": "Cider'de Takip Ediliyor",
|
||||||
"podcast.subscribeOnItunes": "itunes'de Abone Ol",
|
"podcast.subscribeOnItunes": "itunes'de Abone Ol",
|
||||||
|
@ -193,8 +213,12 @@
|
||||||
"action.export": "Export",
|
"action.export": "Export",
|
||||||
"action.showAlbum": "Tüm Albümü Göster",
|
"action.showAlbum": "Tüm Albümü Göster",
|
||||||
"action.tray.minimize": "Görev Çubuğuna Küçült",
|
"action.tray.minimize": "Görev Çubuğuna Küçült",
|
||||||
"action.tray.quit": "'den Çık",
|
"action.tray.quit": "Çık",
|
||||||
"action.tray.show": "'i Göster",
|
"action.tray.show": "Göster",
|
||||||
|
"action.update": "Güncelle",
|
||||||
|
"action.copy": "Kopyala",
|
||||||
|
"action.newpreset": "Yeni Önayar...", // Equalizer Preset
|
||||||
|
"action.deletepreset": "Önayarı Sil",
|
||||||
|
|
||||||
// Settings - General
|
// Settings - General
|
||||||
"settings.header.general": "Genel Ayarlar",
|
"settings.header.general": "Genel Ayarlar",
|
||||||
|
@ -206,16 +230,35 @@
|
||||||
"settings.option.general.language.fun": "Mizahi Diller",
|
"settings.option.general.language.fun": "Mizahi Diller",
|
||||||
"settings.option.general.language.unsorted": "Henüz Tamamlanmamış Diller",
|
"settings.option.general.language.unsorted": "Henüz Tamamlanmamış Diller",
|
||||||
|
|
||||||
|
// Update Cider
|
||||||
|
"settings.option.general.updateCider": "Güncellemeleri Kontrol Et", // Button. Refer to term.check for the check button
|
||||||
|
"settings.option.general.updateCider.branch": "Seçilen GitHub Versiyonu", // Dropdown
|
||||||
|
"settings.option.general.updateCider.branch.description": "Cider'in hangi versiyonuna güncelleneceğini seçin",
|
||||||
|
"settings.option.general.updateCider.branch.main": "Stabil",
|
||||||
|
"settings.option.general.updateCider.branch.develop": "Deneysel",
|
||||||
|
|
||||||
// Settings - Audio
|
// Settings - Audio
|
||||||
"settings.header.audio": "Çalma / Oynatma",
|
"settings.header.audio": "Çalma / Oynatma",
|
||||||
"settings.header.audio.description": "Cider'in sizin için en iyi dinleme deneyimini sağlayabilmesi için ses ayarlarınızı yapın.",
|
"settings.header.audio.description": "Cider'in sizin için en iyi dinleme deneyimini sağlayabilmesi için ses ayarlarınızı yapın.",
|
||||||
"settings.option.audio.quality": "Ses Kalitesi", // Dropdown
|
"settings.option.audio.quality": "Ses Kalitesi", // Dropdown
|
||||||
|
"settings.header.audio.quality.hireslossless": "Yüksek Çözünürlüklü Kayıpsız",
|
||||||
|
"settings.header.audio.quality.hireslossless.description": "24-bit/192 kHz'e kadar",
|
||||||
|
"settings.header.audio.quality.lossless": "Kayıpsız",
|
||||||
|
"settings.header.audio.quality.lossless.description": "24-bit/48 kHz'e kadar",
|
||||||
"settings.header.audio.quality.high": "Yüksek Kalite",
|
"settings.header.audio.quality.high": "Yüksek Kalite",
|
||||||
"settings.header.audio.quality.low": "Yüksek Verimlilik",
|
"settings.header.audio.quality.high.description": "256 kbps",
|
||||||
|
"settings.header.audio.quality.standard": "Standart",
|
||||||
|
"settings.header.audio.quality.standard.description": "64 kbps",
|
||||||
"settings.header.audio.quality.auto": "Otomatik",
|
"settings.header.audio.quality.auto": "Otomatik",
|
||||||
"settings.option.audio.seamlessTransition": "Kesintisiz Ses Geçişi", // Toggle
|
"settings.option.audio.seamlessTransition": "Kesintisiz Ses Geçişi", // Toggle
|
||||||
"settings.option.audio.enableAdvancedFunctionality": "Gelişmiş Ses Deneyimi", // Toggle
|
"settings.option.audio.enableAdvancedFunctionality": "Gelişmiş Ses Deneyimi", // Toggle
|
||||||
"settings.option.audio.enableAdvancedFunctionality.description": "Gelişmiş ses deneyiminin etkinleştirilmesi, Ses Normalleştirme, Ekolayzer ve Görselleştirici gibi genişletilmiş ses özelliklerine izin verir, ancak bu durum bazı sistemlerde seste bozulmalara neden olabilir.",
|
"settings.option.audio.enableAdvancedFunctionality.description": "Gelişmiş ses deneyiminin etkinleştirilmesi, Ses Normalleştirme, Ekolayzer ve Görselleştirici gibi genişletilmiş ses özelliklerine izin verir, ancak bu durum bazı sistemlerde seste bozulmalara neden olabilir.",
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.ciderPPE": "Cider Adrenalin Prosesörü™️", // Toggle
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.ciderPPE.description": "Müziğin hem daha zengin hem de daha canlı duyulmasını sağlayan Psikoakustik Geliştirme Sistemi | Maikiwi tarafından tasarlanmıştır.",
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength": "CAP Kuvveti", // Toggle
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.description": "Sese yapılan işlemin gücünü değiştirir. (Agresif istenmeyen sonuçlar doğurabilir)",
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.standard": "Standart",
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.aggressive": "Agresif",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.audioNormalization": "Ses Normalleştirme", // Toggle
|
"settings.option.audio.enableAdvancedFunctionality.audioNormalization": "Ses Normalleştirme", // Toggle
|
||||||
"settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "Ses normalleştirme alçak ve yüksek sesli şarkıları dengeler ve daha düzgün bir dinleme deneyimi sağlar.",
|
"settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "Ses normalleştirme alçak ve yüksek sesli şarkıları dengeler ve daha düzgün bir dinleme deneyimi sağlar.",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "Uzamsal Ses", // Toggle
|
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "Uzamsal Ses", // Toggle
|
||||||
|
@ -243,6 +286,12 @@
|
||||||
"settings.option.visual.hardwareAcceleration.description": "Etki etmesi için uygulamayı yeniden başlatmak gerekir.",
|
"settings.option.visual.hardwareAcceleration.description": "Etki etmesi için uygulamayı yeniden başlatmak gerekir.",
|
||||||
"settings.header.visual.hardwareAcceleration.default": "Varsayılan",
|
"settings.header.visual.hardwareAcceleration.default": "Varsayılan",
|
||||||
"settings.header.visual.hardwareAcceleration.webGPU": "Gelişmiş",
|
"settings.header.visual.hardwareAcceleration.webGPU": "Gelişmiş",
|
||||||
|
"settings.header.visual.theme": "Tema",
|
||||||
|
|
||||||
|
// Settings - Visual - Theme name
|
||||||
|
"settings.option.visual.theme.default": "Cider",
|
||||||
|
"settings.option.visual.theme.dark": "Karanlık",
|
||||||
|
|
||||||
// Refer to term.disabled for the disabled option
|
// Refer to term.disabled for the disabled option
|
||||||
"settings.option.visual.showPersonalInfo": "Kullanıcı Adımı Göster", // Toggle
|
"settings.option.visual.showPersonalInfo": "Kullanıcı Adımı Göster", // Toggle
|
||||||
|
|
||||||
|
@ -274,18 +323,18 @@
|
||||||
"settings.header.experimental": "Deneysel",
|
"settings.header.experimental": "Deneysel",
|
||||||
"settings.header.experimental.description": "Cider'deki deneysel özelliklere erişim sağlayın. (Not: Bazı özellikler düzgün çalışmayabilir.)",
|
"settings.header.experimental.description": "Cider'deki deneysel özelliklere erişim sağlayın. (Not: Bazı özellikler düzgün çalışmayabilir.)",
|
||||||
"settings.option.experimental.compactUI": "Kompakt Arayüz", // Toggle
|
"settings.option.experimental.compactUI": "Kompakt Arayüz", // Toggle
|
||||||
"settings.option.experimental.closeButtonBehaviour": "Kapat düğmesi davranışı",
|
"settings.option.experimental.close_button_hide": "Kapatma Düğmesi Cider'i Küçültür",
|
||||||
"settings.option.experimental.closeButtonBehaviour.quit": "Cider'den çık",
|
"settings.option.experimental.copy_log": "Günlüğü Panoya Kopyala",
|
||||||
"settings.option.experimental.closeButtonBehaviour.minimizeTaskbar": "Simge durumuna küçült",
|
"settings.option.experimental.inline_playlists": "Listeleri ve Albümleri Açılır Pencere İle göster",
|
||||||
"settings.option.experimental.closeButtonBehaviour.minimizeTray": "Görev çubuğuna küçült",
|
|
||||||
// Refer to term.disabled & term.enabled
|
|
||||||
|
|
||||||
|
// Refer to term.disabled & term.enabled
|
||||||
// Spatialization Menu
|
// Spatialization Menu
|
||||||
"spatial.notTurnedOn": "Uzamsal ses devre dışı. Kullanabilmek için lütfen önce etkinleştirin.",
|
"spatial.notTurnedOn": "Uzamsal ses devre dışı. Kullanabilmek için lütfen önce etkinleştirin.",
|
||||||
"spatial.spatialProperties" : "Uzamsal Özellikler",
|
"spatial.spatialProperties" : "Uzamsal Özellikler",
|
||||||
"spatial.width" : "Genişlik",
|
"spatial.width" : "Genişlik",
|
||||||
"spatial.height" : "Yükseklik",
|
"spatial.height" : "Yükseklik",
|
||||||
"spatial.depth" : "Derinlik",
|
"spatial.depth" : "Derinlik",
|
||||||
|
"spatial.gain" : "Kazanç",
|
||||||
"spatial.roomMaterials" : "Oda Materyalleri",
|
"spatial.roomMaterials" : "Oda Materyalleri",
|
||||||
"spatial.roomDimensions" : "Oda Ölçüleri",
|
"spatial.roomDimensions" : "Oda Ölçüleri",
|
||||||
"spatial.roomPositions" : "Oda Pozisyonu",
|
"spatial.roomPositions" : "Oda Pozisyonu",
|
||||||
|
@ -299,7 +348,6 @@
|
||||||
"spatial.down" : "Aşağı",
|
"spatial.down" : "Aşağı",
|
||||||
"spatial.listener" : "Dinleyici",
|
"spatial.listener" : "Dinleyici",
|
||||||
"spatial.audioSource" : "Ses Kaynağı",
|
"spatial.audioSource" : "Ses Kaynağı",
|
||||||
"spatial.gain" : "Kazanç",
|
|
||||||
|
|
||||||
// Settings - Unfinished
|
// Settings - Unfinished
|
||||||
"settings.header.unfinished": "Geliştirme Aşamasında",
|
"settings.header.unfinished": "Geliştirme Aşamasında",
|
||||||
|
@ -310,5 +358,4 @@
|
||||||
|
|
||||||
//About
|
//About
|
||||||
"about.thanks": "Cider Collective Ekibine ve tüm katkıda bulunanlara çok teşekkür ederiz."
|
"about.thanks": "Cider Collective Ekibine ve tüm katkıda bulunanlara çok teşekkür ederiz."
|
||||||
|
|
||||||
}
|
}
|
|
@ -1,8 +1,4 @@
|
||||||
{
|
{
|
||||||
// App info
|
|
||||||
"app.name": "Cider",
|
|
||||||
|
|
||||||
"date.format": "${y}年${m}月${d}日",
|
|
||||||
|
|
||||||
// i18n Info
|
// i18n Info
|
||||||
"i18n.languageName": "简体中文(中国)", // name of language in native language
|
"i18n.languageName": "简体中文(中国)", // name of language in native language
|
||||||
|
@ -10,6 +6,11 @@
|
||||||
"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
|
||||||
|
|
||||||
|
// App info
|
||||||
|
"app.name": "Cider",
|
||||||
|
|
||||||
|
"date.format": "${y}年${m}月${d}日",
|
||||||
|
|
||||||
// Dialogs
|
// Dialogs
|
||||||
"dialog.cancel": "取消",
|
"dialog.cancel": "取消",
|
||||||
"dialog.ok": "确定",
|
"dialog.ok": "确定",
|
||||||
|
@ -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": "发行于",
|
||||||
|
@ -118,7 +119,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 +136,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 +146,6 @@
|
||||||
"podcast.playEpisode": "播放单集",
|
"podcast.playEpisode": "播放单集",
|
||||||
"podcast.website": "Podcast 网站",
|
"podcast.website": "Podcast 网站",
|
||||||
|
|
||||||
|
|
||||||
// Actions
|
// Actions
|
||||||
"action.addToLibrary": "加入资料库",
|
"action.addToLibrary": "加入资料库",
|
||||||
"action.addToLibrary.success": "成功加入资料库",
|
"action.addToLibrary.success": "成功加入资料库",
|
||||||
|
@ -192,6 +191,14 @@
|
||||||
"action.tray.show": "显示",
|
"action.tray.show": "显示",
|
||||||
"action.update": "更新",
|
"action.update": "更新",
|
||||||
|
|
||||||
|
// Settings - General
|
||||||
|
"settings.header.general": "通用",
|
||||||
|
"settings.header.general.description": "调整 Cider 的通用设置",
|
||||||
|
|
||||||
|
// Language optgroups
|
||||||
|
|
||||||
|
// Update Cider
|
||||||
|
"settings.option.general.updateCider": "更新 Cider", // Button
|
||||||
|
|
||||||
// Settings - Audio
|
// Settings - Audio
|
||||||
"settings.header.audio": "音频",
|
"settings.header.audio": "音频",
|
||||||
|
@ -203,17 +210,18 @@
|
||||||
"settings.header.audio.quality.lossless.description": "(最高 24 位/48 kHz)",
|
"settings.header.audio.quality.lossless.description": "(最高 24 位/48 kHz)",
|
||||||
"settings.header.audio.quality.enhanced": "数字增强",
|
"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": "Cider 数字增强引擎™️", // Toggle
|
||||||
"settings.option.audio.enableAdvancedFunctionality.ciderPPE.description": "将欺骗您的大脑来感知到近似无损音频的效果。",
|
"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 的外观",
|
||||||
|
@ -235,11 +243,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 - Visual - Theme name
|
||||||
|
|
||||||
// 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.header.general": "通用",
|
|
||||||
"settings.header.general.description": "调整 Cider 的通用设置",
|
|
||||||
|
|
||||||
// Settings - Lyrics
|
// Settings - Lyrics
|
||||||
"settings.header.lyrics": "歌词",
|
"settings.header.lyrics": "歌词",
|
||||||
|
@ -268,27 +276,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": "未完成",
|
||||||
|
|
|
@ -19,6 +19,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
|
||||||
|
@ -93,7 +94,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": "發行於",
|
||||||
|
@ -127,7 +128,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",
|
|
||||||
"term.topResult": "熱門搜尋結果", // Search Results
|
"term.topResult": "熱門搜尋結果", // Search Results
|
||||||
"term.sharedPlaylists": "播放列表", // Search Results
|
"term.sharedPlaylists": "播放列表", // Search Results
|
||||||
"term.people": "個人檔案", // Search Results
|
"term.people": "個人檔案", // Search Results
|
||||||
|
@ -135,6 +135,8 @@
|
||||||
"term.addedpreset": "已新增",
|
"term.addedpreset": "已新增",
|
||||||
"term.deletepreset.warn": "你確認要刪除這個範本?",
|
"term.deletepreset.warn": "你確認要刪除這個範本?",
|
||||||
"term.deletedpreset": "已刪除",
|
"term.deletedpreset": "已刪除",
|
||||||
|
"term.requestError": "處理請求時發生錯誤",
|
||||||
|
"term.song.link.generate": "正在生成 song.link 分享連結...",
|
||||||
"term.musicVideos": "MV", // Search page friendlyTypes
|
"term.musicVideos": "MV", // Search page friendlyTypes
|
||||||
"term.stations": "電台",
|
"term.stations": "電台",
|
||||||
//"term.curators": "Curators",
|
//"term.curators": "Curators",
|
||||||
|
@ -153,13 +155,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上訂閱",
|
||||||
|
@ -215,7 +218,7 @@
|
||||||
"action.tray.show": "顯示",
|
"action.tray.show": "顯示",
|
||||||
"action.update": "更新",
|
"action.update": "更新",
|
||||||
"action.copy": "複製",
|
"action.copy": "複製",
|
||||||
"action.newpreset": "新增範本", //Equallizer preset
|
"action.newpreset": "新增範本", // Equallizer preset
|
||||||
"action.deletepreset": "刪除範本",
|
"action.deletepreset": "刪除範本",
|
||||||
|
|
||||||
// Settings - General
|
// Settings - General
|
||||||
|
@ -228,6 +231,13 @@
|
||||||
"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.option.general.updateCider.branch": "Cider 更新通道", // Dropdown
|
||||||
|
"settings.option.general.updateCider.branch.description": "選擇你想要接收來自哪個通道的更新",
|
||||||
|
"settings.option.general.updateCider.branch.main": "穩定",
|
||||||
|
"settings.option.general.updateCider.branch.develop": "測試",
|
||||||
|
|
||||||
// Settings - Audio
|
// Settings - Audio
|
||||||
"settings.header.audio": "音訊",
|
"settings.header.audio": "音訊",
|
||||||
"settings.header.audio.description": "調整Cider的音訊設定",
|
"settings.header.audio.description": "調整Cider的音訊設定",
|
||||||
|
@ -237,17 +247,25 @@
|
||||||
"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.high": "高素質",
|
"settings.header.audio.quality.high": "高素質",
|
||||||
"settings.header.audio.quality.low": "高效率",
|
//"settings.header.audio.quality.high.description": "256 kbps",
|
||||||
"settings.header.audio.quality.auto": "自動",
|
"settings.header.audio.quality.standard": "高效率",
|
||||||
|
//"settings.header.audio.quality.standard.description": "64 kbps",
|
||||||
"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.warn.audio.enableAdvancedFunctionality.ciderPPE.compatibility": "音訊增強處理不兼容於空間音訊,請先停用空間音訊。",
|
||||||
|
"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.warn.audio.enableAdvancedFunctionality.audioSpatialization.compatibility": "空間音訊不兼容於音訊增強處理,請先停用音訊增強處理。",
|
||||||
|
|
||||||
// Settings - Visual
|
// Settings - Visual
|
||||||
"settings.header.visual": "外觀",
|
"settings.header.visual": "外觀",
|
||||||
"settings.header.visual.description": "調整Cider的外觀",
|
"settings.header.visual.description": "調整Cider的外觀",
|
||||||
|
@ -314,24 +332,24 @@
|
||||||
|
|
||||||
// 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": "空間位置",
|
||||||
"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,15 +1,15 @@
|
||||||
{
|
{
|
||||||
// App info
|
|
||||||
"app.name": "Cider",
|
|
||||||
|
|
||||||
"date.format": "${y}年${m}月${d}日",
|
|
||||||
|
|
||||||
// i18n Info
|
// i18n Info
|
||||||
"i18n.languageName": "繁體中文(台灣)", // name of language in native language
|
"i18n.languageName": "繁體中文(台灣)", // name of language in native language
|
||||||
"i18n.languageNameEnglish": "Trad. Chinese (Taiwan)", // name of language in English
|
"i18n.languageNameEnglish": "Trad. Chinese (Taiwan)", // 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 @jay900604 @kyw504100", // Authors, if you contribute to this file feel free to add your name seperated with a space
|
||||||
|
|
||||||
|
// App info
|
||||||
|
"app.name": "Cider",
|
||||||
|
|
||||||
|
"date.format": "${y}年${m}月${d}日",
|
||||||
|
|
||||||
// Dialogs
|
// Dialogs
|
||||||
"dialog.cancel": "取消",
|
"dialog.cancel": "取消",
|
||||||
|
@ -19,6 +19,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 +55,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 +73,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 +87,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": "發行於",
|
||||||
|
@ -99,26 +101,26 @@
|
||||||
"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.ciderTeam": "Cider 團隊",
|
"term.ciderTeam": "Cider 團隊",
|
||||||
"term.developer": "開發者",
|
"term.developer": "開發者",
|
||||||
"term.socialTeam": "公關團隊",
|
"term.socialTeam": "公關團隊",
|
||||||
"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",
|
|
||||||
|
|
||||||
// Home
|
// Home
|
||||||
"home.title": "首頁",
|
"home.title": "首頁",
|
||||||
|
@ -129,13 +131,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 上訂閱",
|
||||||
|
@ -182,49 +185,66 @@
|
||||||
"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": "顯示",
|
"action.tray.show": "顯示",
|
||||||
"action.update": "更新",
|
"action.update": "更新",
|
||||||
"action.copy": "複製",
|
"action.copy": "複製",
|
||||||
"action.newpreset": "新預設", // Equalizer Preset
|
"action.newpreset": "新增預設", // Equalizer Preset
|
||||||
"action.deletepreset": "刪除預設", // Equalizer Preset
|
"action.deletepreset": "刪除預設", // Equalizer Preset
|
||||||
|
|
||||||
|
// Settings - General
|
||||||
|
"settings.header.general": "一般",
|
||||||
|
"settings.header.general.description": "調整 Cider 的一般設定",
|
||||||
|
|
||||||
|
// Language optgroups
|
||||||
|
"settings.option.general.language.main": "語言",
|
||||||
|
"settings.option.general.language.fun": "特殊語言",
|
||||||
|
"settings.option.general.language.unsorted": "未分類",
|
||||||
|
|
||||||
|
// Update Cider
|
||||||
|
"settings.option.general.updateCider": "更新 Cider", // Button
|
||||||
|
"settings.option.general.updateCider.branch": "Cider 更新通道", // Dropdown
|
||||||
|
"settings.option.general.updateCider.branch.description": "選擇您要接收 Cider 軟體更新的通道",
|
||||||
|
"settings.option.general.updateCider.branch.main": "穩定版(建議)",
|
||||||
|
"settings.option.general.updateCider.branch.develop": "開發者測試版(不穩定)",
|
||||||
|
|
||||||
// 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": "高品質無損壓縮",
|
||||||
"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.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": "Cider 數位增強音訊處理™️", // Toggle
|
||||||
"settings.option.audio.enableAdvancedFunctionality.ciderPPE.description": "將欺騙您的大腦使其感受近似保真壓縮的音質。| 由 Maikiwi 設計",
|
"settings.option.audio.enableAdvancedFunctionality.ciderPPE.description": "將欺騙您的大腦讓您感受到近似保真壓縮的音質。| 由 Maikiwi 設計",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength": "數位增强音訊處理設置", // Toggle
|
"settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength": "數位增強音訊處理設定", // Toggle
|
||||||
"settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.description": "將更改音訊處理的激進程度(增强選項有可能會引起雜訊)",
|
"settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.description": "將更改音訊處理的激進/振奮程度(增強選項有可能會引起雜訊)",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.standard": "標準",
|
"settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.standard": "標準",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.aggressive": "增强",
|
"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 的外觀",
|
||||||
"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": "只在藝人頁面和專輯封面顯示",
|
||||||
|
@ -237,14 +257,17 @@
|
||||||
"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": "需要重新啟動 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
|
||||||
// Settings - General (Reserved)
|
|
||||||
"settings.header.general": "一般",
|
|
||||||
"settings.header.general.description": "調整 Cider 的一般設定",
|
|
||||||
|
|
||||||
// Settings - Lyrics
|
// Settings - Lyrics
|
||||||
"settings.header.lyrics": "歌詞",
|
"settings.header.lyrics": "歌詞",
|
||||||
|
@ -258,6 +281,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 +295,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": "緊凑型 UI", // 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 +313,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 +324,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 遠端操控",
|
||||||
|
|
|
@ -19,6 +19,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",
|
||||||
|
@ -93,7 +94,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": "發行於",
|
||||||
|
@ -127,7 +128,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",
|
|
||||||
"term.topResult": "熱門搜尋結果", // Search Results
|
"term.topResult": "熱門搜尋結果", // Search Results
|
||||||
"term.sharedPlaylists": "播放清單", // Search Results
|
"term.sharedPlaylists": "播放清單", // Search Results
|
||||||
"term.people": "個人檔案", // Search Results
|
"term.people": "個人檔案", // Search Results
|
||||||
|
@ -153,13 +153,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上訂閱",
|
||||||
|
@ -228,6 +229,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嘅音訊設定",
|
||||||
|
@ -242,6 +246,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嘅外觀",
|
||||||
|
@ -304,28 +309,28 @@
|
||||||
"settings.option.experimental.close_button_hide": "㩒交叉制嚟隱藏 Cider",
|
"settings.option.experimental.close_button_hide": "㩒交叉制嚟隱藏 Cider",
|
||||||
"settings.option.experimental.copy_log": "將log複製喺剪貼簿",
|
"settings.option.experimental.copy_log": "將log複製喺剪貼簿",
|
||||||
//"settings.option.experimental.inline_playlists": "Inline Playlists and Albums",
|
//"settings.option.experimental.inline_playlists": "Inline Playlists and Albums",
|
||||||
// Refer to term.disabled & term.enabled
|
|
||||||
|
|
||||||
|
// 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": "空間位置",
|
||||||
"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,21 +1,18 @@
|
||||||
import {join} from "path";
|
import {join} from "path";
|
||||||
import {app, BrowserWindow as bw, ipcMain, shell, ShareMenu, Menu, nativeImage} 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 {search} from "youtube-search-without-api-key";
|
import {search} from "youtube-search-without-api-key";
|
||||||
import {existsSync, mkdirSync, readdirSync, readFileSync, writeFileSync} from "fs";
|
import {existsSync, mkdirSync, readdirSync, readFileSync, writeFileSync} from "fs";
|
||||||
import {Stream} from "stream";
|
import {Stream} from "stream";
|
||||||
import {generate as generateQR} from "qrcode-terminal";
|
import {networkInterfaces} from "os";
|
||||||
import {hostname, networkInterfaces} 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 {AppImageUpdater, NsisUpdater} from "electron-updater";
|
import {AppImageUpdater, NsisUpdater} from "electron-updater";
|
||||||
import {utils} from './utils';
|
import {utils} from './utils';
|
||||||
import * as path from "path";
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
export class BrowserWindow {
|
export class BrowserWindow {
|
||||||
|
@ -57,7 +54,6 @@ export class BrowserWindow {
|
||||||
"components/equalizer",
|
"components/equalizer",
|
||||||
"components/add-to-playlist",
|
"components/add-to-playlist",
|
||||||
"components/queue",
|
"components/queue",
|
||||||
"components/queue-item",
|
|
||||||
"components/mediaitem-scroller-horizontal",
|
"components/mediaitem-scroller-horizontal",
|
||||||
"components/mediaitem-scroller-horizontal-large",
|
"components/mediaitem-scroller-horizontal-large",
|
||||||
"components/mediaitem-scroller-horizontal-sp",
|
"components/mediaitem-scroller-horizontal-sp",
|
||||||
|
@ -65,7 +61,6 @@ export class BrowserWindow {
|
||||||
"components/mediaitem-list-item",
|
"components/mediaitem-list-item",
|
||||||
"components/mediaitem-hrect",
|
"components/mediaitem-hrect",
|
||||||
"components/mediaitem-square",
|
"components/mediaitem-square",
|
||||||
"components/mediaitem-square-sp",
|
|
||||||
"components/mediaitem-mvview",
|
"components/mediaitem-mvview",
|
||||||
"components/libraryartist-item",
|
"components/libraryartist-item",
|
||||||
"components/listennow-child",
|
"components/listennow-child",
|
||||||
|
@ -199,9 +194,9 @@ export class BrowserWindow {
|
||||||
res.render("main", this.EnvironmentVariables);
|
res.render("main", this.EnvironmentVariables);
|
||||||
});
|
});
|
||||||
|
|
||||||
app.get("/api/playback/:action", (req, res)=>{
|
app.get("/api/playback/:action", (req, res) => {
|
||||||
const action = req.params.action;
|
const action = req.params.action;
|
||||||
switch(action) {
|
switch (action) {
|
||||||
case "playpause":
|
case "playpause":
|
||||||
BrowserWindow.win.webContents.executeJavaScript("wsapi.togglePlayPause()")
|
BrowserWindow.win.webContents.executeJavaScript("wsapi.togglePlayPause()")
|
||||||
res.send("Play/Pause toggle")
|
res.send("Play/Pause toggle")
|
||||||
|
@ -287,9 +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) {
|
|
||||||
generateQR(`http://${hostname}:${this.remotePort}`);
|
|
||||||
}
|
|
||||||
firstRequest = false;
|
firstRequest = false;
|
||||||
})
|
})
|
||||||
remote.get("/", (_req, res) => {
|
remote.get("/", (_req, res) => {
|
||||||
|
@ -537,18 +529,18 @@ export class BrowserWindow {
|
||||||
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, _) => {
|
ipcMain.on('get-remote-pair-url', (_event, _) => {
|
||||||
let url = `http://${BrowserWindow.getIP()}:${this.remotePort}`;
|
let url = `http://${BrowserWindow.getIP()}:${this.remotePort}`;
|
||||||
BrowserWindow.win.webContents.send('send-remote-pair-url', url);
|
BrowserWindow.win.webContents.send('send-remote-pair-url', url);
|
||||||
})
|
});
|
||||||
if (process.platform === "darwin") {
|
if (process.platform === "darwin") {
|
||||||
app.setUserActivity('com.CiderCollective.remote.pair', {
|
app.setUserActivity('com.CiderCollective.remote.pair', {
|
||||||
ip: `${BrowserWindow.getIP()}`
|
ip: `${BrowserWindow.getIP()}`
|
||||||
|
@ -570,9 +562,20 @@ export class BrowserWindow {
|
||||||
});
|
});
|
||||||
|
|
||||||
ipcMain.on('check-for-update', async (_event) => {
|
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}`
|
||||||
}
|
}
|
||||||
/*
|
/*
|
||||||
* Have to handle the auto updaters seperatly until we can support macOS. electron-builder limitation -q
|
* Have to handle the auto updaters seperatly until we can support macOS. electron-builder limitation -q
|
||||||
|
@ -581,10 +584,10 @@ export class BrowserWindow {
|
||||||
const linux_autoUpdater = new AppImageUpdater(options) //Linux
|
const linux_autoUpdater = new AppImageUpdater(options) //Linux
|
||||||
await win_autoUpdater.checkForUpdatesAndNotify()
|
await win_autoUpdater.checkForUpdatesAndNotify()
|
||||||
await linux_autoUpdater.checkForUpdatesAndNotify()
|
await linux_autoUpdater.checkForUpdatesAndNotify()
|
||||||
})
|
});
|
||||||
|
|
||||||
ipcMain.on('share-menu', async (_event, url) => {
|
ipcMain.on('share-menu', async (_event, url) => {
|
||||||
if ( process.platform != 'darwin') return;
|
if (process.platform != 'darwin') return;
|
||||||
//https://www.electronjs.org/docs/latest/api/share-menu
|
//https://www.electronjs.org/docs/latest/api/share-menu
|
||||||
console.log('[Share Sheet - App.ts]', url)
|
console.log('[Share Sheet - App.ts]', url)
|
||||||
const options = {
|
const options = {
|
||||||
|
@ -597,11 +600,6 @@ export class BrowserWindow {
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* *********************************************************************************************
|
/* *********************************************************************************************
|
||||||
* Window Events
|
* Window Events
|
||||||
* **********************************************************************************************/
|
* **********************************************************************************************/
|
||||||
|
@ -666,118 +664,6 @@ export class BrowserWindow {
|
||||||
shell.openExternal(x.url).catch(console.error);
|
shell.openExternal(x.url).catch(console.error);
|
||||||
return {action: "deny"};
|
return {action: "deny"};
|
||||||
});
|
});
|
||||||
|
|
||||||
/* *********************************************************************************************
|
|
||||||
* Menu
|
|
||||||
* **********************************************************************************************/
|
|
||||||
//@ts-ignore
|
|
||||||
console.log(path.join(__dirname, '../../src/renderer/views/svg/smartphone.svg'))
|
|
||||||
const isMac = process.platform === 'darwin';
|
|
||||||
//TODO: Figure out the icons
|
|
||||||
const remoteIcon = nativeImage.createFromPath(path.join(__dirname, '../../src/renderer/views/svg/smartphone.svg')).toPNG()
|
|
||||||
const soundIcon = nativeImage.createFromPath(path.join(__dirname, '../../src/renderer/views/svg/headphones.svg')).toPNG()
|
|
||||||
const aboutIcon = nativeImage.createFromPath(path.join(__dirname, '../../src/renderer/views/svg/info.svg')).toPNG()
|
|
||||||
const settingsIcon = nativeImage.createFromPath(path.join(__dirname, '../../src/renderer/views/svg/settings.svg')).toPNG()
|
|
||||||
const logoutIcon = nativeImage.createFromPath(path.join(__dirname, '../../src/renderer/views/svg/log-out.svg')).toPNG()
|
|
||||||
const ciderIcon = nativeImage.createFromPath(path.join(__dirname, '../../src/renderer/assets/logocute.png'))
|
|
||||||
const template = [
|
|
||||||
// { role: 'appMenu' }
|
|
||||||
...(isMac ? [{
|
|
||||||
label: app.name,
|
|
||||||
submenu: [
|
|
||||||
{ label: 'Web Remote', accelerator: 'CommandOrControl+W', sublabel: 'Opens in external window', click: () => BrowserWindow.win.webContents.executeJavaScript(`ipcRenderer.invoke('showQR')`)}, //accelerator
|
|
||||||
{ label: 'Audio Settings', accelerator: 'CommandOrControl+Shift+A', click: () => BrowserWindow.win.webContents.executeJavaScript(`app.modals.audioSettings = true`)},
|
|
||||||
{ label: 'About', accelerator: 'CommandOrControl+Shift+B', click: () => BrowserWindow.win.webContents.executeJavaScript(`app.appRoute('about'`)},
|
|
||||||
{ label: 'Settings', accelerator: 'CommandOrControl+,', click: () => BrowserWindow.win.webContents.executeJavaScript(`app.appRoute('settings')`)},
|
|
||||||
{ label: 'Logout', accelerator: 'CommandOrControl+Shift+O', click: () => BrowserWindow.win.webContents.executeJavaScript(`app.unauthorize(); document.location.reload()`)},
|
|
||||||
{ type: 'separator' },
|
|
||||||
{ role: 'quit' }
|
|
||||||
]
|
|
||||||
}] : []),
|
|
||||||
// { role: 'viewMenu' }
|
|
||||||
{
|
|
||||||
label: 'View',
|
|
||||||
submenu: [
|
|
||||||
{ role: 'reload' },
|
|
||||||
{ role: 'forceReload' },
|
|
||||||
{ role: 'toggleDevTools' },
|
|
||||||
{ type: 'separator' },
|
|
||||||
{ role: 'resetZoom' },
|
|
||||||
{ role: 'zoomIn' },
|
|
||||||
{ role: 'zoomOut' },
|
|
||||||
{ type: 'separator' },
|
|
||||||
{ role: 'togglefullscreen' }
|
|
||||||
]
|
|
||||||
},
|
|
||||||
// { role: 'windowMenu' }
|
|
||||||
{
|
|
||||||
label: 'Window',
|
|
||||||
submenu: [
|
|
||||||
{ role: 'minimize' },
|
|
||||||
{ role: 'zoom' },
|
|
||||||
...(isMac ? [
|
|
||||||
{ type: 'separator' },
|
|
||||||
{ role: 'front' },
|
|
||||||
{ type: 'separator' },
|
|
||||||
{ role: 'window' }
|
|
||||||
] : [
|
|
||||||
{ role: 'close' }
|
|
||||||
])
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
role: 'help',
|
|
||||||
submenu: [
|
|
||||||
{
|
|
||||||
label: 'Discord',
|
|
||||||
accelerator: 'CommandOrControl+Shift+D',
|
|
||||||
click: async () => {
|
|
||||||
const { shell } = require('electron')
|
|
||||||
await shell.openExternal('https://discord.gg/applemusic')
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'Donate',
|
|
||||||
accelerator: 'CommandOrControl+D',
|
|
||||||
icon: ciderIcon,
|
|
||||||
click: async () => {
|
|
||||||
const { shell } = require('electron')
|
|
||||||
await shell.openExternal('https://opencollective.com/ciderapp/')
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'Report a...',
|
|
||||||
submenu: [
|
|
||||||
{
|
|
||||||
label: 'Bug',
|
|
||||||
click: async () => {
|
|
||||||
const {shell} = require('electron')
|
|
||||||
await shell.openExternal("https://github.com/ciderapp/Cider/issues/new?assignees=&labels=bug%2Ctriage&template=bug_report.yaml&title=%5BBug%5D%3A+")
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'Feature Request',
|
|
||||||
click: async () => {
|
|
||||||
const {shell} = require('electron')
|
|
||||||
await shell.openExternal("https://github.com/ciderapp/Cider/issues/new?assignees=&labels=enhancement%2Ctriage&template=feature_request.yaml&title=%5BEnhancement%5D%3A+")
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: 'Translation Report/Request',
|
|
||||||
click: async () => {
|
|
||||||
const {shell} = require('electron')
|
|
||||||
await shell.openExternal("https://github.com/ciderapp/Cider/issues/new?assignees=&labels=%F0%9F%8C%90+Translations&template=translation.yaml&title=%5BTranslation%5D%3A+")
|
|
||||||
}
|
|
||||||
},
|
|
||||||
]
|
|
||||||
},
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
//@ts-ignore
|
|
||||||
const menu = Menu.buildFromTemplate(template)
|
|
||||||
Menu.setApplicationMenu(menu)
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -33,7 +33,7 @@ export class Plugins {
|
||||||
if (fs.existsSync(this.userPluginsPath)) {
|
if (fs.existsSync(this.userPluginsPath)) {
|
||||||
fs.readdirSync(this.userPluginsPath).forEach(file => {
|
fs.readdirSync(this.userPluginsPath).forEach(file => {
|
||||||
if (file.endsWith('.ts') || file.endsWith('.js')) {
|
if (file.endsWith('.ts') || file.endsWith('.js')) {
|
||||||
const plugin = require(path.join(this.userPluginsPath, file)).default;
|
const plugin = require(path.join(this.userPluginsPath, file));
|
||||||
file = file.replace('.ts', '').replace('.js', '');
|
file = file.replace('.ts', '').replace('.js', '');
|
||||||
if (plugins[file] || plugin in plugins) {
|
if (plugins[file] || plugin in plugins) {
|
||||||
console.log(`[${plugin.name}] Plugin already loaded / Duplicate Class Name`);
|
console.log(`[${plugin.name}] Plugin already loaded / Duplicate Class Name`);
|
||||||
|
|
|
@ -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,18 +27,16 @@ export class Store {
|
||||||
},
|
},
|
||||||
"audio": {
|
"audio": {
|
||||||
"volume": 1,
|
"volume": 1,
|
||||||
|
"volumeStep": 0.1,
|
||||||
|
"maxVolume": 1,
|
||||||
"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": false,
|
||||||
"ciderPPE_value": 0.5,
|
"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,
|
||||||
|
@ -61,10 +60,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
|
||||||
},
|
},
|
||||||
|
|
|
@ -12,6 +12,8 @@ export class utils {
|
||||||
*/
|
*/
|
||||||
private static paths: any = {
|
private static paths: any = {
|
||||||
srcPath: path.join(__dirname, "../../src"),
|
srcPath: path.join(__dirname, "../../src"),
|
||||||
|
rendererPath: path.join(__dirname, "../../src/renderer"),
|
||||||
|
mainPath: path.join(__dirname, "../../src/main"),
|
||||||
resourcePath: path.join(__dirname, "../../resources"),
|
resourcePath: path.join(__dirname, "../../resources"),
|
||||||
i18nPath: path.join(__dirname, "../../src/i18n"),
|
i18nPath: path.join(__dirname, "../../src/i18n"),
|
||||||
ciderCache: path.resolve(app.getPath("userData"), "CiderCache"),
|
ciderCache: path.resolve(app.getPath("userData"), "CiderCache"),
|
||||||
|
|
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 {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -20,7 +20,7 @@ export default class Thumbar {
|
||||||
/**
|
/**
|
||||||
* Thumbnail Toolbar Assets
|
* Thumbnail Toolbar Assets
|
||||||
*/
|
*/
|
||||||
private icons: { pause: Electron.NativeImage, play: Electron.NativeImage, next: Electron.NativeImage, previous: Electron.NativeImage } = {
|
private icons: { [key: string]: Electron.NativeImage } = {
|
||||||
pause: nativeImage.createFromPath(join(utils.getPath('resourcePath'), 'icons/thumbar', `${nativeTheme.shouldUseDarkColors ? 'light' : 'dark'}_pause.png`)),
|
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`)),
|
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`)),
|
next: nativeImage.createFromPath(join(utils.getPath('resourcePath'), 'icons/thumbar', `${nativeTheme.shouldUseDarkColors ? 'light' : 'dark'}_next.png`)),
|
||||||
|
|
227
src/main/plugins/webNowPlaying.ts
Normal file
|
@ -0,0 +1,227 @@
|
||||||
|
import * as WebSocket from 'ws';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 0-pad a number.
|
||||||
|
* @param {Number} number
|
||||||
|
* @param {Number} length
|
||||||
|
* @returns String
|
||||||
|
*/
|
||||||
|
const pad = (number: number, length: number) => String(number).padStart(length, '0');
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Convert seconds to a time string acceptable to Rainmeter
|
||||||
|
* https://github.com/tjhrulz/WebNowPlaying-BrowserExtension/blob/master/WebNowPlaying.js#L50-L59
|
||||||
|
* @param {Number} timeInSeconds
|
||||||
|
* @returns String
|
||||||
|
*/
|
||||||
|
const convertTimeToString = (timeInSeconds: number) => {
|
||||||
|
const timeInMinutes = timeInSeconds / 60;
|
||||||
|
if (timeInMinutes < 60) {
|
||||||
|
return timeInMinutes + ":" + pad(timeInSeconds % 60, 2);
|
||||||
|
}
|
||||||
|
return timeInMinutes / 60 + ":" + pad(timeInMinutes % 60, 2) + ":" + pad(timeInSeconds % 60, 2);
|
||||||
|
}
|
||||||
|
|
||||||
|
export default class WebNowPlaying {
|
||||||
|
/**
|
||||||
|
* Base Plugin Details (Eventually implemented into a GUI in settings)
|
||||||
|
*/
|
||||||
|
public name: string = 'WebNowPlaying';
|
||||||
|
public description: string = 'Song info and playback control for the Rainmeter WebNowPlaying plugin.';
|
||||||
|
public version: string = '1.0.0';
|
||||||
|
public author: string = 'Zennn <me@jozen.blue>';
|
||||||
|
|
||||||
|
private _win: any;
|
||||||
|
private ws: any = null;
|
||||||
|
private wsapiConn: any = null;
|
||||||
|
private playerName: string = 'Cider'/* Apple Music */;
|
||||||
|
|
||||||
|
constructor() {
|
||||||
|
console.debug(`[Plugin][${this.name}] Loading Complete.`);
|
||||||
|
}
|
||||||
|
|
||||||
|
sendSongInfo(attributes: any) {
|
||||||
|
if (!this.ws || this.ws.readyState !== WebSocket.OPEN) return;
|
||||||
|
|
||||||
|
const fields = ['STATE', 'TITLE', 'ARTIST', 'ALBUM', 'COVER', 'DURATION', 'POSITION', 'VOLUME', 'REPEAT', 'SHUFFLE'];
|
||||||
|
fields.forEach((field) => {
|
||||||
|
try {
|
||||||
|
let value: any = '';
|
||||||
|
switch (field) {
|
||||||
|
case 'STATE':
|
||||||
|
value = attributes.status ? 1 : 2;
|
||||||
|
break;
|
||||||
|
case 'TITLE':
|
||||||
|
value = attributes.name;
|
||||||
|
break;
|
||||||
|
case 'ARTIST':
|
||||||
|
value = attributes.artistName;
|
||||||
|
break;
|
||||||
|
case 'ALBUM':
|
||||||
|
value = attributes.albumName;
|
||||||
|
break;
|
||||||
|
case 'COVER':
|
||||||
|
value = attributes.artwork.url.replace('{w}', attributes.artwork.width).replace('{h}', attributes.artwork.height);
|
||||||
|
break;
|
||||||
|
case 'DURATION':
|
||||||
|
value = convertTimeToString(attributes.durationInMillis / 1000);
|
||||||
|
break;
|
||||||
|
case 'POSITION':
|
||||||
|
value = convertTimeToString((attributes.durationInMillis - attributes.remainingTime) / 1000);
|
||||||
|
break;
|
||||||
|
case 'VOLUME':
|
||||||
|
value = attributes.volume * 100;
|
||||||
|
break;
|
||||||
|
case 'REPEAT':
|
||||||
|
value = attributes.repeatMode;
|
||||||
|
break;
|
||||||
|
case 'SHUFFLE':
|
||||||
|
value = attributes.shuffleMode;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
this.ws.send(`${field}:${value}`);
|
||||||
|
} catch (error) {
|
||||||
|
if (this.ws.readyState === WebSocket.OPEN) {
|
||||||
|
this.ws.send(`Error:Error updating ${field} for ${this.playerName}`);
|
||||||
|
this.ws.send(`ErrorD:${error}`);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
fireEvent(evt: any) {
|
||||||
|
if (!evt.data) return;
|
||||||
|
let value = '';
|
||||||
|
if (evt.data.split(/ (.+)/).length > 1) {
|
||||||
|
value = evt.data.split(/ (.+)/)[1];
|
||||||
|
}
|
||||||
|
const eventName = evt.data.split(' ')[0].toLowerCase();
|
||||||
|
|
||||||
|
try {
|
||||||
|
switch (eventName) {
|
||||||
|
case 'playpause':
|
||||||
|
this._win.webContents.executeJavaScript('MusicKitInterop.playPause()').catch(console.error);
|
||||||
|
break;
|
||||||
|
case 'next':
|
||||||
|
this._win.webContents.executeJavaScript('MusicKitInterop.next()').catch(console.error);
|
||||||
|
break;
|
||||||
|
case 'previous':
|
||||||
|
this._win.webContents.executeJavaScript('MusicKitInterop.previous()').catch(console.error);
|
||||||
|
break;
|
||||||
|
case 'setposition':
|
||||||
|
this._win.webContents.executeJavaScript(`MusicKit.getInstance().seekToTime(${parseFloat(value)})`);
|
||||||
|
break;
|
||||||
|
case 'setvolume':
|
||||||
|
this._win.webContents.executeJavaScript(`MusicKit.getInstance().volume = ${parseFloat(value) / 100}`);
|
||||||
|
break;
|
||||||
|
case 'repeat':
|
||||||
|
this._win.webContents.executeJavaScript('wsapi.toggleRepeat()').catch(console.error);
|
||||||
|
break;
|
||||||
|
case 'shuffle':
|
||||||
|
this._win.webContents.executeJavaScript('wsapi.toggleShuffle()').catch(console.error);
|
||||||
|
break;
|
||||||
|
case 'togglethumbsup':
|
||||||
|
// not implemented
|
||||||
|
break;
|
||||||
|
case 'togglethumbsdown':
|
||||||
|
// not implemented
|
||||||
|
break;
|
||||||
|
case 'rating':
|
||||||
|
// not implemented
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
} catch (error) {
|
||||||
|
console.debug(error);
|
||||||
|
if (this.ws.readyState === WebSocket.OPEN) {
|
||||||
|
this.ws.send(`Error:Error sending event to ${this.playerName}`);
|
||||||
|
this.ws.send(`ErrorD:${error}`);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Runs on app ready
|
||||||
|
*/
|
||||||
|
onReady(win: any) {
|
||||||
|
this._win = win;
|
||||||
|
|
||||||
|
// Connect to Rainmeter plugin and retry on disconnect.
|
||||||
|
const init = () => {
|
||||||
|
try {
|
||||||
|
this.ws = new WebSocket('ws://127.0.0.1:8974/');
|
||||||
|
let retry: NodeJS.Timeout;
|
||||||
|
this.ws.onopen = (() => {
|
||||||
|
console.info('[WebNowPlaying] Connected to Rainmeter');
|
||||||
|
this.ws.send(`PLAYER:${this.playerName}`);
|
||||||
|
}).bind(this);
|
||||||
|
|
||||||
|
this.ws.onclose = () => {
|
||||||
|
clearTimeout(retry);
|
||||||
|
retry = setTimeout(init, 2000);
|
||||||
|
};
|
||||||
|
|
||||||
|
this.ws.onerror = () => {
|
||||||
|
clearTimeout(retry);
|
||||||
|
this.ws.close();
|
||||||
|
};
|
||||||
|
|
||||||
|
this.ws.onmessage = this.fireEvent?.bind(this);
|
||||||
|
} catch (error) {
|
||||||
|
console.error(error);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
init();
|
||||||
|
|
||||||
|
// Connect to wsapi. Only used to update progress.
|
||||||
|
try {
|
||||||
|
this.wsapiConn = new WebSocket('ws://127.0.0.1:26369/');
|
||||||
|
|
||||||
|
this.wsapiConn.onopen = () => {
|
||||||
|
console.info('[WebNowPlaying] Connected to wsapi');
|
||||||
|
};
|
||||||
|
|
||||||
|
this.wsapiConn.onmessage = (evt: { data: string; }) => {
|
||||||
|
const response = JSON.parse(evt.data);
|
||||||
|
if (response.type === 'playbackStateUpdate') {
|
||||||
|
this.sendSongInfo(response.data);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
} catch (error) {
|
||||||
|
console.error(error);
|
||||||
|
}
|
||||||
|
|
||||||
|
console.debug(`[Plugin][${this.name}] Ready.`);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Runs on app stop
|
||||||
|
*/
|
||||||
|
onBeforeQuit() {
|
||||||
|
if (this.ws) {
|
||||||
|
this.ws.send('STATE:0');
|
||||||
|
this.ws.onclose = null; // disable onclose handler first to stop it from retrying
|
||||||
|
this.ws.close();
|
||||||
|
}
|
||||||
|
if (this.wsapiConn) {
|
||||||
|
this.wsapiConn.close();
|
||||||
|
}
|
||||||
|
console.debug(`[Plugin][${this.name}] Stopped.`);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Runs on playback State Change
|
||||||
|
* @param attributes Music Attributes (attributes.status = current state)
|
||||||
|
*/
|
||||||
|
onPlaybackStateDidChange(attributes: any) {
|
||||||
|
this.sendSongInfo(attributes);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Runs on song change
|
||||||
|
* @param attributes Music Attributes
|
||||||
|
*/
|
||||||
|
onNowPlayingItemDidChange(attributes: any) {
|
||||||
|
this.sendSongInfo(attributes);
|
||||||
|
}
|
||||||
|
}
|
|
@ -30,7 +30,7 @@ var CiderAudio = {
|
||||||
CiderAudio.audioNodes.gainNode.disconnect(); } catch(e){}
|
CiderAudio.audioNodes.gainNode.disconnect(); } catch(e){}
|
||||||
try{ CiderAudio.audioNodes.spatialNode.disconnect();} catch(e){}
|
try{ CiderAudio.audioNodes.spatialNode.disconnect();} catch(e){}
|
||||||
try{
|
try{
|
||||||
CiderAudio.audioNodes.preampNode.disconnect();
|
// CiderAudio.audioNodes.preampNode.disconnect();
|
||||||
for (var i of CiderAudio.audioNodes.llpw){
|
for (var i of CiderAudio.audioNodes.llpw){
|
||||||
i.disconnect();
|
i.disconnect();
|
||||||
}
|
}
|
||||||
|
@ -126,11 +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;
|
||||||
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_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];
|
||||||
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_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];
|
||||||
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];
|
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.audioBands = []; CiderAudio.audioNodes.vibrantbassNode = []; CiderAudio.audioNodes.llpw = [];
|
||||||
CiderAudio.audioNodes.llpw = []; CiderAudio.audioNodes.llpwEnabled = 0;
|
|
||||||
|
|
||||||
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();
|
||||||
|
@ -147,19 +146,21 @@ var CiderAudio = {
|
||||||
CiderAudio.audioNodes.llpw[i].Q.value = LLPW_Q[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.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;
|
CiderAudio.audioNodes.preampNode.gain.value = 0;
|
||||||
|
/** 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{
|
||||||
|
@ -171,18 +172,18 @@ var CiderAudio = {
|
||||||
CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.llpw[0]);
|
CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.llpw[0]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// CiderAudio.audioNodes.preampNode.connect(CiderAudio.audioNodes.llpw[0]);
|
||||||
|
|
||||||
for (i = 1; i < LLPW_FREQUENCIES.length; i ++) {
|
for (i = 1; i < LLPW_FREQUENCIES.length; i ++) {
|
||||||
CiderAudio.audioNodes.llpw[i-1].connect(CiderAudio.audioNodes.llpw[i]);
|
CiderAudio.audioNodes.llpw[i-1].connect(CiderAudio.audioNodes.llpw[i]);
|
||||||
}
|
}
|
||||||
CiderAudio.audioNodes.llpw[LLPW_FREQUENCIES.length-1].connect(CiderAudio.audioNodes.preampNode);
|
CiderAudio.audioNodes.llpw[LLPW_FREQUENCIES.length-1].connect(CiderAudio.audioNodes.vibrantbassNode[0]);
|
||||||
|
|
||||||
CiderAudio.audioNodes.preampNode.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]);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,78 +1,5 @@
|
||||||
Vue.use(VueObserveVisibility);
|
Vue.use(VueObserveVisibility);
|
||||||
var notyf = new Notyf();
|
var notyf = new Notyf();
|
||||||
// This is going to suck to code
|
|
||||||
var CiderContextMenu = {
|
|
||||||
Menu: function (event) {
|
|
||||||
this.items = []
|
|
||||||
},
|
|
||||||
async Create(event, menudata) {
|
|
||||||
var menuBackground = document.createElement("div");
|
|
||||||
var menu = document.createElement("div");
|
|
||||||
menu.classList.add("context-menu-body");
|
|
||||||
menu.classList.add("context-menu-open");
|
|
||||||
menuBackground.classList.add("context-menu");
|
|
||||||
menu.style.left = 0 + "px";
|
|
||||||
menu.style.top = 0 + "px";
|
|
||||||
menu.style.position = "absolute";
|
|
||||||
menu.style.zIndex = "99909";
|
|
||||||
menu.addEventListener("animationend", function () {
|
|
||||||
menu.classList.remove("context-menu-open");
|
|
||||||
}, {once: true});
|
|
||||||
|
|
||||||
function close() {
|
|
||||||
menuBackground.style.pointerEvents = "none";
|
|
||||||
menu.classList.add("context-menu-close");
|
|
||||||
menu.addEventListener("animationend", function () {
|
|
||||||
menuBackground.remove();
|
|
||||||
menu.remove();
|
|
||||||
}, {once: true});
|
|
||||||
}
|
|
||||||
|
|
||||||
// when menubackground is clicked, remove it
|
|
||||||
menuBackground.addEventListener("click", close);
|
|
||||||
menuBackground.addEventListener("contextmenu", close);
|
|
||||||
|
|
||||||
// add menu to menuBackground
|
|
||||||
menuBackground.appendChild(menu);
|
|
||||||
|
|
||||||
document.body.appendChild(menuBackground);
|
|
||||||
|
|
||||||
if (typeof menudata.items == "object") {
|
|
||||||
menudata.items = Object.values(menudata.items);
|
|
||||||
}
|
|
||||||
|
|
||||||
console.log(menudata);
|
|
||||||
|
|
||||||
// for each item in menudata create a menu item
|
|
||||||
for (var i = 0; i < menudata.items.length; i++) {
|
|
||||||
let item = document.createElement("button")
|
|
||||||
|
|
||||||
if (menudata.items[i]["disabled"] === true) {
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
item.tabIndex = 0
|
|
||||||
item.classList.add("context-menu-item")
|
|
||||||
if (menudata.items[i]["icon"]) {
|
|
||||||
item.innerHTML += `<div class="sidebar-icon">${await app.getSvgIcon(menudata.items[i]["icon"])}</div>`
|
|
||||||
}
|
|
||||||
item.innerHTML += menudata.items[i].name
|
|
||||||
item.onclick = menudata.items[i].action
|
|
||||||
menu.appendChild(item)
|
|
||||||
}
|
|
||||||
menu.style.width = (menu.offsetWidth + 10) + "px";
|
|
||||||
menu.style.left = event.clientX + "px";
|
|
||||||
menu.style.top = event.clientY + "px";
|
|
||||||
// if menu would be off the screen, move it into view, but preserve the width
|
|
||||||
if (menu.offsetLeft + menu.offsetWidth > window.innerWidth) {
|
|
||||||
menu.style.left = (window.innerWidth - menu.offsetWidth) + "px";
|
|
||||||
}
|
|
||||||
if (menu.offsetTop + menu.offsetHeight > window.innerHeight) {
|
|
||||||
menu.style.top = (window.innerHeight - menu.offsetHeight) + "px";
|
|
||||||
}
|
|
||||||
|
|
||||||
return menuBackground;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
const MusicKitObjects = {
|
const MusicKitObjects = {
|
||||||
LibraryPlaylist: function () {
|
LibraryPlaylist: function () {
|
||||||
|
@ -344,6 +271,25 @@ const app = new Vue({
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
songLinkShare(amUrl) {
|
||||||
|
notyf.open({type: "info", message: app.getLz('term.song.link.generate')})
|
||||||
|
let self = this
|
||||||
|
httpRequest = new XMLHttpRequest();
|
||||||
|
httpRequest.open('GET', `https://api.song.link/v1-alpha.1/links?url=${amUrl}&userCountry=US`, true);
|
||||||
|
httpRequest.send();
|
||||||
|
httpRequest.onreadystatechange = function () {
|
||||||
|
if (httpRequest.readyState === 4) {
|
||||||
|
if (httpRequest.status === 200) {
|
||||||
|
let response = JSON.parse(httpRequest.responseText);
|
||||||
|
console.log(response);
|
||||||
|
self.copyToClipboard(response.pageUrl)
|
||||||
|
} else {
|
||||||
|
console.log('There was a problem with the request.');
|
||||||
|
notyf.error(app.getLz('term.requestError'))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
mainMenuVisibility(val) {
|
mainMenuVisibility(val) {
|
||||||
if (val) {
|
if (val) {
|
||||||
(this.chrome.userinfo.id) ? this.chrome.menuOpened = !this.chrome.menuOpened : false
|
(this.chrome.userinfo.id) ? this.chrome.menuOpened = !this.chrome.menuOpened : false
|
||||||
|
@ -670,23 +616,13 @@ const app = new Vue({
|
||||||
window.localStorage.setItem("currentQueue", JSON.stringify(app.mk.queue.items))
|
window.localStorage.setItem("currentQueue", JSON.stringify(app.mk.queue.items))
|
||||||
};
|
};
|
||||||
|
|
||||||
// Load saved quality
|
if (typeof MusicKit.PlaybackBitrate[app.cfg.audio.quality] !== "string") {
|
||||||
switch (app.cfg.audio.quality) {
|
app.mk.bitrate = MusicKit.PlaybackBitrate[app.cfg.audio.quality]
|
||||||
case "extreme":
|
} else {
|
||||||
app.mk.bitrate = app.cfg.audio.quality = 990
|
app.mk.bitrate = 256
|
||||||
break;
|
app.cfg.audio.quality = "HIGH"
|
||||||
case "high":
|
|
||||||
app.mk.bitrate = app.cfg.audio.quality = 256
|
|
||||||
break;
|
|
||||||
case "low":
|
|
||||||
app.mk.bitrate = app.cfg.audio.quality = 64
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
// app.mk.bitrate = app.cfg.audio.quality
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// load last played track
|
// load last played track
|
||||||
try {
|
try {
|
||||||
let lastItem = window.localStorage.getItem("currentTrack")
|
let lastItem = window.localStorage.getItem("currentTrack")
|
||||||
|
@ -1252,10 +1188,24 @@ const app = new Vue({
|
||||||
return this.playerLCD.playbackDuration
|
return this.playerLCD.playbackDuration
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
convertToMins(time) {
|
convertTime(time) {
|
||||||
let mins = Math.floor(time / 60)
|
if (typeof time !== "number") {
|
||||||
let seconds = (Math.floor(time % 60) / 100).toFixed(2)
|
time = parseInt(time)
|
||||||
return `${mins}:${seconds.replace("0.", "")}`
|
}
|
||||||
|
|
||||||
|
const timeGates = {
|
||||||
|
600: 15,
|
||||||
|
3600: 14,
|
||||||
|
36000: 12,
|
||||||
|
}
|
||||||
|
|
||||||
|
for (let key in timeGates) {
|
||||||
|
if (time < key) {
|
||||||
|
return new Date(time * 1000).toISOString().substring(timeGates[key], 19)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return new Date(time * 1000).toISOString().substring(11, 19)
|
||||||
},
|
},
|
||||||
hashCode(str) {
|
hashCode(str) {
|
||||||
let hash = 0,
|
let hash = 0,
|
||||||
|
@ -1934,7 +1884,7 @@ const app = new Vue({
|
||||||
self.library.backgroundNotification.show = false
|
self.library.backgroundNotification.show = false
|
||||||
self.searchLibrarySongs()
|
self.searchLibrarySongs()
|
||||||
localStorage.setItem("librarySongs", JSON.stringify(library))
|
localStorage.setItem("librarySongs", JSON.stringify(library))
|
||||||
console.log(library)
|
// console.log(library)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2042,7 +1992,7 @@ const app = new Vue({
|
||||||
self.library.backgroundNotification.show = false
|
self.library.backgroundNotification.show = false
|
||||||
localStorage.setItem("libraryAlbums", JSON.stringify(library))
|
localStorage.setItem("libraryAlbums", JSON.stringify(library))
|
||||||
self.searchLibraryAlbums(index)
|
self.searchLibraryAlbums(index)
|
||||||
console.log(library)
|
// console.log(library)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2148,7 +2098,7 @@ const app = new Vue({
|
||||||
self.library.backgroundNotification.show = false
|
self.library.backgroundNotification.show = false
|
||||||
localStorage.setItem("libraryArtists", JSON.stringify(library))
|
localStorage.setItem("libraryArtists", JSON.stringify(library))
|
||||||
self.searchLibraryArtists(index)
|
self.searchLibraryArtists(index)
|
||||||
console.log(library)
|
// console.log(library)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2334,7 +2284,7 @@ const app = new Vue({
|
||||||
this.mk.addToLibrary(id).then((data) => {
|
this.mk.addToLibrary(id).then((data) => {
|
||||||
self.getLibrarySongsFull(true)
|
self.getLibrarySongsFull(true)
|
||||||
})
|
})
|
||||||
notyf.success('Added to library.');
|
notyf.success(app.getLz('action.addToLibrary.success'));
|
||||||
},
|
},
|
||||||
removeFromLibrary(kind, id) {
|
removeFromLibrary(kind, id) {
|
||||||
let self = this
|
let self = this
|
||||||
|
@ -2346,7 +2296,7 @@ const app = new Vue({
|
||||||
}).then((data) => {
|
}).then((data) => {
|
||||||
self.getLibrarySongsFull(true)
|
self.getLibrarySongsFull(true)
|
||||||
})
|
})
|
||||||
notyf.success('Removed from library.')
|
notyf.success(app.getLz('action.removeFromLibrary.success'))
|
||||||
},
|
},
|
||||||
|
|
||||||
async losslessBadge() {
|
async losslessBadge() {
|
||||||
|
@ -3083,23 +3033,6 @@ const app = new Vue({
|
||||||
})
|
})
|
||||||
self.$store.commit("setLCDArtwork", img)
|
self.$store.commit("setLCDArtwork", img)
|
||||||
})
|
})
|
||||||
|
|
||||||
// Vibrant.from(this.mk["nowPlayingItem"]["attributes"]["artwork"]["url"].replace('{w}', size).replace('{h}', size)).getPalette().then(palette=>{
|
|
||||||
// let angle = "140deg"
|
|
||||||
// let gradient = ""
|
|
||||||
// let colors = Object.values(palette).filter(color=>color!=null)
|
|
||||||
// if(colors.length > 0){
|
|
||||||
// let stops = []
|
|
||||||
// colors.forEach(color=>{
|
|
||||||
// stops.push(`${self._rgbToRgb(color._rgb)} 0%`)
|
|
||||||
// })
|
|
||||||
// stops.push(`${self._rgbToRgb(colors[0]._rgb)} 100%`)
|
|
||||||
// gradient = `linear-gradient(${angle}, ${stops.join(", ")}`
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// document.querySelector("#app").style.setProperty("--bgColor", gradient)
|
|
||||||
// }).setQuantizer(Vibrant.Quantizer.WebWorker)
|
|
||||||
|
|
||||||
try {
|
try {
|
||||||
clearInterval(bginterval);
|
clearInterval(bginterval);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
|
@ -3124,47 +3057,6 @@ const app = new Vue({
|
||||||
}
|
}
|
||||||
}, 200)
|
}, 200)
|
||||||
},
|
},
|
||||||
|
|
||||||
// getNowPlayingArtwork(size = 600) {
|
|
||||||
// if (typeof this.mk.nowPlayingItem === "undefined") return;
|
|
||||||
// let interval = setInterval(() => {
|
|
||||||
|
|
||||||
// try {
|
|
||||||
// if (this.mk.nowPlayingItem && this.mk.nowPlayingItem["id"] != this.currentTrackIDBG && document.querySelector('.app-playback-controls .artwork')) {
|
|
||||||
// this.currentTrackIDBG = this.mk.nowPlayingItem["id"];
|
|
||||||
// if (document.querySelector('.app-playback-controls .artwork') != null) {
|
|
||||||
// clearInterval(interval);
|
|
||||||
// }
|
|
||||||
// if (app.mk.nowPlayingItem.attributes.artwork != null && app.mk.nowPlayingItem.attributes.artwork.url != null && app.mk.nowPlayingItem.attributes.artwork.url!= '' ) {
|
|
||||||
// document.querySelector('.app-playback-controls .artwork').style.setProperty('--artwork', `url("${decodeURI((this.mk["nowPlayingItem"]["attributes"]["artwork"]["url"])).replace('{w}', size).replace('{h}', size)}")`);
|
|
||||||
// try {
|
|
||||||
// clearInterval(interval);
|
|
||||||
// } catch (err) {
|
|
||||||
// }
|
|
||||||
// } else {
|
|
||||||
// this.setLibraryArt()
|
|
||||||
// }
|
|
||||||
// } else if (this.mk.nowPlayingItem["id"] == this.currentTrackID) {
|
|
||||||
// try {
|
|
||||||
// clearInterval(interval);
|
|
||||||
// } catch (err) {
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// } catch (e) {
|
|
||||||
// if (this.mk.nowPlayingItem && this.mk.nowPlayingItem["id"] && document.querySelector('.app-playback-controls .artwork')) {
|
|
||||||
// this.setLibraryArt()
|
|
||||||
// try {
|
|
||||||
// clearInterval(interval);
|
|
||||||
// } catch (err) {
|
|
||||||
// }
|
|
||||||
|
|
||||||
// }
|
|
||||||
|
|
||||||
// }
|
|
||||||
// }, 200)
|
|
||||||
|
|
||||||
|
|
||||||
// },
|
|
||||||
async getCurrentArtURL() {
|
async getCurrentArtURL() {
|
||||||
try {
|
try {
|
||||||
this.currentArtUrl = '';
|
this.currentArtUrl = '';
|
||||||
|
@ -3179,11 +3071,6 @@ const app = new Vue({
|
||||||
data = data.data.data[0];
|
data = data.data.data[0];
|
||||||
if (data != null && data !== "" && data.attributes != null && data.attributes.artwork != null) {
|
if (data != null && data !== "" && data.attributes != null && data.attributes.artwork != null) {
|
||||||
this.currentArtUrl = (data["attributes"]["artwork"]["url"] ?? '').replace('{w}', 50).replace('{h}', 50);
|
this.currentArtUrl = (data["attributes"]["artwork"]["url"] ?? '').replace('{w}', 50).replace('{h}', 50);
|
||||||
// if (this.currentArtUrl != ""){
|
|
||||||
// let attr = MusicKitInterop.getAttributes();
|
|
||||||
// attr.artwork.url = this.currentArtUrl;
|
|
||||||
// ipcRenderer.send('forceUpdateRPC',attr)
|
|
||||||
// }
|
|
||||||
try {
|
try {
|
||||||
document.querySelector('.app-playback-controls .artwork').style.setProperty('--artwork', `url("${this.currentArtUrl}")`);
|
document.querySelector('.app-playback-controls .artwork').style.setProperty('--artwork', `url("${this.currentArtUrl}")`);
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
|
@ -3317,29 +3204,32 @@ const app = new Vue({
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
checkScrollDirectionIsUp(event) {
|
||||||
|
if (event.wheelDelta) {
|
||||||
|
return event.wheelDelta > 0;
|
||||||
|
}
|
||||||
|
return event.deltaY < 0;
|
||||||
|
},
|
||||||
|
volumeUp() {
|
||||||
|
if ((app.mk.volume + app.cfg.audio.volumeStep) > 1) {
|
||||||
|
app.mk.volume = app.cfg.audio.maxVolume;
|
||||||
|
console.log('setting max volume')
|
||||||
|
} else {
|
||||||
|
console.log('volume up')
|
||||||
|
app.mk.volume += app.cfg.audio.volumeStep;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
volumeDown() {
|
||||||
|
if ((app.mk.volume - app.cfg.audio.volumeStep) < 0) {
|
||||||
|
app.mk.volume = 0;
|
||||||
|
console.log('setting volume to 0')
|
||||||
|
} else {
|
||||||
|
console.log('volume down')
|
||||||
|
app.mk.volume -= app.cfg.audio.volumeStep;
|
||||||
|
}
|
||||||
|
},
|
||||||
volumeWheel(event) {
|
volumeWheel(event) {
|
||||||
if (this.cfg.audio.maxVolume < 1.0 && this.cfg.audio.maxVolume > 0.01) {
|
app.checkScrollDirectionIsUp(event) ? app.volumeUp() : app.volumeDown()
|
||||||
this.cfg.audio.volumePrecision = 0.01
|
|
||||||
this.cfg.audio.volumeRoundMax = this.cfg.audio.maxVolume - 0.01
|
|
||||||
this.cfg.audio.volumeRoundMin = 0.01
|
|
||||||
}
|
|
||||||
if (event.deltaY < 0) {
|
|
||||||
if (this.mk.volume < this.cfg.audio.maxVolume) {
|
|
||||||
if (this.mk.volume <= this.cfg.audio.volumeRoundMax) {
|
|
||||||
this.mk.volume += this.cfg.audio.volumePrecision
|
|
||||||
} else {
|
|
||||||
this.mk.volume = this.cfg.audio.maxVolume
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else if (event.deltaY > 0) {
|
|
||||||
if (this.mk.volume > 0) {
|
|
||||||
if (this.mk.volume >= this.cfg.audio.volumeRoundMin) {
|
|
||||||
this.mk.volume -= this.cfg.audio.volumePrecision
|
|
||||||
} else {
|
|
||||||
this.mk.volume = 0
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
muteButtonPressed() {
|
muteButtonPressed() {
|
||||||
if (this.cfg.audio.muted) {
|
if (this.cfg.audio.muted) {
|
||||||
|
@ -3405,18 +3295,11 @@ const app = new Vue({
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
async nowPlayingContextMenu(event) {
|
async nowPlayingContextMenu(event) {
|
||||||
// function revisedRandId() {
|
|
||||||
// return Math.random().toString(36).replace(/[^a-z]+/g, '').substr(2, 10);
|
|
||||||
// }
|
|
||||||
let self = this
|
let self = this
|
||||||
let data_type = this.mk.nowPlayingItem.playParams.kind
|
let data_type = this.mk.nowPlayingItem.playParams.kind
|
||||||
let item_id = this.mk.nowPlayingItem.attributes.playParams.id ?? this.mk.nowPlayingItem.id
|
let item_id = this.mk.nowPlayingItem.attributes.playParams.id ?? this.mk.nowPlayingItem.id
|
||||||
let isLibrary = this.mk.nowPlayingItem.attributes.playParams.isLibrary ?? false
|
let isLibrary = this.mk.nowPlayingItem.attributes.playParams.isLibrary ?? false
|
||||||
let params = {"fields[songs]": "inLibrary", "fields[albums]": "inLibrary", "relate": "library", "t": "1"}
|
let params = {"fields[songs]": "inLibrary", "fields[albums]": "inLibrary", "relate": "library", "t": "1"}
|
||||||
// let res = await app.mkapi(data_type, isLibrary , item_id, params);
|
|
||||||
// if (res && res.relationships && res.relationships.library && res.relationships.library.data && res.relationships.library.data.length > 0) {
|
|
||||||
// item_id = res.relationships.library.data[0].id
|
|
||||||
// }
|
|
||||||
app.selectedMediaItems = []
|
app.selectedMediaItems = []
|
||||||
app.select_selectMediaItem(item_id, data_type, 0, '12344', isLibrary)
|
app.select_selectMediaItem(item_id, data_type, 0, '12344', isLibrary)
|
||||||
let useMenu = "normal"
|
let useMenu = "normal"
|
||||||
|
@ -3480,7 +3363,6 @@ const app = new Vue({
|
||||||
"disabled": false,
|
"disabled": false,
|
||||||
"action": function () {
|
"action": function () {
|
||||||
app.addToLibrary(app.mk.nowPlayingItem.id);
|
app.addToLibrary(app.mk.nowPlayingItem.id);
|
||||||
// if (!isLibrary) {app.addToLibrary(item_id); this.mk.nowPlayingItem.attributes.playParams["isLibrary"] = true} else { app.removeFromLibrary(data_type,item_id); this.mk.nowPlayingItem.attributes.playParams["isLibrary"] = false};
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -3501,26 +3383,24 @@ const app = new Vue({
|
||||||
app.copyToClipboard((u.data.data.length && u.data.data.length > 0) ? u.data.data[0].attributes.url : u.data.data.attributes.url)
|
app.copyToClipboard((u.data.data.length && u.data.data.length > 0) ? u.data.data[0].attributes.url : u.data.data.attributes.url)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"icon": "./assets/feather/share.svg",
|
||||||
|
"name": `${app.getLz('action.share')} (song.link)`,
|
||||||
|
"action": function () {
|
||||||
|
app.mkapi(app.mk.nowPlayingItem.attributes?.playParams?.kind ?? app.mk.nowPlayingItem.type ?? 'songs', false, app.mk.nowPlayingItem._songId ?? app.mk.nowPlayingItem.id ?? '').then(u => {
|
||||||
|
app.songLinkShare((u.data.data.length && u.data.data.length > 0) ? u.data.data[0].attributes.url : u.data.data.attributes.url)
|
||||||
|
})
|
||||||
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (this.contextExt) {
|
if (this.contextExt) {
|
||||||
// if this.context-ext.normal is true append all options to the 'normal' menu which is a kvp of arrays
|
|
||||||
if (this.contextExt.normal) {
|
if (this.contextExt.normal) {
|
||||||
menus.normal.items = menus.normal.items.concat(this.contextExt.normal)
|
menus.normal.items = menus.normal.items.concat(this.contextExt.normal)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// isLibrary = await app.inLibrary([this.mk.nowPlayingItem])
|
|
||||||
// console.warn(isLibrary)
|
|
||||||
// if(isLibrary.length != 0) {
|
|
||||||
// if (isLibrary[0].attributes.inLibrary) {
|
|
||||||
// menus.normal.items.find(x => x.id == "addToLibrary").disabled = true
|
|
||||||
// }
|
|
||||||
// }else{
|
|
||||||
// menus.normal.items.find(x => x.id == "addToLibrary").disabled = true
|
|
||||||
// }
|
|
||||||
this.showMenuPanel(menus[useMenu], event)
|
this.showMenuPanel(menus[useMenu], event)
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
|
|
@ -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");
|
||||||
|
|
||||||
|
@ -1126,7 +1126,8 @@ body[platform="darwin"] .app-chrome .app-chrome-item > .window-controls > div.cl
|
||||||
width: 100%;
|
width: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
.app-chrome .app-chrome-item > .app-playback-controls .song-name {
|
.app-chrome .app-chrome-item > .app-playback-controls {
|
||||||
|
.song-name {
|
||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
font-size: 13px;
|
font-size: 13px;
|
||||||
|
@ -1153,24 +1154,25 @@ body[platform="darwin"] .app-chrome .app-chrome-item > .window-controls > div.cl
|
||||||
background-repeat: no-repeat;
|
background-repeat: no-repeat;
|
||||||
margin-left: 3px;
|
margin-left: 3px;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
.lossless-icon {
|
.lossless-icon {
|
||||||
background-image: url("http://localhost:9000/assets/lossless.svg");
|
background-image: url("./assets/lossless.svg") !important;
|
||||||
height: 9px;
|
|
||||||
width: 36px;
|
|
||||||
filter: contrast(0);
|
|
||||||
background-repeat: no-repeat;
|
|
||||||
margin-left: 3px;
|
|
||||||
background-size: contain;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.ppe-icon {
|
.ppe-icon {
|
||||||
background-image: url("./assets/ppe.svg");
|
background-image: url("./assets/ppe.svg") !important;
|
||||||
height: 12px;
|
}
|
||||||
width: 13px;
|
|
||||||
|
.audio-type {
|
||||||
filter: contrast(0);
|
filter: contrast(0);
|
||||||
background-repeat: no-repeat;
|
background-repeat: no-repeat;
|
||||||
background-size: contain;
|
background-size: contain;
|
||||||
|
height: 15px;
|
||||||
|
width: 15px;
|
||||||
|
position: absolute;
|
||||||
|
right: 0;
|
||||||
|
margin-bottom: 15px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -5940,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;
|
||||||
|
|
||||||
|
|
|
@ -50,17 +50,14 @@
|
||||||
<mediaitem-artwork :url="currentArtUrl"></mediaitem-artwork>
|
<mediaitem-artwork :url="currentArtUrl"></mediaitem-artwork>
|
||||||
</div>
|
</div>
|
||||||
<div class="playback-info">
|
<div class="playback-info">
|
||||||
<div class="song-name" style="-webkit-box-orient: horizontal;"
|
<div class="song-name"
|
||||||
:class="[isElementOverflowing('#app-main > div.app-chrome > div.app-chrome--center > div > div > div.playback-info > div.song-name') ? 'marquee' : '']"
|
:class="[isElementOverflowing('#app-main > div.app-chrome > div.app-chrome--center > div > div > div.playback-info > div.song-name') ? 'marquee' : '']">
|
||||||
:style="[mk.nowPlayingItem['attributes']['contentRating'] == 'explicit' || mk.nowPlayingItem['attributes']['lossless'] == true ? {'margin-left' : '23px'} : {'margin-left' : '0px'} ]">
|
|
||||||
{{ mk.nowPlayingItem["attributes"]["name"] }}
|
{{ mk.nowPlayingItem["attributes"]["name"] }}
|
||||||
<div class="explicit-icon"
|
<div class="explicit-icon"
|
||||||
v-if="mk.nowPlayingItem['attributes']['contentRating'] == 'explicit'"
|
v-if="mk.nowPlayingItem['attributes']['contentRating'] == 'explicit'"
|
||||||
style="display: inline-block"></div>
|
style="display: inline-block"></div>
|
||||||
<div class="ppe-icon"
|
|
||||||
v-if="app.cfg.advanced.ciderPPE == true"
|
|
||||||
style="display: inline-block"></div>
|
|
||||||
</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">
|
||||||
<div class="song-artist-album-content"
|
<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' : '']"
|
:class="[isElementOverflowing('#app-main > .app-chrome .app-chrome-item > .app-playback-controls > div >.song-artist-album > .song-artist-album-content') ? 'marquee' : '']"
|
||||||
|
@ -83,8 +80,8 @@
|
||||||
<div class="song-duration"
|
<div class="song-duration"
|
||||||
style="justify-content: space-between; height: 1px;"
|
style="justify-content: space-between; height: 1px;"
|
||||||
:style="[chrome.progresshover ? {'display': 'flex'} : {'display' : 'none'} ]">
|
:style="[chrome.progresshover ? {'display': 'flex'} : {'display' : 'none'} ]">
|
||||||
<p style="width: auto">{{ convertToMins(getSongProgress()) }}</p>
|
<p style="width: auto">{{ convertTime(getSongProgress()) }}</p>
|
||||||
<p style="width: auto">{{ convertToMins(mk.currentPlaybackDuration) }}
|
<p style="width: auto">{{ convertTime(mk.currentPlaybackDuration) }}
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -111,7 +108,7 @@
|
||||||
<div class="app-chrome-item volume display--large">
|
<div class="app-chrome-item volume display--large">
|
||||||
<button class="volume-button--small volume" @click="muteButtonPressed()"
|
<button class="volume-button--small volume" @click="muteButtonPressed()"
|
||||||
:class="{'active': this.cfg.audio.volume == 0}"></button>
|
:class="{'active': this.cfg.audio.volume == 0}"></button>
|
||||||
<input type="range" class="" @wheel="volumeWheel" step="0.01" min="0" :max="cfg.audio.maxVolume"
|
<input type="range" @wheel="volumeWheel" :step="cfg.audio.volumeStep" min="0" :max="cfg.audio.maxVolume"
|
||||||
v-model="mk.volume" v-if="typeof mk.volume != 'undefined'" @change="checkMuteChange()">
|
v-model="mk.volume" v-if="typeof mk.volume != 'undefined'" @change="checkMuteChange()">
|
||||||
</div>
|
</div>
|
||||||
<div class="app-chrome-item generic">
|
<div class="app-chrome-item generic">
|
||||||
|
|
|
@ -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()"
|
||||||
|
@ -80,7 +80,7 @@
|
||||||
<div class="app-chrome-item volume display--large">
|
<div class="app-chrome-item volume display--large">
|
||||||
<div class="input-container">
|
<div class="input-container">
|
||||||
<button class="volume-button--small volume" @click="app.muteButtonPressed()" :class="{'active': app.cfg.audio.volume == 0}"></button>
|
<button class="volume-button--small volume" @click="app.muteButtonPressed()" :class="{'active': app.cfg.audio.volume == 0}"></button>
|
||||||
<input type="range" class="slider" @wheel="app.volumeWheel" step="0.01" min="0" :max="$root.cfg.audio.maxVolume" v-model="app.mk.volume"
|
<input type="range" class="slider" @wheel="app.volumeWheel" :step="app.cfg.audio.volumeStep" min="0" :max="$root.cfg.audio.maxVolume" v-model="app.mk.volume"
|
||||||
v-if="typeof app.mk.volume != 'undefined'" @change="app.checkMuteChange()">
|
v-if="typeof app.mk.volume != 'undefined'" @change="app.checkMuteChange()">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -29,7 +29,7 @@
|
||||||
<div class="loadbar-sound"></div>
|
<div class="loadbar-sound"></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="artwork" v-if="showArtwork == true">
|
<div class="artwork" v-if="showArtwork == true && (showIndex == false ||(showIndex == true && showIndexPlaylist != false)) ">
|
||||||
<mediaitem-artwork
|
<mediaitem-artwork
|
||||||
:url="item.attributes.artwork ? item.attributes.artwork.url : ''"
|
:url="item.attributes.artwork ? item.attributes.artwork.url : ''"
|
||||||
:size="48"
|
:size="48"
|
||||||
|
@ -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 {
|
||||||
|
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)
|
||||||
}
|
}
|
||||||
}else {
|
|
||||||
self.app.copyToClipboard(self.item.attributes.url)}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
@ -430,18 +444,18 @@
|
||||||
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
|
||||||
|
@ -453,7 +467,7 @@
|
||||||
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) {
|
||||||
|
@ -505,7 +519,7 @@
|
||||||
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,13 +528,13 @@
|
||||||
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 {
|
try {
|
||||||
getPlaylist(id, isLibrary).then(res => {
|
getPlaylist(id, isLibrary).then(res => {
|
||||||
|
@ -541,7 +555,7 @@
|
||||||
// }
|
// }
|
||||||
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) {
|
||||||
|
@ -550,7 +564,7 @@
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
} catch (e) {}
|
} catch (e) { }
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -561,11 +575,12 @@
|
||||||
}
|
}
|
||||||
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)}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,11 +6,15 @@
|
||||||
<span id="mini-pin">📌</span>
|
<span id="mini-pin">📌</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="player-exit" title="Close" @click="app.miniPlayer(false)">
|
<div class="player-exit" title="Close" @click="app.miniPlayer(false)">
|
||||||
<svg fill="#323232e3" xmlns="http://www.w3.org/2000/svg" width="21" height="21" viewBox="0 0 21 21"
|
<svg fill="#323232e3" width="21" height="21" viewBox="0 0 21 21" aria-role="presentation" focusable="false" xmlns="http://www.w3.org/2000/svg">
|
||||||
aria-role="presentation" focusable="false">
|
<defs>
|
||||||
<path
|
<radialGradient gradientUnits="userSpaceOnUse" cx="10.5" cy="10.5" r="10.5" id="gradient-0">
|
||||||
d="M10.5 21C4.724 21 0 16.275 0 10.5S4.724 0 10.5 0 21 4.725 21 10.5 16.276 21 10.5 21zm-3.543-5.967a.96.96 0 00.693-.295l2.837-2.842 2.85 2.842c.167.167.41.295.693.295.552 0 1.001-.461 1.001-1.012 0-.281-.115-.512-.295-.704L11.899 10.5l2.85-2.855a.875.875 0 00.295-.68c0-.55-.45-.998-1.001-.998a.871.871 0 00-.668.295l-2.888 2.855-2.862-2.843a.891.891 0 00-.668-.281.99.99 0 00-1.001.986c0 .269.116.512.295.678L9.088 10.5l-2.837 2.843a.926.926 0 00-.295.678c0 .551.45 1.012 1.001 1.012z"
|
<stop offset="0" style="stop-color: rgba(168, 163, 163, 1)"/>
|
||||||
fill-rule="nonzero"/>
|
<stop offset="1" style="stop-color: rgba(118, 111, 111, 1)"/>
|
||||||
|
</radialGradient>
|
||||||
|
</defs>
|
||||||
|
<path d="M10.5 21C4.724 21 0 16.275 0 10.5S4.724 0 10.5 0 21 4.725 21 10.5 16.276 21 10.5 21zm-3.543-5.967a.96.96 0 00.693-.295l2.837-2.842 2.85 2.842c.167.167.41.295.693.295.552 0 1.001-.461 1.001-1.012 0-.281-.115-.512-.295-.704L11.899 10.5l2.85-2.855a.875.875 0 00.295-.68c0-.55-.45-.998-1.001-.998a.871.871 0 00-.668.295l-2.888 2.855-2.862-2.843a.891.891 0 00-.668-.281.99.99 0 00-1.001.986c0 .269.116.512.295.678L9.088 10.5l-2.837 2.843a.926.926 0 00-.295.678c0 .551.45 1.012 1.001 1.012z"
|
||||||
|
fill-rule="nonzero" style="stroke-miterlimit: 11; vector-effect: non-scaling-stroke; stroke-width: 31px; fill: url(#gradient-0);"/>
|
||||||
</svg>
|
</svg>
|
||||||
</div>
|
</div>
|
||||||
<div class="col artwork-col">
|
<div class="col artwork-col">
|
||||||
|
@ -44,8 +48,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()"
|
||||||
|
@ -83,7 +87,7 @@
|
||||||
<div class="app-chrome-item volume display--large">
|
<div class="app-chrome-item volume display--large">
|
||||||
<div class="input-container">
|
<div class="input-container">
|
||||||
<button class="volume-button--small volume" @click="app.muteButtonPressed()" :class="{'active': app.cfg.audio.volume == 0}"></button>
|
<button class="volume-button--small volume" @click="app.muteButtonPressed()" :class="{'active': app.cfg.audio.volume == 0}"></button>
|
||||||
<input type="range" class="slider" @wheel="app.volumeWheel" step="0.01" min="0" max="1" v-model="app.mk.volume"
|
<input type="range" class="slider" @wheel="app.volumeWheel" :step="app.cfg.audio.volumeStep" min="0" :max="app.cfg.audio.maxVolume" v-model="app.mk.volume"
|
||||||
v-if="typeof app.mk.volume != 'undefined'" @change="app.checkMuteChange()">
|
v-if="typeof app.mk.volume != 'undefined'" @change="app.checkMuteChange()">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -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
|
@ -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>
|
|
@ -87,6 +87,12 @@
|
||||||
role: app.getLz('term.developer'),
|
role: app.getLz('term.developer'),
|
||||||
avatar: 'https://avatars.githubusercontent.com/u/27716185?v=4'
|
avatar: 'https://avatars.githubusercontent.com/u/27716185?v=4'
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
name: 'Maikiwi',
|
||||||
|
link: 'https://github.com/maikirakiwi',
|
||||||
|
role: app.getLz('term.developer'),
|
||||||
|
avatar: 'https://avatars.githubusercontent.com/u/74925636?v=4'
|
||||||
|
},
|
||||||
{
|
{
|
||||||
name: 'Void',
|
name: 'Void',
|
||||||
link: 'https://twitter.com/MoonyVoid',
|
link: 'https://twitter.com/MoonyVoid',
|
||||||
|
|
|
@ -35,11 +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="9216">{{$root.getLz('settings.header.audio.quality.hireslossless')}}</option> -->
|
<!-- // <option value="">{{$root.getLz('settings.header.audio.quality.hireslossless')}}</option> -->
|
||||||
<!-- <option value="2304">{{$root.getLz('settings.header.audio.quality.lossless')}}</option> -->
|
<!-- <option value="">{{$root.getLz('settings.header.audio.quality.lossless')}}</option> -->
|
||||||
<option value="256">{{$root.getLz('settings.header.audio.quality.high')}}</option>
|
<option value="HIGH">{{$root.getLz('settings.header.audio.quality.high')}} ({{$root.getLz('settings.header.audio.quality.high.description')}})</option>
|
||||||
<option value="64">{{$root.getLz('settings.header.audio.quality.low')}}</option>
|
<option value="STANDARD">{{$root.getLz('settings.header.audio.quality.standard')}} ({{$root.getLz('settings.header.audio.quality.standard.description')}})</option>
|
||||||
<option value="auto">{{$root.getLz('settings.header.audio.quality.auto')}}</option>
|
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -69,7 +68,7 @@
|
||||||
<small>{{$root.getLz('settings.option.audio.enableAdvancedFunctionality.ciderPPE.description')}}</small>
|
<small>{{$root.getLz('settings.option.audio.enableAdvancedFunctionality.ciderPPE.description')}}</small>
|
||||||
</div>
|
</div>
|
||||||
<div class="md-option-segment md-option-segment_auto">
|
<div class="md-option-segment md-option-segment_auto">
|
||||||
<input type="checkbox" v-model="app.cfg.advanced.ciderPPE" switch/>
|
<input type="checkbox" v-model="app.cfg.advanced.ciderPPE" v-on:change="ciderPPE" switch/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="md-option-line" v-show="app.cfg.advanced.AudioContext && app.cfg.advanced.ciderPPE === true">
|
<div class="md-option-line" v-show="app.cfg.advanced.AudioContext && app.cfg.advanced.ciderPPE === true">
|
||||||
|
@ -79,10 +78,10 @@
|
||||||
<small>{{$root.getLz('settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.description')}}</small>
|
<small>{{$root.getLz('settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.description')}}</small>
|
||||||
</div>
|
</div>
|
||||||
<div class="md-option-segment md-option-segment_auto">
|
<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; ciderPPECompatibility">
|
<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')}}
|
{{$root.getLz('settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.standard')}}
|
||||||
</button>
|
</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; ciderPPECompatibility">
|
<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')}}
|
{{$root.getLz('settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.aggressive')}}
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
@ -656,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()">
|
||||||
|
@ -664,6 +663,22 @@
|
||||||
</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-line">
|
||||||
<div class="md-option-segment">
|
<div class="md-option-segment">
|
||||||
{{$root.getLz('settings.option.experimental.copy_log')}}
|
{{$root.getLz('settings.option.experimental.copy_log')}}
|
||||||
|
@ -805,17 +820,23 @@
|
||||||
CiderAudio.normalizerOff()
|
CiderAudio.normalizerOff()
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
ciderPPECompatibility: function () {
|
ciderPPE: function () {
|
||||||
|
if (app.cfg.advanced.ciderPPE) {
|
||||||
if (app.cfg.audio.spatial) {
|
if (app.cfg.audio.spatial) {
|
||||||
notyf.error("CAP is not compatible with Spatialization. Please disable Spatialization to continue.")
|
app.cfg.advanced.ciderPPE = false;
|
||||||
|
notyf.error(app.getLz('settings.warn.audio.enableAdvancedFunctionality.ciderPPE.compatibility'))
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
toggleSpatial: function () {
|
toggleSpatial: function () {
|
||||||
if (app.cfg.audio.spatial) {
|
if (app.cfg.audio.spatial) {
|
||||||
if (!app.cfg.audio.advanced.ciderPPE) {
|
if (!app.cfg.advanced.ciderPPE) {
|
||||||
CiderAudio.spatialOn()}
|
CiderAudio.spatialOn()
|
||||||
|
}
|
||||||
else {
|
else {
|
||||||
notyf.error("Spatialization is not compatible with CAP. Please disable CAP to continue.")
|
CiderAudio.spatialOff()
|
||||||
|
app.cfg.audio.spatial = false;
|
||||||
|
notyf.error(app.getLz('settings.warn.audio.enableAdvancedFunctionality.audioSpatialization.compatibility'))
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
CiderAudio.spatialOff()
|
CiderAudio.spatialOff()
|
||||||
|
@ -823,7 +844,8 @@
|
||||||
|
|
||||||
},
|
},
|
||||||
changeAudioQuality: function () {
|
changeAudioQuality: function () {
|
||||||
app.mk.bitrate = app.cfg.audio.quality
|
1
|
||||||
|
app.mk.bitrate = MusicKit.PlaybackBitrate[app.cfg.audio.quality];
|
||||||
},
|
},
|
||||||
toggleUserInfo: function () {
|
toggleUserInfo: function () {
|
||||||
app.chrome.hideUserInfo = !app.cfg.visual.showuserinfo
|
app.chrome.hideUserInfo = !app.cfg.visual.showuserinfo
|
||||||
|
|
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 7.1 KiB |
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 9.8 KiB |
Before Width: | Height: | Size: 43 KiB After Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 38 KiB After Width: | Height: | Size: 23 KiB |