Merge pull request #682 from ciderapp/develop
ok so basically fuck main.
|
@ -10,8 +10,12 @@ jobs:
|
||||||
working_directory: ~/Cider
|
working_directory: ~/Cider
|
||||||
docker:
|
docker:
|
||||||
- image: circleci/node:16
|
- image: circleci/node:16
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- checkout
|
- checkout
|
||||||
|
- run:
|
||||||
|
name: Set App Version
|
||||||
|
command: echo "export APP_VERSION=$(grep '"version":.*' package.json | cut -d '"' -f 4 | head -1)" >> $BASH_ENV
|
||||||
- run:
|
- run:
|
||||||
name: Update Package Managers
|
name: Update Package Managers
|
||||||
command: sudo npm update -g npm yarn
|
command: sudo npm update -g npm yarn
|
||||||
|
@ -31,26 +35,32 @@ jobs:
|
||||||
name: Install system build dependencies
|
name: Install system build dependencies
|
||||||
command: |
|
command: |
|
||||||
sudo apt-get update -y
|
sudo apt-get update -y
|
||||||
|
curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg | sudo dd of=/usr/share/keyrings/githubcli-archive-keyring.gpg
|
||||||
|
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | sudo tee /etc/apt/sources.list.d/github-cli.list > /dev/null
|
||||||
sudo apt-get install -y dpkg fakeroot wine64
|
sudo apt-get install -y dpkg fakeroot wine64
|
||||||
sudo dpkg --add-architecture i386
|
sudo dpkg --add-architecture i386
|
||||||
sudo apt-get update -y
|
sudo apt-get update -y
|
||||||
sudo apt-get install -y wine32
|
sudo apt-get install -y wine32
|
||||||
|
sudo apt install -y gh
|
||||||
- run:
|
- run:
|
||||||
name: Append Commit BuildID to Version
|
name: Fix Versioning and Add Channel
|
||||||
command: yarn circle:append-bid
|
command: yarn circle:script
|
||||||
|
- run:
|
||||||
|
name: TypeScript Compile
|
||||||
|
command: yarn build
|
||||||
- run:
|
- run:
|
||||||
name: Generate Builds (Linux)
|
name: Generate Builds (Linux)
|
||||||
command: yarn dist -l -p never
|
command: yarn electron-builder -l -p never
|
||||||
post-steps:
|
post-steps:
|
||||||
- jira/notify
|
- jira/notify
|
||||||
- run:
|
- run:
|
||||||
name: Generate Builds (Windows)
|
name: Generate Builds (Windows)
|
||||||
command: yarn dist -w --x64 -p never
|
command: yarn electron-builder -w --x64 -p never
|
||||||
post-steps:
|
post-steps:
|
||||||
- jira/notify
|
- jira/notify
|
||||||
- run:
|
- run:
|
||||||
name: Generate Builds (Winget)
|
name: Generate Builds (Winget)
|
||||||
command: yarn winget -p never
|
command: yarn electron-builder --win -c winget.json -p never
|
||||||
post-steps:
|
post-steps:
|
||||||
- jira/notify
|
- jira/notify
|
||||||
- run:
|
- run:
|
||||||
|
@ -65,4 +75,7 @@ jobs:
|
||||||
mv ~/Cider/dist/*.blockmap ~/Cider/dist/artifacts
|
mv ~/Cider/dist/*.blockmap ~/Cider/dist/artifacts
|
||||||
- store_artifacts:
|
- store_artifacts:
|
||||||
path: ~/Cider/dist/artifacts
|
path: ~/Cider/dist/artifacts
|
||||||
|
- run:
|
||||||
|
name: Publish Release
|
||||||
|
command: |
|
||||||
|
gh release create "v${APP_VERSION}.${CIRCLE_BUILD_NUM}" --title "Cider Version ${APP_VERSION} - Build ${CIRCLE_BUILD_NUM} (${CIRCLE_BRANCH})" --generate-notes -R ciderapp/cider-releases ~/Cider/dist/artifacts/*.deb ~/Cider/dist/artifacts/*.AppImage ~/Cider/dist/artifacts/*.snap ~/Cider/dist/artifacts/*.exe ~/Cider/dist/artifacts/*.yml ~/Cider/dist/artifacts/*.blockmap
|
||||||
|
|
2
.github/ISSUE_TEMPLATE/feature_request.yaml
vendored
|
@ -1,6 +1,6 @@
|
||||||
name: Feature Request
|
name: Feature Request
|
||||||
description: Suggest an idea to improve Cider.
|
description: Suggest an idea to improve Cider.
|
||||||
title: "[Enhancement]: "
|
title: "[Feature Request]: "
|
||||||
labels: ["enhancement", "triage"]
|
labels: ["enhancement", "triage"]
|
||||||
assignees: []
|
assignees: []
|
||||||
body:
|
body:
|
||||||
|
|
3
.gitignore
vendored
|
@ -146,6 +146,9 @@ dist
|
||||||
!.yarn/sdks
|
!.yarn/sdks
|
||||||
!.yarn/versions
|
!.yarn/versions
|
||||||
|
|
||||||
|
# pnpm
|
||||||
|
pnpm-lock.yaml
|
||||||
|
|
||||||
## JetBrains GitIgnore ##
|
## JetBrains GitIgnore ##
|
||||||
|
|
||||||
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm and Rider
|
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm and Rider
|
||||||
|
|
BIN
Assets/AppChromeBtn.afdesign
Normal file
|
@ -28,6 +28,8 @@
|
||||||
|
|
||||||
[](https://winstall.app/apps/CiderCollective.Cider.Nightly)
|
[](https://winstall.app/apps/CiderCollective.Cider.Nightly)
|
||||||
|
|
||||||
|
[](https://flathub.org/apps/details/sh.cider.Cider)
|
||||||
|
|
||||||
<!--
|
<!--
|
||||||
|
|
||||||
[](https://winstall.app/apps/cryptofyre.AppleMusicElectron)
|
[](https://winstall.app/apps/cryptofyre.AppleMusicElectron)
|
||||||
|
@ -56,4 +58,3 @@ for any legal concerns contact me at <a href="mailto:cryptofyre@cryptofyre.org">
|
||||||
<img href="https://www.jetbrains.com/" width="120px" height="125px" src="https://logonoid.com/images/jetbrains-logo.png" alt="JetBrains">
|
<img href="https://www.jetbrains.com/" width="120px" height="125px" src="https://logonoid.com/images/jetbrains-logo.png" alt="JetBrains">
|
||||||
<img href="https://www.macstadium.com/" width="300px" src="https://user-images.githubusercontent.com/33162551/124784795-df5d4c80-df0b-11eb-99a7-dc2b1cfb81bd.png" alt="MacStadium">
|
<img href="https://www.macstadium.com/" width="300px" src="https://user-images.githubusercontent.com/33162551/124784795-df5d4c80-df0b-11eb-99a7-dc2b1cfb81bd.png" alt="MacStadium">
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|
BIN
appx/Square44x44Logo.targetsize-44_altform-unplated.PNG
Normal file
After Width: | Height: | Size: 2.2 KiB |
|
@ -1212,9 +1212,9 @@
|
||||||
tslib "^1.9.3"
|
tslib "^1.9.3"
|
||||||
|
|
||||||
"@sentry/electron@^3.0.2":
|
"@sentry/electron@^3.0.2":
|
||||||
version "3.0.3"
|
version "3.0.4"
|
||||||
resolved "https://registry.yarnpkg.com/@sentry/electron/-/electron-3.0.3.tgz#cfb8ba582753a9b34beb4f775cc48fd0a82096df"
|
resolved "https://registry.yarnpkg.com/@sentry/electron/-/electron-3.0.4.tgz#ce69bab9b2f6a7b92183e9fff138a0f79c5c76e3"
|
||||||
integrity sha512-uDSFfl3eL29Dq8jYIJmWFWRHMQCSNk6pjL6gUmJiPhEhpu72hokZyezUJsJrSyipraqLgmSimY71u0ayARYqwg==
|
integrity sha512-IsvhxtHeBLNoRMMfsOHrWghNoJZodJ2lC95Qm22Nsk/qm3W11YMxa38u/l1aKU2f3gmu3Gbti4sT+3eNXD/bKg==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@sentry/browser" "6.17.2"
|
"@sentry/browser" "6.17.2"
|
||||||
"@sentry/core" "6.17.2"
|
"@sentry/core" "6.17.2"
|
||||||
|
@ -1234,12 +1234,12 @@
|
||||||
tslib "^1.9.3"
|
tslib "^1.9.3"
|
||||||
|
|
||||||
"@sentry/integrations@^6.18.1":
|
"@sentry/integrations@^6.18.1":
|
||||||
version "6.18.1"
|
version "6.18.2"
|
||||||
resolved "https://registry.yarnpkg.com/@sentry/integrations/-/integrations-6.18.1.tgz#c815eb9d104739805401b69d5559adec14876e33"
|
resolved "https://registry.yarnpkg.com/@sentry/integrations/-/integrations-6.18.2.tgz#caed0092e8a6c9fb0b8b7efd2deef946ca76e626"
|
||||||
integrity sha512-Xzg9C0qPpauZGab2OLKnJjCwn/Lx7WsZK87Q53KaYcscdvXNV0LriNzNKcBIRH+Q+GEsaF3mjyGDLmuDABB59A==
|
integrity sha512-jzEH15m1dewzma2Fp0ENNRUDEOI3gGPfC/+lsLAuj9AMoNZ6qykQP8cB8OPTlzIZc0oyWGAE/1LoTrndPAvoPA==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@sentry/types" "6.18.1"
|
"@sentry/types" "6.18.2"
|
||||||
"@sentry/utils" "6.18.1"
|
"@sentry/utils" "6.18.2"
|
||||||
localforage "^1.8.1"
|
localforage "^1.8.1"
|
||||||
tslib "^1.9.3"
|
tslib "^1.9.3"
|
||||||
|
|
||||||
|
@ -1283,10 +1283,10 @@
|
||||||
resolved "https://registry.yarnpkg.com/@sentry/types/-/types-6.17.2.tgz#4dde3423db5953e798b19ed29618c28fc7bf2e30"
|
resolved "https://registry.yarnpkg.com/@sentry/types/-/types-6.17.2.tgz#4dde3423db5953e798b19ed29618c28fc7bf2e30"
|
||||||
integrity sha512-UrFLRDz5mn253O8k/XftLxoldF+NyZdkqKLGIQmST5HEVr7ub9nQJ4Y5ZFA3zJYWpraaW8faIbuw+pgetC8hmQ==
|
integrity sha512-UrFLRDz5mn253O8k/XftLxoldF+NyZdkqKLGIQmST5HEVr7ub9nQJ4Y5ZFA3zJYWpraaW8faIbuw+pgetC8hmQ==
|
||||||
|
|
||||||
"@sentry/types@6.18.1":
|
"@sentry/types@6.18.2":
|
||||||
version "6.18.1"
|
version "6.18.2"
|
||||||
resolved "https://registry.yarnpkg.com/@sentry/types/-/types-6.18.1.tgz#e2de38dd0da8096a5d22f8effc6756c919266ede"
|
resolved "https://registry.yarnpkg.com/@sentry/types/-/types-6.18.2.tgz#f528fec8b75c19d5a6976004e71703184c6cf7be"
|
||||||
integrity sha512-wp741NoBKnXE/4T9L723sWJ8EcNMxeTIT1smgNJOfbPwrsDICoYmGEt6JFa05XHpWBGI66WuNvnDjoHVeh6zhA==
|
integrity sha512-WzpJf/Q5aORTzrSwer/As1NlO90dBAQpaHV2ikDDKqOyMWEgjKb5/4gh59p9gH8JMMnLetP1AvQel0fOj5UnUw==
|
||||||
|
|
||||||
"@sentry/utils@6.17.2":
|
"@sentry/utils@6.17.2":
|
||||||
version "6.17.2"
|
version "6.17.2"
|
||||||
|
@ -1296,12 +1296,12 @@
|
||||||
"@sentry/types" "6.17.2"
|
"@sentry/types" "6.17.2"
|
||||||
tslib "^1.9.3"
|
tslib "^1.9.3"
|
||||||
|
|
||||||
"@sentry/utils@6.18.1":
|
"@sentry/utils@6.18.2":
|
||||||
version "6.18.1"
|
version "6.18.2"
|
||||||
resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-6.18.1.tgz#1aa819502b042540612f4db7bcb86c7b176f5a6b"
|
resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-6.18.2.tgz#c572a3ff49113e7dc4c97db1a18d117f199b9fff"
|
||||||
integrity sha512-IFZmuvA+c5lDGlZEri13JSyUP0BHelzY0S4dcKxAzskPW+BtBdQDgYGV90iED1y+IRMLawWb34GF7HyJSouN1Q==
|
integrity sha512-EC619jesknyu4xpwud5WC/5odYLz6JUy7OSFy5405PpdGeh/m8XUvuJAx4zDx0Iz/Mlk0S1Md+ZcQwqkv39dkw==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@sentry/types" "6.18.1"
|
"@sentry/types" "6.18.2"
|
||||||
tslib "^1.9.3"
|
tslib "^1.9.3"
|
||||||
|
|
||||||
"@sindresorhus/is@^0.14.0":
|
"@sindresorhus/is@^0.14.0":
|
||||||
|
@ -1610,9 +1610,9 @@
|
||||||
"@types/node" "*"
|
"@types/node" "*"
|
||||||
|
|
||||||
"@types/yargs-parser@*":
|
"@types/yargs-parser@*":
|
||||||
version "20.2.1"
|
version "21.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-20.2.1.tgz#3b9ce2489919d9e4fea439b76916abc34b2df129"
|
resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-21.0.0.tgz#0c60e537fa790f5f9472ed2776c2b71ec117351b"
|
||||||
integrity sha512-7tFImggNeNBVMsn0vLrpn1H1uPrUBdnARPTpZoitY37ZrdJREzf7I16tMrlK3hen349gr1NYh8CmZQa7CTG6Aw==
|
integrity sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==
|
||||||
|
|
||||||
"@types/yargs@^16.0.0":
|
"@types/yargs@^16.0.0":
|
||||||
version "16.0.4"
|
version "16.0.4"
|
||||||
|
@ -1622,9 +1622,9 @@
|
||||||
"@types/yargs-parser" "*"
|
"@types/yargs-parser" "*"
|
||||||
|
|
||||||
"@types/yargs@^17.0.1":
|
"@types/yargs@^17.0.1":
|
||||||
version "17.0.8"
|
version "17.0.9"
|
||||||
resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.8.tgz#d23a3476fd3da8a0ea44b5494ca7fa677b9dad4c"
|
resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.9.tgz#f1f931a4e5ae2c0134dea10f501088636a50b46a"
|
||||||
integrity sha512-wDeUwiUmem9FzsyysEwRukaEdDNcwbROvQ9QGRKaLI6t+IltNzbn4/i4asmB10auvZGQCzSQ6t0GSczEThlUXw==
|
integrity sha512-Ci8+4/DOtkHRylcisKmVMtmVO5g7weUVCKcsu1sJvF1bn0wExTmbHmhFKj7AnEm0de800iovGhdSKzYnzbaHpg==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@types/yargs-parser" "*"
|
"@types/yargs-parser" "*"
|
||||||
|
|
||||||
|
@ -2317,12 +2317,12 @@ braces@^3.0.1, braces@~3.0.2:
|
||||||
fill-range "^7.0.1"
|
fill-range "^7.0.1"
|
||||||
|
|
||||||
browserslist@^4.14.5, browserslist@^4.17.5, browserslist@^4.19.1:
|
browserslist@^4.14.5, browserslist@^4.17.5, browserslist@^4.19.1:
|
||||||
version "4.19.3"
|
version "4.20.0"
|
||||||
resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.19.3.tgz#29b7caad327ecf2859485f696f9604214bedd383"
|
resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.20.0.tgz#35951e3541078c125d36df76056e94738a52ebe9"
|
||||||
integrity sha512-XK3X4xtKJ+Txj8G5c30B4gsm71s69lqXlkYui4s6EkKxuv49qjYlY6oVd+IFJ73d4YymtM3+djvvt/R/iJwwDg==
|
integrity sha512-bnpOoa+DownbciXj0jVGENf8VYQnE2LNWomhYuCsMmmx9Jd9lwq0WXODuwpSsp8AVdKM2/HorrzxAfbKvWTByQ==
|
||||||
dependencies:
|
dependencies:
|
||||||
caniuse-lite "^1.0.30001312"
|
caniuse-lite "^1.0.30001313"
|
||||||
electron-to-chromium "^1.4.71"
|
electron-to-chromium "^1.4.76"
|
||||||
escalade "^3.1.1"
|
escalade "^3.1.1"
|
||||||
node-releases "^2.0.2"
|
node-releases "^2.0.2"
|
||||||
picocolors "^1.0.0"
|
picocolors "^1.0.0"
|
||||||
|
@ -2534,10 +2534,10 @@ camelcase@^6.2.0:
|
||||||
resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a"
|
resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a"
|
||||||
integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==
|
integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==
|
||||||
|
|
||||||
caniuse-lite@^1.0.30001312:
|
caniuse-lite@^1.0.30001313:
|
||||||
version "1.0.30001312"
|
version "1.0.30001314"
|
||||||
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001312.tgz#e11eba4b87e24d22697dae05455d5aea28550d5f"
|
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001314.tgz#65c7f9fb7e4594fca0a333bec1d8939662377596"
|
||||||
integrity sha512-Wiz1Psk2MEK0pX3rUzWaunLTZzqS2JYZFzNKqAiJGiuxIjRPLgV6+VDPOg6lQOUxmDwhTlh198JsTTi8Hzw6aQ==
|
integrity sha512-0zaSO+TnCHtHJIbpLroX7nsD+vYuOVjl3uzFbJO1wMVbuveJA0RK2WcQA9ZUIOiO0/ArMiMgHJLxfEZhQiC0kw==
|
||||||
|
|
||||||
castv2-client@^1.2.0:
|
castv2-client@^1.2.0:
|
||||||
version "1.2.0"
|
version "1.2.0"
|
||||||
|
@ -3505,10 +3505,10 @@ electron-store@^8.0.1:
|
||||||
conf "^10.0.3"
|
conf "^10.0.3"
|
||||||
type-fest "^1.0.2"
|
type-fest "^1.0.2"
|
||||||
|
|
||||||
electron-to-chromium@^1.4.71:
|
electron-to-chromium@^1.4.76:
|
||||||
version "1.4.75"
|
version "1.4.80"
|
||||||
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.75.tgz#d1ad9bb46f2f1bf432118c2be21d27ffeae82fdd"
|
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.80.tgz#299a1ea3e32810934b4e3c2e4d4cb53136fdab3f"
|
||||||
integrity sha512-LxgUNeu3BVU7sXaKjUDD9xivocQLxFtq6wgERrutdY/yIOps3ODOZExK1jg8DTEg4U8TUCb5MLGeWFOYuxjF3Q==
|
integrity sha512-COsbJCGVYCc/aAY4cd94x1Js3q0r406YKGbdL8LXHg0O9dEjuFEFU/vZneRxBxKo/f1lLHi0YyAR7sbFM+i8Bg==
|
||||||
|
|
||||||
electron-updater@^4.6.5:
|
electron-updater@^4.6.5:
|
||||||
version "4.6.5"
|
version "4.6.5"
|
||||||
|
@ -3635,9 +3635,9 @@ enhanced-resolve@^4.1.1:
|
||||||
tapable "^1.0.0"
|
tapable "^1.0.0"
|
||||||
|
|
||||||
enhanced-resolve@^5.8.3:
|
enhanced-resolve@^5.8.3:
|
||||||
version "5.9.1"
|
version "5.9.2"
|
||||||
resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.9.1.tgz#e898cea44d9199fd92137496cff5691b910fb43e"
|
resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.9.2.tgz#0224dcd6a43389ebfb2d55efee517e5466772dd9"
|
||||||
integrity sha512-jdyZMwCQ5Oj4c5+BTnkxPgDZO/BJzh/ADDmKebayyzNwjVX1AFCeGkOfxNx0mHi2+8BKC5VxUYiw3TIvoT7vhw==
|
integrity sha512-GIm3fQfwLJ8YZx2smuHpBKkXC1yOk+OBEmKckVyL0i/ea8mqDEykK3ld5dgH1QYPNyT/lIllxV2LULnxCHaHkA==
|
||||||
dependencies:
|
dependencies:
|
||||||
graceful-fs "^4.2.4"
|
graceful-fs "^4.2.4"
|
||||||
tapable "^2.2.0"
|
tapable "^2.2.0"
|
||||||
|
@ -4217,11 +4217,10 @@ function-bind@^1.1.1:
|
||||||
integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==
|
integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==
|
||||||
|
|
||||||
gauge@^4.0.0:
|
gauge@^4.0.0:
|
||||||
version "4.0.2"
|
version "4.0.3"
|
||||||
resolved "https://registry.yarnpkg.com/gauge/-/gauge-4.0.2.tgz#c3777652f542b6ef62797246e8c7caddecb32cc7"
|
resolved "https://registry.yarnpkg.com/gauge/-/gauge-4.0.3.tgz#286cf105c1962c659f0963058fb05116c1b82d3f"
|
||||||
integrity sha512-aSPRm2CvA9R8QyU5eXMFPd+cYkyxLsXHd2l5/FOH2V/eml//M04G6KZOmTap07O1PvEwNcl2NndyLfK8g3QrKA==
|
integrity sha512-ICw1DhAwMtb22rYFwEHgJcx1JCwJGv3x6G0OQUq56Nge+H4Q8JEwr8iveS0XFlsUNSI67F5ffMGK25bK4Pmskw==
|
||||||
dependencies:
|
dependencies:
|
||||||
ansi-regex "^5.0.1"
|
|
||||||
aproba "^1.0.3 || ^2.0.0"
|
aproba "^1.0.3 || ^2.0.0"
|
||||||
color-support "^1.1.3"
|
color-support "^1.1.3"
|
||||||
console-control-strings "^1.1.0"
|
console-control-strings "^1.1.0"
|
||||||
|
@ -4655,9 +4654,9 @@ http-errors@~1.6.2:
|
||||||
statuses ">= 1.4.0 < 2"
|
statuses ">= 1.4.0 < 2"
|
||||||
|
|
||||||
http-parser-js@>=0.5.1:
|
http-parser-js@>=0.5.1:
|
||||||
version "0.5.5"
|
version "0.5.6"
|
||||||
resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.5.tgz#d7c30d5d3c90d865b4a2e870181f9d6f22ac7ac5"
|
resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.6.tgz#2e02406ab2df8af8a7abfba62e0da01c62b95afd"
|
||||||
integrity sha512-x+JVEkO2PoM8qqpbPbOL3cqHPwerep7OwzK7Ay+sMQjKzaKCqWvjoXm5tqMP9tXWWTnTzAjIhXg+J99XYuPhPA==
|
integrity sha512-vDlkRPDJn93swjcjqMSaGSPABbIarsr1TLAui/gLDXzV5VsJNdXNzMYDyNBLQkjWQCJ1uizu8T2oDMhmGt0PRA==
|
||||||
|
|
||||||
http-proxy-agent@^4.0.1:
|
http-proxy-agent@^4.0.1:
|
||||||
version "4.0.1"
|
version "4.0.1"
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
let i = 1, k = 1;
|
let i = 1, k = 1;
|
||||||
export default class ExamplePlugin {
|
class ExamplePlugin {
|
||||||
/**
|
/**
|
||||||
* Private variables for interaction in plugins
|
* Private variables for interaction in plugins
|
||||||
*/
|
*/
|
||||||
|
@ -41,7 +41,7 @@ export default class ExamplePlugin {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Runs on playback State Change
|
* Runs on playback State Change
|
||||||
* @param attributes Music Attributes (attributes.state = current state)
|
* @param attributes Music Attributes (attributes.status = current state)
|
||||||
*/
|
*/
|
||||||
onPlaybackStateDidChange(attributes: object): void {
|
onPlaybackStateDidChange(attributes: object): void {
|
||||||
console.log('onPlaybackStateDidChange has been called ' + i + ' times');
|
console.log('onPlaybackStateDidChange has been called ' + i + ' times');
|
||||||
|
@ -58,3 +58,5 @@ export default class ExamplePlugin {
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
module.exports = ExamplePlugin;
|
|
@ -1,4 +1,4 @@
|
||||||
export default class sendSongToTitlebar {
|
class sendSongToTitlebar {
|
||||||
/**
|
/**
|
||||||
* Base Plugin Details (Eventually implemented into a GUI in settings)
|
* Base Plugin Details (Eventually implemented into a GUI in settings)
|
||||||
*/
|
*/
|
||||||
|
@ -24,7 +24,7 @@ export default class sendSongToTitlebar {
|
||||||
onBeforeQuit(): void {}
|
onBeforeQuit(): void {}
|
||||||
/**
|
/**
|
||||||
* Runs on playback State Change
|
* Runs on playback State Change
|
||||||
* @param attributes Music Attributes (attributes.state = current state)
|
* @param attributes Music Attributes (attributes.status = current state)
|
||||||
*/
|
*/
|
||||||
onPlaybackStateDidChange(attributes: any): void {
|
onPlaybackStateDidChange(attributes: any): void {
|
||||||
this._win.setTitle(`${(attributes != null && attributes.name != null && attributes.name.length > 0) ? (attributes.name + " - ") : ''}Cider`)
|
this._win.setTitle(`${(attributes != null && attributes.name != null && attributes.name.length > 0) ? (attributes.name + " - ") : ''}Cider`)
|
||||||
|
@ -35,3 +35,5 @@ export default class sendSongToTitlebar {
|
||||||
*/
|
*/
|
||||||
onNowPlayingItemDidChange(attributes: object): void {}
|
onNowPlayingItemDidChange(attributes: object): void {}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
module.exports = sendSongToTitlebar;
|
20
package.json
|
@ -2,12 +2,12 @@
|
||||||
"name": "cider",
|
"name": "cider",
|
||||||
"applicationId": "Cider",
|
"applicationId": "Cider",
|
||||||
"productName": "Cider",
|
"productName": "Cider",
|
||||||
"version": "1.3.0",
|
"version": "1.4.0",
|
||||||
"description": "A new look into listening and enjoying music in style and performance.",
|
"description": "A new look into listening and enjoying music in style and performance.",
|
||||||
"license": "AGPL-3.0",
|
"license": "AGPL-3.0",
|
||||||
"main": "./build/index.js",
|
"main": "./build/index.js",
|
||||||
"author": "Cider Collective <cryptofyre@cider.sh> (https://cider.sh)",
|
"author": "Cider Collective <cryptofyre@cider.sh> (https://cider.sh)",
|
||||||
"repository": "https://github.com/ciderapp/Cider.git",
|
"repository": "github:ciderapp/Cider",
|
||||||
"bugs": {
|
"bugs": {
|
||||||
"url": "https://github.com/ciderapp/Cider/issues?q=is%3Aopen+is%3Aissue+label%3Abug"
|
"url": "https://github.com/ciderapp/Cider/issues?q=is%3Aopen+is%3Aissue+label%3Abug"
|
||||||
},
|
},
|
||||||
|
@ -16,7 +16,6 @@
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"build": "tsc",
|
"build": "tsc",
|
||||||
"watch": "tsc --watch",
|
"watch": "tsc --watch",
|
||||||
"test": "yarn build && playwright test",
|
|
||||||
"start": "run-script-os",
|
"start": "run-script-os",
|
||||||
"start:win32": "yarn build && set 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:win32": "yarn build && set 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:linux": "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:linux": "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",
|
||||||
|
@ -33,13 +32,12 @@
|
||||||
"winget": "yarn build && electron-builder --win -c winget.json",
|
"winget": "yarn build && electron-builder --win -c winget.json",
|
||||||
"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"
|
"circle:script": "node resources/circle"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@sentry/electron": "^3.0.2",
|
"@sentry/electron": "^3.0.2",
|
||||||
"@sentry/integrations": "^6.18.1",
|
"@sentry/integrations": "^6.18.1",
|
||||||
"adm-zip": "0.4.10",
|
"adm-zip": "0.4.10",
|
||||||
|
|
||||||
"castv2-client": "^1.2.0",
|
"castv2-client": "^1.2.0",
|
||||||
"chokidar": "^3.5.3",
|
"chokidar": "^3.5.3",
|
||||||
"discord-rpc": "^4.0.1",
|
"discord-rpc": "^4.0.1",
|
||||||
|
@ -49,7 +47,6 @@
|
||||||
"electron-notarize": "^1.1.1",
|
"electron-notarize": "^1.1.1",
|
||||||
"electron-store": "^8.0.1",
|
"electron-store": "^8.0.1",
|
||||||
"electron-updater": "^4.6.5",
|
"electron-updater": "^4.6.5",
|
||||||
|
|
||||||
"electron-window-state": "^5.0.3",
|
"electron-window-state": "^5.0.3",
|
||||||
"express": "^4.17.3",
|
"express": "^4.17.3",
|
||||||
"get-port": "^5.1.1",
|
"get-port": "^5.1.1",
|
||||||
|
@ -65,15 +62,14 @@
|
||||||
"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",
|
||||||
"typescript": "^4.5.5",
|
|
||||||
"v8-compile-cache": "^2.3.0",
|
"v8-compile-cache": "^2.3.0",
|
||||||
|
"wallpaper": "5.0.1",
|
||||||
"ws": "^8.5.0",
|
"ws": "^8.5.0",
|
||||||
"xml2js": "^0.4.23",
|
"xml2js": "^0.4.23",
|
||||||
"youtube-search-without-api-key": "^1.0.7"
|
"youtube-search-without-api-key": "^1.0.7"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@playwright/test": "^1.19.2",
|
"@types/discord-rpc": "4.0.0",
|
||||||
"@types/discord-rpc": "^4.0.0",
|
|
||||||
"@types/express": "^4.17.13",
|
"@types/express": "^4.17.13",
|
||||||
"@types/qrcode-terminal": "^0.12.0",
|
"@types/qrcode-terminal": "^0.12.0",
|
||||||
"@types/ws": "^8.5.1",
|
"@types/ws": "^8.5.1",
|
||||||
|
@ -82,7 +78,7 @@
|
||||||
"electron-builder-notarize-pkg": "^1.2.0",
|
"electron-builder-notarize-pkg": "^1.2.0",
|
||||||
"electron-webpack": "^2.8.2",
|
"electron-webpack": "^2.8.2",
|
||||||
"musickit-typescript": "^1.2.4",
|
"musickit-typescript": "^1.2.4",
|
||||||
"playwright": "^1.19.2",
|
"typescript": "^4.6.2",
|
||||||
"vue-devtools": "^5.1.4",
|
"vue-devtools": "^5.1.4",
|
||||||
"webpack": "~5.69.1"
|
"webpack": "~5.69.1"
|
||||||
},
|
},
|
||||||
|
@ -109,9 +105,9 @@
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"build": {
|
"build": {
|
||||||
"electronVersion": "16.0.10+wvcus",
|
"electronVersion": "16.0.7",
|
||||||
"electronDownload": {
|
"electronDownload": {
|
||||||
"version": "16.0.10+wvcus",
|
"version": "16.0.7+wvcus",
|
||||||
"mirror": "https://github.com/castlabs/electron-releases/releases/download/v"
|
"mirror": "https://github.com/castlabs/electron-releases/releases/download/v"
|
||||||
},
|
},
|
||||||
"appId": "cider",
|
"appId": "cider",
|
||||||
|
|
|
@ -1,21 +0,0 @@
|
||||||
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");
|
|
||||||
});
|
|
53
resources/circle.js
Normal file
|
@ -0,0 +1,53 @@
|
||||||
|
|
||||||
|
|
||||||
|
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);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
let channel;
|
||||||
|
if (process.env['CIRCLE_BRANCH'] === 'lts') {
|
||||||
|
channel = 'latest'
|
||||||
|
} else if (process.env['CIRCLE_BRANCH'] === 'main') {
|
||||||
|
channel = 'beta'
|
||||||
|
} else if (process.env['CIRCLE_BRANCH'] === 'develop') {
|
||||||
|
channel = 'alpha'
|
||||||
|
} else {
|
||||||
|
channel = process.env['CIRCLE_BRANCH'] // It won't have auto update support
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// https://circleci.com/docs/2.0/env-vars/#built-in-environment-variables
|
||||||
|
var pvers = package.version.split('.')
|
||||||
|
package.version = `${pvers[0]}.${pvers[1]}.${pvers[2]}-${channel}.${process.env['CIRCLE_BUILD_NUM']}`
|
||||||
|
// package.build.channel = channel
|
||||||
|
package.publish = {
|
||||||
|
"provider": "github",
|
||||||
|
"repo": "cider-releases",
|
||||||
|
"owner": "ciderapp",
|
||||||
|
"vPrefixedTagName": true,
|
||||||
|
"tag": `v${package.version}`,
|
||||||
|
"channel": channel,
|
||||||
|
"releaseType": "release"
|
||||||
|
}
|
||||||
|
|
||||||
|
let {exec} = require('child_process')
|
||||||
|
exec('echo $APP_VERSION', {env: {'APP_VERSION': package.version}}, function (error, stdout, stderr)
|
||||||
|
{
|
||||||
|
console.log(stdout, stderr, error);
|
||||||
|
});
|
||||||
|
fs.writeFile('package.json', JSON.stringify(package), err => {
|
||||||
|
// error checking
|
||||||
|
if(err) throw err;
|
||||||
|
console.log(`VERSION CHANGED TO ${package.version}`);
|
||||||
|
});
|
||||||
|
|
Before Width: | Height: | Size: 2.3 KiB |
Before Width: | Height: | Size: 1.2 KiB |
Before Width: | Height: | Size: 2.5 KiB |
Before Width: | Height: | Size: 2.1 KiB |
Before Width: | Height: | Size: 2.2 KiB |
Before Width: | Height: | Size: 2.4 KiB |
Before Width: | Height: | Size: 1.2 KiB |
Before Width: | Height: | Size: 1.2 KiB |
Before Width: | Height: | Size: 2.4 KiB |
Before Width: | Height: | Size: 2.5 KiB |
Before Width: | Height: | Size: 2.1 KiB |
Before Width: | Height: | Size: 2.3 KiB |
Before Width: | Height: | Size: 3.9 KiB After Width: | Height: | Size: 3.9 KiB |
Before Width: | Height: | Size: 2.7 KiB After Width: | Height: | Size: 2.7 KiB |
Before Width: | Height: | Size: 4.2 KiB After Width: | Height: | Size: 4.2 KiB |
Before Width: | Height: | Size: 3.8 KiB After Width: | Height: | Size: 3.8 KiB |
Before Width: | Height: | Size: 3.5 KiB After Width: | Height: | Size: 3.5 KiB |
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 2.4 KiB |
Before Width: | Height: | Size: 3.9 KiB After Width: | Height: | Size: 3.9 KiB |
Before Width: | Height: | Size: 3.3 KiB After Width: | Height: | Size: 3.3 KiB |
|
@ -188,3 +188,15 @@ Update 28/02/2022 13:00 UTC
|
||||||
|
|
||||||
* `term.time.days`: Added for `en_US`
|
* `term.time.days`: Added for `en_US`
|
||||||
* `term.time.day`: Added for `en_US`
|
* `term.time.day`: Added for `en_US`
|
||||||
|
|
||||||
|
Update 10/3/2022 14:00 UTC
|
||||||
|
* `settings.header.window`: Added for `en_US`
|
||||||
|
* `settings.header.window.description`: Added for `en_US`
|
||||||
|
* `settings.option.window.openOnStartup`: Added for `en_US`
|
||||||
|
* `settings.option.window.openOnStartup.hidden`: Added for `en_US`
|
||||||
|
|
||||||
|
Update 20/3/2022 00:01 UTC
|
||||||
|
* `term.creditDesignedBy`: Added for `en_US`
|
||||||
|
|
||||||
|
Update 29/3/2022 04:00 UTC
|
||||||
|
* `settings.option.audio.enableAdvancedFunctionality.ciderPPE.description`: Changed for `en_US` (Deleted for all language files)
|
|
@ -225,7 +225,7 @@
|
||||||
"settings.option.audio.enableAdvancedFunctionality": "Povolit pokročilé funkce",
|
"settings.option.audio.enableAdvancedFunctionality": "Povolit pokročilé funkce",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.description": "Povolení funkce AudioContext umožní rozšířené zvukové funkce, jako je normalizace zvuku, ekvalizéry a vizualizéry, ale na některých systémech to může způsobit zadrhávání ve zvukových stopách.",
|
"settings.option.audio.enableAdvancedFunctionality.description": "Povolení funkce AudioContext umožní rozšířené zvukové funkce, jako je normalizace zvuku, ekvalizéry a vizualizéry, ale na některých systémech to může způsobit zadrhávání ve zvukových stopách.",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.ciderPPE": "Cider Adrenaline Processor™️",
|
"settings.option.audio.enableAdvancedFunctionality.ciderPPE": "Cider Adrenaline Processor™️",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.ciderPPE.description": "Psychoakustická vylepšení, díky nimž vše zní bohatěji a živěji | Navrhl Maikiwi.",
|
|
||||||
"settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength": "Síla CAP",
|
"settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength": "Síla CAP",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.description": "Změní sílu zpracování zvuku. (Agresivita může vést k nežádoucím výsledkům)",
|
"settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.description": "Změní sílu zpracování zvuku. (Agresivita může vést k nežádoucím výsledkům)",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.standard": "Standard",
|
"settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.standard": "Standard",
|
||||||
|
@ -280,7 +280,7 @@
|
||||||
"settings.header.experimental": "Experimentální",
|
"settings.header.experimental": "Experimentální",
|
||||||
"settings.header.experimental.description": "Upravte experimentální nastavení pro Cider.",
|
"settings.header.experimental.description": "Upravte experimentální nastavení pro Cider.",
|
||||||
"settings.option.experimental.compactUI": "Kompaktní uživatelské rozhraní",
|
"settings.option.experimental.compactUI": "Kompaktní uživatelské rozhraní",
|
||||||
"settings.option.experimental.close_button_hide": "Tlačítko Zavřít by mělo aplikaci skrýt",
|
"settings.option.window.close_button_hide": "Tlačítko Zavřít by mělo aplikaci skrýt",
|
||||||
"settings.option.experimental.copy_log": "Zkopírujte protokoly do clipboard",
|
"settings.option.experimental.copy_log": "Zkopírujte protokoly do clipboard",
|
||||||
"settings.option.experimental.inline_playlists": "Vložené seznamy skladeb a alba",
|
"settings.option.experimental.inline_playlists": "Vložené seznamy skladeb a alba",
|
||||||
"spatial.notTurnedOn": "Prostorová funkce zvuku je zakázána. Chcete-li jej používat, nejprve jej povolte.",
|
"spatial.notTurnedOn": "Prostorová funkce zvuku je zakázána. Chcete-li jej používat, nejprve jej povolte.",
|
||||||
|
|
|
@ -230,7 +230,7 @@
|
||||||
"settings.option.audio.enableAdvancedFunctionality": "Akiviere erweiterte Funktionalität",
|
"settings.option.audio.enableAdvancedFunctionality": "Akiviere erweiterte Funktionalität",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.description": "Das Aktivieren der erweiterten Funktionalität ermöglicht spezielle Features wie Audio-Normalisierung, Equalizer und Visualizer, jedoch könnte dies auf einigen Systemen zu Aussetzern in der Musik führen.",
|
"settings.option.audio.enableAdvancedFunctionality.description": "Das Aktivieren der erweiterten Funktionalität ermöglicht spezielle Features wie Audio-Normalisierung, Equalizer und Visualizer, jedoch könnte dies auf einigen Systemen zu Aussetzern in der Musik führen.",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.ciderPPE": "Cider Adrenaline Processor™️",
|
"settings.option.audio.enableAdvancedFunctionality.ciderPPE": "Cider Adrenaline Processor™️",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.ciderPPE.description": "Psychoakustische Verbesserungen die die Musik lebensechter erscheinen lassen | Designed by Maikiwi.",
|
|
||||||
"settings.warn.audio.enableAdvancedFunctionality.ciderPPE.compatibility": "CAP ist nicht mit räumlichem Audio kompatibel. Bitte deaktiviere räumliches Audio zuerst.",
|
"settings.warn.audio.enableAdvancedFunctionality.ciderPPE.compatibility": "CAP ist nicht mit räumlichem Audio kompatibel. Bitte deaktiviere räumliches Audio zuerst.",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength": "CAP-Stärke",
|
"settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength": "CAP-Stärke",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.description": "Ändert die Stärke der Nachbearbeitung. (Aggressiv könnte zu ungewünschten Änderungen führen)",
|
"settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.description": "Ändert die Stärke der Nachbearbeitung. (Aggressiv könnte zu ungewünschten Änderungen führen)",
|
||||||
|
@ -291,7 +291,7 @@
|
||||||
"settings.header.experimental": "Experimentell",
|
"settings.header.experimental": "Experimentell",
|
||||||
"settings.header.experimental.description": "Passe die experimentellen Einstellungen für Cider an.",
|
"settings.header.experimental.description": "Passe die experimentellen Einstellungen für Cider an.",
|
||||||
"settings.option.experimental.compactUI": "Kompaktes UI",
|
"settings.option.experimental.compactUI": "Kompaktes UI",
|
||||||
"settings.option.experimental.close_button_hide": "Schließtaste soll die App verbergen",
|
"settings.option.window.close_button_hide": "Schließtaste soll die App verbergen",
|
||||||
"settings.option.experimental.copy_log": "Kopiere Logs in die Zwischenablage",
|
"settings.option.experimental.copy_log": "Kopiere Logs in die Zwischenablage",
|
||||||
"settings.option.experimental.inline_playlists": "Inline Playlists und Alben",
|
"settings.option.experimental.inline_playlists": "Inline Playlists und Alben",
|
||||||
"spatial.notTurnedOn": "Die Audio-Spatialisierung ist deaktiviert. Um sie zu verwenden, musst du diese zuerst aktivieren.",
|
"spatial.notTurnedOn": "Die Audio-Spatialisierung ist deaktiviert. Um sie zu verwenden, musst du diese zuerst aktivieren.",
|
||||||
|
|
|
@ -11,5 +11,10 @@
|
||||||
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "Audio Spatialisation",
|
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "Audio Spatialisation",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "Spatialise audio and make audio more 3-dimensional (note: This is not Dolby Atmos)",
|
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "Spatialise audio and make audio more 3-dimensional (note: This is not Dolby Atmos)",
|
||||||
"spatial.notTurnedOn": "Audio Spatialisation is disabled. To use, please enable it first.",
|
"spatial.notTurnedOn": "Audio Spatialisation is disabled. To use, please enable it first.",
|
||||||
"action.tray.minimize": "Minimise to Tray"
|
"action.tray.minimize": "Minimise to Tray",
|
||||||
|
"term.tracks": "songs",
|
||||||
|
"term.track": {
|
||||||
|
"one" : "song",
|
||||||
|
"other" : "songs"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -23,6 +23,8 @@
|
||||||
"term.about": "About",
|
"term.about": "About",
|
||||||
"term.privateSession": "Pwivate Session",
|
"term.privateSession": "Pwivate Session",
|
||||||
"term.queue": "Queue",
|
"term.queue": "Queue",
|
||||||
|
"term.lyrics": "Wywics",
|
||||||
|
"term.miniplayer": "MinyiPwayew",
|
||||||
"term.history": "Histowy",
|
"term.history": "Histowy",
|
||||||
"term.search": "Seawch",
|
"term.search": "Seawch",
|
||||||
"term.library": "Wibwawy",
|
"term.library": "Wibwawy",
|
||||||
|
@ -90,13 +92,25 @@
|
||||||
"term.time.released": "Weweased",
|
"term.time.released": "Weweased",
|
||||||
"term.time.updated": "Updated",
|
"term.time.updated": "Updated",
|
||||||
"term.time.days": "days",
|
"term.time.days": "days",
|
||||||
"term.time.day": "day",
|
"term.time.day": {
|
||||||
|
"one": "day",
|
||||||
|
"other": "days"
|
||||||
|
},
|
||||||
"term.time.hours": "houws",
|
"term.time.hours": "houws",
|
||||||
"term.time.hour": "houw",
|
"term.time.hour": {
|
||||||
|
"one": "houw",
|
||||||
|
"other": "houws"
|
||||||
|
},
|
||||||
"term.time.minutes": "minyutes",
|
"term.time.minutes": "minyutes",
|
||||||
"term.time.minute": "minyute",
|
"term.time.minute": {
|
||||||
|
"one": "minyute",
|
||||||
|
"other": "minyutes"
|
||||||
|
},
|
||||||
"term.time.seconds": "seconds",
|
"term.time.seconds": "seconds",
|
||||||
"term.time.second": "second",
|
"term.time.second": {
|
||||||
|
"one": "second",
|
||||||
|
"other": "seconds"
|
||||||
|
},
|
||||||
"term.fullscreenView": "Fuwwscween View",
|
"term.fullscreenView": "Fuwwscween View",
|
||||||
"term.defaultView": "Defauwt View",
|
"term.defaultView": "Defauwt View",
|
||||||
"term.audioSettings": "Audio Settings",
|
"term.audioSettings": "Audio Settings",
|
||||||
|
@ -118,8 +132,8 @@
|
||||||
"term.reset": "Weset",
|
"term.reset": "Weset",
|
||||||
"term.tracks": "twacks",
|
"term.tracks": "twacks",
|
||||||
"term.track": {
|
"term.track": {
|
||||||
"one": "track",
|
"one": "twack",
|
||||||
"other": "tracks"
|
"other": "twacks"
|
||||||
},
|
},
|
||||||
"term.videos": "Videos",
|
"term.videos": "Videos",
|
||||||
"term.menu": "Menyu",
|
"term.menu": "Menyu",
|
||||||
|
@ -148,6 +162,7 @@
|
||||||
"term.noVideos": "Nyo videos found.",
|
"term.noVideos": "Nyo videos found.",
|
||||||
"term.plugin": "Pwug-in",
|
"term.plugin": "Pwug-in",
|
||||||
"term.pluginMenu": "Pwug-in Menyu",
|
"term.pluginMenu": "Pwug-in Menyu",
|
||||||
|
"term.pluginMenu.none": "Nyo intewactive pwugins",
|
||||||
"term.replay": "Wepway",
|
"term.replay": "Wepway",
|
||||||
"term.uniqueAlbums": "Unyique Awbums",
|
"term.uniqueAlbums": "Unyique Awbums",
|
||||||
"term.uniqueArtists": "Unyique Awtists",
|
"term.uniqueArtists": "Unyique Awtists",
|
||||||
|
@ -159,6 +174,7 @@
|
||||||
"term.plays": "Pways",
|
"term.plays": "Pways",
|
||||||
"term.topGenres": "Top Genwes",
|
"term.topGenres": "Top Genwes",
|
||||||
"term.confirmLogout": "Awe you suwe you want to wogout?",
|
"term.confirmLogout": "Awe you suwe you want to wogout?",
|
||||||
|
"term.creditDesignedBy": "Designyed by ${authorUsername}",
|
||||||
"home.title": "Home",
|
"home.title": "Home",
|
||||||
"home.recentlyPlayed": "Wecentwy Pwayed",
|
"home.recentlyPlayed": "Wecentwy Pwayed",
|
||||||
"home.recentlyAdded": "Wecentwy Added",
|
"home.recentlyAdded": "Wecentwy Added",
|
||||||
|
@ -205,6 +221,8 @@
|
||||||
"action.startRadio": "Stawt Wadio",
|
"action.startRadio": "Stawt Wadio",
|
||||||
"action.goToArtist": "Go to Awtist",
|
"action.goToArtist": "Go to Awtist",
|
||||||
"action.goToAlbum": "Go to Awbum",
|
"action.goToAlbum": "Go to Awbum",
|
||||||
|
"action.showInPlaylist": "Show in Pwaywist",
|
||||||
|
"action.showInAppleMusic": "Show in Appwe Music",
|
||||||
"action.moveToTop": "Muv out of Fowdew",
|
"action.moveToTop": "Muv out of Fowdew",
|
||||||
"action.share": "Shawe",
|
"action.share": "Shawe",
|
||||||
"action.rename": "Wenyame",
|
"action.rename": "Wenyame",
|
||||||
|
@ -228,6 +246,7 @@
|
||||||
"action.newpreset": "Nyew Pweset...",
|
"action.newpreset": "Nyew Pweset...",
|
||||||
"action.deletepreset": "Dewete Pweset",
|
"action.deletepreset": "Dewete Pweset",
|
||||||
"action.open": "Open",
|
"action.open": "Open",
|
||||||
|
"action.relaunch.confirm": "Do you want to wewaunch Cidew?",
|
||||||
"settings.header.general": "Genyewaw",
|
"settings.header.general": "Genyewaw",
|
||||||
"settings.header.general.description": "Adjust the genyewaw settings fow Cidew.",
|
"settings.header.general.description": "Adjust the genyewaw settings fow Cidew.",
|
||||||
"settings.option.general.language": "Wanguage",
|
"settings.option.general.language": "Wanguage",
|
||||||
|
@ -265,6 +284,7 @@
|
||||||
"settings.option.audio.seamlessTransition": "Seamwess Audio Twansition",
|
"settings.option.audio.seamlessTransition": "Seamwess Audio Twansition",
|
||||||
"settings.option.audio.enableAdvancedFunctionality": "Enyabwe Advanced Functionyawity",
|
"settings.option.audio.enableAdvancedFunctionality": "Enyabwe Advanced Functionyawity",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.description": "Enyabwing AudioContext functionyawity wiww awwow fow extended audio featuwes wike Audio Nyowmawization, Equawizews and Visuawizews - howevew on some systems this may cause stuttewing in audio twacks.",
|
"settings.option.audio.enableAdvancedFunctionality.description": "Enyabwing AudioContext functionyawity wiww awwow fow extended audio featuwes wike Audio Nyowmawization, Equawizews and Visuawizews - howevew on some systems this may cause stuttewing in audio twacks.",
|
||||||
|
"settings.warn.audio.enableAdvancedFunctionality.lowcores": "Cidew thinks youw PC cant handwe these featuwes. Awe you suwe you want to continyue?",
|
||||||
"settings.option.audio.audioLab": "Cidew Audio Wab",
|
"settings.option.audio.audioLab": "Cidew Audio Wab",
|
||||||
"settings.option.audio.audioLab.description": "An assowtment of in-house devewoped audio effects fow Cidew.",
|
"settings.option.audio.audioLab.description": "An assowtment of in-house devewoped audio effects fow Cidew.",
|
||||||
"settings.warn.audioLab.withoutAF": "AudioContext (Advanced Functionyawity) is wequiwed to enyabwe Cidew Audio Wabowatowy.",
|
"settings.warn.audioLab.withoutAF": "AudioContext (Advanced Functionyawity) is wequiwed to enyabwe Cidew Audio Wabowatowy.",
|
||||||
|
@ -275,7 +295,7 @@
|
||||||
"settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity.smooth": "Smooth",
|
"settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity.smooth": "Smooth",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity.warm": "Wawm",
|
"settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity.warm": "Wawm",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.ciderPPE": "Cidew Adwenyawinye Pwocessow\u2122\ufe0f",
|
"settings.option.audio.enableAdvancedFunctionality.ciderPPE": "Cidew Adwenyawinye Pwocessow\u2122\ufe0f",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.ciderPPE.description": "Psychoacoustic Enhancements that makes evewything sound both wichew and mowe wivewy | Designyed by Maikiwi.",
|
|
||||||
"settings.warn.audio.enableAdvancedFunctionality.ciderPPE.compatibility": "CAP is nyot compatibwe with Spatiawization. Pwease disabwe Spatiawization to continyue.",
|
"settings.warn.audio.enableAdvancedFunctionality.ciderPPE.compatibility": "CAP is nyot compatibwe with Spatiawization. Pwease disabwe Spatiawization to continyue.",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength": "CAP Stwength",
|
"settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength": "CAP Stwength",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.description": "Changes the stwength of the pwocessing donye to the audio. (Aggwessive may yiewd undesiwabwe wesuwts)",
|
"settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.description": "Changes the stwength of the pwocessing donye to the audio. (Aggwessive may yiewd undesiwabwe wesuwts)",
|
||||||
|
@ -283,6 +303,7 @@
|
||||||
"settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.aggressive": "Aggwessive",
|
"settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.aggressive": "Aggwessive",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.audioNormalization": "Audio Nyowmawization",
|
"settings.option.audio.enableAdvancedFunctionality.audioNormalization": "Audio Nyowmawization",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "Nyowmawizes peak vowume fow individuaw twacks to cweate a mowe unyifowm wistenying expewience.",
|
"settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "Nyowmawizes peak vowume fow individuaw twacks to cweate a mowe unyifowm wistenying expewience.",
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.audioNormalization.disabled": "Manyaged by Audio Wab",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "Audio Spatiawization",
|
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "Audio Spatiawization",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "Spatiawize audio and make audio mowe 3-dimensionyaw (nyote: This is nyot Dowby Atmos)",
|
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "Spatiawize audio and make audio mowe 3-dimensionyaw (nyote: This is nyot Dowby Atmos)",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization": "Cidew Tunyed Spatiawization",
|
"settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization": "Cidew Tunyed Spatiawization",
|
||||||
|
@ -321,9 +342,22 @@
|
||||||
"settings.prompt.visual.theme.github.URL": "Entew the UWW of the theme you want to instaww",
|
"settings.prompt.visual.theme.github.URL": "Entew the UWW of the theme you want to instaww",
|
||||||
"settings.notyf.visual.theme.install.success": "Theme instawwed successfuwwy",
|
"settings.notyf.visual.theme.install.success": "Theme instawwed successfuwwy",
|
||||||
"settings.notyf.visual.theme.install.error": "Theme instawwation faiwed",
|
"settings.notyf.visual.theme.install.error": "Theme instawwation faiwed",
|
||||||
|
"settings.header.visual.plugin": "Pwugin",
|
||||||
|
"settings.option.visual.plugin.github.download": "Instaww fwom GitHub UWW",
|
||||||
|
"settings.option.visual.plugin.github.explore": "Expwowe GitHub Pwugins",
|
||||||
|
"settings.header.visual.plugin.github.page": "Pwugins fwom GitHub",
|
||||||
|
"settings.option.visual.plugin.github.install.confirm": "Awe you suwe you want to instaww {{ repo }}?",
|
||||||
|
"settings.prompt.visual.plugin.github.URL": "Entew the UWW of the pwugin you want to instaww",
|
||||||
|
"settings.prompt.visual.plugin.github.success": "Pwugin instawwed successfuwwy, Pwess OK to wewaunch Cidew",
|
||||||
|
"settings.notyf.visual.plugin.install.success": "Pwugin instawwed successfuwwy",
|
||||||
|
"settings.notyf.visual.plugin.install.error": "Pwugin instawwation faiwed",
|
||||||
"settings.option.visual.theme.default": "Cidew",
|
"settings.option.visual.theme.default": "Cidew",
|
||||||
"settings.option.visual.theme.dark": "Dawk",
|
"settings.option.visual.theme.dark": "Dawk",
|
||||||
"settings.option.visual.showPersonalInfo": "Show Pewsonyaw Info",
|
"settings.option.visual.showPersonalInfo": "Show Pewsonyaw Info",
|
||||||
|
"settings.header.window": "Window",
|
||||||
|
"settings.header.window.description": "Adjust the window settings fow Cidew.",
|
||||||
|
"settings.option.window.openOnStartup": "Open Cidew on Stawtup",
|
||||||
|
"settings.option.window.openOnStartup.hidden": "Open Hidden",
|
||||||
"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.",
|
||||||
"settings.option.lyrics.enableMusixmatch": "Enyabwe Musixmatch Wywics",
|
"settings.option.lyrics.enableMusixmatch": "Enyabwe Musixmatch Wywics",
|
||||||
|
@ -347,13 +381,17 @@
|
||||||
"settings.option.debug.openAppData": "Open Cidew Fowdew",
|
"settings.option.debug.openAppData": "Open Cidew Fowdew",
|
||||||
"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.reinstallwidevine": "Weinstaww WidevinyeCDM",
|
||||||
|
"settings.option.experimental.reinstallwidevine.confirm": "Awe you suwe you want to weinstaww Widevinye?",
|
||||||
"settings.option.experimental.unknownPlugin": "Unknyown Souwces",
|
"settings.option.experimental.unknownPlugin": "Unknyown Souwces",
|
||||||
"settings.option.experimental.unknownPlugin.description": "Awwow instawwation of pwugins fwom wepos othew than the Cidew Pwugin Wepositowy",
|
"settings.option.experimental.unknownPlugin.description": "Awwow instawwation of pwugins fwom wepos othew than the Cidew Pwugin Wepositowy",
|
||||||
"settings.option.experimental.compactUI": "Compact UI",
|
"settings.option.experimental.compactUI": "Compact UI",
|
||||||
"settings.option.experimental.close_button_hide": "Cwose Button Shouwd Hide the Appwication",
|
"settings.option.window.close_button_hide": "Cwose Button Shouwd Hide the Appwication",
|
||||||
"settings.option.experimental.inline_playlists": "Inwinye Pwaywists and Awbums",
|
"settings.option.experimental.inline_playlists": "Inwinye Pwaywists and Awbums",
|
||||||
"settings.option.advanced.playlistTrackMapping": "Pwaywist Twack Mapping",
|
"settings.option.advanced.playlistTrackMapping": "Pwaywist Twack Mapping",
|
||||||
"settings.option.advanced.playlistTrackMapping.description": "Enyabwes deep scannying of pwaywists to detewminye which twacks awe in which pwaywists.",
|
"settings.option.advanced.playlistTrackMapping.description": "Enyabwes deep scannying of pwaywists to detewminye which twacks awe in which pwaywists. Pwaywist cache buiwd times can incwease signyificantwy.",
|
||||||
|
"settings.option.visual.transparent": "Twanspawent fwame",
|
||||||
|
"settings.option.visual.transparent.description": "Twanspawent fwame (nyeeds Theme Suppowt , wequiwes wewaunch)",
|
||||||
"spatial.notTurnedOn": "Audio Spatiawization is disabwed. To use, pwease enyabwe it fiwst.",
|
"spatial.notTurnedOn": "Audio Spatiawization is disabwed. To use, pwease enyabwe it fiwst.",
|
||||||
"spatial.spatialProperties": "Spatiaw Pwopewties",
|
"spatial.spatialProperties": "Spatiaw Pwopewties",
|
||||||
"spatial.width": "Width",
|
"spatial.width": "Width",
|
||||||
|
@ -376,5 +414,15 @@
|
||||||
"settings.header.unfinished": "Unfinyished",
|
"settings.header.unfinished": "Unfinyished",
|
||||||
"remote.web.title": "Cidew Wemote",
|
"remote.web.title": "Cidew Wemote",
|
||||||
"remote.web.description": "Scan the QW code to paiw youw phonye up with this Cidew instance",
|
"remote.web.description": "Scan the QW code to paiw youw phonye up with this Cidew instance",
|
||||||
|
"share.platform.twitter.tweet": "Wisten to {{song}} on Appwe Music.\n\n{{song}}\n\n#AppweMusic #Cidew",
|
||||||
|
"share.platform.twitter": "Twittew",
|
||||||
|
"share.platform.facebook": "Facebook",
|
||||||
|
"share.platform.reddit": "Weddit",
|
||||||
|
"share.platform.telegram": "Tewegwam",
|
||||||
|
"share.platform.whatsapp": "WhatsApp",
|
||||||
|
"share.platform.messenger": "Messengew",
|
||||||
|
"share.platform.email": "Emaiw",
|
||||||
|
"share.platform.songLink": "Copy with song.wink",
|
||||||
|
"share.platform.clipboard": "Copy Wink",
|
||||||
"about.thanks": "Majow thanks to the Cidew Cowwective Team and aww of ouw contwibutows."
|
"about.thanks": "Majow thanks to the Cidew Cowwective Team and aww of ouw contwibutows."
|
||||||
}
|
}
|
|
@ -235,7 +235,7 @@
|
||||||
"settings.option.audio.enableAdvancedFunctionality": "cool piss tricks",
|
"settings.option.audio.enableAdvancedFunctionality": "cool piss tricks",
|
||||||
"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": "Cider Audio Pissifier™️",
|
"settings.option.audio.enableAdvancedFunctionality.ciderPPE": "Cider Audio Pissifier™️",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.ciderPPE.description": "makes your bladder go overboard and makes your piss crisp and clear",
|
|
||||||
"settings.warn.audio.enableAdvancedFunctionality.ciderPPE.compatibility": "pissifier dont go well with 3d piss. turn it off and try again.",
|
"settings.warn.audio.enableAdvancedFunctionality.ciderPPE.compatibility": "pissifier dont go well with 3d piss. turn it off and try again.",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength": "pissifier strength",
|
"settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength": "pissifier strength",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.description": "tune your bladder (blood may appear with turbo strength)",
|
"settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.description": "tune your bladder (blood may appear with turbo strength)",
|
||||||
|
@ -295,7 +295,7 @@
|
||||||
"settings.header.experimental": "piss lab",
|
"settings.header.experimental": "piss lab",
|
||||||
"settings.header.experimental.description": "mitochondria is the powerhouse of the cell",
|
"settings.header.experimental.description": "mitochondria is the powerhouse of the cell",
|
||||||
"settings.option.experimental.compactUI": "compact piss",
|
"settings.option.experimental.compactUI": "compact piss",
|
||||||
"settings.option.experimental.close_button_hide": "play hide-and-seek when clicking close button",
|
"settings.option.window.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",
|
||||||
"spatial.notTurnedOn": "3D piss is not on. turn it on lol",
|
"spatial.notTurnedOn": "3D piss is not on. turn it on lol",
|
||||||
|
|
|
@ -233,7 +233,7 @@
|
||||||
"settings.option.audio.enableAdvancedFunctionality": "Enable Advanced Functionality",
|
"settings.option.audio.enableAdvancedFunctionality": "Enable Advanced Functionality",
|
||||||
"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™️",
|
"settings.option.audio.enableAdvancedFunctionality.ciderPPE": "Cider Adrenaline Processor™️",
|
||||||
"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.warn.audio.enableAdvancedFunctionality.ciderPPE.compatibility": "CAP is not compatible with Spatialization. Please disable Spatialization to continue.",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength": "CAP Strength",
|
"settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength": "CAP Strength",
|
||||||
"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)",
|
||||||
|
@ -290,7 +290,7 @@
|
||||||
"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.",
|
||||||
"settings.option.experimental.compactUI": "Compact UI",
|
"settings.option.experimental.compactUI": "Compact UI",
|
||||||
"settings.option.experimental.close_button_hide": "Close Button Should Hide the Application",
|
"settings.option.window.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",
|
||||||
"spatial.notTurnedOn": "Audio Spatialization is disabled. To use, please enable it first.",
|
"spatial.notTurnedOn": "Audio Spatialization is disabled. To use, please enable it first.",
|
||||||
|
|
|
@ -224,7 +224,7 @@
|
||||||
"settings.option.audio.enableAdvancedFunctionality": "ᒷリᖋᕊ|:ᒷ ᖋ↸⍊ᖋリᔮᒷ↸ ⎓⚍リᔮᒣ╎ᒍリᖋ|:╎ᒣ॥",
|
"settings.option.audio.enableAdvancedFunctionality": "ᒷリᖋᕊ|:ᒷ ᖋ↸⍊ᖋリᔮᒷ↸ ⎓⚍リᔮᒣ╎ᒍリᖋ|:╎ᒣ॥",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.description": "ᒷリᖋᕊ|:╎リ┤ ᖋ⚍↸╎ᒍᔮᒍリᒣᒷ/ᒣ ⎓⚍リᔮᒣ╎ᒍリᖋ|:╎ᒣ॥ ∴╎|:|: ᖋ|:|:ᒍ∴ ⎓ᒍ∷ ᒷ/ᒣᒷリ↸ᒷ↸ ᖋ⚍↸╎ᒍ ⎓ᒷᖋᒣ⚍∷ᒷϟ |:╎·ǀ·ᒷ ᖋ⚍↸╎ᒍ リᒍ∷ᒲᖋ|:╎∩ᖋᒣ╎ᒍリ , ᒷᑑ⚍ᖋ|:╎∩ᒷ∷ϟ ᖋリ↸ ⍊╎ϟ⚍ᖋ|:╎∩ᒷ∷ϟ, ⍑ᒍ∴ᒷ⍊ᒷ∷ ᒍリ ϟᒍᒲᒷ ϟ॥ϟᒣᒷᒲϟ ᒣ⍑╎ϟ ᒲᖋ॥ ᔮᖋ⚍ϟᒷ ϟᒣ⚍ᒣᒣᒷ∷╎リ┤ ╎リ ᖋ⚍↸╎ᒍ ᒣ∷ᖋᔮ·ǀ·ϟ.",
|
"settings.option.audio.enableAdvancedFunctionality.description": "ᒷリᖋᕊ|:╎リ┤ ᖋ⚍↸╎ᒍᔮᒍリᒣᒷ/ᒣ ⎓⚍リᔮᒣ╎ᒍリᖋ|:╎ᒣ॥ ∴╎|:|: ᖋ|:|:ᒍ∴ ⎓ᒍ∷ ᒷ/ᒣᒷリ↸ᒷ↸ ᖋ⚍↸╎ᒍ ⎓ᒷᖋᒣ⚍∷ᒷϟ |:╎·ǀ·ᒷ ᖋ⚍↸╎ᒍ リᒍ∷ᒲᖋ|:╎∩ᖋᒣ╎ᒍリ , ᒷᑑ⚍ᖋ|:╎∩ᒷ∷ϟ ᖋリ↸ ⍊╎ϟ⚍ᖋ|:╎∩ᒷ∷ϟ, ⍑ᒍ∴ᒷ⍊ᒷ∷ ᒍリ ϟᒍᒲᒷ ϟ॥ϟᒣᒷᒲϟ ᒣ⍑╎ϟ ᒲᖋ॥ ᔮᖋ⚍ϟᒷ ϟᒣ⚍ᒣᒣᒷ∷╎リ┤ ╎リ ᖋ⚍↸╎ᒍ ᒣ∷ᖋᔮ·ǀ·ϟ.",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.ciderPPE": "ᔮ╎↸ᒷ∷ ᖋ↸∷ᒷリᖋ|:╎リᒷ i!∷ᒍᔮᒷϟϟᒍ∷™️",
|
"settings.option.audio.enableAdvancedFunctionality.ciderPPE": "ᔮ╎↸ᒷ∷ ᖋ↸∷ᒷリᖋ|:╎リᒷ i!∷ᒍᔮᒷϟϟᒍ∷™️",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.ciderPPE.description": "i!ϟ॥ᔮ⍑ᒍᖋᔮᒍ⚍ϟᒣ╎ᔮ ᒷリ⍑ᖋリᔮᒷᒲᒷリᒣϟ ᒣ⍑ᖋᒣ ᒲᖋ·ǀ·ᒷϟ ᒷ⍊ᒷ∷॥ᒣ⍑╎リ┤ ϟᒍ⚍リ↸ ᕊᒍᒣ⍑ ∷╎ᔮ⍑ᒷ∷ ᖋリ↸ ᒲᒍ∷ᒷ |:╎⍊ᒷ|:॥ | ↸ᒷϟ╎┤リᒷ↸ ᕊ॥ ᒲᖋ╎·ǀ·╎∴╎.",
|
|
||||||
"settings.warn.audio.enableAdvancedFunctionality.ciderPPE.compatibility": "ᔮᖋi! ╎ϟ リᒍᒣ ᔮᒍᒲi!ᖋᒣ╎ᕊ|:ᒷ ∴╎ᒣ⍑ ϟi!ᖋᒣ╎ᖋ|:╎∩ᖋᒣ╎ᒍリ. i!|:ᒷᖋϟᒷ ↸╎ϟᖋᕊ|:ᒷ ϟi!ᖋᒣ╎ᖋ|:╎∩ᖋᒣ╎ᒍリ ᒣᒍ ᔮᒍリᒣ╎リ⚍ᒷ.",
|
"settings.warn.audio.enableAdvancedFunctionality.ciderPPE.compatibility": "ᔮᖋi! ╎ϟ リᒍᒣ ᔮᒍᒲi!ᖋᒣ╎ᕊ|:ᒷ ∴╎ᒣ⍑ ϟi!ᖋᒣ╎ᖋ|:╎∩ᖋᒣ╎ᒍリ. i!|:ᒷᖋϟᒷ ↸╎ϟᖋᕊ|:ᒷ ϟi!ᖋᒣ╎ᖋ|:╎∩ᖋᒣ╎ᒍリ ᒣᒍ ᔮᒍリᒣ╎リ⚍ᒷ.",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength": "ᔮᖋi! ϟᒣ∷ᒷリ┤ᒣ⍑",
|
"settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength": "ᔮᖋi! ϟᒣ∷ᒷリ┤ᒣ⍑",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.description": "ᔮ⍑ᖋリ┤ᒷϟ ᒣ⍑ᒷ ϟᒣ∷ᒷリ┤ᒣ⍑ ᒍ⎓ ᒣ⍑ᒷ i!∷ᒍᔮᒷϟϟ╎リ┤ ↸ᒍリᒷ ᒣᒍ ᒣ⍑ᒷ ᖋ⚍↸╎ᒍ. (ᖋ┤┤∷ᒷϟϟ╎⍊ᒷ ᒲᖋ॥ ॥╎ᒷ|:↸ ⚍リ↸ᒷϟ╎∷ᖋᕊ|:ᒷ ∷ᒷϟ⚍|:ᒣϟ)",
|
"settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.description": "ᔮ⍑ᖋリ┤ᒷϟ ᒣ⍑ᒷ ϟᒣ∷ᒷリ┤ᒣ⍑ ᒍ⎓ ᒣ⍑ᒷ i!∷ᒍᔮᒷϟϟ╎リ┤ ↸ᒍリᒷ ᒣᒍ ᒣ⍑ᒷ ᖋ⚍↸╎ᒍ. (ᖋ┤┤∷ᒷϟϟ╎⍊ᒷ ᒲᖋ॥ ॥╎ᒷ|:↸ ⚍リ↸ᒷϟ╎∷ᖋᕊ|:ᒷ ∷ᒷϟ⚍|:ᒣϟ)",
|
||||||
|
@ -285,7 +285,7 @@
|
||||||
"settings.header.experimental": "ᒷ/i!ᒷ∷╎ᒲᒷリᒣᖋ|:",
|
"settings.header.experimental": "ᒷ/i!ᒷ∷╎ᒲᒷリᒣᖋ|:",
|
||||||
"settings.header.experimental.description": "ᖋ↸⋮⚍ϟᒣ ᒣ⍑ᒷ ᒷ/i!ᒷ∷╎ᒲᒷリᒣᖋ|: ϟᒷᒣᒣ╎リ┤ϟ ⎓ᒍ∷ ᔮ╎↸ᒷ∷.",
|
"settings.header.experimental.description": "ᖋ↸⋮⚍ϟᒣ ᒣ⍑ᒷ ᒷ/i!ᒷ∷╎ᒲᒷリᒣᖋ|: ϟᒷᒣᒣ╎リ┤ϟ ⎓ᒍ∷ ᔮ╎↸ᒷ∷.",
|
||||||
"settings.option.experimental.compactUI": "ᔮᒍᒲi!ᖋᔮᒣ ⚍╎",
|
"settings.option.experimental.compactUI": "ᔮᒍᒲi!ᖋᔮᒣ ⚍╎",
|
||||||
"settings.option.experimental.close_button_hide": "ᔮ|:ᒍϟᒷ ᕊ⚍ᒣᒣᒍリ ϟ⍑ᒍ⚍|:↸ ⍑╎↸ᒷ ᒣ⍑ᒷ ᖋi!i!|:╎ᔮᖋᒣ╎ᒍリ",
|
"settings.option.window.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!|:ᖋ॥|:╎ϟᒣϟ ᖋリ↸ ᖋ|:ᕊ⚍ᒲϟ",
|
||||||
"spatial.notTurnedOn": "ᖋ⚍↸╎ᒍ ϟi!ᖋᒣ╎ᖋ|:╎∩ᖋᒣ╎ᒍリ ╎ϟ ↸╎ϟᖋᕊ|:ᒷ↸. ᒣᒍ ⚍ϟᒷ, i!|:ᒷᖋϟᒷ ᒷリᖋᕊ|:ᒷ ╎ᒣ ⎓╎∷ϟᒣ.",
|
"spatial.notTurnedOn": "ᖋ⚍↸╎ᒍ ϟi!ᖋᒣ╎ᖋ|:╎∩ᖋᒣ╎ᒍリ ╎ϟ ↸╎ϟᖋᕊ|:ᒷ↸. ᒣᒍ ⚍ϟᒷ, i!|:ᒷᖋϟᒷ ᒷリᖋᕊ|:ᒷ ╎ᒣ ⎓╎∷ϟᒣ.",
|
||||||
|
|
|
@ -23,6 +23,8 @@
|
||||||
"term.about": "About",
|
"term.about": "About",
|
||||||
"term.privateSession": "Private Session",
|
"term.privateSession": "Private Session",
|
||||||
"term.queue": "Queue",
|
"term.queue": "Queue",
|
||||||
|
"term.lyrics": "Lyrics",
|
||||||
|
"term.miniplayer": "MiniPlayer",
|
||||||
"term.history": "History",
|
"term.history": "History",
|
||||||
"term.search": "Search",
|
"term.search": "Search",
|
||||||
"term.library": "Library",
|
"term.library": "Library",
|
||||||
|
@ -90,13 +92,25 @@
|
||||||
"term.time.released": "Released",
|
"term.time.released": "Released",
|
||||||
"term.time.updated": "Updated",
|
"term.time.updated": "Updated",
|
||||||
"term.time.days": "days",
|
"term.time.days": "days",
|
||||||
"term.time.day": "day",
|
"term.time.day": {
|
||||||
|
"one": "day",
|
||||||
|
"other": "days"
|
||||||
|
},
|
||||||
"term.time.hours": "hours",
|
"term.time.hours": "hours",
|
||||||
"term.time.hour": "hour",
|
"term.time.hour": {
|
||||||
|
"one": "hour",
|
||||||
|
"other": "hours"
|
||||||
|
},
|
||||||
"term.time.minutes": "minutes",
|
"term.time.minutes": "minutes",
|
||||||
"term.time.minute": "minute",
|
"term.time.minute": {
|
||||||
|
"one": "minute",
|
||||||
|
"other": "minutes"
|
||||||
|
},
|
||||||
"term.time.seconds": "seconds",
|
"term.time.seconds": "seconds",
|
||||||
"term.time.second": "second",
|
"term.time.second": {
|
||||||
|
"one": "second",
|
||||||
|
"other": "seconds"
|
||||||
|
},
|
||||||
"term.fullscreenView": "Fullscreen View",
|
"term.fullscreenView": "Fullscreen View",
|
||||||
"term.defaultView": "Default View",
|
"term.defaultView": "Default View",
|
||||||
"term.audioSettings": "Audio Settings",
|
"term.audioSettings": "Audio Settings",
|
||||||
|
@ -160,6 +174,7 @@
|
||||||
"term.plays": "Plays",
|
"term.plays": "Plays",
|
||||||
"term.topGenres": "Top Genres",
|
"term.topGenres": "Top Genres",
|
||||||
"term.confirmLogout": "Are you sure you want to logout?",
|
"term.confirmLogout": "Are you sure you want to logout?",
|
||||||
|
"term.creditDesignedBy": "Designed by ${authorUsername}",
|
||||||
"home.title": "Home",
|
"home.title": "Home",
|
||||||
"home.recentlyPlayed": "Recently Played",
|
"home.recentlyPlayed": "Recently Played",
|
||||||
"home.recentlyAdded": "Recently Added",
|
"home.recentlyAdded": "Recently Added",
|
||||||
|
@ -269,6 +284,7 @@
|
||||||
"settings.option.audio.seamlessTransition": "Seamless Audio Transition",
|
"settings.option.audio.seamlessTransition": "Seamless Audio Transition",
|
||||||
"settings.option.audio.enableAdvancedFunctionality": "Enable Advanced Functionality",
|
"settings.option.audio.enableAdvancedFunctionality": "Enable Advanced Functionality",
|
||||||
"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.warn.audio.enableAdvancedFunctionality.lowcores": "Cider thinks your PC cant handle these features. Are you sure you want to continue?",
|
||||||
"settings.option.audio.audioLab": "Cider Audio Lab",
|
"settings.option.audio.audioLab": "Cider Audio Lab",
|
||||||
"settings.option.audio.audioLab.description": "An assortment of in-house developed audio effects for Cider.",
|
"settings.option.audio.audioLab.description": "An assortment of in-house developed audio effects for Cider.",
|
||||||
"settings.warn.audioLab.withoutAF": "AudioContext (Advanced Functionality) is required to enable Cider Audio Laboratory.",
|
"settings.warn.audioLab.withoutAF": "AudioContext (Advanced Functionality) is required to enable Cider Audio Laboratory.",
|
||||||
|
@ -279,14 +295,15 @@
|
||||||
"settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity.smooth": "Smooth",
|
"settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity.smooth": "Smooth",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity.warm": "Warm",
|
"settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity.warm": "Warm",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.ciderPPE": "Cider Adrenaline Processor™️",
|
"settings.option.audio.enableAdvancedFunctionality.ciderPPE": "Cider Adrenaline Processor™️",
|
||||||
"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": "Enhances the perceived audio quality of 256 kbps AAC audio by using a real-time algorithm that takes advantage of both psychoacoustic models of human hearing and AAC encoding characteristics.",
|
||||||
"settings.warn.audio.enableAdvancedFunctionality.ciderPPE.compatibility": "CAP is not compatible with Spatialization. Please disable Spatialization to continue.",
|
"settings.warn.audio.enableAdvancedFunctionality.ciderPPE.compatibility": "CAP is not compatible with Spatialization. Please disable Spatialization to continue.",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength": "CAP Strength",
|
"settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength": "CAP Strength",
|
||||||
"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",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.aggressive": "Aggressive",
|
"settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.aggressive": "Aggressive",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.audioNormalization": "Audio Normalization",
|
"settings.option.audio.enableAdvancedFunctionality.audioNormalization": "Audio Normalization",
|
||||||
"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. (Does not work on user uploaded tracks)",
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.audioNormalization.disabled": "Managed by Audio Lab",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "Audio Spatialization",
|
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "Audio Spatialization",
|
||||||
"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.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization": "Cider Tuned Spatialization",
|
"settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization": "Cider Tuned Spatialization",
|
||||||
|
@ -337,6 +354,10 @@
|
||||||
"settings.option.visual.theme.default": "Cider",
|
"settings.option.visual.theme.default": "Cider",
|
||||||
"settings.option.visual.theme.dark": "Dark",
|
"settings.option.visual.theme.dark": "Dark",
|
||||||
"settings.option.visual.showPersonalInfo": "Show Personal Info",
|
"settings.option.visual.showPersonalInfo": "Show Personal Info",
|
||||||
|
"settings.header.window": "Window",
|
||||||
|
"settings.header.window.description": "Adjust the window settings for Cider.",
|
||||||
|
"settings.option.window.openOnStartup": "Open Cider on Startup",
|
||||||
|
"settings.option.window.openOnStartup.hidden": "Open Hidden",
|
||||||
"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.",
|
||||||
"settings.option.lyrics.enableMusixmatch": "Enable Musixmatch Lyrics",
|
"settings.option.lyrics.enableMusixmatch": "Enable Musixmatch Lyrics",
|
||||||
|
@ -360,15 +381,18 @@
|
||||||
"settings.option.debug.openAppData": "Open Cider Folder",
|
"settings.option.debug.openAppData": "Open Cider Folder",
|
||||||
"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.",
|
||||||
|
"settings.option.experimental.reinstallwidevine": "Reinstall WidevineCDM",
|
||||||
|
"settings.option.experimental.reinstallwidevine.confirm": "Are you sure you want to reinstall Widevine?",
|
||||||
"settings.option.experimental.unknownPlugin": "Unknown Sources",
|
"settings.option.experimental.unknownPlugin": "Unknown Sources",
|
||||||
"settings.option.experimental.unknownPlugin.description": "Allow installation of plugins from repos other than the Cider Plugin Repository",
|
"settings.option.experimental.unknownPlugin.description": "Allow installation of plugins from repos other than the Cider Plugin Repository",
|
||||||
"settings.option.experimental.compactUI": "Compact UI",
|
"settings.option.experimental.compactUI": "Compact UI",
|
||||||
"settings.option.experimental.close_button_hide": "Close Button Should Hide the Application",
|
"settings.option.window.close_button_hide": "Close Button Should Hide the Application",
|
||||||
"settings.option.experimental.inline_playlists": "Inline Playlists and Albums",
|
"settings.option.experimental.inline_playlists": "Inline Playlists and Albums",
|
||||||
"settings.option.advanced.playlistTrackMapping": "Playlist Track Mapping",
|
"settings.option.advanced.playlistTrackMapping": "Playlist Track Mapping",
|
||||||
"settings.option.advanced.playlistTrackMapping.description": "Enables deep scanning of playlists to determine which tracks are in which playlists. Playlist cache build times can increase significantly.",
|
"settings.option.advanced.playlistTrackMapping.description": "Enables deep scanning of playlists to determine which tracks are in which playlists. Playlist cache build times can increase significantly.",
|
||||||
"settings.option.visual.transparent": "Transparent frame",
|
"settings.option.visual.transparent": "Transparent frame",
|
||||||
"settings.option.visual.transparent.description": "Transparent frame (needs Theme Support , requires relaunch)",
|
"settings.option.visual.transparent.description": "Transparent frame (needs Theme Support , requires relaunch)",
|
||||||
|
"settings.header.advanced": "Advanced",
|
||||||
"spatial.notTurnedOn": "Audio Spatialization is disabled. To use, please enable it first.",
|
"spatial.notTurnedOn": "Audio Spatialization is disabled. To use, please enable it first.",
|
||||||
"spatial.spatialProperties": "Spatial Properties",
|
"spatial.spatialProperties": "Spatial Properties",
|
||||||
"spatial.width": "Width",
|
"spatial.width": "Width",
|
||||||
|
@ -391,5 +415,15 @@
|
||||||
"settings.header.unfinished": "Unfinished",
|
"settings.header.unfinished": "Unfinished",
|
||||||
"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",
|
||||||
|
"share.platform.twitter.tweet": "Listen to {{song}} on Apple Music.\n\n{{url}}\n\n#AppleMusic #Cider",
|
||||||
|
"share.platform.twitter": "Twitter",
|
||||||
|
"share.platform.facebook": "Facebook",
|
||||||
|
"share.platform.reddit": "Reddit",
|
||||||
|
"share.platform.telegram": "Telegram",
|
||||||
|
"share.platform.whatsapp": "WhatsApp",
|
||||||
|
"share.platform.messenger": "Messenger",
|
||||||
|
"share.platform.email": "Email",
|
||||||
|
"share.platform.songLink": "Copy with song.link",
|
||||||
|
"share.platform.clipboard": "Copy Link",
|
||||||
"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."
|
||||||
}
|
}
|
||||||
|
|
|
@ -242,7 +242,7 @@
|
||||||
"settings.header.experimental": "En pruebas",
|
"settings.header.experimental": "En pruebas",
|
||||||
"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",
|
"settings.option.experimental.compactUI": "Interfaz de usuario compacto",
|
||||||
"settings.option.experimental.close_button_hide": "El botón de cerrar minimizará la aplicación en la bandeja",
|
"settings.option.window.close_button_hide": "El botón de cerrar minimizará la aplicación en la bandeja",
|
||||||
"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",
|
||||||
"spatial.width": "Ancho",
|
"spatial.width": "Ancho",
|
||||||
|
|
|
@ -221,7 +221,7 @@
|
||||||
"settings.option.audio.enableAdvancedFunctionality": "Activer les fonctions avancées",
|
"settings.option.audio.enableAdvancedFunctionality": "Activer les fonctions avancées",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.description": "L'activation de la fonctionnalité AudioContext permet d'utiliser des fonctions audio étendues telles que la normalisation du son, les égaliseurs et les visualiseurs. Toutefois, sur certains systèmes, cela peut provoquer des bégaiements dans les pistes audio.",
|
"settings.option.audio.enableAdvancedFunctionality.description": "L'activation de la fonctionnalité AudioContext permet d'utiliser des fonctions audio étendues telles que la normalisation du son, les égaliseurs et les visualiseurs. Toutefois, sur certains systèmes, cela peut provoquer des bégaiements dans les pistes audio.",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.ciderPPE": "Moteur de traitement psycho-acoustique Cider",
|
"settings.option.audio.enableAdvancedFunctionality.ciderPPE": "Moteur de traitement psycho-acoustique Cider",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.ciderPPE.description": "Un processus de traitement qui fait croire à votre cerveau que les fichiers sont de meilleure qualité.",
|
|
||||||
"settings.option.audio.enableAdvancedFunctionality.audioNormalization": "Normalisation du son",
|
"settings.option.audio.enableAdvancedFunctionality.audioNormalization": "Normalisation du son",
|
||||||
"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",
|
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "Spatialisation audio",
|
||||||
|
@ -272,7 +272,7 @@
|
||||||
"settings.header.experimental": "Expérimental",
|
"settings.header.experimental": "Expérimental",
|
||||||
"settings.header.experimental.description": "Ajuster les paramètres expérimentaux de Cider.",
|
"settings.header.experimental.description": "Ajuster les paramètres expérimentaux de Cider.",
|
||||||
"settings.option.experimental.compactUI": "Interface utilisateur compacte",
|
"settings.option.experimental.compactUI": "Interface utilisateur compacte",
|
||||||
"settings.option.experimental.close_button_hide": "Le bouton de fermeture doit masquer l'application",
|
"settings.option.window.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",
|
||||||
"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.",
|
||||||
|
|
|
@ -225,7 +225,7 @@
|
||||||
"settings.option.audio.enableAdvancedFunctionality": "Enable Advanced Functionality",
|
"settings.option.audio.enableAdvancedFunctionality": "Enable Advanced Functionality",
|
||||||
"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™️",
|
"settings.option.audio.enableAdvancedFunctionality.ciderPPE": "Cider Adrenaline Processor™️",
|
||||||
"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",
|
"settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength": "CAP Strength",
|
||||||
"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",
|
||||||
|
@ -280,7 +280,7 @@
|
||||||
"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.",
|
||||||
"settings.option.experimental.compactUI": "Compact UI",
|
"settings.option.experimental.compactUI": "Compact UI",
|
||||||
"settings.option.experimental.close_button_hide": "Close Button Should Hide the Application",
|
"settings.option.window.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",
|
||||||
"spatial.notTurnedOn": "Audio Spatialization is disabled. To use, please enable it first.",
|
"spatial.notTurnedOn": "Audio Spatialization is disabled. To use, please enable it first.",
|
||||||
|
|
|
@ -2,9 +2,9 @@
|
||||||
"i18n.languageName": "Magyar",
|
"i18n.languageName": "Magyar",
|
||||||
"i18n.languageNameEnglish": "Hungarian",
|
"i18n.languageNameEnglish": "Hungarian",
|
||||||
"i18n.category": "main",
|
"i18n.category": "main",
|
||||||
"i18n.authors": "@Greenoliv @Amaru @BenjaminStonawski",
|
"i18n.authors": "@Amaru",
|
||||||
"app.name": "Cider",
|
"app.name": "Cider",
|
||||||
"date.format": "${m} ${d}, ${y}",
|
"date.format": "${y} ${m} ${d}",
|
||||||
"dialog.cancel": "Mégsem",
|
"dialog.cancel": "Mégsem",
|
||||||
"dialog.ok": "OK",
|
"dialog.ok": "OK",
|
||||||
"notification.updatingLibrarySongs": "Zenekönyvtár frissítése...",
|
"notification.updatingLibrarySongs": "Zenekönyvtár frissítése...",
|
||||||
|
@ -12,7 +12,7 @@
|
||||||
"notification.updatingLibraryArtists": "Előadók frissítése...",
|
"notification.updatingLibraryArtists": "Előadók frissítése...",
|
||||||
"term.appleInc": "Apple Inc.",
|
"term.appleInc": "Apple Inc.",
|
||||||
"term.appleMusic": "Apple Music",
|
"term.appleMusic": "Apple Music",
|
||||||
"term.applePodcasts": "Apple Podcastok",
|
"term.applePodcasts": "Apple Podcasts",
|
||||||
"term.itunes": "iTunes",
|
"term.itunes": "iTunes",
|
||||||
"term.github": "GitHub",
|
"term.github": "GitHub",
|
||||||
"term.discord": "Discord",
|
"term.discord": "Discord",
|
||||||
|
@ -23,6 +23,8 @@
|
||||||
"term.about": "Névjegy",
|
"term.about": "Névjegy",
|
||||||
"term.privateSession": "Privát hallgatás",
|
"term.privateSession": "Privát hallgatás",
|
||||||
"term.queue": "Várólista",
|
"term.queue": "Várólista",
|
||||||
|
"term.lyrics": "Dalszöveg",
|
||||||
|
"term.miniplayer": "Minilejátszó",
|
||||||
"term.history": "Előzmények",
|
"term.history": "Előzmények",
|
||||||
"term.search": "Keresés",
|
"term.search": "Keresés",
|
||||||
"term.library": "Könyvtár",
|
"term.library": "Könyvtár",
|
||||||
|
@ -76,10 +78,10 @@
|
||||||
"term.enabled": "Be",
|
"term.enabled": "Be",
|
||||||
"term.disabled": "Ki",
|
"term.disabled": "Ki",
|
||||||
"term.connect": "Csatlakoztatás",
|
"term.connect": "Csatlakoztatás",
|
||||||
"term.connecting": "Csatlakozás",
|
"term.connecting": "Jóváhagyás ?",
|
||||||
"term.disconnect": "Lecsatlakozatás",
|
"term.disconnect": "Több",
|
||||||
"term.authed": "Hitelesítve",
|
"term.authed": "Hitelesítve",
|
||||||
"term.confirm": "Jóváhagyja?",
|
"term.confirm": "Jóváhagyás ?",
|
||||||
"term.more": "Több",
|
"term.more": "Több",
|
||||||
"term.less": "Kevesebb",
|
"term.less": "Kevesebb",
|
||||||
"term.showMore": "Mutass többet",
|
"term.showMore": "Mutass többet",
|
||||||
|
@ -89,12 +91,26 @@
|
||||||
"term.time.added": "Hozzáadva",
|
"term.time.added": "Hozzáadva",
|
||||||
"term.time.released": "Kiadva",
|
"term.time.released": "Kiadva",
|
||||||
"term.time.updated": "Frissítve",
|
"term.time.updated": "Frissítve",
|
||||||
|
"term.time.days": "nap",
|
||||||
|
"term.time.day": {
|
||||||
|
"one": "nap",
|
||||||
|
"other": "nap"
|
||||||
|
},
|
||||||
"term.time.hours": "óra",
|
"term.time.hours": "óra",
|
||||||
"term.time.hour": "óra",
|
"term.time.hour": {
|
||||||
|
"one": "óra",
|
||||||
|
"other": "óra"
|
||||||
|
},
|
||||||
"term.time.minutes": "perc",
|
"term.time.minutes": "perc",
|
||||||
"term.time.minute": "perc",
|
"term.time.minute": {
|
||||||
|
"one": "perc",
|
||||||
|
"other": "perc"
|
||||||
|
},
|
||||||
"term.time.seconds": "másodperc",
|
"term.time.seconds": "másodperc",
|
||||||
"term.time.second": "másodperc",
|
"term.time.second": {
|
||||||
|
"one": "másodperc",
|
||||||
|
"other": "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.audioSettings": "Hangbeállítások",
|
"term.audioSettings": "Hangbeállítások",
|
||||||
|
@ -103,7 +119,7 @@
|
||||||
"term.recentStations": "Nemrég játszott",
|
"term.recentStations": "Nemrég játszott",
|
||||||
"term.language": "Nyelv",
|
"term.language": "Nyelv",
|
||||||
"term.funLanguages": "Fantázianyelvek",
|
"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",
|
||||||
|
@ -112,13 +128,17 @@
|
||||||
"term.socialTeam": "Közösségi csapat",
|
"term.socialTeam": "Közösségi csapat",
|
||||||
"term.socials": "Szociális",
|
"term.socials": "Szociális",
|
||||||
"term.contributors": "Hozzájárulók",
|
"term.contributors": "Hozzájárulók",
|
||||||
"term.equalizer": "Hangszínszabályozó",
|
"term.equalizer": "Hangszínszabályzó",
|
||||||
"term.reset": "Visszaállítás",
|
"term.reset": "Visszaállítás",
|
||||||
"term.tracks": "zeneszám",
|
"term.tracks": "zeneszám",
|
||||||
|
"term.track": {
|
||||||
|
"one" : "zeneszám",
|
||||||
|
"other" : "zeneszám"
|
||||||
|
},
|
||||||
"term.videos": "Videók",
|
"term.videos": "Videók",
|
||||||
"term.menu": "Menü",
|
"term.menu": "Menü",
|
||||||
"term.check": "Ellenőrzés",
|
"term.check": "Ellenőrzés",
|
||||||
"term.aboutArtist": "About {{artistName}}",
|
"term.aboutArtist": "{{artistName}}-ról/ről",
|
||||||
"term.topResult": "Legjobb találatok",
|
"term.topResult": "Legjobb találatok",
|
||||||
"term.sharedPlaylists": "Megosztott lejátszási listák",
|
"term.sharedPlaylists": "Megosztott lejátszási listák",
|
||||||
"term.people": "Profilok",
|
"term.people": "Profilok",
|
||||||
|
@ -135,24 +155,26 @@
|
||||||
"term.curators": "Kurátorok",
|
"term.curators": "Kurátorok",
|
||||||
"term.appleCurators": "Apple Kurátorok",
|
"term.appleCurators": "Apple Kurátorok",
|
||||||
"term.radioShows": "Rádióadások",
|
"term.radioShows": "Rádióadások",
|
||||||
"term.recordLabels": "Record Labels",
|
"term.recordLabels": "Lemezkiadók",
|
||||||
"term.videoExtras": "Videóextrák",
|
"term.videoExtras": "Videóextrák",
|
||||||
"term.top": "Top",
|
"term.top": "Top",
|
||||||
"term.version": "Verzió",
|
"term.version": "Verzió",
|
||||||
"term.noVideos": "Nincs találat.",
|
"term.noVideos": "Nincs találat",
|
||||||
"term.plugin": "Plug-in",
|
"term.plugin": "Plug-in",
|
||||||
"term.pluginMenu": "Plug-in Menü",
|
"term.pluginMenu": "Plug-in Menü",
|
||||||
|
"term.pluginMenu.none": "Nem találhatóak interaktív pluginok",
|
||||||
"term.replay": "Replay",
|
"term.replay": "Replay",
|
||||||
"term.uniqueAlbums": "Unique Albums",
|
"term.uniqueAlbums": "album",
|
||||||
"term.uniqueArtists": "Unique Artists",
|
"term.uniqueArtists": "előadó",
|
||||||
"term.uniqueSongs": "Unique Songs",
|
"term.uniqueSongs": "zeneszám",
|
||||||
"term.topArtists": "Top Artists",
|
"term.topArtists": "Leghallgatottabb előadói",
|
||||||
"term.listenedTo": "Listened to:",
|
"term.listenedTo": "Meghallgatta:",
|
||||||
"term.times": "alkalom",
|
"term.times": "alkalommal",
|
||||||
"term.topAlbums": "Top Albums",
|
"term.topAlbums": "Leghallgatottabb albumok",
|
||||||
"term.plays": "Plays",
|
"term.plays": "lejátszás",
|
||||||
"term.topGenres": "Top Genres",
|
"term.topGenres": "Leghallgatottabb műfajok",
|
||||||
"term.confirmLogout": "Biztosan ki szeretnél jelentkezni?",
|
"term.confirmLogout": "Biztosan ki szeretnél jelentkezni?",
|
||||||
|
"term.creditDesignedBy": "Készítette ${authorUsername}",
|
||||||
"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",
|
||||||
|
@ -176,7 +198,7 @@
|
||||||
"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önyvtá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",
|
||||||
|
@ -199,6 +221,8 @@
|
||||||
"action.startRadio": "Állomás létrehozása",
|
"action.startRadio": "Állomás létrehozása",
|
||||||
"action.goToArtist": "Előadó megjelenítése",
|
"action.goToArtist": "Előadó megjelenítése",
|
||||||
"action.goToAlbum": "Album megjelenítése",
|
"action.goToAlbum": "Album megjelenítése",
|
||||||
|
"action.showInPlaylist": "Lejátszási lista megjelenítése",
|
||||||
|
"action.showInAppleMusic": "Megjelenítés az Apple Musicban",
|
||||||
"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",
|
||||||
|
@ -207,38 +231,43 @@
|
||||||
"action.dislike": "Kevesebb ilyen javasolása",
|
"action.dislike": "Kevesebb ilyen javasolása",
|
||||||
"action.undoDislike": "A Kevesebb ilyen javasolása visszavonása",
|
"action.undoDislike": "A Kevesebb ilyen javasolása visszavonása",
|
||||||
"action.showWebRemoteQR": "Távirányító",
|
"action.showWebRemoteQR": "Távirányító",
|
||||||
"action.playTracksNext": "${app.selectedMediaItems.length} zenék lejátszása következőnek",
|
"action.playTracksNext": "${app.selectedMediaItems.length} zene lejátszása következőnek",
|
||||||
"action.playTracksLater": "${app.selectedMediaItems.length} zenék lejátszása később",
|
"action.playTracksLater": "${app.selectedMediaItems.length} zene 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} zene 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",
|
||||||
"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": "Bezárás",
|
||||||
"action.tray.show": "Megjelenítés",
|
"action.tray.show": "Megjelenítés",
|
||||||
"action.update": "Frissítés",
|
"action.update": "Frissítés",
|
||||||
"action.install": "Telepítés",
|
"action.install": "Telepítés",
|
||||||
"action.copy": "Másolás",
|
"action.copy": "Másolás",
|
||||||
"action.newpreset": "Új Preset...",
|
"action.newpreset": "Új előbeállítás...",
|
||||||
"action.deletepreset": "Preset törlése",
|
"action.deletepreset": "Előbeállítás törlése",
|
||||||
"action.open": "Megnyitás",
|
"action.open": "Megnyitás",
|
||||||
|
"action.relaunch.confirm": "Biztosan szeretnéd újraindítani a Cidert?",
|
||||||
"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",
|
||||||
"settings.option.general.resumebehavior": "Resume behavior",
|
"settings.option.general.resumebehavior": "Folytatási viselkedés",
|
||||||
"settings.option.general.resumebehavior.description": "Resume behavior affects how Cider will resume your session when you return to the app.",
|
"settings.option.general.resumebehavior.description": "A folytatási viselkedés a Ciderbe való visszatérésnél történő zene lejátszását változtatja.",
|
||||||
"settings.option.general.resumebehavior.locally": "Locally",
|
"settings.option.general.resumebehavior.locally": "Helyi",
|
||||||
"settings.option.general.resumebehavior.locally.description": "Cider will resume your last session on this machine.",
|
"settings.option.general.resumebehavior.locally.description": "A Cider az ezen az eszközön utoljára játszott zenét fogja folytatni.",
|
||||||
"settings.option.general.resumebehavior.history": "History",
|
"settings.option.general.resumebehavior.history": "Előzmények",
|
||||||
"settings.option.general.resumebehavior.history.description": "Cider will queue the last song from your overall Apple Music history, across devices.",
|
"settings.option.general.resumebehavior.history.description": "A Cider az utolsó zeneszámot fogja lekérni az Apple Music előzményeidből, eszközökön keresztül.",
|
||||||
"settings.option.general.language.main": "Nyelvek",
|
"settings.option.general.language.main": "Nyelvek",
|
||||||
"settings.option.general.language.fun": "Fantázianyelvek",
|
"settings.option.general.language.fun": "Fantázianyelvek",
|
||||||
"settings.option.general.language.unsorted": "Azonosítatlan",
|
"settings.option.general.language.unsorted": "Kategorizálatlan",
|
||||||
"settings.option.general.updateCider": "Cider frissítése",
|
"settings.option.general.updateCider": "Cider frissítése",
|
||||||
"settings.option.general.updateCider.branch": "Verzió kiválasztása",
|
"settings.option.general.updateCider.branch": "Verzió kiválasztása",
|
||||||
"settings.option.general.updateCider.branch.description": "Válaszd ki a Cider melyik verziójára szeretnél frissíteni",
|
"settings.option.general.updateCider.branch.description": "Válaszd ki a Cider melyik verziójára szeretnél frissíteni",
|
||||||
"settings.option.general.updateCider.branch.main": "Normál",
|
"settings.option.general.updateCider.branch.main": "Normál",
|
||||||
"settings.option.general.updateCider.branch.develop": "Fejlesztői",
|
"settings.option.general.updateCider.branch.develop": "Fejlesztői",
|
||||||
|
"settings.notyf.updateCider.update-not-available": "Nem található frissítés",
|
||||||
|
"settings.notyf.updateCider.update-downloaded": "A frissítés le lett töltve, a telepítéshez indítsa újra az alkalmazást",
|
||||||
|
"settings.notyf.updateCider.update-error": "Hiba történt a frissítés közben",
|
||||||
|
"settings.notyf.updateCider.update-timeout": "Időtúllépés történt a frissítés alatt",
|
||||||
"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.volumeStep": "Hangerő lépték",
|
"settings.option.audio.volumeStep": "Hangerő lépték",
|
||||||
|
@ -248,24 +277,24 @@
|
||||||
"settings.header.audio.quality.hireslossless.description": "max. 24-bit/192 kHz sebességen",
|
"settings.header.audio.quality.hireslossless.description": "max. 24-bit/192 kHz sebességen",
|
||||||
"settings.header.audio.quality.lossless": "Veszteségmentes",
|
"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.lossless.description": "max. up to 24-bit/48 kHz sebességen",
|
||||||
"settings.header.audio.quality.high": "High",
|
"settings.header.audio.quality.high": "Magas",
|
||||||
"settings.header.audio.quality.high.description": "256 kbps",
|
"settings.header.audio.quality.high.description": "256 kbps",
|
||||||
"settings.header.audio.quality.standard": "Standard",
|
"settings.header.audio.quality.standard": "Normál",
|
||||||
"settings.header.audio.quality.standard.description": "64 kbps",
|
"settings.header.audio.quality.standard.description": "64 kbps",
|
||||||
"settings.option.audio.seamlessTransition": "Szünetmentes lejátszás",
|
"settings.option.audio.seamlessTransition": "Szünetmentes lejátszás",
|
||||||
"settings.option.audio.enableAdvancedFunctionality": "Haladó funkcionalitás engedélyezése",
|
"settings.option.audio.enableAdvancedFunctionality": "Haladó funkcionalitás engedélyezése",
|
||||||
"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.description": "Az AudioContext funkció engedélyezése lehetővé teszi a fejlettebb hangfunkciókat, mint például a Normalizásást, a Hangszínszabályzókat és a Vizualizálókat, azonban egyes eszközökön ez akadozást okozhat a hangsávokban.",
|
||||||
"settings.option.audio.audioLab": "Cider Audio Lab",
|
"settings.option.audio.audioLab": "Cider Hangstúdió",
|
||||||
"settings.option.audio.audioLab.description": "An assortment of in-house developed audio effects for Cider.",
|
"settings.option.audio.audioLab.description": "A Ciderhez fejlesztett hangeffektek gyűjteménye.",
|
||||||
"settings.warn.audioLab.withoutAF": "AudioContext (Advanced Functionality) is required to enable Cider Audio Laboratory.",
|
"settings.warn.audioLab.withoutAF": "Az AudioContext (Haladó funkcionalitás) szükséges a Cider Hangstúdió engedélyezéséhez.",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.analogWarmth": "Analog Warmth",
|
"settings.option.audio.enableAdvancedFunctionality.analogWarmth": "Analóg Érzet",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.analogWarmth.description": "Simulates the analog warmth modelled after the Korg Nutube 6P1",
|
"settings.option.audio.enableAdvancedFunctionality.analogWarmth.description": "A Korg Nutube 6P1 analóg érzetét szimulálja.",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity": "Analog Warmth intensity",
|
"settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity": "Analóg Érzet erősség",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity.description": "Changes the intensity of the Analog Warmth Module processing.",
|
"settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity.description": "Az Analóg Érzet modul hangfeldolgozási erősségét változtatja.",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity.smooth": "Smooth",
|
"settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity.smooth": "Szokásos",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity.warm": "Warm",
|
"settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity.warm": "Nagyobb",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.ciderPPE": "Cider Adrenaline Processor™️",
|
"settings.option.audio.enableAdvancedFunctionality.ciderPPE": "Cider Adrenaline Processor™️",
|
||||||
"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.warn.audio.enableAdvancedFunctionality.ciderPPE.compatibility": "A CAP nem kompatibilis a Térbeli Hanggal. Kapcsold ki a Térbeli Hangot a folytatáshoz.",
|
"settings.warn.audio.enableAdvancedFunctionality.ciderPPE.compatibility": "A CAP nem kompatibilis a Térbeli Hanggal. Kapcsold ki a Térbeli Hangot a folytatáshoz.",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength": "CAP Erősség",
|
"settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength": "CAP Erősség",
|
||||||
"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.description": "Megváltoztatja a hangra végzett feldolgozás erősségét. (Az Agresszív mód nemkívánatos eredményeket hozhat!)",
|
||||||
|
@ -273,14 +302,14 @@
|
||||||
"settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.aggressive": "Agresszív",
|
"settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.aggressive": "Agresszív",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.audioNormalization": "Normalizálás",
|
"settings.option.audio.enableAdvancedFunctionality.audioNormalization": "Normalizálás",
|
||||||
"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 hang",
|
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "Térbeli Hang",
|
||||||
"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.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "A hangzás háromdimenziósabbá tétele. (Ez nem összekeverendő a Dolby Atmos-szal!)",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization": "Cider Tuned Spatialization",
|
"settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization": "Cider Előbeállított Térbeli Hang",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.description": "Pre-tuned Spatializing Effect, disables the customizable settings of Audio Spatialization. Spatialization must be enabled as a prerequisite.",
|
"settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.description": "Előre beállított Térbeli hangzás, ami letiltja a Térbeli Hang testreszabási beállításait. A Térbeli Hangot be kell kapcsolni az engedélyezéshez.",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile": "Cider Spatialization Profile",
|
"settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile": "Cider Térbeli Hangprofil",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.description": "Changes the Tuning Profile of the Spatialization. (Requires App Restart)",
|
"settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.description": "Megváltoztatja a Térbeli Hang előbeállítás profilját. (Újraindítás szükséges)",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.standard": "Standard",
|
"settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.standard": "Normál",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.audiophile": "Audiophile",
|
"settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.audiophile": "Professzionális",
|
||||||
"settings.warn.audio.enableAdvancedFunctionality.audioSpatialization.compatibility": "A Térbeli Hang nem kompatibilis a CAP-pal. Kapcsold ki a CAP-ot a folytatáshoz.",
|
"settings.warn.audio.enableAdvancedFunctionality.audioSpatialization.compatibility": "A Térbeli Hang nem kompatibilis a CAP-pal. Kapcsold ki a CAP-ot a folytatáshoz.",
|
||||||
"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.",
|
||||||
|
@ -290,7 +319,7 @@
|
||||||
"settings.header.visual.windowBackgroundStyle.image": "Kép",
|
"settings.header.visual.windowBackgroundStyle.image": "Kép",
|
||||||
"settings.option.visual.animatedArtwork": "Animált borító",
|
"settings.option.visual.animatedArtwork": "Animált borító",
|
||||||
"settings.header.visual.animatedArtwork.always": "Mindig",
|
"settings.header.visual.animatedArtwork.always": "Mindig",
|
||||||
"settings.header.visual.animatedArtwork.limited": "Oldalakra és speciális bejegyzésekre korlátozva.",
|
"settings.header.visual.animatedArtwork.limited": "Oldalakra és speciális bejegyzésekre korlátozva",
|
||||||
"settings.header.visual.animatedArtwork.disable": "Kikapcsolás mindenhol",
|
"settings.header.visual.animatedArtwork.disable": "Kikapcsolás mindenhol",
|
||||||
"settings.option.visual.animatedArtworkQuality": "Animált borító minősége",
|
"settings.option.visual.animatedArtworkQuality": "Animált borító minősége",
|
||||||
"settings.header.visual.animatedArtworkQuality.low": "Alacsony",
|
"settings.header.visual.animatedArtworkQuality.low": "Alacsony",
|
||||||
|
@ -305,15 +334,28 @@
|
||||||
"settings.header.visual.hardwareAcceleration.webGPU": "WebGPU",
|
"settings.header.visual.hardwareAcceleration.webGPU": "WebGPU",
|
||||||
"settings.header.visual.theme": "Téma",
|
"settings.header.visual.theme": "Téma",
|
||||||
"settings.option.visual.theme.github.download": "Telepítés GitHub URL-ről",
|
"settings.option.visual.theme.github.download": "Telepítés GitHub URL-ről",
|
||||||
"settings.option.visual.theme.github.explore": "Témaáruház",
|
"settings.option.visual.theme.github.explore": "Témák felfedezése",
|
||||||
"settings.header.visual.theme.github.page": "Témák a GitHub-ról",
|
"settings.header.visual.theme.github.page": "Témák a GitHub-ról",
|
||||||
"settings.option.visual.theme.github.install.confirm": "Biztos, hogy szeretnéd telepíteni a(z) {{ repo }} témát?",
|
"settings.option.visual.theme.github.install.confirm": "Biztosan szeretnéd telepíteni a(z) {{ repo }} témát?",
|
||||||
"settings.prompt.visual.theme.github.URL": "Add meg a telepítendő téma URL-jét",
|
"settings.prompt.visual.theme.github.URL": "Add meg a telepítendő téma URL-jét",
|
||||||
"settings.notyf.visual.theme.install.success": "Téma sikeresen telepítve",
|
"settings.notyf.visual.theme.install.success": "Téma sikeresen telepítve",
|
||||||
"settings.notyf.visual.theme.install.error": "Sikertelen volt a téma telepítése",
|
"settings.notyf.visual.theme.install.error": "Sikertelen volt a téma telepítése",
|
||||||
|
"settings.header.visual.plugin": "Plugin",
|
||||||
|
"settings.option.visual.plugin.github.download": "Telepítés GitHub URL-ről",
|
||||||
|
"settings.option.visual.plugin.github.explore": "Pluginok felfedezése",
|
||||||
|
"settings.header.visual.plugin.github.page": "Pluginok a GitHub-ról",
|
||||||
|
"settings.option.visual.plugin.github.install.confirm": "Biztosan szeretnéd telepíteni a(z) {{ repo }} plugint?",
|
||||||
|
"settings.prompt.visual.plugin.github.URL": "Add meg a telepítendő plugin URL-jét",
|
||||||
|
"settings.prompt.visual.plugin.github.success": "Plugin sikeresen telepítve, kattints az OK-ra a Cider újraindításához",
|
||||||
|
"settings.notyf.visual.plugin.install.success": "Plugin sikeresen telepítve",
|
||||||
|
"settings.notyf.visual.plugin.install.error": "Sikertelen volt a plugin telepítése",
|
||||||
"settings.option.visual.theme.default": "Cider",
|
"settings.option.visual.theme.default": "Cider",
|
||||||
"settings.option.visual.theme.dark": "Sötét",
|
"settings.option.visual.theme.dark": "Sötét",
|
||||||
"settings.option.visual.showPersonalInfo": "Személyes adatok mutatása",
|
"settings.option.visual.showPersonalInfo": "Személyes adatok megjelenítése",
|
||||||
|
"settings.header.window": "Ablak",
|
||||||
|
"settings.header.window.description": "A Cider ablakbeállításainak módosítása.",
|
||||||
|
"settings.option.window.openOnStartup": "Cider megnyitása bejelentkezésnél",
|
||||||
|
"settings.option.window.openOnStartup.hidden": "Megnyitás kis méretben",
|
||||||
"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",
|
"settings.option.lyrics.enableMusixmatch": "MusixMatch dalszövegek engedélyezése",
|
||||||
|
@ -323,31 +365,35 @@
|
||||||
"settings.header.connectivity": "Csatlakozások",
|
"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",
|
"settings.option.connectivity.discordRPC": "Discord Rich Presence",
|
||||||
"settings.option.connectivity.playbackNotifications": "Lejátszás értesítések",
|
"settings.option.connectivity.playbackNotifications": "Lejátszási értesítések",
|
||||||
"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",
|
||||||
"settings.option.connectivity.discordRPC.clearOnPause": "Discord Rich Presence törlése megállításnál",
|
"settings.option.connectivity.discordRPC.clearOnPause": "Rich Presence törlése megállításnál",
|
||||||
"settings.option.connectivity.lastfmScrobble": "LastFM Scrobbling",
|
"settings.option.connectivity.lastfmScrobble": "Last.fm Scrobbling",
|
||||||
"settings.option.connectivity.lastfmScrobble.delay": "LastFM Scrobble Késleltetés (%)",
|
"settings.option.connectivity.lastfmScrobble.delay": "Last.fm Scrobble késleltetés (%)",
|
||||||
"settings.option.connectivity.lastfmScrobble.nowPlaying": "LastFM Now Playing engedélyezése",
|
"settings.option.connectivity.lastfmScrobble.nowPlaying": "Last.fm Now Playing engedélyezése",
|
||||||
"settings.option.connectivity.lastfmScrobble.removeFeatured": "Remove featuring artists from song title (LastFM)",
|
"settings.option.connectivity.lastfmScrobble.removeFeatured": "Közreműködő zenészek eltávolítása a címből (Last.fm)",
|
||||||
"settings.option.connectivity.lastfmScrobble.filterLoop": "Loopolt zeneszám szűrése (LastFM)",
|
"settings.option.connectivity.lastfmScrobble.filterLoop": "Ismételt zeneszám szűrése (Last.fm)",
|
||||||
"settings.header.debug": "Hibakeresés",
|
"settings.header.debug": "Hibaelhárítás",
|
||||||
"settings.option.debug.copy_log": "Napló másolása a vágólapra",
|
"settings.option.debug.copy_log": "Napló másolása a vágólapra",
|
||||||
"settings.option.debug.openAppData": "Cider mappa megnyitása",
|
"settings.option.debug.openAppData": "Cider mappa megnyitása",
|
||||||
"settings.header.experimental": "Kísérleti",
|
"settings.header.experimental": "Kísérleti",
|
||||||
"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.unknownPlugin": "Unknown Sources",
|
"settings.option.experimental.unknownPlugin": "Ismeretlen források",
|
||||||
"settings.option.experimental.unknownPlugin.description": "Allow installion of plugins from repos other than the Cider Plugin Repository",
|
"settings.option.experimental.unknownPlugin.description": "Engedélyezi azon pluginok telepítését is, amik nem tartoznak a Cider Plugin Gyűjteménybe, ezáltal lehetséges biztonsági kockázatot jelentenek",
|
||||||
"settings.option.experimental.compactUI": "Kompakt felület",
|
"settings.option.experimental.compactUI": "Kompakt felület",
|
||||||
"settings.option.experimental.close_button_hide": "A bezárás gomb rejtse el az alkalmazást",
|
"settings.option.window.close_button_hide": "A bezárás gomb rejtse el az alkalmazást",
|
||||||
"settings.option.experimental.inline_playlists": "Inline Playlists and Albums",
|
"settings.option.experimental.inline_playlists": "Ablakon belüli lejátszási listák és albumok",
|
||||||
"spatial.notTurnedOn": "A térbeli hangzás ki van kapcsolva, használatához kapcsolja be.",
|
"settings.option.advanced.playlistTrackMapping": "Lejátszási lista feltérképezés",
|
||||||
"spatial.spatialProperties": "Térbeli hang",
|
"settings.option.advanced.playlistTrackMapping.description": "Engedélyezi a lejátszási listák mély feltérképezését, ami meg tudja határozni, hogy egy zeneszám mely lejátszási listákba található. A lejátszási lista gyorsítótár felépítésének időtartalma nagy mértékben megnőhet.",
|
||||||
|
"settings.option.visual.transparent": "Átlátszó keret",
|
||||||
|
"settings.option.visual.transparent.description": "Átlátszó ablakkeret (a Témák támogatása és újraindítás szükséges)",
|
||||||
|
"spatial.notTurnedOn": "A Térbeli Hang ki van kapcsolva, használatához kapcsolja be.",
|
||||||
|
"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",
|
||||||
"spatial.gain": "Gain",
|
"spatial.gain": "Növelés",
|
||||||
"spatial.roomMaterials": "Szoba felépítése",
|
"spatial.roomMaterials": "Szoba felépítése",
|
||||||
"spatial.roomDimensions": "Szoba méretei",
|
"spatial.roomDimensions": "Szoba méretei",
|
||||||
"spatial.roomPositions": "Szoba pozíciói",
|
"spatial.roomPositions": "Szoba pozíciói",
|
||||||
|
@ -362,7 +408,17 @@
|
||||||
"spatial.listener": "Hallgató",
|
"spatial.listener": "Hallgató",
|
||||||
"spatial.audioSource": "Hangforrás",
|
"spatial.audioSource": "Hangforrás",
|
||||||
"settings.header.unfinished": "Befejezetlen",
|
"settings.header.unfinished": "Befejezetlen",
|
||||||
"remote.web.title": "Cider Remote",
|
"remote.web.title": "Távirányító",
|
||||||
"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 vezérelni tudd a lejátszót.",
|
||||||
|
"share.platform.twitter.tweet": "Hallgasd meg a(z) {{song}} zenét az Apple Musicon.\n\n{{url}}\n\n#AppleMusic #Cider",
|
||||||
|
"share.platform.twitter": "Twitter",
|
||||||
|
"share.platform.facebook": "Facebook",
|
||||||
|
"share.platform.reddit": "Reddit",
|
||||||
|
"share.platform.telegram": "Telegram",
|
||||||
|
"share.platform.whatsapp": "WhatsApp",
|
||||||
|
"share.platform.messenger": "Messenger",
|
||||||
|
"share.platform.email": "Email",
|
||||||
|
"share.platform.songLink": "song.link URL másolása",
|
||||||
|
"share.platform.clipboard": "Link másolása",
|
||||||
"about.thanks": "Köszönet a Cider Collective csapatának és minden hozzájárulónak."
|
"about.thanks": "Köszönet a Cider Collective csapatának és minden hozzájárulónak."
|
||||||
}
|
}
|
||||||
|
|
|
@ -23,6 +23,8 @@
|
||||||
"term.about": "Tentang",
|
"term.about": "Tentang",
|
||||||
"term.privateSession": "Sesi Pribadi",
|
"term.privateSession": "Sesi Pribadi",
|
||||||
"term.queue": "Antrian",
|
"term.queue": "Antrian",
|
||||||
|
"term.lyrics": "Lirik",
|
||||||
|
"term.miniplayer": "Pemutar Kecil",
|
||||||
"term.history": "Riwayat",
|
"term.history": "Riwayat",
|
||||||
"term.search": "Cari",
|
"term.search": "Cari",
|
||||||
"term.library": "Pustaka",
|
"term.library": "Pustaka",
|
||||||
|
@ -61,6 +63,7 @@
|
||||||
"term.sortBy.genre": "Genre",
|
"term.sortBy.genre": "Genre",
|
||||||
"term.sortBy.releaseDate": "Tanggal Rilis",
|
"term.sortBy.releaseDate": "Tanggal Rilis",
|
||||||
"term.sortBy.duration": "Durasi",
|
"term.sortBy.duration": "Durasi",
|
||||||
|
"term.sortBy.dateAdded": "Tanggal Ditambahkan",
|
||||||
"term.sortOrder": "A-Z",
|
"term.sortOrder": "A-Z",
|
||||||
"term.sortOrder.ascending": "Terkecil",
|
"term.sortOrder.ascending": "Terkecil",
|
||||||
"term.sortOrder.descending": "Terbesar",
|
"term.sortOrder.descending": "Terbesar",
|
||||||
|
@ -84,19 +87,34 @@
|
||||||
"term.showMore": "Tampilkan lebih banyak",
|
"term.showMore": "Tampilkan lebih banyak",
|
||||||
"term.showLess": "Tampilkan lebih sedikit",
|
"term.showLess": "Tampilkan lebih sedikit",
|
||||||
"term.topSongs": "Lagu Teratas",
|
"term.topSongs": "Lagu Teratas",
|
||||||
"term.latestReleases": "Rilis Terbaru",
|
"term.latestReleases": "Rilisan Terbaru",
|
||||||
"term.time.added": "Ditambahkan",
|
"term.time.added": "Ditambahkan",
|
||||||
"term.time.released": "Dirilis",
|
"term.time.released": "Dirilis",
|
||||||
"term.time.updated": "Diperbarui",
|
"term.time.updated": "Diperbarui",
|
||||||
|
"term.time.days": "hari",
|
||||||
|
"term.time.day": {
|
||||||
|
"one": "hari",
|
||||||
|
"other": "hari"
|
||||||
|
},
|
||||||
"term.time.hours": "jam",
|
"term.time.hours": "jam",
|
||||||
"term.time.hour": "jam",
|
"term.time.hour": {
|
||||||
|
"one": "jam",
|
||||||
|
"other": "jam"
|
||||||
|
},
|
||||||
"term.time.minutes": "menit",
|
"term.time.minutes": "menit",
|
||||||
"term.time.minute": "menit",
|
"term.time.minute": {
|
||||||
|
"one": "menit",
|
||||||
|
"other": "menit"
|
||||||
|
},
|
||||||
"term.time.seconds": "detik",
|
"term.time.seconds": "detik",
|
||||||
"term.time.second": "detik",
|
"term.time.second": {
|
||||||
|
"one": "detik",
|
||||||
|
"other": "detik"
|
||||||
|
},
|
||||||
"term.fullscreenView": "Mode Layar Penuh",
|
"term.fullscreenView": "Mode Layar Penuh",
|
||||||
"term.defaultView": "Mode Default",
|
"term.defaultView": "Mode Default",
|
||||||
"term.audioSettings": "Pengaturan Audio",
|
"term.audioSettings": "Pengaturan Audio",
|
||||||
|
"term.audioControls": "Kontrol Volume",
|
||||||
"term.clearAll": "Bersihkan Semua",
|
"term.clearAll": "Bersihkan Semua",
|
||||||
"term.recentStations": "Stasiun Terbaru",
|
"term.recentStations": "Stasiun Terbaru",
|
||||||
"term.language": "Bahasa",
|
"term.language": "Bahasa",
|
||||||
|
@ -113,6 +131,10 @@
|
||||||
"term.equalizer": "Equalizer",
|
"term.equalizer": "Equalizer",
|
||||||
"term.reset": "Atur Ulang",
|
"term.reset": "Atur Ulang",
|
||||||
"term.tracks": "lagu",
|
"term.tracks": "lagu",
|
||||||
|
"term.track": {
|
||||||
|
"one" : "lagu",
|
||||||
|
"other" : "lagu"
|
||||||
|
},
|
||||||
"term.videos": "Video",
|
"term.videos": "Video",
|
||||||
"term.menu": "Menu",
|
"term.menu": "Menu",
|
||||||
"term.check": "Cek",
|
"term.check": "Cek",
|
||||||
|
@ -124,6 +146,10 @@
|
||||||
"term.addedpreset": "Preset Ditambahkan",
|
"term.addedpreset": "Preset Ditambahkan",
|
||||||
"term.deletepreset.warn": "Yakin ingin menghapus preset ini?",
|
"term.deletepreset.warn": "Yakin ingin menghapus preset ini?",
|
||||||
"term.deletedpreset": "Preset dihapus",
|
"term.deletedpreset": "Preset dihapus",
|
||||||
|
"term.defaultPresets": "Preset Default",
|
||||||
|
"term.userPresets": "Presets Pengguna",
|
||||||
|
"term.requestError": "Ada masalah dengan permintaan.",
|
||||||
|
"term.song.link.generate": "Mendapatkan link bagi song.link...",
|
||||||
"term.musicVideos": "Video Musik",
|
"term.musicVideos": "Video Musik",
|
||||||
"term.stations": "Stasiun",
|
"term.stations": "Stasiun",
|
||||||
"term.curators": "Kurator",
|
"term.curators": "Kurator",
|
||||||
|
@ -132,6 +158,23 @@
|
||||||
"term.recordLabels": "Label Rekaman",
|
"term.recordLabels": "Label Rekaman",
|
||||||
"term.videoExtras": "Bonus Video",
|
"term.videoExtras": "Bonus Video",
|
||||||
"term.top": "Atas",
|
"term.top": "Atas",
|
||||||
|
"term.version": "Versi",
|
||||||
|
"term.noVideos": "Video tidak ditemukan.",
|
||||||
|
"term.plugin": "Plug-in",
|
||||||
|
"term.pluginMenu": "Menu Plug-in",
|
||||||
|
"term.pluginMenu.none": "Tidak ada plugin interaktif",
|
||||||
|
"term.replay": "Ulangi",
|
||||||
|
"term.uniqueAlbums": "Album Spesial",
|
||||||
|
"term.uniqueArtists": "Artis Spesial",
|
||||||
|
"term.uniqueSongs": "Lagu Spesial",
|
||||||
|
"term.topArtists": "Artis Teratas",
|
||||||
|
"term.listenedTo": "Mendengarkan:",
|
||||||
|
"term.times": "kali",
|
||||||
|
"term.topAlbums": "Album Teratas",
|
||||||
|
"term.plays": "Dimainkan",
|
||||||
|
"term.topGenres": "Genre Teratas",
|
||||||
|
"term.confirmLogout": "Apakah Anda yakin ingin keluar??",
|
||||||
|
"term.creditDesignedBy": "Dirancang oleh ${authorUsername}",
|
||||||
"home.title": "Beranda",
|
"home.title": "Beranda",
|
||||||
"home.recentlyPlayed": "Baru Dimainkan",
|
"home.recentlyPlayed": "Baru Dimainkan",
|
||||||
"home.recentlyAdded": "Baru Ditambahkan",
|
"home.recentlyAdded": "Baru Ditambahkan",
|
||||||
|
@ -178,7 +221,9 @@
|
||||||
"action.startRadio": "Mulai Radio",
|
"action.startRadio": "Mulai Radio",
|
||||||
"action.goToArtist": "Lihat Halaman Artis",
|
"action.goToArtist": "Lihat Halaman Artis",
|
||||||
"action.goToAlbum": "Lihat Halaman Album",
|
"action.goToAlbum": "Lihat Halaman Album",
|
||||||
"action.moveToTop": "Pindah ke Atas",
|
"action.showInPlaylist": "Tampilkan di Playlist",
|
||||||
|
"action.showInAppleMusic": "Tampilkan di Apple Music",
|
||||||
|
"action.moveToTop": "Keluar dari Folder",
|
||||||
"action.share": "Bagikan",
|
"action.share": "Bagikan",
|
||||||
"action.rename": "Ubah Nama",
|
"action.rename": "Ubah Nama",
|
||||||
"action.love": "Suka",
|
"action.love": "Suka",
|
||||||
|
@ -196,12 +241,21 @@
|
||||||
"action.tray.quit": "Keluar",
|
"action.tray.quit": "Keluar",
|
||||||
"action.tray.show": "Tampilkan",
|
"action.tray.show": "Tampilkan",
|
||||||
"action.update": "Perbarui",
|
"action.update": "Perbarui",
|
||||||
|
"action.install": "Pasang",
|
||||||
"action.copy": "Salin",
|
"action.copy": "Salin",
|
||||||
"action.newpreset": "Preset Baru...",
|
"action.newpreset": "Preset Baru...",
|
||||||
"action.deletepreset": "Hapus Preset",
|
"action.deletepreset": "Hapus Preset",
|
||||||
|
"action.open": "Buka",
|
||||||
|
"action.relaunch.confirm": "Apakah Anda ingin memulai ulang Cider?",
|
||||||
"settings.header.general": "Umum",
|
"settings.header.general": "Umum",
|
||||||
"settings.header.general.description": "Sesuaikan pengaturan umum untuk Cider.",
|
"settings.header.general.description": "Sesuaikan pengaturan umum untuk Cider.",
|
||||||
"settings.option.general.language": "Bahasa",
|
"settings.option.general.language": "Bahasa",
|
||||||
|
"settings.option.general.resumebehavior": "Aturan Resume",
|
||||||
|
"settings.option.general.resumebehavior.description": "Aturan resume akan mempengaruhi bagaimana Cider akan melanjutkan sesi Anda ketika memulai Cider.",
|
||||||
|
"settings.option.general.resumebehavior.locally": "Lokal",
|
||||||
|
"settings.option.general.resumebehavior.locally.description": "Cider akan melanjutkan sesi terakhir Anda di perangkat ini.",
|
||||||
|
"settings.option.general.resumebehavior.history": "Riwayat",
|
||||||
|
"settings.option.general.resumebehavior.history.description": "Cider akan menambahkan lagu terakhir dari keseluruhan riwayat Apple Music Anda ke dalam antrian di seluruh perangkat.",
|
||||||
"settings.option.general.language.main": "Bahasa",
|
"settings.option.general.language.main": "Bahasa",
|
||||||
"settings.option.general.language.fun": "Bahasa Candaan",
|
"settings.option.general.language.fun": "Bahasa Candaan",
|
||||||
"settings.option.general.language.unsorted": "Tidak disortir",
|
"settings.option.general.language.unsorted": "Tidak disortir",
|
||||||
|
@ -210,8 +264,14 @@
|
||||||
"settings.option.general.updateCider.branch.description": "Pilih branch untuk memperbarui Cider",
|
"settings.option.general.updateCider.branch.description": "Pilih branch untuk memperbarui Cider",
|
||||||
"settings.option.general.updateCider.branch.main": "Stable",
|
"settings.option.general.updateCider.branch.main": "Stable",
|
||||||
"settings.option.general.updateCider.branch.develop": "Development",
|
"settings.option.general.updateCider.branch.develop": "Development",
|
||||||
|
"settings.notyf.updateCider.update-not-available": "Tidak ada pembaruan tersedia",
|
||||||
|
"settings.notyf.updateCider.update-downloaded": "Pembaruan sudah didownload, mulai ulang untuk menginstall pembaruan",
|
||||||
|
"settings.notyf.updateCider.update-error": "Terjadi kesalahan saat memperbarui Cider",
|
||||||
|
"settings.notyf.updateCider.update-timeout": "Waktu pembaruan habis",
|
||||||
"settings.header.audio": "Audio",
|
"settings.header.audio": "Audio",
|
||||||
"settings.header.audio.description": "Sesuaikan pengaturan audio untuk Cider.",
|
"settings.header.audio.description": "Sesuaikan pengaturan audio untuk Cider.",
|
||||||
|
"settings.option.audio.volumeStep": "Jangkah Volume",
|
||||||
|
"settings.option.audio.maxVolume": "Volume Maksimal",
|
||||||
"settings.option.audio.quality": "Kualitas Audio",
|
"settings.option.audio.quality": "Kualitas Audio",
|
||||||
"settings.header.audio.quality.hireslossless": "Hi-Res Lossless",
|
"settings.header.audio.quality.hireslossless": "Hi-Res Lossless",
|
||||||
"settings.header.audio.quality.hireslossless.description": "sampai dari 24-bit/192 kHz",
|
"settings.header.audio.quality.hireslossless.description": "sampai dari 24-bit/192 kHz",
|
||||||
|
@ -224,16 +284,34 @@
|
||||||
"settings.option.audio.seamlessTransition": "Transisi Audio Mulus",
|
"settings.option.audio.seamlessTransition": "Transisi Audio Mulus",
|
||||||
"settings.option.audio.enableAdvancedFunctionality": "Aktifkan Fungsi Lanjutan",
|
"settings.option.audio.enableAdvancedFunctionality": "Aktifkan Fungsi Lanjutan",
|
||||||
"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.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.audioLab": "Lab Audio Cider",
|
||||||
|
"settings.option.audio.audioLab.description": "Macam-macam efek audio yang dikembangkan sendiri untuk Cider.",
|
||||||
|
"settings.warn.audioLab.withoutAF": "AudioContext (Fungsi Lanjutan) perlu diaktifkan untuk menggunakan Lab Audio Cider.",
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.analogWarmth": "Analog Warmth",
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.analogWarmth.description": "Mensimulasikan kehangatan analog yang dimodelkan setelah Korg Nutube 6P1",
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity": "Analog Warmth intensity",
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity.description": "Mengubah intensitas pemrosesan modul Analog Warmth.",
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity.smooth": "Halus",
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity.warm": "Hangat",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.ciderPPE": "Cider Adrenaline Processor™️",
|
"settings.option.audio.enableAdvancedFunctionality.ciderPPE": "Cider Adrenaline Processor™️",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.ciderPPE.description": "Peningkatan Psikoakustik yang membuat semuanya terdengar lebih jelas dan lebih hidup | Dirancang oleh Maikiwi.",
|
|
||||||
|
"settings.warn.audio.enableAdvancedFunctionality.ciderPPE.compatibility": "CAP tidak cocok dengan Spatialisasi. Matikan Spasialisasi untuk menggunakan.",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength": "Kekuatan CAP",
|
"settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength": "Kekuatan CAP",
|
||||||
"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.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.standard": "Standar",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.aggressive": "Agresif",
|
"settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.aggressive": "Agresif",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.audioNormalization": "Normalisasi Audio",
|
"settings.option.audio.enableAdvancedFunctionality.audioNormalization": "Normalisasi Audio",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "Menormalkan puncak volume untuk masing-masing lagu demi menciptakan pengalaman mendengarkan yang lebih seragam.",
|
"settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "Menormalkan puncak volume untuk masing-masing lagu demi menciptakan pengalaman mendengarkan yang lebih seragam.",
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.audioNormalization.disabled": "Diatar oleh Lab Audio",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "Spasialisasi Audio",
|
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "Spasialisasi Audio",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "Atur ruang audio dan buat audio lebih 3 dimensi (NB: Bukan Dolby Atmos)",
|
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "Atur ruang audio dan buat audio lebih 3 dimensi (NB: Bukan Dolby Atmos)",
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization": "Spasialisasi oleh Cider",
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.description": "Efek Spasialisasi yang sudah diatur. Untuk menggunakannya, matikan pengaturan custom Spasialisasi Audio dan pastikan Spasialisasi Audio sudah aktif.",
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile": "Profil Spasialisasi Cider",
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.description": "Mengubah Profil Tuning Spasialisasi. (Memerlukan Restart Aplikasi)",
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.standard": "Standar",
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.audiophile": "Audiophile",
|
||||||
|
"settings.warn.audio.enableAdvancedFunctionality.audioSpatialization.compatibility": "Spatialization tidak cocok dengan CAP. Matikan CAP untuk menggunakan.",
|
||||||
"settings.header.visual": "Visual",
|
"settings.header.visual": "Visual",
|
||||||
"settings.header.visual.description": "Sesuaikan pengaturan visual untuk Cider.",
|
"settings.header.visual.description": "Sesuaikan pengaturan visual untuk Cider.",
|
||||||
"settings.option.visual.windowBackgroundStyle": "Gaya Latar Belakang Jendela",
|
"settings.option.visual.windowBackgroundStyle": "Gaya Latar Belakang Jendela",
|
||||||
|
@ -256,10 +334,30 @@
|
||||||
"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": "Tema",
|
"settings.header.visual.theme": "Tema",
|
||||||
|
"settings.option.visual.theme.github.download": "Pasang dari URL GitHub",
|
||||||
|
"settings.option.visual.theme.github.explore": "Jelajahi Tema di GitHub",
|
||||||
|
"settings.header.visual.theme.github.page": "Tema dari GitHub",
|
||||||
|
"settings.option.visual.theme.github.install.confirm": "Apakah anda yakin untuk memasang {{ repo }}?",
|
||||||
|
"settings.prompt.visual.theme.github.URL": "Masukan URL tema yang ingin Anda pasang",
|
||||||
|
"settings.notyf.visual.theme.install.success": "Tema berhasil dipasang",
|
||||||
|
"settings.notyf.visual.theme.install.error": "Pemasangan tema gagal",
|
||||||
|
"settings.header.visual.plugin": "Plugin",
|
||||||
|
"settings.option.visual.plugin.github.download": "Pasang dari URL GitHub",
|
||||||
|
"settings.option.visual.plugin.github.explore": "Jelajahi Plugin di GitHub",
|
||||||
|
"settings.header.visual.plugin.github.page": "Plugins from GitHub",
|
||||||
|
"settings.option.visual.plugin.github.install.confirm": "Apakah anda yakin untuk memasang {{ repo }}?",
|
||||||
|
"settings.prompt.visual.plugin.github.URL": "Masukan URL plugin yang ingin Anda pasang",
|
||||||
|
"settings.prompt.visual.plugin.github.success": "Plugin berhasil dipasang, Tekan OK untuk memulai ulang Cider",
|
||||||
|
"settings.notyf.visual.plugin.install.success": "Plugin berhasil dipasang",
|
||||||
|
"settings.notyf.visual.plugin.install.error": "Plugin gagal dipasang",
|
||||||
"settings.option.visual.theme.default": "Cider",
|
"settings.option.visual.theme.default": "Cider",
|
||||||
"settings.option.visual.theme.dark": "Gelap",
|
"settings.option.visual.theme.dark": "Gelap",
|
||||||
"settings.option.visual.showPersonalInfo": "Tampilkan Info Pribadi",
|
"settings.option.visual.showPersonalInfo": "Tampilkan Info Pribadi",
|
||||||
"settings.header.lyrics": "Lyrics",
|
"settings.header.window": "Jendela",
|
||||||
|
"settings.header.window.description": "Atur pengaturan jendela pada Cider.",
|
||||||
|
"settings.option.window.openOnStartup": "Buka Cider Ketika Perangkat Dinyalakan",
|
||||||
|
"settings.option.window.openOnStartup.hidden": "Buka dalam mode tersembunyi",
|
||||||
|
"settings.header.lyrics": "Lirik",
|
||||||
"settings.header.lyrics.description": "Sesuaikan pengaturan lirik untuk Cider.",
|
"settings.header.lyrics.description": "Sesuaikan pengaturan lirik untuk Cider.",
|
||||||
"settings.option.lyrics.enableMusixmatch": "Aktifkan Lirik Musixmatch",
|
"settings.option.lyrics.enableMusixmatch": "Aktifkan Lirik Musixmatch",
|
||||||
"settings.option.lyrics.enableMusixmatchKaraoke": "Aktifkan Mode Karaoke (khusus Musixmatch)",
|
"settings.option.lyrics.enableMusixmatchKaraoke": "Aktifkan Mode Karaoke (khusus Musixmatch)",
|
||||||
|
@ -271,18 +369,26 @@
|
||||||
"settings.option.connectivity.playbackNotifications": "Pemberitahuan Pemutaran",
|
"settings.option.connectivity.playbackNotifications": "Pemberitahuan Pemutaran",
|
||||||
"settings.header.connectivity.discordRPC.cider": "Tampilkan sebagai 'Cider'",
|
"settings.header.connectivity.discordRPC.cider": "Tampilkan sebagai 'Cider'",
|
||||||
"settings.header.connectivity.discordRPC.appleMusic": "Tampilkan sebagai 'Apple Music'",
|
"settings.header.connectivity.discordRPC.appleMusic": "Tampilkan sebagai 'Apple Music'",
|
||||||
"settings.option.connectivity.discordRPC.clearOnPause": "Sembunyikan Discord Rich Presence saat dijeda",
|
"settings.option.connectivity.discordRPC.clearOnPause": "Sembunyikan Discord Rich Presence Saat Dijeda",
|
||||||
"settings.option.connectivity.lastfmScrobble": "Last.fm Scrobbling",
|
"settings.option.connectivity.lastfmScrobble": "Last.fm Scrobbling",
|
||||||
"settings.option.connectivity.lastfmScrobble.delay": "Delay Last.fm Scrobble (%)",
|
"settings.option.connectivity.lastfmScrobble.delay": "Delay Last.fm Scrobble (%)",
|
||||||
"settings.option.connectivity.lastfmScrobble.nowPlaying": "Aktifkan Last.fm Now Playing",
|
"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.removeFeatured": "Hapus featuring artist dari judul lagu (Last.fm)",
|
||||||
"settings.option.connectivity.lastfmScrobble.filterLoop": "Filter lagu yang diulang (Last.fm)",
|
"settings.option.connectivity.lastfmScrobble.filterLoop": "Filter lagu yang diulang (Last.fm)",
|
||||||
|
"settings.header.debug": "Debug",
|
||||||
|
"settings.option.debug.copy_log": "Salin logs ke clipboard",
|
||||||
|
"settings.option.debug.openAppData": "Buka Folder Cider",
|
||||||
"settings.header.experimental": "Eksperimental",
|
"settings.header.experimental": "Eksperimental",
|
||||||
"settings.header.experimental.description": "Sesuaikan pengaturan eksperimental untuk Cider.",
|
"settings.header.experimental.description": "Sesuaikan pengaturan eksperimental untuk Cider.",
|
||||||
|
"settings.option.experimental.unknownPlugin": "Sumber Tidak Diketahui",
|
||||||
|
"settings.option.experimental.unknownPlugin.description": "Izinkan pemasangan plugin dari repo selain Cider Plugin Repository",
|
||||||
"settings.option.experimental.compactUI": "UI Kompak",
|
"settings.option.experimental.compactUI": "UI Kompak",
|
||||||
"settings.option.experimental.close_button_hide": "Tombol Tutup Menyembunyikan Aplikasi",
|
"settings.option.window.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",
|
"settings.option.experimental.inline_playlists": "Playlist dan Album Sebaris",
|
||||||
|
"settings.option.advanced.playlistTrackMapping": "Pemetaan Lagu Playlist",
|
||||||
|
"settings.option.advanced.playlistTrackMapping.description": "Mengaktifkan pemindaian daftar putar yang mendalam untuk menentukan trek mana yang ada di daftar putar. Waktu pembuatan cache daftar putar dapat meningkat secara signifikan.",
|
||||||
|
"settings.option.visual.transparent": "Frame transparan",
|
||||||
|
"settings.option.visual.transparent.description": "Frame transparan (membutuhkan tema yang mendukung, membutuhkan dibuka ulang)",
|
||||||
"spatial.notTurnedOn": "Spasialisasi Audio dinonaktifkan. Untuk menggunakan, aktifkan terlebih dahulu.",
|
"spatial.notTurnedOn": "Spasialisasi Audio dinonaktifkan. Untuk menggunakan, aktifkan terlebih dahulu.",
|
||||||
"spatial.spatialProperties": "Spatial Properties",
|
"spatial.spatialProperties": "Spatial Properties",
|
||||||
"spatial.width": "Lebar",
|
"spatial.width": "Lebar",
|
||||||
|
|
|
@ -203,7 +203,7 @@
|
||||||
"settings.option.audio.enableAdvancedFunctionality": "先進的な機能",
|
"settings.option.audio.enableAdvancedFunctionality": "先進的な機能",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.description": "AudioContext 機能を有効にすると、オーディオノーマライズ、空間オーディオ、イコライザーなどの機能を使用できますが、音が途切れるかもしれません。",
|
"settings.option.audio.enableAdvancedFunctionality.description": "AudioContext 機能を有効にすると、オーディオノーマライズ、空間オーディオ、イコライザーなどの機能を使用できますが、音が途切れるかもしれません。",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.ciderPPE": "Cider Adrenaline Processor™️",
|
"settings.option.audio.enableAdvancedFunctionality.ciderPPE": "Cider Adrenaline Processor™️",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.ciderPPE.description": "圧縮音源を高解像度に処理することによって、ロスレス相当の音質に向上させます。",
|
|
||||||
"settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength": "CAPの強さ",
|
"settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength": "CAPの強さ",
|
||||||
"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": "標準",
|
"settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.standard": "標準",
|
||||||
|
@ -255,7 +255,7 @@
|
||||||
"settings.header.experimental": "試験的な機能",
|
"settings.header.experimental": "試験的な機能",
|
||||||
"settings.header.experimental.description": "開発中の実験的な機能は不完全で不安定である可能性があります",
|
"settings.header.experimental.description": "開発中の実験的な機能は不完全で不安定である可能性があります",
|
||||||
"settings.option.experimental.compactUI": "コンパクトインターフェース",
|
"settings.option.experimental.compactUI": "コンパクトインターフェース",
|
||||||
"settings.option.experimental.close_button_hide": "「閉じる」ボタンでアプリを隠します",
|
"settings.option.window.close_button_hide": "「閉じる」ボタンでアプリを隠します",
|
||||||
"settings.option.experimental.copy_log": "ログをコピーする",
|
"settings.option.experimental.copy_log": "ログをコピーする",
|
||||||
"settings.option.experimental.inline_playlists": "プレイリストをインラインで表示",
|
"settings.option.experimental.inline_playlists": "プレイリストをインラインで表示",
|
||||||
"spatial.spatialProperties": "空間化のプロパティ",
|
"spatial.spatialProperties": "空間化のプロパティ",
|
||||||
|
|
|
@ -279,7 +279,7 @@
|
||||||
"settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity.smooth": "부드러움",
|
"settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity.smooth": "부드러움",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity.warm": "따뜻함",
|
"settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity.warm": "따뜻함",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.ciderPPE": "Cider Adrenaline Processor™️",
|
"settings.option.audio.enableAdvancedFunctionality.ciderPPE": "Cider Adrenaline Processor™️",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.ciderPPE.description": "모든 소리를 더욱 풍부하고 생생하게 만드는 음향 심리학적 향상입니다. | Designed by Maikiwi.",
|
|
||||||
"settings.warn.audio.enableAdvancedFunctionality.ciderPPE.compatibility": "CAP는 공간화와 호환되지 않습니다. 계속하려면 공간화를 비활성화하십시오.",
|
"settings.warn.audio.enableAdvancedFunctionality.ciderPPE.compatibility": "CAP는 공간화와 호환되지 않습니다. 계속하려면 공간화를 비활성화하십시오.",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength": "CAP 강도",
|
"settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength": "CAP 강도",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.description": "오디오 처리 강도를 변경합니다. (적극적으로 설정 시 바람직하지 않은 결과를 초래할 수 있습니다.)",
|
"settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.description": "오디오 처리 강도를 변경합니다. (적극적으로 설정 시 바람직하지 않은 결과를 초래할 수 있습니다.)",
|
||||||
|
|
|
@ -86,7 +86,6 @@
|
||||||
"term.clearAll": "Limpar Tudo",
|
"term.clearAll": "Limpar Tudo",
|
||||||
"term.language": "Idioma",
|
"term.language": "Idioma",
|
||||||
"term.recentStations": "Estações Recentes",
|
"term.recentStations": "Estações Recentes",
|
||||||
"term.language": "Idioma",
|
|
||||||
"term.funLanguages": "Fun",
|
"term.funLanguages": "Fun",
|
||||||
"term.noLyrics": "Carregando... / Letras não achadas./ Instrumental.",
|
"term.noLyrics": "Carregando... / Letras não achadas./ Instrumental.",
|
||||||
"term.copyright": "Copyright",
|
"term.copyright": "Copyright",
|
||||||
|
@ -220,7 +219,7 @@
|
||||||
"settings.option.audio.enableAdvancedFunctionality": "Ativar configurações avancadas",
|
"settings.option.audio.enableAdvancedFunctionality": "Ativar configurações avancadas",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.description": "Habilitar a funcionalidade AudioContext permitirá recursos de áudio estendidos, como Normalização de Áudio , Equalizadores e Visualizadores. No entanto, em alguns sistemas, isso pode causar travamentos nas faixas de áudio.",
|
"settings.option.audio.enableAdvancedFunctionality.description": "Habilitar a funcionalidade AudioContext permitirá recursos de áudio estendidos, como Normalização de Áudio , Equalizadores e Visualizadores. No entanto, em alguns sistemas, isso pode causar travamentos nas faixas de áudio.",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.ciderPPE": "Cider Adrenaline Processor™️",
|
"settings.option.audio.enableAdvancedFunctionality.ciderPPE": "Cider Adrenaline Processor™️",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.ciderPPE.description": "Melhoras psicoacusticas que fazem com que tudo soe mais vivo | feito por Maikiwi.",
|
|
||||||
"settings.warn.audio.enableAdvancedFunctionality.ciderPPE.compatibility": "CAP não é compativel com Áudio Espacial. Por favor, desative-o para continuar.",
|
"settings.warn.audio.enableAdvancedFunctionality.ciderPPE.compatibility": "CAP não é compativel com Áudio Espacial. Por favor, desative-o para continuar.",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength": "Potência do CAP",
|
"settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength": "Potência do CAP",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.description": "Muda a potência do processamento feito no áudio. (a função Agressiva pode levar a resultados não desejados.)",
|
"settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.description": "Muda a potência do processamento feito no áudio. (a função Agressiva pode levar a resultados não desejados.)",
|
||||||
|
@ -283,7 +282,7 @@
|
||||||
"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",
|
"settings.option.experimental.compactUI": "UI Compacto",
|
||||||
"settings.option.experimental.close_button_hide": "Fechar apenas esconde o Cider",
|
"settings.option.window.close_button_hide": "Fechar apenas esconde o Cider",
|
||||||
"spatial.spatialProperties": "Propriedades do Espacial",
|
"spatial.spatialProperties": "Propriedades do Espacial",
|
||||||
"spatial.width": "Largura",
|
"spatial.width": "Largura",
|
||||||
"spatial.height": "Altura",
|
"spatial.height": "Altura",
|
||||||
|
|
|
@ -243,7 +243,7 @@
|
||||||
"settings.header.experimental": "Experimental",
|
"settings.header.experimental": "Experimental",
|
||||||
"settings.header.experimental.description": "Ajustează setările experimentale pentru Cider.",
|
"settings.header.experimental.description": "Ajustează setările experimentale pentru Cider.",
|
||||||
"settings.option.experimental.compactUI": "UI Compact",
|
"settings.option.experimental.compactUI": "UI Compact",
|
||||||
"settings.option.experimental.close_button_hide": "Butonul de închidere ar trebui să ascundă aplicația",
|
"settings.option.window.close_button_hide": "Butonul de închidere ar trebui să ascundă aplicația",
|
||||||
"spatial.notTurnedOn": "Spațializarea Audio este dezactivată. Pentru a folosi opțiunea aceasta, activați-o mai întâi.",
|
"spatial.notTurnedOn": "Spațializarea Audio este dezactivată. Pentru a folosi opțiunea aceasta, activați-o mai întâi.",
|
||||||
"spatial.spatialProperties": "Proprietăți Spațiale",
|
"spatial.spatialProperties": "Proprietăți Spațiale",
|
||||||
"spatial.width": "Lățime",
|
"spatial.width": "Lățime",
|
||||||
|
|
|
@ -249,7 +249,7 @@
|
||||||
"settings.option.audio.enableAdvancedFunctionality": "Включить расширенный функционал",
|
"settings.option.audio.enableAdvancedFunctionality": "Включить расширенный функционал",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.description": "Включение функции AudioContext позволит использовать расширенные функции звука, такие как нормализация звука, эквалайзеры и визуализаторы, однако в некоторых системах это может вызвать заикание звуковых дорожек.",
|
"settings.option.audio.enableAdvancedFunctionality.description": "Включение функции AudioContext позволит использовать расширенные функции звука, такие как нормализация звука, эквалайзеры и визуализаторы, однако в некоторых системах это может вызвать заикание звуковых дорожек.",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.ciderPPE": "Cider Adrenaline Processor™️",
|
"settings.option.audio.enableAdvancedFunctionality.ciderPPE": "Cider Adrenaline Processor™️",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.ciderPPE.description": "Психоакустические улучшения, благодаря которым все звучит богаче и живее | Разработано Maikiwi.",
|
|
||||||
"settings.warn.audio.enableAdvancedFunctionality.ciderPPE.compatibility": "CAP не совместим с пространственным звучанием. Пожалуйста, отключите пространственное звучание, чтобы продолжить.",
|
"settings.warn.audio.enableAdvancedFunctionality.ciderPPE.compatibility": "CAP не совместим с пространственным звучанием. Пожалуйста, отключите пространственное звучание, чтобы продолжить.",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength": "Режим CAP",
|
"settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength": "Режим CAP",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.description": "Изменяет режим обработки звука. (Режим агрессии может привести к нежелаемым результатам)",
|
"settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.description": "Изменяет режим обработки звука. (Режим агрессии может привести к нежелаемым результатам)",
|
||||||
|
@ -315,7 +315,7 @@
|
||||||
"settings.header.experimental": "Экспериментальные",
|
"settings.header.experimental": "Экспериментальные",
|
||||||
"settings.header.experimental.description": "Настройка экспериментальных функций Cider.",
|
"settings.header.experimental.description": "Настройка экспериментальных функций Cider.",
|
||||||
"settings.option.experimental.compactUI": "Компактный интерфейс",
|
"settings.option.experimental.compactUI": "Компактный интерфейс",
|
||||||
"settings.option.experimental.close_button_hide": "Кнопка «Закрыть» скрывает приложение",
|
"settings.option.window.close_button_hide": "Кнопка «Закрыть» скрывает приложение",
|
||||||
"settings.option.experimental.inline_playlists": "Встроенные плейлисты и альбомы",
|
"settings.option.experimental.inline_playlists": "Встроенные плейлисты и альбомы",
|
||||||
"spatial.notTurnedOn": "Пространственное аудио отключено. Чтобы использовать, сначала включите его.",
|
"spatial.notTurnedOn": "Пространственное аудио отключено. Чтобы использовать, сначала включите его.",
|
||||||
"spatial.spatialProperties": "Настройка пространственного аудио",
|
"spatial.spatialProperties": "Настройка пространственного аудио",
|
||||||
|
|
|
@ -196,7 +196,7 @@
|
||||||
"settings.option.audio.enableAdvancedFunctionality": "Zapnút Pokročilé Nastavenia Zvuku",
|
"settings.option.audio.enableAdvancedFunctionality": "Zapnút Pokročilé Nastavenia Zvuku",
|
||||||
"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.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™️",
|
"settings.option.audio.enableAdvancedFunctionality.ciderPPE": "Cider Adrenaline Processor™️",
|
||||||
"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",
|
"settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength": "CAP Sila",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.description": "Zmení silu CAP (Agresívná môže spôsobiť nežiadané výsledky)",
|
"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.standard": "Štandardná",
|
||||||
|
|
|
@ -23,6 +23,8 @@
|
||||||
"term.about": "About",
|
"term.about": "About",
|
||||||
"term.privateSession": "Private Session",
|
"term.privateSession": "Private Session",
|
||||||
"term.queue": "Queue",
|
"term.queue": "Queue",
|
||||||
|
"term.lyrics": "Lyrics",
|
||||||
|
"term.miniplayer": "MiniPlayer",
|
||||||
"term.history": "History",
|
"term.history": "History",
|
||||||
"term.search": "Search",
|
"term.search": "Search",
|
||||||
"term.library": "Library",
|
"term.library": "Library",
|
||||||
|
@ -90,13 +92,25 @@
|
||||||
"term.time.released": "Released",
|
"term.time.released": "Released",
|
||||||
"term.time.updated": "Updated",
|
"term.time.updated": "Updated",
|
||||||
"term.time.days": "days",
|
"term.time.days": "days",
|
||||||
"term.time.day": "day",
|
"term.time.day": {
|
||||||
|
"one": "day",
|
||||||
|
"other": "days"
|
||||||
|
},
|
||||||
"term.time.hours": "hours",
|
"term.time.hours": "hours",
|
||||||
"term.time.hour": "hour",
|
"term.time.hour": {
|
||||||
|
"one": "hour",
|
||||||
|
"other": "hours"
|
||||||
|
},
|
||||||
"term.time.minutes": "minutes",
|
"term.time.minutes": "minutes",
|
||||||
"term.time.minute": "minute",
|
"term.time.minute": {
|
||||||
|
"one": "minute",
|
||||||
|
"other": "minutes"
|
||||||
|
},
|
||||||
"term.time.seconds": "seconds",
|
"term.time.seconds": "seconds",
|
||||||
"term.time.second": "second",
|
"term.time.second": {
|
||||||
|
"one": "second",
|
||||||
|
"other": "seconds"
|
||||||
|
},
|
||||||
"term.fullscreenView": "Fullscreen View",
|
"term.fullscreenView": "Fullscreen View",
|
||||||
"term.defaultView": "Default View",
|
"term.defaultView": "Default View",
|
||||||
"term.audioSettings": "Audio Settings",
|
"term.audioSettings": "Audio Settings",
|
||||||
|
@ -160,6 +174,7 @@
|
||||||
"term.plays": "Plays",
|
"term.plays": "Plays",
|
||||||
"term.topGenres": "Top Genres",
|
"term.topGenres": "Top Genres",
|
||||||
"term.confirmLogout": "Are you sure you want to logout?",
|
"term.confirmLogout": "Are you sure you want to logout?",
|
||||||
|
"term.creditDesignedBy": "Designed by ${authorUsername}",
|
||||||
"home.title": "Home",
|
"home.title": "Home",
|
||||||
"home.recentlyPlayed": "Recently Played",
|
"home.recentlyPlayed": "Recently Played",
|
||||||
"home.recentlyAdded": "Recently Added",
|
"home.recentlyAdded": "Recently Added",
|
||||||
|
@ -269,6 +284,7 @@
|
||||||
"settings.option.audio.seamlessTransition": "Seamless Audio Transition",
|
"settings.option.audio.seamlessTransition": "Seamless Audio Transition",
|
||||||
"settings.option.audio.enableAdvancedFunctionality": "Enable Advanced Functionality",
|
"settings.option.audio.enableAdvancedFunctionality": "Enable Advanced Functionality",
|
||||||
"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.warn.audio.enableAdvancedFunctionality.lowcores": "Cider thinks your PC cant handle these features. Are you sure you want to continue?",
|
||||||
"settings.option.audio.audioLab": "Cider Audio Lab",
|
"settings.option.audio.audioLab": "Cider Audio Lab",
|
||||||
"settings.option.audio.audioLab.description": "An assortment of in-house developed audio effects for Cider.",
|
"settings.option.audio.audioLab.description": "An assortment of in-house developed audio effects for Cider.",
|
||||||
"settings.warn.audioLab.withoutAF": "AudioContext (Advanced Functionality) is required to enable Cider Audio Laboratory.",
|
"settings.warn.audioLab.withoutAF": "AudioContext (Advanced Functionality) is required to enable Cider Audio Laboratory.",
|
||||||
|
@ -279,14 +295,15 @@
|
||||||
"settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity.smooth": "Smooth",
|
"settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity.smooth": "Smooth",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity.warm": "Warm",
|
"settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity.warm": "Warm",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.ciderPPE": "Cider Adrenaline Processor™️",
|
"settings.option.audio.enableAdvancedFunctionality.ciderPPE": "Cider Adrenaline Processor™️",
|
||||||
"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": "Enhances the perceived audio quality of 256 kbps AAC audio by using a real-time algorithm that takes advantage of both psychoacoustic models of human hearing and AAC encoding characteristics.",
|
||||||
"settings.warn.audio.enableAdvancedFunctionality.ciderPPE.compatibility": "CAP is not compatible with Spatialization. Please disable Spatialization to continue.",
|
"settings.warn.audio.enableAdvancedFunctionality.ciderPPE.compatibility": "CAP is not compatible with Spatialization. Please disable Spatialization to continue.",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength": "CAP Strength",
|
"settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength": "CAP Strength",
|
||||||
"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",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.aggressive": "Aggressive",
|
"settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.aggressive": "Aggressive",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.audioNormalization": "Audio Normalization",
|
"settings.option.audio.enableAdvancedFunctionality.audioNormalization": "Audio Normalization",
|
||||||
"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. (Does not work on user uploaded tracks)",
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.audioNormalization.disabled": "Managed by Audio Lab",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "Audio Spatialization",
|
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "Audio Spatialization",
|
||||||
"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.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization": "Cider Tuned Spatialization",
|
"settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization": "Cider Tuned Spatialization",
|
||||||
|
@ -337,6 +354,10 @@
|
||||||
"settings.option.visual.theme.default": "Cider",
|
"settings.option.visual.theme.default": "Cider",
|
||||||
"settings.option.visual.theme.dark": "Dark",
|
"settings.option.visual.theme.dark": "Dark",
|
||||||
"settings.option.visual.showPersonalInfo": "Show Personal Info",
|
"settings.option.visual.showPersonalInfo": "Show Personal Info",
|
||||||
|
"settings.header.window": "Window",
|
||||||
|
"settings.header.window.description": "Adjust the window settings for Cider.",
|
||||||
|
"settings.option.window.openOnStartup": "Open Cider on Startup",
|
||||||
|
"settings.option.window.openOnStartup.hidden": "Open Hidden",
|
||||||
"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.",
|
||||||
"settings.option.lyrics.enableMusixmatch": "Enable Musixmatch Lyrics",
|
"settings.option.lyrics.enableMusixmatch": "Enable Musixmatch Lyrics",
|
||||||
|
@ -360,15 +381,18 @@
|
||||||
"settings.option.debug.openAppData": "Open Cider Folder",
|
"settings.option.debug.openAppData": "Open Cider Folder",
|
||||||
"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.",
|
||||||
|
"settings.option.experimental.reinstallwidevine": "Reinstall WidevineCDM",
|
||||||
|
"settings.option.experimental.reinstallwidevine.confirm": "Are you sure you want to reinstall Widevine?",
|
||||||
"settings.option.experimental.unknownPlugin": "Unknown Sources",
|
"settings.option.experimental.unknownPlugin": "Unknown Sources",
|
||||||
"settings.option.experimental.unknownPlugin.description": "Allow installation of plugins from repos other than the Cider Plugin Repository",
|
"settings.option.experimental.unknownPlugin.description": "Allow installation of plugins from repos other than the Cider Plugin Repository",
|
||||||
"settings.option.experimental.compactUI": "Compact UI",
|
"settings.option.experimental.compactUI": "Compact UI",
|
||||||
"settings.option.experimental.close_button_hide": "Close Button Should Hide the Application",
|
"settings.option.window.close_button_hide": "Close Button Should Hide the Application",
|
||||||
"settings.option.experimental.inline_playlists": "Inline Playlists and Albums",
|
"settings.option.experimental.inline_playlists": "Inline Playlists and Albums",
|
||||||
"settings.option.advanced.playlistTrackMapping": "Playlist Track Mapping",
|
"settings.option.advanced.playlistTrackMapping": "Playlist Track Mapping",
|
||||||
"settings.option.advanced.playlistTrackMapping.description": "Enables deep scanning of playlists to determine which tracks are in which playlists. Playlist cache build times can increase significantly.",
|
"settings.option.advanced.playlistTrackMapping.description": "Enables deep scanning of playlists to determine which tracks are in which playlists. Playlist cache build times can increase significantly.",
|
||||||
"settings.option.visual.transparent": "Transparent frame",
|
"settings.option.visual.transparent": "Transparent frame",
|
||||||
"settings.option.visual.transparent.description": "Transparent frame (needs Theme Support , requires relaunch)",
|
"settings.option.visual.transparent.description": "Transparent frame (needs Theme Support , requires relaunch)",
|
||||||
|
"settings.header.advanced": "Advanced",
|
||||||
"spatial.notTurnedOn": "Audio Spatialization is disabled. To use, please enable it first.",
|
"spatial.notTurnedOn": "Audio Spatialization is disabled. To use, please enable it first.",
|
||||||
"spatial.spatialProperties": "Spatial Properties",
|
"spatial.spatialProperties": "Spatial Properties",
|
||||||
"spatial.width": "Width",
|
"spatial.width": "Width",
|
||||||
|
@ -391,5 +415,15 @@
|
||||||
"settings.header.unfinished": "Unfinished",
|
"settings.header.unfinished": "Unfinished",
|
||||||
"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",
|
||||||
|
"share.platform.twitter.tweet": "Listen to {{song}} on Apple Music.\n\n{{url}}\n\n#AppleMusic #Cider",
|
||||||
|
"share.platform.twitter": "Twitter",
|
||||||
|
"share.platform.facebook": "Facebook",
|
||||||
|
"share.platform.reddit": "Reddit",
|
||||||
|
"share.platform.telegram": "Telegram",
|
||||||
|
"share.platform.whatsapp": "WhatsApp",
|
||||||
|
"share.platform.messenger": "Messenger",
|
||||||
|
"share.platform.email": "Email",
|
||||||
|
"share.platform.songLink": "Copy with song.link",
|
||||||
|
"share.platform.clipboard": "Copy Link",
|
||||||
"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."
|
||||||
}
|
}
|
||||||
|
|
|
@ -242,7 +242,7 @@
|
||||||
"settings.header.experimental": "Experimentellt",
|
"settings.header.experimental": "Experimentellt",
|
||||||
"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",
|
"settings.option.experimental.compactUI": "Kompakt gränssnitt",
|
||||||
"settings.option.experimental.close_button_hide": "Stängknappen gömmer Cider istället",
|
"settings.option.window.close_button_hide": "Stängknappen gömmer Cider istället",
|
||||||
"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",
|
||||||
"spatial.width": "Bredd",
|
"spatial.width": "Bredd",
|
||||||
|
|
|
@ -23,6 +23,9 @@
|
||||||
"term.about": "Hakkında",
|
"term.about": "Hakkında",
|
||||||
"term.privateSession": "Özel Oturum",
|
"term.privateSession": "Özel Oturum",
|
||||||
"term.queue": "Çalma Sırası",
|
"term.queue": "Çalma Sırası",
|
||||||
|
"term.lyrics": "Şarkı Sözleri",
|
||||||
|
"term.miniplayer": "MiniÇalar",
|
||||||
|
"term.history": "Geçmiş",
|
||||||
"term.search": "Arama",
|
"term.search": "Arama",
|
||||||
"term.library": "Arşiv",
|
"term.library": "Arşiv",
|
||||||
"term.listenNow": "Şimdi Dinle",
|
"term.listenNow": "Şimdi Dinle",
|
||||||
|
@ -35,10 +38,10 @@
|
||||||
"term.podcasts": "Podcastler",
|
"term.podcasts": "Podcastler",
|
||||||
"term.playlists": "Listeler",
|
"term.playlists": "Listeler",
|
||||||
"term.playlist": "Liste",
|
"term.playlist": "Liste",
|
||||||
"term.createNewPlaylist": "Yeni Liste Oluştur",
|
|
||||||
"term.createNewPlaylistFolder": "Yeni Klasör Oluştur",
|
|
||||||
"term.newPlaylist": "Yeni Liste",
|
"term.newPlaylist": "Yeni Liste",
|
||||||
"term.newPlaylistFolder": "Yeni Klasör",
|
"term.newPlaylistFolder": "Yeni Klasör",
|
||||||
|
"term.createNewPlaylist": "Yeni Liste Oluştur",
|
||||||
|
"term.createNewPlaylistFolder": "Yeni Klasör Oluştur",
|
||||||
"term.deletePlaylist": "Bu listeyi silmek istediğinize emin misiniz?",
|
"term.deletePlaylist": "Bu listeyi silmek istediğinize emin misiniz?",
|
||||||
"term.play": "Oynat",
|
"term.play": "Oynat",
|
||||||
"term.pause": "Duraklat",
|
"term.pause": "Duraklat",
|
||||||
|
@ -50,6 +53,7 @@
|
||||||
"term.mute": "Sustur",
|
"term.mute": "Sustur",
|
||||||
"term.unmute": "Sesi Aç",
|
"term.unmute": "Sesi Aç",
|
||||||
"term.share": "Paylaş",
|
"term.share": "Paylaş",
|
||||||
|
"term.share.success": "Panoya Kopyalandı",
|
||||||
"term.settings": "Ayarlar",
|
"term.settings": "Ayarlar",
|
||||||
"term.seeAll": "Tümünü Gör",
|
"term.seeAll": "Tümünü Gör",
|
||||||
"term.sortBy": "Sırala",
|
"term.sortBy": "Sırala",
|
||||||
|
@ -59,8 +63,9 @@
|
||||||
"term.sortBy.genre": "Tür",
|
"term.sortBy.genre": "Tür",
|
||||||
"term.sortBy.releaseDate": "Yayınlanma Tarihi",
|
"term.sortBy.releaseDate": "Yayınlanma Tarihi",
|
||||||
"term.sortBy.duration": "Süre",
|
"term.sortBy.duration": "Süre",
|
||||||
|
"term.sortBy.dateAdded": "Eklenme Tarihi",
|
||||||
"term.sortOrder": "A-Z",
|
"term.sortOrder": "A-Z",
|
||||||
"term.sortOrder.ascending": "Çoğalan",
|
"term.sortOrder.ascending": "Artan",
|
||||||
"term.sortOrder.descending": "Azalan",
|
"term.sortOrder.descending": "Azalan",
|
||||||
"term.viewAs": "Şöyle Göster",
|
"term.viewAs": "Şöyle Göster",
|
||||||
"term.viewAs.coverArt": "Albüm Kapağı",
|
"term.viewAs.coverArt": "Albüm Kapağı",
|
||||||
|
@ -86,6 +91,26 @@
|
||||||
"term.time.added": "Şu tarihte eklendi: ",
|
"term.time.added": "Şu tarihte eklendi: ",
|
||||||
"term.time.released": "Şu tarihte yayınalndı: ",
|
"term.time.released": "Şu tarihte yayınalndı: ",
|
||||||
"term.time.updated": "Şu tarihte güncellendi: ",
|
"term.time.updated": "Şu tarihte güncellendi: ",
|
||||||
|
"term.time.days": "gün",
|
||||||
|
"term.time.day": {
|
||||||
|
"one": "gün",
|
||||||
|
"other": "gün"
|
||||||
|
},
|
||||||
|
"term.time.hours": "saat",
|
||||||
|
"term.time.hour": {
|
||||||
|
"one": "saat",
|
||||||
|
"other": "saat"
|
||||||
|
},
|
||||||
|
"term.time.minutes": "dakika",
|
||||||
|
"term.time.minute": {
|
||||||
|
"one": "dakika",
|
||||||
|
"other": "dakika"
|
||||||
|
},
|
||||||
|
"term.time.seconds": "saniye",
|
||||||
|
"term.time.second": {
|
||||||
|
"one": "saniye",
|
||||||
|
"other": "saniye"
|
||||||
|
},
|
||||||
"term.fullscreenView": "Tam Ekrana Geç",
|
"term.fullscreenView": "Tam Ekrana Geç",
|
||||||
"term.defaultView": "Normal Görünüme Dön",
|
"term.defaultView": "Normal Görünüme Dön",
|
||||||
"term.spacializedAudioSetting": "Uzamsal Ses Ayarları",
|
"term.spacializedAudioSetting": "Uzamsal Ses Ayarları",
|
||||||
|
@ -105,19 +130,15 @@
|
||||||
"term.contributors": "Katkıda Bulunanlar",
|
"term.contributors": "Katkıda Bulunanlar",
|
||||||
"term.equalizer": "Ekolayzer",
|
"term.equalizer": "Ekolayzer",
|
||||||
"term.reset": "Sıfırla",
|
"term.reset": "Sıfırla",
|
||||||
"term.tracks": "adet şarkı",
|
"term.tracks": "şarkı",
|
||||||
"term.time.hours": "saat",
|
"term.track": {
|
||||||
"term.time.hour": "saat",
|
"one": "şarkı",
|
||||||
"term.time.minutes": "dakika",
|
"other": "şarkı"
|
||||||
"term.time.minute": "dakika",
|
},
|
||||||
"term.time.seconds": "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.check": "Şimdi Kontrol Et",
|
||||||
"term.aboutArtist": "About {{artistName}}",
|
"term.aboutArtist": "About {{artistName}}",
|
||||||
"term.updateCider": "Güncellemeleri Denetle",
|
|
||||||
"term.share.success": "Panoya Kopyalandı",
|
|
||||||
"term.topResult": "En İyi Sonuç",
|
"term.topResult": "En İyi Sonuç",
|
||||||
"term.sharedPlaylists": "Paylaşılan Listeler",
|
"term.sharedPlaylists": "Paylaşılan Listeler",
|
||||||
"term.people": "Kişiler",
|
"term.people": "Kişiler",
|
||||||
|
@ -125,6 +146,10 @@
|
||||||
"term.addedpreset": "Önayar Kaydedildi",
|
"term.addedpreset": "Önayar Kaydedildi",
|
||||||
"term.deletepreset.warn": "Bu önayarı silmek istediğinize emin misiniz?",
|
"term.deletepreset.warn": "Bu önayarı silmek istediğinize emin misiniz?",
|
||||||
"term.deletedpreset": "Önayar Silindi",
|
"term.deletedpreset": "Önayar Silindi",
|
||||||
|
"term.defaultPresets": "Gömülü Önayarlar",
|
||||||
|
"term.userPresets": "Kullanıcı Önayarları",
|
||||||
|
"term.requestError": "Bir sorun oldu.",
|
||||||
|
"term.song.link.generate": "song.link paylaşım linki alınıyor...",
|
||||||
"term.musicVideos": "Video Klipler",
|
"term.musicVideos": "Video Klipler",
|
||||||
"term.stations": "İstasyonlar",
|
"term.stations": "İstasyonlar",
|
||||||
"term.curators": "Editörler",
|
"term.curators": "Editörler",
|
||||||
|
@ -133,6 +158,23 @@
|
||||||
"term.recordLabels": "Kayıt Stüdyoları",
|
"term.recordLabels": "Kayıt Stüdyoları",
|
||||||
"term.videoExtras": "Ekstra Videolar",
|
"term.videoExtras": "Ekstra Videolar",
|
||||||
"term.top": "En İyi",
|
"term.top": "En İyi",
|
||||||
|
"term.version": "Versiyon",
|
||||||
|
"term.noVideos": "Kayıtlı video bulunamadı.",
|
||||||
|
"term.plugin": "Eklenti",
|
||||||
|
"term.pluginMenu": "Eklenti Menüsü",
|
||||||
|
"term.pluginMenu.none": "Eklenti ayarları mevcut değil",
|
||||||
|
"term.replay": "Yeniden Oynat",
|
||||||
|
"term.uniqueAlbums": "Özgün Albümler",
|
||||||
|
"term.uniqueArtists": "Özgün Sanatçılar",
|
||||||
|
"term.uniqueSongs": "Özgün Şarkılar",
|
||||||
|
"term.topArtists": "Popüler Sanatçılar",
|
||||||
|
"term.listenedTo": "Dinlenen:",
|
||||||
|
"term.times": "defa",
|
||||||
|
"term.topAlbums": "Popüler Albümler",
|
||||||
|
"term.plays": "Çalma",
|
||||||
|
"term.topGenres": "Popüler Türler",
|
||||||
|
"term.confirmLogout": "Çıkış yapmak istediğine emin misin?",
|
||||||
|
"term.creditDesignedBy": "${authorUsername} tarafından tasarlandı",
|
||||||
"home.title": "Ana Sayfa",
|
"home.title": "Ana Sayfa",
|
||||||
"home.recentlyPlayed": "Son Oynatılanlar",
|
"home.recentlyPlayed": "Son Oynatılanlar",
|
||||||
"home.recentlyAdded": "Son Eklenenler",
|
"home.recentlyAdded": "Son Eklenenler",
|
||||||
|
@ -158,18 +200,16 @@
|
||||||
"action.addToLibrary.error": "Arşiv'e Eklenemedi",
|
"action.addToLibrary.error": "Arşiv'e Eklenemedi",
|
||||||
"action.removeFromLibrary": "Arşiv'den Sil",
|
"action.removeFromLibrary": "Arşiv'den Sil",
|
||||||
"action.removeFromLibrary.success": "Arşiv'den Silindi",
|
"action.removeFromLibrary.success": "Arşiv'den Silindi",
|
||||||
"action.createPlaylist": "Yeni Liste Oluştur",
|
|
||||||
"action.addToPlaylist": "Liste'ye Ekle",
|
|
||||||
"action.removeFromPlaylist": "Liste'den Sil",
|
|
||||||
"action.addToFavorites": "Favorilere Ekle",
|
|
||||||
"action.moveToTop": "En Başa Taşı",
|
|
||||||
"action.rename": "Yeniden Adlandır",
|
|
||||||
"action.addToQueue": "Sıraya Ekle",
|
"action.addToQueue": "Sıraya Ekle",
|
||||||
"action.addToQueue.success": "Sıraya Eklendi",
|
"action.addToQueue.success": "Sıraya Eklendi",
|
||||||
"action.addToQueue.error": "Sıraya Eklenemedi",
|
"action.addToQueue.error": "Sıraya Eklenemedi",
|
||||||
"action.removeFromQueue": "Sıradan Kaldır",
|
"action.removeFromQueue": "Sıradan Kaldır",
|
||||||
"action.removeFromQueue.success": "Sıradan Kaldırıldı",
|
"action.removeFromQueue.success": "Sıradan Kaldırıldı",
|
||||||
"action.removeFromQueue.error": "Sıradan Kaldırılamadı",
|
"action.removeFromQueue.error": "Sıradan Kaldırılamadı",
|
||||||
|
"action.createPlaylist": "Yeni Liste Oluştur",
|
||||||
|
"action.addToPlaylist": "Liste'ye Ekle",
|
||||||
|
"action.removeFromPlaylist": "Liste'den Sil",
|
||||||
|
"action.addToFavorites": "Favorilere Ekle",
|
||||||
"action.follow": "Takip Et",
|
"action.follow": "Takip Et",
|
||||||
"action.follow.success": "Takip Ediliyor",
|
"action.follow.success": "Takip Ediliyor",
|
||||||
"action.follow.error": "Takip Edilemedi",
|
"action.follow.error": "Takip Edilemedi",
|
||||||
|
@ -181,7 +221,11 @@
|
||||||
"action.startRadio": "İstasyon Yarat",
|
"action.startRadio": "İstasyon Yarat",
|
||||||
"action.goToArtist": "Sanatçıya Git",
|
"action.goToArtist": "Sanatçıya Git",
|
||||||
"action.goToAlbum": "Albüme Git",
|
"action.goToAlbum": "Albüme Git",
|
||||||
|
"action.showInPlaylist": "Listede göster",
|
||||||
|
"action.showInAppleMusic": "Apple Müzik'te göster",
|
||||||
|
"action.moveToTop": "Klasörden Çık",
|
||||||
"action.share": "Paylaş",
|
"action.share": "Paylaş",
|
||||||
|
"action.rename": "Yeniden Adlandır",
|
||||||
"action.love": "Beğen",
|
"action.love": "Beğen",
|
||||||
"action.unlove": "Beğeniyi Kaldır",
|
"action.unlove": "Beğeniyi Kaldır",
|
||||||
"action.dislike": "Bunun Gibileri Daha Az Öner",
|
"action.dislike": "Bunun Gibileri Daha Az Öner",
|
||||||
|
@ -190,19 +234,28 @@
|
||||||
"action.playTracksNext": "${app.selectedMediaItems.length} adet şarkıyı sıraya ekle",
|
"action.playTracksNext": "${app.selectedMediaItems.length} adet şarkıyı sıraya ekle",
|
||||||
"action.playTracksLater": "${app.selectedMediaItems.length} adet şarkıyı sıranın en sonuna ekle",
|
"action.playTracksLater": "${app.selectedMediaItems.length} adet şarkıyı sıranın en sonuna ekle",
|
||||||
"action.removeTracks": "Sıradan ${self.selectedItems.length} adet şarkıyı kaldır",
|
"action.removeTracks": "Sıradan ${self.selectedItems.length} adet şarkıyı kaldır",
|
||||||
"action.import": "Import",
|
"action.import": "İçeri Aktar",
|
||||||
"action.export": "Export",
|
"action.export": "Dışarı Aktar",
|
||||||
"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": "Çık",
|
"action.tray.quit": "Çık",
|
||||||
"action.tray.show": "Göster",
|
"action.tray.show": "Göster",
|
||||||
"action.update": "Güncelle",
|
"action.update": "Güncelle",
|
||||||
|
"action.install": "Yükle",
|
||||||
"action.copy": "Kopyala",
|
"action.copy": "Kopyala",
|
||||||
"action.newpreset": "Yeni Önayar...",
|
"action.newpreset": "Yeni Önayar...",
|
||||||
"action.deletepreset": "Önayarı Sil",
|
"action.deletepreset": "Önayarı Sil",
|
||||||
|
"action.open": "Aç",
|
||||||
|
"action.relaunch.confirm": "Cider'i yeniden başlatmak istediğinize emin misiniz?",
|
||||||
"settings.header.general": "Genel Ayarlar",
|
"settings.header.general": "Genel Ayarlar",
|
||||||
"settings.header.general.description": "Genel ayarları buradan düzenleyin.",
|
"settings.header.general.description": "Genel ayarları buradan düzenleyin.",
|
||||||
"settings.option.general.language": "Dil Seçeneği",
|
"settings.option.general.language": "Dil Seçeneği",
|
||||||
|
"settings.option.general.resumebehavior": "Kalınan yerden devam etme",
|
||||||
|
"settings.option.general.resumebehavior.description": "Devam etme davranışı, uygulamaya döndüğünüzde Cider'ın oturumunuzu nasıl sürdüreceğini etkiler.",
|
||||||
|
"settings.option.general.resumebehavior.locally": "Yerel",
|
||||||
|
"settings.option.general.resumebehavior.locally.description": "Cider, bu makinedeki son oturumunuza devam edecek.",
|
||||||
|
"settings.option.general.resumebehavior.history": "Apple Müzik Geçmişi",
|
||||||
|
"settings.option.general.resumebehavior.history.description": "Cider, cihazlar arasında genel Apple Music geçmişinizdeki son şarkıyı sıraya alır.",
|
||||||
"settings.option.general.language.main": "Gerçek Diller",
|
"settings.option.general.language.main": "Gerçek Diller",
|
||||||
"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",
|
||||||
|
@ -211,8 +264,14 @@
|
||||||
"settings.option.general.updateCider.branch.description": "Cider'in hangi versiyonuna güncelleneceğini seçin",
|
"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.main": "Stabil",
|
||||||
"settings.option.general.updateCider.branch.develop": "Deneysel",
|
"settings.option.general.updateCider.branch.develop": "Deneysel",
|
||||||
|
"settings.notyf.updateCider.update-not-available": "Güncelleme bulunamadı",
|
||||||
|
"settings.notyf.updateCider.update-downloaded": "Güncelleme indirildi, yüklemek için lütfen uygulamayı yeniden başlatın",
|
||||||
|
"settings.notyf.updateCider.update-error": "Güncelleme alınırken hata meydana geldi",
|
||||||
|
"settings.notyf.updateCider.update-timeout": "Bağlantı zaman aşımına uğradı",
|
||||||
"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.volumeStep": "Ses Değişim Derecesi",
|
||||||
|
"settings.option.audio.maxVolume": "Maks. Ses Yüksekliği",
|
||||||
"settings.option.audio.quality": "Ses Kalitesi",
|
"settings.option.audio.quality": "Ses Kalitesi",
|
||||||
"settings.header.audio.quality.hireslossless": "Yüksek Çözünürlüklü Kayıpsız",
|
"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.hireslossless.description": "24-bit/192 kHz'e kadar",
|
||||||
|
@ -222,20 +281,38 @@
|
||||||
"settings.header.audio.quality.high.description": "256 kbps",
|
"settings.header.audio.quality.high.description": "256 kbps",
|
||||||
"settings.header.audio.quality.standard": "Standart",
|
"settings.header.audio.quality.standard": "Standart",
|
||||||
"settings.header.audio.quality.standard.description": "64 kbps",
|
"settings.header.audio.quality.standard.description": "64 kbps",
|
||||||
"settings.header.audio.quality.auto": "Otomatik",
|
|
||||||
"settings.option.audio.seamlessTransition": "Kesintisiz Ses Geçişi",
|
"settings.option.audio.seamlessTransition": "Kesintisiz Ses Geçişi",
|
||||||
"settings.option.audio.enableAdvancedFunctionality": "Gelişmiş Ses Deneyimi",
|
"settings.option.audio.enableAdvancedFunctionality": "Gelişmiş Ses Deneyimi",
|
||||||
"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.warn.audio.enableAdvancedFunctionality.lowcores": "Cider, PC'nizin bu özellikleri kaldıramayacağını düşünüyor. Devam etmek istediğinize emin misiniz?",
|
||||||
|
"settings.option.audio.audioLab": "Cider Ses Laboratuvarı",
|
||||||
|
"settings.option.audio.audioLab.description": "Cider için özel olarak geliştirilmiş çeşitli ses efektleri.",
|
||||||
|
"settings.warn.audioLab.withoutAF": "Cider Ses Laboratuvarı'nı etkinleştirmek için AudioContext (Gelişmiş İşlevsellik) gereklidir.",
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.analogWarmth": "Analog Simülasyonu",
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.analogWarmth.description": "Korg Nutube 6P1 donanımının analog sıcaklığını simüle eder",
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity": "Analog Sıcaklık yoğunluğu",
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity.description": "Analog Sıcaklık Modülünün çalışma yoğunluğunu değiştirir.",
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity.smooth": "Yumuşak",
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity.warm": "Hararetli",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.ciderPPE": "Cider Adrenalin Prosesörü™️",
|
"settings.option.audio.enableAdvancedFunctionality.ciderPPE": "Cider Adrenalin Prosesörü™️",
|
||||||
"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.warn.audio.enableAdvancedFunctionality.ciderPPE.compatibility": "CAP, Uzamsal Ses ile uyumlu değildir. Devam etmek için lütfen Uzamsallaştırmayı devre dışı bırakın.",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength": "CAP Kuvveti",
|
"settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength": "CAP Kuvveti",
|
||||||
"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.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.standard": "Standart",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.aggressive": "Agresif",
|
"settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.aggressive": "Agresif",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.audioNormalization": "Ses Normalleştirme",
|
"settings.option.audio.enableAdvancedFunctionality.audioNormalization": "Ses Normalleştirme",
|
||||||
"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.audioNormalization.disabled": "Laboratuvar tarafından kontrol ediliyor",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "Uzamsal Ses",
|
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "Uzamsal Ses",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "Sesi uzamsallaştırın ve sesi daha 3 boyutlu hale getirin (not: Bu Dolby Atmos değildir)",
|
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "Sesi uzamsallaştırın ve sesi daha 3 boyutlu hale getirin (not: Bu Dolby Atmos değildir)",
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization": "Özel Ayarlanmış Uzamsallaştırma",
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.description": "Önceden ayarlanmış Uzamsallaştırma Etkisi, Ses Uzamsallaştırmanın özelleştirilebilir ayarlarını devre dışı bırakır. Uzamsallaştırma bir ön koşul olarak etkinleştirilmelidir.",
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile": "Mekan Profili",
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.description": "Uzamsallaştırmanın Ayarlama Profilini değiştirir. (Uygulamanın Yeniden Başlatılmasını Gerektirir)",
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.standard": "Standart",
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.audiophile": "Odyofil",
|
||||||
|
"settings.warn.audio.enableAdvancedFunctionality.audioSpatialization.compatibility": "Uzamsallaştırma, CAP ile uyumlu değildir. Devam etmek için lütfen CAP'ı devre dışı bırakın.",
|
||||||
"settings.header.visual": "Görünüm",
|
"settings.header.visual": "Görünüm",
|
||||||
"settings.header.visual.description": "Cider'in nasıl gözükmesini istediğinizi ayarlayın",
|
"settings.header.visual.description": "Cider'in nasıl gözükmesini istediğinizi ayarlayın",
|
||||||
"settings.option.visual.windowBackgroundStyle": "Uygulama Arka Plan Stili",
|
"settings.option.visual.windowBackgroundStyle": "Uygulama Arka Plan Stili",
|
||||||
|
@ -258,9 +335,29 @@
|
||||||
"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.header.visual.theme": "Tema",
|
||||||
|
"settings.option.visual.theme.github.download": "GitHub URL'sinden yükleyin",
|
||||||
|
"settings.option.visual.theme.github.explore": "GitHub'daki Temaları Keşfedin",
|
||||||
|
"settings.header.visual.theme.github.page": "GitHub'dan Temalar",
|
||||||
|
"settings.option.visual.theme.github.install.confirm": "{{ repo }} yüklemek istediğinizden emin misiniz?",
|
||||||
|
"settings.prompt.visual.theme.github.URL": "Yüklemek istediğiniz temanın URL'sini girin",
|
||||||
|
"settings.notyf.visual.theme.install.success": "Tema başarıyla kuruldu",
|
||||||
|
"settings.notyf.visual.theme.install.error": "Tema kurulumu başarısız oldu",
|
||||||
|
"settings.header.visual.plugin": "Eklenti",
|
||||||
|
"settings.option.visual.plugin.github.download": "GitHub URL'sinden yükleyin",
|
||||||
|
"settings.option.visual.plugin.github.explore": "GitHub'daki Eklentileri Keşfedin",
|
||||||
|
"settings.header.visual.plugin.github.page": "GitHub'dan Eklentiler",
|
||||||
|
"settings.option.visual.plugin.github.install.confirm": "{{ repo }} yüklemek istediğinizden emin misiniz?",
|
||||||
|
"settings.prompt.visual.plugin.github.URL": "Yüklemek istediğiniz eklentinin URL'sini girin",
|
||||||
|
"settings.prompt.visual.plugin.github.success": "Eklenti başarıyla yüklendi, Cider'i yeniden başlatmak için Tamam'a basın",
|
||||||
|
"settings.notyf.visual.plugin.install.success": "Eklenti başarıyla kuruldu",
|
||||||
|
"settings.notyf.visual.plugin.install.error": "Eklenti kurulumu başarısız oldu",
|
||||||
"settings.option.visual.theme.default": "Cider",
|
"settings.option.visual.theme.default": "Cider",
|
||||||
"settings.option.visual.theme.dark": "Karanlık",
|
"settings.option.visual.theme.dark": "Karanlık",
|
||||||
"settings.option.visual.showPersonalInfo": "Kullanıcı Adımı Göster",
|
"settings.option.visual.showPersonalInfo": "Kullanıcı Adımı Göster",
|
||||||
|
"settings.header.window": "Pencere",
|
||||||
|
"settings.header.window.description": "Cider için pencere ayarlarını yapın.",
|
||||||
|
"settings.option.window.openOnStartup": "Başlangıçta Cider'i açın",
|
||||||
|
"settings.option.window.openOnStartup.hidden": "Küçültülmüş şekilde aç",
|
||||||
"settings.header.lyrics": "Şarkı Sözleri",
|
"settings.header.lyrics": "Şarkı Sözleri",
|
||||||
"settings.header.lyrics.description": "Cider'in şarkı sözlerini nasıl görüntülemesini istediğini buradan ayarlayın.",
|
"settings.header.lyrics.description": "Cider'in şarkı sözlerini nasıl görüntülemesini istediğini buradan ayarlayın.",
|
||||||
"settings.option.lyrics.enableMusixmatch": "Musixmatch Kullan",
|
"settings.option.lyrics.enableMusixmatch": "Musixmatch Kullan",
|
||||||
|
@ -279,12 +376,23 @@
|
||||||
"settings.option.connectivity.lastfmScrobble.nowPlaying": "Şimdi çalan şarkıyı LastFM'de göster",
|
"settings.option.connectivity.lastfmScrobble.nowPlaying": "Şimdi çalan şarkıyı LastFM'de göster",
|
||||||
"settings.option.connectivity.lastfmScrobble.removeFeatured": "Albüm sanatçısını Scrobbledan kaldır(LastFM)",
|
"settings.option.connectivity.lastfmScrobble.removeFeatured": "Albüm sanatçısını Scrobbledan kaldır(LastFM)",
|
||||||
"settings.option.connectivity.lastfmScrobble.filterLoop": "Tekrar edilen şarkıyı filtrele (LastFM)",
|
"settings.option.connectivity.lastfmScrobble.filterLoop": "Tekrar edilen şarkıyı filtrele (LastFM)",
|
||||||
|
"settings.header.debug": "Hata Ayıklama",
|
||||||
|
"settings.option.debug.copy_log": "Günlükleri panoya kopyala",
|
||||||
|
"settings.option.debug.openAppData": "Cider'in bulunduğu klasörü aç",
|
||||||
"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.reinstallwidevine": "WidevineCDM'yi yeniden yükleyin",
|
||||||
|
"settings.option.experimental.reinstallwidevine.confirm": "Widevine'i yeniden yüklemek istediğinizden emin misiniz?",
|
||||||
|
"settings.option.experimental.unknownPlugin": "Bilinmeyen kaynaklar",
|
||||||
|
"settings.option.experimental.unknownPlugin.description": "Cider Eklenti Deposu dışındaki depolardan eklentilerin yüklenmesine izin ver",
|
||||||
"settings.option.experimental.compactUI": "Kompakt Arayüz",
|
"settings.option.experimental.compactUI": "Kompakt Arayüz",
|
||||||
"settings.option.experimental.close_button_hide": "Kapatma Düğmesi Cider'i Küçültür",
|
"settings.option.window.close_button_hide": "Kapatma Düğmesi Cider'i Küçültür",
|
||||||
"settings.option.experimental.copy_log": "Günlüğü Panoya Kopyala",
|
|
||||||
"settings.option.experimental.inline_playlists": "Listeleri ve Albümleri Açılır Pencere İle göster",
|
"settings.option.experimental.inline_playlists": "Listeleri ve Albümleri Açılır Pencere İle göster",
|
||||||
|
"settings.option.advanced.playlistTrackMapping": "Şarkı Dizini Oluşturma",
|
||||||
|
"settings.option.advanced.playlistTrackMapping.description": "Hangi parçaların hangi çalma listelerinde olduğunu belirlemek için çalma listelerinin derinlemesine taranmasını sağlar. Oynatma listesi önbelleği oluşturma süreleri önemli ölçüde artabilir.",
|
||||||
|
"settings.option.visual.transparent": "Şeffaf çerçeve",
|
||||||
|
"settings.option.visual.transparent.description": "Şeffaf çerçeve (Tema Desteğine ihtiyaç duyar, yeniden başlatma gerektirir)",
|
||||||
|
"settings.header.advanced": "Gelişmiş",
|
||||||
"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",
|
||||||
|
@ -307,5 +415,15 @@
|
||||||
"settings.header.unfinished": "Geliştirme Aşamasında",
|
"settings.header.unfinished": "Geliştirme Aşamasında",
|
||||||
"remote.web.title": "Cider'e Bağlan",
|
"remote.web.title": "Cider'e Bağlan",
|
||||||
"remote.web.description": "Telefonunuzu Bu Cider Oturumuyla Eşleştirmek için QR Kodunu Tarayın",
|
"remote.web.description": "Telefonunuzu Bu Cider Oturumuyla Eşleştirmek için QR Kodunu Tarayın",
|
||||||
|
"share.platform.twitter.tweet": "Apple Müzik'te {{song}} dinleyin.\n\n{{url}}\n\n#AppleMusic #Cider",
|
||||||
|
"share.platform.twitter": "Twitter",
|
||||||
|
"share.platform.facebook": "Facebook",
|
||||||
|
"share.platform.reddit": "Reddit",
|
||||||
|
"share.platform.telegram": "Telegram",
|
||||||
|
"share.platform.whatsapp": "WhatsApp",
|
||||||
|
"share.platform.messenger": "Messenger",
|
||||||
|
"share.platform.email": "Eposta",
|
||||||
|
"share.platform.songLink": "song.link bağlantısını kopyala",
|
||||||
|
"share.platform.clipboard": "Bağlantıyı kopyala",
|
||||||
"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."
|
||||||
}
|
}
|
|
@ -228,7 +228,7 @@
|
||||||
"settings.option.audio.enableAdvancedFunctionality": "Kích hoạt chính năng nâng cao",
|
"settings.option.audio.enableAdvancedFunctionality": "Kích hoạt chính năng nâng cao",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.description": "Bật các chức năng nâng cao sẽ kích hoạt các chức năng như EQ, Chuẩn hoá âm lượng hay Visualizer, tuy nhiên có thể sẽ ảnh hưởng tới chất lượng âm thanh",
|
"settings.option.audio.enableAdvancedFunctionality.description": "Bật các chức năng nâng cao sẽ kích hoạt các chức năng như EQ, Chuẩn hoá âm lượng hay Visualizer, tuy nhiên có thể sẽ ảnh hưởng tới chất lượng âm thanh",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.ciderPPE": "Cider Adrenaline Processor™️",
|
"settings.option.audio.enableAdvancedFunctionality.ciderPPE": "Cider Adrenaline Processor™️",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.ciderPPE.description": "Các tinh chỉnh về âm thanh giúp cho nhạc của bạn ấm và rõ hơn | Tạo bởi Maikiwi.",
|
|
||||||
"settings.warn.audio.enableAdvancedFunctionality.ciderPPE.compatibility": "CAP không tương thích với Âm thanh đa chiều. Hãy tắt Âm thanh đa chiều để kích hoạt.",
|
"settings.warn.audio.enableAdvancedFunctionality.ciderPPE.compatibility": "CAP không tương thích với Âm thanh đa chiều. Hãy tắt Âm thanh đa chiều để kích hoạt.",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength": "CAP Strength",
|
"settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength": "CAP Strength",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.description": "Chỉnh mức độ ảnh hưởng của CAP đến âm thanh. (Chế độ Mạnh có thể ảnh hưởng đến âm thanh của bạn)",
|
"settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.description": "Chỉnh mức độ ảnh hưởng của CAP đến âm thanh. (Chế độ Mạnh có thể ảnh hưởng đến âm thanh của bạn)",
|
||||||
|
@ -285,7 +285,7 @@
|
||||||
"settings.header.experimental": "Thử nghiệm",
|
"settings.header.experimental": "Thử nghiệm",
|
||||||
"settings.header.experimental.description": "Thay đổi các cài đặt lời thử nghiệm của Cider.",
|
"settings.header.experimental.description": "Thay đổi các cài đặt lời thử nghiệm của Cider.",
|
||||||
"settings.option.experimental.compactUI": "UI thu gọn",
|
"settings.option.experimental.compactUI": "UI thu gọn",
|
||||||
"settings.option.experimental.close_button_hide": "Nút thoát cửa số sẽ ẩn Cider xuống khay hệ thống",
|
"settings.option.window.close_button_hide": "Nút thoát cửa số sẽ ẩn Cider xuống khay hệ thống",
|
||||||
"settings.option.experimental.copy_log": "Sao chép logs ra bộ nhớ tạm",
|
"settings.option.experimental.copy_log": "Sao chép logs ra bộ nhớ tạm",
|
||||||
"settings.option.experimental.inline_playlists": "Playlists and Albums hiện nổi lên trên",
|
"settings.option.experimental.inline_playlists": "Playlists and Albums hiện nổi lên trên",
|
||||||
"spatial.notTurnedOn": "Âm thanh đa chiều chưa được kích hoạt. Hãy kích hoạt nó trước",
|
"spatial.notTurnedOn": "Âm thanh đa chiều chưa được kích hoạt. Hãy kích hoạt nó trước",
|
||||||
|
|
|
@ -229,7 +229,7 @@
|
||||||
"settings.option.audio.enableAdvancedFunctionality": "进阶功能",
|
"settings.option.audio.enableAdvancedFunctionality": "进阶功能",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.description": "启用 AudioContext 将解锁例如音量标准化和音频空间化的功能,但可能会在小部分设备上出现音频上的卡顿。",
|
"settings.option.audio.enableAdvancedFunctionality.description": "启用 AudioContext 将解锁例如音量标准化和音频空间化的功能,但可能会在小部分设备上出现音频上的卡顿。",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.ciderPPE": "Cider 数字增强引擎™️",
|
"settings.option.audio.enableAdvancedFunctionality.ciderPPE": "Cider 数字增强引擎™️",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.ciderPPE.description": "将欺骗您的大脑来感知到近似无损音频的效果。",
|
|
||||||
"settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength": "数字增强引擎强度",
|
"settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength": "数字增强引擎强度",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.description": "改变音频处理的强度。(激进选项可能产生杂音)",
|
"settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.description": "改变音频处理的强度。(激进选项可能产生杂音)",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.audioNormalization": "音量标准化",
|
"settings.option.audio.enableAdvancedFunctionality.audioNormalization": "音量标准化",
|
||||||
|
@ -291,7 +291,7 @@
|
||||||
"settings.header.experimental": "实验性功能",
|
"settings.header.experimental": "实验性功能",
|
||||||
"settings.header.experimental.description": "调整 Cider 的实验性功能",
|
"settings.header.experimental.description": "调整 Cider 的实验性功能",
|
||||||
"settings.option.experimental.compactUI": "紧凑型 UI",
|
"settings.option.experimental.compactUI": "紧凑型 UI",
|
||||||
"settings.option.experimental.close_button_hide": "点击关闭按钮时仅隐藏窗口",
|
"settings.option.window.close_button_hide": "点击关闭按钮时仅隐藏窗口",
|
||||||
"settings.option.experimental.copy_log": "复制日志至剪贴板",
|
"settings.option.experimental.copy_log": "复制日志至剪贴板",
|
||||||
"spatial.notTurnedOn": "请在设定中开启空间音频。",
|
"spatial.notTurnedOn": "请在设定中开启空间音频。",
|
||||||
"spatial.spatialProperties": "空间属性",
|
"spatial.spatialProperties": "空间属性",
|
||||||
|
|
|
@ -231,7 +231,7 @@
|
||||||
"settings.option.audio.enableAdvancedFunctionality": "進階功能",
|
"settings.option.audio.enableAdvancedFunctionality": "進階功能",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.description": "啟用 AudioContext 將解鎖類似音量平衡和均衡器的進階功能。但是會在一些電腦造成音樂卡頓。",
|
"settings.option.audio.enableAdvancedFunctionality.description": "啟用 AudioContext 將解鎖類似音量平衡和均衡器的進階功能。但是會在一些電腦造成音樂卡頓。",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.ciderPPE": "Cider 數碼音訊增強處理™️",
|
"settings.option.audio.enableAdvancedFunctionality.ciderPPE": "Cider 數碼音訊增強處理™️",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.ciderPPE.description": "能夠欺騙你的大腦讓你感受到近似無損壓縮的音質 | 由 Maikiwi 設計",
|
|
||||||
"settings.warn.audio.enableAdvancedFunctionality.ciderPPE.compatibility": "音訊增強處理不兼容於空間音訊,請先停用空間音訊。",
|
"settings.warn.audio.enableAdvancedFunctionality.ciderPPE.compatibility": "音訊增強處理不兼容於空間音訊,請先停用空間音訊。",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength": "數碼音訊增強處理設定",
|
"settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength": "數碼音訊增強處理設定",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.description": "將更改音訊處理的激進程度(激進型選項有可能會引起雜訊)",
|
"settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength.description": "將更改音訊處理的激進程度(激進型選項有可能會引起雜訊)",
|
||||||
|
@ -297,7 +297,7 @@
|
||||||
"settings.header.experimental": "實驗性功能",
|
"settings.header.experimental": "實驗性功能",
|
||||||
"settings.header.experimental.description": "調整Cider的實驗性功能",
|
"settings.header.experimental.description": "調整Cider的實驗性功能",
|
||||||
"settings.option.experimental.compactUI": "緊凑型 UI",
|
"settings.option.experimental.compactUI": "緊凑型 UI",
|
||||||
"settings.option.experimental.close_button_hide": "以關閉按鈕來隱藏 Cider",
|
"settings.option.window.close_button_hide": "以關閉按鈕來隱藏 Cider",
|
||||||
"spatial.notTurnedOn": "請先在設定中啟用空間音訊。",
|
"spatial.notTurnedOn": "請先在設定中啟用空間音訊。",
|
||||||
"spatial.spatialProperties": "空間音訊屬性",
|
"spatial.spatialProperties": "空間音訊屬性",
|
||||||
"spatial.width": "闊度",
|
"spatial.width": "闊度",
|
||||||
|
|
|
@ -6,10 +6,10 @@
|
||||||
"app.name": "Cider",
|
"app.name": "Cider",
|
||||||
"date.format": "${y}年${m}月${d}日",
|
"date.format": "${y}年${m}月${d}日",
|
||||||
"dialog.cancel": "取消",
|
"dialog.cancel": "取消",
|
||||||
"dialog.ok": "確定",
|
"dialog.ok": "好",
|
||||||
"notification.updatingLibrarySongs": "正在更新資料庫的歌曲...",
|
"notification.updatingLibrarySongs": "正在更新「音樂資料庫」...",
|
||||||
"notification.updatingLibraryAlbums": "正在更新資料庫的專輯...",
|
"notification.updatingLibraryAlbums": "正在更新「專輯資料庫」...",
|
||||||
"notification.updatingLibraryArtists": "正在更新資料庫的藝人...",
|
"notification.updatingLibraryArtists": "正在更新「藝人資料庫」...",
|
||||||
"term.appleMusic": "Apple Music",
|
"term.appleMusic": "Apple Music",
|
||||||
"term.applePodcasts": "Apple Podcasts",
|
"term.applePodcasts": "Apple Podcasts",
|
||||||
"term.itunes": "iTunes",
|
"term.itunes": "iTunes",
|
||||||
|
@ -20,9 +20,11 @@
|
||||||
"term.logout": "登出",
|
"term.logout": "登出",
|
||||||
"term.login": "登入",
|
"term.login": "登入",
|
||||||
"term.about": "關於",
|
"term.about": "關於",
|
||||||
"term.privateSession": "私人時段",
|
"term.privateSession": "私人時間",
|
||||||
"term.queue": "待播清單",
|
"term.queue": "待播清單",
|
||||||
"term.history": "播放歷史",
|
"term.lyrics": "歌詞",
|
||||||
|
"term.miniplayer": "迷你播放器",
|
||||||
|
"term.history": "記錄",
|
||||||
"term.search": "搜尋",
|
"term.search": "搜尋",
|
||||||
"term.library": "資料庫",
|
"term.library": "資料庫",
|
||||||
"term.listenNow": "立即聆聽",
|
"term.listenNow": "立即聆聽",
|
||||||
|
@ -35,11 +37,11 @@
|
||||||
"term.podcasts": "Podcasts",
|
"term.podcasts": "Podcasts",
|
||||||
"term.playlists": "播放列表",
|
"term.playlists": "播放列表",
|
||||||
"term.playlist": "播放列表",
|
"term.playlist": "播放列表",
|
||||||
"term.newPlaylist": "新播放列表",
|
"term.newPlaylist": "新的播放列表",
|
||||||
"term.newPlaylistFolder": "新播放列表資料夾",
|
"term.newPlaylistFolder": "新的播放列表檔案夾",
|
||||||
"term.createNewPlaylist": "新增播放列表",
|
"term.createNewPlaylist": "新增播放列表",
|
||||||
"term.createNewPlaylistFolder": "新增播放列表資料夾",
|
"term.createNewPlaylistFolder": "新增播放列表檔案夾",
|
||||||
"term.deletePlaylist": "您確定要刪除此播放列表嗎?",
|
"term.deletePlaylist": "你確定要刪除此播放列表嗎?",
|
||||||
"term.play": "播放",
|
"term.play": "播放",
|
||||||
"term.pause": "暫停",
|
"term.pause": "暫停",
|
||||||
"term.previous": "上一首",
|
"term.previous": "上一首",
|
||||||
|
@ -57,23 +59,23 @@
|
||||||
"term.sortBy.album": "專輯",
|
"term.sortBy.album": "專輯",
|
||||||
"term.sortBy.artist": "藝人",
|
"term.sortBy.artist": "藝人",
|
||||||
"term.sortBy.name": "歌名",
|
"term.sortBy.name": "歌名",
|
||||||
"term.sortBy.genre": "音樂風格",
|
"term.sortBy.genre": "類型",
|
||||||
"term.sortBy.releaseDate": "發行日期",
|
"term.sortBy.releaseDate": "發行日期",
|
||||||
"term.sortBy.duration": "時長",
|
"term.sortBy.duration": "時間長度",
|
||||||
"term.sortBy.dateAdded": "新增日期",
|
"term.sortBy.dateAdded": "新增日期",
|
||||||
"term.sortOrder": "字母排序",
|
"term.sortOrder": "排序方式",
|
||||||
"term.sortOrder.ascending": "升序",
|
"term.sortOrder.ascending": "升冪排序",
|
||||||
"term.sortOrder.descending": "降序",
|
"term.sortOrder.descending": "降冪排序",
|
||||||
"term.viewAs": "顯示模式",
|
"term.viewAs": "顯示模式",
|
||||||
"term.viewAs.coverArt": "專輯封面",
|
"term.viewAs.coverArt": "專輯插圖",
|
||||||
"term.viewAs.list": "列表",
|
"term.viewAs.list": "列表",
|
||||||
"term.size": "大小",
|
"term.size": "顯示方式",
|
||||||
"term.size.normal": "正常",
|
"term.size.normal": "正常",
|
||||||
"term.size.compact": "緊密",
|
"term.size.compact": "緊密",
|
||||||
"term.enable": "啟用",
|
"term.enable": "開啟",
|
||||||
"term.disable": "停用",
|
"term.disable": "關閉",
|
||||||
"term.enabled": "已啟用",
|
"term.enabled": "已開啟",
|
||||||
"term.disabled": "已停用",
|
"term.disabled": "已關閉",
|
||||||
"term.connect": "連接",
|
"term.connect": "連接",
|
||||||
"term.connecting": "連接中",
|
"term.connecting": "連接中",
|
||||||
"term.disconnect": "斷開",
|
"term.disconnect": "斷開",
|
||||||
|
@ -102,7 +104,7 @@
|
||||||
"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": "贊助我們",
|
||||||
|
@ -118,23 +120,24 @@
|
||||||
"other": "首歌曲"
|
"other": "首歌曲"
|
||||||
},
|
},
|
||||||
"term.tracks": "首歌曲",
|
"term.tracks": "首歌曲",
|
||||||
"term.videos": "影片",
|
"term.videos": "音樂錄影帶",
|
||||||
"term.menu": "選單",
|
"term.menu": "選單",
|
||||||
"term.check": "檢查",
|
"term.check": "檢查",
|
||||||
"term.aboutArtist": "關於{{artistName}}",
|
"term.aboutArtist": "關於{{artistName}}",
|
||||||
"term.requestError": "請求發生錯誤。",
|
"term.requestError": "請求發生錯誤。",
|
||||||
"term.song.link.generate": "正在取得 song.link 的分享網址...",
|
"term.song.link.generate": "正在取得 song.link 的分享網址...",
|
||||||
"term.version": "版本",
|
"term.version": "版本",
|
||||||
|
"term.creditDesignedBy": "由 ${authorUsername} 設計",
|
||||||
"home.title": "首頁",
|
"home.title": "首頁",
|
||||||
"home.recentlyPlayed": "最近播放",
|
"home.recentlyPlayed": "最近播放",
|
||||||
"home.recentlyAdded": "最近加入",
|
"home.recentlyAdded": "最近加入",
|
||||||
"home.artistsFeed": "藝人追蹤",
|
"home.artistsFeed": "藝人追蹤",
|
||||||
"home.artistsFeed.noArtist": "追蹤一些藝人來獲得他們的最新歌曲。",
|
"home.artistsFeed.noArtist": "追蹤你喜愛的藝人來取得他們的最新發行歌曲。",
|
||||||
"home.madeForYou": "為您推薦",
|
"home.madeForYou": "為您推薦",
|
||||||
"home.friendsListeningTo": "朋友正在聆聽",
|
"home.friendsListeningTo": "朋友正在聆聽",
|
||||||
"home.followedArtists": "追蹤的藝人",
|
"home.followedArtists": "追蹤的藝人",
|
||||||
"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": "嘗試新的搜尋項目。",
|
||||||
"podcast.followOnCider": "在 Cider 上追蹤",
|
"podcast.followOnCider": "在 Cider 上追蹤",
|
||||||
|
@ -145,47 +148,48 @@
|
||||||
"podcast.episodes": "單集",
|
"podcast.episodes": "單集",
|
||||||
"podcast.playEpisode": "播放單集",
|
"podcast.playEpisode": "播放單集",
|
||||||
"podcast.website": "Podcast 網站",
|
"podcast.website": "Podcast 網站",
|
||||||
"action.addToLibrary": "加入資料庫",
|
"action.addToLibrary": "加入到資料庫",
|
||||||
"action.addToLibrary.success": "成功加入資料庫",
|
"action.addToLibrary.success": "成功加入資料庫",
|
||||||
"action.addToLibrary.error": "加入資料庫的過程發生錯誤",
|
"action.addToLibrary.error": "加入資料庫時,發生錯誤",
|
||||||
"action.removeFromLibrary": "從資料庫刪除",
|
"action.removeFromLibrary": "從資料庫中刪除",
|
||||||
"action.removeFromLibrary.success": "已從資料庫刪除",
|
"action.removeFromLibrary.success": "已從資料庫刪除",
|
||||||
"action.addToQueue": "加入待播清單",
|
"action.addToQueue": "加入到待播清單",
|
||||||
"action.addToQueue.success": "成功加入待播清單",
|
"action.addToQueue.success": "成功加入待播清單",
|
||||||
"action.addToQueue.error": "加入待播清單的過程發生錯誤",
|
"action.addToQueue.error": "加入待播清單時,發生錯誤",
|
||||||
"action.removeFromQueue": "從待播清單刪除",
|
"action.removeFromQueue": "從待播清單刪除",
|
||||||
"action.removeFromQueue.success": "已從待播清單刪除",
|
"action.removeFromQueue.success": "已從待播清單刪除",
|
||||||
"action.removeFromQueue.error": "從待播清單刪除的過程發生錯誤",
|
"action.removeFromQueue.error": "從待播清單刪除時,發生錯誤",
|
||||||
"action.addToPlaylist": "加入播放列表",
|
"action.addToPlaylist": "加入到播放列表",
|
||||||
"action.removeFromPlaylist": "從播放列表刪除",
|
"action.removeFromPlaylist": "從播放列表中刪除",
|
||||||
"action.addToFavorites": "加入我的最愛",
|
"action.addToFavorites": "加入到我的最愛",
|
||||||
"action.follow": "追蹤",
|
"action.follow": "追蹤",
|
||||||
"action.follow.success": "追蹤中",
|
"action.follow.success": "追蹤中",
|
||||||
"action.follow.error": "追蹤的過程發生錯誤",
|
"action.follow.error": "追蹤時,發生錯誤",
|
||||||
"action.unfollow": "取消追蹤",
|
"action.unfollow": "取消追蹤",
|
||||||
"action.unfollow.success": "已取消追蹤",
|
"action.unfollow.success": "已取消追蹤",
|
||||||
"action.unfollow.error": "取消追蹤的過程發生錯誤",
|
"action.unfollow.error": "取消追蹤時,發生錯誤",
|
||||||
"action.playNext": "插播",
|
"action.playNext": "插播",
|
||||||
"action.playLater": "最後播放",
|
"action.playLater": "待播",
|
||||||
"action.startRadio": "建立電台",
|
"action.startRadio": "建立電台",
|
||||||
"action.goToArtist": "前往藝人",
|
"action.goToArtist": "前往藝人",
|
||||||
"action.goToAlbum": "前往專輯",
|
"action.goToAlbum": "前往專輯",
|
||||||
|
"action.showInAppleMusic": "顯示於 Apple Music",
|
||||||
"action.moveToTop": "移至頂端",
|
"action.moveToTop": "移至頂端",
|
||||||
"action.share": "分享歌曲",
|
"action.share": "分享歌曲",
|
||||||
"action.rename": "重新命名",
|
"action.rename": "重新命名",
|
||||||
"action.love": "喜愛",
|
"action.love": "喜愛",
|
||||||
"action.unlove": "取消喜愛",
|
"action.unlove": "取消喜愛",
|
||||||
"action.dislike": "減少此類建議",
|
"action.dislike": "不喜歡",
|
||||||
"action.undoDislike": "還原減小此類建議",
|
"action.undoDislike": "取消不喜歡",
|
||||||
"action.showWebRemoteQR": "顯示遠程操控行動條碼",
|
"action.showWebRemoteQR": "顯示遙控器的 QR Code",
|
||||||
"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": "複製",
|
||||||
|
@ -194,6 +198,12 @@
|
||||||
"action.open": "開啟",
|
"action.open": "開啟",
|
||||||
"settings.header.general": "一般",
|
"settings.header.general": "一般",
|
||||||
"settings.header.general.description": "調整 Cider 的一般設定",
|
"settings.header.general.description": "調整 Cider 的一般設定",
|
||||||
|
"settings.option.general.resumebehavior": "還原行為",
|
||||||
|
"settings.option.general.resumebehavior.description": "會影響你回到 Cider 應用程式時,恢復歌曲的方式。",
|
||||||
|
"settings.option.general.resumebehavior.locally": "本機",
|
||||||
|
"settings.option.general.resumebehavior.locally.description": "Cider 將還原你在這台電腦上的最後一次操作。",
|
||||||
|
"settings.option.general.resumebehavior.history": "歷史",
|
||||||
|
"settings.option.general.resumebehavior.history.description": "Cider 將跨裝置將你的整個 Apple Music 歷史記錄中的最後一首歌曲排隊入列。",
|
||||||
"settings.option.general.language.main": "語言",
|
"settings.option.general.language.main": "語言",
|
||||||
"settings.option.general.language.fun": "特殊語言",
|
"settings.option.general.language.fun": "特殊語言",
|
||||||
"settings.option.general.language.unsorted": "未分類",
|
"settings.option.general.language.unsorted": "未分類",
|
||||||
|
@ -202,43 +212,63 @@
|
||||||
"settings.option.general.updateCider.branch.description": "選擇您要接收 Cider 軟體更新的通道",
|
"settings.option.general.updateCider.branch.description": "選擇您要接收 Cider 軟體更新的通道",
|
||||||
"settings.option.general.updateCider.branch.main": "穩定版(建議)",
|
"settings.option.general.updateCider.branch.main": "穩定版(建議)",
|
||||||
"settings.option.general.updateCider.branch.develop": "開發者測試版(不穩定)",
|
"settings.option.general.updateCider.branch.develop": "開發者測試版(不穩定)",
|
||||||
|
"settings.notyf.updateCider.update-not-available": "沒有可用的更新",
|
||||||
|
"settings.notyf.updateCider.update-downloaded": "更新已成功下載,重啟後進行更新",
|
||||||
|
"settings.notyf.updateCider.update-error": "更新時,發生錯誤",
|
||||||
|
"settings.notyf.updateCider.update-timeout": "更新超時",
|
||||||
"settings.header.audio": "音訊",
|
"settings.header.audio": "音訊",
|
||||||
"settings.header.audio.description": "調整 Cider 的音訊設定",
|
"settings.header.audio.description": "調整 Cider 的音訊設定",
|
||||||
"settings.option.audio.volumeStep": "音量改變量",
|
"settings.option.audio.volumeStep": "音量改變量",
|
||||||
"settings.option.audio.maxVolume": "最大音量",
|
"settings.option.audio.maxVolume": "最大音量",
|
||||||
"settings.option.audio.quality": "音訊品質",
|
"settings.option.audio.quality": "音訊品質",
|
||||||
"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位元/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位元/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.standard": "高效率",
|
"settings.header.audio.quality.standard": "高效率",
|
||||||
"settings.header.audio.quality.auto": "自動",
|
"settings.header.audio.quality.auto": "自動",
|
||||||
"settings.option.audio.seamlessTransition": "無間斷播放",
|
"settings.option.audio.seamlessTransition": "無間斷播放",
|
||||||
"settings.option.audio.enableAdvancedFunctionality": "進階音訊功能",
|
"settings.option.audio.enableAdvancedFunctionality": "進階音訊功能",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.description": "啟用 AudioContext 將開啟類似音訊平衡和等化器的進階設定。但這並不一定適合每部電腦,可能會發生音樂卡頓。",
|
"settings.option.audio.enableAdvancedFunctionality.description": "開啟 AudioContext 將啟用類似音量平衡和等化器的進階設定。但這並不一定適合每部電腦,可能會發生音樂卡頓。",
|
||||||
|
"settings.option.audio.audioLab": "Cider 音訊實驗室",
|
||||||
|
"settings.option.audio.audioLab.description": "包含由 Cider 開發團隊進行的各種音訊改善功能。",
|
||||||
|
"settings.warn.audioLab.withoutAF": "使用 Cider 音訊實驗室需要開啟進階音訊功能才能使用。" ,
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.analogWarmth": "模擬溫暖",
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.analogWarmth.description": "以 Korg Nutube 6P1 為設計的模擬溫暖。",
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity.description": "改變模擬溫暖模組處理的強度。",
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity.smooth": "溫和",
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.analogWarmthIntensity.warm": "溫暖",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.ciderPPE": "Cider 數位增強音訊處理™️",
|
"settings.option.audio.enableAdvancedFunctionality.ciderPPE": "Cider 數位增強音訊處理™️",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.ciderPPE.description": "將欺騙您的大腦讓您感受到近似保真壓縮的音質。| 由 Maikiwi 設計",
|
|
||||||
"settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength": "數位增強音訊處理設定",
|
"settings.option.audio.enableAdvancedFunctionality.ciderPPEStrength": "數位增強音訊處理設定",
|
||||||
"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": "音訊平衡",
|
"settings.option.audio.enableAdvancedFunctionality.audioNormalization": "音量平衡",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "將平衡輕柔和響亮的歌曲,建立更統一舒適的聆聽體驗。",
|
"settings.option.audio.enableAdvancedFunctionality.audioNormalization.description": "自動將歌曲播放音量調整至相同位準,享受更舒適的聆聽體驗。",
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.audioNormalization.disabled": "此功能由音訊實驗室管理",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "空間音訊",
|
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization": "空間音訊",
|
||||||
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "將音訊進行空間化處理來製造一個更立體的聆聽體驗(註:此功能不是官方的杜比全景聲)",
|
"settings.option.audio.enableAdvancedFunctionality.audioSpatialization.description": "將音訊進行空間化處理來製造一個更立體的聆聽體驗(註:此功能不是官方的杜比全景聲)",
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization": "Cider 空間音訊效果",
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.description": "預先調整空間音訊效果,關閉空間音訊可自訂設定。但必須先開啟空間音訊才可以做設定。",
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile": "Cider 空間音訊配置檔案",
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.description": "變更空間音訊的配置檔案,需要重新啟動應用程式。",
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.standard": "標準",
|
||||||
|
"settings.option.audio.enableAdvancedFunctionality.tunedAudioSpatialization.profile.audiophile": "發燒友",
|
||||||
|
"settings.warn.audio.enableAdvancedFunctionality.audioSpatialization.compatibility": "空間音訊無法與 CAP 相容,請關閉 CAP 在進行操作。",
|
||||||
"settings.header.visual": "外觀",
|
"settings.header.visual": "外觀",
|
||||||
"settings.header.visual.description": "調整 Cider 的外觀",
|
"settings.header.visual.description": "調整 Cider 的外觀",
|
||||||
"settings.option.visual.windowBackgroundStyle": "視窗背景樣式",
|
"settings.option.visual.windowBackgroundStyle": "視窗背景樣式",
|
||||||
"settings.header.visual.windowBackgroundStyle.none": "空白",
|
"settings.header.visual.windowBackgroundStyle.none": "空白",
|
||||||
"settings.header.visual.windowBackgroundStyle.artwork": "專輯封面",
|
"settings.header.visual.windowBackgroundStyle.artwork": "專輯插圖",
|
||||||
"settings.header.visual.windowBackgroundStyle.image": "圖片",
|
"settings.header.visual.windowBackgroundStyle.image": "圖片",
|
||||||
"settings.option.visual.animatedArtwork": "動態專輯封面",
|
"settings.option.visual.animatedArtwork": "動態專輯插圖",
|
||||||
"settings.header.visual.animatedArtwork.always": "總是顯示",
|
"settings.header.visual.animatedArtwork.always": "總是顯示",
|
||||||
"settings.header.visual.animatedArtwork.limited": "只在藝人頁面和專輯封面顯示",
|
"settings.header.visual.animatedArtwork.limited": "只在藝人頁面和專輯插圖顯示",
|
||||||
"settings.header.visual.animatedArtwork.disable": "關閉",
|
"settings.header.visual.animatedArtwork.disable": "關閉",
|
||||||
"settings.option.visual.animatedArtworkQuality": "動態專輯封面品質",
|
"settings.option.visual.animatedArtworkQuality": "動態專輯插圖品質",
|
||||||
"settings.header.visual.animatedArtworkQuality.low": "低",
|
"settings.header.visual.animatedArtworkQuality.low": "低",
|
||||||
"settings.header.visual.animatedArtworkQuality.medium": "中",
|
"settings.header.visual.animatedArtworkQuality.medium": "中",
|
||||||
"settings.header.visual.animatedArtworkQuality.high": "高",
|
"settings.header.visual.animatedArtworkQuality.high": "高",
|
||||||
|
@ -251,41 +281,63 @@
|
||||||
"settings.header.visual.hardwareAcceleration.webGPU": "WebGPU",
|
"settings.header.visual.hardwareAcceleration.webGPU": "WebGPU",
|
||||||
"settings.header.visual.theme": "主題",
|
"settings.header.visual.theme": "主題",
|
||||||
"settings.option.visual.theme.github.download": "從 GitHub 網址安裝",
|
"settings.option.visual.theme.github.download": "從 GitHub 網址安裝",
|
||||||
"settings.option.visual.theme.github.explore": "瀏覽 GitHub 上的主題",
|
"settings.option.visual.theme.github.explore": "探索 GitHub 上的主題",
|
||||||
"settings.prompt.visual.theme.github.URL": "輸入你要安裝的主題網址",
|
"settings.prompt.visual.theme.github.URL": "輸入你要安裝的主題網址",
|
||||||
"settings.notyf.visual.theme.install.success": "主題成功安裝",
|
"settings.notyf.visual.theme.install.success": "主題成功安裝",
|
||||||
"settings.notyf.visual.theme.install.error": "主題安裝失敗",
|
"settings.notyf.visual.theme.install.error": "主題安裝失敗",
|
||||||
"settings.option.visual.theme.default": "Cider",
|
"settings.header.visual.plugin": "套件",
|
||||||
"settings.option.visual.theme.dark": "暗黑模式",
|
"settings.option.visual.plugin.github.download": "從 GitHub 網址安裝",
|
||||||
|
"settings.option.visual.plugin.github.explore": "探索 GitHub 套件",
|
||||||
|
"settings.header.visual.plugin.github.page": "來自 GitHub 的套件",
|
||||||
|
"settings.option.visual.plugin.github.install.confirm": "你確定要安裝 {{ repo }}?",
|
||||||
|
"settings.prompt.visual.plugin.github.URL": "輸入你要安裝的套件網址",
|
||||||
|
"settings.prompt.visual.plugin.github.success": "套件成功安裝,按「確認」以重新啟動 Cider",
|
||||||
|
"settings.notyf.visual.plugin.install.success": "套件成功安裝",
|
||||||
|
"settings.notyf.visual.plugin.install.error": "套件安裝失敗",
|
||||||
|
"settings.option.visual.theme.default": "預設",
|
||||||
|
"settings.option.visual.theme.dark": "午夜黑",
|
||||||
"settings.option.visual.showPersonalInfo": "顯示個人檔案",
|
"settings.option.visual.showPersonalInfo": "顯示個人檔案",
|
||||||
|
"settings.header.window": "視窗",
|
||||||
|
"settings.header.window.description": "調整 Cider 的視窗設定",
|
||||||
|
"settings.option.window.openOnStartup": "開機時,啟動 Cider ",
|
||||||
|
"settings.option.window.openOnStartup.hidden": "啟動時,自動隱藏至系統列",
|
||||||
"settings.header.lyrics": "歌詞",
|
"settings.header.lyrics": "歌詞",
|
||||||
"settings.header.lyrics.description": "調整 Cider 的歌詞設定",
|
"settings.header.lyrics.description": "調整 Cider 的歌詞設定",
|
||||||
"settings.option.lyrics.enableMusixmatch": "啟用 Musixmatch 歌詞",
|
"settings.option.lyrics.enableMusixmatch": "開啟 Musixmatch 歌詞",
|
||||||
"settings.option.lyrics.enableMusixmatchKaraoke": "啟用K歌模式(僅限Musixmatch)",
|
"settings.option.lyrics.enableMusixmatchKaraoke": "開啟K歌模式(僅限 Musixmatch)",
|
||||||
"settings.option.lyrics.musixmatchPreferredLanguage": "Musixmatch 歌詞語言偏好",
|
"settings.option.lyrics.musixmatchPreferredLanguage": "Musixmatch 歌詞語言偏好",
|
||||||
"settings.option.lyrics.enableYoutubeLyrics": "播放 MV 時使用 YouTube 歌詞",
|
"settings.option.lyrics.enableYoutubeLyrics": "播放 MV 時,使用 YouTube 歌詞",
|
||||||
"settings.header.connectivity": "外部連接",
|
"settings.header.connectivity": "外部連接",
|
||||||
"settings.header.connectivity.description": "調整 Cider 與外部的連接",
|
"settings.header.connectivity.description": "調整 Cider 與外部的連接",
|
||||||
"settings.option.connectivity.discordRPC": "Discord 動態",
|
"settings.option.connectivity.discordRPC": "Discord 動態",
|
||||||
"settings.option.connectivity.playbackNotifications": "歌曲播放通知",
|
"settings.option.connectivity.playbackNotifications": "歌曲播放通知",
|
||||||
"settings.header.connectivity.discordRPC.cider": "顯示正在使用 'Cider'",
|
"settings.header.connectivity.discordRPC.cider": "顯示正在使用 Cider",
|
||||||
"settings.header.connectivity.discordRPC.appleMusic": "顯示正在使用 'Apple Music'",
|
"settings.header.connectivity.discordRPC.appleMusic": "顯示正在使用 Apple Music",
|
||||||
"settings.option.connectivity.discordRPC.clearOnPause": "暫停時清除 Discord 動態",
|
"settings.option.connectivity.discordRPC.clearOnPause": "暫停時清除 Discord 動態",
|
||||||
"settings.option.connectivity.lastfmScrobble": "LastFM Scrobbling 記錄",
|
"settings.option.connectivity.lastfmScrobble": "Last.FM Scrobbling 記錄",
|
||||||
"settings.option.connectivity.lastfmScrobble.delay": "LastFM Scrobble 延遲 (%)",
|
"settings.option.connectivity.lastfmScrobble.delay": "Last.FM Scrobble 延遲 (%)",
|
||||||
"settings.option.connectivity.lastfmScrobble.nowPlaying": "啟用 LastFM 目前聆聽",
|
"settings.option.connectivity.lastfmScrobble.nowPlaying": "開啟 Last.FM 目前聆聽",
|
||||||
"settings.option.connectivity.lastfmScrobble.removeFeatured": "從歌名中移除客串藝人 (LastFM)",
|
"settings.option.connectivity.lastfmScrobble.removeFeatured": "從歌名中移除客串藝人 (Last.FM)",
|
||||||
"settings.option.connectivity.lastfmScrobble.filterLoop": "不記錄單曲循環 (LastFM)",
|
"settings.option.connectivity.lastfmScrobble.filterLoop": "不記錄單曲循環 (Last.FM)",
|
||||||
"settings.header.debug": "除錯",
|
"settings.header.debug": "除錯",
|
||||||
"settings.option.debug.copy_log": "複製執行紀錄檔至剪貼簿",
|
"settings.option.debug.copy_log": "複製執行紀錄檔至剪貼簿",
|
||||||
"settings.option.debug.openAppData": "打開 Cider 資料夾",
|
"settings.option.debug.openAppData": "打開 Cider 資料夾",
|
||||||
"settings.header.experimental": "實驗性功能",
|
"settings.header.experimental": "實驗性功能",
|
||||||
"settings.header.experimental.description": "調整 Cider 的實驗性功能",
|
"settings.header.experimental.description": "調整 Cider 的實驗性功能",
|
||||||
|
"settings.option.experimental.reinstallwidevine": "重新安裝 WidevineCDM",
|
||||||
|
"settings.option.experimental.reinstallwidevine.confirm": "你確定要重新安裝 WidevineCDM 嗎?",
|
||||||
|
"settings.option.experimental.unknownPlugin": "未知來源",
|
||||||
|
"settings.option.experimental.unknownPlugin.description": "允許從 Cider 來源以外的 repo 安裝套件",
|
||||||
"settings.option.experimental.compactUI": "使用緊密的介面設計",
|
"settings.option.experimental.compactUI": "使用緊密的介面設計",
|
||||||
"settings.option.experimental.closeButtonBehaviour": "關閉按鈕操作",
|
"settings.option.experimental.closeButtonBehaviour": "關閉按鈕操作",
|
||||||
"settings.option.experimental.close_button_hide": "關閉按鈕將 Cider 隱藏至系統列",
|
"settings.option.window.close_button_hide": "關閉按鈕將 Cider 隱藏至系統列",
|
||||||
"settings.option.experimental.inline_playlists": "將播放列表做為行内元素顯示",
|
"settings.option.experimental.inline_playlists": "將播放列表做為行内元素顯示",
|
||||||
"spatial.notTurnedOn": "空間音訊目前是關閉狀態,請先啟用再使用。",
|
"settings.option.advanced.playlistTrackMapping": "播放列表追蹤映射",
|
||||||
|
"settings.option.advanced.playlistTrackMapping.description": "開啟對播放列表的深度掃描,以確定歌曲在哪些播放列表中。但播放列表快取時間會顯著增加。",
|
||||||
|
"settings.option.visual.transparent": "透明視窗框架",
|
||||||
|
"settings.option.visual.transparent.description": "需主題有支援透明框架,且須重新啟動才會套用。",
|
||||||
|
"settings.header.advanced": "進階",
|
||||||
|
"spatial.notTurnedOn": "空間音訊目前是關閉狀態,請先開啟再使用。",
|
||||||
"spatial.spatialProperties": "空間音訊屬性設定",
|
"spatial.spatialProperties": "空間音訊屬性設定",
|
||||||
"spatial.width": "寬度",
|
"spatial.width": "寬度",
|
||||||
"spatial.height": "高度",
|
"spatial.height": "高度",
|
||||||
|
@ -305,7 +357,7 @@
|
||||||
"spatial.listener": "聽衆",
|
"spatial.listener": "聽衆",
|
||||||
"spatial.audioSource": "音訊來源",
|
"spatial.audioSource": "音訊來源",
|
||||||
"settings.header.unfinished": "未開發完成的功能",
|
"settings.header.unfinished": "未開發完成的功能",
|
||||||
"remote.web.title": "Cider 遠端操控",
|
"remote.web.title": "Cider 遙控器",
|
||||||
"remote.web.description": "掃描以下的行動條碼以操控 Cider",
|
"remote.web.description": "掃描以下 QR Code 即可遙控 Cider",
|
||||||
"about.thanks": "著重感謝 Cider Collective 的成員以及所有為項目付出的貢獻者。"
|
"about.thanks": "著重感謝 Cider Collective 的成員以及所有為項目付出的貢獻者。"
|
||||||
}
|
}
|
||||||
|
|
|
@ -262,7 +262,7 @@
|
||||||
"settings.header.experimental": "實驗性功能",
|
"settings.header.experimental": "實驗性功能",
|
||||||
"settings.header.experimental.description": "調整Cider嘅實驗性功能",
|
"settings.header.experimental.description": "調整Cider嘅實驗性功能",
|
||||||
"settings.option.experimental.compactUI": "逼啲既 UI",
|
"settings.option.experimental.compactUI": "逼啲既 UI",
|
||||||
"settings.option.experimental.close_button_hide": "㩒交叉制嚟隱藏 Cider",
|
"settings.option.window.close_button_hide": "㩒交叉制嚟隱藏 Cider",
|
||||||
"settings.option.experimental.copy_log": "將log複製喺剪貼簿",
|
"settings.option.experimental.copy_log": "將log複製喺剪貼簿",
|
||||||
"spatial.notTurnedOn": "唔該喺設定入面啟用左空間音訊先。",
|
"spatial.notTurnedOn": "唔該喺設定入面啟用左空間音訊先。",
|
||||||
"spatial.spatialProperties": "空間音訊屬性",
|
"spatial.spatialProperties": "空間音訊屬性",
|
||||||
|
|
|
@ -120,6 +120,8 @@ export class AppEvents {
|
||||||
public ready(plug: any) {
|
public ready(plug: any) {
|
||||||
this.plugin = plug
|
this.plugin = plug
|
||||||
console.log('[AppEvents] App ready');
|
console.log('[AppEvents] App ready');
|
||||||
|
|
||||||
|
AppEvents.setLoginSettings()
|
||||||
}
|
}
|
||||||
|
|
||||||
public bwCreated() {
|
public bwCreated() {
|
||||||
|
@ -139,8 +141,10 @@ export class AppEvents {
|
||||||
}
|
}
|
||||||
|
|
||||||
this.InstanceHandler()
|
this.InstanceHandler()
|
||||||
|
if (process.platform !== "darwin") {
|
||||||
this.InitTray()
|
this.InitTray()
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/***********************************************************************************************************************
|
/***********************************************************************************************************************
|
||||||
* Private methods
|
* Private methods
|
||||||
|
@ -323,10 +327,34 @@ export class AppEvents {
|
||||||
private static initLogging() {
|
private static initLogging() {
|
||||||
log.transports.console.format = '[{h}:{i}:{s}.{ms}] [{level}] {text}';
|
log.transports.console.format = '[{h}:{i}:{s}.{ms}] [{level}] {text}';
|
||||||
Object.assign(console, log.functions);
|
Object.assign(console, log.functions);
|
||||||
|
console.debug = function(...args: any[]) {
|
||||||
|
if (!app.isPackaged) {
|
||||||
|
log.debug(...args)
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
ipcMain.on('fetch-log', (_event) => {
|
ipcMain.on('fetch-log', (_event) => {
|
||||||
const data = readFileSync(log.transports.file.getFile().path, {encoding: 'utf8', flag: 'r'});
|
const data = readFileSync(log.transports.file.getFile().path, {encoding: 'utf8', flag: 'r'});
|
||||||
clipboard.writeText(data)
|
clipboard.writeText(data)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set login settings
|
||||||
|
* @private
|
||||||
|
*/
|
||||||
|
private static setLoginSettings() {
|
||||||
|
if (utils.getStoreValue('general.onStartup.enabled')) {
|
||||||
|
app.setLoginItemSettings({
|
||||||
|
openAtLogin: true,
|
||||||
|
path: app.getPath('exe'),
|
||||||
|
args: [`${utils.getStoreValue('general.onStartup.hidden') ? '--hidden' : ''}`]
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
app.setLoginItemSettings({
|
||||||
|
openAtLogin: false,
|
||||||
|
path: app.getPath('exe')
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,18 +4,19 @@ 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, statSync} from "fs";
|
import {existsSync, rmSync, mkdirSync, readdirSync, readFileSync, writeFileSync, statSync} from "fs";
|
||||||
import {Stream} from "stream";
|
import {Stream} from "stream";
|
||||||
import {networkInterfaces} from "os";
|
import {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 {AppImageUpdater, NsisUpdater} from "electron-updater";
|
|
||||||
import {utils} from './utils';
|
import {utils} from './utils';
|
||||||
import {Plugins} from "./plugins";
|
import {Plugins} from "./plugins";
|
||||||
|
import {watch} from "chokidar";
|
||||||
|
const wallpaper = require('wallpaper');
|
||||||
|
|
||||||
const fileWatcher = require('chokidar');
|
// @ts-ignore
|
||||||
const AdmZip = require("adm-zip");
|
import * as AdmZip from "adm-zip";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @file Creates the BrowserWindow
|
* @file Creates the BrowserWindow
|
||||||
|
@ -41,6 +42,7 @@ export class BrowserWindow {
|
||||||
"pages/apple-account-settings",
|
"pages/apple-account-settings",
|
||||||
"pages/library-songs",
|
"pages/library-songs",
|
||||||
"pages/library-albums",
|
"pages/library-albums",
|
||||||
|
"pages/library-artists",
|
||||||
"pages/browse",
|
"pages/browse",
|
||||||
"pages/settings",
|
"pages/settings",
|
||||||
"pages/listen_now",
|
"pages/listen_now",
|
||||||
|
@ -82,7 +84,7 @@ export class BrowserWindow {
|
||||||
"components/mediaitem-hrect",
|
"components/mediaitem-hrect",
|
||||||
"components/mediaitem-square",
|
"components/mediaitem-square",
|
||||||
"components/mediaitem-mvview",
|
"components/mediaitem-mvview",
|
||||||
"components/libraryartist-item",
|
// "components/libraryartist-item",
|
||||||
"components/listennow-child",
|
"components/listennow-child",
|
||||||
"components/mediaitem-mvview-sp",
|
"components/mediaitem-mvview-sp",
|
||||||
"components/animatedartwork-view",
|
"components/animatedartwork-view",
|
||||||
|
@ -93,6 +95,7 @@ export class BrowserWindow {
|
||||||
"components/castmenu",
|
"components/castmenu",
|
||||||
"components/artist-chip",
|
"components/artist-chip",
|
||||||
"components/hello-world",
|
"components/hello-world",
|
||||||
|
"components/inline-collection-list",
|
||||||
],
|
],
|
||||||
appRoutes: [
|
appRoutes: [
|
||||||
{
|
{
|
||||||
|
@ -184,7 +187,12 @@ export class BrowserWindow {
|
||||||
page: "library-albums",
|
page: "library-albums",
|
||||||
component: `<cider-library-albums :data="library.songs"></cider-library-albums>`,
|
component: `<cider-library-albums :data="library.songs"></cider-library-albums>`,
|
||||||
condition: `page == 'library-albums'`,
|
condition: `page == 'library-albums'`,
|
||||||
onEnter: `getLibraryAlbumsFull(null, 1); getAlbumSort(); searchLibraryAlbums(1);`
|
onEnter: `getLibraryAlbumsFull(null, 1); getAlbumSort(); searchLibraryAlbums(1); getLibrarySongsFull() ;searchLibraryAlbums(1);`
|
||||||
|
}, {
|
||||||
|
page: "library-artists",
|
||||||
|
component: `<cider-library-artists></cider-library-artists>`,
|
||||||
|
condition: `page == 'library-artists'`,
|
||||||
|
onEnter: `getLibraryArtistsFull(null, 0);`
|
||||||
}, {
|
}, {
|
||||||
page: "appleCurator",
|
page: "appleCurator",
|
||||||
component: `<cider-applecurator :data="appleCurator"></cider-applecurator>`,
|
component: `<cider-applecurator :data="appleCurator"></cider-applecurator>`,
|
||||||
|
@ -245,9 +253,7 @@ export class BrowserWindow {
|
||||||
};
|
};
|
||||||
|
|
||||||
StartWatcher(path: string) {
|
StartWatcher(path: string) {
|
||||||
var chokidar = require("chokidar");
|
const watcher = watch(path, {
|
||||||
|
|
||||||
var watcher = chokidar.watch(path, {
|
|
||||||
ignored: /[\/\\]\./,
|
ignored: /[\/\\]\./,
|
||||||
persistent: true
|
persistent: true
|
||||||
});
|
});
|
||||||
|
@ -310,8 +316,10 @@ export class BrowserWindow {
|
||||||
break;
|
break;
|
||||||
case "win32":
|
case "win32":
|
||||||
if (!(utils.getStoreValue('visual.transparent') ?? false)) {
|
if (!(utils.getStoreValue('visual.transparent') ?? false)) {
|
||||||
this.options.backgroundColor = "#1E1E1E";} else {
|
this.options.backgroundColor = "#1E1E1E";
|
||||||
this.options.transparent = true;}
|
} else {
|
||||||
|
this.options.transparent = true;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case "linux":
|
case "linux":
|
||||||
this.options.backgroundColor = "#1E1E1E";
|
this.options.backgroundColor = "#1E1E1E";
|
||||||
|
@ -596,10 +604,31 @@ export class BrowserWindow {
|
||||||
/**********************************************************************************************************************
|
/**********************************************************************************************************************
|
||||||
* ipcMain Events
|
* ipcMain Events
|
||||||
****************************************************************************************************************** */
|
****************************************************************************************************************** */
|
||||||
|
|
||||||
|
ipcMain.on("get-wallpaper", async (event) => {
|
||||||
|
const wpPath: string = await wallpaper.get();
|
||||||
|
// get the wallpaper and encode it to base64 then return
|
||||||
|
const wpBase64: string = await readFileSync(wpPath, 'base64')
|
||||||
|
// add the data:image properties
|
||||||
|
const wpData: string = `data:image/png;base64,${wpBase64}`
|
||||||
|
event.returnValue = wpData;
|
||||||
|
})
|
||||||
|
|
||||||
ipcMain.on("cider-platform", (event) => {
|
ipcMain.on("cider-platform", (event) => {
|
||||||
event.returnValue = process.platform;
|
event.returnValue = process.platform;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
ipcMain.handle("reinstall-widevine-cdm", () => {
|
||||||
|
// remove WidevineCDM from appdata folder
|
||||||
|
const widevineCdmPath = join(app.getPath("userData"), "./WidevineCdm");
|
||||||
|
if (existsSync(widevineCdmPath)) {
|
||||||
|
rmSync(widevineCdmPath, {recursive: true, force: true})
|
||||||
|
}
|
||||||
|
// reinstall WidevineCDM
|
||||||
|
app.relaunch()
|
||||||
|
app.exit()
|
||||||
|
})
|
||||||
|
|
||||||
ipcMain.handle("get-github-plugin", async (event, url) => {
|
ipcMain.handle("get-github-plugin", async (event, url) => {
|
||||||
const returnVal = {
|
const returnVal = {
|
||||||
success: true,
|
success: true,
|
||||||
|
@ -869,8 +898,23 @@ export class BrowserWindow {
|
||||||
})
|
})
|
||||||
|
|
||||||
ipcMain.handle('relaunchApp', (_event, _) => {
|
ipcMain.handle('relaunchApp', (_event, _) => {
|
||||||
app.relaunch()
|
const opt: Electron.RelaunchOptions = {};
|
||||||
app.exit()
|
opt.args = process.argv.slice(1).concat(['--relaunch']);
|
||||||
|
opt.execPath = process.execPath;
|
||||||
|
if (app.isPackaged && process.env.PORTABLE_EXECUTABLE_FILE != undefined) {
|
||||||
|
opt.execPath = process.env.PORTABLE_EXECUTABLE_FILE;
|
||||||
|
} else if (app.isPackaged && process.env.APPIMAGE != undefined) {
|
||||||
|
opt.execPath = process.env.APPIMAGE;
|
||||||
|
opt.args.unshift('--appimage-extract-and-run');
|
||||||
|
} else if (app.isPackaged && process.env.CHROME_DESKTOP != undefined && process.env.PLATFORM == "Linux") {
|
||||||
|
opt.execPath = "cider";
|
||||||
|
}
|
||||||
|
app.relaunch(opt);
|
||||||
|
app.quit();
|
||||||
|
})
|
||||||
|
|
||||||
|
app.on('before-quit', () => {
|
||||||
|
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
|
@ -968,10 +1012,27 @@ export class BrowserWindow {
|
||||||
return Math.max(-32768, Math.min(32768, v)); // clamp
|
return Math.max(-32768, Math.min(32768, v)); // clamp
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function bitratechange(e: any){
|
||||||
|
var t = e.length;
|
||||||
|
let sampleRate = 96.0;
|
||||||
|
let outputSampleRate = 48.0;
|
||||||
|
var s = 0,
|
||||||
|
o = sampleRate / outputSampleRate,
|
||||||
|
u = Math.ceil(t * outputSampleRate / sampleRate),
|
||||||
|
a = new Int16Array(u);
|
||||||
|
for (let i = 0; i < u; i++) {
|
||||||
|
a[i] = e[Math.floor(s)];
|
||||||
|
s += o;
|
||||||
|
}
|
||||||
|
|
||||||
|
return a;
|
||||||
|
}
|
||||||
|
|
||||||
let newaudio = quantization(leftpcm, rightpcm);
|
let newaudio = quantization(leftpcm, rightpcm);
|
||||||
//let newaudio = [leftpcm, rightpcm];
|
//let newaudio = [leftpcm, rightpcm];
|
||||||
// console.log(newaudio.length);
|
// console.log(newaudio.length);
|
||||||
let pcmData = Buffer.from(new Int8Array(interleave16(Int16Array.from(newaudio[0], x => convert(x)), Int16Array.from(newaudio[1], x => convert(x))).buffer));
|
|
||||||
|
let pcmData = Buffer.from(new Int8Array(interleave16(bitratechange(Int16Array.from(newaudio[0], x => convert(x))), bitratechange(Int16Array.from(newaudio[1], x => convert(x)))).buffer));
|
||||||
|
|
||||||
if (!this.headerSent) {
|
if (!this.headerSent) {
|
||||||
console.log('new header')
|
console.log('new header')
|
||||||
|
@ -1039,15 +1100,10 @@ export class BrowserWindow {
|
||||||
|
|
||||||
ipcMain.on('disable-update', (event) => {
|
ipcMain.on('disable-update', (event) => {
|
||||||
// Check if using app store builds so people don't get pissy wen button go bonk
|
// Check if using app store builds so people don't get pissy wen button go bonk
|
||||||
if (app.isPackaged && !process.mas || !process.windowsStore) {
|
event.returnValue = !(app.isPackaged && !process.mas || !process.windowsStore);
|
||||||
event.returnValue = false
|
|
||||||
} else {
|
|
||||||
event.returnValue = true
|
|
||||||
}
|
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
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
|
||||||
|
@ -1111,6 +1167,11 @@ export class BrowserWindow {
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
BrowserWindow.win.hide();
|
BrowserWindow.win.hide();
|
||||||
} else {
|
} else {
|
||||||
|
BrowserWindow.win.webContents.executeJavaScript(`
|
||||||
|
window.localStorage.setItem("currentTrack", JSON.stringify(app.mk.nowPlayingItem));
|
||||||
|
window.localStorage.setItem("currentTime", JSON.stringify(app.mk.currentPlaybackTime));
|
||||||
|
window.localStorage.setItem("currentQueue", JSON.stringify(app.mk.queue.items));
|
||||||
|
ipcRenderer.send('stopGCast','');`)
|
||||||
BrowserWindow.win.destroy();
|
BrowserWindow.win.destroy();
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
@ -1119,8 +1180,18 @@ export class BrowserWindow {
|
||||||
isQuiting = true
|
isQuiting = true
|
||||||
});
|
});
|
||||||
|
|
||||||
|
app.on('activate', function () {
|
||||||
|
BrowserWindow.win.show()
|
||||||
|
BrowserWindow.win.focus()
|
||||||
|
});
|
||||||
|
|
||||||
|
// Quit when all windows are closed.
|
||||||
app.on('window-all-closed', () => {
|
app.on('window-all-closed', () => {
|
||||||
|
// On macOS it is common for applications and their menu bar
|
||||||
|
// to stay active until the user quits explicitly with Cmd + Q
|
||||||
|
if (process.platform !== 'darwin') {
|
||||||
app.quit()
|
app.quit()
|
||||||
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
BrowserWindow.win.on("closed", () => {
|
BrowserWindow.win.on("closed", () => {
|
||||||
|
@ -1143,17 +1214,24 @@ export class BrowserWindow {
|
||||||
*/
|
*/
|
||||||
private static getIP(): string {
|
private static getIP(): string {
|
||||||
let ip: string = '';
|
let ip: string = '';
|
||||||
|
let ip2: any = [];
|
||||||
let alias = 0;
|
let alias = 0;
|
||||||
const ifaces: any = networkInterfaces();
|
const ifaces: any = networkInterfaces();
|
||||||
for (let dev in ifaces) {
|
for (let dev in ifaces) {
|
||||||
ifaces[dev].forEach((details: any) => {
|
ifaces[dev].forEach((details: any) => {
|
||||||
if (details.family === 'IPv4') {
|
if (details.family === 'IPv4' && !details.internal) {
|
||||||
if (!/(loopback|vmware|internal|hamachi|vboxnet|virtualbox)/gi.test(dev + (alias ? ':' + alias : ''))) {
|
if (!/(loopback|vmware|internal|hamachi|vboxnet|virtualbox)/gi.test(dev + (alias ? ':' + alias : ''))) {
|
||||||
if (details.address.substring(0, 8) === '192.168.' ||
|
if (details.address.substring(0, 8) === '192.168.' ||
|
||||||
details.address.substring(0, 7) === '172.16.' ||
|
details.address.substring(0, 7) === '172.16.' ||
|
||||||
details.address.substring(0, 3) === '10.'
|
details.address.substring(0, 3) === '10.'
|
||||||
|
) {
|
||||||
|
if (!ip.startsWith('192.168.') ||
|
||||||
|
(ip2.startsWith('192.168.') && !ip.startsWith('192.168.')) &&
|
||||||
|
(ip2.startsWith('172.16.') && !ip.startsWith('192.168.') && !ip.startsWith('172.16.')) ||
|
||||||
|
(ip2.startsWith('10.') && !ip.startsWith('192.168.') && !ip.startsWith('172.16.') && !ip.startsWith('10.'))
|
||||||
) {
|
) {
|
||||||
ip = details.address;
|
ip = details.address;
|
||||||
|
}
|
||||||
++alias;
|
++alias;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1170,7 +1248,7 @@ export class BrowserWindow {
|
||||||
private async broadcastRemote() {
|
private async broadcastRemote() {
|
||||||
const myString = `http://${BrowserWindow.getIP()}:${this.remotePort}`;
|
const myString = `http://${BrowserWindow.getIP()}:${this.remotePort}`;
|
||||||
const mdns = require('mdns-js');
|
const mdns = require('mdns-js');
|
||||||
const encoded = new Buffer(myString).toString('base64');
|
const encoded = Buffer.from(myString).toString('base64');
|
||||||
const x = mdns.tcp('cider-remote');
|
const x = mdns.tcp('cider-remote');
|
||||||
const txt_record = {
|
const txt_record = {
|
||||||
"Ver": "131077",
|
"Ver": "131077",
|
||||||
|
|
|
@ -21,4 +21,12 @@ CiderCastController.prototype.sendIp = function(ip) {
|
||||||
this.request(data);
|
this.request(data);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
CiderCastController.prototype.kill = function() {
|
||||||
|
// TODO: Implement Callback
|
||||||
|
let data = {
|
||||||
|
action : "stop"
|
||||||
|
}
|
||||||
|
this.request(data);
|
||||||
|
};
|
||||||
|
|
||||||
module.exports = CiderCastController;
|
module.exports = CiderCastController;
|
|
@ -74,4 +74,8 @@ CiderReceiver.prototype.sendIp = function(opts){
|
||||||
this.mediaReceiver.sendIp.apply(this.mediaReceiver, arguments);
|
this.mediaReceiver.sendIp.apply(this.mediaReceiver, arguments);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
CiderReceiver.prototype.kill = function(opts){
|
||||||
|
this.mediaReceiver.kill.apply(this.mediaReceiver, arguments);
|
||||||
|
};
|
||||||
|
|
||||||
module.exports = CiderReceiver;
|
module.exports = CiderReceiver;
|
||||||
|
|
|
@ -44,7 +44,7 @@ export class Plugins {
|
||||||
if (plugins[file] || plugin.name in plugins) {
|
if (plugins[file] || plugin.name in plugins) {
|
||||||
console.log(`[${plugin.name}] Plugin already loaded / Duplicate Class Name`);
|
console.log(`[${plugin.name}] Plugin already loaded / Duplicate Class Name`);
|
||||||
} else {
|
} else {
|
||||||
plugins[file] = new plugin(electron.app, utils.getStore());
|
plugins[file] = new plugin(utils);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -61,7 +61,7 @@ export class Plugins {
|
||||||
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`);
|
||||||
} else {
|
} else {
|
||||||
plugins[file] = new plugin(electron.app, utils.getStore());
|
plugins[file] = new plugin(utils);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
const plugin = require(path.join(this.userPluginsPath, file));
|
const plugin = require(path.join(this.userPluginsPath, file));
|
||||||
|
@ -69,7 +69,7 @@ export class Plugins {
|
||||||
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`);
|
||||||
} else {
|
} else {
|
||||||
plugins[file] = new plugin(electron.app, utils.getStore());
|
plugins[file] = new plugin(utils);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -104,7 +104,11 @@ export class Plugins {
|
||||||
public callPlugins(event: string, ...args: any[]) {
|
public callPlugins(event: string, ...args: any[]) {
|
||||||
for (const plugin in this.pluginsList) {
|
for (const plugin in this.pluginsList) {
|
||||||
if (this.pluginsList[plugin][event]) {
|
if (this.pluginsList[plugin][event]) {
|
||||||
|
try{
|
||||||
this.pluginsList[plugin][event](...args);
|
this.pluginsList[plugin][event](...args);
|
||||||
|
}catch(e) {
|
||||||
|
console.log(`[${plugin}] Plugin error: ${e}`);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,7 +7,6 @@ export class Store {
|
||||||
private defaults: any = {
|
private defaults: any = {
|
||||||
"general": {
|
"general": {
|
||||||
"close_button_hide": false,
|
"close_button_hide": 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
|
||||||
|
@ -23,6 +22,10 @@ export class Store {
|
||||||
"artists": true,
|
"artists": true,
|
||||||
"videos": true,
|
"videos": true,
|
||||||
"podcasts": true
|
"podcasts": true
|
||||||
|
},
|
||||||
|
"onStartup": {
|
||||||
|
"enabled": false,
|
||||||
|
"hidden": false,
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"home": {
|
"home": {
|
||||||
|
@ -52,13 +55,12 @@ export class Store {
|
||||||
"normalization": false,
|
"normalization": false,
|
||||||
"maikiwiAudio": {
|
"maikiwiAudio": {
|
||||||
"ciderPPE": false,
|
"ciderPPE": false,
|
||||||
"ciderPPE_value": 0.5,
|
"ciderPPE_value": "MAIKIWI",
|
||||||
"analogWarmth": false,
|
"analogWarmth": false,
|
||||||
"analogWarmth_value": 1.25,
|
"analogWarmth_value": "SMOOTH",
|
||||||
"spatial": false,
|
"spatial": false,
|
||||||
"spatialType": 0,
|
"spatialProfile": "420signature-B",
|
||||||
"vibrantBass": { // Hard coded into the app. Don't include any of this config into exporting presets in store.ts
|
"vibrantBass": { // Hard coded into the app. Don't include any of this config into exporting presets in store.ts
|
||||||
'multiplier': 0,
|
|
||||||
'frequencies': [17.182, 42.169, 53.763, 112.69, 119.65, 264.59, 336.57, 400.65, 505.48, 612.7, 838.7, 1155.3, 1175.6, 3406.8, 5158.6, 5968.1, 6999.9, 7468.6, 8862.9, 9666, 10109],
|
'frequencies': [17.182, 42.169, 53.763, 112.69, 119.65, 264.59, 336.57, 400.65, 505.48, 612.7, 838.7, 1155.3, 1175.6, 3406.8, 5158.6, 5968.1, 6999.9, 7468.6, 8862.9, 9666, 10109],
|
||||||
'Q': [2.5, 0.388, 5, 5, 2.5, 7.071, 14.14, 10, 7.071, 14.14, 8.409, 0.372, 7.071, 10, 16.82, 7.071, 28.28, 20, 8.409, 40, 40],
|
'Q': [2.5, 0.388, 5, 5, 2.5, 7.071, 14.14, 10, 7.071, 14.14, 8.409, 0.372, 7.071, 10, 16.82, 7.071, 28.28, 20, 8.409, 40, 40],
|
||||||
'gain': [-0.34, 2.49, 0.23, -0.49, 0.23, -0.12, 0.32, -0.29, 0.33, 0.19, -0.18, -1.27, -0.11, 0.25, -0.18, -0.53, 0.34, 1.32, 1.78, 0.41, -0.28]
|
'gain': [-0.34, 2.49, 0.23, -0.49, 0.23, -0.12, 0.32, -0.29, 0.33, 0.19, -0.18, -1.27, -0.11, 0.25, -0.18, -0.53, 0.34, 1.32, 1.78, 0.41, -0.28]
|
||||||
|
|
|
@ -33,6 +33,14 @@ export class utils {
|
||||||
return this.paths[name];
|
return this.paths[name];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the app
|
||||||
|
* @returns {Electron.App}
|
||||||
|
*/
|
||||||
|
static getApp(): Electron.App {
|
||||||
|
return app;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Fetches the i18n locale for the given language.
|
* Fetches the i18n locale for the given language.
|
||||||
* @param language {string} The language to fetch the locale for.
|
* @param language {string} The language to fetch the locale for.
|
||||||
|
@ -126,24 +134,13 @@ export class utils {
|
||||||
bw.win.webContents.send('update-response', "update-error")
|
bw.win.webContents.send('update-response', "update-error")
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
// Get the artifacts
|
|
||||||
const response = await fetch(`https://circleci.com/api/v1.1/project/gh/ciderapp/Cider/latest/artifacts?branch=${utils.getStoreValue('general.update_branch')}&filter=successful`)
|
|
||||||
if (response.status != 200) {
|
|
||||||
bw.win.webContents.send('update-response', 'update-timeout')
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Get the urls
|
|
||||||
const jsonResponse = await response.json()
|
|
||||||
let base_url = jsonResponse[0].url
|
|
||||||
base_url = base_url.substring(0, base_url.lastIndexOf('/'))
|
|
||||||
|
|
||||||
const options: any = {
|
const options: any = {
|
||||||
provider: 'generic',
|
provider: 'github',
|
||||||
url: base_url,
|
protocol: 'https',
|
||||||
|
owner: 'ciderapp',
|
||||||
|
repo: 'cider-releases',
|
||||||
allowDowngrade: true,
|
allowDowngrade: true,
|
||||||
}
|
}
|
||||||
|
|
||||||
let autoUpdater: any = null
|
let autoUpdater: any = null
|
||||||
if (process.platform === 'win32') { //Windows
|
if (process.platform === 'win32') { //Windows
|
||||||
autoUpdater = await new NsisUpdater(options)
|
autoUpdater = await new NsisUpdater(options)
|
||||||
|
|
|
@ -1,11 +1,6 @@
|
||||||
import * as ws from "ws";
|
import * as ws from "ws";
|
||||||
import * as http from "http";
|
|
||||||
import * as https from "https";
|
|
||||||
import * as url from "url";
|
|
||||||
import * as fs from "fs";
|
|
||||||
import * as path from "path";
|
|
||||||
import * as electron from "electron";
|
import * as electron from "electron";
|
||||||
const WebSocket = ws;
|
|
||||||
const WebSocketServer = ws.Server;
|
const WebSocketServer = ws.Server;
|
||||||
|
|
||||||
interface standardResponse {
|
interface standardResponse {
|
||||||
|
@ -22,6 +17,7 @@ export class wsapi {
|
||||||
wss: any = null
|
wss: any = null
|
||||||
clients: any = []
|
clients: any = []
|
||||||
private _win: any;
|
private _win: any;
|
||||||
|
|
||||||
constructor(win: any) {
|
constructor(win: any) {
|
||||||
this._win = win;
|
this._win = win;
|
||||||
}
|
}
|
||||||
|
@ -35,33 +31,34 @@ export class wsapi {
|
||||||
return v.toString(16);
|
return v.toString(16);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public async InitWebSockets() {
|
public async InitWebSockets() {
|
||||||
electron.ipcMain.on('wsapi-updatePlaybackState', (event :any, arg :any) => {
|
electron.ipcMain.on('wsapi-updatePlaybackState', (_event: any, arg: any) => {
|
||||||
this.updatePlaybackState(arg);
|
this.updatePlaybackState(arg);
|
||||||
})
|
})
|
||||||
|
|
||||||
electron.ipcMain.on('wsapi-returnQueue', (event :any, arg :any) => {
|
electron.ipcMain.on('wsapi-returnQueue', (_event: any, arg: any) => {
|
||||||
this.returnQueue(JSON.parse(arg));
|
this.returnQueue(JSON.parse(arg));
|
||||||
});
|
});
|
||||||
|
|
||||||
electron.ipcMain.on('wsapi-returnSearch', (event :any, arg :any) => {
|
electron.ipcMain.on('wsapi-returnSearch', (_event: any, arg: any) => {
|
||||||
console.log("SEARCH")
|
console.log("SEARCH")
|
||||||
this.returnSearch(JSON.parse(arg));
|
this.returnSearch(JSON.parse(arg));
|
||||||
});
|
});
|
||||||
|
|
||||||
electron.ipcMain.on('wsapi-returnSearchLibrary', (event :any, arg :any) => {
|
electron.ipcMain.on('wsapi-returnSearchLibrary', (_event: any, arg: any) => {
|
||||||
this.returnSearchLibrary(JSON.parse(arg));
|
this.returnSearchLibrary(JSON.parse(arg));
|
||||||
});
|
});
|
||||||
|
|
||||||
electron.ipcMain.on('wsapi-returnDynamic', (event :any, arg :any, type :any) => {
|
electron.ipcMain.on('wsapi-returnDynamic', (_event: any, arg: any, type: any) => {
|
||||||
this.returnDynamic(JSON.parse(arg), type);
|
this.returnDynamic(JSON.parse(arg), type);
|
||||||
});
|
});
|
||||||
|
|
||||||
electron.ipcMain.on('wsapi-returnMusicKitApi', (event :any, arg :any, method :any) => {
|
electron.ipcMain.on('wsapi-returnMusicKitApi', (_event: any, arg: any, method: any) => {
|
||||||
this.returnMusicKitApi(JSON.parse(arg), method);
|
this.returnMusicKitApi(JSON.parse(arg), method);
|
||||||
});
|
});
|
||||||
|
|
||||||
electron.ipcMain.on('wsapi-returnLyrics', (event :any, arg :any) => {
|
electron.ipcMain.on('wsapi-returnLyrics', (_event: any, arg: any) => {
|
||||||
this.returnLyrics(JSON.parse(arg));
|
this.returnLyrics(JSON.parse(arg));
|
||||||
});
|
});
|
||||||
electron.ipcMain.on('wsapi-returnvolumeMax', (_event: any, arg: any) => {
|
electron.ipcMain.on('wsapi-returnvolumeMax', (_event: any, arg: any) => {
|
||||||
|
@ -98,7 +95,7 @@ export class wsapi {
|
||||||
ws.id = this.createId();
|
ws.id = this.createId();
|
||||||
console.log(`Client ${ws.id} connected`)
|
console.log(`Client ${ws.id} connected`)
|
||||||
this.clients.push(ws);
|
this.clients.push(ws);
|
||||||
ws.on('message', function incoming(message : any) {
|
ws.on('message', function incoming(_message: any) {
|
||||||
|
|
||||||
});
|
});
|
||||||
// ws on message
|
// ws on message
|
||||||
|
@ -256,45 +253,53 @@ export class wsapi {
|
||||||
ws.send(JSON.stringify(defaultResponse));
|
ws.send(JSON.stringify(defaultResponse));
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
sendToClient(id : any) {
|
|
||||||
|
sendToClient(_id: any) {
|
||||||
// replace the clients.forEach with a filter to find the client that requested
|
// replace the clients.forEach with a filter to find the client that requested
|
||||||
}
|
}
|
||||||
|
|
||||||
updatePlaybackState(attr: any) {
|
updatePlaybackState(attr: any) {
|
||||||
const response: standardResponse = {status: 0, data: attr, message: "OK", type: "playbackStateUpdate"};
|
const response: standardResponse = {status: 0, data: attr, message: "OK", type: "playbackStateUpdate"};
|
||||||
this.clients.forEach(function each(client: any) {
|
this.clients.forEach(function each(client: any) {
|
||||||
client.send(JSON.stringify(response));
|
client.send(JSON.stringify(response));
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
returnMusicKitApi(results: any, method: any) {
|
returnMusicKitApi(results: any, method: any) {
|
||||||
const response: standardResponse = {status: 0, data: results, message: "OK", type: `musickitapi.${method}`};
|
const response: standardResponse = {status: 0, data: results, message: "OK", type: `musickitapi.${method}`};
|
||||||
this.clients.forEach(function each(client: any) {
|
this.clients.forEach(function each(client: any) {
|
||||||
client.send(JSON.stringify(response));
|
client.send(JSON.stringify(response));
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
returnDynamic(results: any, type: any) {
|
returnDynamic(results: any, type: any) {
|
||||||
const response: standardResponse = {status: 0, data: results, message: "OK", type: type};
|
const response: standardResponse = {status: 0, data: results, message: "OK", type: type};
|
||||||
this.clients.forEach(function each(client: any) {
|
this.clients.forEach(function each(client: any) {
|
||||||
client.send(JSON.stringify(response));
|
client.send(JSON.stringify(response));
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
returnLyrics(results: any) {
|
returnLyrics(results: any) {
|
||||||
const response: standardResponse = {status: 0, data: results, message: "OK", type: "lyrics"};
|
const response: standardResponse = {status: 0, data: results, message: "OK", type: "lyrics"};
|
||||||
this.clients.forEach(function each(client: any) {
|
this.clients.forEach(function each(client: any) {
|
||||||
client.send(JSON.stringify(response));
|
client.send(JSON.stringify(response));
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
returnSearch(results: any) {
|
returnSearch(results: any) {
|
||||||
const response: standardResponse = {status: 0, data: results, message: "OK", type: "searchResults"};
|
const response: standardResponse = {status: 0, data: results, message: "OK", type: "searchResults"};
|
||||||
this.clients.forEach(function each(client: any) {
|
this.clients.forEach(function each(client: any) {
|
||||||
client.send(JSON.stringify(response));
|
client.send(JSON.stringify(response));
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
returnSearchLibrary(results: any) {
|
returnSearchLibrary(results: any) {
|
||||||
const response: standardResponse = {status: 0, data: results, message: "OK", type: "searchResultsLibrary"};
|
const response: standardResponse = {status: 0, data: results, message: "OK", type: "searchResultsLibrary"};
|
||||||
this.clients.forEach(function each(client: any) {
|
this.clients.forEach(function each(client: any) {
|
||||||
client.send(JSON.stringify(response));
|
client.send(JSON.stringify(response));
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
returnQueue(queue: any) {
|
returnQueue(queue: any) {
|
||||||
const response: standardResponse = {status: 0, data: queue, message: "OK", type: "queue"};
|
const response: standardResponse = {status: 0, data: queue, message: "OK", type: "queue"};
|
||||||
this.clients.forEach(function each(client: any) {
|
this.clients.forEach(function each(client: any) {
|
||||||
|
|
|
@ -54,6 +54,7 @@ app.on('ready', () => {
|
||||||
|
|
||||||
win.on("ready-to-show", () => {
|
win.on("ready-to-show", () => {
|
||||||
Cider.bwCreated();
|
Cider.bwCreated();
|
||||||
|
console.debug('[Cider] Window is Ready.')
|
||||||
CiderPlug.callPlugins('onReady', win);
|
CiderPlug.callPlugins('onReady', win);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
|
@ -27,6 +27,7 @@ export default class ChromecastPlugin {
|
||||||
// private requests = [];
|
// private requests = [];
|
||||||
// private GCstream = new Stream.PassThrough(),
|
// private GCstream = new Stream.PassThrough(),
|
||||||
private connectedHosts: any = {};
|
private connectedHosts: any = {};
|
||||||
|
private connectedPlayer: any;
|
||||||
// private port = false;
|
// private port = false;
|
||||||
// private server = false;
|
// private server = false;
|
||||||
// private bufcount = 0;
|
// private bufcount = 0;
|
||||||
|
@ -58,8 +59,11 @@ export default class ChromecastPlugin {
|
||||||
|
|
||||||
function getLocation(headers: any) {
|
function getLocation(headers: any) {
|
||||||
let location = null;
|
let location = null;
|
||||||
if (headers["LOCATION"] != null ){location = headers["LOCATION"]}
|
if (headers["LOCATION"] != null) {
|
||||||
else if (headers["Location"] != null ){location = headers["Location"]}
|
location = headers["LOCATION"]
|
||||||
|
} else if (headers["Location"] != null) {
|
||||||
|
location = headers["Location"]
|
||||||
|
}
|
||||||
return location;
|
return location;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -182,23 +186,35 @@ export default class ChromecastPlugin {
|
||||||
// send websocket ip
|
// send websocket ip
|
||||||
|
|
||||||
player.sendIp("ws://" + this.getIp() + ":26369");
|
player.sendIp("ws://" + this.getIp() + ":26369");
|
||||||
|
electron.ipcMain.on('stopGCast', (_event) => {
|
||||||
|
player.kill();
|
||||||
|
})
|
||||||
|
electron.app.on('before-quit', (_event) => {
|
||||||
|
player.kill();
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
private getIp(){
|
private getIp(){
|
||||||
let ip = false;
|
let ip: string = '';
|
||||||
|
let ip2: any = [];
|
||||||
let alias = 0;
|
let alias = 0;
|
||||||
let ifaces: any = os.networkInterfaces();
|
const ifaces: any = os.networkInterfaces();
|
||||||
for (var dev in ifaces) {
|
for (let dev in ifaces) {
|
||||||
ifaces[dev].forEach((details: any) => {
|
ifaces[dev].forEach((details: any) => {
|
||||||
if (details.family === 'IPv4') {
|
if (details.family === 'IPv4' && !details.internal) {
|
||||||
if (!/(loopback|vmware|internal|hamachi|vboxnet|virtualbox)/gi.test(dev + (alias ? ':' + alias : ''))) {
|
if (!/(loopback|vmware|internal|hamachi|vboxnet|virtualbox)/gi.test(dev + (alias ? ':' + alias : ''))) {
|
||||||
if (details.address.substring(0, 8) === '192.168.' ||
|
if (details.address.substring(0, 8) === '192.168.' ||
|
||||||
details.address.substring(0, 7) === '172.16.' ||
|
details.address.substring(0, 7) === '172.16.' ||
|
||||||
details.address.substring(0, 3) === '10.'
|
details.address.substring(0, 3) === '10.'
|
||||||
) {
|
) {
|
||||||
ip = details.address;
|
if (!ip.startsWith('192.168.') ||
|
||||||
|
(ip2.startsWith('192.168.') && !ip.startsWith('192.168.')) &&
|
||||||
|
(ip2.startsWith('172.16.') && !ip.startsWith('192.168.') && !ip.startsWith('172.16.')) ||
|
||||||
|
(ip2.startsWith('10.') && !ip.startsWith('192.168.') && !ip.startsWith('172.16.') && !ip.startsWith('10.'))
|
||||||
|
){ip = details.address;}
|
||||||
++alias;
|
++alias;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -289,10 +305,9 @@ export default class ChromecastPlugin {
|
||||||
/**
|
/**
|
||||||
* Runs on plugin load (Currently run on application start)
|
* Runs on plugin load (Currently run on application start)
|
||||||
*/
|
*/
|
||||||
constructor(app: any, store: any) {
|
constructor(utils: { getApp: () => any; getStore: () => any; }) {
|
||||||
this._app = app;
|
this._app = utils.getApp();
|
||||||
this._store = store
|
this._store = utils.getStore()
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -318,6 +333,11 @@ export default class ChromecastPlugin {
|
||||||
|
|
||||||
electron.ipcMain.on('stopGCast', (_event) => {
|
electron.ipcMain.on('stopGCast', (_event) => {
|
||||||
this._win.webContents.setAudioMuted(false);
|
this._win.webContents.setAudioMuted(false);
|
||||||
|
this.activeConnections.forEach((client: any) => {
|
||||||
|
try{
|
||||||
|
client.stop();
|
||||||
|
} catch(e){}
|
||||||
|
})
|
||||||
this.activeConnections = [];
|
this.activeConnections = [];
|
||||||
this.connectedHosts = {};
|
this.connectedHosts = {};
|
||||||
|
|
||||||
|
|
|
@ -74,6 +74,12 @@ export default class DiscordRichPresence {
|
||||||
this.disconnect()
|
this.disconnect()
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// If Discord is closed, allow reconnecting
|
||||||
|
this._client.transport.once('close', () => {
|
||||||
|
console.info(`[DiscordRichPresence] Connection closed`);
|
||||||
|
this.disconnect()
|
||||||
|
});
|
||||||
|
|
||||||
// Login to Discord
|
// Login to Discord
|
||||||
this._client.login({clientId})
|
this._client.login({clientId})
|
||||||
.then(() => {
|
.then(() => {
|
||||||
|
@ -86,12 +92,17 @@ export default class DiscordRichPresence {
|
||||||
* Disconnects from Discord RPC
|
* Disconnects from Discord RPC
|
||||||
*/
|
*/
|
||||||
private disconnect() {
|
private disconnect() {
|
||||||
if (!this._client) return;
|
if (!this._client) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
this._client.destroy().then(() => {
|
this._client.destroy().then(() => {
|
||||||
DiscordRichPresence._connection = false;
|
DiscordRichPresence._connection = false;
|
||||||
console.log('[DiscordRPC][disconnect] Disconnected from discord.')
|
console.log('[DiscordRPC][disconnect] Disconnected from discord.')
|
||||||
}).catch((e: any) => console.error(`[DiscordRPC][disconnect] ${e}`));
|
}).catch((e: any) => console.error(`[DiscordRPC][disconnect] ${e}`));
|
||||||
|
|
||||||
|
// Clean up, allow creating a new connection
|
||||||
|
this._client = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -137,7 +148,13 @@ export default class DiscordRichPresence {
|
||||||
* @param {object} attributes
|
* @param {object} attributes
|
||||||
*/
|
*/
|
||||||
private updateActivity(attributes: any) {
|
private updateActivity(attributes: any) {
|
||||||
if (!this._client) return;
|
if (DiscordRichPresence._store.general.discord_rpc == 0) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!this._client) {
|
||||||
|
this.connect(DiscordRichPresence._store.general.discord_rpc == 1 ? '911790844204437504' : '886578863147192350')
|
||||||
|
}
|
||||||
|
|
||||||
if (!DiscordRichPresence._connection) {
|
if (!DiscordRichPresence._connection) {
|
||||||
this._client.clearActivity().catch((e: any) => console.error(`[DiscordRichPresence][clearActivity] ${e}`));
|
this._client.clearActivity().catch((e: any) => console.error(`[DiscordRichPresence][clearActivity] ${e}`));
|
||||||
|
@ -147,7 +164,7 @@ export default class DiscordRichPresence {
|
||||||
this._activity = {
|
this._activity = {
|
||||||
details: attributes.name,
|
details: attributes.name,
|
||||||
state: `${attributes.artistName ? `by ${attributes.artistName}` : ''}`,
|
state: `${attributes.artistName ? `by ${attributes.artistName}` : ''}`,
|
||||||
startTimestamp: attributes.startTime,
|
startTimestamp: Date.now() - (attributes?.durationInMillis - attributes?.remainingTime),
|
||||||
endTimestamp: attributes.endTime,
|
endTimestamp: attributes.endTime,
|
||||||
largeImageKey: attributes?.artwork?.url?.replace('{w}', '1024').replace('{h}', '1024'),
|
largeImageKey: attributes?.artwork?.url?.replace('{w}', '1024').replace('{h}', '1024'),
|
||||||
largeImageText: attributes.albumName,
|
largeImageText: attributes.albumName,
|
||||||
|
@ -193,10 +210,10 @@ export default class DiscordRichPresence {
|
||||||
/**
|
/**
|
||||||
* Runs on plugin load (Currently run on application start)
|
* Runs on plugin load (Currently run on application start)
|
||||||
*/
|
*/
|
||||||
constructor(app: any, store: any) {
|
constructor(utils: { getStore: () => any; getApp: () => any; }) {
|
||||||
DiscordRichPresence._store = store
|
DiscordRichPresence._store = utils.getStore();
|
||||||
console.debug(`[Plugin][${this.name}] Loading Complete.`);
|
console.debug(`[Plugin][${this.name}] Loading Complete.`);
|
||||||
this._app = app;
|
this._app = utils.getApp();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -240,7 +257,8 @@ export default class DiscordRichPresence {
|
||||||
onPlaybackStateDidChange(attributes: object): void {
|
onPlaybackStateDidChange(attributes: object): void {
|
||||||
if (!DiscordRichPresence._store.general.privateEnabled) {
|
if (!DiscordRichPresence._store.general.privateEnabled) {
|
||||||
this._attributes = attributes
|
this._attributes = attributes
|
||||||
this.updateActivity(attributes)}
|
this.updateActivity(attributes)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -250,6 +268,7 @@ export default class DiscordRichPresence {
|
||||||
onNowPlayingItemDidChange(attributes: object): void {
|
onNowPlayingItemDidChange(attributes: object): void {
|
||||||
if (!DiscordRichPresence._store.general.privateEnabled) {
|
if (!DiscordRichPresence._store.general.privateEnabled) {
|
||||||
this._attributes = attributes
|
this._attributes = attributes
|
||||||
this.updateActivity(attributes)}
|
this.updateActivity(attributes)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -207,10 +207,10 @@ export default class LastFMPlugin {
|
||||||
/**
|
/**
|
||||||
* Runs on plugin load (Currently run on application start)
|
* Runs on plugin load (Currently run on application start)
|
||||||
*/
|
*/
|
||||||
constructor(app: any, store: any) {
|
constructor(utils: { getApp: () => any; getStore: () => any; }) {
|
||||||
this._app = app;
|
this._app = utils.getApp();
|
||||||
this._store = store
|
this._store = utils.getStore()
|
||||||
electron.app.on('second-instance', (_e: any, argv: any) => {
|
utils.getApp().on('second-instance', (_e: any, argv: any) => {
|
||||||
// Checks if first instance is authorized and if second instance has protocol args
|
// Checks if first instance is authorized and if second instance has protocol args
|
||||||
argv.forEach((value: any) => {
|
argv.forEach((value: any) => {
|
||||||
if (value.includes('auth')) {
|
if (value.includes('auth')) {
|
||||||
|
@ -271,7 +271,8 @@ export default class LastFMPlugin {
|
||||||
this._lastfm.cachedAttributes = false
|
this._lastfm.cachedAttributes = false
|
||||||
}
|
}
|
||||||
this.updateNowPlayingSong(attributes)
|
this.updateNowPlayingSong(attributes)
|
||||||
this.scrobbleSong(attributes)}
|
this.scrobbleSong(attributes)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
import {app, Menu, shell} from "electron";
|
import {app, Menu, shell} from "electron";
|
||||||
|
import {utils} from "../base/utils";
|
||||||
|
|
||||||
export default class Thumbar {
|
export default class Thumbar {
|
||||||
/**
|
/**
|
||||||
|
@ -34,7 +35,7 @@ export default class Thumbar {
|
||||||
* @private
|
* @private
|
||||||
*/
|
*/
|
||||||
private isMac: boolean = process.platform === 'darwin';
|
private isMac: boolean = process.platform === 'darwin';
|
||||||
private menubarTemplate: any = [
|
private _menuTemplate: any = [
|
||||||
{
|
{
|
||||||
label: app.getName(),
|
label: app.getName(),
|
||||||
submenu: [
|
submenu: [
|
||||||
|
@ -76,13 +77,19 @@ export default class Thumbar {
|
||||||
label: 'Window',
|
label: 'Window',
|
||||||
submenu: [
|
submenu: [
|
||||||
{role: 'minimize'},
|
{role: 'minimize'},
|
||||||
|
{
|
||||||
|
label: 'Show',
|
||||||
|
click: () => utils.getWindow().show()
|
||||||
|
},
|
||||||
{role: 'zoom'},
|
{role: 'zoom'},
|
||||||
...(this.isMac ? [
|
...(this.isMac ? [
|
||||||
{type: 'separator'},
|
{type: 'separator'},
|
||||||
{role: 'front'},
|
{role: 'front'},
|
||||||
|
{role: 'close'},
|
||||||
] : [
|
] : [
|
||||||
{role: 'close'}
|
{role: 'close'},
|
||||||
]),
|
]),
|
||||||
|
|
||||||
{
|
{
|
||||||
label: 'Edit',
|
label: 'Edit',
|
||||||
submenu: [
|
submenu: [
|
||||||
|
@ -142,6 +149,12 @@ export default class Thumbar {
|
||||||
label: 'Volume Down',
|
label: 'Volume Down',
|
||||||
accelerator: 'CommandOrControl+Down',
|
accelerator: 'CommandOrControl+Down',
|
||||||
click: () => this._win.webContents.executeJavaScript(`app.volumeDown()`)
|
click: () => this._win.webContents.executeJavaScript(`app.volumeDown()`)
|
||||||
|
},
|
||||||
|
{type: 'separator'},
|
||||||
|
{
|
||||||
|
label: 'Cast To Devices',
|
||||||
|
accelerator: 'CommandOrControl+Shift+C',
|
||||||
|
click: () => this._win.webContents.executeJavaScript(`app.modals.castMenu = true`)
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
@ -214,9 +227,9 @@ export default class Thumbar {
|
||||||
/**
|
/**
|
||||||
* Runs on plugin load (Currently run on application start)
|
* Runs on plugin load (Currently run on application start)
|
||||||
*/
|
*/
|
||||||
constructor(app: any, store: any) {
|
constructor(utils: { getApp: () => any; getStore: () => any; }) {
|
||||||
this._app = app;
|
this._app = utils.getApp();
|
||||||
this._store = store
|
this._store = utils.getStore();
|
||||||
console.debug(`[Plugin][${this.name}] Loading Complete.`);
|
console.debug(`[Plugin][${this.name}] Loading Complete.`);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -225,7 +238,8 @@ export default class Thumbar {
|
||||||
*/
|
*/
|
||||||
onReady(win: Electron.BrowserWindow): void {
|
onReady(win: Electron.BrowserWindow): void {
|
||||||
this._win = win;
|
this._win = win;
|
||||||
Menu.setApplicationMenu(Menu.buildFromTemplate(this.menubarTemplate))
|
const menu = Menu.buildFromTemplate(this._menuTemplate);
|
||||||
|
Menu.setApplicationMenu(menu)
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1,12 +1,11 @@
|
||||||
// @ts-ignore
|
// @ts-ignore
|
||||||
import * as Player from 'mpris-service';
|
import * as Player from 'mpris-service';
|
||||||
|
|
||||||
export default class MPRIS {
|
export default class mpris {
|
||||||
/**
|
/**
|
||||||
* Private variables for interaction in plugins
|
* Private variables for interaction in plugins
|
||||||
*/
|
*/
|
||||||
private _win: any;
|
private static utils: any;
|
||||||
private _app: any;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Base Plugin Details (Eventually implemented into a GUI in settings)
|
* Base Plugin Details (Eventually implemented into a GUI in settings)
|
||||||
|
@ -19,13 +18,13 @@ export default class MPRIS {
|
||||||
/**
|
/**
|
||||||
* MPRIS Service
|
* MPRIS Service
|
||||||
*/
|
*/
|
||||||
private mpris: any;
|
private static player: Player.Player;
|
||||||
private mprisEvents: Object = {
|
private static mprisEvents: Object = {
|
||||||
"playpause": "pausePlay",
|
"playpause": "playPause",
|
||||||
"play": "pausePlay",
|
"play": "play",
|
||||||
"pause": "pausePlay",
|
"pause": "pause",
|
||||||
"next": "nextTrack",
|
"next": "next",
|
||||||
"previous": "previousTrack",
|
"previous": "previous",
|
||||||
}
|
}
|
||||||
|
|
||||||
/*******************************************************************************************
|
/*******************************************************************************************
|
||||||
|
@ -34,13 +33,12 @@ export default class MPRIS {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Runs a media event
|
* Runs a media event
|
||||||
* @param type - pausePlay, nextTrack, PreviousTrack
|
* @param type - pausePlay, next, previous
|
||||||
* @private
|
* @private
|
||||||
*/
|
*/
|
||||||
private runMediaEvent(type: string) {
|
private static runMediaEvent(type: string) {
|
||||||
if (this._win) {
|
console.debug(`[Plugin][${this.name}] ${type}.`);
|
||||||
this._win.webContents.executeJavaScript(`MusicKitInterop.${type}()`).catch(console.error)
|
mpris.utils.getWindow().webContents.executeJavaScript(`MusicKitInterop.${type}()`).catch(console.error)
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -60,91 +58,89 @@ export default class MPRIS {
|
||||||
/**
|
/**
|
||||||
* Connects to MPRIS Service
|
* Connects to MPRIS Service
|
||||||
*/
|
*/
|
||||||
@MPRIS.linuxOnly
|
private static connect() {
|
||||||
private connect() {
|
|
||||||
this.mpris = Player({
|
const player = Player({
|
||||||
name: 'Cider',
|
name: 'cider',
|
||||||
identity: 'Cider',
|
identity: 'Cider',
|
||||||
supportedUriSchemes: [],
|
supportedUriSchemes: [],
|
||||||
supportedMimeTypes: [],
|
supportedMimeTypes: [],
|
||||||
supportedInterfaces: ['player']
|
supportedInterfaces: ['player']
|
||||||
});
|
});
|
||||||
this.mpris = Object.assign(this.mpris, {
|
|
||||||
canQuit: true,
|
|
||||||
canControl: true,
|
|
||||||
canPause: true,
|
|
||||||
canPlay: true,
|
|
||||||
canGoNext: true,
|
|
||||||
active: true
|
|
||||||
})
|
|
||||||
|
|
||||||
|
console.debug(`[Plugin][${mpris.name}] Successfully connected.`);
|
||||||
|
|
||||||
const pos_atr = {durationInMillis: 0};
|
const pos_atr = {durationInMillis: 0};
|
||||||
this.mpris.getPosition = function () {
|
player.getPosition = function () {
|
||||||
const durationInMicro = pos_atr.durationInMillis * 1000;
|
const durationInMicro = pos_atr.durationInMillis * 1000;
|
||||||
const percentage = parseFloat("0") || 0;
|
const percentage = parseFloat("0") || 0;
|
||||||
return durationInMicro * percentage;
|
return durationInMicro * percentage;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (const [key, value] of Object.entries(this.mprisEvents)) {
|
for (const [key, value] of Object.entries(mpris.mprisEvents)) {
|
||||||
this.mpris.on(key, () => {
|
player.on(key, function () {
|
||||||
this.runMediaEvent(value)
|
mpris.runMediaEvent(value)
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
player.on('quit', function () {
|
||||||
|
process.exit();
|
||||||
|
});
|
||||||
|
|
||||||
|
mpris.player = player;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Update MPRIS Player Attributes
|
* Update M.P.R.I.S Player Attributes
|
||||||
*/
|
*/
|
||||||
@MPRIS.linuxOnly
|
private static updatePlayer(attributes: any) {
|
||||||
private updatePlayer(attributes: any) {
|
|
||||||
|
|
||||||
const MetaData = {
|
const MetaData = {
|
||||||
'mpris:trackid': this.mpris.objectPath(`track/${attributes.playParams.id.replace(/[.]+/g, "")}`),
|
'mpris:trackid': mpris.player.objectPath(`track/${attributes.playParams.id.replace(/[.]+/g, "")}`),
|
||||||
'mpris:length': attributes.durationInMillis * 1000, // In microseconds
|
'mpris:length': attributes.durationInMillis * 1000, // In microseconds
|
||||||
'mpris:artUrl': (attributes.artwork.url.replace('/{w}x{h}bb', '/512x512bb')).replace('/2000x2000bb', '/35x35bb'),
|
'mpris:artUrl': (attributes.artwork.url.replace('/{w}x{h}bb', '/512x512bb')).replace('/2000x2000bb', '/35x35bb'),
|
||||||
'xesam:title': `${attributes.name}`,
|
'xesam:title': `${attributes.name}`,
|
||||||
'xesam:album': `${attributes.albumName}`,
|
'xesam:album': `${attributes.albumName}`,
|
||||||
'xesam:artist': [`${attributes.artistName}`,],
|
'xesam:artist': [`${attributes.artistName}`],
|
||||||
'xesam:genre': attributes.genreNames
|
'xesam:genre': attributes.genreNames
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.mpris.metadata["mpris:trackid"] === MetaData["mpris:trackid"]) {
|
if (mpris.player.metadata["mpris:trackid"] === MetaData["mpris:trackid"]) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
this.mpris.metadata = MetaData
|
mpris.player.metadata = MetaData;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Update MPRIS Player State
|
* Update M.P.R.I.S Player State
|
||||||
* @private
|
* @private
|
||||||
* @param attributes
|
* @param attributes
|
||||||
*/
|
*/
|
||||||
@MPRIS.linuxOnly
|
private static updatePlayerState(attributes: any) {
|
||||||
private updatePlayerState(attributes: any) {
|
switch (attributes.status) {
|
||||||
|
case true: // Playing
|
||||||
let status = 'Stopped';
|
mpris.player.playbackStatus = Player.PLAYBACK_STATUS_PLAYING;
|
||||||
if (attributes.status) {
|
break;
|
||||||
status = 'Playing';
|
case false: // Paused
|
||||||
} else if (attributes.status === false) {
|
mpris.player.playbackStatus = Player.PLAYBACK_STATUS_PAUSED;
|
||||||
status = 'Paused';
|
break;
|
||||||
|
default:
|
||||||
|
mpris.player.playbackStatus = Player.PLAYBACK_STATUS_STOPPED;
|
||||||
|
break
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.mpris.playbackStatus === status) {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
this.mpris.playbackStatus = status;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Clear state
|
* Clear state
|
||||||
* @private
|
* @private
|
||||||
*/
|
*/
|
||||||
private clearState() {
|
private static clearState() {
|
||||||
this.mpris.metadata = {'mpris:trackid': '/org/mpris/MediaPlayer2/TrackList/NoTrack'}
|
if (!mpris.player) {
|
||||||
this.mpris.playbackStatus = 'Stopped';
|
return
|
||||||
|
}
|
||||||
|
mpris.player.metadata = {'mpris:trackid': '/org/mpris/MediaPlayer2/TrackList/NoTrack'}
|
||||||
|
mpris.player.playbackStatus = Player.PLAYBACK_STATUS_STOPPED;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -155,46 +151,55 @@ export default class MPRIS {
|
||||||
/**
|
/**
|
||||||
* Runs on plugin load (Currently run on application start)
|
* Runs on plugin load (Currently run on application start)
|
||||||
*/
|
*/
|
||||||
constructor(app: any, _store: any) {
|
constructor(utils: any) {
|
||||||
this._app = app;
|
mpris.utils = utils
|
||||||
console.debug(`[Plugin][${this.name}] Loading Complete.`);
|
|
||||||
|
console.debug(`[Plugin][${mpris.name}] Loading Complete.`);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Runs on app ready
|
* Runs on app ready
|
||||||
*/
|
*/
|
||||||
onReady(win: any): void {
|
@mpris.linuxOnly
|
||||||
this._win = win;
|
onReady(_: any): void {
|
||||||
console.debug(`[Plugin][${this.name}] Ready.`);
|
console.debug(`[Plugin][${mpris.name}] Ready.`);
|
||||||
this.connect()
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Renderer ready
|
||||||
|
*/
|
||||||
|
@mpris.linuxOnly
|
||||||
|
onRendererReady(): void {
|
||||||
|
mpris.connect()
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Runs on app stop
|
* Runs on app stop
|
||||||
*/
|
*/
|
||||||
|
@mpris.linuxOnly
|
||||||
onBeforeQuit(): void {
|
onBeforeQuit(): void {
|
||||||
console.debug(`[Plugin][${this.name}] Stopped.`);
|
console.debug(`[Plugin][${mpris.name}] Stopped.`);
|
||||||
try {
|
mpris.clearState()
|
||||||
this.clearState()
|
|
||||||
}catch(e) {
|
|
||||||
console.error(e)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Runs on playback State Change
|
* Runs on playback State Change
|
||||||
* @param attributes Music Attributes (attributes.state = current state)
|
* @param attributes Music Attributes (attributes.status = current state)
|
||||||
*/
|
*/
|
||||||
|
@mpris.linuxOnly
|
||||||
onPlaybackStateDidChange(attributes: object): void {
|
onPlaybackStateDidChange(attributes: object): void {
|
||||||
this.updatePlayerState(attributes)
|
console.debug(`[Plugin][${mpris.name}] onPlaybackStateDidChange.`);
|
||||||
|
mpris.updatePlayerState(attributes)
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Runs on song change
|
* Runs on song change
|
||||||
* @param attributes Music Attributes
|
* @param attributes Music Attributes
|
||||||
*/
|
*/
|
||||||
|
@mpris.linuxOnly
|
||||||
onNowPlayingItemDidChange(attributes: object): void {
|
onNowPlayingItemDidChange(attributes: object): void {
|
||||||
this.updatePlayer(attributes);
|
console.debug(`[Plugin][${mpris.name}] onMetadataDidChange.`);
|
||||||
|
mpris.updatePlayer(attributes);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -47,7 +47,6 @@ export default class Thumbar {
|
||||||
/**
|
/**
|
||||||
* Update the thumbnail toolbar
|
* Update the thumbnail toolbar
|
||||||
*/
|
*/
|
||||||
@Thumbar.windowsOnly
|
|
||||||
private updateButtons(attributes: any) {
|
private updateButtons(attributes: any) {
|
||||||
|
|
||||||
console.log(attributes)
|
console.log(attributes)
|
||||||
|
@ -94,14 +93,15 @@ export default class Thumbar {
|
||||||
/**
|
/**
|
||||||
* Runs on plugin load (Currently run on application start)
|
* Runs on plugin load (Currently run on application start)
|
||||||
*/
|
*/
|
||||||
constructor(app: any, _store: any) {
|
constructor(utils: { getApp: () => any; }) {
|
||||||
this._app = app;
|
this._app = utils.getApp();
|
||||||
console.debug(`[Plugin][${this.name}] Loading Complete.`);
|
console.debug(`[Plugin][${this.name}] Loading Complete.`);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Runs on app ready
|
* Runs on app ready
|
||||||
*/
|
*/
|
||||||
|
@Thumbar.windowsOnly
|
||||||
onReady(win: Electron.BrowserWindow): void {
|
onReady(win: Electron.BrowserWindow): void {
|
||||||
this._win = win;
|
this._win = win;
|
||||||
console.debug(`[Plugin][${this.name}] Ready.`);
|
console.debug(`[Plugin][${this.name}] Ready.`);
|
||||||
|
@ -110,6 +110,7 @@ export default class Thumbar {
|
||||||
/**
|
/**
|
||||||
* Runs on app stop
|
* Runs on app stop
|
||||||
*/
|
*/
|
||||||
|
@Thumbar.windowsOnly
|
||||||
onBeforeQuit(): void {
|
onBeforeQuit(): void {
|
||||||
console.debug(`[Plugin][${this.name}] Stopped.`);
|
console.debug(`[Plugin][${this.name}] Stopped.`);
|
||||||
}
|
}
|
||||||
|
@ -118,6 +119,7 @@ export default class Thumbar {
|
||||||
* Runs on playback State Change
|
* Runs on playback State Change
|
||||||
* @param attributes Music Attributes (attributes.status = current state)
|
* @param attributes Music Attributes (attributes.status = current state)
|
||||||
*/
|
*/
|
||||||
|
@Thumbar.windowsOnly
|
||||||
onPlaybackStateDidChange(attributes: object): void {
|
onPlaybackStateDidChange(attributes: object): void {
|
||||||
this.updateButtons(attributes)
|
this.updateButtons(attributes)
|
||||||
}
|
}
|
||||||
|
@ -126,6 +128,7 @@ export default class Thumbar {
|
||||||
* Runs on song change
|
* Runs on song change
|
||||||
* @param attributes Music Attributes
|
* @param attributes Music Attributes
|
||||||
*/
|
*/
|
||||||
|
@Thumbar.windowsOnly
|
||||||
onNowPlayingItemDidChange(attributes: object): void {
|
onNowPlayingItemDidChange(attributes: object): void {
|
||||||
this.updateButtons(attributes)
|
this.updateButtons(attributes)
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,7 +10,7 @@ const MusicKitInterop = {
|
||||||
const attributes = MusicKitInterop.getAttributes()
|
const attributes = MusicKitInterop.getAttributes()
|
||||||
if (MusicKitInterop.filterTrack(attributes, true, false)) {
|
if (MusicKitInterop.filterTrack(attributes, true, false)) {
|
||||||
global.ipcRenderer.send('playbackStateDidChange', attributes)
|
global.ipcRenderer.send('playbackStateDidChange', attributes)
|
||||||
ipcRenderer.send('wsapi-updatePlaybackState', attributes);
|
global.ipcRenderer.send('wsapi-updatePlaybackState', attributes);
|
||||||
// if (typeof _plugins != "undefined") {
|
// if (typeof _plugins != "undefined") {
|
||||||
// _plugins.execute("OnPlaybackStateChanged", {Attributes: MusicKitInterop.getAttributes()})
|
// _plugins.execute("OnPlaybackStateChanged", {Attributes: MusicKitInterop.getAttributes()})
|
||||||
// }
|
// }
|
||||||
|
@ -24,6 +24,7 @@ const MusicKitInterop = {
|
||||||
/** wsapi */
|
/** wsapi */
|
||||||
|
|
||||||
MusicKit.getInstance().addEventListener(MusicKit.Events.nowPlayingItemDidChange, async () => {
|
MusicKit.getInstance().addEventListener(MusicKit.Events.nowPlayingItemDidChange, async () => {
|
||||||
|
console.log('nowPlayingItemDidChange')
|
||||||
const attributes = MusicKitInterop.getAttributes()
|
const attributes = MusicKitInterop.getAttributes()
|
||||||
const trackFilter = MusicKitInterop.filterTrack(attributes, false, true)
|
const trackFilter = MusicKitInterop.filterTrack(attributes, false, true)
|
||||||
|
|
||||||
|
@ -47,7 +48,7 @@ const MusicKitInterop = {
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
async modifyNamesOnLocale() {
|
async modifyNamesOnLocale() {
|
||||||
if (app.mklang == '' || app.mklang == null) {
|
if (app.mklang === '' || app.mklang == null) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
const mk = MusicKit.getInstance()
|
const mk = MusicKit.getInstance()
|
||||||
|
@ -56,17 +57,17 @@ const MusicKitInterop = {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
const id = nowPlayingItem?._songId ?? (nowPlayingItem?.songId ?? nowPlayingItem?.id)
|
const id = nowPlayingItem?._songId ?? (nowPlayingItem?.songId ?? nowPlayingItem?.id)
|
||||||
if (id != null && id != -1) {
|
if (id != null && id !== -1) {
|
||||||
try{
|
try{
|
||||||
const query = await mk.api.v3.music(`/v1${(((nowPlayingItem?._songId ?? nowPlayingItem?.songId) != null) && ((nowPlayingItem?._songId ?? nowPlayingItem?.songId) != -1)) ? `/catalog/${mk.storefrontId}/` : `/me/library/`}songs/${id}?l=${app.mklang}`);
|
const query = await mk.api.v3.music(`/v1${(((nowPlayingItem?._songId ?? nowPlayingItem?.songId) != null) && ((nowPlayingItem?._songId ?? nowPlayingItem?.songId) !== -1)) ? `/catalog/${mk.storefrontId}/` : `/me/library/`}songs/${id}?l=${app.mklang}`);
|
||||||
if (query?.data?.data[0]){
|
if (query?.data?.data[0]){
|
||||||
let attrs = query?.data?.data[0]?.attributes;
|
let attrs = query?.data?.data[0]?.attributes;
|
||||||
if (attrs?.name) { nowPlayingItem.attributes.name = attrs?.name ?? ''}
|
if (attrs?.name) { nowPlayingItem.attributes.name = attrs?.name ?? ''}
|
||||||
if (attrs?.albumName) { nowPlayingItem.attributes.albumName = attrs?.albumName ?? ''}
|
if (attrs?.albumName) { nowPlayingItem.attributes.albumName = attrs?.albumName ?? ''}
|
||||||
if (attrs?.artistName) { nowPlayingItem.attributes.artistName = attrs?.artistName ?? ''}
|
if (attrs?.artistName) { nowPlayingItem.attributes.artistName = attrs?.artistName ?? ''}
|
||||||
|
|
||||||
}} catch (e) { return;}
|
}} catch (e) { }
|
||||||
} else {return;}
|
} else {}
|
||||||
},
|
},
|
||||||
getAttributes: function () {
|
getAttributes: function () {
|
||||||
const mk = MusicKit.getInstance()
|
const mk = MusicKit.getInstance()
|
||||||
|
@ -75,7 +76,7 @@ const MusicKitInterop = {
|
||||||
const remainingTimeExport = mk.currentPlaybackTimeRemaining;
|
const remainingTimeExport = mk.currentPlaybackTimeRemaining;
|
||||||
const attributes = (nowPlayingItem != null ? nowPlayingItem.attributes : {});
|
const attributes = (nowPlayingItem != null ? nowPlayingItem.attributes : {});
|
||||||
|
|
||||||
attributes.status = isPlayingExport ?? false;
|
attributes.status = isPlayingExport ?? null;
|
||||||
attributes.name = attributes?.name ?? 'no-title-found';
|
attributes.name = attributes?.name ?? 'no-title-found';
|
||||||
attributes.artwork = attributes?.artwork ?? {url: ''};
|
attributes.artwork = attributes?.artwork ?? {url: ''};
|
||||||
attributes.artwork.url = (attributes?.artwork?.url ?? '').replace(`{f}`, "png");
|
attributes.artwork.url = (attributes?.artwork?.url ?? '').replace(`{f}`, "png");
|
||||||
|
@ -120,7 +121,7 @@ const MusicKitInterop = {
|
||||||
},
|
},
|
||||||
|
|
||||||
play: () => {
|
play: () => {
|
||||||
MusicKit.getInstance().play().then(r => console.log(`[MusicKitInterop.play] ${r}`));
|
MusicKit.getInstance().play().catch(console.error);
|
||||||
},
|
},
|
||||||
|
|
||||||
pause: () => {
|
pause: () => {
|
||||||
|
@ -131,22 +132,23 @@ const MusicKitInterop = {
|
||||||
if (MusicKit.getInstance().isPlaying) {
|
if (MusicKit.getInstance().isPlaying) {
|
||||||
MusicKit.getInstance().pause();
|
MusicKit.getInstance().pause();
|
||||||
} else if (MusicKit.getInstance().nowPlayingItem != null) {
|
} else if (MusicKit.getInstance().nowPlayingItem != null) {
|
||||||
MusicKit.getInstance().play().then(r => console.log(`[MusicKitInterop.playPause] Playing ${r}`));
|
MusicKit.getInstance().play().catch(console.error);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
next: () => {
|
next: () => {
|
||||||
try {
|
// try {
|
||||||
app.prevButtonBackIndicator = false;
|
// app.prevButtonBackIndicator = false;
|
||||||
} catch (e) { }
|
// } catch (e) { }
|
||||||
if (MusicKit.getInstance().queue.nextPlayableItemIndex != -1 && MusicKit.getInstance().queue.nextPlayableItemIndex != null)
|
// if (MusicKit.getInstance().queue.nextPlayableItemIndex != -1 && MusicKit.getInstance().queue.nextPlayableItemIndex != null)
|
||||||
MusicKit.getInstance().changeToMediaAtIndex(MusicKit.getInstance().queue.nextPlayableItemIndex);
|
// MusicKit.getInstance().changeToMediaAtIndex(MusicKit.getInstance().queue.nextPlayableItemIndex);
|
||||||
// MusicKit.getInstance().skipToNextItem().then(r => console.log(`[MusicKitInterop.next] Skipping to Next ${r}`));
|
MusicKit.getInstance().skipToNextItem().then(r => console.log(`[MusicKitInterop.next] Skipping to Next ${r}`));
|
||||||
},
|
},
|
||||||
|
|
||||||
previous: () => {
|
previous: () => {
|
||||||
if (MusicKit.getInstance().queue.previousPlayableItemIndex != -1 && MusicKit.getInstance().queue.previousPlayableItemIndex != null)
|
// if (MusicKit.getInstance().queue.previousPlayableItemIndex != -1 && MusicKit.getInstance().queue.previousPlayableItemIndex != null)
|
||||||
MusicKit.getInstance().changeToMediaAtIndex(MusicKit.getInstance().queue.previousPlayableItemIndex);
|
// MusicKit.getInstance().changeToMediaAtIndex(MusicKit.getInstance().queue.previousPlayableItemIndex);
|
||||||
|
MusicKit.getInstance().skipToPreviousItem().then(r => console.log(`[MusicKitInterop.previous] Skipping to Previous ${r}`));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Before Width: | Height: | Size: 14 KiB |
39
src/renderer/assets/AppChromeBtn-Open.svg
Normal file
|
@ -0,0 +1,39 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
|
<svg width="100%" height="100%" viewBox="0 0 300 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;">
|
||||||
|
<g transform="matrix(0.30081,0,0,0.30081,-41.1651,-47.9227)">
|
||||||
|
<g transform="matrix(1.26848,0,0,1.26848,167,195.512)">
|
||||||
|
<circle cx="101" cy="102.5" r="79.5" style="fill:rgb(15,15,15);"/>
|
||||||
|
</g>
|
||||||
|
<g transform="matrix(0.260038,0,0,0.260038,167,195.511)">
|
||||||
|
<g id="Release.afdesign">
|
||||||
|
<g>
|
||||||
|
<path d="M501,21C765.367,21 980,235.633 980,500C980,764.367 765.367,979 501,979C236.633,979 22,764.367 22,500C22,235.633 236.633,21 501,21ZM501,169C683.684,169 832,317.316 832,500C832,682.684 683.684,831 501,831C318.316,831 170,682.684 170,500C170,317.316 318.316,169 501,169Z" style="fill:rgb(255,38,84);"/>
|
||||||
|
<path d="M501,224C653.053,224 776.5,347.447 776.5,499.5C776.5,651.553 653.053,775 501,775C348.947,775 225.5,651.553 225.5,499.5C225.5,347.447 348.947,224 501,224ZM589.165,492.207C595.163,495.672 595.163,504.328 589.165,507.793L439.502,594.256C433.502,597.722 426,593.392 426,586.463L426,413.537C426,406.608 433.502,402.278 439.502,405.744L589.165,492.207Z" style="fill:rgb(255,38,84);"/>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
<g transform="matrix(10.0544,0,0,10.0544,472.765,384.95)">
|
||||||
|
<g transform="matrix(16,0,0,16,0,0)">
|
||||||
|
<path d="M0.705,-0.473C0.685,-0.641 0.558,-0.737 0.389,-0.737C0.197,-0.737 0.05,-0.602 0.05,-0.364C0.05,-0.126 0.195,0.01 0.389,0.01C0.576,0.01 0.688,-0.114 0.705,-0.248L0.549,-0.249C0.535,-0.171 0.474,-0.126 0.392,-0.126C0.281,-0.126 0.206,-0.208 0.206,-0.364C0.206,-0.515 0.28,-0.601 0.393,-0.601C0.477,-0.601 0.538,-0.553 0.549,-0.473L0.705,-0.473Z" style="fill:rgb(235,235,235);fill-rule:nonzero;"/>
|
||||||
|
</g>
|
||||||
|
<g transform="matrix(16,0,0,16,12.0341,0)">
|
||||||
|
<path d="M0.06,-0L0.212,-0L0.212,-0.545L0.06,-0.545L0.06,-0ZM0.136,-0.616C0.181,-0.616 0.218,-0.65 0.218,-0.692C0.218,-0.734 0.181,-0.769 0.136,-0.769C0.092,-0.769 0.055,-0.734 0.055,-0.692C0.055,-0.65 0.092,-0.616 0.136,-0.616Z" style="fill:rgb(235,235,235);fill-rule:nonzero;"/>
|
||||||
|
</g>
|
||||||
|
<g transform="matrix(16,0,0,16,16.3864,0)">
|
||||||
|
<path d="M0.261,0.009C0.349,0.009 0.395,-0.042 0.416,-0.087L0.423,-0.087L0.423,-0L0.572,-0L0.572,-0.727L0.421,-0.727L0.421,-0.454L0.416,-0.454C0.396,-0.498 0.352,-0.553 0.261,-0.553C0.141,-0.553 0.04,-0.46 0.04,-0.272C0.04,-0.089 0.137,0.009 0.261,0.009ZM0.309,-0.112C0.235,-0.112 0.195,-0.178 0.195,-0.273C0.195,-0.367 0.234,-0.432 0.309,-0.432C0.383,-0.432 0.424,-0.37 0.424,-0.273C0.424,-0.175 0.382,-0.112 0.309,-0.112Z" style="fill:rgb(235,235,235);fill-rule:nonzero;"/>
|
||||||
|
</g>
|
||||||
|
<g transform="matrix(16,0,0,16,26.5511,0)">
|
||||||
|
<path d="M0.309,0.011C0.444,0.011 0.535,-0.055 0.556,-0.156L0.416,-0.165C0.401,-0.124 0.362,-0.102 0.311,-0.102C0.236,-0.102 0.188,-0.152 0.188,-0.234L0.188,-0.234L0.559,-0.234L0.559,-0.276C0.559,-0.461 0.447,-0.553 0.303,-0.553C0.142,-0.553 0.038,-0.439 0.038,-0.27C0.038,-0.097 0.141,0.011 0.309,0.011ZM0.188,-0.328C0.191,-0.39 0.238,-0.44 0.305,-0.44C0.371,-0.44 0.417,-0.393 0.417,-0.328L0.188,-0.328Z" style="fill:rgb(235,235,235);fill-rule:nonzero;"/>
|
||||||
|
</g>
|
||||||
|
<g transform="matrix(16,0,0,16,36.1136,0)">
|
||||||
|
<path d="M0.06,-0L0.212,-0L0.212,-0.309C0.212,-0.376 0.261,-0.422 0.327,-0.422C0.348,-0.422 0.377,-0.418 0.391,-0.414L0.391,-0.548C0.378,-0.551 0.359,-0.553 0.344,-0.553C0.283,-0.553 0.233,-0.518 0.213,-0.45L0.207,-0.45L0.207,-0.545L0.06,-0.545L0.06,-0Z" style="fill:rgb(235,235,235);fill-rule:nonzero;"/>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
<g transform="matrix(-0.0132579,-1.62362e-18,-1.62362e-18,0.0132579,288.703,42.7877)">
|
||||||
|
<g id="g3003">
|
||||||
|
<path id="path3005" d="M1611,832C1611,796.667 1598.67,766.667 1574,742L923,91C897.667,65.667 867.333,53 832,53C796,53 766,65.667 742,91L91,742C65.667,766 53,796 53,832C53,867.333 65.667,897.667 91,923L165,998C191,1022.67 221.333,1035 256,1035C291.333,1035 321.333,1022.67 346,998L832,512L1318,998C1342.67,1022.67 1372.67,1035 1408,1035C1442.67,1035 1473,1022.67 1499,998L1574,923C1598.67,897 1611,866.667 1611,832Z" style="fill:rgb(235,235,235);fill-rule:nonzero;"/>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 4.5 KiB |
39
src/renderer/assets/AppChromeBtn.svg
Normal file
|
@ -0,0 +1,39 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
|
<svg width="100%" height="100%" viewBox="0 0 300 100" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;">
|
||||||
|
<g transform="matrix(0.30081,0,0,0.30081,-41.1651,-47.9227)">
|
||||||
|
<g transform="matrix(1.26848,0,0,1.26848,167,195.512)">
|
||||||
|
<circle cx="101" cy="102.5" r="79.5" style="fill:rgb(15,15,15);"/>
|
||||||
|
</g>
|
||||||
|
<g transform="matrix(0.260038,0,0,0.260038,167,195.511)">
|
||||||
|
<g id="Release.afdesign">
|
||||||
|
<g>
|
||||||
|
<path d="M501,21C765.367,21 980,235.633 980,500C980,764.367 765.367,979 501,979C236.633,979 22,764.367 22,500C22,235.633 236.633,21 501,21ZM501,169C683.684,169 832,317.316 832,500C832,682.684 683.684,831 501,831C318.316,831 170,682.684 170,500C170,317.316 318.316,169 501,169Z" style="fill:rgb(255,38,84);"/>
|
||||||
|
<path d="M501,224C653.053,224 776.5,347.447 776.5,499.5C776.5,651.553 653.053,775 501,775C348.947,775 225.5,651.553 225.5,499.5C225.5,347.447 348.947,224 501,224ZM589.165,492.207C595.163,495.672 595.163,504.328 589.165,507.793L439.502,594.256C433.502,597.722 426,593.392 426,586.463L426,413.537C426,406.608 433.502,402.278 439.502,405.744L589.165,492.207Z" style="fill:rgb(255,38,84);"/>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
<g transform="matrix(10.0544,0,0,10.0544,472.765,384.95)">
|
||||||
|
<g transform="matrix(16,0,0,16,0,0)">
|
||||||
|
<path d="M0.705,-0.473C0.685,-0.641 0.558,-0.737 0.389,-0.737C0.197,-0.737 0.05,-0.602 0.05,-0.364C0.05,-0.126 0.195,0.01 0.389,0.01C0.576,0.01 0.688,-0.114 0.705,-0.248L0.549,-0.249C0.535,-0.171 0.474,-0.126 0.392,-0.126C0.281,-0.126 0.206,-0.208 0.206,-0.364C0.206,-0.515 0.28,-0.601 0.393,-0.601C0.477,-0.601 0.538,-0.553 0.549,-0.473L0.705,-0.473Z" style="fill:rgb(235,235,235);fill-rule:nonzero;"/>
|
||||||
|
</g>
|
||||||
|
<g transform="matrix(16,0,0,16,12.0341,0)">
|
||||||
|
<path d="M0.06,-0L0.212,-0L0.212,-0.545L0.06,-0.545L0.06,-0ZM0.136,-0.616C0.181,-0.616 0.218,-0.65 0.218,-0.692C0.218,-0.734 0.181,-0.769 0.136,-0.769C0.092,-0.769 0.055,-0.734 0.055,-0.692C0.055,-0.65 0.092,-0.616 0.136,-0.616Z" style="fill:rgb(235,235,235);fill-rule:nonzero;"/>
|
||||||
|
</g>
|
||||||
|
<g transform="matrix(16,0,0,16,16.3864,0)">
|
||||||
|
<path d="M0.261,0.009C0.349,0.009 0.395,-0.042 0.416,-0.087L0.423,-0.087L0.423,-0L0.572,-0L0.572,-0.727L0.421,-0.727L0.421,-0.454L0.416,-0.454C0.396,-0.498 0.352,-0.553 0.261,-0.553C0.141,-0.553 0.04,-0.46 0.04,-0.272C0.04,-0.089 0.137,0.009 0.261,0.009ZM0.309,-0.112C0.235,-0.112 0.195,-0.178 0.195,-0.273C0.195,-0.367 0.234,-0.432 0.309,-0.432C0.383,-0.432 0.424,-0.37 0.424,-0.273C0.424,-0.175 0.382,-0.112 0.309,-0.112Z" style="fill:rgb(235,235,235);fill-rule:nonzero;"/>
|
||||||
|
</g>
|
||||||
|
<g transform="matrix(16,0,0,16,26.5511,0)">
|
||||||
|
<path d="M0.309,0.011C0.444,0.011 0.535,-0.055 0.556,-0.156L0.416,-0.165C0.401,-0.124 0.362,-0.102 0.311,-0.102C0.236,-0.102 0.188,-0.152 0.188,-0.234L0.188,-0.234L0.559,-0.234L0.559,-0.276C0.559,-0.461 0.447,-0.553 0.303,-0.553C0.142,-0.553 0.038,-0.439 0.038,-0.27C0.038,-0.097 0.141,0.011 0.309,0.011ZM0.188,-0.328C0.191,-0.39 0.238,-0.44 0.305,-0.44C0.371,-0.44 0.417,-0.393 0.417,-0.328L0.188,-0.328Z" style="fill:rgb(235,235,235);fill-rule:nonzero;"/>
|
||||||
|
</g>
|
||||||
|
<g transform="matrix(16,0,0,16,36.1136,0)">
|
||||||
|
<path d="M0.06,-0L0.212,-0L0.212,-0.309C0.212,-0.376 0.261,-0.422 0.327,-0.422C0.348,-0.422 0.377,-0.418 0.391,-0.414L0.391,-0.548C0.378,-0.551 0.359,-0.553 0.344,-0.553C0.283,-0.553 0.233,-0.518 0.213,-0.45L0.207,-0.45L0.207,-0.545L0.06,-0.545L0.06,-0Z" style="fill:rgb(235,235,235);fill-rule:nonzero;"/>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
<g transform="matrix(0.0132579,0,0,-0.0132579,266.642,57.2123)">
|
||||||
|
<g id="g3003">
|
||||||
|
<path id="path3005" d="M1611,832C1611,796.667 1598.67,766.667 1574,742L923,91C897.667,65.667 867.333,53 832,53C796,53 766,65.667 742,91L91,742C65.667,766 53,796 53,832C53,867.333 65.667,897.667 91,923L165,998C191,1022.67 221.333,1035 256,1035C291.333,1035 321.333,1022.67 346,998L832,512L1318,998C1342.67,1022.67 1372.67,1035 1408,1035C1442.67,1035 1473,1022.67 1499,998L1574,923C1598.67,897 1611,866.667 1611,832Z" style="fill:rgb(235,235,235);fill-rule:nonzero;"/>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 4.5 KiB |
BIN
src/renderer/assets/audiolabs/classic.png
Normal file
After Width: | Height: | Size: 139 KiB |
BIN
src/renderer/assets/audiolabs/expansive.png
Normal file
After Width: | Height: | Size: 186 KiB |
BIN
src/renderer/assets/audiolabs/focused.png
Normal file
After Width: | Height: | Size: 138 KiB |
BIN
src/renderer/assets/audiolabs/minimal.png
Normal file
After Width: | Height: | Size: 184 KiB |
Before Width: | Height: | Size: 35 KiB After Width: | Height: | Size: 36 KiB |
BIN
src/renderer/assets/banner2.png
Normal file
After Width: | Height: | Size: 35 KiB |
14
src/renderer/assets/star.svg
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="300" height="300">
|
||||||
|
<title>dark blue star</title>
|
||||||
|
|
||||||
|
<g display="inline">
|
||||||
|
<title>Layer 1</title>
|
||||||
|
<g id="layer1">
|
||||||
|
<path fill="#edf2f7" stroke="#ebeff4" stroke-width="0" stroke-linejoin="round" stroke-miterlimit="4" id="path4968" d="m239.381653,284.769073l-88.929474,-65.136902l-88.903381,65.236145l34.561218,-104.601654l-89.610046,-64.294891l110.283875,0.496246l33.537506,-104.96814l33.60675,104.913116l110.317139,-0.588898l-89.513672,64.339386l34.650085,104.605591z"/>
|
||||||
|
<path fill="#edf2f7" stroke="#ebeff4" stroke-width="0" stroke-linejoin="round" stroke-miterlimit="4" id="path4960" d="m150.317963,11.500015l-33.534088,104.967941l-110.283875,-0.489197l89.606323,64.291809l-34.555267,104.604431l88.8927,-65.241547l0.671539,0.489166l0,-206.135345l-0.797333,-2.487259l0,0z"/>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
<title>spear</title>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 883 B |
49
src/renderer/assets/twitter.svg
Normal file
|
@ -0,0 +1,49 @@
|
||||||
|
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||||
|
<!-- Generator: Adobe Illustrator 18.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
|
<svg version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||||
|
viewBox="0 0 112.197 112.197" style="enable-background:new 0 0 112.197 112.197;" xml:space="preserve">
|
||||||
|
<g>
|
||||||
|
<circle style="fill:#55ACEE;" cx="56.099" cy="56.098" r="56.098"/>
|
||||||
|
<g>
|
||||||
|
<path style="fill:#F1F2F2;" d="M90.461,40.316c-2.404,1.066-4.99,1.787-7.702,2.109c2.769-1.659,4.894-4.284,5.897-7.417
|
||||||
|
c-2.591,1.537-5.462,2.652-8.515,3.253c-2.446-2.605-5.931-4.233-9.79-4.233c-7.404,0-13.409,6.005-13.409,13.409
|
||||||
|
c0,1.051,0.119,2.074,0.349,3.056c-11.144-0.559-21.025-5.897-27.639-14.012c-1.154,1.98-1.816,4.285-1.816,6.742
|
||||||
|
c0,4.651,2.369,8.757,5.965,11.161c-2.197-0.069-4.266-0.672-6.073-1.679c-0.001,0.057-0.001,0.114-0.001,0.17
|
||||||
|
c0,6.497,4.624,11.916,10.757,13.147c-1.124,0.308-2.311,0.471-3.532,0.471c-0.866,0-1.705-0.083-2.523-0.239
|
||||||
|
c1.706,5.326,6.657,9.203,12.526,9.312c-4.59,3.597-10.371,5.74-16.655,5.74c-1.08,0-2.15-0.063-3.197-0.188
|
||||||
|
c5.931,3.806,12.981,6.025,20.553,6.025c24.664,0,38.152-20.432,38.152-38.153c0-0.581-0.013-1.16-0.039-1.734
|
||||||
|
C86.391,45.366,88.664,43.005,90.461,40.316L90.461,40.316z"/>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 1.5 KiB |
|
@ -28,23 +28,7 @@ const CiderAudio = {
|
||||||
},
|
},
|
||||||
off: function () {
|
off: function () {
|
||||||
try {
|
try {
|
||||||
try{
|
CiderAudio.hierarchical_unloading();
|
||||||
CiderAudio.audioNodes.gainNode.disconnect(); } catch(e){}
|
|
||||||
try{ CiderAudio.audioNodes.spatialNode.disconnect();} catch(e){}
|
|
||||||
try{
|
|
||||||
for (var i of CiderAudio.audioNodes.analogWarmth){
|
|
||||||
i.disconnect();
|
|
||||||
}
|
|
||||||
for (var i of CiderAudio.audioNodes.llpw){
|
|
||||||
i.disconnect();
|
|
||||||
}
|
|
||||||
for (var i of CiderAudio.audioNodes.vibrantbassNode){
|
|
||||||
i.disconnect();
|
|
||||||
}
|
|
||||||
for (var i of CiderAudio.audioNodes.audioBands){
|
|
||||||
i.disconnect();
|
|
||||||
}
|
|
||||||
} catch(e){}
|
|
||||||
try {
|
try {
|
||||||
CiderAudio.audioNodes = {
|
CiderAudio.audioNodes = {
|
||||||
gainNode: null,
|
gainNode: null,
|
||||||
|
@ -56,7 +40,8 @@ const CiderAudio = {
|
||||||
analogWarmth: null
|
analogWarmth: null
|
||||||
}
|
}
|
||||||
} catch (e) { }
|
} catch (e) { }
|
||||||
CiderAudio.source.connect(CiderAudio.context.destination);} catch(e){}
|
CiderAudio.source.connect(CiderAudio.context.destination);
|
||||||
|
} catch (e) { }
|
||||||
},
|
},
|
||||||
connectContext: function (mediaElem) {
|
connectContext: function (mediaElem) {
|
||||||
if (!CiderAudio.context) {
|
if (!CiderAudio.context) {
|
||||||
|
@ -73,7 +58,6 @@ const CiderAudio = {
|
||||||
if (app.cfg.audio.spatial) {
|
if (app.cfg.audio.spatial) {
|
||||||
CiderAudio.spatialOn()
|
CiderAudio.spatialOn()
|
||||||
}
|
}
|
||||||
CiderAudio.equalizer();
|
|
||||||
CiderAudio.hierarchical_loading();
|
CiderAudio.hierarchical_loading();
|
||||||
},
|
},
|
||||||
normalizerOn: function () {
|
normalizerOn: function () {
|
||||||
|
@ -81,35 +65,54 @@ const CiderAudio = {
|
||||||
normalizerOff: function () {
|
normalizerOff: function () {
|
||||||
CiderAudio.audioNodes.gainNode.gain.setTargetAtTime(1, CiderAudio.context.currentTime + 1, 0.5);
|
CiderAudio.audioNodes.gainNode.gain.setTargetAtTime(1, CiderAudio.context.currentTime + 1, 0.5);
|
||||||
},
|
},
|
||||||
|
spatialProfiles: [
|
||||||
|
{
|
||||||
|
"id": "420signature",
|
||||||
|
"file": './audio/impulses/CiderSpatial_v69.420_Audiophile.wav',
|
||||||
|
"name": "Signature (Classic)",
|
||||||
|
"description": "",
|
||||||
|
"img": "./assets/audiolabs/classic.png",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "420signature-B",
|
||||||
|
"file": './audio/impulses/CiderSpatial_v69.420_Audiophile_B.wav',
|
||||||
|
"name": "Signature (Focused)",
|
||||||
|
"description": "",
|
||||||
|
"img": "./assets/audiolabs/focused.png",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "standard",
|
||||||
|
"file": './audio/impulses/CiderSpatial_v69_Standard.wav',
|
||||||
|
"name": "Minimal",
|
||||||
|
"description": "",
|
||||||
|
"img": "./assets/audiolabs/minimal.png",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "audiophile",
|
||||||
|
"file": './audio/impulses/CiderSpatial_v69_Audiophile.wav',
|
||||||
|
"name": "Expansive",
|
||||||
|
"description": "",
|
||||||
|
"img": "./assets/audiolabs/expansive.png",
|
||||||
|
}
|
||||||
|
],
|
||||||
spatialOn: function () {
|
spatialOn: function () {
|
||||||
|
CiderAudio.audioNodes.spatialNode = null;
|
||||||
if (app.cfg.audio.maikiwiAudio.spatial === true) {
|
if (app.cfg.audio.maikiwiAudio.spatial === true) {
|
||||||
CiderAudio.audioNodes.spatialNode = CiderAudio.context.createConvolver();
|
CiderAudio.audioNodes.spatialNode = CiderAudio.context.createConvolver();
|
||||||
CiderAudio.audioNodes.spatialNode.normalize = true;
|
CiderAudio.audioNodes.spatialNode.normalize = false;
|
||||||
switch (app.cfg.audio.maikiwiAudio.spatialType) {
|
|
||||||
case 0:
|
|
||||||
fetch('./audio/impulses/CiderSpatial_Conv.wav').then(async (impulseData) => {
|
|
||||||
let bufferedImpulse = await impulseData.arrayBuffer();
|
|
||||||
CiderAudio.audioNodes.spatialNode.buffer = await CiderAudio.context.decodeAudioData(bufferedImpulse);
|
|
||||||
|
|
||||||
|
let spatialProfile = CiderAudio.spatialProfiles.find(function (profile) {
|
||||||
|
return profile.id === app.cfg.audio.maikiwiAudio.spatialProfile;
|
||||||
});
|
});
|
||||||
break;
|
|
||||||
case 1:
|
|
||||||
fetch('./audio/impulses/CiderSpatial_Conv_v2.wav').then(async (impulseData) => {
|
|
||||||
let bufferedImpulse = await impulseData.arrayBuffer();
|
|
||||||
CiderAudio.audioNodes.spatialNode.buffer = await CiderAudio.context.decodeAudioData(bufferedImpulse);
|
|
||||||
|
|
||||||
});
|
if (spatialProfile === undefined) {
|
||||||
break;
|
spatialProfile = CiderAudio.spatialProfiles[0];
|
||||||
default:
|
|
||||||
fetch('./audio/impulses/CiderSpatial_Conv.wav').then(async (impulseData) => {
|
|
||||||
let bufferedImpulse = await impulseData.arrayBuffer();
|
|
||||||
CiderAudio.audioNodes.spatialNode.buffer = await CiderAudio.context.decodeAudioData(bufferedImpulse);
|
|
||||||
|
|
||||||
});
|
|
||||||
app.cfg.audio.maikiwiAudio.spatialType = 0;
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
|
fetch(spatialProfile.file).then(async (impulseData) => {
|
||||||
|
let bufferedImpulse = await impulseData.arrayBuffer();
|
||||||
|
CiderAudio.audioNodes.spatialNode.buffer = await CiderAudio.context.decodeAudioData(bufferedImpulse);
|
||||||
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
CiderAudio.audioNodes.spatialNode = new ResonanceAudio(CiderAudio.context);
|
CiderAudio.audioNodes.spatialNode = new ResonanceAudio(CiderAudio.context);
|
||||||
|
@ -129,7 +132,7 @@ const CiderAudio = {
|
||||||
};
|
};
|
||||||
CiderAudio.audioNodes.spatialNode.setRoomProperties(roomDimensions, roomMaterials);
|
CiderAudio.audioNodes.spatialNode.setRoomProperties(roomDimensions, roomMaterials);
|
||||||
CiderAudio.audioNodes.spatialInput = CiderAudio.audioNodes.spatialNode.createSource();
|
CiderAudio.audioNodes.spatialInput = CiderAudio.audioNodes.spatialNode.createSource();
|
||||||
CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialInput.input);}
|
}
|
||||||
},
|
},
|
||||||
spatialOff: function () {
|
spatialOff: function () {
|
||||||
CiderAudio.hierarchical_loading();
|
CiderAudio.hierarchical_loading();
|
||||||
|
@ -265,7 +268,9 @@ const CiderAudio = {
|
||||||
case "data":
|
case "data":
|
||||||
const audioData = data.audioBuffer;
|
const audioData = data.audioBuffer;
|
||||||
const bufferSize = data.bufferSize;
|
const bufferSize = data.bufferSize;
|
||||||
|
if ((audioData[0]).some(item => item !== 0) || (audioData[0]).some(item => item !== 0)) {
|
||||||
ipcRenderer.send('writeWAV', audioData[0], audioData[1], bufferSize);
|
ipcRenderer.send('writeWAV', audioData[0], audioData[1], bufferSize);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case "stop":
|
case "stop":
|
||||||
break;
|
break;
|
||||||
|
@ -278,11 +283,13 @@ const CiderAudio = {
|
||||||
clearInterval(searchInt);
|
clearInterval(searchInt);
|
||||||
}
|
}
|
||||||
}, 1000);
|
}, 1000);
|
||||||
} else {if (CiderAudio.audioNodes.recorderNode != null && CiderAudio.context != null) {
|
} else {
|
||||||
|
if (CiderAudio.audioNodes.recorderNode != null && CiderAudio.context != null) {
|
||||||
CiderAudio.audioNodes.recorderNode.parameters.get('isRecording').setValueAtTime(1, CiderAudio.context.currentTime);
|
CiderAudio.audioNodes.recorderNode.parameters.get('isRecording').setValueAtTime(1, CiderAudio.context.currentTime);
|
||||||
// CiderAudio.audioNodes.recorderNode = null;
|
// CiderAudio.audioNodes.recorderNode = null;
|
||||||
// CiderAudio.ccON = false;
|
// CiderAudio.ccON = false;
|
||||||
}}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
},
|
},
|
||||||
stopAudio() {
|
stopAudio() {
|
||||||
|
@ -299,14 +306,39 @@ const CiderAudio = {
|
||||||
let WARMTH_Q = [0.442, 3.536, 2.102, 8.409, 0.625, 16.82, 5, 2.973, 3.536, 2.5, 2.5, 11.89, 0.625, 1.487, 1.153, 5, 5.453, 5, 2.973, 3.386, 3.386, 14.14, 8.409];
|
let WARMTH_Q = [0.442, 3.536, 2.102, 8.409, 0.625, 16.82, 5, 2.973, 3.536, 2.5, 2.5, 11.89, 0.625, 1.487, 1.153, 5, 5.453, 5, 2.973, 3.386, 3.386, 14.14, 8.409];
|
||||||
CiderAudio.audioNodes.analogWarmth = []
|
CiderAudio.audioNodes.analogWarmth = []
|
||||||
|
|
||||||
|
switch (app.cfg.audio.maikiwiAudio.analogWarmth_value) {
|
||||||
|
case "SMOOTH":
|
||||||
for (let i = 0; i < WARMTH_FREQUENCIES.length; i++) {
|
for (let i = 0; i < WARMTH_FREQUENCIES.length; i++) {
|
||||||
CiderAudio.audioNodes.analogWarmth[i] = CiderAudio.context.createBiquadFilter();
|
CiderAudio.audioNodes.analogWarmth[i] = CiderAudio.context.createBiquadFilter();
|
||||||
CiderAudio.audioNodes.analogWarmth[i].type = 'peaking'; // 'peaking';
|
CiderAudio.audioNodes.analogWarmth[i].type = 'peaking'; // 'peaking';
|
||||||
CiderAudio.audioNodes.analogWarmth[i].frequency.value = WARMTH_FREQUENCIES[i] ;
|
CiderAudio.audioNodes.analogWarmth[i].frequency.value = WARMTH_FREQUENCIES[i] ;
|
||||||
CiderAudio.audioNodes.analogWarmth[i].Q.value = WARMTH_Q[i];
|
CiderAudio.audioNodes.analogWarmth[i].Q.value = WARMTH_Q[i];
|
||||||
CiderAudio.audioNodes.analogWarmth[i].gain.value = WARMTH_GAIN[i] * app.cfg.audio.maikiwiAudio.analogWarmth_value;
|
CiderAudio.audioNodes.analogWarmth[i].gain.value = WARMTH_GAIN[i] * 1.25;
|
||||||
}
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case "WARM":
|
||||||
|
for (let i = 0; i < WARMTH_FREQUENCIES.length; i++) {
|
||||||
|
CiderAudio.audioNodes.analogWarmth[i] = CiderAudio.context.createBiquadFilter();
|
||||||
|
CiderAudio.audioNodes.analogWarmth[i].type = 'peaking'; // 'peaking';
|
||||||
|
CiderAudio.audioNodes.analogWarmth[i].frequency.value = WARMTH_FREQUENCIES[i] ;
|
||||||
|
CiderAudio.audioNodes.analogWarmth[i].Q.value = WARMTH_Q[i];
|
||||||
|
CiderAudio.audioNodes.analogWarmth[i].gain.value = WARMTH_GAIN[i] * 1.75;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
for (let i = 0; i < WARMTH_FREQUENCIES.length; i++) {
|
||||||
|
CiderAudio.audioNodes.analogWarmth[i] = CiderAudio.context.createBiquadFilter();
|
||||||
|
CiderAudio.audioNodes.analogWarmth[i].type = 'peaking'; // 'peaking';
|
||||||
|
CiderAudio.audioNodes.analogWarmth[i].frequency.value = WARMTH_FREQUENCIES[i] ;
|
||||||
|
CiderAudio.audioNodes.analogWarmth[i].Q.value = WARMTH_Q[i];
|
||||||
|
CiderAudio.audioNodes.analogWarmth[i].gain.value = WARMTH_GAIN[i] * 1.25;
|
||||||
|
}
|
||||||
|
app.cfg.audio.maikiwiAudio.analogWarmth_value = "SMOOTH";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
for (let i = 1; i < WARMTH_FREQUENCIES.length; i++) {
|
for (let i = 1; i < WARMTH_FREQUENCIES.length; i++) {
|
||||||
CiderAudio.audioNodes.analogWarmth[i - 1].connect(CiderAudio.audioNodes.analogWarmth[i]);
|
CiderAudio.audioNodes.analogWarmth[i - 1].connect(CiderAudio.audioNodes.analogWarmth[i]);
|
||||||
|
@ -315,15 +347,21 @@ const CiderAudio = {
|
||||||
switch (hierarchy) {
|
switch (hierarchy) {
|
||||||
case 3:
|
case 3:
|
||||||
try {
|
try {
|
||||||
CiderAudio.audioNodes.analogWarmth[WARMTH_FREQUENCIES.length-1].connect(CiderAudio.audioNodes.llpw[0]);} catch(e){}
|
CiderAudio.audioNodes.analogWarmth[WARMTH_FREQUENCIES.length - 1].connect(CiderAudio.audioNodes.llpw[0]);
|
||||||
|
} catch (e) { }
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
try {
|
try {
|
||||||
CiderAudio.audioNodes.analogWarmth[WARMTH_FREQUENCIES.length-1].connect(CiderAudio.audioNodes.vibrantbassNode[0]);} catch(e){}
|
CiderAudio.audioNodes.analogWarmth[WARMTH_FREQUENCIES.length - 1].connect(CiderAudio.audioNodes.vibrantbassNode[0]);
|
||||||
|
} catch (e) { }
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
try {
|
try {
|
||||||
CiderAudio.audioNodes.analogWarmth[WARMTH_FREQUENCIES.length-1].connect(CiderAudio.audioNodes.audioBands[0]);} catch(e){}
|
CiderAudio.audioNodes.analogWarmth[WARMTH_FREQUENCIES.length - 1].connect(CiderAudio.audioNodes.audioBands[0]);
|
||||||
|
} catch (e) { }
|
||||||
|
break;
|
||||||
|
case 0:
|
||||||
|
try { CiderAudio.audioNodes.analogWarmth[WARMTH_FREQUENCIES.length - 1].connect(CiderAudio.context.destination); } catch (e) { }
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -340,7 +378,56 @@ const CiderAudio = {
|
||||||
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];
|
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.llpw = []
|
CiderAudio.audioNodes.llpw = []
|
||||||
|
|
||||||
if (app.cfg.audio.maikiwiAudio.ciderPPE_value === 0.55) {
|
switch (app.cfg.audio.maikiwiAudio.ciderPPE_value) {
|
||||||
|
case "MAIKIWI":
|
||||||
|
CiderAudio.audioNodes.llpw[0] = CiderAudio.context.createConvolver();
|
||||||
|
CiderAudio.audioNodes.llpw[0].normalize = false;
|
||||||
|
fetch('./audio/impulses/CAP_Maikiwi.wav').then(async (impulseData) => {
|
||||||
|
let bufferedImpulse = await impulseData.arrayBuffer();
|
||||||
|
CiderAudio.audioNodes.llpw[0].buffer = await CiderAudio.context.decodeAudioData(bufferedImpulse);
|
||||||
|
});
|
||||||
|
|
||||||
|
switch (hierarchy) {
|
||||||
|
case 2:
|
||||||
|
try { CiderAudio.audioNodes.llpw[0].connect(CiderAudio.audioNodes.vibrantbassNode[0]); } catch (e) { }
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
try { CiderAudio.audioNodes.llpw[0].connect(CiderAudio.audioNodes.audioBands[0]); } catch (e) { }
|
||||||
|
break;
|
||||||
|
case 0:
|
||||||
|
try { CiderAudio.audioNodes.llpw[0].connect(CiderAudio.context.destination); } catch (e) { }
|
||||||
|
break;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
console.debug("[Cider][Audio] CAP - MaikiwiSignature Mode");
|
||||||
|
break;
|
||||||
|
|
||||||
|
case "NATURAL":
|
||||||
|
CiderAudio.audioNodes.llpw[0] = CiderAudio.context.createConvolver();
|
||||||
|
CiderAudio.audioNodes.llpw[0].normalize = false;
|
||||||
|
fetch('./audio/impulses/CAP_Natural.wav').then(async (impulseData) => {
|
||||||
|
let bufferedImpulse = await impulseData.arrayBuffer();
|
||||||
|
CiderAudio.audioNodes.llpw[0].buffer = await CiderAudio.context.decodeAudioData(bufferedImpulse);
|
||||||
|
});
|
||||||
|
|
||||||
|
switch (hierarchy) {
|
||||||
|
case 2:
|
||||||
|
try { CiderAudio.audioNodes.llpw[0].connect(CiderAudio.audioNodes.vibrantbassNode[0]); } catch (e) { }
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
try { CiderAudio.audioNodes.llpw[0].connect(CiderAudio.audioNodes.audioBands[0]); } catch (e) { }
|
||||||
|
break;
|
||||||
|
case 0:
|
||||||
|
try { CiderAudio.audioNodes.llpw[0].connect(CiderAudio.context.destination); } catch (e) { }
|
||||||
|
break;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
console.debug("[Cider][Audio] CAP - Natural Mode");
|
||||||
|
break;
|
||||||
|
|
||||||
|
case "AGGRESSIVE": // Aggressive
|
||||||
for (let i = 0; i < c_LLPW_FREQUENCIES.length; i++) {
|
for (let i = 0; i < c_LLPW_FREQUENCIES.length; i++) {
|
||||||
CiderAudio.audioNodes.llpw[i] = CiderAudio.context.createBiquadFilter();
|
CiderAudio.audioNodes.llpw[i] = CiderAudio.context.createBiquadFilter();
|
||||||
CiderAudio.audioNodes.llpw[i].type = 'peaking'; // 'peaking';
|
CiderAudio.audioNodes.llpw[i].type = 'peaking'; // 'peaking';
|
||||||
|
@ -348,56 +435,54 @@ const CiderAudio = {
|
||||||
CiderAudio.audioNodes.llpw[i].Q.value = c_LLPW_Q[i];
|
CiderAudio.audioNodes.llpw[i].Q.value = c_LLPW_Q[i];
|
||||||
CiderAudio.audioNodes.llpw[i].gain.value = c_LLPW_GAIN[i];
|
CiderAudio.audioNodes.llpw[i].gain.value = c_LLPW_GAIN[i];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
for (let i = 1; i < c_LLPW_FREQUENCIES.length; i++) {
|
for (let i = 1; i < c_LLPW_FREQUENCIES.length; i++) {
|
||||||
CiderAudio.audioNodes.llpw[i - 1].connect(CiderAudio.audioNodes.llpw[i]);
|
CiderAudio.audioNodes.llpw[i - 1].connect(CiderAudio.audioNodes.llpw[i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (hierarchy) {
|
switch (hierarchy) {
|
||||||
case 2:
|
case 2:
|
||||||
try{
|
try { CiderAudio.audioNodes.llpw[c_LLPW_FREQUENCIES.length - 1].connect(CiderAudio.audioNodes.vibrantbassNode[0]); } catch (e) { }
|
||||||
CiderAudio.audioNodes.llpw[c_LLPW_FREQUENCIES.length-1].connect(CiderAudio.audioNodes.vibrantbassNode[0]);} catch(e){}
|
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
try { CiderAudio.audioNodes.llpw[c_LLPW_FREQUENCIES.length - 1].connect(CiderAudio.audioNodes.audioBands[0]); } catch (e) { }
|
try { CiderAudio.audioNodes.llpw[c_LLPW_FREQUENCIES.length - 1].connect(CiderAudio.audioNodes.audioBands[0]); } catch (e) { }
|
||||||
break;
|
break;
|
||||||
|
case 0:
|
||||||
|
try { CiderAudio.audioNodes.llpw[c_LLPW_FREQUENCIES.length - 1].connect(CiderAudio.context.destination); } catch (e) { }
|
||||||
|
break;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
console.debug("[Cider][Audio] CAP - Clarity Mode");
|
console.debug("[Cider][Audio] CAP - Clarity Mode");
|
||||||
}
|
break;
|
||||||
|
|
||||||
else if (app.cfg.audio.maikiwiAudio.ciderPPE_value === 0.5) {
|
default:
|
||||||
for (let i = 0; i < LLPW_FREQUENCIES.length; i++) {
|
CiderAudio.audioNodes.llpw[0] = CiderAudio.context.createConvolver();
|
||||||
CiderAudio.audioNodes.llpw[i] = CiderAudio.context.createBiquadFilter();
|
CiderAudio.audioNodes.llpw[0].normalize = false;
|
||||||
CiderAudio.audioNodes.llpw[i].type = 'peaking'; // 'peaking';
|
fetch('./audio/impulses/CAP_Maikiwi.wav').then(async (impulseData) => {
|
||||||
CiderAudio.audioNodes.llpw[i].frequency.value = LLPW_FREQUENCIES[i];
|
let bufferedImpulse = await impulseData.arrayBuffer();
|
||||||
CiderAudio.audioNodes.llpw[i].Q.value = LLPW_Q[i];
|
CiderAudio.audioNodes.llpw[0].buffer = await CiderAudio.context.decodeAudioData(bufferedImpulse);
|
||||||
CiderAudio.audioNodes.llpw[i].gain.value = LLPW_GAIN[i];
|
});
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
for (let i = 1; i < LLPW_FREQUENCIES.length; i ++) {
|
|
||||||
CiderAudio.audioNodes.llpw[i-1].connect(CiderAudio.audioNodes.llpw[i]);
|
|
||||||
}
|
|
||||||
|
|
||||||
switch (hierarchy) {
|
switch (hierarchy) {
|
||||||
case 2:
|
case 2:
|
||||||
try{
|
try { CiderAudio.audioNodes.llpw[0].connect(CiderAudio.audioNodes.vibrantbassNode[0]); } catch (e) { }
|
||||||
CiderAudio.audioNodes.llpw[LLPW_FREQUENCIES.length-1].connect(CiderAudio.audioNodes.vibrantbassNode[0]);} catch(e){}
|
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
try{CiderAudio.audioNodes.llpw[LLPW_FREQUENCIES.length-1].connect(CiderAudio.audioNodes.audioBands[0]);} catch(e){}
|
try { CiderAudio.audioNodes.llpw[0].connect(CiderAudio.audioNodes.audioBands[0]); } catch (e) { }
|
||||||
|
break;
|
||||||
|
case 0:
|
||||||
|
try { CiderAudio.audioNodes.llpw[0].connect(CiderAudio.context.destination); } catch (e) { }
|
||||||
break;
|
break;
|
||||||
|
|
||||||
}
|
}
|
||||||
console.debug("[Cider][Audio] CAP - Classic Mode");
|
app.cfg.audio.maikiwiAudio.ciderPPE_value = "MAIKIWI";
|
||||||
|
console.debug("[Cider][Audio] CAP - MaikiwiSignature Mode (Defaulted from broki config)");
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
},
|
},
|
||||||
vibrantbass_h2_1: function (status){
|
vibrantbass_h2_1: function (status, hierarchy) {
|
||||||
if (status === true) {
|
if (status === true) {
|
||||||
let VIBRANTBASSBANDS = app.cfg.audio.maikiwiAudio.vibrantBass.frequencies;
|
let VIBRANTBASSBANDS = app.cfg.audio.maikiwiAudio.vibrantBass.frequencies;
|
||||||
let VIBRANTBASSGAIN = app.cfg.audio.maikiwiAudio.vibrantBass.gain;
|
let VIBRANTBASSGAIN = app.cfg.audio.maikiwiAudio.vibrantBass.gain;
|
||||||
|
@ -409,17 +494,25 @@ const CiderAudio = {
|
||||||
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.maikiwiAudio.vibrantBass.multiplier;
|
CiderAudio.audioNodes.vibrantbassNode[i].gain.value = VIBRANTBASSGAIN[i] * (app.cfg.audio.equalizer.vibrantBass / 10);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (let i = 1; i < VIBRANTBASSBANDS.length; i++) {
|
for (let 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]);
|
switch (hierarchy) {
|
||||||
}
|
case 0:
|
||||||
|
try {
|
||||||
|
CiderAudio.audioNodes.vibrantbassNode[0].connect(CiderAudio.context.destination);
|
||||||
|
} catch (e) { }
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
try { CiderAudio.audioNodes.vibrantbassNode[0].connect(CiderAudio.audioNodes.audioBands[0]); } catch (e) { }
|
||||||
|
break;
|
||||||
|
|
||||||
CiderAudio.audioNodes.vibrantbassNode[0].connect(CiderAudio.audioNodes.audioBands[0])
|
}
|
||||||
|
}
|
||||||
},
|
},
|
||||||
hierarchical_unloading: function () {
|
hierarchical_unloading: function () {
|
||||||
try { CiderAudio.audioNodes.spatialNode.output.disconnect(); } catch (e) { }
|
try { CiderAudio.audioNodes.spatialNode.output.disconnect(); } catch (e) { }
|
||||||
|
@ -428,6 +521,7 @@ const CiderAudio = {
|
||||||
try { for (var i of CiderAudio.audioNodes.analogWarmth) { i.disconnect(); } CiderAudio.audioNodes.analogWarmth = null } catch (e) { }
|
try { for (var i of CiderAudio.audioNodes.analogWarmth) { i.disconnect(); } CiderAudio.audioNodes.analogWarmth = null } catch (e) { }
|
||||||
try { for (var i of CiderAudio.audioNodes.llpw) { i.disconnect(); } CiderAudio.audioNodes.llpw = null } catch (e) { }
|
try { for (var i of CiderAudio.audioNodes.llpw) { i.disconnect(); } CiderAudio.audioNodes.llpw = null } catch (e) { }
|
||||||
try { for (var i of CiderAudio.audioNodes.vibrantbassNode) { i.disconnect(); } CiderAudio.audioNodes.vibrantbassNode = null } catch (e) { }
|
try { for (var i of CiderAudio.audioNodes.vibrantbassNode) { i.disconnect(); } CiderAudio.audioNodes.vibrantbassNode = null } catch (e) { }
|
||||||
|
try { for (var i of CiderAudio.audioNodes.audioBands) { i.disconnect(); } CiderAudio.audioNodes.audioBands = null } catch (e) { }
|
||||||
|
|
||||||
console.debug("[Cider][Audio] Finished hierarchical unloading");
|
console.debug("[Cider][Audio] Finished hierarchical unloading");
|
||||||
|
|
||||||
|
@ -435,8 +529,197 @@ const CiderAudio = {
|
||||||
hierarchical_loading: function () {
|
hierarchical_loading: function () {
|
||||||
CiderAudio.hierarchical_unloading();
|
CiderAudio.hierarchical_unloading();
|
||||||
|
|
||||||
if (app.cfg.audio.maikiwiAudio.vibrantBass.multiplier !== 0) { // Vibrant Bass
|
if (Math.max(...app.cfg.audio.equalizer.gain) != 0) {
|
||||||
CiderAudio.vibrantbass_h2_1(true)
|
CiderAudio.equalizer(true, 0);
|
||||||
|
|
||||||
|
if (app.cfg.audio.equalizer.vibrantBass !== '0') {
|
||||||
|
CiderAudio.vibrantbass_h2_1(true, 1);
|
||||||
|
|
||||||
|
if (app.cfg.audio.maikiwiAudio.ciderPPE === true) { // Vibrant Bass, CAP
|
||||||
|
CiderAudio.llpw_h2_2(true, 2);
|
||||||
|
|
||||||
|
if (app.cfg.audio.maikiwiAudio.analogWarmth === true) { // Vibrant Bass, CAP, Analog Warmth
|
||||||
|
CiderAudio.analogWarmth_h2_3(true, 3);
|
||||||
|
|
||||||
|
if (app.cfg.audio.spatial === true) {
|
||||||
|
if (app.cfg.audio.maikiwiAudio.spatial === true) { // Vibrant Bass, CAP, Analog Warmth, Maikiwi Spatial
|
||||||
|
app.cfg.audio.normalization = true;
|
||||||
|
CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialNode);
|
||||||
|
CiderAudio.audioNodes.spatialNode.connect(CiderAudio.audioNodes.analogWarmth[0]);
|
||||||
|
console.debug('[Cider][Audio] Equalizer, Vibrant Bass, CAP, Analog Warmth, Maikiwi Spatial')
|
||||||
|
}
|
||||||
|
else { // Vibrant Bass, CAP, Analog Warmth, Spatial
|
||||||
|
app.cfg.audio.normalization = true;
|
||||||
|
CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialInput.input);
|
||||||
|
CiderAudio.audioNodes.spatialNode.output.connect(CiderAudio.audioNodes.analogWarmth[0]);
|
||||||
|
console.debug('[Cider][Audio] Equalizer, Vibrant Bass, CAP, Analog Warmth, Spatial')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
app.cfg.audio.normalization = true;
|
||||||
|
CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.analogWarmth[0]);
|
||||||
|
console.debug('[Cider][Audio] Equalizer, Vibrant Bass, CAP, Analog Warmth')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
if (app.cfg.audio.spatial === true) {
|
||||||
|
if (app.cfg.audio.maikiwiAudio.spatial === true) {
|
||||||
|
CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialNode);
|
||||||
|
CiderAudio.audioNodes.spatialNode.connect(CiderAudio.audioNodes.llpw[0]);
|
||||||
|
app.cfg.audio.normalization = true
|
||||||
|
console.debug('[Cider][Audio] Equalizer, Vibrant Bass, CAP, Maikiwi Spatial')
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialInput.input);
|
||||||
|
CiderAudio.audioNodes.spatialNode.output.connect(CiderAudio.audioNodes.llpw[0]);
|
||||||
|
console.debug('[Cider][Audio] Equalizer, Vibrant Bass, CAP, Spatial')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
app.cfg.audio.normalization = true;
|
||||||
|
CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.llpw[0]);
|
||||||
|
console.debug('[Cider][Audio] Equalizer, Vibrant Bass, CAP')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
if (app.cfg.audio.maikiwiAudio.analogWarmth === true) {
|
||||||
|
CiderAudio.analogWarmth_h2_3(true, 2);
|
||||||
|
app.cfg.audio.normalization = true;
|
||||||
|
|
||||||
|
if (app.cfg.audio.spatial === true) {
|
||||||
|
if (app.cfg.audio.maikiwiAudio.spatial === true) {
|
||||||
|
CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialNode);
|
||||||
|
CiderAudio.audioNodes.spatialNode.connect(CiderAudio.audioNodes.analogWarmth[0]);
|
||||||
|
console.debug('[Cider][Audio] Equalizer, Vibrant Bass, Analog Warmth, Maikiwi Spatial')
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialInput.input);
|
||||||
|
CiderAudio.audioNodes.spatialNode.output.connect(CiderAudio.audioNodes.analogWarmth[0]);
|
||||||
|
console.debug('[Cider][Audio] Equalizer, Vibrant Bass, Analog Warmth, Spatial')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
app.cfg.audio.normalization = true;
|
||||||
|
CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.analogWarmth[0]);
|
||||||
|
console.debug('[Cider][Audio] Equalizer, Vibrant Bass, Analog Warmth')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
if (app.cfg.audio.spatial === true) {
|
||||||
|
if (app.cfg.audio.maikiwiAudio.spatial === true) {
|
||||||
|
app.cfg.audio.normalization = true;
|
||||||
|
CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialNode);
|
||||||
|
CiderAudio.audioNodes.spatialNode.connect(CiderAudio.audioNodes.vibrantbassNode[0]);
|
||||||
|
console.debug('[Cider][Audio] Equalizer, Vibrant Bass, Maikiwi Spatial')
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialInput.input);
|
||||||
|
CiderAudio.audioNodes.spatialNode.output.connect(CiderAudio.audioNodes.vibrantbassNode[0]);
|
||||||
|
console.debug('[Cider][Audio] Equalizer, Vibrant Bass, Spatial')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
app.cfg.audio.normalization = true;
|
||||||
|
CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.vibrantbassNode[0]);
|
||||||
|
console.debug('[Cider][Audio] Equalizer, Vibrant Bass')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// Vibrant Bass ends here
|
||||||
|
else { // if (app.cfg.audio.maikiwiAudio.vibrantBass.multiplier) === 0
|
||||||
|
if (app.cfg.audio.maikiwiAudio.ciderPPE === true) {
|
||||||
|
CiderAudio.llpw_h2_2(true, 1);
|
||||||
|
|
||||||
|
if (app.cfg.audio.maikiwiAudio.analogWarmth === true) {
|
||||||
|
CiderAudio.analogWarmth_h2_3(true, 3);
|
||||||
|
|
||||||
|
if (app.cfg.audio.spatial === true) {
|
||||||
|
if (app.cfg.audio.maikiwiAudio.spatial === true) {
|
||||||
|
CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialNode);
|
||||||
|
CiderAudio.audioNodes.spatialNode.connect(CiderAudio.audioNodes.analogWarmth[0]);
|
||||||
|
app.cfg.audio.normalization = true;
|
||||||
|
console.debug('[Cider][Audio] Equalizer, CAP, Analog Warmth, Maikiwi Spatial')
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialInput.input);
|
||||||
|
CiderAudio.audioNodes.spatialNode.output.connect(CiderAudio.audioNodes.analogWarmth[0]);
|
||||||
|
console.debug('[Cider][Audio] Equalizer, CAP, Analog Warmth, Spatial')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.analogWarmth[0]);
|
||||||
|
console.debug('[Cider][Audio] Equalizer, CAP and Analog Warmth')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
if (app.cfg.audio.spatial === true) {
|
||||||
|
if (app.cfg.audio.maikiwiAudio.spatial === true) {
|
||||||
|
CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialNode);
|
||||||
|
CiderAudio.audioNodes.spatialNode.connect(CiderAudio.audioNodes.llpw[0]);
|
||||||
|
app.cfg.audio.normalization = true;
|
||||||
|
console.debug('[Cider][Audio] Equalizer, CAP, Maikiwi Spatial')
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialInput.input);
|
||||||
|
CiderAudio.audioNodes.spatialNode.output.connect(CiderAudio.audioNodes.llpw[0]);
|
||||||
|
console.debug('[Cider][Audio] Equalizer, CAP, Spatial')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.llpw[0]);
|
||||||
|
console.debug('[Cider][Audio] Equalizer, CAP')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} // CAP ends here
|
||||||
|
else {
|
||||||
|
if (app.cfg.audio.maikiwiAudio.analogWarmth === true) {
|
||||||
|
CiderAudio.analogWarmth_h2_3(true, 1);
|
||||||
|
|
||||||
|
if (app.cfg.audio.spatial === true) {
|
||||||
|
if (app.cfg.audio.maikiwiAudio.spatial === true) {
|
||||||
|
CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialNode);
|
||||||
|
CiderAudio.audioNodes.spatialNode.connect(CiderAudio.audioNodes.analogWarmth[0]);
|
||||||
|
app.cfg.audio.normalization = true;
|
||||||
|
console.debug('[Cider][Audio] Equalizer, Analog Warmth, Maikiwi Spatial')
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialInput.input);
|
||||||
|
CiderAudio.audioNodes.spatialNode.output.connect(CiderAudio.audioNodes.analogWarmth[0]);
|
||||||
|
console.debug('[Cider][Audio] Equalizer, Analog Warmth, Spatial')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.analogWarmth[0]);
|
||||||
|
console.debug('[Cider][Audio] Equalizer, Analog Warmth')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
if (app.cfg.audio.spatial === true) {
|
||||||
|
if (app.cfg.audio.maikiwiAudio.spatial === true) {
|
||||||
|
CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialNode);
|
||||||
|
CiderAudio.audioNodes.spatialNode.connect(CiderAudio.audioNodes.audioBands[0]);
|
||||||
|
app.cfg.audio.normalization = true;
|
||||||
|
console.debug('[Cider][Audio] Equalizer, Maikiwi Spatial')
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialInput.input);
|
||||||
|
CiderAudio.audioNodes.spatialNode.output.connect(CiderAudio.audioNodes.audioBands[0]);
|
||||||
|
console.debug('[Cider][Audio] Equalizer, Spatial')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.audioBands[0]);
|
||||||
|
console.debug('[Cider][Audio] Equalizer')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else { //if (Math.max(...app.cfg.audio.equalizer.gain) == 0)
|
||||||
|
if (app.cfg.audio.equalizer.vibrantBass !== '0') { // Vibrant Bass
|
||||||
|
CiderAudio.vibrantbass_h2_1(true, 0)
|
||||||
|
|
||||||
if (app.cfg.audio.maikiwiAudio.ciderPPE === true) { // Vibrant Bass, CAP
|
if (app.cfg.audio.maikiwiAudio.ciderPPE === true) { // Vibrant Bass, CAP
|
||||||
CiderAudio.llpw_h2_2(true, 2);
|
CiderAudio.llpw_h2_2(true, 2);
|
||||||
|
@ -464,7 +747,7 @@ const CiderAudio = {
|
||||||
console.debug('[Cider][Audio] Vibrant Bass, CAP, Analog Warmth')
|
console.debug('[Cider][Audio] Vibrant Bass, CAP, Analog Warmth')
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else { // if (app.cfg.audio.maikiwiAudio.analogWarmth) !== true
|
||||||
if (app.cfg.audio.spatial === true) {
|
if (app.cfg.audio.spatial === true) {
|
||||||
if (app.cfg.audio.maikiwiAudio.spatial === true) {
|
if (app.cfg.audio.maikiwiAudio.spatial === true) {
|
||||||
CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialNode);
|
CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialNode);
|
||||||
|
@ -533,7 +816,7 @@ const CiderAudio = {
|
||||||
// Vibrant Bass ends here
|
// Vibrant Bass ends here
|
||||||
else {
|
else {
|
||||||
if (app.cfg.audio.maikiwiAudio.ciderPPE === true) {
|
if (app.cfg.audio.maikiwiAudio.ciderPPE === true) {
|
||||||
CiderAudio.llpw_h2_2(true, 1);
|
CiderAudio.llpw_h2_2(true, 0);
|
||||||
|
|
||||||
if (app.cfg.audio.maikiwiAudio.analogWarmth === true) {
|
if (app.cfg.audio.maikiwiAudio.analogWarmth === true) {
|
||||||
CiderAudio.analogWarmth_h2_3(true, 3);
|
CiderAudio.analogWarmth_h2_3(true, 3);
|
||||||
|
@ -578,7 +861,7 @@ const CiderAudio = {
|
||||||
} // CAP ends here
|
} // CAP ends here
|
||||||
else {
|
else {
|
||||||
if (app.cfg.audio.maikiwiAudio.analogWarmth === true) {
|
if (app.cfg.audio.maikiwiAudio.analogWarmth === true) {
|
||||||
CiderAudio.analogWarmth_h2_3(true, 1);
|
CiderAudio.analogWarmth_h2_3(true, 0);
|
||||||
|
|
||||||
if (app.cfg.audio.spatial === true) {
|
if (app.cfg.audio.spatial === true) {
|
||||||
if (app.cfg.audio.maikiwiAudio.spatial === true) {
|
if (app.cfg.audio.maikiwiAudio.spatial === true) {
|
||||||
|
@ -602,35 +885,35 @@ const CiderAudio = {
|
||||||
if (app.cfg.audio.spatial === true) {
|
if (app.cfg.audio.spatial === true) {
|
||||||
if (app.cfg.audio.maikiwiAudio.spatial === true) {
|
if (app.cfg.audio.maikiwiAudio.spatial === true) {
|
||||||
CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialNode);
|
CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialNode);
|
||||||
CiderAudio.audioNodes.spatialNode.connect(CiderAudio.audioNodes.audioBands[0]);
|
CiderAudio.audioNodes.spatialNode.connect(CiderAudio.context.destination);
|
||||||
app.cfg.audio.normalization = true;
|
app.cfg.audio.normalization = true;
|
||||||
console.debug('[Cider][Audio] Maikiwi Spatial')
|
console.debug('[Cider][Audio] Maikiwi Spatial')
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialInput.input);
|
CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.spatialInput.input);
|
||||||
CiderAudio.audioNodes.spatialNode.output.connect(CiderAudio.audioNodes.audioBands[0]);
|
CiderAudio.audioNodes.spatialNode.output.connect(CiderAudio.context.destination);
|
||||||
console.debug('[Cider][Audio] Spatial')
|
console.debug('[Cider][Audio] Spatial')
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
CiderAudio.audioNodes.gainNode.connect(CiderAudio.audioNodes.audioBands[0]);
|
CiderAudio.audioNodes.gainNode.connect(CiderAudio.context.destination);
|
||||||
console.debug('[Cider][Audio] Direct Mode to Equalizer')
|
console.debug('[Cider][Audio] Literal Nothing')
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
console.debug("[Cider][Audio] Finished hierarchical loading");
|
console.debug("[Cider][Audio] Finished hierarchical loading");
|
||||||
|
|
||||||
},
|
},
|
||||||
|
|
||||||
equalizer: function (){ // h1_1
|
equalizer: function (status, hierarchy) { // h1_1
|
||||||
|
if (status === true) {
|
||||||
let BANDS = app.cfg.audio.equalizer.frequencies;
|
let BANDS = app.cfg.audio.equalizer.frequencies;
|
||||||
let GAIN = app.cfg.audio.equalizer.gain;
|
let GAIN = app.cfg.audio.equalizer.gain;
|
||||||
let Q = app.cfg.audio.equalizer.Q;
|
let Q = app.cfg.audio.equalizer.Q;
|
||||||
|
|
||||||
CiderAudio.audioNodes.audioBands = [];
|
CiderAudio.audioNodes.audioBands = [];
|
||||||
|
|
||||||
for (let i = 0; i < BANDS.length; i++) {
|
for (let i = 0; i < BANDS.length; i++) {
|
||||||
CiderAudio.audioNodes.audioBands[i] = CiderAudio.context.createBiquadFilter();
|
CiderAudio.audioNodes.audioBands[i] = CiderAudio.context.createBiquadFilter();
|
||||||
CiderAudio.audioNodes.audioBands[i].type = 'peaking'; // 'peaking';
|
CiderAudio.audioNodes.audioBands[i].type = 'peaking'; // 'peaking';
|
||||||
|
@ -642,9 +925,16 @@ const CiderAudio = {
|
||||||
for (let i = 1; i < BANDS.length; i++) {
|
for (let 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]);
|
||||||
}
|
}
|
||||||
CiderAudio.audioNodes.audioBands[BANDS.length-1].connect(CiderAudio.context.destination);
|
|
||||||
|
|
||||||
|
switch (hierarchy) {
|
||||||
|
case 0:
|
||||||
|
try {
|
||||||
|
CiderAudio.audioNodes.audioBands[BANDS.length - 1].connect(CiderAudio.context.destination);
|
||||||
|
} catch (e) { }
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
export { CiderAudio }
|
export { CiderAudio }
|
BIN
src/renderer/audio/impulses/CAP_Maikiwi.wav
Normal file
BIN
src/renderer/audio/impulses/CAP_Natural.wav
Normal file
BIN
src/renderer/audio/impulses/CiderSpatial_v69.420_Audiophile.wav
Normal file
BIN
src/renderer/audio/impulses/CiderSpatial_v69_Audiophile.wav
Normal file
BIN
src/renderer/audio/impulses/CiderSpatial_v69_Standard.wav
Normal file
|
@ -105,6 +105,9 @@ function fallbackinitMusicKit() {
|
||||||
})
|
})
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
app.init()
|
app.init()
|
||||||
|
if(app.cfg.visual.window_background_style == "mica" && !app.isDev) {
|
||||||
|
app.spawnMica()
|
||||||
|
}
|
||||||
}, 1000)
|
}, 1000)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -131,6 +134,9 @@ document.addEventListener('musickitloaded', function () {
|
||||||
function waitForApp() {
|
function waitForApp() {
|
||||||
if (typeof app.init !== "undefined") {
|
if (typeof app.init !== "undefined") {
|
||||||
app.init()
|
app.init()
|
||||||
|
if(app.cfg.visual.window_background_style == "mica" && !app.isDev) {
|
||||||
|
app.spawnMica()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
setTimeout(waitForApp, 250);
|
setTimeout(waitForApp, 250);
|
||||||
|
|