mirror of
https://github.com/jeffvli/feishin.git
synced 2026-07-22 10:26:33 +02:00
Compare commits
3 Commits
f6f25154a1
...
de0ddfe226
| Author | SHA1 | Date | |
|---|---|---|---|
| de0ddfe226 | |||
| d23f7619ec | |||
| 44de6f2207 |
@@ -44,8 +44,6 @@ jobs:
|
|||||||
|
|
||||||
- name: Install Node and PNPM
|
- name: Install Node and PNPM
|
||||||
uses: pnpm/action-setup@v4
|
uses: pnpm/action-setup@v4
|
||||||
with:
|
|
||||||
version: 10
|
|
||||||
|
|
||||||
- name: Install dependencies
|
- name: Install dependencies
|
||||||
run: pnpm install
|
run: pnpm install
|
||||||
@@ -129,8 +127,6 @@ jobs:
|
|||||||
|
|
||||||
- name: Install Node and PNPM
|
- name: Install Node and PNPM
|
||||||
uses: pnpm/action-setup@v4
|
uses: pnpm/action-setup@v4
|
||||||
with:
|
|
||||||
version: 10
|
|
||||||
|
|
||||||
- name: Install dependencies
|
- name: Install dependencies
|
||||||
run: pnpm install
|
run: pnpm install
|
||||||
|
|||||||
@@ -19,8 +19,6 @@ jobs:
|
|||||||
|
|
||||||
- name: Install Node and PNPM
|
- name: Install Node and PNPM
|
||||||
uses: pnpm/action-setup@v4
|
uses: pnpm/action-setup@v4
|
||||||
with:
|
|
||||||
version: 10
|
|
||||||
|
|
||||||
- name: Install dependencies
|
- name: Install dependencies
|
||||||
run: pnpm install
|
run: pnpm install
|
||||||
@@ -123,8 +121,6 @@ jobs:
|
|||||||
|
|
||||||
- name: Install Node and PNPM
|
- name: Install Node and PNPM
|
||||||
uses: pnpm/action-setup@v4
|
uses: pnpm/action-setup@v4
|
||||||
with:
|
|
||||||
version: 10
|
|
||||||
|
|
||||||
- name: Install dependencies
|
- name: Install dependencies
|
||||||
run: pnpm install
|
run: pnpm install
|
||||||
|
|||||||
@@ -16,8 +16,6 @@ jobs:
|
|||||||
|
|
||||||
- name: Install Node and PNPM
|
- name: Install Node and PNPM
|
||||||
uses: pnpm/action-setup@v4
|
uses: pnpm/action-setup@v4
|
||||||
with:
|
|
||||||
version: 10
|
|
||||||
|
|
||||||
- name: Install dependencies
|
- name: Install dependencies
|
||||||
run: pnpm install
|
run: pnpm install
|
||||||
|
|||||||
@@ -16,8 +16,6 @@ jobs:
|
|||||||
|
|
||||||
- name: Install Node and PNPM
|
- name: Install Node and PNPM
|
||||||
uses: pnpm/action-setup@v4
|
uses: pnpm/action-setup@v4
|
||||||
with:
|
|
||||||
version: 10
|
|
||||||
|
|
||||||
- name: Install dependencies
|
- name: Install dependencies
|
||||||
run: pnpm install
|
run: pnpm install
|
||||||
|
|||||||
@@ -38,8 +38,6 @@ jobs:
|
|||||||
|
|
||||||
- name: Install Node and PNPM
|
- name: Install Node and PNPM
|
||||||
uses: pnpm/action-setup@v4
|
uses: pnpm/action-setup@v4
|
||||||
with:
|
|
||||||
version: 10
|
|
||||||
|
|
||||||
- name: Install dependencies
|
- name: Install dependencies
|
||||||
run: pnpm install
|
run: pnpm install
|
||||||
|
|||||||
@@ -16,8 +16,6 @@ jobs:
|
|||||||
|
|
||||||
- name: Install Node and PNPM
|
- name: Install Node and PNPM
|
||||||
uses: pnpm/action-setup@v4
|
uses: pnpm/action-setup@v4
|
||||||
with:
|
|
||||||
version: 10
|
|
||||||
|
|
||||||
- name: Install dependencies
|
- name: Install dependencies
|
||||||
run: pnpm install
|
run: pnpm install
|
||||||
|
|||||||
@@ -16,8 +16,6 @@ jobs:
|
|||||||
|
|
||||||
- name: Install Node and PNPM
|
- name: Install Node and PNPM
|
||||||
uses: pnpm/action-setup@v4
|
uses: pnpm/action-setup@v4
|
||||||
with:
|
|
||||||
version: 10
|
|
||||||
|
|
||||||
- name: Install dependencies
|
- name: Install dependencies
|
||||||
run: pnpm install
|
run: pnpm install
|
||||||
|
|||||||
@@ -12,8 +12,6 @@ jobs:
|
|||||||
|
|
||||||
- name: Install Node.js and PNPM
|
- name: Install Node.js and PNPM
|
||||||
uses: pnpm/action-setup@v4
|
uses: pnpm/action-setup@v4
|
||||||
with:
|
|
||||||
version: 10
|
|
||||||
|
|
||||||
- name: Install dependencies
|
- name: Install dependencies
|
||||||
run: pnpm install
|
run: pnpm install
|
||||||
|
|||||||
+1
-4
@@ -3,10 +3,7 @@ FROM node:23-alpine AS builder
|
|||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
|
|
||||||
# Copy package.json first to cache node_modules
|
# Copy package.json first to cache node_modules
|
||||||
COPY package.json pnpm-lock.yaml .
|
COPY package.json pnpm-lock.yaml pnpm-workspace.yaml .
|
||||||
|
|
||||||
# Match CI (pnpm/action-setup version: 10). Latest pnpm 11 fails install without approve-builds.
|
|
||||||
RUN corepack enable && corepack prepare pnpm@10 --activate
|
|
||||||
|
|
||||||
RUN pnpm install
|
RUN pnpm install
|
||||||
|
|
||||||
|
|||||||
@@ -63,7 +63,7 @@ linux:
|
|||||||
artifactName: ${productName}-${os}-${arch}.${ext}
|
artifactName: ${productName}-${os}-${arch}.${ext}
|
||||||
|
|
||||||
toolsets:
|
toolsets:
|
||||||
appimage: '1.0.2'
|
appimage: '1.0.3'
|
||||||
|
|
||||||
npmRebuild: false
|
npmRebuild: false
|
||||||
|
|
||||||
|
|||||||
@@ -63,7 +63,7 @@ linux:
|
|||||||
artifactName: ${productName}-${os}-${arch}.${ext}
|
artifactName: ${productName}-${os}-${arch}.${ext}
|
||||||
|
|
||||||
toolsets:
|
toolsets:
|
||||||
appimage: '1.0.2'
|
appimage: '1.0.3'
|
||||||
|
|
||||||
npmRebuild: false
|
npmRebuild: false
|
||||||
publish:
|
publish:
|
||||||
|
|||||||
@@ -63,7 +63,7 @@ linux:
|
|||||||
artifactName: ${productName}-${os}-${arch}.${ext}
|
artifactName: ${productName}-${os}-${arch}.${ext}
|
||||||
|
|
||||||
toolsets:
|
toolsets:
|
||||||
appimage: '1.0.2'
|
appimage: '1.0.3'
|
||||||
|
|
||||||
npmRebuild: false
|
npmRebuild: false
|
||||||
afterAllArtifactBuild: scripts/after-all-artifact-build.mjs
|
afterAllArtifactBuild: scripts/after-all-artifact-build.mjs
|
||||||
|
|||||||
+42
-42
@@ -69,79 +69,78 @@
|
|||||||
"postversion": "node ./scripts/update-app-stream.mjs"
|
"postversion": "node ./scripts/update-app-stream.mjs"
|
||||||
},
|
},
|
||||||
"resolutions": {
|
"resolutions": {
|
||||||
"react-router": "7.14.0",
|
|
||||||
"xml2js": "0.5.0"
|
"xml2js": "0.5.0"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@atlaskit/pragmatic-drag-and-drop": "1.7.7",
|
"@atlaskit/pragmatic-drag-and-drop": "1.7.7",
|
||||||
"@atlaskit/pragmatic-drag-and-drop-auto-scroll": "^2.1.5",
|
"@atlaskit/pragmatic-drag-and-drop-auto-scroll": "^2.1.5",
|
||||||
"@atlaskit/pragmatic-drag-and-drop-hitbox": "^1.1.0",
|
"@atlaskit/pragmatic-drag-and-drop-hitbox": "^1.2.0",
|
||||||
"@electron-toolkit/preload": "^3.0.2",
|
"@electron-toolkit/preload": "^3.0.2",
|
||||||
"@electron-toolkit/utils": "^4.0.0",
|
"@electron-toolkit/utils": "^4.0.0",
|
||||||
"@mantine/colors-generator": "^9.1.1",
|
"@mantine/colors-generator": "^9.3.0",
|
||||||
"@mantine/core": "^9.1.1",
|
"@mantine/core": "^9.3.0",
|
||||||
"@mantine/dates": "^9.1.1",
|
"@mantine/dates": "^9.3.0",
|
||||||
"@mantine/form": "^9.1.1",
|
"@mantine/form": "^9.3.0",
|
||||||
"@mantine/hooks": "^9.1.1",
|
"@mantine/hooks": "^9.3.0",
|
||||||
"@mantine/modals": "^9.1.1",
|
"@mantine/modals": "^9.3.0",
|
||||||
"@mantine/notifications": "^9.1.1",
|
"@mantine/notifications": "^9.3.0",
|
||||||
"@radix-ui/react-context-menu": "^2.2.16",
|
"@radix-ui/react-context-menu": "^2.3.0",
|
||||||
"@tanstack/react-query": "^5.96.2",
|
"@tanstack/react-query": "5.96.2",
|
||||||
"@tanstack/react-query-devtools": "^5.96.2",
|
"@tanstack/react-query-devtools": "5.96.2",
|
||||||
"@tanstack/react-query-persist-client": "^5.96.2",
|
"@tanstack/react-query-persist-client": "5.96.2",
|
||||||
"@ts-rest/core": "^3.52.1",
|
"@ts-rest/core": "^3.52.1",
|
||||||
"@wavesurfer/react": "^1.0.12",
|
"@wavesurfer/react": "^1.0.12",
|
||||||
"@xhayper/discord-rpc": "^1.3.3",
|
"@xhayper/discord-rpc": "^1.3.4",
|
||||||
"audiomotion-analyzer": "^4.5.4",
|
"audiomotion-analyzer": "^4.5.4",
|
||||||
"axios": "^1.14.0",
|
"axios": "^1.17.0",
|
||||||
"butterchurn": "3.0.0-beta.5",
|
"butterchurn": "3.0.0-beta.5",
|
||||||
"butterchurn-presets": "3.0.0-beta.4",
|
"butterchurn-presets": "3.0.0-beta.4",
|
||||||
"cheerio": "^1.2.0",
|
"cheerio": "^1.2.0",
|
||||||
"clsx": "^2.1.1",
|
"clsx": "^2.1.1",
|
||||||
"cmdk": "^1.1.1",
|
"cmdk": "^1.1.1",
|
||||||
"dayjs": "^1.11.20",
|
"dayjs": "^1.11.21",
|
||||||
"dompurify": "^3.3.3",
|
"dompurify": "^3.4.8",
|
||||||
"electron-debug": "^3.2.0",
|
"electron-debug": "^3.2.0",
|
||||||
"electron-localshortcut": "^3.2.1",
|
"electron-localshortcut": "^3.2.1",
|
||||||
"electron-log": "^5.4.3",
|
"electron-log": "^5.4.4",
|
||||||
"electron-store": "^8.2.0",
|
"electron-store": "^8.2.0",
|
||||||
"electron-updater": "^6.8.3",
|
"electron-updater": "^6.8.9",
|
||||||
"fast-average-color": "9.5.0",
|
"fast-average-color": "9.5.0",
|
||||||
"fast-xml-parser": "^5.5.10",
|
"fast-xml-parser": "^5.8.0",
|
||||||
"format-duration": "^3.0.2",
|
"format-duration": "^3.0.2",
|
||||||
"fuse.js": "^7.2.0",
|
"fuse.js": "^7.4.2",
|
||||||
"i18next": "^25.10.10",
|
"i18next": "^25.10.10",
|
||||||
"icecast-metadata-stats": "^0.1.12",
|
"icecast-metadata-stats": "^0.1.12",
|
||||||
"idb-keyval": "^6.2.2",
|
"idb-keyval": "^6.2.5",
|
||||||
"immer": "^10.2.0",
|
"immer": "^10.2.0",
|
||||||
"is-electron": "^2.2.2",
|
"is-electron": "^2.2.2",
|
||||||
"lodash": "^4.18.1",
|
"lodash": "^4.18.1",
|
||||||
"md5": "^2.3.0",
|
"md5": "^2.3.0",
|
||||||
"motion": "^12.38.0",
|
"motion": "^12.40.0",
|
||||||
"mpris-service": "^2.1.2",
|
"mpris-service": "^2.1.2",
|
||||||
"nanoid": "^3.3.11",
|
"nanoid": "^3.3.12",
|
||||||
"node-mpv": "github:jeffvli/Node-MPV#32b4d64395289ad710c41d481d2707a7acfc228f",
|
"node-mpv": "github:jeffvli/Node-MPV#32b4d64395289ad710c41d481d2707a7acfc228f",
|
||||||
"overlayscrollbars": "^2.14.0",
|
"overlayscrollbars": "^2.16.0",
|
||||||
"overlayscrollbars-react": "^0.5.6",
|
"overlayscrollbars-react": "^0.5.6",
|
||||||
"qs": "^6.15.0",
|
"qs": "^6.15.2",
|
||||||
"react": "^19.2.4",
|
"react": "^19.2.7",
|
||||||
"react-call": "^1.8.2",
|
"react-call": "^1.8.2",
|
||||||
"react-dom": "^19.2.4",
|
"react-dom": "^19.2.7",
|
||||||
"react-error-boundary": "^5.0.0",
|
"react-error-boundary": "^5.0.0",
|
||||||
"react-i18next": "^16.6.6",
|
"react-i18next": "^16.6.6",
|
||||||
"react-icons": "^5.6.0",
|
"react-icons": "^5.6.0",
|
||||||
"react-player": "^2.16.1",
|
"react-player": "^2.16.1",
|
||||||
"react-router": "^7.14.0",
|
"react-router": "^7.17.0",
|
||||||
"react-split-pane": "^3.2.0",
|
"react-split-pane": "^3.2.0",
|
||||||
"react-virtualized-auto-sizer": "^1.0.26",
|
"react-virtualized-auto-sizer": "^1.0.26",
|
||||||
"react-window": "1.8.11",
|
"react-window": "1.8.11",
|
||||||
"react-window-v2": "npm:react-window@^2.2.7",
|
"react-window-v2": "npm:react-window@^2.2.7",
|
||||||
"semver": "^7.7.4",
|
"semver": "^7.8.2",
|
||||||
"string-to-color": "^2.2.2",
|
"string-to-color": "^2.2.2",
|
||||||
"wavesurfer.js": "^7.12.5",
|
"wavesurfer.js": "^7.12.7",
|
||||||
"ws": "^8.20.0",
|
"ws": "^8.21.0",
|
||||||
"zod": "^3.25.76",
|
"zod": "^3.25.76",
|
||||||
"zustand": "^5.0.12"
|
"zustand": "^5.0.14"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@electron-toolkit/eslint-config-prettier": "^3.0.0",
|
"@electron-toolkit/eslint-config-prettier": "^3.0.0",
|
||||||
@@ -150,8 +149,8 @@
|
|||||||
"@types/electron-localshortcut": "^3.1.3",
|
"@types/electron-localshortcut": "^3.1.3",
|
||||||
"@types/lodash": "^4.17.24",
|
"@types/lodash": "^4.17.24",
|
||||||
"@types/md5": "^2.3.6",
|
"@types/md5": "^2.3.6",
|
||||||
"@types/node": "^24.12.2",
|
"@types/node": "^24.13.1",
|
||||||
"@types/react": "^19.2.14",
|
"@types/react": "^19.2.17",
|
||||||
"@types/react-dom": "^19.2.3",
|
"@types/react-dom": "^19.2.3",
|
||||||
"@types/react-window": "^1.8.8",
|
"@types/react-window": "^1.8.8",
|
||||||
"@types/source-map-support": "^0.5.10",
|
"@types/source-map-support": "^0.5.10",
|
||||||
@@ -160,32 +159,33 @@
|
|||||||
"babel-plugin-react-compiler": "^1.0.0",
|
"babel-plugin-react-compiler": "^1.0.0",
|
||||||
"concurrently": "^9.2.1",
|
"concurrently": "^9.2.1",
|
||||||
"cross-env": "^10.1.0",
|
"cross-env": "^10.1.0",
|
||||||
"electron": "^41.7.0",
|
"electron": "^41.7.1",
|
||||||
"electron-builder": "^26.8.2",
|
"electron-builder": "^26.15.0",
|
||||||
"electron-devtools-installer": "^4.0.0",
|
"electron-devtools-installer": "^4.0.0",
|
||||||
"electron-vite": "^4.0.1",
|
"electron-vite": "^4.0.1",
|
||||||
"eslint": "^9.39.4",
|
"eslint": "^9.39.4",
|
||||||
"eslint-plugin-perfectionist": "^4.15.1",
|
"eslint-plugin-perfectionist": "^4.15.1",
|
||||||
"eslint-plugin-prettier": "^5.5.5",
|
"eslint-plugin-prettier": "^5.5.6",
|
||||||
"eslint-plugin-react": "^7.37.5",
|
"eslint-plugin-react": "^7.37.5",
|
||||||
"eslint-plugin-react-hooks": "^7.0.1",
|
"eslint-plugin-react-hooks": "^7.1.1",
|
||||||
"eslint-plugin-react-refresh": "^0.4.26",
|
"eslint-plugin-react-refresh": "^0.4.26",
|
||||||
"i18next-parser": "^9.4.0",
|
"i18next-parser": "^9.4.0",
|
||||||
"postcss-preset-mantine": "^1.18.0",
|
"postcss-preset-mantine": "^1.18.0",
|
||||||
"postcss-simple-vars": "^7.0.1",
|
"postcss-simple-vars": "^7.0.1",
|
||||||
"prettier": "^3.8.1",
|
"prettier": "^3.8.3",
|
||||||
"prettier-plugin-packagejson": "^2.5.22",
|
"prettier-plugin-packagejson": "^2.5.22",
|
||||||
"stylelint": "^16.26.1",
|
"stylelint": "^16.26.1",
|
||||||
"stylelint-config-css-modules": "^4.6.0",
|
"stylelint-config-css-modules": "^4.6.0",
|
||||||
"stylelint-config-recess-order": "^7.7.0",
|
"stylelint-config-recess-order": "^7.7.0",
|
||||||
"stylelint-config-standard": "^39.0.1",
|
"stylelint-config-standard": "^39.0.1",
|
||||||
"typescript": "^5.9.3",
|
"typescript": "^5.9.3",
|
||||||
"vite": "^7.3.1",
|
"vite": "^7.3.5",
|
||||||
"vite-plugin-conditional-import": "^0.1.7",
|
"vite-plugin-conditional-import": "^0.1.7",
|
||||||
"vite-plugin-dynamic-import": "^1.6.0",
|
"vite-plugin-dynamic-import": "^1.6.0",
|
||||||
"vite-plugin-ejs": "^1.7.0",
|
"vite-plugin-ejs": "^1.7.0",
|
||||||
"vite-plugin-pwa": "^1.2.0"
|
"vite-plugin-pwa": "^1.3.0"
|
||||||
},
|
},
|
||||||
|
"packageManager": "pnpm@11.5.2",
|
||||||
"pnpm": {
|
"pnpm": {
|
||||||
"onlyBuiltDependencies": [
|
"onlyBuiltDependencies": [
|
||||||
"electron",
|
"electron",
|
||||||
|
|||||||
Generated
+2186
-2388
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,9 @@
|
|||||||
|
allowBuilds:
|
||||||
|
abstract-socket: true
|
||||||
|
electron: true
|
||||||
|
electron-winstaller: true
|
||||||
|
esbuild: true
|
||||||
|
|
||||||
|
overrides:
|
||||||
|
"xml2js": "0.5.0"
|
||||||
|
"react-router": "7.14.0"
|
||||||
+11
-11
@@ -549,19 +549,19 @@
|
|||||||
"cancel": "Zrušit",
|
"cancel": "Zrušit",
|
||||||
"forceRestartRequired": "Restartujte pro použití změn… zavřete oznámení pro restartování",
|
"forceRestartRequired": "Restartujte pro použití změn… zavřete oznámení pro restartování",
|
||||||
"setting_one": "Nastavení",
|
"setting_one": "Nastavení",
|
||||||
"setting_few": "nastavení",
|
"setting_few": "Nastavení",
|
||||||
"setting_other": "Nastavení",
|
"setting_other": "Nastavení",
|
||||||
"version": "Verze",
|
"version": "Verze",
|
||||||
"title": "Název",
|
"title": "Název",
|
||||||
"filter_one": "Filtr",
|
"filter_one": "Filtr",
|
||||||
"filter_few": "filtry",
|
"filter_few": "Filtry",
|
||||||
"filter_other": "Filtrů",
|
"filter_other": "Filtrů",
|
||||||
"filters": "Filtry",
|
"filters": "Filtry",
|
||||||
"create": "Vytvořit",
|
"create": "Vytvořit",
|
||||||
"bitrate": "Datový tok",
|
"bitrate": "Datový tok",
|
||||||
"saveAndReplace": "Uložit a nahradit",
|
"saveAndReplace": "Uložit a nahradit",
|
||||||
"action_one": "Akce",
|
"action_one": "Akce",
|
||||||
"action_few": "akce",
|
"action_few": "Akce",
|
||||||
"action_other": "Akcí",
|
"action_other": "Akcí",
|
||||||
"playerMustBePaused": "Přehrávač musí být pozastaven",
|
"playerMustBePaused": "Přehrávač musí být pozastaven",
|
||||||
"confirm": "Potvrdit",
|
"confirm": "Potvrdit",
|
||||||
@@ -570,7 +570,7 @@
|
|||||||
"comingSoon": "Již brzy…",
|
"comingSoon": "Již brzy…",
|
||||||
"reset": "Resetovat",
|
"reset": "Resetovat",
|
||||||
"channel_one": "Kanál",
|
"channel_one": "Kanál",
|
||||||
"channel_few": "kanály",
|
"channel_few": "Kanály",
|
||||||
"channel_other": "Kanálů",
|
"channel_other": "Kanálů",
|
||||||
"disable": "Vypnout",
|
"disable": "Vypnout",
|
||||||
"sortOrder": "Pořadí",
|
"sortOrder": "Pořadí",
|
||||||
@@ -1161,13 +1161,13 @@
|
|||||||
},
|
},
|
||||||
"entity": {
|
"entity": {
|
||||||
"genre_one": "Žánr",
|
"genre_one": "Žánr",
|
||||||
"genre_few": "žánry",
|
"genre_few": "Žánry",
|
||||||
"genre_other": "Žánry",
|
"genre_other": "Žánry",
|
||||||
"playlistWithCount_one": "{{count}} playlist",
|
"playlistWithCount_one": "{{count}} playlist",
|
||||||
"playlistWithCount_few": "{{count}} playlisty",
|
"playlistWithCount_few": "{{count}} playlisty",
|
||||||
"playlistWithCount_other": "{{count}} playlistů",
|
"playlistWithCount_other": "{{count}} playlistů",
|
||||||
"playlist_one": "Playlist",
|
"playlist_one": "Playlist",
|
||||||
"playlist_few": "playlisty",
|
"playlist_few": "Playlisty",
|
||||||
"playlist_other": "Playlisty",
|
"playlist_other": "Playlisty",
|
||||||
"artist_one": "Umělec",
|
"artist_one": "Umělec",
|
||||||
"artist_few": "Umělci",
|
"artist_few": "Umělci",
|
||||||
@@ -1179,7 +1179,7 @@
|
|||||||
"albumArtist_few": "Umělci alb",
|
"albumArtist_few": "Umělci alb",
|
||||||
"albumArtist_other": "Umělci alb",
|
"albumArtist_other": "Umělci alb",
|
||||||
"track_one": "Skladba",
|
"track_one": "Skladba",
|
||||||
"track_few": "skladby",
|
"track_few": "Skladby",
|
||||||
"track_other": "Skladby",
|
"track_other": "Skladby",
|
||||||
"albumArtistCount_one": "{{count}} umělec alba",
|
"albumArtistCount_one": "{{count}} umělec alba",
|
||||||
"albumArtistCount_few": "{{count}} umělci alba",
|
"albumArtistCount_few": "{{count}} umělci alba",
|
||||||
@@ -1194,7 +1194,7 @@
|
|||||||
"artistWithCount_few": "{{count}} umělci",
|
"artistWithCount_few": "{{count}} umělci",
|
||||||
"artistWithCount_other": "{{count}} umělců",
|
"artistWithCount_other": "{{count}} umělců",
|
||||||
"folder_one": "Složka",
|
"folder_one": "Složka",
|
||||||
"folder_few": "složky",
|
"folder_few": "Složky",
|
||||||
"folder_other": "Složky",
|
"folder_other": "Složky",
|
||||||
"smartPlaylist": "Chytrý $t(entity.playlist, {\"count\": 1})",
|
"smartPlaylist": "Chytrý $t(entity.playlist, {\"count\": 1})",
|
||||||
"album_one": "Album",
|
"album_one": "Album",
|
||||||
@@ -1209,9 +1209,9 @@
|
|||||||
"play_one": "{{count}} přehrání",
|
"play_one": "{{count}} přehrání",
|
||||||
"play_few": "{{count}} přehrání",
|
"play_few": "{{count}} přehrání",
|
||||||
"play_other": "{{count}} přehrání",
|
"play_other": "{{count}} přehrání",
|
||||||
"song_one": "Píseň",
|
"song_one": "Skladba",
|
||||||
"song_few": "písničky",
|
"song_few": "Skladby",
|
||||||
"song_other": "Písní",
|
"song_other": "Skladby",
|
||||||
"radioStation_one": "Stanice rádia",
|
"radioStation_one": "Stanice rádia",
|
||||||
"radioStation_few": "Stanice rádia",
|
"radioStation_few": "Stanice rádia",
|
||||||
"radioStation_other": "Stanice rádia",
|
"radioStation_other": "Stanice rádia",
|
||||||
|
|||||||
+29
-29
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"action": {
|
"action": {
|
||||||
"addToFavorites": "Lisa üksusesse $t(entity.favorite, {\"count\": 2})",
|
"addToFavorites": "Lisa > $t(entity.favorite, {\"count\": 2})",
|
||||||
"addToPlaylist": "Lisa üksusesse $t(entity.playlist, {\"count\": 1})",
|
"addToPlaylist": "Lisa > $t(entity.playlist, {\"count\": 1})",
|
||||||
"addOrRemoveFromSelection": "Lisa või eemalda valikust",
|
"addOrRemoveFromSelection": "Lisa või eemalda valikust",
|
||||||
"selectRangeOfItems": "Vali mitu üksust korraga",
|
"selectRangeOfItems": "Vali mitu üksust korraga",
|
||||||
"clearQueue": "Tühjenda järjekord",
|
"clearQueue": "Tühjenda järjekord",
|
||||||
@@ -206,12 +206,12 @@
|
|||||||
"playlistWithCount_one": "{{count}} esitusloend",
|
"playlistWithCount_one": "{{count}} esitusloend",
|
||||||
"playlistWithCount_other": "{{count}} esitusloendit",
|
"playlistWithCount_other": "{{count}} esitusloendit",
|
||||||
"smartPlaylist": "Nutikas $t(entity.playlist, {\"count\": 1})",
|
"smartPlaylist": "Nutikas $t(entity.playlist, {\"count\": 1})",
|
||||||
"track_one": "Rada",
|
"track_one": "Pala",
|
||||||
"track_other": "Rajad",
|
"track_other": "Palad",
|
||||||
"song_one": "Lugu",
|
"song_one": "Laul",
|
||||||
"song_other": "Lood",
|
"song_other": "Laulud",
|
||||||
"trackWithCount_one": "{{count}} rada",
|
"trackWithCount_one": "{{count}} pala",
|
||||||
"trackWithCount_other": "{{count}} rada"
|
"trackWithCount_other": "{{count}} pala"
|
||||||
},
|
},
|
||||||
"error": {
|
"error": {
|
||||||
"apiRouteError": "Päringut ei saanud edastada",
|
"apiRouteError": "Päringut ei saanud edastada",
|
||||||
@@ -288,11 +288,11 @@
|
|||||||
"releaseDate": "Ilmumiskuupäev",
|
"releaseDate": "Ilmumiskuupäev",
|
||||||
"releaseYear": "Ilmumisaasta",
|
"releaseYear": "Ilmumisaasta",
|
||||||
"search": "Otsing",
|
"search": "Otsing",
|
||||||
"songCount": "Lugude arv",
|
"songCount": "Laulude arv",
|
||||||
"explicitStatus": "$t(common.explicitStatus)",
|
"explicitStatus": "$t(common.explicitStatus)",
|
||||||
"title": "Pealkiri",
|
"title": "Pealkiri",
|
||||||
"sortName": "Sortimisnimi",
|
"sortName": "Sortimisnimi",
|
||||||
"trackNumber": "Lugu",
|
"trackNumber": "Pala",
|
||||||
"toYear": "Aastasse"
|
"toYear": "Aastasse"
|
||||||
},
|
},
|
||||||
"filterOperator": {
|
"filterOperator": {
|
||||||
@@ -342,11 +342,11 @@
|
|||||||
"addToPlaylist": {
|
"addToPlaylist": {
|
||||||
"create": "Loo $t(entity.playlist, {\"count\": 1}) {{playlist}}",
|
"create": "Loo $t(entity.playlist, {\"count\": 1}) {{playlist}}",
|
||||||
"input_playlists": "$t(entity.playlist, {\"count\": 2})",
|
"input_playlists": "$t(entity.playlist, {\"count\": 2})",
|
||||||
"noneAdded": "$t(entity.playlist, {\"count\": 1}) '{{playlist}}' ei lisatud ühtegi lugu",
|
"noneAdded": "$t(entity.playlist, {\"count\": 1}) '{{playlist}}' ei lisatud ühtegi pala",
|
||||||
"input_skipDuplicates": "Jäta duplikaadid vahele",
|
"input_skipDuplicates": "Jäta duplikaadid vahele",
|
||||||
"searchOrCreate": "Otsi $t(entity.playlist, {\"count\": 2}) või kirjuta uue loomiseks",
|
"searchOrCreate": "Otsi $t(entity.playlist, {\"count\": 2}) või kirjuta uue loomiseks",
|
||||||
"success": "$t(entity.trackWithCount, {\"count\": {{message}} }) lisati $t(entity.playlistWithCount, {\"count\": {{numOfPlaylists}} })",
|
"success": "$t(entity.trackWithCount, {\"count\": {{message}} }) lisati $t(entity.playlistWithCount, {\"count\": {{numOfPlaylists}} })",
|
||||||
"title": "Lisa esitusloendisse $t(entity.playlist, {\"count\": 1})"
|
"title": "Lisa > $t(entity.playlist, {\"count\": 1})"
|
||||||
},
|
},
|
||||||
"createPlaylist": {
|
"createPlaylist": {
|
||||||
"input_description": "$t(common.description)",
|
"input_description": "$t(common.description)",
|
||||||
@@ -414,9 +414,9 @@
|
|||||||
"input_kind_songs": "Lood",
|
"input_kind_songs": "Lood",
|
||||||
"input_kind": "Juhuvalikud",
|
"input_kind": "Juhuvalikud",
|
||||||
"input_limit_albums": "Mitu albumit?",
|
"input_limit_albums": "Mitu albumit?",
|
||||||
"input_limit_songs": "Mitu lugu?",
|
"input_limit_songs": "Mitu laulu?",
|
||||||
"input_genre": "$t(entity.genre, {\"count\": 1})",
|
"input_genre": "$t(entity.genre, {\"count\": 1})",
|
||||||
"input_limit": "Mitu lugu?",
|
"input_limit": "Mitu laulu?",
|
||||||
"input_minYear": "Aastast",
|
"input_minYear": "Aastast",
|
||||||
"input_maxYear": "Aastani",
|
"input_maxYear": "Aastani",
|
||||||
"input_played": "Esita filter",
|
"input_played": "Esita filter",
|
||||||
@@ -587,7 +587,7 @@
|
|||||||
"itemDetail": {
|
"itemDetail": {
|
||||||
"copyPath": "Kopeeri tee lõikelauale",
|
"copyPath": "Kopeeri tee lõikelauale",
|
||||||
"copiedPath": "Tee kopeeriti edukalt",
|
"copiedPath": "Tee kopeeriti edukalt",
|
||||||
"openFile": "Kuva lugu failihalduris"
|
"openFile": "Kuva pala failihalduris"
|
||||||
},
|
},
|
||||||
"playlist": {
|
"playlist": {
|
||||||
"reorder": "Ümberreastamine on lubatud vaid ID järgi sorteerimisel"
|
"reorder": "Ümberreastamine on lubatud vaid ID järgi sorteerimisel"
|
||||||
@@ -663,11 +663,11 @@
|
|||||||
"next": "Järgmine",
|
"next": "Järgmine",
|
||||||
"play": "Esita",
|
"play": "Esita",
|
||||||
"playbackFetchCancel": "See võtab veidi aega… tühistamiseks sulge teavitus",
|
"playbackFetchCancel": "See võtab veidi aega… tühistamiseks sulge teavitus",
|
||||||
"playbackFetchInProgress": "Lugude laadimine…",
|
"playbackFetchInProgress": "Laulude laadimine…",
|
||||||
"playbackFetchNoResults": "Ühtegi lugu ei leitud",
|
"playbackFetchNoResults": "Ühtegi laulu ei leitud",
|
||||||
"playbackSpeed": "Taasesituse kiirus",
|
"playbackSpeed": "Taasesituse kiirus",
|
||||||
"playRandom": "Esita juhuslikult",
|
"playRandom": "Esita juhuslikult",
|
||||||
"playSimilarSongs": "Esita sarnaseid lugusid",
|
"playSimilarSongs": "Esita sarnaseid laule",
|
||||||
"previous": "Eelmine",
|
"previous": "Eelmine",
|
||||||
"queue_clear": "Tühjenda järjekord",
|
"queue_clear": "Tühjenda järjekord",
|
||||||
"queue_moveToBottom": "Liiguta valitud lõppu",
|
"queue_moveToBottom": "Liiguta valitud lõppu",
|
||||||
@@ -733,7 +733,7 @@
|
|||||||
"autoDJ_itemCount": "Üksuste arv",
|
"autoDJ_itemCount": "Üksuste arv",
|
||||||
"autoDJ_itemCount_description": "Järjekorda lisatavate üksuste arv",
|
"autoDJ_itemCount_description": "Järjekorda lisatavate üksuste arv",
|
||||||
"autoDJ_timing": "Ajastus",
|
"autoDJ_timing": "Ajastus",
|
||||||
"autoDJ_timing_description": "Lugude arv järjekorras enne automaatse DJ käivitumist",
|
"autoDJ_timing_description": "Laulude arv järjekorras enne automaatse DJ käivitumist",
|
||||||
"autoDJ_mode": "Režiim",
|
"autoDJ_mode": "Režiim",
|
||||||
"autoDJ_mode_albums": "Albumid",
|
"autoDJ_mode_albums": "Albumid",
|
||||||
"autoDJ_mode_description": "Vali, kas lisada järjekorda üksikud lood või terved albumid",
|
"autoDJ_mode_description": "Vali, kas lisada järjekorda üksikud lood või terved albumid",
|
||||||
@@ -850,7 +850,7 @@
|
|||||||
"externalLinks_description": "Lubab esitaja ja albumi lehtedel näidata väliseid linke (Last.fm, MusicBrainz)",
|
"externalLinks_description": "Lubab esitaja ja albumi lehtedel näidata väliseid linke (Last.fm, MusicBrainz)",
|
||||||
"externalLinks": "Kuva välised lingid",
|
"externalLinks": "Kuva välised lingid",
|
||||||
"followCurrentSong_description": "Keri esitusjärjekord automaatselt hetkel mängiva looni",
|
"followCurrentSong_description": "Keri esitusjärjekord automaatselt hetkel mängiva looni",
|
||||||
"followCurrentSong": "Jälgi praegust lugu",
|
"followCurrentSong": "Jälgi praegust laulu",
|
||||||
"followLyric_description": "Keri laulusõnad praegusesse kohta",
|
"followLyric_description": "Keri laulusõnad praegusesse kohta",
|
||||||
"followLyric": "Jälgi laulusõnu",
|
"followLyric": "Jälgi laulusõnu",
|
||||||
"font_description": "Määrab rakenduses kasutatava fondi",
|
"font_description": "Määrab rakenduses kasutatava fondi",
|
||||||
@@ -884,13 +884,13 @@
|
|||||||
"hotkey_listPlayLast": "Lisa järjekorra lõppu",
|
"hotkey_listPlayLast": "Lisa järjekorra lõppu",
|
||||||
"hotkey_listPlayNext": "Esita järgmisena",
|
"hotkey_listPlayNext": "Esita järgmisena",
|
||||||
"hotkey_listPlayNow": "Esita kohe",
|
"hotkey_listPlayNow": "Esita kohe",
|
||||||
"hotkey_listShowPlayingSong": "Kuva esitatav lugu loendis",
|
"hotkey_listShowPlayingSong": "Kuva esitatav laul loendis",
|
||||||
"hotkey_navigateHome": "Liigu avalehele",
|
"hotkey_navigateHome": "Liigu avalehele",
|
||||||
"hotkey_playbackNext": "Järgmine lugu",
|
"hotkey_playbackNext": "Järgmine pala",
|
||||||
"hotkey_playbackPause": "Paus",
|
"hotkey_playbackPause": "Paus",
|
||||||
"hotkey_playbackPlay": "Esita",
|
"hotkey_playbackPlay": "Esita",
|
||||||
"hotkey_playbackPlayPause": "Esita / peata",
|
"hotkey_playbackPlayPause": "Esita / peata",
|
||||||
"hotkey_playbackPrevious": "Eelmine lugu",
|
"hotkey_playbackPrevious": "Eelmine pala",
|
||||||
"hotkey_playbackStop": "Peata",
|
"hotkey_playbackStop": "Peata",
|
||||||
"hotkey_rate0": "Eemalda hinne",
|
"hotkey_rate0": "Eemalda hinne",
|
||||||
"hotkey_rate1": "Hinne 1 tärn",
|
"hotkey_rate1": "Hinne 1 tärn",
|
||||||
@@ -959,26 +959,26 @@
|
|||||||
"neteaseTranslation_description": "Sisselülitamisel otsitakse ja kuvatakse võimaluse korral NetEase'ist pärit tõlgitud laulusõnu",
|
"neteaseTranslation_description": "Sisselülitamisel otsitakse ja kuvatakse võimaluse korral NetEase'ist pärit tõlgitud laulusõnu",
|
||||||
"neteaseTranslation": "Luba NetEase'i tõlked",
|
"neteaseTranslation": "Luba NetEase'i tõlked",
|
||||||
"notify": "Luba lauluteavitused",
|
"notify": "Luba lauluteavitused",
|
||||||
"notify_description": "Näita teavitust, kui lugu vahetub",
|
"notify_description": "Näita teavitust, kui laul vahetub",
|
||||||
"pathReplace": "Failitee asendamine",
|
"pathReplace": "Failitee asendamine",
|
||||||
"pathReplace_description": "Asenda oma serveri vaikimisi failitee",
|
"pathReplace_description": "Asenda oma serveri vaikimisi failitee",
|
||||||
"pathReplace_optionRemovePrefix": "Eemalda eesliide",
|
"pathReplace_optionRemovePrefix": "Eemalda eesliide",
|
||||||
"pathReplace_optionAddPrefix": "Lisa eesliide",
|
"pathReplace_optionAddPrefix": "Lisa eesliide",
|
||||||
"passwordStore_description": "Millist paroolihoidlat kasutada. Muuda seda juhul, kui paroolide salvestamisega on probleeme",
|
"passwordStore_description": "Millist paroolihoidlat kasutada. Muuda seda juhul, kui paroolide salvestamisega on probleeme",
|
||||||
"passwordStore": "Paroolihoidla",
|
"passwordStore": "Paroolihoidla",
|
||||||
"playerFilters": "Filtreeri lugusid järjekorrast",
|
"playerFilters": "Filtreeri laule järjekorrast",
|
||||||
"playerFilters_description": "Jäta lood järjekorda lisamata järgmiste kriteeriumide põhjal",
|
"playerFilters_description": "Jäta lood järjekorda lisamata järgmiste kriteeriumide põhjal",
|
||||||
"playbackStyle_description": "Vali pleieri esitusstiil",
|
"playbackStyle_description": "Vali pleieri esitusstiil",
|
||||||
"playbackStyle_optionCrossFade": "Ristvahetus",
|
"playbackStyle_optionCrossFade": "Ristvahetus",
|
||||||
"playbackStyle_optionNormal": "Tavaline",
|
"playbackStyle_optionNormal": "Tavaline",
|
||||||
"playbackStyle": "Taasesituse stiil",
|
"playbackStyle": "Taasesituse stiil",
|
||||||
"playButtonBehavior_description": "Määrab esitusnupu vaikimisi käitumise lugude järjekorda lisamisel",
|
"playButtonBehavior_description": "Määrab esitusnupu vaikimisi käitumise laulude järjekorda lisamisel",
|
||||||
"playButtonBehavior_optionAddLast": "$t(player.addLast)",
|
"playButtonBehavior_optionAddLast": "$t(player.addLast)",
|
||||||
"playButtonBehavior_optionAddNext": "$t(player.addNext)",
|
"playButtonBehavior_optionAddNext": "$t(player.addNext)",
|
||||||
"playButtonBehavior_optionPlay": "$t(player.play)",
|
"playButtonBehavior_optionPlay": "$t(player.play)",
|
||||||
"playButtonBehavior_optionPlayShuffled": "$t(player.shuffle)",
|
"playButtonBehavior_optionPlayShuffled": "$t(player.shuffle)",
|
||||||
"playButtonBehavior": "Esitusnupu käitumine",
|
"playButtonBehavior": "Esitusnupu käitumine",
|
||||||
"artistRadioCount_description": "Määrab lugude arvu, mis laetakse esitaja- ja looraadio jaoks",
|
"artistRadioCount_description": "Määrab laulude arvu, mis laetakse esitaja- ja looraadio jaoks",
|
||||||
"artistRadioCount": "Esitaja-/looraadio lugude arv",
|
"artistRadioCount": "Esitaja-/looraadio lugude arv",
|
||||||
"imageResolution": "Pildi resolutsioon",
|
"imageResolution": "Pildi resolutsioon",
|
||||||
"imageResolution_description": "Rakenduses kasutatavate piltide resolutsioon. Väärtuse 0 puhul kasutatakse pildi algset resolutsiooni",
|
"imageResolution_description": "Rakenduses kasutatavate piltide resolutsioon. Väärtuse 0 puhul kasutatakse pildi algset resolutsiooni",
|
||||||
@@ -1322,7 +1322,7 @@
|
|||||||
"sampleRate": "Diskreetimissagedus",
|
"sampleRate": "Diskreetimissagedus",
|
||||||
"size": "Suurus",
|
"size": "Suurus",
|
||||||
"title": "Pealkiri",
|
"title": "Pealkiri",
|
||||||
"trackNumber": "Lugu",
|
"trackNumber": "Pala",
|
||||||
"owner": "Omanik",
|
"owner": "Omanik",
|
||||||
"channels": "Kanalid",
|
"channels": "Kanalid",
|
||||||
"songCount": "Lood"
|
"songCount": "Lood"
|
||||||
@@ -1339,7 +1339,7 @@
|
|||||||
"alignLeft": "Joonda vasakule",
|
"alignLeft": "Joonda vasakule",
|
||||||
"alignCenter": "Joonda keskele",
|
"alignCenter": "Joonda keskele",
|
||||||
"alignRight": "Joonda paremale",
|
"alignRight": "Joonda paremale",
|
||||||
"followCurrentSong": "Jälgi praegust lugu",
|
"followCurrentSong": "Jälgi praegust laulu",
|
||||||
"displayType": "Kuvamisviis",
|
"displayType": "Kuvamisviis",
|
||||||
"gap": "$t(common.gap)",
|
"gap": "$t(common.gap)",
|
||||||
"itemGap": "Elementide vahe (px)",
|
"itemGap": "Elementide vahe (px)",
|
||||||
|
|||||||
@@ -12,7 +12,7 @@
|
|||||||
"delete": "刪除",
|
"delete": "刪除",
|
||||||
"descending": "降冪",
|
"descending": "降冪",
|
||||||
"description": "描述",
|
"description": "描述",
|
||||||
"forceRestartRequired": "重新啟動應用程式以使更改生效…關閉通知後即可重啟",
|
"forceRestartRequired": "重啟以套用變更… 關閉通知後即可重啟",
|
||||||
"menu": "選單",
|
"menu": "選單",
|
||||||
"action_other": "操作",
|
"action_other": "操作",
|
||||||
"add": "新增",
|
"add": "新增",
|
||||||
@@ -31,7 +31,7 @@
|
|||||||
"forward": "前進",
|
"forward": "前進",
|
||||||
"gap": "空隙",
|
"gap": "空隙",
|
||||||
"home": "首頁",
|
"home": "首頁",
|
||||||
"increase": "增高",
|
"increase": "提升",
|
||||||
"left": "左",
|
"left": "左",
|
||||||
"limit": "限制",
|
"limit": "限制",
|
||||||
"manage": "管理",
|
"manage": "管理",
|
||||||
@@ -40,14 +40,14 @@
|
|||||||
"owner": "所有者",
|
"owner": "所有者",
|
||||||
"path": "路徑",
|
"path": "路徑",
|
||||||
"playerMustBePaused": "播放器必須先暫停",
|
"playerMustBePaused": "播放器必須先暫停",
|
||||||
"previousSong": "上一首$t(entity.track, {\"count\": 1})",
|
"previousSong": "上一首 $t(entity.track, {\"count\": 1})",
|
||||||
"quit": "退出",
|
"quit": "退出",
|
||||||
"random": "隨機",
|
"random": "隨機",
|
||||||
"rating": "評分",
|
"rating": "評分",
|
||||||
"refresh": "重新整理",
|
"refresh": "重新整理",
|
||||||
"reset": "重置",
|
"reset": "重置",
|
||||||
"resetToDefault": "恢復為預設值",
|
"resetToDefault": "重置為預設",
|
||||||
"restartRequired": "需要重新啟動應用程式",
|
"restartRequired": "需要重新啟動",
|
||||||
"right": "右",
|
"right": "右",
|
||||||
"save": "儲存",
|
"save": "儲存",
|
||||||
"saveAndReplace": "儲存並取代",
|
"saveAndReplace": "儲存並取代",
|
||||||
@@ -55,7 +55,7 @@
|
|||||||
"search": "搜尋",
|
"search": "搜尋",
|
||||||
"sortOrder": "順序",
|
"sortOrder": "順序",
|
||||||
"title": "標題",
|
"title": "標題",
|
||||||
"trackNumber": "音軌編號",
|
"trackNumber": "曲目",
|
||||||
"unknown": "未知",
|
"unknown": "未知",
|
||||||
"size": "大小",
|
"size": "大小",
|
||||||
"version": "版本",
|
"version": "版本",
|
||||||
@@ -72,7 +72,7 @@
|
|||||||
"name": "名稱",
|
"name": "名稱",
|
||||||
"no": "否",
|
"no": "否",
|
||||||
"none": "無",
|
"none": "無",
|
||||||
"noResultsFromQuery": "未查詢到匹配結果",
|
"noResultsFromQuery": "查詢回傳了無結果",
|
||||||
"note": "注釋",
|
"note": "注釋",
|
||||||
"additionalParticipants": "額外參與者",
|
"additionalParticipants": "額外參與者",
|
||||||
"newVersion": "新版本 ({{version}}) 已被安裝",
|
"newVersion": "新版本 ({{version}}) 已被安裝",
|
||||||
@@ -105,8 +105,8 @@
|
|||||||
"clean": "清除",
|
"clean": "清除",
|
||||||
"explicitStatus": "露骨狀態",
|
"explicitStatus": "露骨狀態",
|
||||||
"explicit": "露骨",
|
"explicit": "露骨",
|
||||||
"gridRows": "網格行",
|
"gridRows": "網格列",
|
||||||
"noFilters": "未設定任何過濾器",
|
"noFilters": "未配置篩選器",
|
||||||
"countSelected": "{{count}} 個已選取",
|
"countSelected": "{{count}} 個已選取",
|
||||||
"retry": "重試",
|
"retry": "重試",
|
||||||
"example": "範例",
|
"example": "範例",
|
||||||
@@ -116,45 +116,45 @@
|
|||||||
"itemsMore": "{{count}} 更多",
|
"itemsMore": "{{count}} 更多",
|
||||||
"filter_single": "單選",
|
"filter_single": "單選",
|
||||||
"filter_multiple": "複選",
|
"filter_multiple": "複選",
|
||||||
"newVersionAvailable": "有新的版本可供使用",
|
"newVersionAvailable": "有新版本可用",
|
||||||
"numberOfResults": "{{numberOfResults}} 項結果",
|
"numberOfResults": "{{numberOfResults}} 項結果",
|
||||||
"grouping": "分組",
|
"grouping": "分組",
|
||||||
"back": "返回",
|
"back": "返回",
|
||||||
"openFolder": "開啟資料夾"
|
"openFolder": "開啟資料夾"
|
||||||
},
|
},
|
||||||
"error": {
|
"error": {
|
||||||
"endpointNotImplementedError": "{{serverType}} 尚未實現端點 {{endpoint}}",
|
"endpointNotImplementedError": "{{serverType}} 尚未實作端點 {{endpoint}}",
|
||||||
"apiRouteError": "請求失敗:無法路由",
|
"apiRouteError": "無法路由請求",
|
||||||
"audioDeviceFetchError": "無法取得音訊設備",
|
"audioDeviceFetchError": "嘗試取得音訊裝置時發生了錯誤",
|
||||||
"authenticationFailed": "驗證失敗",
|
"authenticationFailed": "驗證失敗",
|
||||||
"credentialsRequired": "需要憑證",
|
"credentialsRequired": "需要憑證",
|
||||||
"genericError": "發生了錯誤",
|
"genericError": "發生了錯誤",
|
||||||
"invalidServer": "無效的伺服器",
|
"invalidServer": "無效的伺服器",
|
||||||
"localFontAccessDenied": "無法取得本地字型",
|
"localFontAccessDenied": "存取本地字型被拒絕",
|
||||||
"loginRateError": "登入請求嘗試次數過多,請稍後再試",
|
"loginRateError": "登入請求嘗試次數過多,請稍後再試",
|
||||||
"remoteDisableError": "$t(common.disable)遠端伺服器時出現錯誤",
|
"remoteDisableError": "嘗試 $t(common.disable) 遠端伺服器時發生了錯誤",
|
||||||
"remoteEnableError": "$t(common.enable)遠端伺服器時出現錯誤",
|
"remoteEnableError": "嘗試 $t(common.enable) 遠端伺服器時發生了錯誤",
|
||||||
"remotePortError": "設定遠端伺服器連接埠時發生錯誤",
|
"remotePortError": "嘗試設定遠端伺服器連接埠時發生了錯誤",
|
||||||
"remotePortWarning": "重啟伺服器使新連接埠生效",
|
"remotePortWarning": "重啟伺服器以套用新連接埠",
|
||||||
"serverRequired": "需要伺服器",
|
"serverRequired": "需要伺服器",
|
||||||
"sessionExpiredError": "工作階段已過期",
|
"sessionExpiredError": "您的工作階段已過期",
|
||||||
"systemFontError": "嘗試取得系統字型時出現錯誤",
|
"systemFontError": "嘗試取得系統字型時發生了錯誤",
|
||||||
"serverNotSelectedError": "未選擇伺服器",
|
"serverNotSelectedError": "未選擇伺服器",
|
||||||
"mpvRequired": "需要 MPV",
|
"mpvRequired": "需要 MPV",
|
||||||
"playbackError": "無法播放媒體",
|
"playbackError": "嘗試播放媒體時發生了錯誤",
|
||||||
"badAlbum": "您看到此頁面是因為這首歌不是專輯的一部分。如果您的音樂資料夾頂層有一首歌,則很可能會看到此問題。 Jellyfin 僅將資料夾中的曲目分組",
|
"badAlbum": "您看到此頁面是因為這首歌不是專輯的一部分。如果您的音樂資料夾頂層有一首歌,則很可能會看到此問題。 Jellyfin 僅會將資料夾中的曲目分組",
|
||||||
"badValue": "無效選項「{{value}}」。該值不再存在",
|
"badValue": "無效選項「{{value}}」。該值不再存在",
|
||||||
"networkError": "發生網路錯誤",
|
"networkError": "發生了網路錯誤",
|
||||||
"notificationDenied": "通知權限被拒絕。此設定無效",
|
"notificationDenied": "通知權限被拒絕。此設定無影響",
|
||||||
"openError": "無法開啟檔案",
|
"openError": "無法開啟檔案",
|
||||||
"multipleServerSaveQueueError": "播放佇列中包含不是來自目前伺服器的歌曲,此操作不受支援",
|
"multipleServerSaveQueueError": "播放佇列中包含了並非來自當前伺服器的歌曲。此操作不受支援",
|
||||||
"saveQueueFailed": "儲存播放佇列失敗",
|
"saveQueueFailed": "儲存播放佇列失敗",
|
||||||
"settingsSyncError": "偵測到渲染器與主程式之間的設定不一致,請重新啟動應用程式以套用變更",
|
"settingsSyncError": "偵測到渲染器與主程式之間的設定不一致。請重新啟動應用程式以套用變更",
|
||||||
"noNetwork": "伺服器無法連線",
|
"noNetwork": "伺服器不可用",
|
||||||
"noNetworkDescription": "無法連接到此伺服器",
|
"noNetworkDescription": "無法連線至此伺服器",
|
||||||
"invalidJson": "無效的 JSON",
|
"invalidJson": "無效的 JSON",
|
||||||
"serverLockSingleServer": "當伺服器鎖定時只允許一個伺服器",
|
"serverLockSingleServer": "當伺服器鎖定時只允許一個伺服器",
|
||||||
"playbackPausedDueToError": "發生錯誤,已停止播放"
|
"playbackPausedDueToError": "播放因錯誤而暫停"
|
||||||
},
|
},
|
||||||
"page": {
|
"page": {
|
||||||
"contextMenu": {
|
"contextMenu": {
|
||||||
@@ -269,7 +269,7 @@
|
|||||||
"transcoding": "轉碼",
|
"transcoding": "轉碼",
|
||||||
"discord": "Discord",
|
"discord": "Discord",
|
||||||
"queryBuilder": "查詢建構器",
|
"queryBuilder": "查詢建構器",
|
||||||
"playerFilters": "播放過濾器",
|
"playerFilters": "播放篩選器",
|
||||||
"logger": "日誌記錄器",
|
"logger": "日誌記錄器",
|
||||||
"lyricsDisplay": "歌詞顯示"
|
"lyricsDisplay": "歌詞顯示"
|
||||||
},
|
},
|
||||||
@@ -713,7 +713,7 @@
|
|||||||
"followCurrentSong_description": "自動將播放佇列捲動至當前播放的歌曲",
|
"followCurrentSong_description": "自動將播放佇列捲動至當前播放的歌曲",
|
||||||
"followCurrentSong": "跟隨當前歌曲",
|
"followCurrentSong": "跟隨當前歌曲",
|
||||||
"playerbarSlider_description": "不建議在速度緩慢或計費的網路下使用波形",
|
"playerbarSlider_description": "不建議在速度緩慢或計費的網路下使用波形",
|
||||||
"playerFilters": "從佇列中過濾歌曲",
|
"playerFilters": "從佇列中篩選歌曲",
|
||||||
"playerFilters_description": "根據以下條件,排除要新增至佇列中的歌曲",
|
"playerFilters_description": "根據以下條件,排除要新增至佇列中的歌曲",
|
||||||
"autoDJ": "Auto DJ",
|
"autoDJ": "Auto DJ",
|
||||||
"autoDJ_itemCount": "項目數量",
|
"autoDJ_itemCount": "項目數量",
|
||||||
@@ -764,7 +764,7 @@
|
|||||||
"sidebarPlaylistSorting_description": "允許在側邊欄中使用拖放手動對播放清單進行排序,而不是預設的伺服器排序",
|
"sidebarPlaylistSorting_description": "允許在側邊欄中使用拖放手動對播放清單進行排序,而不是預設的伺服器排序",
|
||||||
"sidebarPlaylistListFilterRegex_description": "在側邊欄中隱藏與此正規表達式匹配的播放清單",
|
"sidebarPlaylistListFilterRegex_description": "在側邊欄中隱藏與此正規表達式匹配的播放清單",
|
||||||
"sidebarPlaylistListFilterRegex_placeholder": "範例: ^daily mix.*",
|
"sidebarPlaylistListFilterRegex_placeholder": "範例: ^daily mix.*",
|
||||||
"sidebarPlaylistListFilterRegex": "播放清單過濾器正規表達式",
|
"sidebarPlaylistListFilterRegex": "播放清單篩選器正規表達式",
|
||||||
"blurExplicitImages": "模糊露骨圖片",
|
"blurExplicitImages": "模糊露骨圖片",
|
||||||
"blurExplicitImages_description": "標記為露骨的專輯和歌曲封面將被模糊",
|
"blurExplicitImages_description": "標記為露骨的專輯和歌曲封面將被模糊",
|
||||||
"releaseChannel_optionAlpha": "Alpha (每日建構版)",
|
"releaseChannel_optionAlpha": "Alpha (每日建構版)",
|
||||||
@@ -888,7 +888,7 @@
|
|||||||
"size": "$t(common.size)",
|
"size": "$t(common.size)",
|
||||||
"title": "$t(common.title)",
|
"title": "$t(common.title)",
|
||||||
"titleCombined": "$t(common.title)(合併)",
|
"titleCombined": "$t(common.title)(合併)",
|
||||||
"trackNumber": "曲目編號",
|
"trackNumber": "曲目",
|
||||||
"year": "$t(common.year)",
|
"year": "$t(common.year)",
|
||||||
"rating": "$t(common.rating)",
|
"rating": "$t(common.rating)",
|
||||||
"codec": "$t(common.codec)",
|
"codec": "$t(common.codec)",
|
||||||
@@ -931,7 +931,7 @@
|
|||||||
"bpm": "BPM",
|
"bpm": "BPM",
|
||||||
"songCount": "曲目",
|
"songCount": "曲目",
|
||||||
"title": "標題",
|
"title": "標題",
|
||||||
"trackNumber": "曲目編號",
|
"trackNumber": "曲目",
|
||||||
"size": "大小",
|
"size": "大小",
|
||||||
"codec": "編解碼器",
|
"codec": "編解碼器",
|
||||||
"owner": "擁有者",
|
"owner": "擁有者",
|
||||||
@@ -998,19 +998,19 @@
|
|||||||
"genreWithCount_other": "{{count}} 種曲風",
|
"genreWithCount_other": "{{count}} 種曲風",
|
||||||
"playlist_other": "播放清單",
|
"playlist_other": "播放清單",
|
||||||
"playlistWithCount_other": "{{count}} 個播放清單",
|
"playlistWithCount_other": "{{count}} 個播放清單",
|
||||||
"smartPlaylist": "智慧$t(entity.playlist, {\"count\": 1})",
|
"smartPlaylist": "智慧 $t(entity.playlist, {\"count\": 1})",
|
||||||
"track_other": "曲目",
|
"track_other": "曲目",
|
||||||
"trackWithCount_other": "{{count}} 首曲目",
|
"trackWithCount_other": "{{count}} 個曲目",
|
||||||
"albumWithCount_other": "{{count}} 張專輯",
|
"albumWithCount_other": "{{count}} 張專輯",
|
||||||
"play_other": "{{count}}次播放",
|
"play_other": "{{count}} 次播放",
|
||||||
"song_other": "歌曲",
|
"song_other": "歌曲",
|
||||||
"radioStation_other": "電台",
|
"radioStation_other": "電台",
|
||||||
"radioStationWithCount_other": "{{count}} 個電台"
|
"radioStationWithCount_other": "{{count}} 個電台"
|
||||||
},
|
},
|
||||||
"filter": {
|
"filter": {
|
||||||
"albumCount": "$t(entity.album, {\"count\": 2})數",
|
"albumCount": "$t(entity.album, {\"count\": 2}) 數",
|
||||||
"artist": "$t(entity.artist, {\"count\": 1})",
|
"artist": "$t(entity.artist, {\"count\": 1})",
|
||||||
"biography": "個人簡介",
|
"biography": "簡介",
|
||||||
"bitrate": "位元率",
|
"bitrate": "位元率",
|
||||||
"bpm": "BPM",
|
"bpm": "BPM",
|
||||||
"channels": "$t(common.channel, {\"count\": 2})",
|
"channels": "$t(common.channel, {\"count\": 2})",
|
||||||
@@ -1023,14 +1023,14 @@
|
|||||||
"id": "ID",
|
"id": "ID",
|
||||||
"fromYear": "從年份",
|
"fromYear": "從年份",
|
||||||
"genre": "$t(entity.genre, {\"count\": 1})",
|
"genre": "$t(entity.genre, {\"count\": 1})",
|
||||||
"isCompilation": "為合輯",
|
"isCompilation": "是否為合輯",
|
||||||
"isFavorited": "已收藏",
|
"isFavorited": "是否為收藏",
|
||||||
"isPublic": "已公開",
|
"isPublic": "是否為公開",
|
||||||
"isRated": "已評分",
|
"isRated": "是否已評分",
|
||||||
"name": "名稱",
|
"name": "名稱",
|
||||||
"note": "注釋",
|
"note": "注釋",
|
||||||
"isRecentlyPlayed": "最近播放過",
|
"isRecentlyPlayed": "是否最近播放過",
|
||||||
"lastPlayed": "上次播放過",
|
"lastPlayed": "上次播放",
|
||||||
"mostPlayed": "播放最多",
|
"mostPlayed": "播放最多",
|
||||||
"owner": "$t(common.owner)",
|
"owner": "$t(common.owner)",
|
||||||
"path": "路徑",
|
"path": "路徑",
|
||||||
@@ -1048,7 +1048,7 @@
|
|||||||
"releaseYear": "發行年份",
|
"releaseYear": "發行年份",
|
||||||
"search": "搜尋",
|
"search": "搜尋",
|
||||||
"title": "標題",
|
"title": "標題",
|
||||||
"toYear": "從年份",
|
"toYear": "至年份",
|
||||||
"trackNumber": "曲目",
|
"trackNumber": "曲目",
|
||||||
"explicitStatus": "$t(common.explicitStatus)",
|
"explicitStatus": "$t(common.explicitStatus)",
|
||||||
"sortName": "排序名稱",
|
"sortName": "排序名稱",
|
||||||
@@ -1102,7 +1102,7 @@
|
|||||||
"title": "查詢編輯器",
|
"title": "查詢編輯器",
|
||||||
"addRuleGroup": "新增規則群組",
|
"addRuleGroup": "新增規則群組",
|
||||||
"removeRuleGroup": "移除規則群組",
|
"removeRuleGroup": "移除規則群組",
|
||||||
"resetToDefault": "恢復為預設值",
|
"resetToDefault": "重置為預設",
|
||||||
"clearFilters": "清除篩選"
|
"clearFilters": "清除篩選"
|
||||||
},
|
},
|
||||||
"updateServer": {
|
"updateServer": {
|
||||||
@@ -1143,8 +1143,8 @@
|
|||||||
"input_genre": "$t(entity.genre, {\"count\": 1})",
|
"input_genre": "$t(entity.genre, {\"count\": 1})",
|
||||||
"input_limit": "多少曲目?",
|
"input_limit": "多少曲目?",
|
||||||
"input_minYear": "起始年份",
|
"input_minYear": "起始年份",
|
||||||
"input_maxYear": "結束年份",
|
"input_maxYear": "至年份",
|
||||||
"input_played": "播放過濾器",
|
"input_played": "播放篩選器",
|
||||||
"input_played_optionAll": "所有曲目",
|
"input_played_optionAll": "所有曲目",
|
||||||
"input_played_optionUnplayed": "僅未播放的曲目",
|
"input_played_optionUnplayed": "僅未播放的曲目",
|
||||||
"input_played_optionPlayed": "僅播放過的曲目",
|
"input_played_optionPlayed": "僅播放過的曲目",
|
||||||
@@ -1381,7 +1381,7 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"systemAudioCaptureFailed": "無法開始擷取:{{message}}",
|
"systemAudioCaptureFailed": "無法開始擷取:{{message}}",
|
||||||
"systemAudioNoAudioTrack": "沒有回傳任何音軌。確保在提示時啟用音訊擷取。",
|
"systemAudioNoAudioTrack": "沒有回傳任何曲目。確保在提示時啟用音訊擷取。",
|
||||||
"systemAudioConsentAllow": "允許",
|
"systemAudioConsentAllow": "允許",
|
||||||
"systemAudioConsentBody": "此視覺化器需要存取系統音訊才能運作",
|
"systemAudioConsentBody": "此視覺化器需要存取系統音訊才能運作",
|
||||||
"systemAudioConsentDecline": "拒絕",
|
"systemAudioConsentDecline": "拒絕",
|
||||||
|
|||||||
@@ -72,7 +72,7 @@ export const orderSearchResults = (args: {
|
|||||||
|
|
||||||
searchResults = Array.from(combinedResults.values());
|
searchResults = Array.from(combinedResults.values());
|
||||||
} else {
|
} else {
|
||||||
searchResults = fuse.search<InternetProviderLyricSearchResponse>({
|
searchResults = fuse.search({
|
||||||
...(params.artist && { artist: params.artist }),
|
...(params.artist && { artist: params.artist }),
|
||||||
...(params.name && { name: params.name }),
|
...(params.name && { name: params.name }),
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -224,25 +224,26 @@ export const PlaylistQueryEditor = ({
|
|||||||
return detailQuery?.data?.rules?.order || 'asc';
|
return detailQuery?.data?.rules?.order || 'asc';
|
||||||
}, [detailQuery?.data?.rules?.order, detailQuery?.data?.rules?.sort]);
|
}, [detailQuery?.data?.rules?.order, detailQuery?.data?.rules?.sort]);
|
||||||
|
|
||||||
|
const appliedQuery = appliedJsonState?.query;
|
||||||
|
const detailQueryRules = detailQuery?.data?.rules;
|
||||||
const effectiveQuery = useMemo(
|
const effectiveQuery = useMemo(
|
||||||
() =>
|
() =>
|
||||||
appliedJsonState?.query ??
|
appliedQuery ??
|
||||||
(detailQuery?.data?.rules?.all
|
(detailQueryRules?.all
|
||||||
? { all: detailQuery.data.rules.all }
|
? { all: detailQueryRules.all }
|
||||||
: detailQuery?.data?.rules?.any
|
: detailQueryRules?.any
|
||||||
? { any: detailQuery.data.rules.any }
|
? { any: detailQueryRules.any }
|
||||||
: detailQuery?.data?.rules),
|
: detailQueryRules),
|
||||||
[appliedJsonState?.query, detailQuery?.data?.rules],
|
[appliedQuery, detailQueryRules],
|
||||||
);
|
);
|
||||||
const effectiveLimit = appliedJsonState?.limit ?? detailQuery?.data?.rules?.limit;
|
const effectiveLimit = appliedJsonState?.limit ?? detailQuery?.data?.rules?.limit;
|
||||||
const effectiveLimitPercent =
|
const effectiveLimitPercent =
|
||||||
appliedJsonState?.limitPercent ?? detailQuery?.data?.rules?.limitPercent;
|
appliedJsonState?.limitPercent ?? detailQuery?.data?.rules?.limitPercent;
|
||||||
|
|
||||||
|
const appliedSort = appliedJsonState?.sort;
|
||||||
const effectiveSortBy = useMemo(
|
const effectiveSortBy = useMemo(
|
||||||
() =>
|
() => (appliedSort ? [appliedSort] : parseSortBy()) as SongListSort | SongListSort[],
|
||||||
(appliedJsonState?.sort ? [appliedJsonState.sort] : parseSortBy()) as
|
[appliedSort, parseSortBy],
|
||||||
| SongListSort
|
|
||||||
| SongListSort[],
|
|
||||||
[appliedJsonState?.sort, parseSortBy],
|
|
||||||
);
|
);
|
||||||
const effectiveSortOrder = appliedJsonState?.sort
|
const effectiveSortOrder = appliedJsonState?.sort
|
||||||
? appliedJsonState.sort.startsWith('-')
|
? appliedJsonState.sort.startsWith('-')
|
||||||
|
|||||||
@@ -298,6 +298,7 @@ export const useServerAuthenticated = () => {
|
|||||||
await new Promise((resolve) => setTimeout(resolve, NETWORK_RETRY_DELAY_MS));
|
await new Promise((resolve) => setTimeout(resolve, NETWORK_RETRY_DELAY_MS));
|
||||||
|
|
||||||
// Retry authentication
|
// Retry authentication
|
||||||
|
// eslint-disable-next-line react-hooks/immutability
|
||||||
return authenticateServer(serverWithAuth, nextRetry);
|
return authenticateServer(serverWithAuth, nextRetry);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -189,7 +189,7 @@ const appRouterModals = {
|
|||||||
|
|
||||||
export const AppRouter = () => {
|
export const AppRouter = () => {
|
||||||
const router = (
|
const router = (
|
||||||
<HashRouter unstable_useTransitions={false}>
|
<HashRouter>
|
||||||
<ModalsProvider modals={appRouterModals}>
|
<ModalsProvider modals={appRouterModals}>
|
||||||
<RouterErrorBoundary>
|
<RouterErrorBoundary>
|
||||||
<Routes>
|
<Routes>
|
||||||
|
|||||||
Reference in New Issue
Block a user