Compare commits

...

490 Commits

Author SHA1 Message Date
jeffvli e6cfafc442 update workflow on branch as well 2026-03-13 16:40:22 -07:00
jeffvli 4e45e60e29 Revert "bump electron-builder for pnpm v10.3 ( #1796)"
This reverts commit accc6e53f0.
2026-03-13 16:33:56 -07:00
jeffvli ecda918b46 update to v1.8.0 2026-03-09 21:53:26 -07:00
Tarulia 93834788b5 use electron-builder's static AppImage runtime (#1816)
electron-builder added compatibility with the AppImage Type2 runtime
(i.e. FUSE-less runtime). However, this is - for now anyway - an opt-in
feature, which this commit enables.
2026-03-09 21:52:48 -07:00
jeffvli 66e7b44d75 add client-side sort to artist favorite songs (#1691) 2026-03-09 20:58:02 -07:00
jeffvli 8825fc1e84 unhide image on error on libraryheader 2026-03-09 20:49:02 -07:00
jeffvli ac0cc19c04 prefer artistInfo artist image 2026-03-09 20:49:02 -07:00
jeffvli de29465b1f enable skeleton animations by default 2026-03-09 20:49:02 -07:00
jeffvli 31a201ca32 rewrite Image component
- remove react-image dependency
- use manual blob load
- abort load when exiting viewport
2026-03-09 20:49:02 -07:00
Hosted Weblate 3644ea2969 Update translation files
Updated by "Remove blank strings" hook in Weblate.

Translated using Weblate

Currently translated at 100.0% (1175 of 1175 strings) (Czech)
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/cs/

Translated using Weblate

Currently translated at 100.0% (1175 of 1175 strings) (Spanish)
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/es/

Translated using Weblate

Currently translated at 98.2% (1155 of 1175 strings) (French)
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/fr/

Co-authored-by: Fjuro <fjuro@users.noreply.hosted.weblate.org>
Co-authored-by: Fordas <fordas15@gmail.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: KosmoMoustache <kosmomoustache@users.noreply.hosted.weblate.org>
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/
Translation: feishin/Translation
2026-03-10 03:08:35 +01:00
ashe e46c61e026 Remote URL hardcoding compatibility (#1810)
* Remote URL compatibility
---------

Co-authored-by: jeffvli <jeffvictorli@gmail.com>
2026-03-09 19:08:28 -07:00
Oliver Tzeng 3873218e94 fix translated zh-Hant and zh-Hans (#1807) 2026-03-09 17:08:07 -07:00
Jeff b4a61cbd6e use ad-hoc code signing for macOS build, disable hardenedRuntime (#1815) 2026-03-09 17:05:12 -07:00
jeffvli accc6e53f0 bump electron-builder for pnpm v10.3 ( #1796) 2026-03-09 12:54:32 -07:00
jeffvli adf48decc4 run PR publish on electron-builder config changes 2026-03-09 09:52:42 -07:00
jeffvli 49ff928414 refactor artist header to better handle artist image from info endpoint 2026-03-09 01:54:04 -07:00
Hosted Weblate 71efd4a6d7 Translated using Weblate
Currently translated at 97.8% (1149 of 1174 strings) (Chinese (Simplified Han script))
Translation: feishin/Translation
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/zh_Hans/

Co-authored-by: 無情天 <kofzhanganguo@126.com>
2026-03-09 09:38:55 +01:00
jeffvli 01e4907295 update to v1.7.0 2026-03-09 01:36:19 -07:00
jeffvli 6a47e99680 add manual update notice for macOS, disable autoinstall (#1725) 2026-03-09 01:31:33 -07:00
jeffvli 078d8068e0 fix file path replacement to handle both add/replace (#1749) 2026-03-09 00:55:13 -07:00
jeffvli 58ae76ce2a use album order on artist page for queue add (#1754) 2026-03-09 00:47:55 -07:00
jeffvli bc6cd5b014 refactor grid columns internally into album artist sections to handle null cases 2026-03-08 22:15:54 -07:00
jeffvli 17deac8d65 decouple AlbumArtistInfo from AlbumArtistDetail (#1809) 2026-03-08 22:06:18 -07:00
jeffvli 7dbf8dd9fe add conditional render to queue/lyric state on mobile player (#1797) 2026-03-08 21:06:22 -07:00
Hosted Weblate 27ab9f89c9 Translated using Weblate
Currently translated at 100.0% (1174 of 1174 strings) (Spanish)
Translation: feishin/Translation
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/es/

Translated using Weblate

Currently translated at 100.0% (1174 of 1174 strings) (Czech)
Translation: feishin/Translation
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/cs/

Co-authored-by: Fjuro <fjuro@users.noreply.hosted.weblate.org>
Co-authored-by: Fordas <fordas15@gmail.com>
2026-03-08 13:09:50 +00:00
jeffvli 602808c742 directly replace playlist rules on save and replace 2026-03-07 21:18:55 -08:00
jeffvli c1051956ad add size to album detail header 2026-03-07 20:25:04 -08:00
York 6d2c084355 fix: sleep timer end-of-song mode (#1706) 2026-03-07 20:23:19 -08:00
Hosted Weblate 6e3f0f2253 Translated using Weblate
Currently translated at 100.0% (1174 of 1174 strings) (Chinese (Traditional Han script))
Translation: feishin/Translation
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/zh_Hant/

Co-authored-by: York <goog10216922@gmail.com>
2026-03-07 10:09:54 +01:00
jeffvli d3d3688d60 add Symbola font for explicit status indicator 2026-03-07 00:50:00 -08:00
Kendall Garner 49c28299af remove package.lock, make lint happy 2026-03-06 21:04:51 -08:00
Kendall Garner 0bb6fea3db don't assume server exists in enable either 2026-03-06 20:59:13 -08:00
Kendall Garner 7027084394 fix(autosave): server isn't guaranteed to exist 2026-03-06 20:52:41 -08:00
Kendall Garner 7c4cbaad9a feat(player): add server-side autosave capability 2026-03-06 20:01:35 -08:00
jeffvli e603048a80 add settings override with env variables 2026-03-06 19:32:38 -08:00
jeffvli 9e08157517 add has_rating filter for Navidrome song list 2026-03-06 18:03:14 -08:00
Hosted Weblate d4c2b1e914 Translated using Weblate
Currently translated at 84.1% (985 of 1170 strings) (Japanese)
Translation: feishin/Translation
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/ja/

Co-authored-by: UnknownExplorer13 <kyedylanfenton@gmail.com>
2026-03-06 19:09:49 +00:00
Hosted Weblate 65dd67ec96 Translated using Weblate
Currently translated at 100.0% (1170 of 1170 strings) (Chinese (Traditional Han script))
Translation: feishin/Translation
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/zh_Hant/

Co-authored-by: linger <linger0517@gmail.com>
2026-03-06 12:09:50 +00:00
Hosted Weblate 76259309af Translated using Weblate
Currently translated at 74.7% (875 of 1170 strings) (Finnish)
Translation: feishin/Translation
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/fi/

Co-authored-by: jonoafi <joona@jonottaa.com>
2026-03-06 00:09:53 +01:00
Hosted Weblate 3e5a9db279 Translated using Weblate
Currently translated at 100.0% (1170 of 1170 strings) (Spanish)
Translation: feishin/Translation
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/es/

Translated using Weblate

Currently translated at 100.0% (1170 of 1170 strings) (Polish)
Translation: feishin/Translation
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/pl/

Translated using Weblate

Currently translated at 100.0% (1170 of 1170 strings) (Czech)
Translation: feishin/Translation
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/cs/

Co-authored-by: Fjuro <fjuro@users.noreply.hosted.weblate.org>
Co-authored-by: Fordas <fordas15@gmail.com>
Co-authored-by: skajmer <skajmer@protonmail.com>
2026-03-05 15:09:54 +00:00
Hosted Weblate c155bbdb37 Translated using Weblate
Currently translated at 100.0% (1169 of 1169 strings) (Indonesian)
Translation: feishin/Translation
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/id/

Co-authored-by: Arif Budiman <arifpedia@gmail.com>
2026-03-05 07:39:54 +01:00
jeffvli ecbc03f052 add dummy onErrorPause handler for radio player 2026-03-04 22:39:46 -08:00
jeffvli 6ef9efc8bf add 10s retry for playback on network err (#1779) 2026-03-04 22:32:33 -08:00
jeffvli 513e9e822d attempt to fix viewport size for mobile browsers (#1787) 2026-03-04 21:51:04 -08:00
jeffvli dbc215c44f add toggle visibility behavior to tray icon (#1793) 2026-03-04 21:38:11 -08:00
jeffvli 43c5cf4275 fix primary color css variable to use new shade value 2026-03-04 21:26:47 -08:00
Benjamin 41f1f376bc feat: customizable item layout on fullscreen player (#1769)
* change container display to release type, readd badge styling to improve contrast

* make everything customizable
2026-03-04 21:23:14 -08:00
jeffvli cad7fef454 add type assertion for primaryShade 2026-03-04 21:01:56 -08:00
jeffvli 93791aea15 add setting to override theme primary shade (#1791) 2026-03-04 20:58:30 -08:00
Hosted Weblate 884dcde289 Translated using Weblate
Currently translated at 67.2% (782 of 1163 strings) (Finnish)
Translation: feishin/Translation
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/fi/

Co-authored-by: Lauri Koo <late91@gmail.com>
2026-03-05 05:09:50 +01:00
Hosted Weblate 21f993a951 Translated using Weblate
Currently translated at 100.0% (1163 of 1163 strings) (Chinese (Traditional Han script))
Translation: feishin/Translation
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/zh_Hant/

Co-authored-by: linger <linger0517@gmail.com>
2026-03-04 05:09:49 +00:00
Hosted Weblate 4784228831 Translated using Weblate
Currently translated at 100.0% (1163 of 1163 strings) (Polish)
Translation: feishin/Translation
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/pl/

Co-authored-by: skajmer <skajmer@protonmail.com>
2026-03-03 21:09:48 +00:00
Hosted Weblate c6e3e0c07e Translated using Weblate
Currently translated at 100.0% (1163 of 1163 strings) (Spanish)
Translation: feishin/Translation
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/es/

Translated using Weblate

Currently translated at 100.0% (1163 of 1163 strings) (Czech)
Translation: feishin/Translation
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/cs/

Co-authored-by: Fjuro <fjuro@users.noreply.hosted.weblate.org>
Co-authored-by: Fordas <fordas15@gmail.com>
2026-03-03 15:09:50 +00:00
Kendall Garner 30685e7252 fix(subsonic): do favorite filter processing on artist favorite 2026-03-03 06:54:59 -08:00
Kendall Garner 12a398a65c fix(server selector): better handling for large server/folder list 2026-03-02 22:30:14 -08:00
Kendall Garner 71360e37de fix(favorites): filter favorite artists on favorite page for Jellyfin 2026-03-02 21:02:24 -08:00
Kendall Garner f99b8ea9ee feat(queue): add go to current button 2026-03-02 20:30:35 -08:00
Kendall Garner 2854b928f6 fix(player): handle items in the queue moved to next before current index 2026-03-02 20:05:01 -08:00
Hosted Weblate 14e1f1d003 Translated using Weblate
Currently translated at 73.7% (857 of 1162 strings) (Russian)
Translation: feishin/Translation
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/ru/

Translated using Weblate

Currently translated at 100.0% (1162 of 1162 strings) (Tamil)
Translation: feishin/Translation
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/ta/

Co-authored-by: Платон Петров <pplaton6@gmail.com>
Co-authored-by: தமிழ்நேரம் <tamilneram247@gmail.com>
2026-03-01 23:10:04 +01:00
Hosted Weblate 85c490bd06 Translated using Weblate
Currently translated at 100.0% (1162 of 1162 strings) (Chinese (Traditional Han script))
Translation: feishin/Translation
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/zh_Hant/

Co-authored-by: York <goog10216922@gmail.com>
2026-03-01 08:09:52 +01:00
Hosted Weblate 96d78f8bda Translated using Weblate
Currently translated at 44.6% (519 of 1162 strings) (Norwegian Bokmål)
Translation: feishin/Translation
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/nb_NO/

Co-authored-by: klodrik <klodrik@zoominn.no>
2026-02-28 14:09:50 +00:00
jeffvli 5f65aebe63 convert nd album rating filter to yes/no (#1775) 2026-02-27 19:30:33 -08:00
Hosted Weblate cd96da9cd5 Translated using Weblate
Currently translated at 100.0% (1162 of 1162 strings) (Polish)
Translation: feishin/Translation
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/pl/

Translated using Weblate

Currently translated at 100.0% (1162 of 1162 strings) (Czech)
Translation: feishin/Translation
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/cs/

Translated using Weblate

Currently translated at 100.0% (1162 of 1162 strings) (Spanish)
Translation: feishin/Translation
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/es/

Co-authored-by: Fjuro <fjuro@users.noreply.hosted.weblate.org>
Co-authored-by: Fordas <fordas15@gmail.com>
Co-authored-by: skajmer <skajmer@protonmail.com>
2026-02-27 23:09:53 +00:00
Hosted Weblate 674b66b682 Translated using Weblate
Currently translated at 84.6% (984 of 1162 strings) (Japanese)
Translation: feishin/Translation
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/ja/

Co-authored-by: karigane <169052233+karigane-cha@users.noreply.github.com>
2026-02-27 15:09:56 +01:00
jeffvli 934851456b prevent click propagation on detached queue button (#1762) 2026-02-27 00:53:09 -08:00
jeffvli afca396654 attempt to fix mpv autoNext behavior (#1768) 2026-02-27 00:39:27 -08:00
jeffvli b62f62671d fix table config drag and drop interaction on bottom edge 2026-02-26 20:59:28 -08:00
Norman eb8913479b Add album grouping column (#1722)
* Add album grouping column

---------

Co-authored-by: jeffvli <jeffvictorli@gmail.com>
2026-02-26 20:34:55 -08:00
Alexander Welsing 4918b412b2 Album radio (#1759)
* added album radio feature

---------

Co-authored-by: jeffvli <jeffvictorli@gmail.com>
2026-02-26 20:33:00 -08:00
jeffvli a78f5803a5 fix mediasession play hotkey on after pause on web (#1758)
- chrome (and other browsers) determine that the audio element is inactive if the volume is set to 0 when paused, leading to the resume (play) mediasession event to no longer be available
2026-02-26 01:11:24 -08:00
dependabot[bot] 0d1799cbf7 Bump the npm_and_yarn group across 1 directory with 6 updates (#1763)
Bumps the npm_and_yarn group with 6 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [axios](https://github.com/axios/axios) | `1.13.2` | `1.13.5` |
| [fast-xml-parser](https://github.com/NaturalIntelligence/fast-xml-parser) | `5.3.3` | `5.3.6` |
| [lodash](https://github.com/lodash/lodash) | `4.17.21` | `4.17.23` |
| [qs](https://github.com/ljharb/qs) | `6.14.1` | `6.14.2` |
| [minimatch](https://github.com/isaacs/minimatch) | `3.1.2` | `3.1.5` |
| [tar](https://github.com/isaacs/node-tar) | `6.2.1` | `7.5.9` |



Updates `axios` from 1.13.2 to 1.13.5
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
- [Commits](https://github.com/axios/axios/compare/v1.13.2...v1.13.5)

Updates `fast-xml-parser` from 5.3.3 to 5.3.6
- [Release notes](https://github.com/NaturalIntelligence/fast-xml-parser/releases)
- [Changelog](https://github.com/NaturalIntelligence/fast-xml-parser/blob/master/CHANGELOG.md)
- [Commits](https://github.com/NaturalIntelligence/fast-xml-parser/compare/v5.3.3...v5.3.6)

Updates `lodash` from 4.17.21 to 4.17.23
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.21...4.17.23)

Updates `qs` from 6.14.1 to 6.14.2
- [Changelog](https://github.com/ljharb/qs/blob/main/CHANGELOG.md)
- [Commits](https://github.com/ljharb/qs/compare/v6.14.1...v6.14.2)

Updates `minimatch` from 3.1.2 to 3.1.5
- [Changelog](https://github.com/isaacs/minimatch/blob/main/changelog.md)
- [Commits](https://github.com/isaacs/minimatch/compare/v3.1.2...v3.1.5)

Updates `tar` from 6.2.1 to 7.5.9
- [Release notes](https://github.com/isaacs/node-tar/releases)
- [Changelog](https://github.com/isaacs/node-tar/blob/main/CHANGELOG.md)
- [Commits](https://github.com/isaacs/node-tar/compare/v6.2.1...v7.5.9)

---
updated-dependencies:
- dependency-name: axios
  dependency-version: 1.13.5
  dependency-type: direct:production
  dependency-group: npm_and_yarn
- dependency-name: fast-xml-parser
  dependency-version: 5.3.6
  dependency-type: direct:production
  dependency-group: npm_and_yarn
- dependency-name: lodash
  dependency-version: 4.17.23
  dependency-type: direct:production
  dependency-group: npm_and_yarn
- dependency-name: qs
  dependency-version: 6.14.2
  dependency-type: direct:production
  dependency-group: npm_and_yarn
- dependency-name: minimatch
  dependency-version: 3.1.5
  dependency-type: indirect
  dependency-group: npm_and_yarn
- dependency-name: tar
  dependency-version: 7.5.9
  dependency-type: indirect
  dependency-group: npm_and_yarn
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-25 22:22:53 -08:00
jeffvli 438db40d0e remove audio prefix from subsonic contentType property 2026-02-25 22:22:13 -08:00
dependabot[bot] aca5e1fe87 Bump react-router in the npm_and_yarn group across 1 directory (#1534)
Bumps the npm_and_yarn group with 1 update in the / directory: [react-router](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router).


Updates `react-router` from 7.11.0 to 7.12.0
- [Release notes](https://github.com/remix-run/react-router/releases)
- [Changelog](https://github.com/remix-run/react-router/blob/main/packages/react-router/CHANGELOG.md)
- [Commits](https://github.com/remix-run/react-router/commits/react-router@7.12.0/packages/react-router)

---
updated-dependencies:
- dependency-name: react-router
  dependency-version: 7.12.0
  dependency-type: direct:production
  dependency-group: npm_and_yarn
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-25 22:06:26 -08:00
Tarulia 8aaf24ff87 Redo Icons in SVG (#1731)
Also includes exports from SVG for all relevant files:
- `assets/icons/` in 16-1024px size PNGs
- `assets/icons/icon.ico` using same sizes as the old one
- `assets/icons/` IconTemplate
- `media/` black and white logo-only variants
- `resource/icon.png`
2026-02-25 21:35:13 -08:00
Hosted Weblate 75dbea1ab7 Translated using Weblate
Currently translated at 100.0% (1160 of 1160 strings) (Catalan)
Translation: feishin/Translation
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/ca/

Co-authored-by: HUMET <ressaguer@proton.me>
2026-02-25 16:09:51 +00:00
jeffvli 61616dd2b9 move remote hook to global scope (#1752) 2026-02-24 00:45:43 -08:00
jeffvli ceef7964af add originalyear to smart playlist filters (#1746) 2026-02-24 00:34:07 -08:00
jeffvli ec12e89653 fix missing blur config from expanded album image 2026-02-23 23:48:56 -08:00
Hosted Weblate 386ca41a5d Translated using Weblate
Currently translated at 99.3% (1152 of 1160 strings) (French)
Translation: feishin/Translation
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/fr/

Co-authored-by: KosmoMoustache <kosmomoustache@users.noreply.hosted.weblate.org>
2026-02-24 01:09:49 +00:00
Hosted Weblate a8fd5a4f46 Translated using Weblate
Currently translated at 100.0% (1160 of 1160 strings) (Dutch)
Translation: feishin/Translation
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/nl/

Co-authored-by: bokse <weblate@bokse.nl>
2026-02-23 16:09:54 +01:00
Hosted Weblate 4590383a97 Translated using Weblate
Currently translated at 83.1% (964 of 1160 strings) (Japanese)
Translation: feishin/Translation
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/ja/

Translated using Weblate

Currently translated at 100.0% (1160 of 1160 strings) (Czech)
Translation: feishin/Translation
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/cs/

Co-authored-by: Fjuro <fjuro@users.noreply.hosted.weblate.org>
Co-authored-by: karigane <169052233+karigane-cha@users.noreply.github.com>
2026-02-22 14:09:50 +01:00
Hosted Weblate 405208cf92 Translated using Weblate
Currently translated at 97.8% (1135 of 1160 strings) (Chinese (Simplified Han script))
Translation: feishin/Translation
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/zh_Hans/

Co-authored-by: 無情天 <kofzhanganguo@126.com>
2026-02-22 00:09:48 +01:00
Hosted Weblate f19c37276a Translated using Weblate
Currently translated at 100.0% (1160 of 1160 strings) (Polish)
Translation: feishin/Translation
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/pl/

Co-authored-by: skajmer <skajmer@protonmail.com>
2026-02-21 15:09:49 +01:00
Hosted Weblate 3269034bfb Translated using Weblate
Currently translated at 88.9% (1032 of 1160 strings) (German)
Translation: feishin/Translation
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/de/

Translated using Weblate

Currently translated at 99.1% (1150 of 1160 strings) (French)
Translation: feishin/Translation
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/fr/

Translated using Weblate

Currently translated at 42.4% (492 of 1160 strings) (Norwegian Bokmål)
Translation: feishin/Translation
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/nb_NO/

Co-authored-by: KosmoMoustache <kosmomoustache@users.noreply.hosted.weblate.org>
Co-authored-by: PhillyMay <mein.alias@outlook.com>
Co-authored-by: klodrik <klodrik@zoominn.no>
2026-02-20 22:09:52 +00:00
Lyosha e5f99af43b Fix image resolution setting value checking (#1741) 2026-02-20 13:10:26 -08:00
Hosted Weblate 2866ca9537 Translated using Weblate
Currently translated at 100.0% (1160 of 1160 strings) (Spanish)
Translation: feishin/Translation
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/es/

Translated using Weblate

Currently translated at 40.6% (471 of 1160 strings) (Norwegian Bokmål)
Translation: feishin/Translation
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/nb_NO/

Translated using Weblate

Currently translated at 99.1% (1150 of 1160 strings) (French)
Translation: feishin/Translation
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/fr/

Co-authored-by: Fordas <fordas15@gmail.com>
Co-authored-by: KosmoMoustache <kosmomoustache@users.noreply.hosted.weblate.org>
Co-authored-by: klodrik <klodrik@zoominn.no>
2026-02-20 17:09:51 +00:00
Kendall Garner a377eae2f4 fix(build): do not add hash to favicon and assets 2026-02-20 08:48:36 -08:00
Hosted Weblate dbd8ce2380 Translated using Weblate
Currently translated at 100.0% (1160 of 1160 strings) (Chinese (Traditional Han script))
Translation: feishin/Translation
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/zh_Hant/

Co-authored-by: linger <linger0517@gmail.com>
2026-02-20 12:09:53 +01:00
Kendall Garner 0741351318 fix(share): only copy to clipboard if available and secure 2026-02-19 19:55:10 -08:00
Hosted Weblate ab9e02adfc Translated using Weblate
Currently translated at 39.6% (459 of 1158 strings) (Norwegian Bokmål)
Translation: feishin/Translation
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/nb_NO/

Co-authored-by: klodrik <klodrik@zoominn.no>
2026-02-19 19:09:47 +01:00
Kendall Garner 12ff690619 fix(window): recreate window on macos when closed but not quit 2026-02-18 21:50:44 -08:00
jeffvli 5039012fcb catch errors on desktop scrobble notification failure (#1723) 2026-02-18 20:54:31 -08:00
jeffvli 75af57a7b3 use correct player seek event for mpris updater (#1740) 2026-02-18 20:37:18 -08:00
jeffvli 9027eee99f fix lyrics type in player sidebar 2026-02-18 20:28:14 -08:00
jeffvli 50fe373f1e simplify lyrics implementation
- removes complex lyrics fetch and override logic, and instead uses a single query as a source of truth for the lyrics
- properly handles loading state, invalidation, and refetch
2026-02-18 20:25:52 -08:00
Alexander Welsing 2c546867a8 change "Fields" query parameter to array (#1733)
* change "Fields" query parameter to array

* platformToTarget.key() -> to array
2026-02-17 18:45:31 -08:00
Kendall Garner 9dad934a40 transcode player bar waveform 2026-02-17 14:30:26 -08:00
Hosted Weblate 34dbb4c794 Translated using Weblate
Currently translated at 77.2% (894 of 1158 strings) (Italian)
Translation: feishin/Translation
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/it/

Co-authored-by: Giuseppe Filomeno <giusefilo@gmail.com>
2026-02-17 19:10:04 +00:00
Hosted Weblate 7472af66ef Translated using Weblate
Currently translated at 99.3% (1150 of 1158 strings) (French)
Translation: feishin/Translation
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/fr/

Co-authored-by: KosmoMoustache <kosmomoustache@users.noreply.hosted.weblate.org>
2026-02-17 00:09:52 +01:00
Adam f293fb287d Add hook script to update and publish appstream metainfo on electron build (#1719) 2026-02-16 12:54:11 -08:00
libussa 7656e84c20 fix stale SERVER_URL when changing env var in Docker (#1714)
settings.js (which injects SERVER_URL into the browser) was served
without Cache-Control headers, causing Cloudflare and other reverse
proxies to cache the old value indefinitely. Additionally, when
SERVER_LOCK is enabled, the persisted server URL in localStorage was
never compared against the current window.SERVER_URL, so same-browser
sessions kept using the old server even after settings.js was updated.

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-16 12:44:29 -08:00
Kendall Garner c524e8d3b7 fix(left-controls): use joined artsts instead of array by artist id 2026-02-16 07:52:36 -08:00
Hosted Weblate 7f13ce491b Translated using Weblate
Currently translated at 92.0% (1066 of 1158 strings) (French)
Translation: feishin/Translation
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/fr/

Co-authored-by: Nicolas DERIVE <kalon33@ubuntu.com>
2026-02-16 15:09:54 +00:00
Hosted Weblate 6c16aabce0 Translated using Weblate
Currently translated at 88.3% (1023 of 1158 strings) (German)
Translation: feishin/Translation
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/de/

Co-authored-by: PhillyMay <mein.alias@outlook.com>
2026-02-15 13:10:11 +01:00
Hosted Weblate f5240b1766 Translated using Weblate
Currently translated at 78.7% (912 of 1158 strings) (German)
Translation: feishin/Translation
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/de/

Co-authored-by: PhillyMay <mein.alias@outlook.com>
2026-02-15 04:09:48 +01:00
Hosted Weblate cc5a95d725 Translated using Weblate
Currently translated at 100.0% (1158 of 1158 strings) (Chinese (Traditional Han script))
Translation: feishin/Translation
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/zh_Hant/

Translated using Weblate

Currently translated at 100.0% (1158 of 1158 strings) (Czech)
Translation: feishin/Translation
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/cs/

Co-authored-by: Fjuro <fjuro@users.noreply.hosted.weblate.org>
Co-authored-by: York <goog10216922@gmail.com>
2026-02-14 20:09:53 +01:00
Hosted Weblate 8ba63988d8 Translated using Weblate
Currently translated at 97.8% (1133 of 1158 strings) (Chinese (Simplified Han script))
Translation: feishin/Translation
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/zh_Hans/

Translated using Weblate

Currently translated at 100.0% (1158 of 1158 strings) (Spanish)
Translation: feishin/Translation
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/es/

Translated using Weblate

Currently translated at 100.0% (1158 of 1158 strings) (Polish)
Translation: feishin/Translation
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/pl/

Co-authored-by: Fordas <fordas15@gmail.com>
Co-authored-by: skajmer <skajmer@protonmail.com>
Co-authored-by: 無情天 <kofzhanganguo@126.com>
2026-02-14 15:09:49 +01:00
jeffvli 289f307a52 update to v1.6.0 2026-02-13 23:08:33 -08:00
jeffvli 91ac36c835 fix Subsonic root folder condition (#1686)
- some older subsonic servers used numeric ids which causes the rootFolderId regex to fail which resulted in the getFolder endpoint to always attempt to fetch the root
2026-02-13 23:03:24 -08:00
jeffvli 503e4b2bac fix list refresh not working on discography/genre pages 2026-02-13 21:38:12 -08:00
jeffvli c39ddc3b45 refactor PlaylistQueryEditor to new file 2026-02-13 21:05:37 -08:00
jeffvli 1163c4ad5e add JSON editor for playlist query builder (#1711) 2026-02-13 21:05:34 -08:00
jeffvli e497734c07 allow all rule groups to be empty (#1710) 2026-02-13 20:26:58 -08:00
Kendall Garner 77fef33cbf improve album artist favorite performance and search (#1709)
* improve album artist favorite performance and search

* adjust top songs / favorite songs sections

---------

Co-authored-by: jeffvli <jeffvictorli@gmail.com>
2026-02-13 20:13:28 -08:00
Hosted Weblate 81189db1e1 Translated using Weblate
Currently translated at 100.0% (1156 of 1156 strings) (Catalan)
Translation: feishin/Translation
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/ca/

Co-authored-by: HUMET <ressaguer@proton.me>
2026-02-14 03:46:02 +00:00
Maevi 054a3d005e Listen on IPv6 by default in docker image (#1707) 2026-02-13 19:45:55 -08:00
jeffvli dfbff64430 fix duplicate server add when SERVER_LOCK is configured (#1623) 2026-02-13 19:42:36 -08:00
jeffvli 2b4046a82e fix double click propagation on the table expand button 2026-02-13 17:49:49 -08:00
jeffvli 9eb879fc37 hide favorite / rating from playlist album view items 2026-02-13 17:39:35 -08:00
jeffvli 9e63ee2735 add loading spinners for some lazy loaded content 2026-02-13 15:04:54 -08:00
jeffvli 9950e51d45 remove lazy loading from context menu initialization 2026-02-13 15:01:18 -08:00
jeffvli 70fdd4bdc3 refactor album expansion to global scope 2026-02-13 14:59:15 -08:00
jeffvli e855f7dd01 remove invalid detail view type for song list config 2026-02-13 12:19:14 -08:00
jeffvli 123842dfda attempt to optimize the tagList query
- this query in some cases can return a very large amount of data, depending on the size of the user's library
- increasing the cacheTime reduces the frequency of fetches while disabling structuralSharing reduces the need for react-query to do a deep equality comparison for the cache
2026-02-13 11:53:42 -08:00
Hosted Weblate 1338513f82 Translated using Weblate
Currently translated at 100.0% (1156 of 1156 strings) (Czech)
Translation: feishin/Translation
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/cs/

Co-authored-by: Fjuro <fjuro@alius.cz>
2026-02-13 19:09:45 +01:00
Hosted Weblate c9c88dd82d Translated using Weblate
Currently translated at 100.0% (1156 of 1156 strings) (Chinese (Traditional Han script))
Translation: feishin/Translation
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/zh_Hant/

Translated using Weblate

Currently translated at 100.0% (1156 of 1156 strings) (Spanish)
Translation: feishin/Translation
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/es/

Co-authored-by: Fordas <fordas15@gmail.com>
Co-authored-by: York <goog10216922@gmail.com>
2026-02-13 14:09:48 +01:00
York 02a5395453 fix: regenerate macOS icon (.icns) to fix glitched small icons (#1705) 2026-02-13 00:15:12 -08:00
jeffvli 7ba2f6b827 fix removed filter functions 2026-02-12 22:04:08 -08:00
jeffvli f1b5dc8ef3 add additional client-side filters to playlist songs 2026-02-12 22:00:07 -08:00
Kendall Garner 78875572e9 add explicit blurring to left expanded image and full screen (#1701)
* add explicit blurring to left expanded image and full screen
2026-02-12 18:49:57 -08:00
jeffvli f487560ec5 fix vite web build again for hashed assets and PWA cache clear 2026-02-12 18:21:27 -08:00
jeffvli f752090c78 Revert "attempt fix for web/docker cache busting on new release"
This reverts commit 91e7c7434c.
2026-02-12 18:17:49 -08:00
jeffvli 96f5b2b82a Revert "fix vite web build to work with subpath"
This reverts commit 1a9f36ce9e.
2026-02-12 18:17:44 -08:00
jeffvli 80292ae579 fix alpha autoupdater logic to use correct config for latest 2026-02-12 18:17:08 -08:00
Hosted Weblate 1d156ac506 Translated using Weblate
Currently translated at 100.0% (1154 of 1154 strings) (Czech)
Translation: feishin/Translation
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/cs/

Co-authored-by: Fjuro <fjuro@alius.cz>
2026-02-13 00:09:58 +00:00
jeffvli dc5586f859 adjuat audioDevice description to remove web player disclaimer 2026-02-12 11:18:55 -08:00
jeffvli 1a9f36ce9e fix vite web build to work with subpath 2026-02-12 11:18:55 -08:00
York 203c8a6588 fix: restore original macOS squircle icon and regenerate icns properly (#1703) 2026-02-12 10:03:23 -08:00
Hosted Weblate 2e6cf8d869 Translated using Weblate
Currently translated at 100.0% (1154 of 1154 strings) (Spanish)
Translation: feishin/Translation
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/es/

Co-authored-by: Fordas <fordas15@gmail.com>
2026-02-12 17:09:48 +00:00
Hosted Weblate b1827dd352 Translated using Weblate
Currently translated at 100.0% (1154 of 1154 strings) (Polish)
Translation: feishin/Translation
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/pl/

Translated using Weblate

Currently translated at 100.0% (1154 of 1154 strings) (Chinese (Traditional Han script))
Translation: feishin/Translation
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/zh_Hant/

Co-authored-by: York <goog10216922@gmail.com>
Co-authored-by: skajmer <skajmer@protonmail.com>
2026-02-12 11:09:50 +01:00
jeffvli 0d2dddddbc fix invalid comparison on detail rating column hide condition 2026-02-12 01:40:01 -08:00
jeffvli 1d8e1957ba handle image drag from item detail list 2026-02-12 01:37:59 -08:00
jeffvli dc957cb3cc hide detail rating column on zero value 2026-02-12 00:57:24 -08:00
jeffvli c314fa0bf3 properly handle context menu in playlist album view 2026-02-12 00:54:45 -08:00
jeffvli c5ebfac647 fix playlist grid view itemType to PLAYLIST_SONG to support remove from playlist 2026-02-12 00:28:39 -08:00
jeffvli 4adea11a93 support select all hotkey in detail list view 2026-02-12 00:13:32 -08:00
Jeff e6f49b9f1f Add album view for playlists (#1700)
* update client side song ordering to include album order

* add compact styling to LibraryHeader

* move search button to top right of LibraryHeader
2026-02-11 21:48:25 -08:00
York 9cde569c7d Add option to show playing icon in Discord RPC (#1699)
* feat: add option to show playing/paused icon in Discord RPC
2026-02-11 21:14:58 -08:00
jeffvli 91e7c7434c attempt fix for web/docker cache busting on new release
- remove static asset filenames
- add cache clear config to PWA
- move PWA to base dir instead of assets
2026-02-11 20:52:28 -08:00
Yoshua Wakeham ffef5dfdee fix: actually show Jellyfin recently played songs carousel (#1697) 2026-02-11 20:35:23 -08:00
Kendall Garner 409dd69fcb reduce explicit indicator spacing slightly 2026-02-11 19:34:20 -08:00
Hosted Weblate 064cf5103a Translated using Weblate
Currently translated at 100.0% (1152 of 1152 strings)

Co-authored-by: Ondo <SparkyOndo@proton.me>
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/ca/
Translation: feishin/Translation
2026-02-11 23:09:47 +01:00
Hosted Weblate 7e3a613a93 Translated using Weblate
Currently translated at 100.0% (1152 of 1152 strings)

Translated using Weblate

Currently translated at 100.0% (1152 of 1152 strings)

Translated using Weblate

Currently translated at 99.9% (1151 of 1152 strings)

Co-authored-by: Fjuro <fjuro@alius.cz>
Co-authored-by: Fordas <fordas15@gmail.com>
Co-authored-by: skajmer <skajmer@protonmail.com>
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/cs/
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/es/
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/pl/
Translation: feishin/Translation
2026-02-11 16:09:52 +01:00
Hosted Weblate e7c49f6d67 Translated using Weblate
Currently translated at 36.6% (422 of 1152 strings)

Translated using Weblate

Currently translated at 33.5% (387 of 1152 strings)

Translated using Weblate

Currently translated at 100.0% (1152 of 1152 strings)

Translated using Weblate (Chinese (Simplified Han script))

Currently translated at 96.3% (1101 of 1143 strings)

Translated using Weblate (Ukrainian)

Currently translated at 32.1% (368 of 1143 strings)

Translated using Weblate (French)

Currently translated at 91.3% (1044 of 1143 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (1143 of 1143 strings)

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 100.0% (1143 of 1143 strings)

Co-authored-by: Fordas <fordas15@gmail.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Raphael <raphael.margueron@gmail.com>
Co-authored-by: York <goog10216922@gmail.com>
Co-authored-by: Yurii <04_hours.lambing@icloud.com>
Co-authored-by: linger <linger0517@gmail.com>
Co-authored-by: 無情天 <kofzhanganguo@126.com>
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/es/
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/fr/
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/uk/
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/zh_Hans/
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/zh_Hant/
Translation: feishin/Translation
2026-02-11 11:02:22 +01:00
jeffvli 022b83ab32 fix playlist add returning zero results on modal menu (#1695) 2026-02-11 00:35:22 -08:00
jeffvli 551d705ee1 adjust fixed-width columns on the Item Detail list and prevent text wrapping 2026-02-10 21:52:22 -08:00
jeffvli 83f73c7fa9 remove unused enableAnimation from ImageContainer 2026-02-10 21:46:54 -08:00
York cc8cb4f4f1 Add sleep timer to player bar (#1671)
* feat: add sleep timer to player bar

- Add sleep timer button in player bar right controls
- Preset options: End of song, 5/10/15/30/45 min, 1 hr, 2 hrs
- Custom timer with HH:MM:SS input fields
- Timer only counts down while music is playing
- Timer pauses playback when it expires
- End-of-song mode pauses at the next track change
- Uses theme-aware styling (--theme-colors-surface)
- Add sleepTimer/sleepTimerOff icons (LuTimer/LuTimerOff)
- Add i18n strings for sleep timer UI

---------

Co-authored-by: York <york@BonecharMac.local>
Co-authored-by: jeffvli <jeffvictorli@gmail.com>
2026-02-10 21:19:37 -08:00
York 496eab7d09 fix: regenerate macOS icon (.icns) to fix glitched small icons (#1688)
Co-authored-by: York <york@BonecharMac.local>
2026-02-10 21:11:10 -08:00
York 5197c967c2 fix: use theme mode property for macOS native window theme (#1685)
Co-authored-by: York <york@BonecharMac.local>
2026-02-10 21:09:32 -08:00
jeffvli 74b615dba7 include stable version check on alpha update 2026-02-10 20:20:37 -08:00
jeffvli b67ee797cb move arm64 build configuration to electron-builder config (#1689) 2026-02-10 19:25:26 -08:00
Hosted Weblate 4228084810 Update translation files
Updated by "Cleanup translation files" hook in Weblate.

Translated using Weblate (French)

Currently translated at 90.7% (1034 of 1139 strings)

Translated using Weblate (Ukrainian)

Currently translated at 29.0% (331 of 1139 strings)

Translated using Weblate (Danish)

Currently translated at 100.0% (1139 of 1139 strings)

Translated using Weblate (Ukrainian)

Currently translated at 26.5% (302 of 1139 strings)

Translated using Weblate (Ukrainian)

Currently translated at 22.0% (251 of 1139 strings)

Translated using Weblate (Danish)

Currently translated at 90.0% (1026 of 1139 strings)

Translated using Weblate (Danish)

Currently translated at 28.1% (321 of 1139 strings)

Translated using Weblate (Ukrainian)

Currently translated at 9.5% (109 of 1139 strings)

Translated using Weblate (Ukrainian)

Currently translated at 5.7% (66 of 1139 strings)

Translated using Weblate (Czech)

Currently translated at 100.0% (1139 of 1139 strings)

Translated using Weblate (Czech)

Currently translated at 99.7% (1136 of 1139 strings)

Translated using Weblate (Danish)

Currently translated at 4.8% (55 of 1139 strings)

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 100.0% (1139 of 1139 strings)

Translated using Weblate (Danish)

Currently translated at 0.4% (5 of 1139 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (1139 of 1139 strings)

Translated using Weblate (Polish)

Currently translated at 99.9% (1138 of 1139 strings)

Translated using Weblate (Czech)

Currently translated at 100.0% (1135 of 1135 strings)

Translated using Weblate (Dutch)

Currently translated at 99.8% (1133 of 1135 strings)

Translated using Weblate (Dutch)

Currently translated at 84.4% (959 of 1135 strings)

Translated using Weblate (Polish)

Currently translated at 100.0% (1135 of 1135 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (1135 of 1135 strings)

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 100.0% (1135 of 1135 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (1131 of 1131 strings)

Translated using Weblate (German)

Currently translated at 78.9% (893 of 1131 strings)

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 100.0% (1131 of 1131 strings)

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 92.7% (1047 of 1129 strings)

Translated using Weblate (Polish)

Currently translated at 100.0% (1129 of 1129 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (1129 of 1129 strings)

Translated using Weblate (Japanese)

Currently translated at 85.1% (961 of 1129 strings)

Translated using Weblate (Catalan)

Currently translated at 100.0% (1129 of 1129 strings)

Translated using Weblate (Polish)

Currently translated at 100.0% (1129 of 1129 strings)

Co-authored-by: Alexander Welsing <kontakt@a-wels.de>
Co-authored-by: Denisa Alicia Rissa <denisarissa@gmail.com>
Co-authored-by: Fjuro <fjuro@alius.cz>
Co-authored-by: Fordas <fordas15@gmail.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: KosmoMoustache <kosmomoustache@users.noreply.hosted.weblate.org>
Co-authored-by: Ondo <SparkyOndo@proton.me>
Co-authored-by: York <goog10216922@gmail.com>
Co-authored-by: Yurii <04_hours.lambing@icloud.com>
Co-authored-by: bokse <weblate@bokse.nl>
Co-authored-by: haha4ni <haha4ni@hotmail.com>
Co-authored-by: karigane <169052233+karigane-cha@users.noreply.github.com>
Co-authored-by: skajmer <skajmer@protonmail.com>
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/ca/
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/cs/
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/da/
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/de/
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/es/
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/fr/
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/ja/
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/nl/
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/pl/
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/uk/
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/zh_Hant/
Translation: feishin/Translation
2026-02-10 09:22:15 +01:00
jeffvli b514c7972d update to v1.5.0 2026-02-10 00:22:00 -08:00
jeffvli 83d9042a47 decouple playlist song sort order from search results (#1650) 2026-02-09 22:28:37 -08:00
jeffvli a28c403093 adjust wording and toggles for analytics/updates (#1654) 2026-02-09 22:19:49 -08:00
jeffvli 2927fa5ff7 set default font to Inter
- prefer to use monospace font due to new item detail columns
2026-02-09 22:00:46 -08:00
Jeff f39a7f8d6f Add album detail list view (#1681) 2026-02-09 21:56:08 -08:00
Kai Gritun 397610d8ab fix: remove duplicate CommandPalette in mobile layout (#1669)
The CommandPalette component was being rendered twice when in mobile view:
1. In ResponsiveLayout via LayoutHotkeys (which handles all layouts)
2. In MobileLayout directly

This caused two overlapping command menus to open when pressing Ctrl+K
in mobile view, with keyboard input going to the background menu.

The fix removes the duplicate CommandPalette from MobileLayout since
LayoutHotkeys already provides it for all layouts (both desktop and mobile).

Fixes #1666

Co-authored-by: Kai Gritun <kai@kaigritun.com>
2026-02-07 19:22:46 -08:00
Ahmed ElSayed fb170bb7c4 Add win-arm64 target (#1665) 2026-02-07 15:39:57 -08:00
Mateleo d93f6e8720 feat: enable scrobbling on song repeat and fix package name typo (#1662)
- Add `handleScrobbleFromRepeat` callback to reset scrobble state and send 'start' event when player repeats a song, ensuring accurate scrobbling in repeat mode.
- Fix typo in `web.vite.config.ts` by correcting '@tanstack_react-query-persist-client' to '@tanstack/react-query-persist-client' for proper package reference.
2026-02-07 15:25:29 -08:00
Martín González Gómez 668de93829 Open settings with shortcut (#1655)
* Open settings with shortcut. Also add settings to menubar.
2026-02-07 15:19:05 -08:00
jeffvli 7cecd859ae add mbzReleaseGroupId to Album type 2026-02-06 05:22:56 -08:00
jeffvli fea2966f62 refactor jellyfin field properties and include ProviderIds 2026-02-06 05:17:40 -08:00
jeffvli 6efa308e85 fix release channel input value 2026-02-06 04:13:53 -08:00
Pyx 82b50a60bc Implement Glassy Dark theme (#1388)
* implement theme

* refactor theme stylesheets to load inline to simplify vite bundling

* add missing css module scope name for web build

---------

Co-authored-by: jeffvli <jeffvictorli@gmail.com>
2026-02-06 02:01:32 -08:00
jeffvli f52c4f7900 fix alpha release notes to compare to development instead of alpha tag 2026-02-06 00:16:11 -08:00
jeffvli 2fb621993d rename electron-builder config to alpha instead of nightly 2026-02-05 23:52:38 -08:00
jeffvli cf663de2fc add handlers and setting for nightly release 2026-02-05 23:45:32 -08:00
jeffvli 65c215fa9c fix R2_ENDPOINT_URL reference 2026-02-05 20:58:15 -08:00
jeffvli 8af972c20b add nightly publish build 2026-02-05 20:48:05 -08:00
jeffvli 027e4046a2 handle radio metadata in discord rpc / fullscreen player (#1649) 2026-02-05 19:14:30 -08:00
jeffvli 4c256348fc add configuration to blur explicit album/song art 2026-02-04 01:20:31 -08:00
jeffvli 6e3275c05c add explicit / clean indicators for album and song titles (#1634) 2026-02-04 00:35:35 -08:00
Jake Klingler 3518a3f3b6 populate bit depth from jellyfin (#1648) 2026-02-04 00:10:28 -08:00
jeffvli 2b6b0cb38b fix artist favorite songs (subsonic) 2026-02-03 23:58:44 -08:00
jeffvli f56a836ffd add personal/community toggle for artist top songs (#1372) 2026-02-03 23:58:44 -08:00
jeffvli 2d963a9d23 use correct filters for album song sort options 2026-02-03 23:58:44 -08:00
rushii 4423b06807 fix(Settings): mpv path selector (#1641)
An unnecessary default value appears to be stringifying a Promise when a separate useEffect hook is supposed to properly load the setting value.
2026-02-03 22:56:09 -08:00
T 1f9223b476 Fix: ratings display on player bar and mobile player (#1646)
* fix(playerbar): use settings to display ratings

* fix(mobile player): use settings to display ratings
2026-02-03 22:50:43 -08:00
Alexander Welsing b4ecf5d257 Update instant mix to use the new items endpoint instead of songs (#1642)
songs/:itemId:/InstantMix -> items/:itemId/InstantMix
2026-02-03 22:34:34 -08:00
jeffvli 0dd13cbab1 add release notes modal to appmenu 2026-02-03 01:06:52 -08:00
jeffvli 48e50430fe add play button group to artist top / favorite song sections 2026-02-02 22:54:10 -08:00
jeffvli ac5611fdca add favorite songs section to artist page (#1604) 2026-02-02 22:23:38 -08:00
jeffvli 50c3dbc0a0 set first item of track radio to the triggering item 2026-02-02 21:18:29 -08:00
jeffvli ddd840d2df fix inconsistent size of musicbrainz icon on album page 2026-02-02 21:14:03 -08:00
jeffvli c0c9878fad add cors / ssl ignore switches to all login components (#1606) 2026-02-02 21:05:01 -08:00
jeffvli c4fc8a8aef fix overlayscrollbars init on loading state 2026-02-02 20:53:11 -08:00
Kendall Garner 0620b096db fix(mpv): only check player time when there is an item in the track (#1639) 2026-02-02 20:49:34 -08:00
Kendall Garner f998491beb fix(playlist): optimistically update rating for playlist song list 2026-02-02 20:48:44 -08:00
Damien Erambert 55a6ea4fca Prevent double fetching when force refreshing paginated views (#1637)
* Prevent double fetching when force refreshing paginated views

* remove await from infinite list loader query invalidation

* add mutation and loading state to list refresh

* add non-suspense query to list genre filters to add loading state

* remove list count data set on random queries

---------

Co-authored-by: jeffvli <jeffvictorli@gmail.com>
2026-02-02 20:25:19 -08:00
Damien Erambert 72fc5beb98 Use a re-usable Intl.Collator instance for locale compare when possible (#1638)
* Use a re-usable Intl.Collator instance for locale compare
2026-02-02 18:28:01 -08:00
jeffvli a45b607fe7 add Noto Sans Hebrew to default font configuration 2026-02-02 18:14:19 -08:00
jeffvli adfdf04240 update to v1.4.2 2026-02-02 01:45:02 -08:00
jeffvli faa7281993 add datetime to release notes 2026-02-02 01:45:02 -08:00
Hosted Weblate 2d0f4e7881 Translated using Weblate (Polish)
Currently translated at 99.9% (1128 of 1129 strings)

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 92.7% (1047 of 1129 strings)

Update translation files

Updated by "Remove blank strings" hook in Weblate.

Translated using Weblate (Chinese (Simplified Han script))

Currently translated at 97.6% (1102 of 1129 strings)

Translated using Weblate (Chinese (Simplified Han script))

Currently translated at 95.9% (1083 of 1129 strings)

Translated using Weblate (Chinese (Simplified Han script))

Currently translated at 90.5% (1022 of 1129 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: haha4ni <haha4ni@hotmail.com>
Co-authored-by: skajmer <skajmer@protonmail.com>
Co-authored-by: 無情天 <kofzhanganguo@126.com>
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/pl/
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/zh_Hans/
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/zh_Hant/
Translation: feishin/Translation
2026-02-02 10:44:51 +01:00
jeffvli ce9183ffd6 revert black background on visualizer container 2026-02-01 22:36:21 -08:00
jeffvli 3a5508653b add missing CrossfadeStyle types 2026-02-01 22:13:59 -08:00
jeffvli 7e4e28037c add typecheck to lint 2026-02-01 22:13:48 -08:00
Kendall Garner d2d8ea8249 misc type fixes, album artist header page favorite/rating work now 2026-02-01 22:04:46 -08:00
jeffvli ba835bec3e update to v1.4.1 2026-02-01 20:38:17 -08:00
jeffvli 9850874dfd support viewing up to 5 previous releases in the release notes modal 2026-02-01 20:37:51 -08:00
jeffvli 51a8285ba2 adjust fullscreen player z-indexes back
- the modal needs to appear above
- instead, move the titlebar controls z-index under the fullscreen players
2026-02-01 20:28:47 -08:00
jeffvli e12150d026 match Save as Collection popover width to its target 2026-02-01 20:26:02 -08:00
jeffvli 54bc241984 add Save as Collection button to the filters modal 2026-02-01 20:25:43 -08:00
jeffvli a698f83c45 fix butterchurn preset display not updating 2026-02-01 20:14:25 -08:00
jeffvli 854e7cc67e update to v1.4.0 2026-02-01 19:11:27 -08:00
Hosted Weblate c3920cbcc0 Translated using Weblate (Indonesian)
Currently translated at 100.0% (1126 of 1126 strings)

Translated using Weblate (Czech)

Currently translated at 100.0% (1126 of 1126 strings)

Translated using Weblate (Russian)

Currently translated at 73.3% (826 of 1126 strings)

Translated using Weblate (Russian)

Currently translated at 73.3% (826 of 1126 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (1126 of 1126 strings)

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 92.5% (1042 of 1126 strings)

Translated using Weblate (Japanese)

Currently translated at 85.3% (961 of 1126 strings)

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 92.2% (1039 of 1126 strings)

Translated using Weblate (Catalan)

Currently translated at 98.8% (1113 of 1126 strings)

Translated using Weblate (Arabic)

Currently translated at 10.0% (113 of 1126 strings)

Translated using Weblate (Swedish)

Currently translated at 33.6% (379 of 1126 strings)

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 91.6% (1032 of 1126 strings)

Translated using Weblate (Tamil)

Currently translated at 58.3% (657 of 1126 strings)

Translated using Weblate (Indonesian)

Currently translated at 56.1% (632 of 1126 strings)

Translated using Weblate (Korean)

Currently translated at 38.0% (428 of 1126 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 61.1% (689 of 1126 strings)

Translated using Weblate (Spanish)

Currently translated at 99.3% (1119 of 1126 strings)

Translated using Weblate (Polish)

Currently translated at 99.3% (1119 of 1126 strings)

Translated using Weblate (Italian)

Currently translated at 60.2% (678 of 1126 strings)

Translated using Weblate (Hungarian)

Currently translated at 81.9% (923 of 1126 strings)

Translated using Weblate (Basque)

Currently translated at 82.9% (934 of 1126 strings)

Translated using Weblate (Japanese)

Currently translated at 84.7% (954 of 1126 strings)

Translated using Weblate (Portuguese)

Currently translated at 36.6% (413 of 1126 strings)

Translated using Weblate (Norwegian Bokmål)

Currently translated at 36.3% (409 of 1126 strings)

Translated using Weblate (Serbian)

Currently translated at 44.4% (501 of 1126 strings)

Translated using Weblate (Slovenian)

Currently translated at 43.7% (493 of 1126 strings)

Translated using Weblate (Turkish)

Currently translated at 61.7% (695 of 1126 strings)

Translated using Weblate (Czech)

Currently translated at 99.3% (1119 of 1126 strings)

Translated using Weblate (Dutch)

Currently translated at 73.3% (826 of 1126 strings)

Translated using Weblate (Persian)

Currently translated at 44.8% (505 of 1126 strings)

Translated using Weblate (Slovak)

Currently translated at 59.6% (672 of 1126 strings)

Translated using Weblate (Chinese (Simplified Han script))

Currently translated at 85.5% (963 of 1126 strings)

Translated using Weblate (Finnish)

Currently translated at 62.5% (704 of 1126 strings)

Co-authored-by: Aitor Astorga <a.astorga.sdv@protonmail.com>
Co-authored-by: Alexander Temnikov <sachat2006@gmail.com>
Co-authored-by: Arif Budiman <arifpedia@gmail.com>
Co-authored-by: Aurora <arci@anche.no>
Co-authored-by: Darwin <daerwendeshu@outlook.com>
Co-authored-by: Fadilah Riczky <friczky@gmail.com>
Co-authored-by: Fjuro <fjuro@alius.cz>
Co-authored-by: Fordas <fordas15@gmail.com>
Co-authored-by: Hadi <xhopeter@proton.me>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Ilija <zojka2g@gmail.com>
Co-authored-by: Joao <joaohirasawaa@gmail.com>
Co-authored-by: Jonne Saloranta <saloranta.jonne@gmail.com>
Co-authored-by: Joren Vansteenkiste <vansteenkiste.joren@telenet.be>
Co-authored-by: Martin Stojanoski <martin.stojanoski2000@gmail.com>
Co-authored-by: Mattias <mattiasghodsian@gmail.com>
Co-authored-by: Mücahit Kaya <kaya-mucahit@outlook.com>
Co-authored-by: Ondo <SparkyOndo@proton.me>
Co-authored-by: WilliamNT <hwbendeguz@gmail.com>
Co-authored-by: York <goog10216922@gmail.com>
Co-authored-by: aorinngoDo <aorinngo@email.cz>
Co-authored-by: haha4ni <haha4ni@hotmail.com>
Co-authored-by: karigane <169052233+karigane-cha@users.noreply.github.com>
Co-authored-by: klodrik <klodrik@zoominn.no>
Co-authored-by: peter cerny <posli.to.semka@gmail.com>
Co-authored-by: skajmer <skajmer@protonmail.com>
Co-authored-by: ssantos <ssantos@web.de>
Co-authored-by: tgp0625 <tgp0625@naver.com>
Co-authored-by: xB <abxb19@gmail.com>
Co-authored-by: Роман <romkaeliseev@gmail.com>
Co-authored-by: தமிழ்நேரம் <tamilneram247@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/ar/
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/ca/
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/cs/
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/es/
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/eu/
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/fa/
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/fi/
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/hu/
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/id/
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/it/
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/ja/
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/ko/
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/nb_NO/
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/nl/
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/pl/
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/pt/
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/pt_BR/
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/ru/
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/sk/
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/sl/
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/sr/
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/sv/
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/ta/
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/tr/
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/zh_Hans/
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/zh_Hant/
Translation: feishin/Translation
2026-02-02 04:10:51 +01:00
jeffvli 6a68cebc93 increase fullscreen overlay z-index above titlebar 2026-02-01 19:10:38 -08:00
jeffvli ba474205c8 bump electron to v39.4.0 2026-02-01 18:59:46 -08:00
jeffvli dffe5bfffb fix duplicate import merge error 2026-02-01 18:56:48 -08:00
jeffvli 7615c0d2ba track image viewport state in sessionStorage 2026-02-01 18:55:08 -08:00
jeffvli 216353837c decrease zIndex of error boundary ServerSelector to prevent display above FullScreenPlayer 2026-02-01 18:55:08 -08:00
jeffvli 7f180b2c50 add bottom padding to fullscreenplayer header 2026-02-01 18:55:08 -08:00
Exceen ce46e0f351 feat: add regex filter setting for sidebar playlists (#1589)
* added regex filter for sidebar playlists

---------

Co-authored-by: jeffvli <jeffvictorli@gmail.com>
2026-02-01 18:25:37 -08:00
jeffvli 0999b93b47 add missing border radius to item card container 2026-01-31 02:41:25 -08:00
jeffvli 63c21cf7c2 add 2 line clamp to genre image placeholder 2026-01-31 01:42:51 -08:00
jeffvli 72ab1dc8a0 add download context menu action for browser 2026-01-31 00:41:48 -08:00
jeffvli 131e1ec11d support filter pinning on the genre detail list 2026-01-30 21:42:17 -08:00
jeffvli 4d60f5b8d9 add genre image card placeholder 2026-01-30 21:39:05 -08:00
jeffvli 6962a05c96 fix icon and wrap on collection title 2026-01-30 21:29:33 -08:00
jeffvli 25ee57da1c remove filter modal from playlist list header 2026-01-30 21:12:18 -08:00
jeffvli 37e41c9c8e re-add background to modal header 2026-01-30 21:10:59 -08:00
jeffvli 69b6821deb add secondary sort for album release date 2026-01-30 21:07:44 -08:00
jeffvli 8e6078515a add spinner for color loading fallback 2026-01-30 21:07:07 -08:00
jeffvli 73868dbcbf add translation keys for window bar 2026-01-30 20:51:24 -08:00
jeffvli 49ae774d48 fix translation files to use correct plurality references 2026-01-30 20:51:12 -08:00
Hosted Weblate 5b3e2da95b Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 85.8% (962 of 1120 strings)

Translated using Weblate (Polish)

Currently translated at 100.0% (1120 of 1120 strings)

Translated using Weblate (Czech)

Currently translated at 100.0% (1120 of 1120 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (1120 of 1120 strings)

Translated using Weblate (Polish)

Currently translated at 100.0% (1119 of 1119 strings)

Translated using Weblate (Japanese)

Currently translated at 85.3% (955 of 1119 strings)

Translated using Weblate (Russian)

Currently translated at 67.1% (751 of 1119 strings)

Translated using Weblate (Basque)

Currently translated at 78.0% (869 of 1114 strings)

Translated using Weblate (Basque)

Currently translated at 77.9% (868 of 1114 strings)

Translated using Weblate (Japanese)

Currently translated at 84.0% (936 of 1114 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (1114 of 1114 strings)

Translated using Weblate (Japanese)

Currently translated at 83.9% (935 of 1114 strings)

Translated using Weblate (Catalan)

Currently translated at 100.0% (1114 of 1114 strings)

Translated using Weblate (Czech)

Currently translated at 100.0% (1114 of 1114 strings)

Translated using Weblate (Polish)

Currently translated at 100.0% (1114 of 1114 strings)

Translated using Weblate (Czech)

Currently translated at 97.3% (1084 of 1114 strings)

Translated using Weblate (Danish)

Currently translated at 0.3% (4 of 1114 strings)

Added translation using Weblate (Danish)

Translated using Weblate (Czech)

Currently translated at 100.0% (1114 of 1114 strings)

Translated using Weblate (Basque)

Currently translated at 84.5% (942 of 1114 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (1114 of 1114 strings)

Translated using Weblate (Basque)

Currently translated at 84.5% (938 of 1110 strings)

Translated using Weblate (Basque)

Currently translated at 84.3% (936 of 1110 strings)

Translated using Weblate (Dutch)

Currently translated at 74.5% (828 of 1110 strings)

Translated using Weblate (Turkish)

Currently translated at 63.0% (700 of 1110 strings)

Translated using Weblate (French)

Currently translated at 92.9% (1032 of 1110 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (1110 of 1110 strings)

Translated using Weblate (Czech)

Currently translated at 100.0% (1110 of 1110 strings)

Translated using Weblate (Catalan)

Currently translated at 100.0% (1110 of 1110 strings)

Translated using Weblate (Russian)

Currently translated at 72.0% (800 of 1110 strings)

Co-authored-by: Aitor Astorga <a.astorga.sdv@protonmail.com>
Co-authored-by: Denisa Alicia Rissa <denisarissa@gmail.com>
Co-authored-by: Fjuro <fjuro@alius.cz>
Co-authored-by: Fordas <fordas15@gmail.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Koray HATIRNAZ <hatirnazkoray@gmail.com>
Co-authored-by: KosmoMoustache <kosmomoustache@users.noreply.hosted.weblate.org>
Co-authored-by: Ondo <SparkyOndo@proton.me>
Co-authored-by: haha4ni <haha4ni@hotmail.com>
Co-authored-by: jay <jayma13222@gmail.com>
Co-authored-by: karigane <169052233+karigane-cha@users.noreply.github.com>
Co-authored-by: skajmer <skajmer@protonmail.com>
Co-authored-by: Роман <romkaeliseev@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/ca/
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/cs/
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/da/
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/es/
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/eu/
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/fr/
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/ja/
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/nl/
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/pl/
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/ru/
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/tr/
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/zh_Hant/
Translation: feishin/Translation
2026-01-31 04:03:41 +00:00
jeffvli 1a5e513526 add list filter collections 2026-01-30 20:03:27 -08:00
jeffvli ad83e95a46 decouple audio device setting property depending on player type (#1617) 2026-01-30 17:55:25 -08:00
jeffvli bdd5c78d39 add custom skeleton component, remove dependency 2026-01-30 17:50:34 -08:00
Damien Erambert 6a0c2213a5 Prevent scrollbar appearing in album metadata column on large viewport (#1629)
* Prevent layout shifting due to scrollbar appearing in album metadata column
2026-01-30 17:48:55 -08:00
jeffvli 99515591f1 conditionally load analytics script based on disabled status (#1630) 2026-01-30 12:20:04 -08:00
Steffen Martinsen b8228844df feat: Add support for player controls in macOS dock menu (#1627)
* Added simple macOS dock menu similar to tray menu

* Enhanced and moved dock menu to darwin folder and enabled mpris on macOS to support play/pause state

* Added missing property sortName to silence TS error
2026-01-30 12:01:02 -08:00
jeffvli 7613bc32c2 decrease image debounce duration 2026-01-29 22:28:01 -08:00
jeffvli 4d81dc49fa fix global hotkey volume step (#1614) 2026-01-29 22:23:09 -08:00
jeffvli 8c65775310 fix selection state on ItemGridList when single select mode 2026-01-29 21:34:51 -08:00
jeffvli 74c9d0ca6f remove eager loading prop from Image 2026-01-29 21:32:10 -08:00
jeffvli 871bb9da3a update lyrics autofetcher to async search 2026-01-29 20:52:36 -08:00
jeffvli 8ae1fb4fdb fix type errors 2026-01-29 20:46:07 -08:00
jeffvli 1a39182d80 fix spoiler line breaks (#1622) 2026-01-29 20:43:57 -08:00
jeffvli a1a837298f fix title/description of home feature style setting 2026-01-29 19:58:54 -08:00
jeffvli 74b0e38f7e remove direct references to plural translation keys 2026-01-29 19:52:42 -08:00
jeffvli c1f48b21a4 add config to show/hide table header 2026-01-29 19:43:00 -08:00
jeffvli a496c04701 persist image render after entering viewport 2026-01-29 19:12:07 -08:00
das_ 590a7c7dfa Fix Discord details url exceeding max length (#1620)
* fix discord details url exceeding max length
2026-01-28 21:08:00 -08:00
Mike Benz 796629b4e6 Enable Playlist in sidebar to be sorted (#1542)
* add playlist reorder in sidebar
2026-01-28 20:54:20 -08:00
jeffvli ced3b491ff add SortName client side sort option (#1612) 2026-01-28 20:45:47 -08:00
jeffvli 78aebd7c5d add configuration to revert to single-select ItemGrid behavior 2026-01-28 20:14:05 -08:00
jeffvli 9532601efe make compact image container full width 2026-01-28 19:54:14 -08:00
jeffvli bd34a729b3 set debounce / viewport for images used in the app 2026-01-28 19:49:37 -08:00
jeffvli 23990b581b add enableDebounce prop to Image to conditionally debounce image loading 2026-01-24 18:08:44 -08:00
jeffvli f786da52bb add custom useDebouncedValue hook to handle initial set value 2026-01-24 17:42:53 -08:00
jeffvli ee145d6f65 add enableViewport prop to Image to conditionally lazy load 2026-01-24 17:27:32 -08:00
jeffvli c310ad65ef handle i18n plurality references with context instead of direct key access (#1591) 2026-01-24 17:20:11 -08:00
jeffvli 26284e2412 decrease long animation durations (#1553) 2026-01-24 17:08:06 -08:00
Kendall Garner 6e4cd6912b enable refresh for all home carousels, and fix favorite/rating on home 2026-01-24 14:54:29 -08:00
jeffvli 974313c30b add hebrew font 2026-01-24 11:57:14 -08:00
marank 8ed586e2f3 add support for disc subtitles from subsonic discTitles field (#1609) 2026-01-23 21:30:09 -08:00
marank f016d2cdf4 Cover art support for folder view (Subsonic servers only) (#1608)
* add coverArt support for subsonic folders
2026-01-23 21:26:51 -08:00
Jeff c79e041777 Fix macOS tray icon (#1600)
* add 32x32 icon for macOS tray

* add 16x16 image

* add black/transparent icon
2026-01-23 21:10:49 -08:00
jeffvli a50984d2cb remove memoization from individual table columns
- causes issues with drag/drop state
2026-01-23 20:43:28 -08:00
jeffvli 819945dcba fix issue where the first row would not show row border 2026-01-23 19:12:07 -08:00
jeffvli 9f81bff020 fix swipe area on grid carousel 2026-01-23 19:10:36 -08:00
jeffvli b45594515e retry autofit calculation to prevent zero value on initial render and memoization 2026-01-22 02:53:25 -08:00
jeffvli 3a5d701195 fix genres detail content being constrained to maxWidth 2026-01-22 02:10:13 -08:00
jeffvli 34e037725c disable autoscroll on non-list tables 2026-01-22 02:08:09 -08:00
jeffvli b4fd7b6a66 add prop to disable custom autoscroll on ItemTableList 2026-01-22 02:07:24 -08:00
jeffvli 81af324260 handle radio metadata for mpris / mediasession (#1586) 2026-01-22 01:30:45 -08:00
jeffvli a5541745c3 add toggle for single/multiple home feature carousel (#1581) (#1412) 2026-01-22 01:18:34 -08:00
jay 39d691d528 fix: stop volume slider clicks from opening full screen (#1585)
* fix volume slider clicks from opening full screen
2026-01-22 01:01:06 -08:00
jeffvli 0c1537e5ef prevent duplicate audio device in selector (#1598) 2026-01-22 00:33:52 -08:00
jeffvli 3405f853e3 allow swiping on the the grid carousel title area (#1521) 2026-01-22 00:33:52 -08:00
jeffvli 8b0b53029c fix missing autoscroll cleanup on ScrollArea 2026-01-22 00:33:51 -08:00
jeffvli f6012d3b03 add more memoization to the ItemTableList 2026-01-22 00:33:51 -08:00
jeffvli f4072c183b refactor feature hooks to be conditionally initialized 2026-01-21 02:23:25 -08:00
jeffvli 9a4a8eb742 refactor some usePlayerSong consumers to only fetch needed properties 2026-01-21 02:02:49 -08:00
jeffvli dbfb547af9 remove favorite/rating handlers from PlayerContext to prevent rerenders from consumers 2026-01-21 01:57:47 -08:00
jeffvli 0492b867aa optimize rating/favorite to prevent blocking UI 2026-01-21 01:38:11 -08:00
jeffvli b7cbb3055a fix memory leak on table autoscroll 2026-01-21 00:32:48 -08:00
jeffvli c3c18e22ea add butterchurn presets ignore constant for broken presets 2026-01-20 18:02:59 -08:00
jeffvli 9318d00a5b refactor butterchurn state to prevent rerender flicker on cycle 2026-01-20 17:58:58 -08:00
jeffvli a5940a9124 fix item grid calling onScrollEnd on initial render 2026-01-20 15:41:19 -08:00
jeffvli 9a8986834e remove wait for color calc on detail pages causing extra render 2026-01-20 15:40:48 -08:00
jeffvli c5d2c60d70 update to v1.3.0 2026-01-18 19:08:38 -08:00
Hosted Weblate 52d2cf5cb4 Update translation files
Updated by "Cleanup translation files" hook in Weblate.

Translated using Weblate (Czech)

Currently translated at 100.0% (1113 of 1113 strings)

Translated using Weblate (Catalan)

Currently translated at 100.0% (1113 of 1113 strings)

Translated using Weblate (Russian)

Currently translated at 68.1% (759 of 1113 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (1113 of 1113 strings)

Translated using Weblate (Polish)

Currently translated at 100.0% (1113 of 1113 strings)

Translated using Weblate (Polish)

Currently translated at 99.9% (1112 of 1113 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (1111 of 1111 strings)

Translated using Weblate (Polish)

Currently translated at 100.0% (1111 of 1111 strings)

Translated using Weblate (Czech)

Currently translated at 100.0% (1111 of 1111 strings)

Translated using Weblate (French)

Currently translated at 93.3% (1035 of 1109 strings)

Translated using Weblate (Czech)

Currently translated at 100.0% (1109 of 1109 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (1109 of 1109 strings)

Translated using Weblate (Polish)

Currently translated at 100.0% (1109 of 1109 strings)

Translated using Weblate (Chinese (Simplified Han script))

Currently translated at 87.5% (971 of 1109 strings)

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 93.8% (1041 of 1109 strings)

Translated using Weblate (Dutch)

Currently translated at 74.9% (831 of 1109 strings)

Translated using Weblate (Basque)

Currently translated at 77.8% (863 of 1109 strings)

Translated using Weblate (Basque)

Currently translated at 76.1% (845 of 1109 strings)

Translated using Weblate (Basque)

Currently translated at 75.1% (833 of 1109 strings)

Translated using Weblate (Ukrainian)

Currently translated at 0.1% (1 of 1109 strings)

Translated using Weblate (Basque)

Currently translated at 69.5% (771 of 1109 strings)

Translated using Weblate (Dutch)

Currently translated at 65.7% (729 of 1109 strings)

Translated using Weblate (Dutch)

Currently translated at 61.7% (685 of 1109 strings)

Translated using Weblate (Dutch)

Currently translated at 56.8% (630 of 1109 strings)

Translated using Weblate (Dutch)

Currently translated at 54.8% (608 of 1109 strings)

Translated using Weblate (Dutch)

Currently translated at 47.0% (522 of 1109 strings)

Translated using Weblate (Dutch)

Currently translated at 47.0% (522 of 1109 strings)

Update translation files

Updated by "Remove blank strings" hook in Weblate.

Translated using Weblate (Slovak)

Currently translated at 61.1% (678 of 1109 strings)

Translated using Weblate (Catalan)

Currently translated at 100.0% (1109 of 1109 strings)

Translated using Weblate (Catalan)

Currently translated at 99.8% (1107 of 1109 strings)

Translated using Weblate (Japanese)

Currently translated at 80.7% (896 of 1109 strings)

Translated using Weblate (Polish)

Currently translated at 100.0% (1109 of 1109 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (1109 of 1109 strings)

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 93.8% (1041 of 1109 strings)

Translated using Weblate (French)

Currently translated at 93.3% (1035 of 1109 strings)

Update translation files

Updated by "Remove blank strings" hook in Weblate.

Translated using Weblate (French)

Currently translated at 93.3% (1035 of 1109 strings)

Update translation files

Updated by "Remove blank strings" hook in Weblate.

Translated using Weblate (French)

Currently translated at 93.6% (1039 of 1109 strings)

Co-authored-by: Aitor Astorga <a.astorga.sdv@protonmail.com>
Co-authored-by: Alexander <spokeosen@gmail.com>
Co-authored-by: Desiler <qboin94@gmail.com>
Co-authored-by: Emily <Markix124@protonmail.com>
Co-authored-by: Fjuro <fjuro@alius.cz>
Co-authored-by: Fordas <fordas15@gmail.com>
Co-authored-by: HUMET <ressaguer@proton.me>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: KosmoMoustache <kosmomoustache@users.noreply.hosted.weblate.org>
Co-authored-by: Ondo <SparkyOndo@proton.me>
Co-authored-by: bokse <weblate@bokse.nl>
Co-authored-by: karigane <169052233+karigane-cha@users.noreply.github.com>
Co-authored-by: linger <linger0517@gmail.com>
Co-authored-by: skajmer <skajmer@protonmail.com>
Co-authored-by: Роман <romkaeliseev@gmail.com>
Co-authored-by: 無情天 <kofzhanganguo@126.com>
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/ca/
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/cs/
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/es/
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/eu/
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/fr/
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/ja/
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/nl/
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/pl/
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/ru/
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/sk/
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/uk/
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/zh_Hans/
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/zh_Hant/
Translation: feishin/Translation
2026-01-19 03:53:37 +01:00
jeffvli a63763bfe8 use dev path for local settings store 2026-01-18 18:53:21 -08:00
jeffvli 15633d07f0 remove the Priority queue type 2026-01-18 18:53:21 -08:00
Kendall Garner 04f7c7fdd4 fix(remote): proper image when mpris and remote interleave 2026-01-18 18:18:36 -08:00
jeffvli 1c6ee88912 remove ♫ icon from card/table date fields 2026-01-18 17:46:16 -08:00
jeffvli c53b2f8ed8 fix title columns link width 2026-01-18 17:45:58 -08:00
jeffvli 5c2c18268b fix type assertions and add mantine type extension 2026-01-18 17:30:33 -08:00
jeffvli 5fd0ffaa4f make reset filter button size consistent with unpin 2026-01-18 17:24:52 -08:00
jeffvli 4d0b0d0c8d add compact sizing variants to ActionIcon 2026-01-18 17:24:52 -08:00
Kendall Garner 45df497ee6 natural numeric sort for tag and disable disc/track total for nd track filter 2026-01-18 17:19:30 -08:00
jeffvli 2dd83b111f allow search on visualizer select inputs 2026-01-18 17:17:39 -08:00
jeffvli 6b599bf53d remove compilation from primary album section groupings 2026-01-18 17:07:53 -08:00
jeffvli d10e4a3d68 rework auto lyrics matcher (#1569)
- remove priority order in favor of best match from all selected providers (lrclib synchronized)
- improve % match for title / artist
2026-01-18 16:02:37 -08:00
jeffvli 7f1c4a4d18 add sync status to lrclib lyrics (#1568) 2026-01-18 15:47:07 -08:00
jeffvli c3d4f6cacd properly handle disableArtistFilter and disableGenreFilter props for all list filters 2026-01-18 14:07:52 -08:00
jeffvli dad3d10a83 move filter reset button to header 2026-01-18 14:04:30 -08:00
Kendall Garner 5c06624f8c Initial work: support showing studios for jellyfin, allow pill to be clickable (#1566) 2026-01-18 13:53:34 -08:00
Kendall Garner cf428a14a3 fix left control and context menu image display for queue items of different server 2026-01-18 08:35:19 -08:00
jeffvli a0e09b80cf fix missing playlistItemId for subsonic song normalization (#1564) 2026-01-18 02:28:31 -08:00
jeffvli 0e388dabf5 add fullscreen visualizer (#1546) 2026-01-18 02:17:55 -08:00
jeffvli 27a5153b8a add click handler onto the accessible deselect icon on the multiselect 2026-01-18 00:50:03 -08:00
jeffvli cad3b4c905 fix stale updates in Grid/Table config 2026-01-17 22:01:24 -08:00
jeffvli bda82a8198 add gap between input and items in VirtualMultiSelect 2026-01-17 21:38:12 -08:00
Nooby b9d14e03f1 Add Rosé Pine themes (#1549)
* Add Rosé Pine theme
2026-01-17 20:35:11 -08:00
jeffvli ea46b98400 prevent mpv hotkey conflict with radio when inactive 2026-01-17 20:29:57 -08:00
jeffvli 123f09da6c fix spinner position in VirtualMultiSelect 2026-01-17 20:19:06 -08:00
jeffvli 4155cd0963 optimize ND/JF list fetch
- no longer requires 2 separate fetches for count and data
- the list count includes the first page so we set the query data directly
2026-01-17 19:57:12 -08:00
jeffvli 27f82aef94 conditionally disable Subsonic list filters based on availability (#1567) 2026-01-17 18:20:40 -08:00
jeffvli 9f9d685353 decrease font weight of JoinedArtists display 2026-01-17 17:46:51 -08:00
jeffvli 9b97a3fa61 add reset button to list filters 2026-01-17 17:43:55 -08:00
jeffvli 5b519320c2 enhance album/song list filters 2026-01-17 16:56:35 -08:00
jeffvli 790782b799 fix itemCount not updating properly on zero value 2026-01-17 16:25:37 -08:00
jeffvli 8c5188dfd0 add VirtualMultiSelect component for filters 2026-01-17 16:25:12 -08:00
jeffvli d793e67b56 replace separator string with smaller bullet 2026-01-17 13:29:25 -08:00
jeffvli 9bccf7c405 replace Rating column header with icon instead of text 2026-01-17 13:23:53 -08:00
jeffvli 291daa434c validate that the current song is different from server before revalidating in queue 2026-01-17 13:19:56 -08:00
jeffvli ef5daad1dd add more dynamic imports to optimize bundle 2026-01-17 07:32:16 -08:00
jeffvli 6cb5c95c1f add chrome target for vite build 2026-01-17 07:27:52 -08:00
jeffvli 37068a3b89 fix sourcemaps in vite build 2026-01-17 04:57:28 -08:00
jeffvli 5901748b76 fix disc group selection state in album songs 2026-01-17 04:29:06 -08:00
jeffvli 945a4052e2 decrease opacity of non-active sync lyric 2026-01-17 03:40:53 -08:00
jeffvli cd887f8615 adjust lyrics scroll mask to improve edge visibility (#1562) 2026-01-17 03:37:49 -08:00
jeffvli 3f3540dd2b fix mouseover state causing rerender in fullscreen player (#1535) 2026-01-17 03:02:05 -08:00
jeffvli b4b0c6cedd fix Toggle Queue hotkey when using detached queue (#1522) 2026-01-17 02:43:11 -08:00
jeffvli afd91d2ae3 fix sidebar drag region overlapping window controls with web windowbar (#1536) 2026-01-17 02:38:37 -08:00
jeffvli e0e1799902 add fallback to minYear if no dates tagged 2026-01-17 02:35:11 -08:00
jeffvli e64d77feba add timeout to prevent accidental context submenu close (#1552) 2026-01-17 02:31:09 -08:00
jeffvli ac944c43bb add composer column to song/album table (#1559) 2026-01-17 02:16:56 -08:00
jeffvli aec2f85165 add filter Link to album recordlabels (#1541) 2026-01-17 02:00:06 -08:00
jeffvli 85a7df29db fix settings reset
- force reset by deleting local storage state and reloading the window
- the default reset functionality does not seem to work due to the persistence
2026-01-17 01:53:08 -08:00
jeffvli 18d56f32cf add Title (artist) column (#1496) 2026-01-17 01:49:59 -08:00
jeffvli d1aed5007f refactor item list to use accessor function 2026-01-16 23:45:46 -08:00
jeffvli e2b20eb89b split out item list table functionality 2026-01-16 23:45:19 -08:00
jeffvli a5fa022eb6 add context to item list table 2026-01-16 23:45:04 -08:00
jeffvli 79e7d7a010 refactor item list table drag/hover 2026-01-16 23:43:50 -08:00
jeffvli 431ff76e19 clean up old logs 2026-01-16 11:05:33 -08:00
jeffvli dc5414284a invalidate recentlyPlayed and mostPlayed carousels on scrobble submission 2026-01-16 04:35:06 -08:00
jeffvli a59e57572c support query key override on infinite carousels 2026-01-16 04:34:44 -08:00
jeffvli 2827b2ae01 invalidate the album query on scrobble submission 2026-01-16 04:23:57 -08:00
jeffvli fc5024be90 revalidate current song in queue during playback 2026-01-16 04:18:02 -08:00
jeffvli dab1103279 manually increment queue play count on scrobble 2026-01-16 04:12:44 -08:00
jeffvli f5dabc134a revert library title wrap style 2026-01-16 03:55:29 -08:00
jeffvli 9e57125c96 reduce window minHeight to 120px (#1561) 2026-01-16 03:55:18 -08:00
jeffvli 8a14327aaf use placeholderData instead of initialData for detail routes 2026-01-16 02:43:14 -08:00
jeffvli b9311e841c remove fade animation on album songs table 2026-01-16 02:01:08 -08:00
jeffvli 46b80b9a18 add loading placeholder cards to grid carousel 2026-01-16 01:31:48 -08:00
jeffvli b6a670689c fix ItemCard skeleton sizing to match original 2026-01-15 22:14:34 -08:00
jeffvli 1a3fbe0a7a improve text wrap on library header 2026-01-15 21:40:47 -08:00
jeffvli 66a2b4c225 fix sidebar visualizer/lyrics combined behavior (#1529) 2026-01-15 21:35:45 -08:00
jeffvli 83c47454c6 fix image condition for discord rpc image with Jellyfin (#1509) 2026-01-14 22:03:22 -08:00
jeffvli 0947e209ce remove unused import 2026-01-14 21:58:08 -08:00
jeffvli 1f12ef2151 increase album release section limit to 100 (#1523) 2026-01-14 21:55:21 -08:00
jeffvli 8de80c00a8 ensure song follow is run on play queue render 2026-01-14 21:34:46 -08:00
jeffvli b79ebdfbef revert to old feature carousel style (#1412) 2026-01-14 21:15:24 -08:00
jeffvli a8604dd150 add recently played songs carousel for jellyfin (#1494) 2026-01-14 20:18:19 -08:00
jeffvli c676f5b91f use existing web player engine for radio playback (#1543) 2026-01-14 20:01:30 -08:00
jeffvli 41054ed819 add audio device selection for mpv 2026-01-14 19:12:36 -08:00
jeffvli d95204513f remove Windows only description for mediasession (#1557) 2026-01-14 18:47:10 -08:00
jeffvli 1850cc68d8 Revert "refactor image to only render in viewport once"
This reverts commit 746951b55f.
2026-01-14 18:46:09 -08:00
binder-badge c1c07b861e Update screenshots on readme (#1555)
* update screenshots on readme
2026-01-14 18:32:54 -08:00
Michael Levy 244aebb0f5 fix: Use .ico file on Windows (#1544)
* use ico file on windows
2026-01-14 18:25:43 -08:00
jeffvli ae49e3cf2f allow system tray in macOS (#1539) 2026-01-14 18:21:26 -08:00
Kendall Garner 40f04d6800 fix navidrome tag list sort 2026-01-11 17:07:57 -08:00
skajmer bc0ba8c116 Add missing _other strings (#1547)
Adds strings that were previously missing
2026-01-12 00:48:24 +00:00
jeffvli 746951b55f refactor image to only render in viewport once 2026-01-10 14:22:05 -08:00
haha4ni 89d4698155 fix:Chinese locale missing *_one key (#1531) 2026-01-09 16:20:55 +00:00
Kendall Garner 415cc71f74 fix(jellyfin): use undefined instead of -1 for limit for jellyfin 10.10, fix item-image 2026-01-09 08:11:02 -08:00
jeffvli 0e41144a10 fix title overflow on firefox 2026-01-08 23:50:38 -08:00
Kendall Garner b5dbb30b02 fix(query builder): default to no value for empty string 2026-01-08 21:16:40 -08:00
Kendall Garner bc40123891 fix(queue): use song serverId when switching servers 2026-01-08 20:43:35 -08:00
Kendall Garner f465e34ea3 fix(jellyfin): use correct filter for album/artist with small count 2026-01-08 20:32:57 -08:00
Kendall Garner eca925a4eb fix: respect volume wheel step for volume hotkey 2026-01-08 08:09:39 -08:00
Kendall Garner 6442728931 allow legacy auth setting to be default when server lock is disabled 2026-01-08 07:47:07 -08:00
Kendall Garner 7e67d0dac6 fix: properly handle server lock and related properties 2026-01-08 07:42:59 -08:00
Kendall Garner 2fdc214c21 remove download icon from non-electron contexts 2026-01-07 21:56:53 -08:00
Kendall Garner 652be94eb2 fix(remote): send song url to remote 2026-01-07 21:34:57 -08:00
Kendall Garner 93a5bafc38 fix: add scroll area to server selector dropdown in sidebar 2026-01-07 20:51:04 -08:00
jeffvli c2de979527 fix incorrect condition to try similar songs in autodj 2026-01-07 13:57:53 -08:00
Kendall Garner fd78bdf8af fix(login): add scroll area to login required page 2026-01-07 07:35:26 -08:00
haveac1gar e0e82e7246 Added sorting by Disc Number and Track Number for SongListSort.COMMENT (#1518) 2026-01-05 20:15:15 -08:00
jeffvli cb749480a4 fix missing ANALYTICS_DISABLED var in example docker compose 2026-01-04 16:12:20 -08:00
jeffvli 5ec8f1a904 add fallback to year for navidrome release display (#1498) 2026-01-04 15:22:37 -08:00
jeffvli 83b20d9086 fix card container height when inconsistent row count 2026-01-04 15:07:34 -08:00
jeffvli 211f09fe19 fix presets delete (#1497) 2026-01-04 14:42:44 -08:00
jeffvli 03c1fb0ff2 add missing table body to hotkeys manager 2026-01-04 14:31:18 -08:00
jeffvli 834412ad31 fix release notes not displayed on version change 2026-01-04 14:24:34 -08:00
jeffvli 7ae0aa198e use separator string for releasetype display 2026-01-04 02:54:00 -08:00
Hosted Weblate 5d24d90a7c Translated using Weblate (Czech)
Currently translated at 100.0% (1109 of 1109 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (1109 of 1109 strings)

Translated using Weblate (Czech)

Currently translated at 99.0% (1099 of 1109 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (1104 of 1104 strings)

Translated using Weblate (Polish)

Currently translated at 100.0% (1099 of 1099 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (1099 of 1099 strings)

Translated using Weblate (Chinese (Simplified Han script))

Currently translated at 88.4% (972 of 1099 strings)

Translated using Weblate (Czech)

Currently translated at 100.0% (1099 of 1099 strings)

Co-authored-by: Fjuro <fjuro@alius.cz>
Co-authored-by: Fordas <fordas15@gmail.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Kaffu Chino <kaffu-chino@outlook.com>
Co-authored-by: skajmer <skajmer@protonmail.com>
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/cs/
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/es/
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/pl/
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/zh_Hans/
Translation: feishin/Translation
2026-01-04 10:37:14 +00:00
jeffvli b5923539c2 update to v1.2.0 2026-01-04 02:37:04 -08:00
jeffvli 3a9d49549c remove duplicate text in release notes modal 2026-01-04 02:36:59 -08:00
jeffvli ff272a5385 fix butterchurn init and cleanup 2026-01-04 02:35:44 -08:00
jeffvli 327875df6a make queue controls follow panel in sidebar (#1492) 2026-01-04 02:09:35 -08:00
jeffvli 9bbb213bc2 use shorthand localized date format 2026-01-04 01:58:15 -08:00
jeffvli 3122c1a058 fix long press to work only on left click (#1493) 2026-01-04 01:53:34 -08:00
jeffvli af055ab6dd support original date display and sort (#1488) 2026-01-04 01:49:51 -08:00
jeffvli e34d84deee fix missing defaultValue on NumberInput 2026-01-04 01:01:14 -08:00
jeffvli 0596faf51e readd mpv reload handler 2026-01-04 01:01:01 -08:00
jeffvli 5f1867c14f add support for track subtitle display (#1177) 2026-01-04 00:44:22 -08:00
jeffvli 1c6b204e80 bump butterchurn package 2026-01-03 23:04:22 -08:00
jeffvli 29957780cb fix wrong imageRes being used in some cases 2026-01-03 16:00:32 -08:00
jeffvli fd0d783e7d use weighted ordering for album sections with secondary releasetypes 2026-01-03 15:51:58 -08:00
jeffvli 5ec025a70e fix artist album search conditional render on no results 2026-01-03 15:42:41 -08:00
jeffvli dc0c6401de fix image column skeleton aspect ratio 2026-01-03 06:31:42 -08:00
jeffvli 06fc7b391f remove remixer from navidrome album type 2026-01-03 06:31:40 -08:00
jeffvli 8c91f1c52d remove scroll shadows from fullscreen player 2026-01-03 03:23:58 -08:00
jeffvli 968d991a1a improve table scroll shadow styles 2026-01-03 03:19:40 -08:00
jeffvli f4f75f342c use throttle on scroll shadow instead of debounce 2026-01-03 03:08:05 -08:00
jeffvli ba32832619 actually fix the related tab (#1484) 2026-01-03 03:05:53 -08:00
jeffvli 186811156e add remixer to song artist (#1400) 2026-01-03 03:03:10 -08:00
jeffvli 261c5541cd cleanup path replacement 2026-01-03 02:24:53 -08:00
jeffvli 5c14d20f78 join releasetypes on 'all' mode on artist page 2026-01-03 02:09:59 -08:00
jeffvli c67731f852 add missing gain node to butterchurn (#1475) 2026-01-03 01:33:48 -08:00
jeffvli 0336f4afea fix related tab sizing (#1484) 2026-01-03 01:19:37 -08:00
jeffvli ace4c77bdc add missing cleanup functions on visualizers 2026-01-03 01:01:55 -08:00
jeffvli ffe3f08705 optimize item table 2026-01-03 01:01:54 -08:00
jeffvli d06d1674d1 optimize various base components 2026-01-03 01:01:54 -08:00
jeffvli a66c67e86d optimize settings store 2026-01-03 01:01:54 -08:00
dependabot[bot] 0cfc4119ba Bump qs in the npm_and_yarn group across 1 directory (#1465)
Bumps the npm_and_yarn group with 1 update in the / directory: [qs](https://github.com/ljharb/qs).


Updates `qs` from 6.14.0 to 6.14.1
- [Changelog](https://github.com/ljharb/qs/blob/main/CHANGELOG.md)
- [Commits](https://github.com/ljharb/qs/compare/v6.14.0...v6.14.1)

---
updated-dependencies:
- dependency-name: qs
  dependency-version: 6.14.1
  dependency-type: direct:production
  dependency-group: npm_and_yarn
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-03 00:53:50 -08:00
Qimiao Chen af0354a4d5 Avoid an infinite loop when artist.name is an empty string. (#1483)
* Avoid an infinite loop when  is an empty string.

---------

Co-authored-by: Jeff <42182408+jeffvli@users.noreply.github.com>
2026-01-03 00:53:26 -08:00
jeffvli e696c0c636 add context menu item to show song in file manager (#1397) 2026-01-02 01:32:51 -08:00
jeffvli 6aeec1e89c add filepath replacement setting (#1402) 2026-01-02 01:23:29 -08:00
jeffvli e406b27170 fix radio cancellation error on double click (#1419) 2026-01-01 20:40:24 -08:00
jeffvli 55cead87c8 add LEGACY_AUTH env variable (#1473) 2026-01-01 20:33:27 -08:00
jeffvli aaf840d358 resend mediasession on player repeat (#1472) 2026-01-01 20:17:49 -08:00
jeffvli af8470e254 fix missing export lyrics button 2026-01-01 20:08:27 -08:00
jeffvli c7809c62ce throttle volume slider 2026-01-01 15:32:20 -08:00
jeffvli cb47883328 remove unused properties from PlayerData 2026-01-01 15:31:57 -08:00
jeffvli 588e0609fd add list playback and navigation hotkeys (#1469) 2026-01-01 14:02:02 -08:00
jeffvli 091d2efb2e fix grid song play behavior (#1477) 2026-01-01 12:41:04 -08:00
Flutter e5c5985f0f feat: playlist grid view (#1476)
* feat: grid view for playlists
2026-01-01 12:21:47 -08:00
jeffvli b7627fd469 fix sidebar image empty icon 2026-01-01 12:21:20 -08:00
jeffvli 22c0f8f8c6 add manual garbage collection 2026-01-01 12:21:20 -08:00
Leonardo Salgueiro a7d2a427ec forcing string value for EP to always be upper case (#1474) 2026-01-01 11:59:27 -08:00
jeffvli 14cc4079a3 fix Inter font missing variable weights 2025-12-31 18:19:34 -08:00
jeffvli bb93b0895e fix table keyboard navigation (#1469) 2025-12-31 18:10:31 -08:00
jeffvli 1a3e2eec70 add up to 2 genre carousels on the album page 2025-12-31 16:30:10 -08:00
jeffvli 926b77c770 fix Subsonic artist list broken pagination 2025-12-31 15:55:45 -08:00
jeffvli a4472bb449 include custom gradients and opacity in copied visualizer preset 2025-12-31 15:52:28 -08:00
jeffvli cd04d7a760 re-add visualizer preset update functionality 2025-12-31 15:32:44 -08:00
jeffvli 6356c55c81 add loading state to external lyrics fetch 2025-12-31 15:20:22 -08:00
jeffvli 37ed99d0fb optimize artist page load speed 2025-12-31 15:15:30 -08:00
jeffvli 72475fbcc2 update to v1.1.0 2025-12-31 01:53:43 -08:00
Hosted Weblate 0096aeeb1b Translated using Weblate (Czech)
Currently translated at 100.0% (1094 of 1094 strings)

Translated using Weblate (German)

Currently translated at 81.1% (888 of 1094 strings)

Translated using Weblate (Chinese (Simplified Han script))

Currently translated at 86.1% (942 of 1094 strings)

Translated using Weblate (Chinese (Simplified Han script))

Currently translated at 76.4% (836 of 1094 strings)

Translated using Weblate (Czech)

Currently translated at 100.0% (1094 of 1094 strings)

Translated using Weblate (Chinese (Simplified Han script))

Currently translated at 72.2% (789 of 1092 strings)

Update translation files

Updated by "Cleanup translation files" hook in Weblate.

Translated using Weblate (Chinese (Simplified Han script))

Currently translated at 72.1% (787 of 1091 strings)

Translated using Weblate (Polish)

Currently translated at 99.6% (1087 of 1091 strings)

Translated using Weblate (Japanese)

Currently translated at 79.3% (865 of 1090 strings)

Translated using Weblate (Japanese)

Currently translated at 77.0% (840 of 1090 strings)

Translated using Weblate (Spanish)

Currently translated at 96.9% (1055 of 1088 strings)

Translated using Weblate (Czech)

Currently translated at 100.0% (1088 of 1088 strings)

Translated using Weblate (Spanish)

Currently translated at 94.9% (1033 of 1088 strings)

Translated using Weblate (Catalan)

Currently translated at 100.0% (1088 of 1088 strings)

Translated using Weblate (Spanish)

Currently translated at 87.5% (953 of 1088 strings)

Translated using Weblate (Basque)

Currently translated at 70.0% (762 of 1088 strings)

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 94.2% (1025 of 1088 strings)

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 94.2% (1025 of 1088 strings)

Co-authored-by: Aitor Astorga <a.astorga.sdv@protonmail.com>
Co-authored-by: Fjuro <fjuro@alius.cz>
Co-authored-by: Fordas <fordas15@gmail.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Kaffu Chino <kaffu-chino@outlook.com>
Co-authored-by: Ondo <SparkyOndo@proton.me>
Co-authored-by: Zarakkas <kaz@users.noreply.hosted.weblate.org>
Co-authored-by: karigane <169052233+karigane-cha@users.noreply.github.com>
Co-authored-by: linger <linger0517@gmail.com>
Co-authored-by: skajmer <skajmer@protonmail.com>
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/ca/
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/cs/
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/de/
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/es/
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/eu/
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/ja/
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/pl/
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/zh_Hans/
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/zh_Hant/
Translation: feishin/Translation
2025-12-31 10:52:01 +01:00
jeffvli 91ccc71fcd fix media session using stale image reference (#1296) 2025-12-31 01:51:52 -08:00
jeffvli b00f9795bf add song infinite carousel (#1464) 2025-12-31 01:20:04 -08:00
jeffvli 255b9a9c2d fix lyrics fetch and clear (#1342)
- split server and remote lyrics into separate queries
- lyrics cache now always contain server lyrics, override will use separate remote query
- clear button is reverted to only clear the override query, and back to server
2025-12-31 01:07:56 -08:00
jeffvli 8eab4933ae fix click handler on LibraryHeader image 2025-12-30 21:19:29 -08:00
jeffvli 031f443238 re-add missing styles onto library header image 2025-12-30 21:09:47 -08:00
jeffvli 72d0fca28b support secondary public server URL 2025-12-30 21:05:38 -08:00
jeffvli 7aeadb531f use ItemImage in library header 2025-12-30 16:17:37 -08:00
jeffvli 4e213ea79e improve library header title size calculation 2025-12-30 16:13:04 -08:00
jeffvli b99ea61115 allow analytics opt out from env (#1454) 2025-12-30 15:40:58 -08:00
jeffvli 4a025f82e4 fix incorrect imageId assignments (#1456) 2025-12-30 15:18:03 -08:00
jeffvli 6ddaf0366c support copy / paste audiomotionanalyzer gradients 2025-12-30 15:03:05 -08:00
jeffvli 62183ecb58 adjust analytics to wait for server before track 2025-12-30 13:59:52 -08:00
jeffvli 3ee92b068b fix list filters sidebar not persisting closed state 2025-12-30 13:45:21 -08:00
jeffvli 4dc3a0e8d1 decrease opacity of header background image 2025-12-30 13:37:26 -08:00
jeffvli 43652ce65d add several audiomotionanalyzer presets 2025-12-30 13:32:54 -08:00
jeffvli b08c8a1719 update default audiomotionanalyzer preset 2025-12-30 13:22:08 -08:00
jeffvli 0385f13928 fix missing mpv parameters translation 2025-12-30 05:37:23 -08:00
jeffvli 3bf2c585b8 fix localization on visualizer form 2025-12-30 05:35:37 -08:00
jeffvli 7d05e4536b adjust default react-query stale/gc time 2025-12-30 04:43:14 -08:00
jeffvli 0553f3b5a2 fix missing rating input on the compact item card 2025-12-30 04:08:39 -08:00
jeffvli c01a0d79e1 fix missing format on item card album count row 2025-12-30 04:04:05 -08:00
jeffvli adc094005f improve compact size item card 2025-12-30 03:59:17 -08:00
jeffvli 5b7557bd45 fix subsonic release date format to yyyy-mm-dd 2025-12-30 03:40:12 -08:00
jeffvli 6aa3905922 use exact album artist names (#1459) 2025-12-30 03:39:53 -08:00
jeffvli aa75aaaffb add more metadata to album header / side 2025-12-30 02:33:23 -08:00
jeffvli 62ab4b7a00 add releaseType to album header 2025-12-29 21:16:39 -08:00
jeffvli 145dc5c99e add fallback for navidrome release date 2025-12-29 20:54:58 -08:00
jeffvli 82a566aee1 add artist release type configuration, fix page configurations 2025-12-29 20:54:58 -08:00
Pyx 42058ff6d6 fix: correct propagation on settings menu (#1453)
* fix propagation error on settings menu
2025-12-29 14:57:49 -08:00
sheepman4267 9841cfba38 Bump electron version (#1452) 2025-12-29 14:51:50 -08:00
jeffvli 6c8099efe5 update to v1.0.2 2025-12-28 20:08:03 -08:00
jeffvli 8ba87d57cd fix default lyrics fetchers 2025-12-28 20:05:37 -08:00
630 changed files with 45369 additions and 33602 deletions
+1
View File
@@ -5,6 +5,7 @@
*.jpeg binary
*.ico binary
*.icns binary
*.webp binary
*.eot binary
*.otf binary
*.ttf binary
+189
View File
@@ -0,0 +1,189 @@
# Alpha builds published to Cloudflare R2 with date versioning (e.g. 1.0.0-alpha-20260205).
# Required repo secrets: R2_ACCESS_KEY_ID, R2_SECRET_ACCESS_KEY (from R2 API token in Cloudflare dashboard).
name: Publish Alpha
on:
workflow_dispatch:
inputs:
version:
description: 'Semantic version number (e.g., 1.0.0) - alpha suffix will be added automatically'
required: false
type: string
schedule:
# Run at 3:00 AM PST daily (11:00 UTC; PST = UTC-8)
- cron: '0 11 * * *'
jobs:
check-new-commits:
runs-on: ubuntu-latest
outputs:
has_new_commits: ${{ steps.manual.outputs.has_new_commits || steps.check.outputs['has-new-commits'] }}
steps:
- name: Set has new commits (manual trigger)
id: manual
if: github.event_name == 'workflow_dispatch'
run: echo "has_new_commits=true" >> "$GITHUB_OUTPUT"
- name: Check for new commits (24 hr interval)
id: check
if: github.event_name != 'workflow_dispatch'
uses: adriangl/check-new-commits-action@v1
with:
token: ${{ secrets.GITHUB_TOKEN }}
seconds: 86400
prepare:
needs: check-new-commits
if: needs.check-new-commits.outputs.has_new_commits == 'true'
runs-on: ubuntu-latest
outputs:
version: ${{ steps.version.outputs.version }}
steps:
- name: Checkout git repo
uses: actions/checkout@v1
- name: Install Node and PNPM
uses: pnpm/action-setup@v4.1.0
with:
version: 9
- name: Install dependencies
run: pnpm install
- name: Set date-based alpha version
id: version
shell: pwsh
run: |
$inputVersion = "${{ github.event.inputs.version }}"
Write-Host "Input version: $inputVersion"
if ($inputVersion -eq "" -or $inputVersion -eq "null") {
# No input version provided (scheduled run or manual without input), auto-increment patch version
Write-Host "No version provided, auto-incrementing patch version..."
$currentVersion = (Get-Content package.json | ConvertFrom-Json).version
Write-Host "Current version: $currentVersion"
$cleanVersion = $currentVersion -replace '-.*$', ''
$versionParts = $cleanVersion.Split('.')
if ($versionParts.Length -ne 3) {
Write-Error "Current version format is invalid: $cleanVersion"
exit 1
}
$major = [int]$versionParts[0]
$minor = [int]$versionParts[1]
$patch = [int]$versionParts[2]
$newPatch = $patch + 1
$inputVersion = "$major.$minor.$newPatch"
Write-Host "Auto-generated version: $inputVersion"
} else {
# Validate semantic version format (major.minor.patch)
$versionPattern = '^\d+\.\d+\.\d+$'
if ($inputVersion -notmatch $versionPattern) {
Write-Error "Invalid version format. Expected semantic version (e.g., 1.0.0), got: $inputVersion"
exit 1
}
}
# Date in YYYYMMDD (PST / America/Los_Angeles)
$pst = [TimeZoneInfo]::FindSystemTimeZoneById('America/Los_Angeles')
$dateInPst = [TimeZoneInfo]::ConvertTimeFromUtc([DateTime]::UtcNow, $pst)
$dateStr = $dateInPst.ToString("yyyyMMdd")
$alphaVersion = "$inputVersion-alpha-$dateStr"
Write-Host "Alpha version: $alphaVersion"
# Update package.json
$packageJson = Get-Content package.json | ConvertFrom-Json
$packageJson.version = $alphaVersion
$packageJson | ConvertTo-Json -Depth 10 | Set-Content package.json
echo "version=$alphaVersion" >> $env:GITHUB_OUTPUT
cleanup:
needs: prepare
runs-on: ubuntu-latest
env:
AWS_ACCESS_KEY_ID: ${{ secrets.R2_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.R2_SECRET_ACCESS_KEY }}
R2_ENDPOINT_URL: ${{ secrets.R2_ENDPOINT_URL }}
steps:
- name: Delete all objects in R2 bucket
run: |
aws s3 rm s3://feishin-nightly --recursive --endpoint-url $R2_ENDPOINT_URL
publish:
needs: [prepare, cleanup]
runs-on: ${{ matrix.os }}
env:
AWS_ACCESS_KEY_ID: ${{ secrets.R2_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.R2_SECRET_ACCESS_KEY }}
strategy:
matrix:
os: [windows-latest, macos-latest, ubuntu-latest]
steps:
- name: Checkout git repo
uses: actions/checkout@v1
- name: Install Node and PNPM
uses: pnpm/action-setup@v4.1.0
with:
version: 9
- name: Install dependencies
run: pnpm install
- name: Set version from prepare job
shell: pwsh
run: |
$version = "${{ needs.prepare.outputs.version }}"
Write-Host "Setting version: $version"
$packageJson = Get-Content package.json | ConvertFrom-Json
$packageJson.version = $version
$packageJson | ConvertTo-Json -Depth 10 | Set-Content package.json
- name: Build and Publish to R2 (Windows)
if: matrix.os == 'windows-latest'
uses: nick-invision/retry@v2.8.2
with:
timeout_minutes: 30
max_attempts: 3
retry_on: error
command: |
pnpm run publish:win:alpha
on_retry_command: pnpm cache delete
- name: Build and Publish to R2 (macOS)
if: matrix.os == 'macos-latest'
uses: nick-invision/retry@v2.8.2
with:
timeout_minutes: 30
max_attempts: 3
retry_on: error
command: |
pnpm run publish:mac:alpha
on_retry_command: pnpm cache delete
- name: Build and Publish to R2 (Linux)
if: matrix.os == 'ubuntu-latest'
uses: nick-invision/retry@v2.8.2
with:
timeout_minutes: 30
max_attempts: 3
retry_on: error
command: |
pnpm run publish:linux:alpha
on_retry_command: pnpm cache delete
- name: Build and Publish to R2 (Linux ARM64)
if: matrix.os == 'ubuntu-latest'
uses: nick-invision/retry@v2.8.2
with:
timeout_minutes: 30
max_attempts: 3
retry_on: error
command: |
pnpm run publish:linux-arm64:alpha
on_retry_command: pnpm cache delete
+4
View File
@@ -1,14 +1,17 @@
name: Publish (PR)
on:
workflow_dispatch:
pull_request:
branches:
- development
paths:
- 'src/**'
- 'electron-builder*.yml'
jobs:
wait-for-lint:
if: github.event_name == 'pull_request'
runs-on: ubuntu-latest
steps:
- name: Wait for Test workflow to complete
@@ -22,6 +25,7 @@ jobs:
publish:
needs: wait-for-lint
if: always() && (needs.wait-for-lint.result == 'success' || needs.wait-for-lint.result == 'skipped')
runs-on: ${{ matrix.os }}
strategy:
+1 -2
View File
@@ -16,6 +16,5 @@ jobs:
- uses: vedantmgoyal9/winget-releaser@main
with:
identifier: jeffvli.Feishin
installers-regex: 'Feishin-*-win-x64\.exe'
installers-regex: 'Feishin-*-win-(x64|arm64)\.exe'
token: ${{ secrets.WINGET_ACC_TOKEN }}
+3 -1
View File
@@ -20,6 +20,8 @@ COPY --chown=nginx:nginx --from=builder /app/out/web /usr/share/nginx/html
COPY ./settings.js.template /etc/nginx/templates/settings.js.template
COPY ng.conf.template /etc/nginx/templates/default.conf.template
ENV PUBLIC_PATH="/"
ENV SERVER_LOCK=false SERVER_NAME="" SERVER_TYPE="" SERVER_URL="" REMOTE_URL=""
ENV LEGACY_AUTHENTICATION="" ANALYTICS_DISABLED="" PUBLIC_PATH="/"
EXPOSE 9180
CMD ["nginx", "-g", "daemon off;"]
+14 -2
View File
@@ -43,7 +43,7 @@ Rewrite of [Sonixd](https://github.com/jeffvli/sonixd).
## Screenshots
<a href="https://raw.githubusercontent.com/jeffvli/feishin/development/media/preview_full_screen_player.png"><img src="https://raw.githubusercontent.com/jeffvli/feishin/development/media/preview_full_screen_player.png" width="49.5%"/></a> <a href="https://raw.githubusercontent.com/jeffvli/feishin/development/media/preview_album_artist_detail.png"><img src="https://raw.githubusercontent.com/jeffvli/feishin/development/media/preview_album_artist_detail.png" width="49.5%"/></a> <a href="https://raw.githubusercontent.com/jeffvli/feishin/development/media/preview_album_detail.png"><img src="https://raw.githubusercontent.com/jeffvli/feishin/development/media/preview_album_detail.png" width="49.5%"/></a> <a href="https://raw.githubusercontent.com/jeffvli/feishin/development/media/preview_smart_playlist.png"><img src="https://raw.githubusercontent.com/jeffvli/feishin/development/media/preview_smart_playlist.png" width="49.5%"/></a>
<a href="./media/preview_full_screen_player.png"><img src="./media/preview_full_screen_player.png" width="49.5%"/></a> <a href="./media/preview_album_artist_detail.png"><img src="./media/preview_album_artist_detail.png" width="49.5%"/></a> <a href="./media/preview_album_detail.png"><img src="./media/preview_album_detail.png" width="49.5%"/></a> <a href="./media/preview_smart_playlist.png"><img src="./media/preview_smart_playlist.png" width="49.5%"/></a>
## Getting Started
@@ -62,18 +62,21 @@ For media keys to work, you will be prompted to allow Feishin to be a Trusted Ac
We provide a small install script to download the latest `.AppImage`, make it executable, and also download the icons required by Desktop Environments. Finally, it generates a `.desktop` file to add Feishin to your Application Launcher.
Simply run the installer like this:
```sh
dir=/your/application/directory
curl 'https://raw.githubusercontent.com/jeffvli/feishin/refs/heads/development/install-feishin-appimage' | sh -s -- "$dir"
```
The script also has an option to add launch arguments to run Feishin in native Wayland mode. Note that this is experimental in Electron and therefore not officially supported. If you want to use it, run this instead:
```sh
dir=/your/application/directory
curl 'https://raw.githubusercontent.com/jeffvli/feishin/refs/heads/development/install-feishin-appimage' | sh -s -- "$dir" wayland-native
```
It also provides a simple uninstall routine, removing the downloaded files:
```sh
dir=/your/application/directory
curl 'https://raw.githubusercontent.com/jeffvli/feishin/refs/heads/development/install-feishin-appimage' | sh -s -- "$dir" remove
@@ -111,6 +114,9 @@ services:
- SERVER_LOCK=true # When true AND name/type/url are set, only username/password can be toggled
- SERVER_TYPE=jellyfin # the allowed types are: jellyfin, navidrome, subsonic. These values are case insensitive
- SERVER_URL= # http://address:port or https://address:port
= REMOTE_URL= # http://address or https://address
- LEGACY_AUTHENTICATION=false # When SERVER_LOCK is true, sets the legacy (plaintext) authentication flag for Subsonic/OpenSubsonic servers
- ANALYTICS_DISABLED=true # Set to true to disable Umami analytics tracking
ports:
- 9180:9180
# Alternatively, to restrict to only localhost, - 127.0.0.1:9180:8190
@@ -127,7 +133,13 @@ services:
3. _Optional_ - If you want to host Feishin on a subpath (not `/`), then pass in the following environment variable: `PUBLIC_PATH=PATH`. For example, to host on `/feishin`, pass in `PUBLIC_PATH=/feishin`.
4. _Optional_ - To hard code the server url, pass the following environment variables: `SERVER_NAME`, `SERVER_TYPE` (one of `jellyfin` or `navidrome` or `subsonic`), `SERVER_URL`. To prevent users from changing these settings, pass `SERVER_LOCK=true`. This can only be set if all three of the previous values are set.
4. _Optional_ - To hard code the server url, pass the following environment variables: `SERVER_NAME`, `SERVER_TYPE` (one of `jellyfin` or `navidrome` or `subsonic`), `SERVER_URL`. To prevent users from changing these settings, pass `SERVER_LOCK=true`. This can only be set if all three of the previous values are set. When `SERVER_LOCK=true`, you can also set `LEGACY_AUTHENTICATION=true` or `LEGACY_AUTHENTICATION=false` to configure the legacy authentication flag for the server (only applicable for Subsonic/OpenSubsonic servers).
5. _Optional_ - If your server uses a separate public-facing URL than what integrating applications use internally to communicate with your server, such as a separate Navidrome `ShareURL`, set `REMOTE_URL` to said public-facing URL.
6. _Optional_ - To disable Umami analytics tracking in the Docker/web version, set the environment variable `ANALYTICS_DISABLED=true`. When enabled, the analytics script will not be loaded and all tracking will be disabled.
7. _Optional_ - App settings (theme, language, sidebar options, etc.) can be overridden with environment variables on first run. The variables use the `FS_` prefix (e.g. `FS_GENERAL_THEME=defaultDark`, `FS_GENERAL_LANGUAGE=de`). See [the settings environment variable documentation](docs/ENV_SETTINGS.md) for the full list.
## FAQ
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.

Before

Width:  |  Height:  |  Size: 154 KiB

After

Width:  |  Height:  |  Size: 73 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.3 KiB

After

Width:  |  Height:  |  Size: 6.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 651 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 48 KiB

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 KiB

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 277 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 447 B

Binary file not shown.
Binary file not shown.

Before

Width:  |  Height:  |  Size: 176 KiB

After

Width:  |  Height:  |  Size: 422 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 48 KiB

After

Width:  |  Height:  |  Size: 32 KiB

+7 -4
View File
@@ -1,13 +1,16 @@
services:
feishin:
container_name: feishin
image: 'ghcr.io/jeffvli/feishin:latest'
image: "ghcr.io/jeffvli/feishin:latest"
restart: unless-stopped
environment:
- SERVER_NAME=jellyfin # pre-defined server name
- SERVER_LOCK=true # When true AND name/type/url are set, only username/password can be toggled
- SERVER_LOCK=false # When true AND name/type/url are set, only username/password can be toggled
- SERVER_TYPE=jellyfin # the allowed types are: jellyfin, navidrome, subsonic. These values are case insensitive
- SERVER_URL= # http://address:port or https://address:port
- SERVER_URL=http://localhost:8096 # http://address:port or https://address:port
# - REMOTE_URL=http://share.localhost # Used for compatibility with external functionality, such as custom sharing URLs on Navidrome
- LEGACY_AUTHENTICATION=false # When SERVER_LOCK is true, sets the legacyauth flag for server authentication (true or false)
- ANALYTICS_DISABLED=false # Set to true to disable Umami analytics tracking
ports:
- 9180:9180
# Alternatively, to restrict to only localhost, - 127.0.0.1:9180:8190
# Alternatively, to restrict to only localhost, - 127.0.0.1:9180:8190
+126
View File
@@ -0,0 +1,126 @@
# Environment variables for settings (web / Docker)
These variables override app settings **on first run** when no persisted settings exist. They are injected via `settings.js` (from `settings.js.template`) and only apply to the **web** build.
**Format:** All values are strings; booleans use `true`/`false`, numbers are numeric strings. Leave unset or empty to use the default.
---
## General
| Setting | Default | Env variable | Available values / Description |
|-------------|---------|--------------|--------------------------------|
| `general.accent` | `rgb(53, 116, 252)` | `FS_GENERAL_ACCENT` | CSS `rgb(r, g, b)` string (e.g. `rgb(53, 116, 252)`). Invalid values are ignored. |
| `general.albumBackground` | `false` | `FS_GENERAL_ALBUM_BACKGROUND` | `true` / `false` — Show album background image. |
| `general.albumBackgroundBlur` | `3` | `FS_GENERAL_ALBUM_BACKGROUND_BLUR` | Blur amount for album background (number). |
| `general.artistBackground` | `true` | `FS_GENERAL_ARTIST_BACKGROUND` | `true` / `false` — Show artist background image. |
| `general.artistBackgroundBlur` | `3` | `FS_GENERAL_ARTIST_BACKGROUND_BLUR` | Blur amount for artist background (number). |
| `general.blurExplicitImages` | `false` | `FS_GENERAL_BLUR_EXPLICIT_IMAGES` | `true` / `false` — Blur explicit images. |
| `general.combinedLyricsAndVisualizer` | `false` | `FS_GENERAL_COMBINED_LYRICS_AND_VISUALIZER` | `true` / `false` — Combine lyrics and visualizer panel. |
| `general.enableGridMultiSelect` | `false` | `FS_GENERAL_ENABLE_GRID_MULTI_SELECT` | `true` / `false` — Enable multi-select in grid views. |
| `general.externalLinks` | `true` | `FS_GENERAL_EXTERNAL_LINKS` | `true` / `false` — Show external links in UI. |
| `general.followCurrentSong` | `true` | `FS_GENERAL_FOLLOW_CURRENT_SONG` | `true` / `false` — Follow current song in list. |
| `general.followSystemTheme` | `false` | `FS_GENERAL_FOLLOW_SYSTEM_THEME` | `true` / `false` — Use OS light/dark preference. |
| `general.homeFeature` | `true` | `FS_GENERAL_HOME_FEATURE` | `true` / `false` — Show home featured carousel. |
| `general.homeFeatureStyle` | `single` | `FS_GENERAL_HOME_FEATURE_STYLE` | `multiple` / `single` — Home featured carousel style. |
| `general.language` | `en` | `FS_GENERAL_LANGUAGE` | UI language code (e.g. `en`, `de`, `fr`). |
| `general.theme` | `defaultDark` | `FS_GENERAL_THEME` | One of: `ayuDark`, `ayuLight`, `catppuccinLatte`, `catppuccinMocha`, `defaultDark`, `defaultLight`, `dracula`, `githubDark`, `githubLight`, `glassyDark`, `gruvboxDark`, `gruvboxLight`, `highContrastDark`, `highContrastLight`, `materialDark`, `materialLight`, `monokai`, `nightOwl`, `nord`, `oneDark`, `rosePine`, `rosePineDawn`, `rosePineMoon`, `shadesOfPurple`, `solarizedDark`, `solarizedLight`, `tokyoNight`, `vscodeDarkPlus`, `vscodeLightPlus`. |
| `general.themeDark` | `defaultDark` | `FS_GENERAL_THEME_DARK` | Same as theme (used when system is dark). |
| `general.themeLight` | `defaultLight` | `FS_GENERAL_THEME_LIGHT` | Same as theme (used when system is light). |
| `general.lastfmApiKey` | *(empty)* | `FS_GENERAL_LASTFM_API_KEY` | Last.fm API key. |
| `general.lastFM` | `true` | `FS_GENERAL_LAST_FM` | `true` / `false` — Enable Last.fm. |
| `general.musicBrainz` | `true` | `FS_GENERAL_MUSIC_BRAINZ` | `true` / `false` — MusicBrainz links. |
| `general.nativeAspectRatio` | `false` | `FS_GENERAL_NATIVE_ASPECT_RATIO` | `true` / `false` — Use native cover art aspect ratio. |
| `general.pathReplace` | *(empty)* | `FS_GENERAL_PATH_REPLACE` | Path pattern to replace (e.g. server path in Docker). |
| `general.pathReplaceWith` | *(empty)* | `FS_GENERAL_PATH_REPLACE_WITH` | Replacement path. |
| `general.playerbarOpenDrawer` | `false` | `FS_GENERAL_PLAYERBAR_OPEN_DRAWER` | `true` / `false` — Open queue/lyrics as drawer from player bar. |
| `general.primaryShade` | `6` | `FS_GENERAL_PRIMARY_SHADE` | Mantine primary shade 09 (number). |
| `general.resume` | `true` | `FS_GENERAL_RESUME` | `true` / `false` — Resume playback on load. |
| `general.showLyricsInSidebar` | `true` | `FS_GENERAL_SHOW_LYRICS_IN_SIDEBAR` | `true` / `false` — Show lyrics in sidebar. |
| `general.showRatings` | `true` | `FS_GENERAL_SHOW_RATINGS` | `true` / `false` — Show star ratings. |
| `general.showVisualizerInSidebar` | `true` | `FS_GENERAL_SHOW_VISUALIZER_IN_SIDEBAR` | `true` / `false` — Show visualizer in sidebar. |
| `general.sidebarCollapsedNavigation` | `true` | `FS_GENERAL_SIDEBAR_COLLAPSED_NAVIGATION` | `true` / `false` — Start with collapsed sidebar nav. |
| `general.sidebarCollapseShared` | `false` | `FS_GENERAL_SIDEBAR_COLLAPSE_SHARED` | `true` / `false` — Share sidebar collapse state. |
| `general.sidebarPlaylistList` | `true` | `FS_GENERAL_SIDEBAR_PLAYLIST_LIST` | `true` / `false` — Show playlist list in sidebar. |
| `general.sidebarPlaylistSorting` | `false` | `FS_GENERAL_SIDEBAR_PLAYLIST_SORTING` | `true` / `false` — Enable playlist sorting in sidebar. |
| `general.sideQueueType` | `sideQueue` | `FS_GENERAL_SIDE_QUEUE_TYPE` | `sideDrawerQueue` / `sideQueue` — Side play queue style. |
| `general.useThemeAccentColor` | `false` | `FS_GENERAL_USE_THEME_ACCENT_COLOR` | `true` / `false` — Use themes accent color instead of custom. |
| `general.useThemePrimaryShade` | `true` | `FS_GENERAL_USE_THEME_PRIMARY_SHADE` | `true` / `false` — Use themes primary shade. |
| `general.zoomFactor` | `100` | `FS_GENERAL_ZOOM_FACTOR` | UI zoom percentage (number). |
---
## Playback
| Setting path | Default | Env variable | Available values / Description |
|-------------|---------|--------------|--------------------------------|
| `playback.mediaSession` | `false` | `FS_PLAYBACK_MEDIA_SESSION` | `true` / `false` — Media Session API (e.g. browser/media keys). |
| `playback.webAudio` | `true` | `FS_PLAYBACK_WEB_AUDIO` | `true` / `false` — Use Web Audio for playback. |
| `playback.audioFadeOnStatusChange` | `true` | `FS_PLAYBACK_AUDIO_FADE_ON_STATUS_CHANGE` | `true` / `false` — Fade on play/pause. |
| `playback.preservePitch` | `true` | `FS_PLAYBACK_PRESERVE_PITCH` | `true` / `false` — Preserve pitch when changing speed. |
| `playback.scrobble.enabled` | `true` | `FS_PLAYBACK_SCROBBLE_ENABLED` | `true` / `false` — Enable scrobbling. |
| `playback.scrobble.notify` | `false` | `FS_PLAYBACK_SCROBBLE_NOTIFY` | `true` / `false` — Scrobble notifications. |
| `playback.scrobble.scrobbleAtDuration` | `240` | `FS_PLAYBACK_SCROBBLE_AT_DURATION` | Seconds of playback before scrobble. |
| `playback.scrobble.scrobbleAtPercentage` | `75` | `FS_PLAYBACK_SCROBBLE_AT_PERCENTAGE` | Percentage of track before scrobble. |
| `playback.transcode.enabled` | `false` | `FS_PLAYBACK_TRANSCODE_ENABLED` | `true` / `false` — Enable transcoding. |
---
## Discord
| Setting path | Default | Env variable | Available values / Description |
|-------------|---------|--------------|--------------------------------|
| `discord.enabled` | `false` | `FS_DISCORD_ENABLED` | `true` / `false` — Discord rich presence. |
| `discord.clientId` | *(built-in)* | `FS_DISCORD_CLIENT_ID` | Custom Discord application ID. |
| `discord.displayType` | `feishin` | `FS_DISCORD_DISPLAY_TYPE` | `artist` / `feishin` / `song`. |
| `discord.linkType` | `none` | `FS_DISCORD_LINK_TYPE` | `last_fm` / `musicbrainz` / `musicbrainz_last_fm` / `none`. |
| `discord.showAsListening` | `false` | `FS_DISCORD_SHOW_AS_LISTENING` | `true` / `false`. |
| `discord.showPaused` | `true` | `FS_DISCORD_SHOW_PAUSED` | `true` / `false` — Show paused state. |
| `discord.showServerImage` | `false` | `FS_DISCORD_SHOW_SERVER_IMAGE` | `true` / `false`. |
| `discord.showStateIcon` | `true` | `FS_DISCORD_SHOW_STATE_ICON` | `true` / `false`. |
---
## Lyrics
| Setting path | Default | Env variable | Available values / Description |
|-------------|---------|--------------|--------------------------------|
| `lyrics.fetch` | `true` | `FS_LYRICS_FETCH` | `true` / `false` — Fetch lyrics. |
| `lyrics.follow` | `true` | `FS_LYRICS_FOLLOW` | `true` / `false` — Follow current line. |
| `lyrics.delayMs` | `0` | `FS_LYRICS_DELAY_MS` | Sync delay in milliseconds. |
| `lyrics.preferLocalLyrics` | `true` | `FS_LYRICS_PREFER_LOCAL` | `true` / `false` — Prefer local lyric files. |
| `lyrics.showMatch` | `true` | `FS_LYRICS_SHOW_MATCH` | `true` / `false`. |
| `lyrics.showProvider` | `true` | `FS_LYRICS_SHOW_PROVIDER` | `true` / `false`. |
| `lyrics.enableAutoTranslation` | `false` | `FS_LYRICS_ENABLE_AUTO_TRANSLATION` | `true` / `false`. |
| `lyrics.translationApiKey` | *(empty)* | `FS_LYRICS_TRANSLATION_API_KEY` | API key for lyric translation. |
| `lyrics.translationTargetLanguage` | `en` | `FS_LYRICS_TRANSLATION_TARGET_LANGUAGE` | Target language code. |
| `lyrics.alignment` | `center` | `FS_LYRICS_ALIGNMENT` | `center` / `left` / `right`. |
---
## Auto DJ
| Setting path | Default | Env variable | Available values / Description |
|-------------|---------|--------------|--------------------------------|
| `autoDJ.enabled` | `false` | `FS_AUTO_DJ_ENABLED` | `true` / `false`. |
| `autoDJ.itemCount` | `5` | `FS_AUTO_DJ_ITEM_COUNT` | Number of items to add. |
| `autoDJ.timing` | `1` | `FS_AUTO_DJ_TIMING` | Timing value (number). |
---
## CSS
| Setting path | Default | Env variable | Available values / Description |
|-------------|---------|--------------|--------------------------------|
| `css.content` | *(empty)* | `FS_CSS_CONTENT` | Custom CSS string (sanitized like in-app custom CSS). Set `FS_CSS_ENABLED=true` to apply. |
| `css.enabled` | `false` | `FS_CSS_ENABLED` | `true` / `false` — Enable custom CSS. |
---
## Font
| Setting path | Default | Env variable | Available values / Description |
|-------------|---------|--------------|--------------------------------|
| `font.type` | `builtIn` | `FS_FONT_TYPE` | `builtIn` / `system` / `custom`. |
| `font.builtIn` | `Inter` | `FS_FONT_BUILT_IN` | Built-in font name. |
| `font.system` | *(empty)* | `FS_FONT_SYSTEM` | System font name (when type is `system`). |
+72
View File
@@ -0,0 +1,72 @@
appId: org.jeffvli.feishin
productName: Feishin
artifactName: ${productName}-${version}-${os}-${arch}.${ext}
electronVersion: 39.4.0
directories:
buildResources: assets
files:
- 'out/**/*'
- 'package.json'
extraResources:
- assets/**
asarUnpack:
- resources/**
win:
target:
- target: zip
arch:
- x64
- arm64
- target: nsis
arch:
- x64
- arm64
icon: assets/icons/icon.ico
nsis:
allowToChangeInstallationDirectory: true
oneClick: false
shortcutName: ${productName}
uninstallDisplayName: ${productName}
createDesktopShortcut: always
mac:
target:
- target: dmg
arch:
- arm64
- x64
- target: zip
arch:
- arm64
- x64
icon: assets/icons/icon.icns
type: distribution
hardenedRuntime: false
identity: "-"
gatekeeperAssess: false
notarize: false
dmg:
contents: [{ x: 130, y: 220 }, { x: 410, y: 220, type: link, path: /Applications }]
linux:
target:
- AppImage
- deb
- tar.xz
category: AudioVideo;Audio;Player
icon: assets/icons/icon.png
artifactName: ${productName}-${os}-${arch}.${ext}
toolsets:
appimage: "1.0.2"
npmRebuild: false
publish:
provider: s3
bucket: feishin-nightly
channel: alpha
endpoint: https://065f090c64de2dc707dd70ac72db9669.r2.cloudflarestorage.com
+23 -11
View File
@@ -1,7 +1,7 @@
appId: org.jeffvli.feishin
productName: Feishin
artifactName: ${productName}-${version}-${os}-${arch}.${ext}
electronVersion: 38.5.0
electronVersion: 39.4.0
directories:
buildResources: assets
files:
@@ -13,9 +13,15 @@ asarUnpack:
- resources/**
win:
target:
- zip
- nsis
icon: assets/icons/icon.png
- target: zip
arch:
- x64
- arm64
- target: nsis
arch:
- x64
- arm64
icon: assets/icons/icon.ico
nsis:
allowToChangeInstallationDirectory: true
@@ -26,15 +32,18 @@ nsis:
mac:
target:
target: default
arch:
- arm64
- x64
- target: dmg
arch:
- arm64
- x64
- target: zip
arch:
- arm64
- x64
icon: assets/icons/icon.icns
type: distribution
hardenedRuntime: true
entitlements: assets/entitlements.mac.plist
entitlementsInherit: assets/entitlements.mac.plist
hardenedRuntime: false
identity: "-"
gatekeeperAssess: false
notarize: false
@@ -50,6 +59,9 @@ linux:
icon: assets/icons/icon.png
artifactName: ${productName}-${os}-${arch}.${ext}
toolsets:
appimage: "1.0.2"
npmRebuild: false
publish:
provider: github
+24 -11
View File
@@ -1,7 +1,7 @@
appId: org.jeffvli.feishin
productName: Feishin
artifactName: ${productName}-${version}-${os}-${arch}.${ext}
electronVersion: 38.5.0
electronVersion: 39.4.0
directories:
buildResources: assets
files:
@@ -13,9 +13,15 @@ asarUnpack:
- resources/**
win:
target:
- zip
- nsis
icon: assets/icons/icon.png
- target: zip
arch:
- x64
- arm64
- target: nsis
arch:
- x64
- arm64
icon: assets/icons/icon.ico
nsis:
allowToChangeInstallationDirectory: true
@@ -26,15 +32,18 @@ nsis:
mac:
target:
target: default
arch:
- arm64
- x64
- target: dmg
arch:
- arm64
- x64
- target: zip
arch:
- arm64
- x64
icon: assets/icons/icon.icns
type: distribution
hardenedRuntime: true
entitlements: assets/entitlements.mac.plist
entitlementsInherit: assets/entitlements.mac.plist
hardenedRuntime: false
identity: "-"
gatekeeperAssess: false
notarize: false
@@ -50,7 +59,11 @@ linux:
icon: assets/icons/icon.png
artifactName: ${productName}-${os}-${arch}.${ext}
toolsets:
appimage: "1.0.2"
npmRebuild: false
afterAllArtifactBuild: scripts/after-all-artifact-build.mjs
publish:
provider: github
owner: jeffvli
+8
View File
@@ -6,6 +6,7 @@ import dynamicImportPlugin from 'vite-plugin-dynamic-import';
import { ViteEjsPlugin } from 'vite-plugin-ejs';
const currentOSEnv = process.platform;
const electronRendererTarget = 'chrome87';
const config: UserConfig = {
main: {
@@ -36,6 +37,9 @@ const config: UserConfig = {
},
},
preload: {
build: {
sourcemap: true,
},
plugins: [externalizeDepsPlugin()],
resolve: {
alias: {
@@ -48,7 +52,11 @@ const config: UserConfig = {
build: {
cssMinify: 'esbuild',
minify: 'esbuild',
modulePreload: {
polyfill: false,
},
sourcemap: true,
target: electronRendererTarget,
},
css: {
modules: {
Binary file not shown.
Binary file not shown.

Before

Width:  |  Height:  |  Size: 118 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 81 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 77 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 214 KiB

BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 101 KiB

+104
View File
@@ -0,0 +1,104 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="512"
height="512"
viewBox="0 0 512 512"
version="1.1"
id="svg1"
xml:space="preserve"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"><defs
id="defs1"><linearGradient
id="linearGradient1"><stop
style="stop-color:#dfdfdf;stop-opacity:1;"
offset="0"
id="stop1" /><stop
style="stop-color:#ffffff;stop-opacity:1;"
offset="1"
id="stop2" /></linearGradient><filter
style="color-interpolation-filters:sRGB"
id="filter249"
x="-0.61395349"
y="-0.61395349"
width="2.227907"
height="2.5069767"><feFlood
result="flood"
in="SourceGraphic"
flood-opacity="0.498039"
flood-color="rgb(0,0,0)"
id="feFlood247" /><feGaussianBlur
result="blur"
in="SourceGraphic"
stdDeviation="1.000000"
id="feGaussianBlur247" /><feOffset
result="offset"
in="blur"
dx="0.000000"
dy="2"
id="feOffset247" /><feComposite
result="comp1"
operator="in"
in="flood"
in2="offset"
id="feComposite248" /><feComposite
result="fbSourceGraphic"
operator="over"
in="SourceGraphic"
id="feComposite249"
in2="comp1" /><feColorMatrix
result="fbSourceGraphicAlpha"
in="fbSourceGraphic"
values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
id="feColorMatrix122" /><feFlood
id="feFlood122"
result="flood"
in="fbSourceGraphic"
flood-opacity="0.196078"
flood-color="rgb(0,0,0)" /><feGaussianBlur
id="feGaussianBlur122"
result="blur"
in="fbSourceGraphic"
stdDeviation="10.000000" /><feOffset
id="feOffset122"
result="offset"
in="blur"
dx="0.000000"
dy="10.000000" /><feComposite
id="feComposite122"
result="comp1"
operator="in"
in="flood"
in2="offset" /><feComposite
id="feComposite123"
result="comp2"
operator="over"
in="fbSourceGraphic"
in2="comp1" /></filter><linearGradient
xlink:href="#linearGradient1"
id="linearGradient2"
x1="256"
y1="0"
x2="256"
y2="512"
gradientUnits="userSpaceOnUse" /></defs><g
id="layer1"
style="display:inline"><circle
style="display:inline;fill:url(#linearGradient2);stroke-width:25;stroke-linecap:round;stroke-linejoin:round;paint-order:markers fill stroke"
id="background"
cx="256"
cy="256"
r="256" /><circle
style="opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2.19597;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;paint-order:markers fill stroke;filter:url(#filter249)"
id="dot"
cx="256"
cy="240.31155"
r="21.5" /><path
id="bottom"
style="opacity:1;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter249)"
d="M 220.84961,277.95117 183.5,315.59961 219.5,351.69922 239.5,332 c 0,0 5.85615,-6.19922 16.5,-6.19922 10.64385,0 16.5,6.19922 16.5,6.19922 l 20,19.69922 36,-36.09961 -37.34961,-37.64844 A 51.5,51.5 0 0 1 256,291.8125 51.5,51.5 0 0 1 220.84961,277.95117 Z" /><path
id="main"
style="display:inline;opacity:1;fill:#000000;fill-opacity:1;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;paint-order:markers fill stroke;filter:url(#filter249)"
d="m 256,145.40039 c -7.11895,0 -13.56326,2.88552 -18.22852,7.55078 L 66.96875,323.46875 C 62.354158,328.08334 59.5,334.45837 59.5,341.5 c 0,14.08326 11.416739,25.5 25.5,25.5 7.04163,0 13.41666,-2.85416 18.03125,-7.46875 L 206.92578,255.93359 A 51.5,51.5 0 0 1 204.5,240.3125 a 51.5,51.5 0 0 1 51.5,-51.5 51.5,51.5 0 0 1 51.5,51.5 51.5,51.5 0 0 1 -2.42578,15.62109 L 408.96875,359.53125 C 413.58334,364.14585 419.95837,367 427,367 c 14.08326,0 25.5,-11.41674 25.5,-25.5 0,-7.04163 -2.85415,-13.41666 -7.46875,-18.03125 L 274.22852,152.95117 C 269.56326,148.2859 263.11895,145.40039 256,145.40039 Z" /></g></svg>

After

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 644 KiB

After

Width:  |  Height:  |  Size: 733 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 186 KiB

After

Width:  |  Height:  |  Size: 371 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 465 KiB

After

Width:  |  Height:  |  Size: 869 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 887 KiB

After

Width:  |  Height:  |  Size: 990 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 396 KiB

After

Width:  |  Height:  |  Size: 356 KiB

+3
View File
@@ -1,5 +1,6 @@
server {
listen 9180;
listen [::]:9180;
sendfile on;
default_type application/octet-stream;
@@ -19,9 +20,11 @@ server {
location ${PUBLIC_PATH}settings.js {
alias /etc/nginx/conf.d/settings.js;
add_header Cache-Control "no-store";
}
location ${PUBLIC_PATH}/settings.js {
alias /etc/nginx/conf.d/settings.js;
add_header Cache-Control "no-store";
}
}
-18279
View File
File diff suppressed because it is too large Load Diff
+19 -13
View File
@@ -1,6 +1,6 @@
{
"name": "feishin",
"version": "1.0.1",
"version": "1.8.0",
"description": "A modern self-hosted music player.",
"keywords": [
"subsonic",
@@ -30,7 +30,7 @@
"dev:watch": "electron-vite dev --watch",
"i18next": "i18next -c src/i18n/i18next-parser.config.js",
"postinstall": "electron-builder install-app-deps",
"lint": "pnpm run lint-code && pnpm run lint-styles",
"lint": "pnpm run typecheck && pnpm run lint-code && pnpm run lint-styles",
"lint-code": "eslint --max-warnings=0 --cache .",
"lint-code:fix": "eslint --cache --fix .",
"lint-styles": "stylelint --max-warnings=0 'src/**/*.{css,scss}'",
@@ -44,14 +44,22 @@
"package:mac": "pnpm run build && electron-builder --mac",
"package:mac:pr": "pnpm run build && electron-builder --mac --publish never",
"package:win": "pnpm run build && electron-builder --win",
"package:win-arm64:pr": "pnpm run build && electron-builder --win --arm64 --publish never",
"package:win:pr": "pnpm run build && electron-builder --win --publish never",
"publish:linux": "pnpm run build && electron-builder --publish always --linux",
"publish:linux-arm64": "pnpm run build && electron-builder --publish always --linux --arm64",
"publish:linux-arm64:alpha": "pnpm run build && electron-builder --config electron-builder-alpha.yml --publish always --linux --arm64",
"publish:linux-arm64:beta": "pnpm run build && electron-builder --config electron-builder-beta.yml --publish always --linux --arm64",
"publish:linux:alpha": "pnpm run build && electron-builder --config electron-builder-alpha.yml --publish always --linux",
"publish:linux:beta": "pnpm run build && electron-builder --config electron-builder-beta.yml --publish always --linux",
"publish:mac": "pnpm run build && electron-builder --publish always --mac",
"publish:mac:alpha": "pnpm run build && electron-builder --config electron-builder-alpha.yml --publish always --mac",
"publish:mac:beta": "pnpm run build && electron-builder --config electron-builder-beta.yml --publish always --mac",
"publish:win": "pnpm run build && electron-builder --publish always --win",
"publish:win-arm64": "pnpm run build && electron-builder --publish always --win --arm64",
"publish:win-arm64:alpha": "pnpm run build && electron-builder --config electron-builder-alpha.yml --publish always --win --arm64",
"publish:win-arm64:beta": "pnpm run build && electron-builder --config electron-builder-beta.yml --publish always --win --arm64",
"publish:win:alpha": "pnpm run build && electron-builder --config electron-builder-alpha.yml --publish always --win",
"publish:win:beta": "pnpm run build && electron-builder --config electron-builder-beta.yml --publish always --win",
"start": "electron-vite preview",
"typecheck": "pnpm run typecheck:node && pnpm run typecheck:web",
@@ -81,9 +89,9 @@
"@wavesurfer/react": "^1.0.11",
"@xhayper/discord-rpc": "^1.3.0",
"audiomotion-analyzer": "^4.5.1",
"axios": "^1.13.2",
"butterchurn": "^2.6.7",
"butterchurn-presets": "^2.4.7",
"axios": "^1.13.5",
"butterchurn": "^3.0.0-beta.5",
"butterchurn-presets": "^3.0.0-beta.4",
"cheerio": "^1.1.2",
"clsx": "^2.1.1",
"cmdk": "^1.1.1",
@@ -95,7 +103,7 @@
"electron-store": "^8.2.0",
"electron-updater": "^6.6.2",
"fast-average-color": "^9.5.0",
"fast-xml-parser": "^5.3.2",
"fast-xml-parser": "^5.3.6",
"format-duration": "^3.0.2",
"fuse.js": "^7.1.0",
"i18next": "^25.6.2",
@@ -103,7 +111,7 @@
"idb-keyval": "^6.2.2",
"immer": "^10.2.0",
"is-electron": "^2.2.2",
"lodash": "^4.17.21",
"lodash": "^4.17.23",
"md5": "^2.3.0",
"motion": "^12.23.24",
"mpris-service": "^2.1.2",
@@ -112,17 +120,15 @@
"nuqs": "^2.7.1",
"overlayscrollbars": "^2.11.1",
"overlayscrollbars-react": "^0.5.6",
"qs": "^6.14.0",
"qs": "^6.14.2",
"react": "^19.1.0",
"react-call": "^1.8.1",
"react-dom": "^19.1.0",
"react-error-boundary": "^5.0.0",
"react-i18next": "^16.3.3",
"react-icons": "^5.5.0",
"react-image": "^4.1.0",
"react-loading-skeleton": "^3.5.0",
"react-player": "^2.16.0",
"react-router": "^7.9.6",
"react-router": "^7.13.1",
"react-split-pane": "^3.0.4",
"react-virtualized-auto-sizer": "^1.0.26",
"react-window": "1.8.11",
@@ -150,8 +156,8 @@
"@vitejs/plugin-react": "^5.1.1",
"concurrently": "^9.2.1",
"cross-env": "^10.1.0",
"electron": "^38.5.0",
"electron-builder": "^26.0.12",
"electron": "^39.4.0",
"electron-builder": "^26.8.1",
"electron-devtools-installer": "^4.0.0",
"electron-vite": "^4.0.1",
"eslint": "^9.24.0",
+1246 -699
View File
File diff suppressed because it is too large Load Diff
+1
View File
@@ -23,6 +23,7 @@ export default defineConfig({
assetFileNames: '[name].[ext]',
chunkFileNames: '[name].js',
entryFileNames: '[name].js',
sourcemapExcludeSources: false,
},
},
sourcemap: true,
Binary file not shown.

Before

Width:  |  Height:  |  Size: 48 KiB

After

Width:  |  Height:  |  Size: 32 KiB

+45
View File
@@ -0,0 +1,45 @@
import { execSync } from 'child_process';
import path from 'path';
import { fileURLToPath } from 'url';
const __filename = fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename);
/**
* Electron-builder afterAllArtifactBuild hook
* Runs the app stream update script only for Linux builds
* Returns the metainfo file path to be included in published artifacts
*/
// This is not a typescript file, and is called by electron-builder, so we cannot use typescript features here.
// eslint-disable-next-line @typescript-eslint/explicit-function-return-type
export default async function afterAllArtifactBuild(buildResult) {
// Check if this build includes Linux as a target
const isLinux = Array.from(buildResult.platformToTargets.keys()).some(
(platform) => platform.name === 'linux',
);
if (isLinux) {
const updateScriptPath = path.join(__dirname, 'update-app-stream.mjs');
const projectRoot = path.resolve(__dirname, '..');
const metainfoFile = path.resolve(projectRoot, 'org.jeffvli.feishin.metainfo.xml');
console.log('Running app stream update for Linux build...');
try {
execSync(`node ${updateScriptPath} --replace-if-version-missing`, {
cwd: projectRoot,
stdio: 'inherit',
});
// Return the metainfo file to be included in published artifacts
return [metainfoFile];
} catch (error) {
console.error('Failed to update app stream:', error.message);
throw error;
}
}
// Return empty array if not a Linux build
return [];
}
+32 -11
View File
@@ -3,30 +3,51 @@ import fs from 'fs';
import path from 'path';
const args = process.argv.slice(2);
if (args.length > 3) {
console.error('Usage: node update-app-stream.js [package-file] [date] [metainfo-file]');
// Parse flags and positional arguments
const flags = args.filter((arg) => arg.startsWith('--'));
const positionalArgs = args.filter((arg) => !arg.startsWith('--'));
const replaceIfVersionMissing = flags.includes('--replace-if-version-missing');
if (positionalArgs.length > 3) {
console.error(
'Usage: node update-app-stream.js [package-file] [date] [metainfo-file] [--replace-if-version-missing]',
);
process.exit(1);
}
const packageFile = args[0] || path.resolve(process.cwd(), 'package.json');
const packageFile = positionalArgs[0] || path.resolve(process.cwd(), 'package.json');
const packageContent = fs.readFileSync(packageFile, 'utf8');
const packageJson = JSON.parse(packageContent);
const version = packageJson.version;
const time = Math.floor((Date.parse(args[1]) || Date.now()) / 1000);
const metainfoFile = args[2] || path.resolve(process.cwd(), 'org.jeffvli.feishin.metainfo.xml');
const time = Math.floor((Date.parse(positionalArgs[1]) || Date.now()) / 1000);
const metainfoFile =
positionalArgs[2] || path.resolve(process.cwd(), 'org.jeffvli.feishin.metainfo.xml');
const parser = new XMLParser({ ignoreAttributes: false });
const metainfoContent = fs.readFileSync(metainfoFile, 'utf8');
const metainfo = parser.parse(metainfoContent);
if (!metainfo.component.releases.release.find((release) => release['@_version'] === version)) {
metainfo.component.releases.release.unshift({
'@_date': new Date(time * 1000).toISOString().split('T')[0],
'@_type': version.includes('-') ? 'development' : 'stable',
'@_version': version,
});
const newRelease = {
'@_date': new Date(time * 1000).toISOString().split('T')[0],
'@_type': version.includes('-') ? 'development' : 'stable',
'@_version': version,
};
if (replaceIfVersionMissing) {
// Replace all releases with only the current version
metainfo.component.releases.release = [newRelease];
} else {
// Default behavior: add new release if it doesn't exist
const releaseExists =
metainfo.component.releases.release.findIndex(
(release) => release['@_version'] === version,
) !== -1;
if (!releaseExists) {
metainfo.component.releases.release.unshift(newRelease);
}
}
const builder = new XMLBuilder({ format: true, ignoreAttributes: false, indentBy: ' ' });
+87 -1
View File
@@ -1 +1,87 @@
"use strict";window.SERVER_URL="${SERVER_URL}";window.SERVER_NAME="${SERVER_NAME}";window.SERVER_TYPE="${SERVER_TYPE}";window.SERVER_LOCK=${SERVER_LOCK};
"use strict";
window.SERVER_URL = "${SERVER_URL}";
window.REMOTE_URL = "${REMOTE_URL}";
window.SERVER_NAME = "${SERVER_NAME}";
window.SERVER_TYPE = "${SERVER_TYPE}";
window.SERVER_LOCK = "${SERVER_LOCK}";
window.LEGACY_AUTHENTICATION = "${LEGACY_AUTHENTICATION}";
window.ANALYTICS_DISABLED = "${ANALYTICS_DISABLED}";
window.FS_GENERAL_ACCENT = "${FS_GENERAL_ACCENT}";
window.FS_GENERAL_ALBUM_BACKGROUND = "${FS_GENERAL_ALBUM_BACKGROUND}";
window.FS_GENERAL_ALBUM_BACKGROUND_BLUR = "${FS_GENERAL_ALBUM_BACKGROUND_BLUR}";
window.FS_GENERAL_ARTIST_BACKGROUND = "${FS_GENERAL_ARTIST_BACKGROUND}";
window.FS_GENERAL_ARTIST_BACKGROUND_BLUR = "${FS_GENERAL_ARTIST_BACKGROUND_BLUR}";
window.FS_GENERAL_BLUR_EXPLICIT_IMAGES = "${FS_GENERAL_BLUR_EXPLICIT_IMAGES}";
window.FS_GENERAL_COMBINED_LYRICS_AND_VISUALIZER = "${FS_GENERAL_COMBINED_LYRICS_AND_VISUALIZER}";
window.FS_GENERAL_ENABLE_GRID_MULTI_SELECT = "${FS_GENERAL_ENABLE_GRID_MULTI_SELECT}";
window.FS_GENERAL_EXTERNAL_LINKS = "${FS_GENERAL_EXTERNAL_LINKS}";
window.FS_GENERAL_FOLLOW_CURRENT_SONG = "${FS_GENERAL_FOLLOW_CURRENT_SONG}";
window.FS_GENERAL_FOLLOW_SYSTEM_THEME = "${FS_GENERAL_FOLLOW_SYSTEM_THEME}";
window.FS_GENERAL_HOME_FEATURE = "${FS_GENERAL_HOME_FEATURE}";
window.FS_GENERAL_HOME_FEATURE_STYLE = "${FS_GENERAL_HOME_FEATURE_STYLE}";
window.FS_GENERAL_LANGUAGE = "${FS_GENERAL_LANGUAGE}";
window.FS_GENERAL_LAST_FM = "${FS_GENERAL_LAST_FM}";
window.FS_GENERAL_LASTFM_API_KEY = "${FS_GENERAL_LASTFM_API_KEY}";
window.FS_GENERAL_MUSIC_BRAINZ = "${FS_GENERAL_MUSIC_BRAINZ}";
window.FS_GENERAL_NATIVE_ASPECT_RATIO = "${FS_GENERAL_NATIVE_ASPECT_RATIO}";
window.FS_GENERAL_PATH_REPLACE = "${FS_GENERAL_PATH_REPLACE}";
window.FS_GENERAL_PATH_REPLACE_WITH = "${FS_GENERAL_PATH_REPLACE_WITH}";
window.FS_GENERAL_PLAYERBAR_OPEN_DRAWER = "${FS_GENERAL_PLAYERBAR_OPEN_DRAWER}";
window.FS_GENERAL_PRIMARY_SHADE = "${FS_GENERAL_PRIMARY_SHADE}";
window.FS_GENERAL_RESUME = "${FS_GENERAL_RESUME}";
window.FS_GENERAL_SHOW_LYRICS_IN_SIDEBAR = "${FS_GENERAL_SHOW_LYRICS_IN_SIDEBAR}";
window.FS_GENERAL_SHOW_RATINGS = "${FS_GENERAL_SHOW_RATINGS}";
window.FS_GENERAL_SHOW_VISUALIZER_IN_SIDEBAR = "${FS_GENERAL_SHOW_VISUALIZER_IN_SIDEBAR}";
window.FS_GENERAL_SIDEBAR_COLLAPSED_NAVIGATION = "${FS_GENERAL_SIDEBAR_COLLAPSED_NAVIGATION}";
window.FS_GENERAL_SIDEBAR_COLLAPSE_SHARED = "${FS_GENERAL_SIDEBAR_COLLAPSE_SHARED}";
window.FS_GENERAL_SIDEBAR_PLAYLIST_LIST = "${FS_GENERAL_SIDEBAR_PLAYLIST_LIST}";
window.FS_GENERAL_SIDEBAR_PLAYLIST_SORTING = "${FS_GENERAL_SIDEBAR_PLAYLIST_SORTING}";
window.FS_GENERAL_SIDE_QUEUE_TYPE = "${FS_GENERAL_SIDE_QUEUE_TYPE}";
window.FS_GENERAL_THEME = "${FS_GENERAL_THEME}";
window.FS_GENERAL_THEME_DARK = "${FS_GENERAL_THEME_DARK}";
window.FS_GENERAL_THEME_LIGHT = "${FS_GENERAL_THEME_LIGHT}";
window.FS_GENERAL_USE_THEME_ACCENT_COLOR = "${FS_GENERAL_USE_THEME_ACCENT_COLOR}";
window.FS_GENERAL_USE_THEME_PRIMARY_SHADE = "${FS_GENERAL_USE_THEME_PRIMARY_SHADE}";
window.FS_GENERAL_ZOOM_FACTOR = "${FS_GENERAL_ZOOM_FACTOR}";
window.FS_PLAYBACK_MEDIA_SESSION = "${FS_PLAYBACK_MEDIA_SESSION}";
window.FS_PLAYBACK_WEB_AUDIO = "${FS_PLAYBACK_WEB_AUDIO}";
window.FS_PLAYBACK_AUDIO_FADE_ON_STATUS_CHANGE = "${FS_PLAYBACK_AUDIO_FADE_ON_STATUS_CHANGE}";
window.FS_PLAYBACK_PRESERVE_PITCH = "${FS_PLAYBACK_PRESERVE_PITCH}";
window.FS_PLAYBACK_SCROBBLE_ENABLED = "${FS_PLAYBACK_SCROBBLE_ENABLED}";
window.FS_PLAYBACK_SCROBBLE_NOTIFY = "${FS_PLAYBACK_SCROBBLE_NOTIFY}";
window.FS_PLAYBACK_SCROBBLE_AT_DURATION = "${FS_PLAYBACK_SCROBBLE_AT_DURATION}";
window.FS_PLAYBACK_SCROBBLE_AT_PERCENTAGE = "${FS_PLAYBACK_SCROBBLE_AT_PERCENTAGE}";
window.FS_PLAYBACK_TRANSCODE_ENABLED = "${FS_PLAYBACK_TRANSCODE_ENABLED}";
window.FS_DISCORD_ENABLED = "${FS_DISCORD_ENABLED}";
window.FS_DISCORD_CLIENT_ID = "${FS_DISCORD_CLIENT_ID}";
window.FS_DISCORD_DISPLAY_TYPE = "${FS_DISCORD_DISPLAY_TYPE}";
window.FS_DISCORD_LINK_TYPE = "${FS_DISCORD_LINK_TYPE}";
window.FS_DISCORD_SHOW_AS_LISTENING = "${FS_DISCORD_SHOW_AS_LISTENING}";
window.FS_DISCORD_SHOW_PAUSED = "${FS_DISCORD_SHOW_PAUSED}";
window.FS_DISCORD_SHOW_SERVER_IMAGE = "${FS_DISCORD_SHOW_SERVER_IMAGE}";
window.FS_DISCORD_SHOW_STATE_ICON = "${FS_DISCORD_SHOW_STATE_ICON}";
window.FS_LYRICS_FETCH = "${FS_LYRICS_FETCH}";
window.FS_LYRICS_FOLLOW = "${FS_LYRICS_FOLLOW}";
window.FS_LYRICS_DELAY_MS = "${FS_LYRICS_DELAY_MS}";
window.FS_LYRICS_PREFER_LOCAL = "${FS_LYRICS_PREFER_LOCAL}";
window.FS_LYRICS_SHOW_MATCH = "${FS_LYRICS_SHOW_MATCH}";
window.FS_LYRICS_SHOW_PROVIDER = "${FS_LYRICS_SHOW_PROVIDER}";
window.FS_LYRICS_ENABLE_AUTO_TRANSLATION = "${FS_LYRICS_ENABLE_AUTO_TRANSLATION}";
window.FS_LYRICS_TRANSLATION_API_KEY = "${FS_LYRICS_TRANSLATION_API_KEY}";
window.FS_LYRICS_TRANSLATION_TARGET_LANGUAGE = "${FS_LYRICS_TRANSLATION_TARGET_LANGUAGE}";
window.FS_LYRICS_ALIGNMENT = "${FS_LYRICS_ALIGNMENT}";
window.FS_AUTO_DJ_ENABLED = "${FS_AUTO_DJ_ENABLED}";
window.FS_AUTO_DJ_ITEM_COUNT = "${FS_AUTO_DJ_ITEM_COUNT}";
window.FS_AUTO_DJ_TIMING = "${FS_AUTO_DJ_TIMING}";
window.FS_CSS_CONTENT = "${FS_CSS_CONTENT}";
window.FS_CSS_ENABLED = "${FS_CSS_ENABLED}";
window.FS_FONT_TYPE = "${FS_FONT_TYPE}";
window.FS_FONT_BUILT_IN = "${FS_FONT_BUILT_IN}";
window.FS_FONT_SYSTEM = "${FS_FONT_SYSTEM}";
+16 -11
View File
@@ -1,23 +1,23 @@
{
"action": {
"addToFavorites": "إضافة الى $t(entity.favorite_other)",
"addToPlaylist": "إضافة الى $t(entity.playlist_one)",
"addToFavorites": "إضافة الى $t(entity.favorite, {\"count\": 2})",
"addToPlaylist": "إضافة الى $t(entity.playlist, {\"count\": 1})",
"clearQueue": "مسح قائمة الإنتظار",
"createPlaylist": "إنشاء $t(entity.playlist_one)",
"deletePlaylist": "حذف $t(entity.playlist_one)",
"createPlaylist": "إنشاء $t(entity.playlist, {\"count\": 1})",
"deletePlaylist": "حذف $t(entity.playlist, {\"count\": 1})",
"deselectAll": "إلغاء تحديد الكل",
"editPlaylist": "تعديل $t(entity.playlist_one)",
"editPlaylist": "تعديل $t(entity.playlist, {\"count\": 1})",
"goToPage": "اذهب الى صفحة",
"moveToNext": "الذهاب الى التالي",
"moveToBottom": "الذهاب الى الأسفل",
"moveToTop": "الذهاب الى الأعلى",
"refresh": "$t(common.refresh)",
"removeFromFavorites": "حذف من $t(entity.favorite_other)",
"removeFromPlaylist": "حذف من $t(entity.playlist_one)",
"removeFromFavorites": "حذف من $t(entity.favorite, {\"count\": 2})",
"removeFromPlaylist": "حذف من $t(entity.playlist, {\"count\": 1})",
"removeFromQueue": "حذف من قائمة الإنتظار",
"setRating": "تحديد التقييم",
"toggleSmartPlaylistEditor": "تشغيل / إطفاء وضع التعديل لـ $t(entity.smartPlaylist)",
"viewPlaylists": "إظهار $t(entity.playlist_other)",
"viewPlaylists": "إظهار $t(entity.playlist, {\"count\": 2})",
"openIn": {
"lastfm": "فتح في Last.fm",
"musicbrainz": "فتح في MusicBrainz"
@@ -59,7 +59,7 @@
"configure": "تعديل",
"confirm": "تأكيد",
"create": "إنشاء",
"currentSong": "$t(entity.track_one) الحالي",
"currentSong": "$t(entity.track, {\"count\": 1}) الحالي",
"decrease": "تنقيص",
"delete": "حذف",
"descending": "تنازلي",
@@ -102,7 +102,7 @@
"path": "المسار",
"playerMustBePaused": "يجب إيقاف المشغل",
"preview": "معاينة",
"previousSong": "$t(entity.track_one) السابق",
"previousSong": "$t(entity.track, {\"count\": 1}) السابق",
"quit": "خروج",
"random": "عشوائي",
"rating": "التقييم",
@@ -117,7 +117,12 @@
"saveAndReplace": "حفظ واستبدال",
"saveAs": "حفظ بإسم",
"search": "بحث",
"setting": "إعداد",
"setting_zero": "إعداد",
"setting_one": "",
"setting_two": "",
"setting_few": "",
"setting_many": "",
"setting_other": "",
"share": "نشر",
"size": "حجم",
"sortOrder": "الترتيب",
+354 -102
View File
@@ -2,48 +2,55 @@
"page": {
"sidebar": {
"myLibrary": "La meva llibreria",
"albumArtists": "$t(entity.albumArtist_other)",
"albums": "$t(entity.album_other)",
"artists": "$t(entity.artist_other)",
"folders": "$t(entity.folder_other)",
"genres": "$t(entity.genre_other)",
"albumArtists": "$t(entity.albumArtist, {\"count\": 2})",
"albums": "$t(entity.album, {\"count\": 2})",
"artists": "$t(entity.artist, {\"count\": 2})",
"folders": "$t(entity.folder, {\"count\": 2})",
"genres": "$t(entity.genre, {\"count\": 2})",
"home": "$t(common.home)",
"playlists": "$t(entity.playlist_other)",
"playlists": "$t(entity.playlist, {\"count\": 2})",
"search": "$t(common.search)",
"settings": "$t(common.setting_other)",
"tracks": "$t(entity.track_other)",
"nowPlaying": "ara sona",
"shared": "$t(entity.playlist_other) compartida",
"favorites": "$t(entity.favorite_other)",
"radio": "$t(entity.radioStation_other)"
"settings": "$t(common.setting, {\"count\": 2})",
"tracks": "$t(entity.track, {\"count\": 2})",
"nowPlaying": "s'està reproduint",
"shared": "$t(entity.playlist, {\"count\": 2}) compartides",
"favorites": "$t(entity.favorite, {\"count\": 2})",
"radio": "$t(entity.radioStation, {\"count\": 2})",
"collections": "col·leccions"
},
"albumArtistDetail": {
"relatedArtists": "$t(entity.artist_other) similars",
"viewAllTracks": "veure totes les $t(entity.track_other)",
"relatedArtists": "$t(entity.artist, {\"count\": 2}) similars",
"viewAllTracks": "mostra totes les $t(entity.track, {\"count\": 2})",
"about": "Sobre {{artist}}",
"appearsOn": "apareix a",
"recentReleases": "Llançaments recents",
"viewDiscography": "Mosta la discografia",
"topSongs": "millors cançons",
"topSongsFrom": "les millors cançons de {{title}}",
"viewAll": "mostra-ho tot"
"viewAll": "mostra-ho tot",
"groupingTypeAll": "tots els tipus de llançaments",
"groupingTypePrimary": "tipus principals de llançament",
"favoriteSongs": "Cançons preferides",
"topSongsCommunity": "comunitat",
"topSongsPersonal": "personal",
"favoriteSongsFrom": "cançons preferides de {{title}}"
},
"albumArtistList": {
"title": "$t(entity.albumArtist_other)"
"title": "$t(entity.albumArtist, {\"count\": 2})"
},
"albumDetail": {
"moreFromArtist": "més d'aquest $t(entity.artist_one)",
"moreFromArtist": "més d'aquest $t(entity.artist, {\"count\": 1})",
"moreFromGeneric": "més de {{item}}",
"released": "publicat"
},
"albumList": {
"title": "$t(entity.album_other)",
"title": "$t(entity.album, {\"count\": 2})",
"artistAlbums": "àlbums de {{artist}}",
"genreAlbums": "\"{{genre}}\" $t(entity.album_other)"
"genreAlbums": "\"{{genre}}\" $t(entity.album, {\"count\": 2})"
},
"appMenu": {
"quit": "$t(common.quit)",
"settings": "$t(common.setting_other)",
"settings": "$t(common.setting, {\"count\": 2})",
"goBack": "torna enrere",
"goForward": "avança",
"collapseSidebar": "replega la barra lateral",
@@ -82,15 +89,15 @@
"showDetails": "informació",
"numberSelected": "{{count}} seleccionat",
"shareItem": "comparteix l'element",
"goToAlbumArtist": "Ves a $t(entity.albumArtist_one)",
"goToAlbum": "ves a $t(entity.album_one)",
"goToAlbumArtist": "Ves a $t(entity.albumArtist, {\"count\": 1})",
"goToAlbum": "ves a $t(entity.album, {\"count\": 1})",
"moveItems": "$t(action.moveItems)",
"goTo": "ves a"
},
"genreList": {
"title": "$t(entity.genre_other)",
"showAlbums": "mostra $t(entity.album_other) $t(entity.genre_one)",
"showTracks": "mostra $t(entity.track_other) $t(entity.genre_one)"
"title": "$t(entity.genre, {\"count\": 2})",
"showAlbums": "mostra $t(entity.album, {\"count\": 2}) de $t(entity.genre, {\"count\": 1})",
"showTracks": "mostra $t(entity.track, {\"count\": 2}) de $t(entity.genre, {\"count\": 1})"
},
"home": {
"title": "$t(common.home)",
@@ -99,15 +106,15 @@
"mostPlayed": "els més reproduïts",
"recentlyPlayed": "reproduït recentment",
"recentlyReleased": "estrenat fa poc",
"genres": "$t(entity.genre_other)"
"genres": "$t(entity.genre, {\"count\": 2})"
},
"playlistList": {
"title": "$t(entity.playlist_other)"
"title": "$t(entity.playlist, {\"count\": 2})"
},
"trackList": {
"title": "$t(entity.track_other)",
"title": "$t(entity.track, {\"count\": 2})",
"artistTracks": "pistes de {{artist}}",
"genreTracks": "\"{{genre}}\" $t(entity.track_other)"
"genreTracks": "$t(entity.track, {\"count\": 2}) \"{{genre}}\""
},
"manageServers": {
"username": "nom d'usuari",
@@ -162,7 +169,8 @@
"transcoding": "transcodificació",
"discord": "discord",
"logger": "registres",
"playerFilters": "filtres de reproducció"
"playerFilters": "filtres de reproducció",
"lyricsDisplay": "mostra la lletra"
},
"globalSearch": {
"commands": {
@@ -181,13 +189,26 @@
"reorder": "el reordenament només s'activa quan s'ordena per id"
},
"favorites": {
"title": "$t(entity.favorite_other)"
"title": "$t(entity.favorite, {\"count\": 2})"
},
"folderList": {
"title": "$t(entity.folder_other)"
"title": "$t(entity.folder, {\"count\": 2})"
},
"radioList": {
"title": "emissores de ràdio"
},
"windowBar": {
"paused": "(en pausa) ",
"privateMode": "(mode privat)"
},
"collections": {
"overrideExisting": "sobreescriu existents",
"saveAsCollection": "desa com a col·lecció"
},
"releasenotes": {
"commitsSinceStable": "commits des de {{stable}}",
"noNewCommits": "no hi ha hagut commits en aquest període",
"noStableReleaseToCompare": "no hi ha actualitzacions disponibles amb les quals comparar"
}
},
"common": {
@@ -259,9 +280,9 @@
"action_other": "accions",
"newVersion": "s'ha instal·lat una nova versió ({{version}})",
"viewReleaseNotes": "veure les notes de la versió",
"currentSong": "$t(entity.track_one) actual",
"currentSong": "$t(entity.track, {\"count\": 1}) actual",
"limit": "límit",
"previousSong": "$t(entity.track_one) anterior",
"previousSong": "$t(entity.track, {\"count\": 1}) anterior",
"trackNumber": "pista",
"albumGain": "guany de l'àlbum",
"albumPeak": "pic de l'àlbum",
@@ -285,7 +306,9 @@
"playerMustBePaused": "cal pausar el reproductor",
"restartRequired": "cal reiniciar",
"sampleRate": "freqüència de mostreig",
"setting": "configuració",
"setting_one": "configuració",
"setting_many": "configuracions",
"setting_other": "configuracions",
"trackGain": "guany de pista",
"trackPeak": "pic de pista",
"gap": "espera",
@@ -306,7 +329,13 @@
"gridRows": "files de la quadrícula",
"tableColumns": "columnes de la taula",
"itemsMore": "{{count}} més",
"countSelected": "{{count}} seleccionats"
"countSelected": "{{count}} seleccionats",
"retry": "reintenta",
"example": "exemple",
"mood": "estat d'ànim",
"filter_single": "senzill",
"filter_multiple": "multi",
"rename": "reanomena"
},
"entity": {
"album_one": "àlbum",
@@ -333,7 +362,7 @@
"playlistWithCount_one": "{{count}} llista de reproducció",
"playlistWithCount_many": "{{count}} llistes de reproducció",
"playlistWithCount_other": "{{count}} llistes de reproducció",
"smartPlaylist": "$t(entity.playlist_one) intel·ligent",
"smartPlaylist": "$t(entity.playlist, {\"count\": 1}) intel·ligent",
"play_one": "{{count}} reproducció",
"play_many": "{{count}} reproduccions",
"play_other": "{{count}} reproduccions",
@@ -370,34 +399,34 @@
},
"form": {
"addToPlaylist": {
"input_playlists": "$t(entity.playlist_other)",
"title": "afegir a una $t(entity.playlist_one)",
"input_playlists": "$t(entity.playlist, {\"count\": 2})",
"title": "afegir a una $t(entity.playlist, {\"count\": 1})",
"input_skipDuplicates": "salta't els duplicats",
"success": "s'ha afegit $t(entity.trackWithCount, {\"count\": {{message}} }) a $t(entity.playlistWithCount, {\"count\": {{numOfPlaylists}} })",
"create": "crea $t(entity.playlist_one) {{playlist}}",
"searchOrCreate": "cerca $t(entity.playlist_other) o escriu per crear-ne una de nova"
"create": "crea $t(entity.playlist, {\"count\": 1}) {{playlist}}",
"searchOrCreate": "cerca $t(entity.playlist, {\"count\": 2}) o escriu per crear-ne una de nova"
},
"createPlaylist": {
"input_description": "$t(common.description)",
"input_name": "$t(common.name)",
"input_owner": "$t(common.owner)",
"success": "$t(entity.playlist_one) s'ha creat amb èxit",
"title": "crear una $t(entity.playlist_one)",
"success": "$t(entity.playlist, {\"count\": 1}) s'ha creat amb èxit",
"title": "crea una $t(entity.playlist, {\"count\": 1})",
"input_public": "públic"
},
"deletePlaylist": {
"success": "$t(entity.playlist_one) s'ha eliminat amb èxit",
"title": "elimina la $t(entity.playlist_one)",
"input_confirm": "escriviu el nom de la $t(entity.playlist_one) per confirmar"
"success": "$t(entity.playlist, {\"count\": 1}) s'ha eliminat amb èxit",
"title": "elimina la $t(entity.playlist, {\"count\": 1})",
"input_confirm": "escriviu el nom de la $t(entity.playlist, {\"count\": 1}) per confirmar"
},
"editPlaylist": {
"success": "$t(entity.playlist_one) s'ha actualitzat amb èxit",
"title": "editar la $t(entity.playlist_one)",
"success": "$t(entity.playlist, {\"count\": 1}) s'ha actualitzat amb èxit",
"title": "editar la $t(entity.playlist, {\"count\": 1})",
"publicJellyfinNote": "Per algun motiu, Jellyfin no exposa si una llista de reproducció és pública o no. Si voleu que es mantingui pública, seleccioneu la següent entrada",
"editNote": "es recomana no editar manualment les llistes de reproducció grans. segur que accepteu el risc de perdre dades si sobreescriviu la llista de reproducció existent?"
},
"lyricSearch": {
"input_artist": "$t(entity.artist_one)",
"input_artist": "$t(entity.artist, {\"count\": 1})",
"input_name": "$t(common.name)",
"title": "cerca de lletres"
},
@@ -414,7 +443,10 @@
"success": "servidor afegit correctament",
"title": "afegeix un servidor",
"input_preferInstantMix": "prefereix el mix instantani",
"input_preferInstantMixDescription": "utilitza només el mix instantani per obtenir cançons similars. útil si teniu complements que modifiquin aquest comportament"
"input_preferInstantMixDescription": "utilitza només el mix instantani per obtenir cançons similars. útil si teniu complements que modifiquin aquest comportament",
"input_preferRemoteUrl": "prefereix l'url públic",
"input_remoteUrl": "url públic",
"input_remoteUrlPlaceholder": "opcional: url públic per característiques externes"
},
"shareItem": {
"description": "descripció",
@@ -422,7 +454,9 @@
"setExpiration": "estableix expiració",
"success": "s'ha copiat l'enllaç de compartició al porta-retalls (o feu clic aquí per obrir-lo)",
"expireInvalid": "la data d'expiració ha de ser al futur",
"createFailed": "no s'ha pogut crear el recurs compartit (està habilitat, l'ús compartit?)"
"createFailed": "no s'ha pogut crear el recurs compartit (està habilitat, l'ús compartit?)",
"copyToClipboard": "Copiar al porta-retalls: Ctrl+C, Enter",
"successMustClick": "Compartició creada correctament. Feu clic aquí per obrir-la."
},
"updateServer": {
"success": "s'ha actualitzat el servidor amb èxit",
@@ -448,7 +482,7 @@
},
"shuffleAll": {
"title": "reprodueix a l'atzar",
"input_genre": "$t(entity.genre_one)",
"input_genre": "$t(entity.genre, {\"count\": 1})",
"input_limit": "quantes cançons?",
"input_minYear": "de l'any",
"input_maxYear": "fins a l'any",
@@ -466,17 +500,22 @@
},
"saveQueue": {
"success": "cua de reproducció desada al servidor"
},
"lyricsExport": {
"export": "exporta la lletra",
"input_synced": "exporta la lletra sincronitzada",
"input_offset": "$t(setting.lyricOffset)"
}
},
"action": {
"addToFavorites": "afegeix a $t(entity.favorite_other)",
"addToPlaylist": "afegeix a $t(entity.playlist_one)",
"createPlaylist": "crea $t(entity.playlist_one)",
"deletePlaylist": "elimina la $t(entity.playlist_one)",
"editPlaylist": "edita la $t(entity.playlist_one)",
"addToFavorites": "afegeix a $t(entity.favorite, {\"count\": 2})",
"addToPlaylist": "afegeix a $t(entity.playlist, {\"count\": 1})",
"createPlaylist": "crea $t(entity.playlist, {\"count\": 1})",
"deletePlaylist": "elimina la $t(entity.playlist, {\"count\": 1})",
"editPlaylist": "edita $t(entity.playlist, {\"count\": 1})",
"refresh": "$t(common.refresh)",
"removeFromFavorites": "elimina dels $t(entity.favorite_other)",
"removeFromPlaylist": "elimina de $t(entity.playlist_one)",
"removeFromFavorites": "elimina dels $t(entity.favorite, {\"count\": 2})",
"removeFromPlaylist": "elimina de $t(entity.playlist, {\"count\": 1})",
"clearQueue": "buida la cua",
"removeFromQueue": "treure de la cua",
"goToPage": "anar a la pàgina",
@@ -485,7 +524,7 @@
"musicbrainz": "Obrir a MusicBrainz"
},
"deselectAll": "deselecciona-ho tot",
"viewPlaylists": "veure$t(entity.playlist_other)",
"viewPlaylists": "veure $t(entity.playlist, {\"count\": 2})",
"moveToNext": "passar al següent",
"moveToBottom": "anar al final",
"moveToTop": "anar al principi",
@@ -501,8 +540,8 @@
"shuffleAll": "mescla-ho tot",
"shuffleSelected": "mescla els seleccionats",
"viewMore": "mostra'n més",
"createRadioStation": "crea $t(entity.radioStation_one)",
"deleteRadioStation": "elimina $t(entity.radioStation_one)",
"createRadioStation": "crea $t(entity.radioStation, {\"count\": 1})",
"deleteRadioStation": "elimina $t(entity.radioStation, {\"count\": 1})",
"addOrRemoveFromSelection": "afegeix o elimina de la selecció",
"selectRangeOfItems": "selecciona un interval d'elements",
"selectAll": "selecciona-ho tot",
@@ -514,15 +553,14 @@
"playButtonBehavior_optionAddNext": "$t(player.addNext)",
"playButtonBehavior_optionPlay": "$t(player.play)",
"playButtonBehavior_optionPlayShuffled": "$t(player.shuffle)",
"replayGainMode_optionAlbum": "$t(entity.album_one)",
"replayGainMode_optionAlbum": "$t(entity.album, {\"count\": 1})",
"replayGainMode_optionNone": "$t(common.none)",
"replayGainMode_optionTrack": "$t(entity.track_one)",
"replayGainMode_optionTrack": "$t(entity.track, {\"count\": 1})",
"font": "tipus de lletra",
"fontType": "selecció de tipus de lletra",
"fontType_optionBuiltIn": "tipus de lletra integrats",
"fontType_optionCustom": "tipus de lletra personalitzats",
"fontType_optionSystem": "tipus de lletra del sistema",
"disableAutomaticUpdates": "desactivar les actualitzacions automàtiques",
"disableLibraryUpdateOnStartup": "desactiva la comprovació de noves versions a l'inici",
"homeConfiguration": "configuració de la pàgina d'inici",
"sidebarConfiguration": "configuració de la barra lateral",
@@ -532,7 +570,7 @@
"sidePlayQueueStyle_optionAttached": "unida",
"sidePlayQueueStyle_optionDetached": "separada",
"audioDevice": "dispositiu d'àudio",
"audioDevice_description": "seleccioneu el dispositiu d'àudio que voleu utilitzar per a la reproducció (només pel reproductor web)",
"audioDevice_description": "seleccioneu el dispositiu d'àudio que voleu utilitzar per a la reproducció",
"audioPlayer": "reproductor d'àudio",
"audioPlayer_description": "seleccioneu el reproductor d'àudio que voleu utilitzar per a la reproducció",
"sidebarConfiguration_description": "selecciona els elements i l'ordre en què apareixen a la barra lateral",
@@ -578,9 +616,9 @@
"customFontPath_description": "estableix la ruta a una font personalitzada per utilitzar-la a l'aplicació",
"discordApplicationId": "id d'aplicació de {{discord}}",
"discordApplicationId_description": "l'id d'aplicació per l'estat d'activitat de {{discord}} (per defecte, {{defaultId}})",
"discordPausedStatus": "mosta l'estat d'activitat quan està en pausa",
"discordPausedStatus": "mostra l'estat d'activitat quan està en pausa",
"discordPausedStatus_description": "si està activat, l'estat es mostrarà quan el reproductor estigui pausat",
"discordIdleStatus": "mosta l'estat d'activitat en inactivitat",
"discordIdleStatus": "mosta l'estat d'activitat quan està inactiu",
"discordIdleStatus_description": "si està activat, s'actualitzarà l'estat mentre el reproductor estigui inactiu",
"discordListening": "mosta l'estat com escoltant",
"discordListening_description": "mosta l'estat com escoltant en comptes de jugant",
@@ -646,7 +684,7 @@
"lyricFetch": "extreu la lletra d'internet",
"lyricFetch_description": "extreu la lletra de diverses fonts d'internet",
"lyricFetchProvider": "proveïdors de lletres",
"lyricFetchProvider_description": "selecciona els proveïdors de lletres. l'ordre en què apareixen és l'ordre en què es consultaran",
"lyricFetchProvider_description": "selecciona els proveïdors de lletres",
"lyricOffset": "desfasament de la lletra (ms)",
"lyricOffset_description": "desplaça la lletra els mil·lisegons especificats",
"minimizeToTray": "minimitza a la safata",
@@ -752,9 +790,9 @@
"releaseChannel_optionLatest": "última versió",
"releaseChannel_optionBeta": "beta",
"releaseChannel": "canal de versions",
"releaseChannel_description": "tria entre versions estables i versions beta per les actualitzacions automàtiques",
"releaseChannel_description": "trieu entre versions estables i beta o alfa (diàries) per les actualitzacions automàtiques",
"mediaSession": "activa Media Session",
"mediaSession_description": "activa la integració amb Windows Media Session per mostrar els controls multimèdia i les metadades a l'indicador de volum del sistema i la pantalla de bloqueig (només per Windows)",
"mediaSession_description": "activa la integració amb Media Session per mostrar els controls multimèdia i les metadades a l'indicador de volum del sistema i la pantalla de bloqueig",
"crossfadeStyle": "estil de fosa encadenada",
"discordRichPresence": "estat d'activitat de {{discord}}",
"enableAutoTranslation_description": "activa la traducció automàtica en carregar la lletra",
@@ -814,17 +852,63 @@
"queryBuilderCustomFields": "camps personalitzats",
"queryBuilderCustomFields_description": "afegeix camps personalitzats pel constructor de consultes",
"useThemeAccentColor": "fes servir el color d'accent del tema",
"useThemeAccentColor_description": "fes servir el color primari definit pel tema seleccionat en comptes del color d'accent personalitzat"
"useThemeAccentColor_description": "fes servir el color primari definit pel tema seleccionat en comptes del color d'accent personalitzat",
"artistRadioCount_description": "estableix el número de cançons per cercar per la ràdio d'artista i pista",
"artistRadioCount": "recompte de ràdios d'artista o pista",
"imageResolution": "resolució d'imatge",
"imageResolution_description": "la resolució per les imatges que s'utilitzen a l'aplicació. un valor de 0 equival a la resolució nativa de la imatge",
"imageResolution_optionTable": "taula",
"imageResolution_optionItemCard": "targeta d'element",
"imageResolution_optionSidebar": "tauler lateral",
"imageResolution_optionHeader": "encapçalament",
"imageResolution_optionFullScreenPlayer": "reproductor de pantalla completa",
"showRatings_description": "controla si es mostren les estrelles de valoració a la interfície",
"showRatings": "mostra la valoració d'estrelles",
"combinedLyricsAndVisualizer_description": "combina la lletra i el visualitzador en un sol tauler",
"combinedLyricsAndVisualizer": "combina la lletra i el visualitzador al tauler lateral del reproductor",
"artistReleaseTypeConfiguration": "configuració de tipus de llançament d'artista",
"artistReleaseTypeConfiguration_description": "configura quins llançaments es mostren, i en quin ordre, a la pàgina d'artista de l'àlbum",
"hotkey_listNavigateToPage": "navega per la llista fins a la pàgina de l'element",
"hotkey_listPlayDefault": "reprodueix llista",
"hotkey_listPlayLast": "reprodueix la llista al final",
"hotkey_listPlayNext": "reprodueix la llista a continuació",
"hotkey_listPlayNow": "reprodueix la llista ara",
"mpvExtraParameters": "paràmetres addicionals d'mpv",
"mpvExtraParameters_description": "arguments addicionals per l'mpv",
"pathReplace": "substitució de la ruta de l'arxiu",
"pathReplace_description": "substitueix la ruta d'arxiu predeterminada del servidor",
"pathReplace_optionRemovePrefix": "elimina el prefix",
"pathReplace_optionAddPrefix": "afegeix prefix",
"homeFeatureStyle_description": "controla l'estil del carrusel de destacats de l'inici",
"homeFeatureStyle": "estil del carrusel de destacats de l'inici",
"homeFeatureStyle_optionMultiple": "múltiple",
"homeFeatureStyle_optionSingle": "simple",
"enableGridMultiSelect": "activa la selecció múltiple de quadrícula",
"enableGridMultiSelect_description": "quan està activada, podeu seleccionar més d'un element en la vista de quadrícula; si feu clic en la imatge d'un element de la quadrícula, accedireu a la pàgina de l'element",
"sidebarPlaylistSorting_description": "permet ordenar manualment les llistes de reproducció a la barra lateral arrossegant amb el ratolí en comptes de seguir l'ordre predeterminat del servidor",
"sidebarPlaylistSorting": "ordenació de llistes de reproducció de la barra lateral",
"sidebarPlaylistListFilterRegex_description": "amaga les llistes de reproducció de la barra lateral que coincideixin amb aquesta expressió regular",
"sidebarPlaylistListFilterRegex_placeholder": "ex. ^Mescla diària.*",
"sidebarPlaylistListFilterRegex": "regex pel filtre de llistes",
"analyticsEnable": "envia analítiques basades en l'ús",
"analyticsEnable_description": "s'envien dades d'ús anonimitzades al desenvolupar per ajudar a millorar l'aplicació",
"automaticUpdates": "actualitzacions automàtiques",
"automaticUpdates_description": "cerca i instal·la actualitzacions automàticament",
"releaseChannel_optionAlpha": "alfa (diària)",
"blurExplicitImages": "desenfoca imatges explícites",
"blurExplicitImages_description": "les caràtules d'àlbums i cançons marcades com a explícites quedaran desenfocades",
"discordStateIcon": "mostra la icona de reproducció",
"discordStateIcon_description": "mostra una petita icona de reproducció a l'estat d'activitat. l'icona de pausa es mostra quan \"mostra l'estat d'activitat quan està en pausa\" està activat"
},
"table": {
"column": {
"albumCount": "$t(entity.album_other)",
"artist": "$t(entity.artist_one)",
"channels": "$t(common.channel_other)",
"albumCount": "$t(entity.album, {\"count\": 2})",
"artist": "$t(entity.artist, {\"count\": 1})",
"channels": "$t(common.channel, {\"count\": 2})",
"codec": "$t(common.codec)",
"genre": "$t(entity.genre_one)",
"genre": "$t(entity.genre, {\"count\": 1})",
"size": "$t(common.size)",
"songCount": "$t(entity.track_other)",
"songCount": "$t(entity.track, {\"count\": 2})",
"releaseYear": "any",
"playCount": "reproduccions",
"releaseDate": "data de llançament",
@@ -876,27 +960,28 @@
"alternateRowColors": "colors de fila alternants",
"horizontalBorders": "vores de fila",
"rowHoverHighlight": "ressalta en passar el cursor per la fila",
"verticalBorders": "vores de columna"
"verticalBorders": "vores de columna",
"showHeader": "mostra l'encapçalament"
},
"label": {
"actions": "$t(common.action_other)",
"album": "$t(entity.album_one)",
"albumArtist": "$t(entity.albumArtist_one)",
"artist": "$t(entity.artist_one)",
"actions": "$t(common.action, {\"count\": 2})",
"album": "$t(entity.album, {\"count\": 1})",
"albumArtist": "$t(entity.albumArtist, {\"count\": 1})",
"artist": "$t(entity.artist, {\"count\": 1})",
"biography": "$t(common.biography)",
"bitrate": "$t(common.bitrate)",
"bpm": "$t(common.bpm)",
"channels": "$t(common.channel_other)",
"channels": "$t(common.channel, {\"count\": 2})",
"codec": "$t(common.codec)",
"duration": "$t(common.duration)",
"favorite": "$t(common.favorite)",
"genre": "$t(entity.genre_one)",
"genre": "$t(entity.genre, {\"count\": 1})",
"note": "$t(common.note)",
"owner": "$t(common.owner)",
"path": "$t(common.path)",
"rating": "$t(common.rating)",
"size": "$t(common.size)",
"songCount": "$t(entity.track_other)",
"songCount": "$t(entity.track, {\"count\": 2})",
"title": "$t(common.title)",
"year": "$t(common.year)",
"playCount": "compte de reproduccions",
@@ -907,16 +992,19 @@
"lastPlayed": "última reproducció",
"rowIndex": "índex de files",
"titleCombined": "$t(common.title) (combinat)",
"albumCount": "$t(entity.album_other)",
"albumCount": "$t(entity.album, {\"count\": 2})",
"bitDepth": "$t(common.bitDepth)",
"genreBadge": "$t(entity.genre_one) (insígnies)",
"genreBadge": "$t(entity.genre, {\"count\": 1}) (insígnies)",
"image": "imatge",
"sampleRate": "$t(common.sampleRate)"
"sampleRate": "$t(common.sampleRate)",
"composer": "compositor",
"titleArtist": "$t(common.title) (artista)"
},
"view": {
"table": "taula",
"grid": "quadrícula",
"list": "llista"
"list": "llista",
"detail": "detall"
}
}
},
@@ -924,17 +1012,17 @@
"fromYear": "des de l'any",
"releaseYear": "any de llançament",
"toYear": "fins a l'any",
"album": "$t(entity.album_one)",
"albumArtist": "$t(entity.albumArtist_one)",
"artist": "$t(entity.artist_one)",
"album": "$t(entity.album, {\"count\": 1})",
"albumArtist": "$t(entity.albumArtist, {\"count\": 1})",
"artist": "$t(entity.artist, {\"count\": 1})",
"biography": "biografia",
"bitrate": "taxa de bits",
"bpm": "bpm",
"channels": "$t(common.channel_other)",
"channels": "$t(common.channel, {\"count\": 2})",
"comment": "comentari",
"disc": "disc",
"duration": "durada",
"genre": "$t(entity.genre_one)",
"genre": "$t(entity.genre, {\"count\": 1})",
"id": "identificador",
"name": "nom",
"note": "nota",
@@ -953,7 +1041,7 @@
"recentlyAdded": "afegit recentment",
"recentlyPlayed": "reproduït recentment",
"recentlyUpdated": "actualitzat recentment",
"albumCount": "nombre de $t(entity.album_other)",
"albumCount": "nombre de $t(entity.album, {\"count\": 2})",
"favorited": "preferits",
"isCompilation": "és una compilació",
"isFavorited": "és un preferit",
@@ -963,7 +1051,10 @@
"lastPlayed": "última reproducció",
"path": "ruta",
"songCount": "nombre de cançons",
"explicitStatus": "$t(common.explicitStatus)"
"explicitStatus": "$t(common.explicitStatus)",
"sortName": "ordena per nom",
"matchAnd": "i",
"matchOr": "o"
},
"player": {
"muted": "silenciat",
@@ -1000,12 +1091,20 @@
"addLastShuffled": "al final (mesclat)",
"addNextShuffled": "a continuació (mesclat)",
"holdToShuffle": "mantén premut per mesclar",
"queueType": "tipus de cua",
"queueType_default": "predeterminat",
"queueType_priority": "prioritat",
"lyrics": "lletra",
"restoreQueueFromServer": "restaura la cua del servidor",
"saveQueueToServer": "desa la cua al servidor"
"saveQueueToServer": "desa la cua al servidor",
"artistRadio": "ràdio de l'artista",
"trackRadio": "ràdio de la pista",
"sleepTimer": "temporitzador d'adormir",
"sleepTimer_endOfSong": "final de la cançó actual",
"sleepTimer_minutes": "{{count}} min",
"sleepTimer_hours": "{{count}} h",
"sleepTimer_custom": "personalitzat",
"sleepTimer_off": "apagat",
"sleepTimer_timeRemaining": "queden {{time}}",
"sleepTimer_setCustom": "configura el temporitzador",
"sleepTimer_cancel": "cancel·la el temporitzador"
},
"error": {
"credentialsRequired": "credencials requerides",
@@ -1034,11 +1133,15 @@
"endpointNotImplementedError": "el punt final {{endpoint}} no està implementat per {{serverType}}",
"multipleServerSaveQueueError": "la cua de reproducció té una o més cançons que no són del servidor actual, cosa que no és compatible",
"saveQueueFailed": "error en desar la cua",
"settingsSyncError": "hi ha discrepàncies entre la configuració del renderitzador i el procés principal. reinicieu l'aplicació per aplicar els canvis"
"settingsSyncError": "hi ha discrepàncies entre la configuració del renderitzador i el procés principal. reinicieu l'aplicació per aplicar els canvis",
"noNetwork": "servidor no disponible",
"noNetworkDescription": "no s'ha pogut connectar amb el servidor",
"invalidJson": "JSON invàlid",
"serverLockSingleServer": "només es permet un servidor quan el servidor està bloquejat"
},
"releaseType": {
"primary": {
"album": "$t(entity.album_one)",
"album": "$t(entity.album, {\"count\": 1})",
"broadcast": "emissió",
"ep": "EP",
"other": "altres",
@@ -1094,5 +1197,154 @@
"secondShort": "s",
"hourShort": "h",
"dayShort": "d"
},
"visualizer": {
"visualizerType": "tipus de visualitzador",
"cyclePresets": "opcions preconfigurades",
"cycleTime": "duració d'un cicle (segons)",
"includeAllPresets": "inclou totes les opcions predeterminades",
"ignoredPresets": "ignora les opcions predeterminades",
"selectedPresets": "opcions predeterminades seleccionades",
"randomizeNextPreset": "tria la següent opcions predeterminada a l'atzar",
"blendTime": "duració de la mescla",
"presets": "opcions predeterminades",
"selectPreset": "selecciona una opció predeterminada",
"applyPreset": "aplica l'opció predeterminada",
"saveAsPreset": "desa com a opció predeterminada",
"updatePreset": "actualitza l'opció predeterminada",
"copyConfiguration": "copia la configuració",
"pasteConfiguration": "enganxa la configuració",
"pasteConfigurationPlaceholder": "enganxa la configuració JSON aquí...",
"pasteFromClipboard": "enganxa des del portaretalls",
"applyConfiguration": "aplica la configuració",
"configCopied": "configuració copiada al portaretalls",
"configCopyFailed": "error en copiar la configuració",
"configPasted": "configuració aplicada correctament",
"configPasteFailed": "Error en aplicar la configuració. Reviseu-ne el format.",
"configPasteReadFailed": "Error en llegir del portaretalls",
"presetName": "Nom de l'opció predeterminada",
"presetNamePlaceholder": "Escriviu el nom de l'opció predeterminada",
"general": "General",
"mode": "Mode",
"mode1To8": "Mode 1 - 8",
"mode10": "Mode 10",
"barSpace": "Espai entre barres",
"lineWidth": "Amplitud de línia",
"fillAlpha": "Omplir alfa",
"channelLayout": "Disseny del canal",
"maxFPS": "FPS màxims",
"opacity": "Opacitat",
"customGradients": "Degradats personalitzats",
"addCustomGradient": "Afegeix un degradat personalitzat",
"gradientName": "Nom del degradat",
"gradientNamePlaceholder": "Nom del degradat",
"vertical": "Vertical",
"horizontal": "Horitzontal",
"colorStops": "Parades de color",
"addColor": "Afegeix el color",
"position": "Posició",
"level": "Nivell",
"remove": "Elimina",
"custom": "Personalitzat",
"builtIn": "Integrat",
"colors": "Colors",
"colorMode": "Mode de color",
"gradient": "Degradat",
"gradientLeft": "Esquerra del degradat",
"gradientRight": "Dreta del degradat",
"fft": "FFT",
"fftSize": "Mida del FFT",
"smoothing": "Suavitzador",
"frequencyRangeAndScaling": "Escala i rang de freqüència",
"minimumFrequency": "Freqüència mínima",
"maximumFrequency": "Freqüència màxima",
"frequencyScale": "Escala de freqüència",
"sensitivity": "Sensibilitat",
"weightingFilter": "Filtre de pes",
"minimumDecibels": "Decibels mínims",
"maximumDecibels": "Decibels màxims",
"linearAmplitude": "Amplitud lineal",
"linearBoost": "Augment lineal",
"peakBehavior": "Comportament del pic",
"showPeaks": "Mostra els pics",
"fadePeaks": "Pics de fosa",
"peakLine": "Línea del pic",
"gravity": "Gravetat",
"peakFadeTime": "Temps de fosa del pic (ms)",
"peakHoldTime": "Temps d'espera del pic (ms)",
"radialSpectrum": "Espectre radial",
"radial": "Radial",
"radialInvert": "Invertir el radial",
"spinSpeed": "Velocitat de gir",
"radius": "Radi",
"reflexMirror": "Mirall del reflex",
"reflexFit": "Ajustament del reflex",
"reflexRatio": "Proporció del reflex",
"reflexAlpha": "Alfa del reflex",
"reflexBrightness": "Brillantor del reflex",
"mirror": "Mirall",
"miscellaneousSettings": "Configuració miscel·lànea",
"alphaBars": "Barres alfa",
"ansiBands": "Bandes ANSI",
"ledBars": "Barres LED",
"trueLeds": "LEDs reals",
"lumiBars": "Barres Lumi",
"outlineBars": "Barres de vora",
"roundBars": "Barres arrodonides",
"lowResolution": "Baixa resolució",
"splitGradient": "Degradat dividit",
"showFPS": "Mostra els FPS",
"showScaleX": "Mostra l'escala X",
"noteLabels": "Etiquetes de nota",
"showScaleY": "Mostra l'escala Y",
"options": {
"colorMode": {
"gradient": "Degradat",
"barIndex": "Índex de barra",
"barLevel": "Nivell de barra"
},
"gradient": {
"classic": "Classic",
"prism": "Prisme",
"rainbow": "Arc de Sant Martí",
"steelblue": "Blau d'acer",
"orangered": "Vermell ataronjat"
},
"channelLayout": {
"single": "Únic",
"dualCombined": "Dual-Combinat",
"dualHorizontal": "Dual-Horitzontal",
"dualVertical": "Dual-Vertical"
},
"frequencyScale": {
"bark": "Escala Bark",
"linear": "Escala Lineal",
"log": "Escala logarítmica",
"mel": "Escala Mel",
"none": "Cap"
},
"weightingFilter": {
"none": "Cap",
"a": "A",
"b": "B",
"c": "C",
"d": "D",
"z": "Z"
},
"mode": {
"0": "[0] Freqüències discretes",
"1": "[1] 1/24a octava / 240 bandes",
"2": "[2] 1/12a octava / 120 bandes",
"3": "[3] 1/8a octava / 80 bandes",
"4": "[4] 1/6a octava / 60 bandes",
"5": "[5] 1/4a octava / 40 bandes",
"6": "[6] 1/3a octava / 30 bandes",
"7": "[7] Mitja octava / 20 bandes",
"8": "[8] Octava completa / 10 bandes",
"10": "[10] Línia / Gràfic d'àrea"
}
},
"pasteGradient": "enganxa degradat",
"pasteGradientPlaceholder": "enganxa el degradat JSON aquí..."
}
}
+227 -128
View File
@@ -33,15 +33,22 @@
"viewQueue": "zobrazit frontu",
"addLastShuffled": "poslední (náhodně)",
"addNextShuffled": "další (náhodně)",
"queueType": "typ fronty",
"queueType_default": "výchozí",
"queueType_priority": "priorita",
"holdToShuffle": "podržte pro zamíchání",
"lyrics": "texty",
"restoreQueueFromServer": "obnovit frontu ze serveru",
"saveQueueToServer": "uložit frontu na server",
"artistRadio": "rádio umělce",
"trackRadio": "rádio skladby"
"trackRadio": "rádio skladby",
"sleepTimer": "časovač spánku",
"sleepTimer_endOfSong": "konec aktuální skladby",
"sleepTimer_minutes": "{{count}} min.",
"sleepTimer_hours": "{{count}} hod.",
"sleepTimer_custom": "vlastní",
"sleepTimer_off": "vypnuto",
"sleepTimer_timeRemaining": "zbývá {{time}}",
"sleepTimer_setCustom": "nastavit časovač",
"sleepTimer_cancel": "zrušit časovač",
"albumRadio": "rádio alba"
},
"setting": {
"crossfadeStyle_description": "vyberte způsob prolnutí u přehrávače zvuku",
@@ -49,7 +56,7 @@
"hotkey_skipBackward": "přeskočení zpět",
"replayGainMode_description": "úprava zesílení hlasitosti podle hodnot {{ReplayGain}} uložených v metadatech souborů",
"volumeWheelStep_description": "počet procent, o které má být hlasitost posunuta při přejetí kolečkem myši na posuvníku hlasitosti",
"audioDevice_description": "vyberte zvukové zařízení k přehrávání (pouze webový přehrávač)",
"audioDevice_description": "vyberte zvukové zařízení k přehrávání",
"theme_description": "nastavení motivu použitého v aplikaci",
"hotkey_playbackPause": "pozastavení",
"replayGainFallback": "fallback {{ReplayGain}}",
@@ -101,11 +108,10 @@
"hotkey_globalSearch": "globální vyhledávání",
"gaplessAudio_description": "nastavení přehrávače mpv pro přehrávání bez mezer",
"remoteUsername_description": "nastavení uživatelského jména pro server vzdáleného ovládání. pokud je jméno i heslo prázdné, bude autentifikace zakázána",
"disableAutomaticUpdates": "vypnout automatické aktualizace",
"exitToTray_description": "ukončit aplikaci do systémové lišty",
"followLyric_description": "přesouvat texty s aktuální pozicí přehrávání",
"hotkey_favoritePreviousSong": "oblíbit $t(common.previousSong)",
"replayGainMode_optionAlbum": "$t(entity.album_one)",
"replayGainMode_optionAlbum": "$t(entity.album, {\"count\": 1})",
"lyricOffset": "odsazení textů (ms)",
"discordUpdateInterval_description": "čas v sekundách mezi každou aktualizací (minimálně 15 sekund)",
"fontType_optionCustom": "vlastní písmo",
@@ -117,7 +123,7 @@
"playbackStyle_optionCrossFade": "křížové prolnutí",
"hotkey_rate3": "hodnocení 3 hvězdami",
"font": "písmo",
"replayGainMode_optionTrack": "$t(entity.track_one)",
"replayGainMode_optionTrack": "$t(entity.track, {\"count\": 1})",
"themeLight_description": "nastavit použití světlého motivu v aplikaci",
"hotkey_toggleFullScreenPlayer": "přepnutí přehrávače na celou obrazovku",
"hotkey_localSearch": "vyhledávání na stránce",
@@ -167,7 +173,7 @@
"useSystemTheme_description": "následovat systémovou předvolbu světlého nebo tmavého motivu",
"playButtonBehavior_optionAddNext": "$t(player.addNext)",
"lyricFetch_description": "načtení textů z různých internetových zdrojů",
"lyricFetchProvider_description": "vyberte poskytovatele textů. pořadí poskytovatelů je pořadí, ve kterém budou načítány",
"lyricFetchProvider_description": "vyberte poskytovatele textů",
"globalMediaHotkeys_description": "zapnout nebo vypnout použití vašich systémových zkratek médií pro ovládání přehrávače",
"customFontPath": "vlastní cesta k písmům",
"followLyric": "zobrazit aktuální texty",
@@ -224,11 +230,11 @@
"discordListening_description": "zobrazit stav jako „Poslouchá“ namísto „Hraje“",
"contextMenu": "nastavení kontextové nabídky (kliknutí pravým)",
"contextMenu_description": "umožňuje skrýt položky, které se zobrazí v nabídce po kliknutí pravým tlačítkem myši na položku. položky, které nejsou zaškrtnuté, se skryjí",
"customCssEnable": "povolit vlastní CSS",
"customCssEnable_description": "umožnit psaní vlastního CSS",
"customCssNotice": "Varování: i když provádíme určitou sanitizaci (zakázáním url() a content:), může používání CSS stále představovat riziko změnami rozhraní",
"customCss_description": "vlastní CSS obsah. Upozornění: vlastnosti content a vzdálené url jsou zakázané. Níže je zobrazen náhled vašeho obsahu. Další pole, která jste nenastavili, jsou přítomna z důvodu sanitizace",
"customCss": "vlastní CSS",
"customCssEnable": "povolit vlastní css",
"customCssEnable_description": "umožnit psaní vlastního css",
"customCssNotice": "Varování: i když provádíme určitou sanitizaci (zakázáním url() a content:), může používání css stále představovat riziko změnami rozhraní",
"customCss_description": "vlastní css obsah. Upozornění: vlastnosti content a vzdálené url jsou zakázané. Níže je zobrazen náhled vašeho obsahu. Další pole, která jste nenastavili, jsou přítomna z důvodu sanitizace",
"customCss": "vlastní css",
"webAudio": "použít webový zvuk",
"webAudio_description": "použít webový zvuk. tím povolíte pokročilé funkce jako replaygain. zakažte, pokud se objeví problémy",
"transcode_description": "zapnout překódování do různých formátů",
@@ -265,7 +271,7 @@
"neteaseTranslation_description": "Pokud je povoleno, načte a zobrazí přeložené texty ze služby NetEase, pokud jsou dostupné",
"preferLocalLyrics": "preferovat místní texty",
"preferLocalLyrics_description": "preferovat místní texty před vzdálenými, pokud jsou dostupné",
"discordPausedStatus": "zobrazit rich presence při pozastavení",
"discordPausedStatus": "zobrazit stav při pozastavení",
"discordPausedStatus_description": "pokud je povoleno, bude při pozastavení přehrávače zobrazen stav",
"preservePitch": "zachovat výšku",
"preservePitch_description": "zachová výšku při úpravě rychlosti přehrávání",
@@ -287,9 +293,9 @@
"releaseChannel_optionLatest": "nejnovější",
"releaseChannel_optionBeta": "beta",
"releaseChannel": "kanál vydání",
"releaseChannel_description": "vyberte si mezi stabilními vydáními nebo beta vydáními pro automatické aktualizace",
"releaseChannel_description": "vyberte si mezi stabilními, beta nebo alpha (nočními) vydáními pro automatické aktualizace",
"mediaSession": "povolit relaci médií",
"mediaSession_description": "povolí integraci do služby Windows Media Session, což zobrazí ovládání a metadata médií v překrytí systémové hlasitosti a na zamykací obrazovce (pouze Windows)",
"mediaSession_description": "povolí integraci do služby Media Session, což zobrazí ovládání a metadata médií v překrytí systémové hlasitosti a na zamykací obrazovce",
"exportImportSettings_control_description": "exportovat a importovat nastavení pomocí souboru JSON",
"exportImportSettings_control_exportText": "exportovat nastavení",
"exportImportSettings_control_importText": "importovat nastavení",
@@ -360,26 +366,71 @@
"imageResolution_optionHeader": "záhlaví",
"imageResolution_optionFullScreenPlayer": "přehrávač na celé obrazovce",
"combinedLyricsAndVisualizer_description": "spojit texty a vizualizér do jednoho panelu",
"combinedLyricsAndVisualizer": "spojit texty a vizualizér v postranní liště přehrávače"
"combinedLyricsAndVisualizer": "spojit texty a vizualizér v postranní liště přehrávače",
"showRatings_description": "ovládá, zda se funkce hodnocení pomocí hvězdiček objeví v rozhraní",
"showRatings": "zobrazit hodnocení pomocí hvězdiček",
"artistReleaseTypeConfiguration": "nastavení typu vydání umělce",
"artistReleaseTypeConfiguration_description": "nastavit, jaké typy vydání a v jakém pořadí jsou zobrazeny na stránce umělce alba",
"mpvExtraParameters": "extra parametry mpv",
"mpvExtraParameters_description": "další argumenty, které předat přehrávači mpv",
"hotkey_listNavigateToPage": "navigace na stránku položky v seznamu",
"hotkey_listPlayDefault": "přehrání v seznamu",
"hotkey_listPlayLast": "přehrání poslední položky v seznamu",
"hotkey_listPlayNext": "přehrání další položky v seznamu",
"hotkey_listPlayNow": "okamžité přehrání v seznamu",
"pathReplace": "nahrazení cesty k souborům",
"pathReplace_description": "nahradit výchozí cestu k souborům vašeho serveru",
"pathReplace_optionRemovePrefix": "odstranit předponu",
"pathReplace_optionAddPrefix": "přidat předponu",
"homeFeatureStyle_description": "ovládá styl doporučených skladeb na domovské stránce",
"homeFeatureStyle": "styl doporučených na domovské stránce",
"homeFeatureStyle_optionMultiple": "několik",
"homeFeatureStyle_optionSingle": "jeden",
"enableGridMultiSelect": "povolit vícenásobný výběr v mřížce",
"enableGridMultiSelect_description": "pokud je povoleno, umožňuje vybrat několik položek v zobrazení mřížky. pokud je zakázáno, kliknutím na obrázek položky mřížky přejdete na stránku položky",
"sidebarPlaylistSorting_description": "umožňuje ruční řazení seznamů skladeb v postranní liště pomocí přetažení namísto výchozího pořadí serveru",
"sidebarPlaylistSorting": "řazení seznamů skladeb v postranní liště",
"blurExplicitImages": "rozostřit explicitní obrázky",
"blurExplicitImages_description": "obaly alb a skladeb označené jako explicitní budou rozostřeny",
"sidebarPlaylistListFilterRegex_description": "v postranní liště skrýt seznamy skladeb, které odpovídají tomuto regulárnímu výrazu",
"sidebarPlaylistListFilterRegex_placeholder": "např. ^Denní mix.*",
"sidebarPlaylistListFilterRegex": "regulární výraz filtru seznamů skladeb",
"releaseChannel_optionAlpha": "alpha (noční)",
"analyticsEnable": "Posílat analytiku založenou na využití",
"analyticsEnable_description": "Anonymizovaná data o používání jsou odesílána vývojáři za účelem zlepšení aplikace",
"automaticUpdates": "Automatické aktualizace",
"automaticUpdates_description": "Kontrolovat a automaticky instalovat aktualizace",
"discordStateIcon": "zobrazit ikonu přehrávání",
"discordStateIcon_description": "zobrazit malou ikonu přehrávání ve stavu na Discordu. ikona pozastavení bude zobrazena vždy, když je povolena možnost „Zobrazit stav při pozastavení“",
"useThemePrimaryShade": "použít primární odstín motivu",
"useThemePrimaryShade_description": "použít primární odstín definovaný ve zvoleném motivu pro primární varianty barev",
"primaryShade": "primární odstín",
"primaryShade_description": "přepsat primární odstín (09) používaný pro tlačítka, odkazy a další prvky obarvené primární barvou",
"playerItemConfiguration_description": "nastavit, které položky budou zobrazeny a v jakém pořadí, v celoobrazovkovém přehrávači",
"playerItemConfiguration": "nastavení položek přehrávače",
"autosave": "automaticky ukládat frontu přehrávání",
"autosave_description": "zapnout automatické ukládání fronty přehrávání na server. toto je možné pouze při použití Navidrome/Subsonic a není možné mít kombinovanou frontu přehrávání.",
"autosaveCount": "četnost automatického ukládání fronty přehrávání",
"autosaveCount_description": "kolik změn skladeb se může provést před uložením fronty. 1 (minimum) znamená při každé změně skladby"
},
"action": {
"editPlaylist": "upravit $t(entity.playlist_one)",
"editPlaylist": "upravit $t(entity.playlist, {\"count\": 1})",
"goToPage": "přejít na stránku",
"moveToTop": "přesunout nahoru",
"clearQueue": "vymazat frontu",
"addToFavorites": "přidat do $t(entity.favorite_other)",
"addToPlaylist": "přidat do $t(entity.playlist_one)",
"createPlaylist": "vytvořit $t(entity.playlist_one)",
"removeFromPlaylist": "odebrat z $t(entity.playlist_one)",
"viewPlaylists": "zobrazit $t(entity.playlist_other)",
"addToFavorites": "přidat do $t(entity.favorite, {\"count\": 2})",
"addToPlaylist": "přidat do $t(entity.playlist, {\"count\": 1})",
"createPlaylist": "vytvořit $t(entity.playlist, {\"count\": 1})",
"removeFromPlaylist": "odebrat z $t(entity.playlist, {\"count\": 1})",
"viewPlaylists": "zobrazit $t(entity.playlist, {\"count\": 2})",
"refresh": "$t(common.refresh)",
"deletePlaylist": "odstranit $t(entity.playlist_one)",
"deletePlaylist": "odstranit $t(entity.playlist, {\"count\": 1})",
"removeFromQueue": "odebrat z fronty",
"deselectAll": "zrušit výběr všeho",
"moveToBottom": "přesunout dolů",
"setRating": "nastavit hodnocení",
"toggleSmartPlaylistEditor": "přepnout editor $t(entity.smartPlaylist)",
"removeFromFavorites": "odebrat z $t(entity.favorite_other)",
"removeFromFavorites": "odebrat z $t(entity.favorite, {\"count\": 2})",
"openIn": {
"lastfm": "Otevřít v Last.fm",
"musicbrainz": "Otevřít v MusicBrainz"
@@ -395,12 +446,13 @@
"moveDown": "posunout dolů",
"holdToMoveToTop": "podržte pro přesunutí nahoru",
"holdToMoveToBottom": "podržte pro přesunutí dolů",
"createRadioStation": "vytvořit $t(entity.radioStation_one)",
"deleteRadioStation": "odstranit $t(entity.radioStation_one)",
"createRadioStation": "vytvořit $t(entity.radioStation, {\"count\": 1})",
"deleteRadioStation": "odstranit $t(entity.radioStation, {\"count\": 1})",
"openApplicationDirectory": "otevřít adresář aplikace",
"addOrRemoveFromSelection": "přidat nebo odebrat z výběru",
"selectRangeOfItems": "vyberte rozsah položek",
"selectAll": "vybrat vše"
"selectAll": "vybrat vše",
"goToCurrent": "přejít na aktuální položku"
},
"common": {
"backward": "zpátky",
@@ -415,7 +467,7 @@
"left": "vlevo",
"save": "uložit",
"right": "vpravo",
"currentSong": "aktuální $t(entity.track_one)",
"currentSong": "aktuální $t(entity.track, {\"count\": 1})",
"collapse": "sbalit",
"trackNumber": "stopa",
"descending": "sestupně",
@@ -445,7 +497,9 @@
"delete": "odstranit",
"cancel": "zrušit",
"forceRestartRequired": "restartujte pro použití změn… zavřete oznámení pro restartování",
"setting": "nastavení",
"setting_one": "nastavení",
"setting_few": "nastavení",
"setting_other": "nastavení",
"version": "verze",
"title": "název",
"filter_one": "filtr",
@@ -472,7 +526,7 @@
"none": "žádný",
"menu": "nabídka",
"restartRequired": "vyžadován restart",
"previousSong": "předchozí $t(entity.track_one)",
"previousSong": "předchozí $t(entity.track, {\"count\": 1})",
"noResultsFromQuery": "nebyly nalezeny žádné výsledky",
"quit": "ukončit",
"expand": "rozbalit",
@@ -519,14 +573,21 @@
"noFilters": "nejsou nastaveny žádné filtry",
"view": "zobrazit",
"countSelected": "vybráno {{count}}",
"retry": "zkusit znovu"
"retry": "zkusit znovu",
"mood": "nálada",
"example": "příklad",
"filter_single": "jeden",
"filter_multiple": "několik",
"rename": "přejmenovat",
"newVersionAvailable": "je dostupná nová verze"
},
"table": {
"config": {
"view": {
"table": "tabulka",
"list": "seznam",
"grid": "mřížka"
"grid": "mřížka",
"detail": "podrobnosti"
},
"general": {
"displayType": "typ zobrazení",
@@ -557,7 +618,8 @@
"alternateRowColors": "střídat barvy řádků",
"horizontalBorders": "okraje řádků",
"rowHoverHighlight": "zvýraznění řádku při přejetí myší",
"verticalBorders": "okraje sloupců"
"verticalBorders": "okraje sloupců",
"showHeader": "zobrazit záhlaví"
},
"label": {
"releaseDate": "datum vydání",
@@ -571,28 +633,31 @@
"trackNumber": "číslo stopy",
"rowIndex": "index řádku",
"rating": "$t(common.rating)",
"artist": "$t(entity.artist_one)",
"album": "$t(entity.album_one)",
"artist": "$t(entity.artist, {\"count\": 1})",
"album": "$t(entity.album, {\"count\": 1})",
"note": "$t(common.note)",
"biography": "$t(common.biography)",
"owner": "$t(common.owner)",
"path": "$t(common.path)",
"channels": "$t(common.channel_other)",
"channels": "$t(common.channel, {\"count\": 2})",
"playCount": "počet přehrání",
"bitrate": "$t(common.bitrate)",
"actions": "$t(common.action_other)",
"genre": "$t(entity.genre_one)",
"actions": "$t(common.action, {\"count\": 2})",
"genre": "$t(entity.genre, {\"count\": 1})",
"discNumber": "číslo disku",
"favorite": "$t(common.favorite)",
"year": "$t(common.year)",
"albumArtist": "$t(entity.albumArtist_one)",
"albumArtist": "$t(entity.albumArtist, {\"count\": 1})",
"codec": "$t(common.codec)",
"songCount": "$t(entity.track_other)",
"albumCount": "$t(entity.album_other)",
"genreBadge": "$t(entity.genre_one) (značky)",
"songCount": "$t(entity.track, {\"count\": 2})",
"albumCount": "$t(entity.album, {\"count\": 2})",
"genreBadge": "$t(entity.genre, {\"count\": 1}) (značky)",
"image": "obrázek",
"bitDepth": "$t(common.bitDepth)",
"sampleRate": "$t(common.sampleRate)"
"sampleRate": "$t(common.sampleRate)",
"composer": "skladatel",
"titleArtist": "$t(common.title) (umělec)",
"albumGroup": "skupina alb"
}
},
"column": {
@@ -601,7 +666,7 @@
"rating": "hodnocení",
"favorite": "oblíbené",
"playCount": "přehrání",
"albumCount": "$t(entity.album_other)",
"albumCount": "$t(entity.album, {\"count\": 2})",
"releaseYear": "rok",
"lastPlayed": "naposledy přehráno",
"biography": "biografie",
@@ -610,14 +675,14 @@
"title": "název",
"bpm": "bpm",
"dateAdded": "datum přidání",
"artist": "$t(entity.artist_one)",
"songCount": "$t(entity.track_other)",
"artist": "$t(entity.artist, {\"count\": 1})",
"songCount": "$t(entity.track, {\"count\": 2})",
"trackNumber": "skladba",
"genre": "$t(entity.genre_one)",
"genre": "$t(entity.genre, {\"count\": 1})",
"albumArtist": "umělec alba",
"path": "cesta",
"discNumber": "disk",
"channels": "$t(common.channel_other)",
"channels": "$t(common.channel, {\"count\": 2})",
"size": "$t(common.size)",
"codec": "$t(common.codec)",
"owner": "majitel",
@@ -654,14 +719,17 @@
"saveQueueFailed": "nepodařilo se uložit frontu",
"settingsSyncError": "byly zjištěny nesrovnalosti mezi nastavením v rendereru a hlavním procesem. restartujte aplikaci, aby se změny projevily",
"noNetwork": "server je nedostupný",
"noNetworkDescription": "k tomuto serveru se nepodařilo připojit"
"noNetworkDescription": "k tomuto serveru se nepodařilo připojit",
"invalidJson": "neplatný JSON",
"serverLockSingleServer": "při uzamčení serveru je povolen pouze jeden server",
"playbackPausedDueToError": "přehrávání bylo pozastaveno z důvodu chyby"
},
"filter": {
"mostPlayed": "nejvíce přehráváno",
"comment": "komentář",
"playCount": "počet přehrání",
"recentlyUpdated": "nedávno upraveno",
"channels": "$t(common.channel_other)",
"channels": "$t(common.channel, {\"count\": 2})",
"isCompilation": "je kompilace",
"recentlyPlayed": "nedávno přehráno",
"isRated": "je hodnoceno",
@@ -670,17 +738,17 @@
"rating": "hodnocení",
"search": "hledat",
"bitrate": "datový tok",
"genre": "$t(entity.genre_one)",
"genre": "$t(entity.genre, {\"count\": 1})",
"recentlyAdded": "nedávno přidáno",
"note": "poznámka",
"name": "název",
"dateAdded": "datum přidání",
"releaseDate": "datum vydání",
"albumCount": "počet $t(entity.album_other)",
"albumCount": "počet $t(entity.album, {\"count\": 2})",
"communityRating": "komunitní hodnocení",
"path": "cesta",
"favorited": "oblíbené",
"albumArtist": "$t(entity.albumArtist_one)",
"albumArtist": "$t(entity.albumArtist, {\"count\": 1})",
"isRecentlyPlayed": "je nedávno přehráno",
"isFavorited": "je oblíbené",
"bpm": "bpm",
@@ -689,7 +757,7 @@
"disc": "disk",
"biography": "biografie",
"songCount": "počet skladeb",
"artist": "$t(entity.artist_one)",
"artist": "$t(entity.artist, {\"count\": 1})",
"duration": "trvání",
"isPublic": "je veřejné",
"random": "náhodně",
@@ -697,27 +765,31 @@
"toYear": "do roku",
"fromYear": "z roku",
"criticRating": "hodnocení kritiků",
"album": "$t(entity.album_one)",
"album": "$t(entity.album, {\"count\": 1})",
"trackNumber": "skladba",
"explicitStatus": "$t(common.explicitStatus)"
"explicitStatus": "$t(common.explicitStatus)",
"sortName": "název v řazení",
"matchAnd": "a",
"matchOr": "nebo"
},
"page": {
"sidebar": {
"nowPlaying": "právě hraje",
"playlists": "$t(entity.playlist_other)",
"playlists": "$t(entity.playlist, {\"count\": 2})",
"search": "$t(common.search)",
"tracks": "$t(entity.track_other)",
"albums": "$t(entity.album_other)",
"genres": "$t(entity.genre_other)",
"folders": "$t(entity.folder_other)",
"settings": "$t(common.setting_other)",
"tracks": "$t(entity.track, {\"count\": 2})",
"albums": "$t(entity.album, {\"count\": 2})",
"genres": "$t(entity.genre, {\"count\": 2})",
"folders": "$t(entity.folder, {\"count\": 2})",
"settings": "$t(common.setting, {\"count\": 2})",
"home": "$t(common.home)",
"artists": "$t(entity.artist_other)",
"albumArtists": "$t(entity.albumArtist_other)",
"shared": "$t(entity.playlist_other) sdíleny",
"artists": "$t(entity.artist, {\"count\": 2})",
"albumArtists": "$t(entity.albumArtist, {\"count\": 2})",
"shared": "$t(entity.playlist, {\"count\": 2}) sdíleny",
"myLibrary": "moje knihovna",
"favorites": "$t(entity.favorite_other)",
"radio": "$t(entity.radioStation_other)"
"favorites": "$t(entity.favorite, {\"count\": 2})",
"radio": "$t(entity.radioStation, {\"count\": 2})",
"collections": "sbírky"
},
"fullscreenPlayer": {
"config": {
@@ -745,7 +817,7 @@
"appMenu": {
"selectServer": "vybrat server",
"version": "verze {{version}}",
"settings": "$t(common.setting_other)",
"settings": "$t(common.setting, {\"count\": 2})",
"manageServers": "správce serverů",
"expandSidebar": "rozbalit postranní panel",
"collapseSidebar": "sbalit postranní panel",
@@ -783,8 +855,8 @@
"download": "stáhnout",
"playShuffled": "$t(player.shuffle)",
"moveToNext": "$t(action.moveToNext)",
"goToAlbum": "přejít na $t(entity.album_one)",
"goToAlbumArtist": "přejít na $t(entity.albumArtist_one)",
"goToAlbum": "přejít na $t(entity.album, {\"count\": 1})",
"goToAlbumArtist": "přejít na $t(entity.albumArtist, {\"count\": 1})",
"moveItems": "$t(action.moveItems)",
"goTo": "přejít na"
},
@@ -795,10 +867,10 @@
"explore": "procházet z vaší knihovny",
"recentlyPlayed": "nedávno přehráno",
"recentlyReleased": "nedávno vydáno",
"genres": "$t(entity.genre_other)"
"genres": "$t(entity.genre, {\"count\": 2})"
},
"albumDetail": {
"moreFromArtist": "více od tohoto $t(entity.artist_one)",
"moreFromArtist": "více od tohoto $t(entity.artist, {\"count\": 1})",
"moreFromGeneric": "více od {{item}}",
"released": "vydáno"
},
@@ -828,17 +900,17 @@
"lyricsDisplay": "zobrazení textů"
},
"albumArtistList": {
"title": "$t(entity.albumArtist_other)"
"title": "$t(entity.albumArtist, {\"count\": 2})"
},
"genreList": {
"title": "$t(entity.genre_other)",
"showTracks": "zobrazit $t(entity.track_other) s žánrem $t(entity.genre_one)",
"showAlbums": "zobrazit $t(entity.album_other) s žánrem $t(entity.genre_one)"
"title": "$t(entity.genre, {\"count\": 2})",
"showTracks": "zobrazit $t(entity.track, {\"count\": 2}) s žánrem $t(entity.genre, {\"count\": 1})",
"showAlbums": "zobrazit $t(entity.album, {\"count\": 2}) s žánrem $t(entity.genre, {\"count\": 1})"
},
"trackList": {
"title": "$t(entity.track_other)",
"title": "$t(entity.track, {\"count\": 2})",
"artistTracks": "skladby od umělce {{artist}}",
"genreTracks": "$t(entity.track_other) s žánrem „{{genre}}“"
"genreTracks": "$t(entity.track, {\"count\": 2}) s žánrem „{{genre}}“"
},
"globalSearch": {
"commands": {
@@ -849,12 +921,12 @@
"title": "příkazy"
},
"playlistList": {
"title": "$t(entity.playlist_other)"
"title": "$t(entity.playlist, {\"count\": 2})"
},
"albumList": {
"title": "$t(entity.album_other)",
"title": "$t(entity.album, {\"count\": 2})",
"artistAlbums": "alba od umělce {{artist}}",
"genreAlbums": "$t(entity.album_other) s žánrem „{{genre}}“"
"genreAlbums": "$t(entity.album, {\"count\": 2}) s žánrem „{{genre}}“"
},
"albumArtistDetail": {
"recentReleases": "nedávno vydáno",
@@ -863,9 +935,15 @@
"appearsOn": "také v",
"topSongs": "nejlepší skladby",
"topSongsFrom": "nejlepší skladby od umělce {{title}}",
"relatedArtists": "podobní $t(entity.artist_other)",
"viewAllTracks": "zobrazit všechny $t(entity.track_other)",
"viewAll": "zobrazit vše"
"relatedArtists": "podobní $t(entity.artist, {\"count\": 2})",
"viewAllTracks": "zobrazit všechny $t(entity.track, {\"count\": 2})",
"viewAll": "zobrazit vše",
"groupingTypeAll": "všechny typy vydání",
"groupingTypePrimary": "primární typy vydání",
"favoriteSongs": "oblíbené skladby",
"topSongsCommunity": "komunita",
"topSongsPersonal": "osobní",
"favoriteSongsFrom": "oblíbené skladby od umělce {{title}}"
},
"itemDetail": {
"copiedPath": "cesta úspěšně zkopírována",
@@ -884,27 +962,40 @@
"title": "správa serverů"
},
"favorites": {
"title": "$t(entity.favorite_other)"
"title": "$t(entity.favorite, {\"count\": 2})"
},
"folderList": {
"title": "$t(entity.folder_other)"
"title": "$t(entity.folder, {\"count\": 2})"
},
"radioList": {
"title": "stanice rádia"
},
"windowBar": {
"paused": "(Pozastaveno) ",
"privateMode": "(Soukromý režim)"
},
"collections": {
"overrideExisting": "nahradit existující",
"saveAsCollection": "uložit jako sbírku"
},
"releasenotes": {
"commitsSinceStable": "revize od {{stable}}",
"noNewCommits": "žádné nové revize v tomto období",
"noStableReleaseToCompare": "není dostupné žádné stabilní vydání k porovnání"
}
},
"form": {
"deletePlaylist": {
"title": "odstranit $t(entity.playlist_one)",
"success": "$t(entity.playlist_one) úspěšně odstraněn",
"input_confirm": "pro potvrzení zadejte název $t(entity.playlist_one)u"
"title": "odstranit $t(entity.playlist, {\"count\": 1})",
"success": "$t(entity.playlist, {\"count\": 1}) úspěšně odstraněn",
"input_confirm": "pro potvrzení zadejte název $t(entity.playlist, {\"count\": 1})u"
},
"createPlaylist": {
"input_description": "$t(common.description)",
"title": "vytvořit $t(entity.playlist_one)",
"title": "vytvořit $t(entity.playlist, {\"count\": 1})",
"input_public": "veřejné",
"input_name": "$t(common.name)",
"success": "$t(entity.playlist_one) úspěšně vytvořen",
"success": "$t(entity.playlist, {\"count\": 1}) úspěšně vytvořen",
"input_owner": "$t(common.owner)"
},
"addServer": {
@@ -916,19 +1007,22 @@
"input_name": "název serveru",
"success": "server úspěšně přidán",
"input_savePassword": "uložit heslo",
"ignoreSsl": "ignorovat SSL $t(common.restartRequired)",
"ignoreCors": "ignorovat CORS $t(common.restartRequired)",
"ignoreSsl": "ignorovat ssl $t(common.restartRequired)",
"ignoreCors": "ignorovat cors $t(common.restartRequired)",
"error_savePassword": "při ukládání hesla se vyskytla chyba",
"input_preferInstantMix": "preferovat instantní mix",
"input_preferInstantMixDescription": "pro získání podobných skladeb použít pouze instantní mix. užitečné, pokud máte doplňky, které upravují toto chování"
"input_preferInstantMixDescription": "pro získání podobných skladeb použít pouze instantní mix. užitečné, pokud máte doplňky, které upravují toto chování",
"input_preferRemoteUrl": "preferovat veřejnou adresu url",
"input_remoteUrl": "veřejná adresa url",
"input_remoteUrlPlaceholder": "volitelné: veřejná adresa url pro externí funkce"
},
"addToPlaylist": {
"success": "přidáno $t(entity.trackWithCount, {\"count\": {{message}} }) do $t(entity.playlistWithCount, {\"count\": {{numOfPlaylists}} })",
"title": "přidat do $t(entity.playlist_one)",
"title": "přidat do $t(entity.playlist, {\"count\": 1})",
"input_skipDuplicates": "přeskočit duplicity",
"input_playlists": "$t(entity.playlist_other)",
"create": "vytvořit $t(entity.playlist_one) {{playlist}}",
"searchOrCreate": "vyhledejte $t(entity.playlist_other) nebo pište pro vytvoření nového"
"input_playlists": "$t(entity.playlist, {\"count\": 2})",
"create": "vytvořit $t(entity.playlist, {\"count\": 1}) {{playlist}}",
"searchOrCreate": "vyhledejte $t(entity.playlist, {\"count\": 2}) nebo pište pro vytvoření nového"
},
"updateServer": {
"title": "upravit server",
@@ -945,12 +1039,12 @@
},
"lyricSearch": {
"input_name": "$t(common.name)",
"input_artist": "$t(entity.artist_one)",
"input_artist": "$t(entity.artist, {\"count\": 1})",
"title": "Hledat texty"
},
"editPlaylist": {
"title": "upravit $t(entity.playlist_one)",
"success": "$t(entity.playlist_one) úspěšně aktualizován",
"title": "upravit $t(entity.playlist, {\"count\": 1})",
"success": "$t(entity.playlist, {\"count\": 1}) úspěšně aktualizován",
"publicJellyfinNote": "Jellyfin z nějakého důvodu neukazuje, zda je seznam skladeb veřejný, nebo ne. Pokud si přejete, aby zůstal veřejný, zvolte prosím následující vstup",
"editNote": "ruční úpravy velkých seznamů skladeb nejsou doporučeny. opravdu přijímáte riziko ztráty dat, které může vzniknout přepsáním existujícího seznamu skladeb?"
},
@@ -960,7 +1054,9 @@
"description": "popis",
"expireInvalid": "čas vypršení musí být v budoucnosti",
"setExpiration": "nastavit vypršení",
"createFailed": "nepodařilo se vytvořit sdílení (je sdílení povoleno?)"
"createFailed": "nepodařilo se vytvořit sdílení (je sdílení povoleno?)",
"copyToClipboard": "Zkopírovat do schránky: Ctrl+C, Enter",
"successMustClick": "sdílení úspěšně vytvořeno. klikněte sem pro otevření"
},
"privateMode": {
"enabled": "soukromý režim povolen, stav přehrávání je nyní skryt před externími integracemi",
@@ -973,7 +1069,7 @@
},
"shuffleAll": {
"title": "přehrát náhodně",
"input_genre": "$t(entity.genre_one)",
"input_genre": "$t(entity.genre, {\"count\": 1})",
"input_limit": "kolik skladeb?",
"input_minYear": "od roku",
"input_maxYear": "do roku",
@@ -1026,16 +1122,16 @@
"albumWithCount_one": "{{count}} album",
"albumWithCount_few": "{{count}} alba",
"albumWithCount_other": "{{count}} alb",
"favorite_one": "oblíbená",
"favorite_one": "oblíbený",
"favorite_few": "oblíbené",
"favorite_other": "oblíbených",
"favorite_other": "oblíbené",
"artistWithCount_one": "{{count}} umělec",
"artistWithCount_few": "{{count}} umělci",
"artistWithCount_other": "{{count}} umělců",
"folder_one": "složka",
"folder_few": "složky",
"folder_other": "složky",
"smartPlaylist": "chytrý $t(entity.playlist_one)",
"smartPlaylist": "chytrý $t(entity.playlist, {\"count\": 1})",
"album_one": "album",
"album_few": "alba",
"album_other": "alba",
@@ -1065,7 +1161,7 @@
},
"releaseType": {
"primary": {
"album": "$t(entity.album_one)",
"album": "$t(entity.album, {\"count\": 1})",
"broadcast": "vysílání",
"ep": "ep",
"other": "jiné",
@@ -1115,7 +1211,7 @@
"minuteShort": "min.",
"secondShort": "s",
"hourShort": "h.",
"dayShort": "den"
"dayShort": "d."
},
"visualizer": {
"visualizerType": "Typ vizualizéru",
@@ -1125,7 +1221,7 @@
"ignoredPresets": "Ignorované předvolby",
"selectedPresets": "Vybrané předvolby",
"randomizeNextPreset": "Náhodně vybrat další předvolbu",
"blendTime": "Prolnout čas",
"blendTime": "Čas prolnutí",
"presets": "Předvolby",
"selectPreset": "Vybrat předvolbu",
"applyPreset": "Použít předvolbu",
@@ -1217,18 +1313,6 @@
"noteLabels": "Štítky not",
"showScaleY": "Zobrazit osu Y",
"options": {
"mode": {
"bars": "[0] Sloupce",
"circle": "[1] Kruh",
"wave": "[2] Vlna",
"rainbow": "[3] Duha",
"rings": "[4] Prstence",
"mirror": "[5] Zrcadlo",
"line": "[6] Linka",
"particles": "[7] Částice",
"fullOctave": "[8] Plná oktáva / 10 pásem",
"outlineBars": "[10] Obrysové sloupce"
},
"colorMode": {
"gradient": "Přechod",
"barIndex": "Index sloupce",
@@ -1248,10 +1332,11 @@
"dualVertical": "Duální vertikální"
},
"frequencyScale": {
"bark": "Bark",
"linear": "Lineární",
"log": "Log",
"mel": "Mel"
"bark": "Barkova stupnice",
"linear": "Lineární stupnice",
"log": "Logaritmická stupnice",
"mel": "Melová stupnice",
"none": "Žádný"
},
"weightingFilter": {
"none": "Žádný",
@@ -1260,7 +1345,21 @@
"c": "C",
"d": "D",
"z": "Z"
},
"mode": {
"0": "[0] Diskrétní frekvence",
"1": "[1] 1/24 oktávy / 240 pásem",
"2": "[2] 1/12 oktávy / 120 pásem",
"3": "[3] 1/8 oktávy / 80 pásem",
"4": "[4] 1/6 oktávy / 60 pásem",
"5": "[5] 1/4 oktávy / 40 pásem",
"6": "[6] 1/3 oktávy / 30 pásem",
"7": "[7] Polovina oktávy / 20 pásem",
"8": "[8] Celá oktáva / 10 pásem",
"10": "[10] Linka / Graf oblasti"
}
}
},
"pasteGradient": "Vložit přechod",
"pasteGradientPlaceholder": "Sem vložte JSON přechodu…"
}
}
File diff suppressed because it is too large Load Diff
+325 -96
View File
@@ -1,22 +1,22 @@
{
"action": {
"editPlaylist": "$t(entity.playlist_one) bearbeiten",
"editPlaylist": "$t(entity.playlist, {\"count\": 1}) bearbeiten",
"clearQueue": "Wiedergabeliste leeren",
"addToFavorites": "Zu $t(entity.favorite_other) hinzufügen",
"addToPlaylist": "Zu $t(entity.playlist_one) hinzufügen",
"createPlaylist": "$t(entity.playlist_one) erstellen",
"deletePlaylist": "$t(entity.playlist_one) löschen",
"addToFavorites": "Zu $t(entity.favorite, {\"count\": 2}) hinzufügen",
"addToPlaylist": "Zu $t(entity.playlist, {\"count\": 1}) hinzufügen",
"createPlaylist": "$t(entity.playlist, {\"count\": 1}) erstellen",
"deletePlaylist": "$t(entity.playlist, {\"count\": 1}) löschen",
"deselectAll": "Alle abwählen",
"goToPage": "Zu Seite gehen",
"moveToTop": "Als erstes",
"moveToBottom": "Als letztes",
"removeFromPlaylist": "Aus $t(entity.playlist_one) entfernen",
"viewPlaylists": "$t(entity.playlist_other) anzeigen",
"removeFromPlaylist": "Aus $t(entity.playlist, {\"count\": 1}) entfernen",
"viewPlaylists": "$t(entity.playlist, {\"count\": 2}) anzeigen",
"refresh": "$t(common.refresh)",
"removeFromQueue": "Aus Wiedergabeliste entfernen",
"setRating": "Bewerten",
"toggleSmartPlaylistEditor": "Editor für $t(entity.smartPlaylist) ein-/ausblenden",
"removeFromFavorites": "Aus $t(entity.favorite_other) entfernen",
"removeFromFavorites": "Aus $t(entity.favorite, {\"count\": 2}) entfernen",
"openIn": {
"lastfm": "Auf Last.fm öffnen",
"musicbrainz": "Auf MusicBrainz öffnen"
@@ -30,10 +30,14 @@
"viewMore": "Mehr zeigen",
"moveUp": "Nach oben bewegen",
"moveDown": "Nach unten bewegen",
"createRadioStation": "$t(entity.radioStation_one) erstellen",
"deleteRadioStation": "$t(entity.radioStation_one) löschen",
"createRadioStation": "$t(entity.radioStation, {\"count\": 1}) erstellen",
"deleteRadioStation": "$t(entity.radioStation, {\"count\": 1}) löschen",
"selectAll": "alle auswählen",
"openApplicationDirectory": "Anwendungsverzeichnis öffnen"
"openApplicationDirectory": "Anwendungsverzeichnis öffnen",
"addOrRemoveFromSelection": "Zur Auswahl hinzufügen oder entfernen",
"selectRangeOfItems": "Wählen sie eine Reihe von Elementen",
"holdToMoveToTop": "Halten um nach oben zu bewegen",
"holdToMoveToBottom": "Halten um nach unten zu bewegen"
},
"common": {
"backward": "zurück",
@@ -48,7 +52,7 @@
"left": "Linksbündig",
"save": "Speichern",
"right": "Rechtsbündig",
"currentSong": "Aktueller $t(entity.track_one)",
"currentSong": "Aktueller $t(entity.track, {\"count\": 1})",
"collapse": "Verkleinern",
"trackNumber": "Track",
"descending": "absteigend",
@@ -104,7 +108,7 @@
"none": "keine",
"menu": "Menü",
"restartRequired": "(Neustart benötigt)",
"previousSong": "vorheriger $t(entity.track_one)",
"previousSong": "vorheriger $t(entity.track, {\"count\": 1})",
"noResultsFromQuery": "Die Abfrage brachte keine Ergebnisse",
"quit": "verlassen",
"expand": "Vergrößern",
@@ -150,7 +154,13 @@
"slower": "langsamer",
"releaseType": "Veröffentlichungsformat",
"view": "Betrachten",
"countSelected": "{{count}} ausgewählt"
"countSelected": "{{count}} ausgewählt",
"mood": "Stimmung",
"example": "Beispiel",
"rename": "Umbenennen",
"filter_single": "einzeln",
"filter_multiple": "mehrfach",
"retry": "Wiederholen"
},
"error": {
"remotePortWarning": "Starten Sie den Server neu, um den neuen Port anzuwenden",
@@ -178,7 +188,12 @@
"badValue": "ungültige option \"{{value}}\". Dieser Wert existiert nicht mehr",
"notificationDenied": "Berechtigungen über Benachrichtigungen wurden verweigert. Diese Einstellung hat keinen Effekt",
"saveQueueFailed": "Wiedergabeliste konnte nicht gespeichert werden",
"multipleServerSaveQueueError": "die Wiedergabeliste enthält einen oder mehrere Titel, die nicht vom aktuellen Server stammen. dies wird nicht unterstützt"
"multipleServerSaveQueueError": "die Wiedergabeliste enthält einen oder mehrere Titel, die nicht vom aktuellen Server stammen. dies wird nicht unterstützt",
"noNetwork": "Server nicht verfügbar",
"noNetworkDescription": "Verbindung zum Server konnte nicht hergestellt werden",
"invalidJson": "JSON ungültig",
"serverLockSingleServer": "Nur ein Server ist erlaubt, wenn der Server gesperrt ist",
"settingsSyncError": "Es wurden Unstimmigkeiten zwischen den Einstellungen im Renderer und dem Hauptprozess gefunden. Starte die Anwendung neu, um die Änderungen zu übernehmen"
},
"filter": {
"mostPlayed": "Meistgespielt",
@@ -197,11 +212,11 @@
"name": "Name",
"dateAdded": "Datum hinzugefügt",
"releaseDate": "Veröffentlichungsdatum",
"albumCount": "$t(entity.album_other) Anzahl",
"albumCount": "$t(entity.album, {\"count\": 2}) Anzahl",
"communityRating": "Community-Wertung",
"path": "Pfad",
"favorited": "favorisiert",
"albumArtist": "$t(entity.albumArtist_one)",
"albumArtist": "$t(entity.albumArtist, {\"count\": 1})",
"isRecentlyPlayed": "wurde kürzlich gespielt",
"isFavorited": "wird favorisiert",
"bpm": "bpm",
@@ -217,25 +232,27 @@
"toYear": "bis Jahr",
"fromYear": "ab Jahr",
"criticRating": "Kritikerbewertung",
"album": "$t(entity.album_one)",
"album": "$t(entity.album, {\"count\": 1})",
"trackNumber": "Track",
"channels": "$t(common.channel_other)",
"owner": "$t(common.owner)",
"genre": "$t(entity.genre_one)",
"artist": "$t(entity.artist_one)",
"explicitStatus": "$t(common.explicitStatus)"
"genre": "$t(entity.genre, {\"count\": 1})",
"artist": "$t(entity.artist, {\"count\": 1})",
"explicitStatus": "$t(common.explicitStatus)",
"matchAnd": "und",
"matchOr": "oder"
},
"form": {
"deletePlaylist": {
"title": "$t(entity.playlist_one) löschen",
"success": "$t(entity.playlist_one) erfolgreich gelöscht",
"input_confirm": "Geben Sie zur Bestätigung den Namen von $t(entity.playlist_one) ein"
"title": "$t(entity.playlist, {\"count\": 1}) löschen",
"success": "$t(entity.playlist, {\"count\": 1}) erfolgreich gelöscht",
"input_confirm": "Geben Sie zur Bestätigung den Namen von $t(entity.playlist, {\"count\": 1}) ein"
},
"createPlaylist": {
"input_description": "$t(common.description)",
"title": "$t(entity.playlist_one) erstellen",
"title": "$t(entity.playlist, {\"count\": 1}) erstellen",
"input_public": "öffentlich",
"success": "$t(entity.playlist_one) erfolgreich erstellt",
"success": "$t(entity.playlist, {\"count\": 1}) erfolgreich erstellt",
"input_name": "$t(common.name)",
"input_owner": "$t(common.owner)"
},
@@ -252,15 +269,18 @@
"ignoreCors": "CORS ignorieren $t(common.restartRequired)",
"error_savePassword": "Beim Speichern des Passworts ist ein Fehler aufgetreten",
"input_preferInstantMix": "Instant-Mix bevorzugen",
"input_preferInstantMixDescription": "nur Instant-Mix verwenden, um ähnliche Songs zu erhalten. Nützlich bei Verwendung von Plugins, die in dieses Verhalten eingreifen"
"input_preferInstantMixDescription": "nur Instant-Mix verwenden, um ähnliche Songs zu erhalten. Nützlich bei Verwendung von Plugins, die in dieses Verhalten eingreifen",
"input_preferRemoteUrl": "öffentliche URL bevorzugen",
"input_remoteUrl": "Öffentliche URL",
"input_remoteUrlPlaceholder": "Optional: öffentliche URL für externe Funktionen"
},
"addToPlaylist": {
"success": "$t(entity.trackWithCount, {\"count\": {{message}} }) zu $t(entity.playlistWithCount, {\"count\": {{numOfPlaylists}} }) hinzugefügt",
"title": "Zu $t(entity.playlist_one) hinzufügen",
"title": "Zu $t(entity.playlist, {\"count\": 1}) hinzufügen",
"input_skipDuplicates": "Duplikate überspringen",
"input_playlists": "$t(entity.playlist_other)",
"create": "$t(entity.playlist_one) {{playlist}} erstellen",
"searchOrCreate": "Nach $t(entity.playlist_other) suchen oder Namen eingeben, um eine neue zu erstellen"
"input_playlists": "$t(entity.playlist, {\"count\": 2})",
"create": "$t(entity.playlist, {\"count\": 1}) {{playlist}} erstellen",
"searchOrCreate": "Nach $t(entity.playlist, {\"count\": 2}) suchen oder Namen eingeben, um eine neue zu erstellen"
},
"updateServer": {
"title": "Server aktualisieren",
@@ -276,15 +296,15 @@
"resetToDefault": "auf Standard zurücksetzen"
},
"editPlaylist": {
"title": "Bearbeite $t(entity.playlist_one)",
"success": "$t(entity.playlist_one) erfolgreich aktualisiert",
"publicJellyfinNote": "Jellyfin legt aus irgendwelchen Gründen nicht offen ob eine Playlist öffentlich ist oder nicht. Wenn du möchtest, dass sie öffentlich bleibt, wähle bitte diese Option aus",
"title": "Bearbeite $t(entity.playlist, {\"count\": 1})",
"success": "$t(entity.playlist, {\"count\": 1}) erfolgreich aktualisiert",
"publicJellyfinNote": "Jellyfin legt aus irgendwelchen Gründen nicht offen ob eine Wiedergabeliste öffentlich ist oder nicht. Wenn du möchtest, dass sie öffentlich bleibt, wähle bitte diese Option aus",
"editNote": "Manuelles Bearbeiten wird für große Wiedergabelisten nicht empfohlen. Bist Du sicher, dass Du die aktuelle Wiedergabeliste unter dem Risiko von Datenverlust überschrieben möchtest?"
},
"lyricSearch": {
"title": "Songtext Suche",
"input_name": "$t(common.name)",
"input_artist": "$t(entity.artist_one)"
"input_artist": "$t(entity.artist, {\"count\": 1})"
},
"shareItem": {
"description": "Beschreibung",
@@ -305,7 +325,7 @@
},
"shuffleAll": {
"title": "Zufallswiedergabe",
"input_genre": "$t(entity.genre_one)",
"input_genre": "$t(entity.genre, {\"count\": 1})",
"input_limit": "Wie viele Songs?",
"input_minYear": "ab Jahr",
"input_maxYear": "bis Jahr",
@@ -323,6 +343,11 @@
"input_homepageUrl": "Homepage URL",
"input_name": "Name",
"input_streamUrl": "Stream URL"
},
"lyricsExport": {
"input_offset": "$t(setting.lyricOffset)",
"export": "Songtexte exportieren",
"input_synced": "Synchronisierte Songtexte exportieren"
}
},
"entity": {
@@ -356,7 +381,7 @@
"genreWithCount_other": "{{count}} Genres",
"trackWithCount_one": "{{count}} Track",
"trackWithCount_other": "{{count}} Tracks",
"smartPlaylist": "Intelligente $t(entity.playlist_one)",
"smartPlaylist": "Intelligente $t(entity.playlist, {\"count\": 1})",
"play_one": "{{count}} Wiedergabe",
"play_other": "{{count}} Wiedergaben",
"song_one": "Lied",
@@ -371,7 +396,8 @@
"view": {
"table": "Tabelle",
"grid": "Raster",
"list": "Liste"
"list": "Liste",
"detail": "Detail"
},
"general": {
"tableColumns": "Tabellenspalten",
@@ -390,7 +416,20 @@
"size_large": "groß",
"pagination": "Seitenzahlen",
"pagination_itemsPerPage": "Elemente pro Seite",
"pagination_infinite": "unendlich"
"pagination_infinite": "unendlich",
"moveUp": "Nach oben bewegen",
"moveDown": "Nach unten bewegen",
"pinToLeft": "links anheften",
"pinToRight": "rechts anheften",
"itemGap": "Item Abstand (px)",
"itemSize": "Item Größe (px)",
"itemsPerRow": "Items pro Zeile",
"pagination_paginate": "paginiert",
"alternateRowColors": "Zeilenfarben abwechseln",
"horizontalBorders": "Zeilenbegrenzungen",
"rowHoverHighlight": "Zeilenhervorhebungen beim hovern",
"showHeader": "Spaltenüberschrift anzeigen",
"verticalBorders": "Spaltenbegrenzungen"
},
"label": {
"dateAdded": "Hinzugefügt am",
@@ -399,12 +438,12 @@
"trackNumber": "Tracknummer",
"biography": "$t(common.biography)",
"bitrate": "$t(common.bitrate)",
"albumArtist": "$t(entity.albumArtist_one)",
"artist": "$t(entity.artist_one)",
"albumArtist": "$t(entity.albumArtist, {\"count\": 1})",
"artist": "$t(entity.artist, {\"count\": 1})",
"favorite": "$t(common.favorite)",
"actions": "$t(common.action_other)",
"genre": "$t(entity.genre_one)",
"album": "$t(entity.album_one)",
"genre": "$t(entity.genre, {\"count\": 1})",
"album": "$t(entity.album, {\"count\": 1})",
"size": "$t(common.size)",
"bpm": "$t(common.bpm)",
"titleCombined": "$t(common.title) (kombiniert)",
@@ -419,13 +458,15 @@
"year": "$t(common.year)",
"discNumber": "disk-Nummer",
"playCount": "Wiedergaben",
"albumCount": "$t(entity.album_other)",
"albumCount": "$t(entity.album, {\"count\": 2})",
"bitDepth": "$t(common.bitDepth)",
"codec": "$t(common.codec)",
"image": "Bild",
"sampleRate": "$t(common.sampleRate)",
"songCount": "$t(entity.track_other)",
"genreBadge": "$t(entity.genre_one) (Abzeichen)"
"songCount": "$t(entity.track, {\"count\": 2})",
"genreBadge": "$t(entity.genre, {\"count\": 1}) (Abzeichen)",
"composer": "Komponist",
"titleArtist": "$t(common.title) (Interpret)"
}
},
"column": {
@@ -441,15 +482,15 @@
"favorite": "Favorit",
"lastPlayed": "zuletzt gespielt",
"rating": "Bewertung",
"albumCount": "$t(entity.album_other)",
"artist": "$t(entity.artist_one)",
"albumCount": "$t(entity.album, {\"count\": 2})",
"artist": "$t(entity.artist, {\"count\": 1})",
"channels": "$t(common.channel_other)",
"comment": "Kommentar",
"dateAdded": "hinzugefügt am",
"playCount": "Abgespielt",
"discNumber": "Disk",
"genre": "$t(entity.genre_one)",
"songCount": "$t(entity.track_other)",
"genre": "$t(entity.genre, {\"count\": 1})",
"songCount": "$t(entity.track, {\"count\": 2})",
"trackNumber": "titel",
"size": "$t(common.size)",
"bitDepth": "$t(common.bitDepth)",
@@ -491,7 +532,7 @@
"openBrowserDevtools": "Browser-Entwicklungswerkzeuge öffnen",
"goBack": "Gehe zurück",
"goForward": "Gehe vorwärts",
"settings": "$t(common.setting_other)",
"settings": "$t(common.setting, {\"count\": 2})",
"quit": "$t(common.quit)",
"privateModeOff": "Privatmodus deaktivieren",
"privateModeOn": "Privatmodus aktivieren",
@@ -507,10 +548,10 @@
"recentlyPlayed": "Kürzlich gespielt",
"title": "$t(common.home)",
"recentlyReleased": "kürzlich veröffentlicht",
"genres": "$t(entity.genre_other)"
"genres": "$t(entity.genre, {\"count\": 2})"
},
"albumDetail": {
"moreFromArtist": "mehr von diesem $t(entity.artist_one)",
"moreFromArtist": "mehr von diesem $t(entity.artist, {\"count\": 1})",
"moreFromGeneric": "Mehr von {{item}}",
"released": "erschienen"
},
@@ -545,27 +586,28 @@
"moveToNext": "$t(action.moveToNext)",
"shareItem": "teilen",
"showDetails": "Informationen",
"goToAlbum": "zu $t(entity.album_one) gehen",
"goToAlbumArtist": "zu $t(entity.albumArtist_one) gehen",
"goToAlbum": "zu $t(entity.album, {\"count\": 1}) gehen",
"goToAlbumArtist": "zu $t(entity.albumArtist, {\"count\": 1}) gehen",
"moveItems": "$t(action.moveItems)",
"goTo": "Gehe zu"
},
"sidebar": {
"nowPlaying": "läuft gerade",
"playlists": "$t(entity.playlist_other)",
"playlists": "$t(entity.playlist, {\"count\": 2})",
"search": "$t(common.search)",
"tracks": "$t(entity.track_other)",
"albums": "$t(entity.album_other)",
"genres": "$t(entity.genre_other)",
"folders": "$t(entity.folder_other)",
"settings": "$t(common.setting_other)",
"tracks": "$t(entity.track, {\"count\": 2})",
"albums": "$t(entity.album, {\"count\": 2})",
"genres": "$t(entity.genre, {\"count\": 2})",
"folders": "$t(entity.folder, {\"count\": 2})",
"settings": "$t(common.setting, {\"count\": 2})",
"home": "$t(common.home)",
"artists": "$t(entity.artist_other)",
"albumArtists": "$t(entity.albumArtist_other)",
"shared": "$t(entity.playlist_other) geteilt",
"artists": "$t(entity.artist, {\"count\": 2})",
"albumArtists": "$t(entity.albumArtist, {\"count\": 2})",
"shared": "$t(entity.playlist, {\"count\": 2}) geteilt",
"myLibrary": "meine bibliothek",
"favorites": "$t(entity.favorite_other)",
"radio": "$t(entity.radioStation_other)"
"favorites": "$t(entity.favorite, {\"count\": 2})",
"radio": "$t(entity.radioStation, {\"count\": 2})",
"collections": "Sammlungen"
},
"setting": {
"playbackTab": "Wiedergabe",
@@ -589,39 +631,46 @@
"transcoding": "Transcoding",
"logger": "Logger",
"playerFilters": "Player-Filter",
"remote": "Fernsteuerung"
"remote": "Fernsteuerung",
"lyricsDisplay": "Songtexte Anzeige"
},
"albumArtistList": {
"title": "$t(entity.albumArtist_other)"
"title": "$t(entity.albumArtist, {\"count\": 2})"
},
"genreList": {
"title": "$t(entity.genre_other)",
"showTracks": "$t(entity.genre_one) $t(entity.track_other) anzeigen",
"showAlbums": "$t(entity.genre_one) $t(entity.album_other) anzeigen"
"title": "$t(entity.genre, {\"count\": 2})",
"showTracks": "$t(entity.genre, {\"count\": 1}) $t(entity.track, {\"count\": 2}) anzeigen",
"showAlbums": "$t(entity.genre, {\"count\": 1}) $t(entity.album, {\"count\": 2}) anzeigen"
},
"trackList": {
"title": "$t(entity.track_other)",
"title": "$t(entity.track, {\"count\": 2})",
"artistTracks": "Tracks von {{artist}}",
"genreTracks": "\"{{genre}}\" $t(entity.track_other)"
"genreTracks": "\"{{genre}}\" $t(entity.track, {\"count\": 2})"
},
"playlistList": {
"title": "$t(entity.playlist_other)"
"title": "$t(entity.playlist, {\"count\": 2})"
},
"albumList": {
"title": "$t(entity.album_other)",
"title": "$t(entity.album, {\"count\": 2})",
"artistAlbums": "Alben von {{artist}}",
"genreAlbums": "\"{{genre}}\" $t(entity.album_other)"
"genreAlbums": "\"{{genre}}\" $t(entity.album, {\"count\": 2})"
},
"albumArtistDetail": {
"about": "Über {{artist}}",
"appearsOn": "erscheint auf",
"recentReleases": "Kürzliche Veröffentlichungen",
"viewDiscography": "Diskographie ansehen",
"viewAllTracks": "Alle $t(entity.track_other) ansehen",
"viewAllTracks": "Alle $t(entity.track, {\"count\": 2}) ansehen",
"topSongsFrom": "Toplieder von {{title}}",
"viewAll": "Alles ansehen",
"topSongs": "Toplieder",
"relatedArtists": "ähnliche $t(entity.artist_other)"
"relatedArtists": "ähnliche $t(entity.artist, {\"count\": 2})",
"groupingTypeAll": "alle Veröffentlichungsformate",
"groupingTypePrimary": "primäre Veröffentlichungsformate",
"favoriteSongs": "Lieblingssongs",
"favoriteSongsFrom": "Liebslingssongs von {{title}}",
"topSongsCommunity": "Community",
"topSongsPersonal": "Persönlich"
},
"manageServers": {
"title": "Servers verwalten",
@@ -637,16 +686,28 @@
"openFile": "Track im Dateiexplorer anzeigen"
},
"favorites": {
"title": "$t(entity.favorite_other)"
"title": "$t(entity.favorite, {\"count\": 2})"
},
"folderList": {
"title": "$t(entity.folder_other)"
"title": "$t(entity.folder, {\"count\": 2})"
},
"playlist": {
"reorder": "Neuanordnung nur bei Sortierung nach ID möglich"
},
"radioList": {
"title": "Radiosender"
},
"windowBar": {
"paused": "(Pausiert) ",
"privateMode": "(Privater Modus)"
},
"collections": {
"saveAsCollection": "Als Sammlung speichern",
"overrideExisting": "Bestehende überschreiben"
},
"releasenotes": {
"commitsSinceStable": "Commits seit {{stable}}",
"noStableReleaseToCompare": "Kein stable Relase zum vergleichen verfügbar"
}
},
"player": {
@@ -673,7 +734,7 @@
"queue_moveToBottom": "Ausgewählte nach oben verschieben",
"shuffle_off": "Zufallswiedergabe deaktiviert",
"stop": "stopp",
"toggleFullscreenPlayer": "vollbildmodus",
"toggleFullscreenPlayer": "Vollbildmodus",
"skip_back": "zurückspulen",
"pause": "Pause",
"unfavorite": "Aus Favoriten entfernen",
@@ -683,12 +744,21 @@
"viewQueue": "Wiedergabeliste anzeigen",
"addLastShuffled": "als Letztes (zufällige Wiedergabe)",
"addNextShuffled": "als Nächstes (zufällige Wiedergabe)",
"queueType_default": "Standard",
"queueType_priority": "Priorität",
"holdToShuffle": "Halten für Zufallswiedergabe",
"queueType": "Wiedergabelistentyp",
"restoreQueueFromServer": "Wiedergabeliste von Server wiederherstellen",
"saveQueueToServer": "Wiedergabeliste auf Server speichern"
"saveQueueToServer": "Wiedergabeliste auf Server speichern",
"lyrics": "Songtexte",
"artistRadio": "Künstler Radio",
"sleepTimer_endOfSong": "Ende des aktuellen Liedes",
"sleepTimer_off": "aus",
"sleepTimer_timeRemaining": "{{time}} verbleibend",
"sleepTimer_cancel": "Timer abbrechen",
"sleepTimer_setCustom": "Timer stellen",
"sleepTimer": "Sleep Timer",
"sleepTimer_custom": "Benutzerdefiniert",
"sleepTimer_hours": "{{count}} std",
"sleepTimer_minutes": "{{count}} min",
"trackRadio": "Song Radio"
},
"setting": {
"audioDevice_description": "wählen Sie das Audiogerät aus, das für die Wiedergabe verwendet werden soll (nur Webplayer)",
@@ -704,7 +774,6 @@
"disableLibraryUpdateOnStartup": "beim Start nicht nach neuen Versionen suchen",
"discordApplicationId_description": "die Application-ID für {{discord}} Rich Presence (Standard: {{defaultId}})",
"audioPlayer_description": "Wählen Sie den Audioplayer aus, der für die Wiedergabe verwendet werden soll",
"disableAutomaticUpdates": "Automatische Updates deaktivieren",
"crossfadeDuration_description": "Legt die Dauer der Überblendung fest",
"customFontPath": "Benutzerdefinierter Pfad für Schriftarten",
"crossfadeDuration": "Dauer der Überblendung",
@@ -752,7 +821,7 @@
"gaplessAudio_description": "Legt die lückenlose Audioeinstellung für MPV fest",
"remoteUsername_description": "Legt den Benutzernamen für den Fernsteuerungsserver fest. Wenn sowohl Benutzername als auch Passwort leer sind, wird die Authentifizierung deaktiviert",
"hotkey_favoritePreviousSong": "Favorit $t(common.previousSong)",
"replayGainMode_optionAlbum": "$t(entity.album_one)",
"replayGainMode_optionAlbum": "$t(entity.album, {\"count\": 1})",
"lyricOffset": "Zeitversatz des Songtextes (ms)",
"themeDark_description": "Legt das Erscheinungsbild für den dunklen Modus fest",
"remotePassword": "Passwort des Fernsteuerungsservers",
@@ -760,7 +829,7 @@
"language_description": "Legt die Sprache für die Anwendung fest $t(common.restartRequired)",
"playbackStyle_optionCrossFade": "Überblendung",
"hotkey_rate3": "Bewertung 3 Sterne",
"replayGainMode_optionTrack": "$t(entity.track_one)",
"replayGainMode_optionTrack": "$t(entity.track, {\"count\": 1})",
"themeLight_description": "Legt das Erscheinungsbild für den hellen Modus fest",
"hotkey_toggleFullScreenPlayer": "Vollbildmodus umschalten",
"hotkey_localSearch": "Suche auf Seite",
@@ -785,7 +854,8 @@
"fontType_description": "Die integrierte Schriftart wählt eine der von feishin bereitgestellten Schriftarten aus. Mit der Systemschriftart können Sie jede von Ihrem Betriebssystem bereitgestellte Schriftart auswählen. Benutzerdefiniert erlaubt es eine eigene Schriftart bereitzustellen",
"playButtonBehavior": "Verhalten der Wiedergabetaste",
"volumeWheelStep": "Lautstärkeänderung mit Mausrad",
"sidebarPlaylistList_description": "Ein- oder Ausblenden der Playlisten-Liste in der Seitenleiste",
"sidebarPlaylistList_description": "Ein- oder Ausblenden der Wiedergabelisten in der Seitenleiste",
"sidebarPlaylistSorting_description": "sortiere Wiedergabelisten in der Seitenleiste per Drag & Drop anstelle der standardmäßigen Serverreihenfolge",
"sidePlayQueueStyle_description": "legt den Stil der Wiedergabeliste in der Seitenleiste fest",
"replayGainMode": "{{ReplayGain}} Modus",
"playbackStyle_optionNormal": "Normal",
@@ -800,7 +870,7 @@
"useSystemTheme_description": "Folgt dem hellen oder dunklen Erscheinungsbild des Systems",
"playButtonBehavior_optionAddNext": "$t(player.addNext)",
"lyricFetch_description": "Songtexte aus verschiedenen Internetquellen abrufen",
"lyricFetchProvider_description": "Wählen Sie die Anbieter aus, von denen Sie Liedtexte abrufen möchten. Die Reihenfolge der Anbieter ist die Reihenfolge, in der sie abgefragt werden",
"lyricFetchProvider_description": "Wähle den Anbieter zum Abrufen von Songtexten aus",
"globalMediaHotkeys_description": "aktivieren oder deaktivieren Sie die Verwendung der Medien-Kurzbefehle Ihres Systems zur Steuerung der Wiedergabe",
"hotkey_zoomOut": "Herauszoomen",
"hotkey_unfavoriteCurrentSong": "$t(common.currentSong) aus Favoriten entfernen",
@@ -809,9 +879,10 @@
"remoteUsername": "Benutzername des Fernsteuerungsserver",
"hotkey_browserBack": "Browser zurück",
"showSkipButton": "Schaltflächen zum Überspringen anzeigen",
"sidebarPlaylistList": "Seitenleiste Playlisten-Liste",
"sidebarPlaylistList": "Wiedergabelisten in Seitenleiste",
"sidebarPlaylistSorting": "Wiedergabelisten-Sortierung in der Seitenleiste",
"minimizeToTray": "Zur Taskleiste minimieren",
"skipPlaylistPage": "Playlisten-Seite überspringen",
"skipPlaylistPage": "Wiedergabeliste-Seite überspringen",
"themeDark": "Erscheinungsbild (dunkel)",
"sidebarCollapsedNavigation": "Navigation in der Seitenleiste (komprimiert)",
"gaplessAudio_optionWeak": "schwach (empfohlen)",
@@ -838,7 +909,7 @@
"sidePlayQueueStyle_optionDetached": "lösgelöst",
"windowBarStyle_description": "Legt das Erscheinungsbild des Fensterrahmens fest",
"hotkey_toggleCurrentSongFavorite": "$t(common.currentSong) zu Favoriten hinzufügen",
"clearQueryCache_description": "\"Weiches\" Zurücksetzen. Dies wird Playlisten, Musik-Metadaten und gespeicherte Liedtexte zurücksetzen, Zugangsinformationen und zwischengespeicherte Bilder werden behalten",
"clearQueryCache_description": "\"Weiches\" Zurücksetzen. Dies wird Wiedergabelisten, Musik-Metadaten und gespeicherte Songtexte zurücksetzen, Zugangsinformationen und zwischengespeicherte Bilder werden behalten",
"discordRichPresence_description": "Aktiviert den Wiedergabestatus in {{discord}} Rich Presence. Angezeigte Bilder sind: {{icon}}, {{playing}}, und {{paused}}",
"clearCache": "Browser-Zwischenspeicher löschen",
"clearQueryCache": "feishins Zwischenspeicher leeren",
@@ -855,7 +926,7 @@
"discordListening_description": "Status als hört zu statt als spielt anzeigen",
"lastfm": "zeige last.fm links",
"lastfm_description": "zeige links zu Last.fm auf dem Künstler/Album-Seiten",
"musicbrainz": "Zeig MusicBrainz links",
"musicbrainz": "Zeige MusicBrainz links",
"customCssEnable": "benutzerdefiniertes CSS aktivieren",
"albumBackground_description": "fügt ein Hintergrundbild für die Albumseiten hinzu, welche das Albumcover zeigen",
"albumBackgroundBlur": "Größe der Album-Bildunschärfe",
@@ -967,7 +1038,63 @@
"translationTargetLanguage_description": "die gewünschte Sprache der Übersetzung",
"translationTargetLanguage": "Zielsprache der Übersetzung",
"queryBuilderCustomFields": "benutzerdefiniertes Feld",
"queryBuilderCustomFields_inputTag": "Tag"
"queryBuilderCustomFields_inputTag": "Tag",
"homeFeatureStyle_optionMultiple": "mehrere",
"imageResolution": "Bildauflösung",
"imageResolution_optionTable": "Tabelle",
"imageResolution_optionSidebar": "Seitenleiste",
"preservePitch": "Tonhöhe erhalten",
"analyticsEnable": "Nutzungsbasierte Analyse senden",
"automaticUpdates": "Automatische Updates",
"automaticUpdates_description": "Updates automatisch suchen und installieren",
"releaseChannel_optionAlpha": "Alpha (nightly)",
"useThemeAccentColor": "Akzentfarbe des Themas nutzen",
"analyticsEnable_description": "Anonymisierte Nutzungsdaten werden an den Entwickler gesendet, um die Anwendung zu verbessern",
"artistReleaseTypeConfiguration_description": "Konfigurieren, welche Release-Typen und in welcher Reihenfolge diese auf der Album-Künstlerseite angezeigt werden",
"homeConfiguration_description": "Konfigurieren, welche Elemente und in welcher Reihenfolge diese auf der Startseite angezeigt werden",
"passwordStore_description": "Verwendeter Passwort/Geheimnis Speicher. Sollten Probleme beim Speichern von Passwörtern auftreten, wähle eine andere Methode",
"passwordStore": "Passwort/Geheimnis Speicher",
"audioFadeOnStatusChange_description": "ermöglicht Ein- und Ausblenden, wenn sich der Wiedergabe-/Pause-Status ändert",
"audioFadeOnStatusChange": "Audio Ein-/Ausblenden bei Statusveränderung",
"showRatings_description": "Aktiviere die Anzeige einer Bewertung in Sternen",
"showRatings": "Zeige Sternebewertungen",
"blurExplicitImages": "Explizite Bilder unkenntlich machen",
"blurExplicitImages_description": "Album- und Song-Cover, die als explizit gekennzeichnet sind, werden unscharf dargestellt",
"enableGridMultiSelect": "Raster-Mehrfachauswahl aktivieren",
"enableGridMultiSelect_description": "Wenn aktiviert, können in Rasteransichten mehrere Elemente ausgewählt werden. Wenn deaktiviert, führt ein Klick auf Rasterelement-Bilder zur Artikelseite",
"playerbarOpenDrawer_description": "Ermöglicht das Anklicken der Playerleiste, um den Vollbild-Player zu öffnen",
"playerbarOpenDrawer": "Playerleiste Vollbild-Umschalter",
"playerbarSlider": "Playerleiste-Schieberegler",
"playerbarSlider_description": "Die Wellenform Darstellung wird nicht empfohlen, wenn eine langsame oder tarifierte Internetverbindung genutzt wird",
"playerbarSliderType_optionSlider": "Schieberegler",
"playerbarSliderType_optionWaveform": "Wellenform",
"playerbarWaveformAlign": "Wellenform ausrichten",
"playerbarWaveformBarWidth": "Breite der Wellenform Leiste",
"playerbarWaveformGap": "Wellenform Lücke",
"playerbarWaveformRadius": "Wellenform Radius",
"artistRadioCount": "Interpreten/Song Radio Länge",
"artistRadioCount_description": "legt die Anzahl der Songs fest, die beim Interpreten-Radio und Song-Radio abgerufen werden",
"sidebarPlaylistListFilterRegex_description": "versteckt Wiedergabelisten in der Seitenleiste, die diesem regulären Ausdruck entsprechen",
"sidebarPlaylistListFilterRegex_placeholder": "z.B. ^Täglicher Mix.*",
"sidebarPlaylistListFilterRegex": "Wiedergabelisten Regex-Filter",
"showVisualizerInSidebar_description": "Ein Panel wird zur Player-Seitenleiste hinzugefügt, das den Visualizer anzeigt",
"showVisualizerInSidebar": "Visualizer in Seitenleiste anzeigen",
"combinedLyricsAndVisualizer_description": "Songtexte und Visualizer im selben Panel anzeigen",
"combinedLyricsAndVisualizer": "Songtexte und Visualizer geimeinsam in der Seitenleiste anzeigen",
"mpvExtraParameters_description": "zusätzliche Argumente die an mpv übergeben werden sollen",
"mpvExtraParameters_help": "Eins pro Zeile",
"pathReplace": "Dateipfad-Ersetzung",
"pathReplace_description": "Ersetze den Standard Dateipfad des Servers",
"pathReplace_optionRemovePrefix": "Präfix entfernen",
"pathReplace_optionAddPrefix": "Präfix hinzufügen",
"imageResolution_description": "Die Auflösung für die in der App verwendeten Bilder. Bei einem Wert von 0 wird die originale Bildauflösung verwendet",
"preservePitch_description": "Behält beim Anpassen der Wiedergabegeschwindigkeit die Tonhöhe bei",
"preventSleepOnPlayback_description": "Verhindert das Abschalten des Displays während der Musikwiedergabe",
"preventSleepOnPlayback": "Verhindert den Energiesparmodus während der Musikwiedergabe",
"trayEnabled_description": "Tray-Symbol anzeigen/verbergen. Bei Deaktivierung werden auch Minimieren/Beenden zum Tray deaktiviert",
"queryBuilder": "Abfrage-Editor",
"queryBuilderCustomFields_inputLabel": "Label",
"queryBuilderCustomFields_description": "Füge benutzerdefinierte Felder für den Abfrage-Editor hinzu"
},
"dragDropZone": {
"error_oneFileOnly": "Bitte wähle nur 1 Datei",
@@ -1001,7 +1128,7 @@
},
"releaseType": {
"primary": {
"album": "$t(entity.album_one)",
"album": "$t(entity.album, {\"count\": 1})",
"broadcast": "Broadcast",
"ep": "EP",
"other": "andere",
@@ -1027,5 +1154,107 @@
"secondShort": "Sek",
"hourShort": "Std",
"dayShort": "Tag"
},
"visualizer": {
"options": {
"weightingFilter": {
"z": "Z",
"d": "D",
"c": "C",
"none": "Keine",
"a": "A",
"b": "B"
},
"frequencyScale": {
"linear": "Lineare Skala",
"log": "Log Skala",
"mel": "Mel Skala",
"bark": "Bark-Skala",
"none": "Keine"
},
"gradient": {
"classic": "Klassisch",
"prism": "Prisma",
"rainbow": "Regenbogen",
"steelblue": "Stahlblau",
"orangered": "Orange-Rot"
},
"channelLayout": {
"dualHorizontal": "Dual-Horizontal",
"dualVertical": "Dual-Vertikal"
}
},
"minimumFrequency": "Mindestfrequenz",
"minimumDecibels": "Minimale Dezibel",
"visualizerType": "Visualizer Art",
"cyclePresets": "Vorlagen durchrotieren",
"cycleTime": "Abspieldauer je Vorlage (Sekunden)",
"includeAllPresets": "Alle Vorlagen verwenden",
"ignoredPresets": "Ignorierte Vorlagen",
"selectedPresets": "Ausgewählte Vorlagen",
"randomizeNextPreset": "Nächste Vorlage zufällig wählen",
"blendTime": "Übergangsdauer",
"presets": "Vorlage",
"selectPreset": "Vorlage auswählen",
"applyPreset": "Vorlage anwenden",
"saveAsPreset": "Als Vorlage speichern",
"updatePreset": "Vorlage aktualisieren",
"copyConfiguration": "Konfiguration kopieren",
"pasteConfiguration": "Konfiguration einfügen",
"pasteConfigurationPlaceholder": "JSON Konfiguration hier einfügen...",
"pasteFromClipboard": "Aus Zwischenablage einfügen",
"applyConfiguration": "Konfiguration anwenden",
"configCopied": "Konfiguration in Zwischenablage kopiert",
"configCopyFailed": "Konfiguration konnte nicht kopiert werden",
"configPasted": "Konfiguration erfolgreich angewandt",
"configPasteFailed": "Konfiguration konnte nicht angewandt werden. Bitte Format überprüfen.",
"configPasteReadFailed": "Zwischenablage konnte nicht ausgelesen werden",
"presetName": "Vorlagen Name",
"presetNamePlaceholder": "Name der Vorlage eingeben",
"general": "Allgemein",
"mode": "Modus",
"mode1To8": "Modus 1 - 8",
"mode10": "Modus 10",
"lineWidth": "Linienbreite",
"channelLayout": "Kanallayout",
"maxFPS": "Max FPS",
"opacity": "Deckkraft",
"customGradients": "Benutzerdefinierte Gradienten",
"addCustomGradient": "Benutzerdefinierten Gradienten hinzufügen",
"gradientName": "Gradientenname",
"gradientNamePlaceholder": "Gradientenname",
"vertical": "Vertikal",
"horizontal": "Horizontal",
"addColor": "Farbe hinzufügen",
"position": "Position",
"level": "Ebene",
"remove": "Entfernen",
"pasteGradient": "Gradient einfügen",
"pasteGradientPlaceholder": "Gradient JSON hier einfügen...",
"custom": "Benutzerdefiniert",
"builtIn": "Eingebaut",
"colors": "Farben",
"colorMode": "Farbmodus",
"gradient": "Gradienten",
"gradientLeft": "Gradienten links",
"gradientRight": "Gradienten rechts",
"fft": "FFT",
"fftSize": "FFT Größe",
"smoothing": "Glätten",
"frequencyRangeAndScaling": "Frequenzbereich und Skalierung",
"maximumFrequency": "Maximale Frequenz",
"sensitivity": "Empfindlichkeit",
"weightingFilter": "Gewichtungsfilter",
"maximumDecibels": "Maximale Dezibel",
"linearAmplitude": "Lineare Amplitude",
"linearBoost": "Linearer Boost",
"radialSpectrum": "Radiales Spektrum",
"radial": "Radial",
"radialInvert": "Radial invertiert",
"radius": "Radius",
"miscellaneousSettings": "Verschiedenes Einstellungen",
"ansiBands": "ANSI Bänder",
"lowResolution": "Niedrige Auflösung",
"showFPS": "FPS anzeigen"
}
}
+195 -103
View File
@@ -1,18 +1,19 @@
{
"action": {
"addToFavorites": "add to $t(entity.favorite_other)",
"addToPlaylist": "add to $t(entity.playlist_one)",
"addToFavorites": "add to $t(entity.favorite, {\"count\": 2})",
"addToPlaylist": "add to $t(entity.playlist, {\"count\": 1})",
"addOrRemoveFromSelection": "add or remove from selection",
"selectRangeOfItems": "select a range of items",
"clearQueue": "clear queue",
"createPlaylist": "create $t(entity.playlist_one)",
"createRadioStation": "create $t(entity.radioStation_one)",
"deletePlaylist": "delete $t(entity.playlist_one)",
"deleteRadioStation": "delete $t(entity.radioStation_one)",
"goToCurrent": "go to current item",
"createPlaylist": "create $t(entity.playlist, {\"count\": 1})",
"createRadioStation": "create $t(entity.radioStation, {\"count\": 1})",
"deletePlaylist": "delete $t(entity.playlist, {\"count\": 1})",
"deleteRadioStation": "delete $t(entity.radioStation, {\"count\": 1})",
"selectAll": "select all",
"deselectAll": "deselect all",
"downloadStarted": "started download of {{count}} items",
"editPlaylist": "edit $t(entity.playlist_one)",
"editPlaylist": "edit $t(entity.playlist, {\"count\": 1})",
"goToPage": "go to page",
"moveToNext": "move to next",
"moveToBottom": "move to bottom",
@@ -26,12 +27,12 @@
"shuffleAll": "shuffle all",
"shuffleSelected": "shuffle selected",
"refresh": "$t(common.refresh)",
"removeFromFavorites": "remove from $t(entity.favorite_other)",
"removeFromPlaylist": "remove from $t(entity.playlist_one)",
"removeFromFavorites": "remove from $t(entity.favorite, {\"count\": 2})",
"removeFromPlaylist": "remove from $t(entity.playlist, {\"count\": 1})",
"removeFromQueue": "remove from queue",
"setRating": "set rating",
"toggleSmartPlaylistEditor": "toggle $t(entity.smartPlaylist) editor",
"viewPlaylists": "view $t(entity.playlist_other)",
"viewPlaylists": "view $t(entity.playlist, {\"count\": 2})",
"viewMore": "view more",
"openApplicationDirectory": "open application directory",
"openIn": {
@@ -69,7 +70,7 @@
"configure": "configure",
"confirm": "confirm",
"create": "create",
"currentSong": "current $t(entity.track_one)",
"currentSong": "current $t(entity.track, {\"count\": 1})",
"decrease": "decrease",
"delete": "delete",
"descending": "descending",
@@ -83,12 +84,15 @@
"edit": "edit",
"enable": "enable",
"expand": "expand",
"example": "example",
"externalLinks": "external links",
"faster": "faster",
"favorite": "favorite",
"filter_one": "filter",
"filter_other": "filters",
"filters": "filters",
"filter_single": "single",
"filter_multiple": "multi",
"forceRestartRequired": "restart to apply changes… close the notification to restart",
"forward": "forward",
"gap": "gap",
@@ -102,6 +106,7 @@
"minimize": "minimize",
"modified": "modified",
"mbid": "MusicBrainz ID",
"mood": "mood",
"name": "name",
"no": "no",
"none": "none",
@@ -113,7 +118,7 @@
"path": "path",
"playerMustBePaused": "player must be paused",
"preview": "preview",
"previousSong": "previous $t(entity.track_one)",
"previousSong": "previous $t(entity.track, {\"count\": 1})",
"private": "private",
"public": "public",
"quit": "quit",
@@ -124,6 +129,7 @@
"releaseType": "release type",
"refresh": "refresh",
"reload": "reload",
"rename": "rename",
"reset": "reset",
"resetToDefault": "reset to default",
"restartRequired": "restart required",
@@ -133,7 +139,6 @@
"saveAndReplace": "save and replace",
"saveAs": "save as",
"search": "search",
"setting": "setting",
"setting_one": "setting",
"setting_other": "settings",
"slower": "slower",
@@ -155,7 +160,8 @@
"clean": "clean",
"gridRows": "grid rows",
"tableColumns": "table columns",
"itemsMore": "{{count}} more"
"itemsMore": "{{count}} more",
"newVersionAvailable": "a new version is available"
},
"entity": {
"album_one": "album",
@@ -190,7 +196,7 @@
"play_other": "{{count}} plays",
"playlistWithCount_one": "{{count}} playlist",
"playlistWithCount_other": "{{count}} playlists",
"smartPlaylist": "smart $t(entity.playlist_one)",
"smartPlaylist": "smart $t(entity.playlist, {\"count\": 1})",
"track_one": "track",
"track_other": "tracks",
"song_one": "song",
@@ -207,6 +213,7 @@
"credentialsRequired": "credentials required",
"endpointNotImplementedError": "endpoint {{endpoint}} is not implemented for {{serverType}}",
"genericError": "an error occurred",
"invalidJson": "invalid JSON",
"invalidServer": "invalid server",
"localFontAccessDenied": "access denied to local fonts",
"loginRateError": "too many login attempts, please try again in a few seconds",
@@ -218,11 +225,13 @@
"notificationDenied": "permissions for notifications were denied. this setting has no effect",
"openError": "could not open file",
"playbackError": "an error occurred when trying to play the media",
"playbackPausedDueToError": "playback was paused due to an error",
"remoteDisableError": "an error occurred when trying to $t(common.disable) the remote server",
"remoteEnableError": "an error occurred when trying to $t(common.enable) the remote server",
"remotePortError": "an error occurred when trying to set the remote server port",
"remotePortWarning": "restart the server to apply the new port",
"saveQueueFailed": "failed to save queue",
"serverLockSingleServer": "only one server is allowed when server is locked",
"serverNotSelectedError": "no server selected",
"serverRequired": "server required",
"sessionExpiredError": "your session has expired",
@@ -230,14 +239,16 @@
"settingsSyncError": "discrepancies were found between the settings in the renderer and the main process. restart the application to apply the changes"
},
"filter": {
"album": "$t(entity.album_one)",
"albumArtist": "$t(entity.albumArtist_one)",
"albumCount": "$t(entity.album_other) count",
"artist": "$t(entity.artist_one)",
"album": "$t(entity.album, {\"count\": 1})",
"albumArtist": "$t(entity.albumArtist, {\"count\": 1})",
"matchAnd": "and",
"matchOr": "or",
"albumCount": "$t(entity.album, {\"count\": 2}) count",
"artist": "$t(entity.artist, {\"count\": 1})",
"biography": "biography",
"bitrate": "bitrate",
"bpm": "bpm",
"channels": "$t(common.channel_other)",
"channels": "$t(common.channel, {\"count\": 2})",
"comment": "comment",
"communityRating": "community rating",
"criticRating": "critic rating",
@@ -246,7 +257,7 @@
"duration": "duration",
"favorited": "favorited",
"fromYear": "from year",
"genre": "$t(entity.genre_one)",
"genre": "$t(entity.genre, {\"count\": 1})",
"id": "id",
"isCompilation": "is compilation",
"isFavorited": "is favorited",
@@ -269,6 +280,7 @@
"releaseYear": "release year",
"search": "search",
"songCount": "song count",
"sortName": "sort name",
"title": "title",
"toYear": "to year",
"trackNumber": "track",
@@ -311,6 +323,9 @@
"input_password": "password",
"input_preferInstantMix": "prefer instant mix",
"input_preferInstantMixDescription": "only use instant mix to get similar songs. useful if you have plugins that modify this behavior",
"input_preferRemoteUrl": "prefer public url",
"input_remoteUrl": "public url",
"input_remoteUrlPlaceholder": "optional: public url for external features",
"input_savePassword": "save password",
"input_url": "url",
"input_username": "username",
@@ -322,20 +337,20 @@
"description": "This action will add all items in the current filtered view"
},
"addToPlaylist": {
"create": "create $t(entity.playlist_one) {{playlist}}",
"input_playlists": "$t(entity.playlist_other)",
"create": "create $t(entity.playlist, {\"count\": 1}) {{playlist}}",
"input_playlists": "$t(entity.playlist, {\"count\": 2})",
"input_skipDuplicates": "skip duplicates",
"searchOrCreate": "search $t(entity.playlist_other) or type to create a new one",
"searchOrCreate": "search $t(entity.playlist, {\"count\": 2}) or type to create a new one",
"success": "added $t(entity.trackWithCount, {\"count\": {{message}} }) to $t(entity.playlistWithCount, {\"count\": {{numOfPlaylists}} })",
"title": "add to $t(entity.playlist_one)"
"title": "add to $t(entity.playlist, {\"count\": 1})"
},
"createPlaylist": {
"input_description": "$t(common.description)",
"input_name": "$t(common.name)",
"input_owner": "$t(common.owner)",
"input_public": "public",
"success": "$t(entity.playlist_one) created successfully",
"title": "create $t(entity.playlist_one)"
"success": "$t(entity.playlist, {\"count\": 1}) created successfully",
"title": "create $t(entity.playlist, {\"count\": 1})"
},
"createRadioStation": {
"success": "radio station created successfully",
@@ -345,15 +360,15 @@
"input_streamUrl": "stream url"
},
"deletePlaylist": {
"input_confirm": "type the name of the $t(entity.playlist_one) to confirm",
"success": "$t(entity.playlist_one) deleted successfully",
"title": "delete $t(entity.playlist_one)"
"input_confirm": "type the name of the $t(entity.playlist, {\"count\": 1}) to confirm",
"success": "$t(entity.playlist, {\"count\": 1}) deleted successfully",
"title": "delete $t(entity.playlist, {\"count\": 1})"
},
"editPlaylist": {
"publicJellyfinNote": "Jellyfin for some reason does not expose whether a playlist is public or not. If you wish for this to remain public, please have the following input selected",
"editNote": "manual edits are not recommended for large playlists. are you sure you accept the risk of data loss incurred by overwriting the existing playlist?",
"success": "$t(entity.playlist_one) updated successfully",
"title": "edit $t(entity.playlist_one)"
"success": "$t(entity.playlist, {\"count\": 1}) updated successfully",
"title": "edit $t(entity.playlist, {\"count\": 1})"
},
"lyricsExport": {
"export": "export lyrics",
@@ -361,7 +376,7 @@
"input_offset": "$t(setting.lyricOffset)"
},
"lyricSearch": {
"input_artist": "$t(entity.artist_one)",
"input_artist": "$t(entity.artist, {\"count\": 1})",
"input_name": "$t(common.name)",
"title": "lyric search"
},
@@ -379,15 +394,17 @@
},
"shareItem": {
"allowDownloading": "allow downloading",
"copyToClipboard": "Copy to clipboard: Ctrl+C, Enter",
"description": "description",
"setExpiration": "set expiration",
"success": "share link copied to clipboard (or click here to open)",
"successMustClick": "share created successfully. click here to open",
"expireInvalid": "expiration must be in the future",
"createFailed": "failed to create share (is sharing enabled?)"
},
"shuffleAll": {
"title": "play random",
"input_genre": "$t(entity.genre_one)",
"input_genre": "$t(entity.genre, {\"count\": 1})",
"input_limit": "how many songs?",
"input_minYear": "from year",
"input_maxYear": "to year",
@@ -410,34 +427,47 @@
"albumArtistDetail": {
"about": "About {{artist}}",
"appearsOn": "appears on",
"favoriteSongs": "favorite songs",
"groupingTypeAll": "all release types",
"groupingTypePrimary": "primary release types",
"recentReleases": "recent releases",
"viewDiscography": "view discography",
"relatedArtists": "related $t(entity.artist_other)",
"relatedArtists": "related $t(entity.artist, {\"count\": 2})",
"topSongs": "top songs",
"topSongsCommunity": "community",
"topSongsFrom": "top songs from {{title}}",
"topSongsPersonal": "personal",
"favoriteSongsFrom": "favorite songs from {{title}}",
"viewAll": "view all",
"viewAllTracks": "view all $t(entity.track_other)"
"viewAllTracks": "view all $t(entity.track, {\"count\": 2})"
},
"albumArtistList": {
"title": "$t(entity.albumArtist_other)"
"title": "$t(entity.albumArtist, {\"count\": 2})"
},
"albumDetail": {
"moreFromArtist": "more from this $t(entity.artist_one)",
"moreFromArtist": "more from this $t(entity.artist, {\"count\": 1})",
"moreFromGeneric": "more from {{item}}",
"released": "released"
},
"albumList": {
"artistAlbums": "albums by {{artist}}",
"genreAlbums": "\"{{genre}}\" $t(entity.album_other)",
"title": "$t(entity.album_other)"
"genreAlbums": "\"{{genre}}\" $t(entity.album, {\"count\": 2})",
"title": "$t(entity.album, {\"count\": 2})"
},
"radioList": {
"title": "radio stations"
},
"releasenotes": {
"commitsSinceStable": "commits since {{stable}}",
"noNewCommits": "no new commits in this range",
"noStableReleaseToCompare": "no stable release available to compare with"
},
"favorites": {
"title": "$t(entity.favorite_other)"
"title": "$t(entity.favorite, {\"count\": 2})"
},
"windowBar": {
"paused": "(Paused) ",
"privateMode": "(Private mode)"
},
"appMenu": {
"collapseSidebar": "collapse sidebar",
@@ -454,7 +484,7 @@
"selectMusicFolder": "select music folder",
"noMusicFolder": "no music folder selected",
"multipleMusicFolders": "{{count}} music folders selected",
"settings": "$t(common.setting_other)",
"settings": "$t(common.setting, {\"count\": 2})",
"version": "version {{version}}"
},
"manageServers": {
@@ -489,8 +519,8 @@
"playShuffled": "$t(player.shuffle)",
"shareItem": "share item",
"goTo": "go to",
"goToAlbum": "go to $t(entity.album_one)",
"goToAlbumArtist": "go to $t(entity.albumArtist_one)",
"goToAlbum": "go to $t(entity.album, {\"count\": 1})",
"goToAlbumArtist": "go to $t(entity.albumArtist, {\"count\": 1})",
"showDetails": "get info"
},
"fullscreenPlayer": {
@@ -517,12 +547,12 @@
"noLyrics": "no lyrics found"
},
"genreList": {
"showAlbums": "show $t(entity.genre_one) $t(entity.album_other)",
"showTracks": "show $t(entity.genre_one) $t(entity.track_other)",
"title": "$t(entity.genre_other)"
"showAlbums": "show $t(entity.genre, {\"count\": 1}) $t(entity.album, {\"count\": 2})",
"showTracks": "show $t(entity.genre, {\"count\": 1}) $t(entity.track, {\"count\": 2})",
"title": "$t(entity.genre, {\"count\": 2})"
},
"folderList": {
"title": "$t(entity.folder_other)"
"title": "$t(entity.folder, {\"count\": 2})"
},
"globalSearch": {
"commands": {
@@ -534,7 +564,7 @@
},
"home": {
"explore": "explore from your library",
"genres": "$t(entity.genre_other)",
"genres": "$t(entity.genre, {\"count\": 2})",
"mostPlayed": "most played",
"newlyAdded": "newly added releases",
"recentlyPlayed": "recently played",
@@ -550,7 +580,11 @@
"reorder": "reordering only enabled when sorting by id"
},
"playlistList": {
"title": "$t(entity.playlist_other)"
"title": "$t(entity.playlist, {\"count\": 2})"
},
"collections": {
"overrideExisting": "override existing",
"saveAsCollection": "save as collection"
},
"setting": {
"advanced": "advanced",
@@ -578,26 +612,27 @@
"playerFilters": "player filters"
},
"sidebar": {
"albumArtists": "$t(entity.albumArtist_other)",
"albums": "$t(entity.album_other)",
"artists": "$t(entity.artist_other)",
"favorites": "$t(entity.favorite_other)",
"folders": "$t(entity.folder_other)",
"genres": "$t(entity.genre_other)",
"albumArtists": "$t(entity.albumArtist, {\"count\": 2})",
"albums": "$t(entity.album, {\"count\": 2})",
"collections": "collections",
"artists": "$t(entity.artist, {\"count\": 2})",
"favorites": "$t(entity.favorite, {\"count\": 2})",
"folders": "$t(entity.folder, {\"count\": 2})",
"genres": "$t(entity.genre, {\"count\": 2})",
"home": "$t(common.home)",
"radio": "$t(entity.radioStation_other)",
"radio": "$t(entity.radioStation, {\"count\": 2})",
"myLibrary": "my library",
"nowPlaying": "now playing",
"playlists": "$t(entity.playlist_other)",
"playlists": "$t(entity.playlist, {\"count\": 2})",
"search": "$t(common.search)",
"settings": "$t(common.setting_other)",
"shared": "shared $t(entity.playlist_other)",
"tracks": "$t(entity.track_other)"
"settings": "$t(common.setting, {\"count\": 2})",
"shared": "shared $t(entity.playlist, {\"count\": 2})",
"tracks": "$t(entity.track, {\"count\": 2})"
},
"trackList": {
"artistTracks": "tracks by {{artist}}",
"genreTracks": "\"{{genre}}\" $t(entity.track_other)",
"title": "$t(entity.track_other)"
"genreTracks": "\"{{genre}}\" $t(entity.track, {\"count\": 2})",
"title": "$t(entity.track, {\"count\": 2})"
}
},
"player": {
@@ -605,6 +640,7 @@
"addNext": "next",
"addLastShuffled": "last (shuffled)",
"addNextShuffled": "next (shuffled)",
"albumRadio": "album radio",
"artistRadio": "artist radio",
"holdToShuffle": "hold to shuffle",
"favorite": "favorite",
@@ -624,9 +660,6 @@
"queue_moveToBottom": "move selected to top",
"queue_moveToTop": "move selected to bottom",
"queue_remove": "remove selected",
"queueType": "queue type",
"queueType_default": "default",
"queueType_priority": "priority",
"repeat": "repeat",
"repeat_all": "repeat all",
"repeat_off": "repeat disabled",
@@ -644,7 +677,16 @@
"trackRadio": "track radio",
"unfavorite": "unfavorite",
"pause": "pause",
"viewQueue": "view queue"
"viewQueue": "view queue",
"sleepTimer": "sleep timer",
"sleepTimer_endOfSong": "end of current song",
"sleepTimer_minutes": "{{count}} min",
"sleepTimer_hours": "{{count}} hr",
"sleepTimer_custom": "custom",
"sleepTimer_off": "off",
"sleepTimer_timeRemaining": "{{time}} remaining",
"sleepTimer_setCustom": "set timer",
"sleepTimer_cancel": "cancel timer"
},
"queryBuilder": {
"standardTags": "standard tags",
@@ -652,7 +694,7 @@
},
"releaseType": {
"primary": {
"album": "$t(entity.album_one)",
"album": "$t(entity.album, {\"count\": 1})",
"broadcast": "broadcast",
"ep": "ep",
"other": "other",
@@ -680,16 +722,26 @@
"autoDJ_itemCount_description": "the number of items attempted to be added to the queue when auto DJ is enabled",
"autoDJ_timing": "timing",
"autoDJ_timing_description": "the number of songs remaining in the queue before auto DJ is triggered",
"autosave": "automatically save play queue",
"autosave_description": "enable automatically saving the play queue to your server. this is only possible when using Navidrome/Subsonic, and you cannot have a mixed play queue.",
"autosaveCount": "automatic play queue save frequency",
"autosaveCount_description": "how many track changes before the queue is saved. 1 (minimum) means every song change",
"accentColor_description": "sets the accent color for the application",
"accentColor": "accent color",
"useThemeAccentColor": "use theme accent color",
"useThemeAccentColor_description": "use the primary color defined in the selected theme instead of the custom accent color",
"useThemePrimaryShade": "use theme primary shade",
"useThemePrimaryShade_description": "use the primary shade defined in the selected theme for primary color variants",
"primaryShade": "primary shade",
"primaryShade_description": "override the primary shade (09) used for buttons, links, and other primary-colored elements",
"albumBackground_description": "adds a background image for album pages containing the album art",
"albumBackground": "album background image",
"albumBackgroundBlur_description": "adjusts the amount of blur applied to the album background image",
"albumBackgroundBlur": "album background image blur size",
"analyticsDisable": "Opt-out of usage based analytics",
"analyticsDisable_description": "Anonymized usage data is sent to the developer to help improve the application",
"analyticsEnable": "Send usage-based analytics",
"analyticsEnable_description": "Anonymized usage data is sent to the developer to help improve the application",
"applicationHotkeys_description": "configure application hotkeys. toggle the checkbox to set as a global hotkey (desktop only)",
"applicationHotkeys": "application hotkeys",
"artistBackground": "artist background image",
@@ -698,7 +750,9 @@
"artistBackgroundBlur_description": "adjusts the amount of blur applied to the artist background image",
"artistConfiguration": "album artist page configuration",
"artistConfiguration_description": "configure what items are shown, and in what order, on the album artist page",
"audioDevice_description": "select the audio device to use for playback (web player only)",
"artistReleaseTypeConfiguration": "artist release type configuration",
"artistReleaseTypeConfiguration_description": "configure what release types are shown, and in what order, on the album artist page",
"audioDevice_description": "select the audio device to use for playback",
"audioDevice": "audio device",
"audioExclusiveMode_description": "enable exclusive output mode. In this mode, the system is usually locked out, and only mpv will be able to output audio",
"audioExclusiveMode": "audio exclusive mode",
@@ -724,11 +778,13 @@
"customCssNotice": "Warning: while there is some sanitization (disallowing url() and content:), using custom css can still pose risks by changing the interface",
"customFontPath_description": "sets the path to the custom font to use for the application",
"customFontPath": "custom font path",
"disableAutomaticUpdates": "disable automatic updates",
"automaticUpdates": "Automatic updates",
"automaticUpdates_description": "Check for and install updates automatically",
"releaseChannel_optionAlpha": "alpha (nightly)",
"releaseChannel_optionBeta": "beta",
"releaseChannel_optionLatest": "latest",
"releaseChannel": "release channel",
"releaseChannel_description": "choose between stable releases or beta releases for automatic updates",
"releaseChannel_description": "choose between stable, beta, or alpha (nightly) releases for automatic updates",
"disableLibraryUpdateOnStartup": "disable checking for new versions on startup",
"discordApplicationId_description": "the application id for {{discord}} rich presence (defaults to {{defaultId}})",
"discordApplicationId": "{{discord}} application id",
@@ -750,6 +806,8 @@
"discordRichPresence_description": "enable playback status in {{discord}} rich presence. Image keys are: {{icon}}, {{playing}}, and {{paused}}",
"discordServeImage": "serve {{discord}} images from server",
"discordServeImage_description": "share cover art for {{discord}} rich presence from server itself, only available for Jellyfin and Navidrome. {{discord}} uses a bot to fetch images, so your server must be reachable from the public internet",
"discordStateIcon": "show playing icon",
"discordStateIcon_description": "show a small playing icon in the rich presence status. the paused icon is always shown when \"Show rich presence when paused\" is enabled",
"discordUpdateInterval": "{{discord}} rich presence update interval",
"discordUpdateInterval_description": "the time in seconds between each update (minimum 15 seconds)",
"enableAutoTranslation_description": "enable translation automatically when lyrics are loaded",
@@ -790,12 +848,21 @@
"homeConfiguration": "home page configuration",
"homeFeature_description": "controls whether to show the large featured carousel on the home page",
"homeFeature": "home featured carousel",
"homeFeatureStyle_description": "controls the style of the home featured carousel",
"homeFeatureStyle": "home featured carousel style",
"homeFeatureStyle_optionMultiple": "multiple",
"homeFeatureStyle_optionSingle": "single",
"hotkey_browserBack": "browser back",
"hotkey_browserForward": "browser forward",
"hotkey_favoriteCurrentSong": "favorite $t(common.currentSong)",
"hotkey_favoritePreviousSong": "favorite $t(common.previousSong)",
"hotkey_globalSearch": "global search",
"hotkey_localSearch": "in-page search",
"hotkey_listNavigateToPage": "list navigate to item page",
"hotkey_listPlayDefault": "list play",
"hotkey_listPlayLast": "list play last",
"hotkey_listPlayNext": "list play next",
"hotkey_listPlayNow": "list play now",
"hotkey_navigateHome": "navigate to home",
"hotkey_playbackNext": "next track",
"hotkey_playbackPause": "pause",
@@ -834,7 +901,7 @@
"lastfmApiKey": "{{lastfm}} API key",
"lyricFetch_description": "fetch lyrics from various internet sources",
"lyricFetch": "fetch lyrics from the internet",
"lyricFetchProvider_description": "select the providers to fetch lyrics from. the order of the providers is the order in which they will be queried",
"lyricFetchProvider_description": "select the providers to fetch lyrics from",
"lyricFetchProvider": "providers to fetch lyrics from",
"lyricOffset_description": "offset the lyric by the specified amount of milliseconds",
"lyricOffset": "lyric offset (ms)",
@@ -852,6 +919,8 @@
"minimumScrobbleSeconds": "minimum scrobble (seconds)",
"mpvExecutablePath_description": "sets the path to the mpv executable. if left empty, the default path will be used",
"mpvExecutablePath": "mpv executable path",
"mpvExtraParameters": "mpv extra parameters",
"mpvExtraParameters_description": "extra arguments to pass to mpv",
"mpvExtraParameters_help": "one per line",
"musicbrainz_description": "show links to MusicBrainz on artist/album pages, where MusicBrainz ID exists",
"musicbrainz": "show MusicBrainz links",
@@ -859,6 +928,10 @@
"neteaseTranslation": "Enable NetEase translations",
"notify": "enable song notifications",
"notify_description": "show notifications when changing the current song",
"pathReplace": "file path replacement",
"pathReplace_description": "replace your server's default filepath",
"pathReplace_optionRemovePrefix": "remove prefix",
"pathReplace_optionAddPrefix": "add prefix",
"passwordStore_description": "what password/secret store to use. change this if you are having issues storing passwords",
"passwordStore": "passwords/secret store",
"playerFilters": "Filter songs from the queue",
@@ -901,6 +974,10 @@
"showLyricsInSidebar": "show lyrics in player sidebar",
"showRatings_description": "controls if the star ratings feature shows up in the interface",
"showRatings": "show star ratings",
"blurExplicitImages": "blur explicit images",
"blurExplicitImages_description": "album and song artwork tagged as explicit will be blurred",
"enableGridMultiSelect": "enable grid multi-select",
"enableGridMultiSelect_description": "when enabled, allows selecting multiple items in grid views. when disabled, clicking grid item images will navigate to the item page",
"showVisualizerInSidebar_description": "a panel will be added to the player sidebar that displays the visualizer",
"showVisualizerInSidebar": "show visualizer in player sidebar",
"combinedLyricsAndVisualizer_description": "combine lyrics and visualizer into the same panel",
@@ -922,9 +999,9 @@
"replayGainFallback_description": "gain in db to apply if the file has no {{ReplayGain}} tags",
"replayGainFallback": "{{ReplayGain}} fallback",
"replayGainMode_description": "adjust volume gain according to {{ReplayGain}} values stored in the file metadata",
"replayGainMode_optionAlbum": "$t(entity.album_one)",
"replayGainMode_optionAlbum": "$t(entity.album, {\"count\": 1})",
"replayGainMode_optionNone": "$t(common.none)",
"replayGainMode_optionTrack": "$t(entity.track_one)",
"replayGainMode_optionTrack": "$t(entity.track, {\"count\": 1})",
"replayGainMode": "{{ReplayGain}} mode",
"replayGainPreamp_description": "adjust the preamp gain applied to the {{ReplayGain}} values",
"replayGainPreamp": "{{ReplayGain}} preamp (dB)",
@@ -942,12 +1019,19 @@
"sidebarCollapsedNavigation": "sidebar (collapsed) navigation",
"sidebarConfiguration_description": "select the items and order in which they appear in the sidebar",
"sidebarConfiguration": "sidebar configuration",
"playerItemConfiguration_description": "configure what items are shown, and in what order, on the fullscreen player",
"playerItemConfiguration": "player item configuration",
"sidebarPlaylistList_description": "show or hide the playlist list in the sidebar",
"sidebarPlaylistList": "sidebar playlist list",
"sidebarPlaylistSorting_description": "allows manual playlist sorting in the sidebar using drag and drop instead of the default server order",
"sidebarPlaylistSorting": "sidebar playlist sorting",
"sidebarPlaylistListFilterRegex_description": "hide playlists in the sidebar that match this regular expression",
"sidebarPlaylistListFilterRegex_placeholder": "e.g. ^Daily Mix.*",
"sidebarPlaylistListFilterRegex": "playlist filter regex",
"sidePlayQueueStyle_description": "sets the style of the side play queue",
"sidePlayQueueStyle_optionAttached": "attached",
"sidePlayQueueStyle_optionDetached": "detached",
"mediaSession_description": "enables Windows Media Session integration, displaying media controls and metadata in the system volume overlay and lock screen (Windows only)",
"mediaSession_description": "enables Media Session integration, displaying media controls and metadata in the system volume overlay and lock screen",
"mediaSession": "enable media session",
"sidePlayQueueStyle": "side play queue style",
"skipDuration_description": "sets the duration to skip when using the skip buttons on the player bar",
@@ -998,19 +1082,19 @@
"column": {
"album": "album",
"albumArtist": "album artist",
"albumCount": "$t(entity.album_other)",
"artist": "$t(entity.artist_one)",
"albumCount": "$t(entity.album, {\"count\": 2})",
"artist": "$t(entity.artist, {\"count\": 1})",
"biography": "biography",
"bitDepth": "$t(common.bitDepth)",
"bitrate": "bitrate",
"bpm": "bpm",
"channels": "$t(common.channel_other)",
"channels": "$t(common.channel, {\"count\": 2})",
"codec": "$t(common.codec)",
"comment": "comment",
"dateAdded": "date added",
"discNumber": "disc",
"favorite": "favorite",
"genre": "$t(entity.genre_one)",
"genre": "$t(entity.genre, {\"count\": 1})",
"lastPlayed": "last played",
"path": "path",
"playCount": "plays",
@@ -1019,7 +1103,7 @@
"releaseYear": "year",
"sampleRate": "$t(common.sampleRate)",
"size": "$t(common.size)",
"songCount": "$t(entity.track_other)",
"songCount": "$t(entity.track, {\"count\": 2})",
"title": "title",
"trackNumber": "track",
"owner": "owner"
@@ -1054,26 +1138,29 @@
"alternateRowColors": "alternate row colors",
"horizontalBorders": "row borders",
"rowHoverHighlight": "row hover highlight",
"showHeader": "show header",
"verticalBorders": "column borders"
},
"label": {
"actions": "$t(common.action_other)",
"album": "$t(entity.album_one)",
"albumCount": "$t(entity.album_other)",
"albumArtist": "$t(entity.albumArtist_one)",
"artist": "$t(entity.artist_one)",
"actions": "$t(common.action, {\"count\": 2})",
"album": "$t(entity.album, {\"count\": 1})",
"albumGroup": "album group",
"albumCount": "$t(entity.album, {\"count\": 2})",
"albumArtist": "$t(entity.albumArtist, {\"count\": 1})",
"artist": "$t(entity.artist, {\"count\": 1})",
"biography": "$t(common.biography)",
"bitDepth": "$t(common.bitDepth)",
"bitrate": "$t(common.bitrate)",
"bpm": "$t(common.bpm)",
"channels": "$t(common.channel_other)",
"channels": "$t(common.channel, {\"count\": 2})",
"codec": "$t(common.codec)",
"composer": "composer",
"dateAdded": "date added",
"discNumber": "disc number",
"duration": "$t(common.duration)",
"favorite": "$t(common.favorite)",
"genre": "$t(entity.genre_one)",
"genreBadge": "$t(entity.genre_one) (badges)",
"genre": "$t(entity.genre, {\"count\": 1})",
"genreBadge": "$t(entity.genre, {\"count\": 1}) (badges)",
"image": "image",
"lastPlayed": "last played",
"note": "$t(common.note)",
@@ -1085,13 +1172,15 @@
"rowIndex": "row index",
"sampleRate": "$t(common.sampleRate)",
"size": "$t(common.size)",
"songCount": "$t(entity.track_other)",
"songCount": "$t(entity.track, {\"count\": 2})",
"title": "$t(common.title)",
"titleArtist": "$t(common.title) (artist)",
"titleCombined": "$t(common.title) (combined)",
"trackNumber": "track number",
"year": "$t(common.year)"
},
"view": {
"detail": "detail",
"grid": "grid",
"list": "list",
"table": "table"
@@ -1150,6 +1239,8 @@
"position": "Position",
"level": "Level",
"remove": "Remove",
"pasteGradient": "Paste Gradient",
"pasteGradientPlaceholder": "Paste gradient JSON here...",
"custom": "Custom",
"builtIn": "Built-in",
"colors": "Colors",
@@ -1204,16 +1295,16 @@
"showScaleY": "Show Scale Y",
"options": {
"mode": {
"bars": "[0] Bars",
"circle": "[1] Circle",
"wave": "[2] Wave",
"rainbow": "[3] Rainbow",
"rings": "[4] Rings",
"mirror": "[5] Mirror",
"line": "[6] Line",
"particles": "[7] Particles",
"fullOctave": "[8] Full octave / 10 bands",
"outlineBars": "[10] Outline bars"
"0": "[0] Discrete Frequencies",
"1": "[1] 1/24th octave / 240 bands",
"2": "[2] 1/12th octave / 120 bands",
"3": "[3] 1/8th octave / 80 bands",
"4": "[4] 1/6th octave / 60 bands",
"5": "[5] 1/4th octave / 40 bands",
"6": "[6] 1/3rd octave / 30 bands",
"7": "[7] Half octave / 20 bands",
"8": "[8] Full octave / 10 bands",
"10": "[10] Line / Area graph"
},
"colorMode": {
"gradient": "Gradient",
@@ -1234,10 +1325,11 @@
"dualVertical": "Dual-Vertical"
},
"frequencyScale": {
"bark": "Bark",
"linear": "Linear",
"log": "Log",
"mel": "Mel"
"none": "None",
"bark": "Bark Scale",
"linear": "Linear Scale",
"log": "Log Scale",
"mel": "Mel Scale"
},
"weightingFilter": {
"none": "None",
+374 -122
View File
@@ -32,27 +32,34 @@
"playSimilarSongs": "Reproducir canciones similares",
"viewQueue": "ver cola",
"addLastShuffled": "Al final (mezclado)",
"addNextShuffled": "Al siguiente (mezclado)",
"queueType": "Tipo de cola",
"queueType_default": "Predeterminado",
"queueType_priority": "Prioridad",
"addNextShuffled": "Siguiente (mezclado)",
"holdToShuffle": "Mantener para mezclar",
"lyrics": "Letras",
"restoreQueueFromServer": "Restaurar cola del servidor",
"saveQueueToServer": "Guardar cola en el servidor",
"artistRadio": "Radio de artista",
"trackRadio": "Radio de pista"
"trackRadio": "Radio de pista",
"sleepTimer_minutes": "{{count}} min",
"sleepTimer_hours": "{{count}} h",
"sleepTimer_custom": "Personalizado",
"sleepTimer_setCustom": "Configurar temporizador",
"sleepTimer_cancel": "Cancelar temporizador",
"sleepTimer_timeRemaining": "{{time}} restante",
"sleepTimer_off": "Apagado",
"sleepTimer_endOfSong": "Fin de la canción actual",
"sleepTimer": "Temporizador de apagado",
"albumRadio": "Radio del álbum"
},
"setting": {
"crossfadeStyle_description": "selecciona el estilo de crossfade a usar por el reproductor de audio",
"remotePort_description": "establece el puerto para el control remoto del servidor",
"hotkey_skipBackward": "retroceder",
"replayGainMode_description": "ajusta el volumen de ganancia acorde a los valores de {{ReplayGain}} almacenados en los metadatos del archivo",
"audioDevice_description": "selecciona el dispositivo de audio a usar durante la reproducción (solo reproductor web)",
"audioDevice_description": "selecciona el dispositivo de audio a usar durante la reproducción",
"theme_description": "establece el tema a usar por la aplicación",
"hotkey_playbackPause": "pausa",
"replayGainFallback": "{{ReplayGain}} alternativa",
"sidebarCollapsedNavigation_description": "mostrar u ocultar la navegación en la barra lateral contraída",
"sidebarCollapsedNavigation_description": "Muestra u oculta la navegación en la barra lateral contraída",
"hotkey_volumeUp": "subir volumen",
"skipDuration": "duración de salto",
"discordIdleStatus_description": "cuando se activa, actualiza el estado mientras el reproductor está inactivo",
@@ -98,11 +105,10 @@
"hotkey_globalSearch": "búsqueda global",
"gaplessAudio_description": "establece la configuración de audio sin pausas para mpv",
"remoteUsername_description": "establece el nombre de usuario para el control remoto del servidor. si el usuario y la contraseña están vacíos, la autenticación será deshabilitada",
"disableAutomaticUpdates": "desactiva las actualizaciones automáticas",
"exitToTray_description": "sale de la aplicación a la bandeja del sistema",
"followLyric_description": "desplaza la letra a la posición de reproducción actual",
"hotkey_favoritePreviousSong": "$t(common.previousSong) favorita",
"replayGainMode_optionAlbum": "$t(entity.album_one)",
"replayGainMode_optionAlbum": "$t(entity.album, {\"count\": 1})",
"lyricOffset": "desfase de letra (ms)",
"discordUpdateInterval_description": "el tiempo en segundos entre cada actualización (mínimo 15 segundos)",
"fontType_optionCustom": "fuente personalizada",
@@ -114,7 +120,7 @@
"playbackStyle_optionCrossFade": "crossfade",
"hotkey_rate3": "calificar con 3 estrellas",
"font": "fuente",
"replayGainMode_optionTrack": "$t(entity.track_one)",
"replayGainMode_optionTrack": "$t(entity.track, {\"count\": 1})",
"themeLight_description": "establece el tema claro a usar por la aplicación",
"hotkey_toggleFullScreenPlayer": "cambia el reproductor a pantalla completa",
"hotkey_localSearch": "búsqueda en la página",
@@ -122,7 +128,7 @@
"remotePassword_description": "establece la contraseña para el control remoto del servidor. Esas credenciales son transferidas de forma insegura por defecto, por lo que deberías usar una contraseña única para que no tengas nada de lo que preocuparte",
"hotkey_rate5": "calificar con 5 estrellas",
"hotkey_playbackPrevious": "pista anterior",
"showSkipButtons_description": "muestra o esconde los botones de saltar en la barra del reproductor",
"showSkipButtons_description": "Muestra u oculta los botones de saltar en la barra del reproductor",
"crossfadeDuration_description": "establece la duración del efecto de crossfade",
"playbackStyle": "estilo de reproducción",
"hotkey_toggleShuffle": "alterna aleatorio",
@@ -137,12 +143,12 @@
"exitToTray": "salir a la bandeja",
"hotkey_rate4": "calificar con 4 estrellas",
"enableRemote": "activar control remoto del servidor",
"showSkipButton_description": "muestra o esconde los botones de saltar en la barra del reproductor",
"showSkipButton_description": "Muestra u oculta los botones de saltar en la barra del reproductor",
"savePlayQueue": "guardar cola de reproducción",
"minimumScrobbleSeconds_description": "la duración mínima en segundos de la canción que debe ser reproducida antes de hacer scrobble",
"fontType_description": "Fuente incorporada selecciona una de las fuentes proporcionadas por feishin. Fuente del sistema te permite seleccionar cualquier fuente proporcionada por tu sistema operativo. Personalizada te permite proporcionar tu propia fuente",
"playButtonBehavior": "comportamiento del botón de reproducción",
"sidebarPlaylistList_description": "muestra o esconde las listas de reproducción en la barra lateral",
"sidebarPlaylistList_description": "Muestra u oculta las listas de reproducción en la barra lateral",
"sidePlayQueueStyle_description": "establece el estilo de la cola de reproducción lateral",
"replayGainMode": "modo de {{ReplayGain}}",
"playbackStyle_optionNormal": "normal",
@@ -158,12 +164,12 @@
"useSystemTheme_description": "sigue la preferencia clara u oscura definida por el sistema",
"playButtonBehavior_optionAddNext": "$t(player.addNext)",
"lyricFetch_description": "busca letras en varias fuentes de Internet",
"lyricFetchProvider_description": "selecciona los proveedores para buscar letras. el orden de los proveedores es el orden en el que se consultarán",
"lyricFetchProvider_description": "Selecciona los proveedores para buscar letras",
"globalMediaHotkeys_description": "activa o desactiva el uso de las teclas de acceso rápidas del sistema a medios para controlar la reproducción",
"customFontPath": "ruta de fuente personalizada",
"followLyric": "seguir la letra actual",
"crossfadeDuration": "duración del crossfade",
"discordIdleStatus": "mostrar el estado inactivo en el estado de actividad",
"discordIdleStatus": "mostrar estado inactivo en el estado de actividad",
"sidePlayQueueStyle_optionDetached": "separada",
"audioPlayer": "reproductor de audio",
"hotkey_zoomOut": "reducir",
@@ -223,7 +229,7 @@
"discordListening_description": "muestra el estado como Escuchando en lugar de Jugando a",
"discordListening": "Mostrar estado como escuchando",
"contextMenu": "Configuración del menú de contexto (clic derecho)",
"contextMenu_description": "Te permite esconder elementos que son mostrados en el menú cuando haces clic derecho en un elemento. Los elementos que no estén seleccionados serán escondidos",
"contextMenu_description": "Te permite ocultar elementos que son mostrados en el menú cuando haces clic derecho en un elemento. Los elementos que no estén seleccionados se ocultarán",
"customCssEnable": "Habilitar CSS personalizado",
"customCssEnable_description": "Permite escribir CSS personalizado",
"customCss": "CSS personalizado",
@@ -286,10 +292,10 @@
"releaseChannel_optionLatest": "Última versión",
"releaseChannel_optionBeta": "Beta",
"releaseChannel": "Canal de lanzamiento",
"releaseChannel_description": "Elige entre lanzamientos estables o beta para las actualizaciones automáticas",
"releaseChannel_description": "Elige entre lanzamientos estables, beta, o alpha (nightly) para las actualizaciones automáticas",
"artistBackground_description": "Añade una imagen de fondo para las páginas de artista que contienen el arte del artista",
"mediaSession": "Activar sesión de medios",
"mediaSession_description": "Activa la integración de la sesión de medios de Windows, mostrando los controles de medios y los metadatos en la superposición del volumen del sistema y en la pantalla de bloqueo (solo en Windows)",
"mediaSession_description": "Activa la integración de la sesión de medios, mostrando los controles de medios y los metadatos en la superposición del volumen del sistema y en la pantalla de bloqueo",
"exportImportSettings_control_description": "Exporta e importa la configuración a través de JSON",
"exportImportSettings_control_exportText": "exportar configuración",
"exportImportSettings_control_importText": "importar configuración",
@@ -322,8 +328,8 @@
"playerbarWaveformRadius": "Radio de la forma de onda",
"showLyricsInSidebar_description": "Se añadirá un panel a la cola de reproducción acoplada que muestra las letras",
"showLyricsInSidebar": "Mostrar letras en la barra lateral del reproductor",
"showVisualizerInSidebar_description": "Se añadirá un panel a la barra lateral de reproducción que muestra el visualizador",
"showVisualizerInSidebar": "Mostrar visualizador en la barra lateral de reproducción",
"showVisualizerInSidebar_description": "Se añadirá un panel a la barra lateral del reproductor que muestra el visualizador",
"showVisualizerInSidebar": "Mostrar visualizador en la barra lateral del reproductor",
"queryBuilder": "Generador de consultas",
"queryBuilderCustomFields_inputTag": "Etiqueta",
"queryBuilderCustomFields": "Campos personalizados",
@@ -353,26 +359,78 @@
"artistRadioCount_description": "Establece el número de canciones a buscar para la radio de artista y de pista",
"artistRadioCount": "Recuento de radio de artista/pista",
"imageResolution": "Resolución de imagen",
"imageResolution_description": "La resolución de las imágenes usadas en la aplicación. Usar un valor de 0 lo dejará de forma predeterminada a la resolución nativa de la imagen"
"imageResolution_description": "La resolución de las imágenes usadas en la aplicación. Usar un valor de 0 lo dejará de forma predeterminada a la resolución nativa de la imagen",
"imageResolution_optionTable": "Tabla",
"imageResolution_optionItemCard": "Tarjeta de elemento",
"imageResolution_optionSidebar": "Barra lateral",
"imageResolution_optionHeader": "Cabecera",
"imageResolution_optionFullScreenPlayer": "Reproductor a pantalla completa",
"showRatings_description": "Controla si la característica de calificación de estrellas aparece en la interfaz",
"showRatings": "Mostrar calificación de estrellas",
"combinedLyricsAndVisualizer_description": "Combina letras y visualizador en el mismo panel",
"combinedLyricsAndVisualizer": "Combinar letras y visualizador en la barra lateral del reproductor",
"artistReleaseTypeConfiguration": "Configuración de tipo de lanzamiento de artista",
"artistReleaseTypeConfiguration_description": "Configura qué tipos de lanzamiento son mostrados, y en qué orden, en la página del artista del álbum",
"mpvExtraParameters": "Parámetros adicionales de MPV",
"mpvExtraParameters_description": "Argumentos adicionales a pasar a MPV",
"hotkey_listPlayDefault": "Reproducir lista",
"hotkey_listPlayLast": "Reproducir lista al final",
"hotkey_listPlayNext": "Reproducir lista a continuación",
"hotkey_listPlayNow": "Reproducir lista ahora",
"hotkey_listNavigateToPage": "Navegar por la lista hasta la página del elemento",
"pathReplace_description": "Reemplaza la ruta de archivo predeterminada de tu servidor",
"pathReplace": "Reemplazo de la ruta de archivo",
"pathReplace_optionRemovePrefix": "Eliminar prefijo",
"pathReplace_optionAddPrefix": "Añadir prefijo",
"homeFeatureStyle": "Estilo del carrusel de destacados del inicio",
"homeFeatureStyle_description": "Controla el estilo del carrusel de destacados del inicio",
"homeFeatureStyle_optionMultiple": "Múltiple",
"homeFeatureStyle_optionSingle": "Simple",
"enableGridMultiSelect": "Activar selección múltiple de rejilla",
"enableGridMultiSelect_description": "Cuando está activo, permite seleccionar múltiples elementos en las vistas de rejilla. Cuando está desactivado, hacer clic en las imágenes de los elementos de la rejilla navegará a la página del elemento",
"sidebarPlaylistSorting": "Ordenación de la lista de reproducción de la barra lateral",
"sidebarPlaylistSorting_description": "Permite la ordenación manual de la lista de reproducción en la barra lateral usando arrastrar y soltar en lugar del orden predeterminado del servidor",
"sidebarPlaylistListFilterRegex": "Expresión regular de filtrado de listas de reproducción",
"sidebarPlaylistListFilterRegex_description": "Esconde las listas de reproducción en la barra lateral que coincidan con esta expresión regular",
"sidebarPlaylistListFilterRegex_placeholder": "p. ej. ^Mezcla diaria.*",
"blurExplicitImages": "Desenfocar imágenes explícitas",
"blurExplicitImages_description": "El álbum y la carátula de la canción etiquetados como explícitos serán desenfocados",
"releaseChannel_optionAlpha": "Alpha (nightly)",
"analyticsEnable": "Enviar analíticas basadas en el uso",
"analyticsEnable_description": "Se envían datos de uso anonimizados al desarrollador para ayudar a mejorar la aplicación",
"automaticUpdates": "Actualizaciones automáticas",
"automaticUpdates_description": "Busca e instala actualizaciones automáticamente",
"discordStateIcon": "Mostrar icono de reproducción",
"discordStateIcon_description": "Muestra un icono pequeño de reproducción en el estado de actividad. El icono de pausa se muestra siempre cuando \"Mostrar estado de actividad cuando esté en pausa\" esté activado",
"playerItemConfiguration": "Configuración de elementos del reproductor",
"playerItemConfiguration_description": "Configura qué elementos se muestran, y en qué orden, en el reproductor a pantalla completa",
"primaryShade": "Tono principal",
"useThemePrimaryShade": "Usar tono principal del tema",
"useThemePrimaryShade_description": "Usa el tono principal definido en el tema seleccionado para las variantes de color primario",
"primaryShade_description": "Sobreescribe el tono principal (0-9) usado para los botones, enlaces, y otros elementos de colores primarios",
"autosave": "Guardar automáticamente la cola de reproducción",
"autosaveCount": "Frecuencia de guardado automática de la cola de reproducción",
"autosave_description": "Permite guardar automáticamente la cola de reproducción en tu servidor. Esto solo es posible cuando se usa Navidrome/Subsonic, y no puedes tener una cola de reproducción mezclada.",
"autosaveCount_description": "Cuántas pistas cambian antes de que la cola sea guardada. 1 (mínimo) quiere decir que todas las canciones cambian"
},
"action": {
"editPlaylist": "editar $t(entity.playlist_one)",
"editPlaylist": "editar $t(entity.playlist, {\"count\": 1})",
"goToPage": "ir a la página",
"moveToTop": "mover al principio",
"clearQueue": "limpiar cola",
"addToFavorites": "añadir a $t(entity.favorite_other)",
"addToPlaylist": "añadir a $t(entity.playlist_one)",
"createPlaylist": "crear $t(entity.playlist_one)",
"removeFromPlaylist": "eliminar de $t(entity.playlist_one)",
"viewPlaylists": "ver $t(entity.playlist_other)",
"addToFavorites": "añadir a $t(entity.favorite, {\"count\": 2})",
"addToPlaylist": "añadir a $t(entity.playlist, {\"count\": 1})",
"createPlaylist": "crear $t(entity.playlist, {\"count\": 1})",
"removeFromPlaylist": "eliminar de $t(entity.playlist, {\"count\": 1})",
"viewPlaylists": "ver $t(entity.playlist, {\"count\": 2})",
"refresh": "$t(common.refresh)",
"deletePlaylist": "eliminar $t(entity.playlist_one)",
"deletePlaylist": "eliminar $t(entity.playlist, {\"count\": 1})",
"removeFromQueue": "eliminar de la cola",
"deselectAll": "desmarcar todo",
"moveToBottom": "mover al final",
"setRating": "establecer calificación",
"toggleSmartPlaylistEditor": "cambiar editor $t(entity.smartPlaylist)",
"removeFromFavorites": "eliminar de $t(entity.favorite_other)",
"removeFromFavorites": "eliminar de $t(entity.favorite, {\"count\": 2})",
"openIn": {
"lastfm": "Abrir en Last.fm",
"musicbrainz": "Abrir en MusicBrainz"
@@ -388,18 +446,19 @@
"holdToMoveToTop": "Mantener pulsado para desplazar hacia arriba",
"moveUp": "Desplazar hacia arriba",
"moveDown": "Desplazar hacia abajo",
"createRadioStation": "Crear $t(entity.radioStation_one)",
"deleteRadioStation": "Borrar $t(entity.radioStation_one)",
"createRadioStation": "Crear $t(entity.radioStation, {\"count\": 1})",
"deleteRadioStation": "Borrar $t(entity.radioStation, {\"count\": 1})",
"openApplicationDirectory": "Abrir directorio de la aplicación",
"addOrRemoveFromSelection": "Añadir o quitar de la selección",
"selectRangeOfItems": "Seleccionar un intervalo de elementos",
"selectAll": "Seleccionar todo"
"selectAll": "Seleccionar todo",
"goToCurrent": "Ir al elemento actual"
},
"common": {
"backward": "hacia atrás",
"increase": "aumentar",
"rating": "calificación",
"bpm": "lpm",
"bpm": "bpm",
"refresh": "actualizar",
"unknown": "desconocido",
"areYouSure": "seguro?",
@@ -408,10 +467,10 @@
"left": "izquierda",
"save": "guardar",
"right": "derecha",
"currentSong": "$t(entity.track_one) actual",
"currentSong": "$t(entity.track, {\"count\": 1}) actual",
"collapse": "contraer",
"trackNumber": "pista",
"descending": "descendiente",
"descending": "descendente",
"add": "añadir",
"ascending": "ascendente",
"dismiss": "descartar",
@@ -437,7 +496,9 @@
"delete": "eliminar",
"cancel": "cancelar",
"forceRestartRequired": "reiniciar para aplicar cambios... cerrar la notificación para reiniciar",
"setting": "configuración",
"setting_one": "configuración",
"setting_many": "configuración",
"setting_other": "configuración",
"version": "versión",
"title": "título",
"filters": "filtros",
@@ -455,7 +516,7 @@
"none": "ninguno",
"menu": "menú",
"restartRequired": "reinicio requerido",
"previousSong": "anterior $t(entity.track_one)",
"previousSong": "$t(entity.track, {\"count\": 1}) anterior",
"noResultsFromQuery": "la petición no devolvió resultados",
"quit": "salir",
"expand": "expandir",
@@ -512,7 +573,13 @@
"noFilters": "Ningún filtro configurado",
"view": "Vista",
"countSelected": "{{count}} seleccionados",
"retry": "Reintentar"
"retry": "Reintentar",
"mood": "Estado de ánimo",
"example": "Ejemplo",
"filter_single": "simple",
"filter_multiple": "multi",
"rename": "Renombrar",
"newVersionAvailable": "Una nueva versión está disponible"
},
"error": {
"remotePortWarning": "reiniciar el servidor para aplicar el nuevo puerto",
@@ -543,13 +610,16 @@
"multipleServerSaveQueueError": "La cola de reproducción tiene una o más canciones que no son del servidor actual. Esto no está soportado",
"settingsSyncError": "Se encontraron discrepancias entre las opciones del renderizador y el proceso principal. Reinicia la aplicación para aplicar los cambios",
"noNetwork": "Servidor no disponible",
"noNetworkDescription": "No se pudo conectar a este servidor"
"noNetworkDescription": "No se pudo conectar a este servidor",
"invalidJson": "JSON inválido",
"serverLockSingleServer": "Solo se permite un servidor cuando el servidor está bloqueado",
"playbackPausedDueToError": "La reproducción fue pausada debido a un error"
},
"filter": {
"mostPlayed": "más reproducido",
"mostPlayed": "más reproducidos",
"isCompilation": "es una compilación",
"recentlyPlayed": "recientemente reproducido",
"isRated": "es clasificado",
"isRated": "Está calificado",
"title": "título",
"rating": "calificación",
"search": "buscar",
@@ -562,14 +632,14 @@
"communityRating": "calificación de la comunidad",
"path": "ruta",
"favorited": "favoritos",
"albumArtist": "$t(entity.albumArtist_one)",
"albumArtist": "$t(entity.albumArtist, {\"count\": 1})",
"isRecentlyPlayed": "reproducido recientemente",
"isFavorited": "es favorito",
"bpm": "lpm",
"bpm": "bpm",
"releaseYear": "año de lanzamiento",
"disc": "disco",
"biography": "biografía",
"artist": "$t(entity.artist_one)",
"artist": "$t(entity.artist, {\"count\": 1})",
"duration": "duración",
"random": "aleatorio",
"lastPlayed": "última reproducción",
@@ -580,38 +650,42 @@
"comment": "comentarios",
"playCount": "número de reproducciones",
"recentlyUpdated": "actualizado recientemente",
"channels": "$t(common.channel_other)",
"channels": "$t(common.channel, {\"count\": 2})",
"owner": "$t(common.owner)",
"genre": "$t(entity.genre_one)",
"genre": "$t(entity.genre, {\"count\": 1})",
"id": "id",
"songCount": "número de canción",
"songCount": "número de canciones",
"isPublic": "es público",
"album": "$t(entity.album_one)",
"albumCount": "Contar $t(entity.album_other)",
"explicitStatus": "$t(common.explicitStatus)"
"album": "$t(entity.album, {\"count\": 1})",
"albumCount": "Número de $t(entity.album, {\"count\": 2})",
"explicitStatus": "$t(common.explicitStatus)",
"sortName": "Ordenar por nombre",
"matchAnd": "y",
"matchOr": "o"
},
"page": {
"sidebar": {
"nowPlaying": "reproduciendo",
"playlists": "$t(entity.playlist_other)",
"playlists": "$t(entity.playlist, {\"count\": 2})",
"search": "$t(common.search)",
"tracks": "$t(entity.track_other)",
"albums": "$t(entity.album_other)",
"genres": "$t(entity.genre_other)",
"folders": "$t(entity.folder_other)",
"settings": "$t(common.setting_other)",
"tracks": "$t(entity.track, {\"count\": 2})",
"albums": "$t(entity.album, {\"count\": 2})",
"genres": "$t(entity.genre, {\"count\": 2})",
"folders": "$t(entity.folder, {\"count\": 2})",
"settings": "$t(common.setting, {\"count\": 2})",
"home": "$t(common.home)",
"artists": "$t(entity.artist_other)",
"albumArtists": "$t(entity.albumArtist_other)",
"shared": "compartido $t(entity.playlist_other)",
"artists": "$t(entity.artist, {\"count\": 2})",
"albumArtists": "$t(entity.albumArtist, {\"count\": 2})",
"shared": "compartido $t(entity.playlist, {\"count\": 2})",
"myLibrary": "Mi biblioteca",
"favorites": "$t(entity.favorite_other)",
"radio": "$t(entity.radioStation_other)"
"favorites": "$t(entity.favorite, {\"count\": 2})",
"radio": "$t(entity.radioStation, {\"count\": 2})",
"collections": "Colecciones"
},
"appMenu": {
"selectServer": "seleccionar servidor",
"version": "versión {{version}}",
"settings": "$t(common.setting_other)",
"settings": "$t(common.setting, {\"count\": 2})",
"manageServers": "gestionar servidores",
"expandSidebar": "ampliar barra lateral",
"collapseSidebar": "contraer barra lateral",
@@ -649,8 +723,8 @@
"download": "descargar",
"playShuffled": "$t(player.shuffle)",
"moveToNext": "$t(action.moveToNext)",
"goToAlbum": "Ir a $t(entity.album_one)",
"goToAlbumArtist": "Ir a $t(entity.albumArtist_one)",
"goToAlbum": "Ir a $t(entity.album, {\"count\": 1})",
"goToAlbumArtist": "Ir a $t(entity.albumArtist, {\"count\": 1})",
"moveItems": "$t(action.moveItems)",
"goTo": "Ir a"
},
@@ -661,7 +735,7 @@
"explore": "explora desde tu biblioteca",
"recentlyPlayed": "reproducidos recientemente",
"recentlyReleased": "Lanzado recientemente",
"genres": "$t(entity.genre_other)"
"genres": "$t(entity.genre, {\"count\": 2})"
},
"fullscreenPlayer": {
"upNext": "siguiente",
@@ -687,7 +761,7 @@
"noLyrics": "sin letras"
},
"albumDetail": {
"moreFromArtist": "más de este $t(entity.artist_one)",
"moreFromArtist": "más de este $t(entity.artist, {\"count\": 1})",
"moreFromGeneric": "más de {{item}}",
"released": "publicado el"
},
@@ -717,16 +791,16 @@
"lyricsDisplay": "Mostrar letras"
},
"albumArtistList": {
"title": "$t(entity.albumArtist_other)"
"title": "$t(entity.albumArtist, {\"count\": 2})"
},
"genreList": {
"title": "$t(entity.genre_other)",
"showAlbums": "Mostrar $t(entity.genre_one) $t(entity.album_other)",
"showTracks": "Mostrar $t(entity.genre_one) $t(entity.track_other)"
"title": "$t(entity.genre, {\"count\": 2})",
"showAlbums": "Mostrar $t(entity.genre, {\"count\": 1}) $t(entity.album, {\"count\": 2})",
"showTracks": "Mostrar $t(entity.genre, {\"count\": 1}) $t(entity.track, {\"count\": 2})"
},
"trackList": {
"title": "$t(entity.track_other)",
"genreTracks": "\"{{genre}}\" $t(entity.track_other)",
"title": "$t(entity.track, {\"count\": 2})",
"genreTracks": "\"{{genre}}\" $t(entity.track, {\"count\": 2})",
"artistTracks": "Pistas de {{artist}}"
},
"globalSearch": {
@@ -738,23 +812,29 @@
"title": "comandos"
},
"playlistList": {
"title": "$t(entity.playlist_other)"
"title": "$t(entity.playlist, {\"count\": 2})"
},
"albumList": {
"title": "$t(entity.album_other)",
"genreAlbums": "\"{{genre}}\" $t(entity.album_other)",
"title": "$t(entity.album, {\"count\": 2})",
"genreAlbums": "\"{{genre}}\" $t(entity.album, {\"count\": 2})",
"artistAlbums": "Álbumes de {{artist}}"
},
"albumArtistDetail": {
"viewAllTracks": "ver todas las $t(entity.track_other)",
"relatedArtists": "$t(entity.artist_other) similares",
"viewAllTracks": "ver todas las $t(entity.track, {\"count\": 2})",
"relatedArtists": "$t(entity.artist, {\"count\": 2}) similares",
"topSongs": "mejores canciones",
"topSongsFrom": "las mejores canciones de {{title}}",
"viewAll": "Ver todo",
"recentReleases": "Lanzamientos recientes",
"viewDiscography": "Ver discografía",
"about": "Sobre {{artist}}",
"appearsOn": "Aparece en"
"appearsOn": "Aparece en",
"groupingTypeAll": "Todos los tipos de lanzamiento",
"groupingTypePrimary": "Tipos de lanzamiento principales",
"favoriteSongs": "Canciones favoritas",
"favoriteSongsFrom": "Canciones favoritas de {{title}}",
"topSongsPersonal": "Personal",
"topSongsCommunity": "Comunidad"
},
"itemDetail": {
"copiedPath": "Ruta copiada correctamente",
@@ -773,27 +853,40 @@
"url": "URL"
},
"favorites": {
"title": "$t(entity.favorite_other)"
"title": "$t(entity.favorite, {\"count\": 2})"
},
"folderList": {
"title": "$t(entity.folder_other)"
"title": "$t(entity.folder, {\"count\": 2})"
},
"radioList": {
"title": "Estaciones de radio"
},
"windowBar": {
"privateMode": "(Modo privado)",
"paused": "(Pausado) "
},
"collections": {
"overrideExisting": "Sobreescribir existente",
"saveAsCollection": "Guardar como colección"
},
"releasenotes": {
"commitsSinceStable": "Actualizaciones desde {{stable}}",
"noNewCommits": "Ninguna nueva actualización en este rango",
"noStableReleaseToCompare": "Ningún lanzamiento estable disponible con el que comparar"
}
},
"form": {
"deletePlaylist": {
"title": "eliminar $t(entity.playlist_one)",
"success": "$t(entity.playlist_one) eliminado correctamente",
"input_confirm": "escribe el nombre de $t(entity.playlist_one) para confirmar"
"title": "eliminar $t(entity.playlist, {\"count\": 1})",
"success": "$t(entity.playlist, {\"count\": 1}) eliminado correctamente",
"input_confirm": "escribe el nombre de $t(entity.playlist, {\"count\": 1}) para confirmar"
},
"createPlaylist": {
"input_description": "$t(common.description)",
"title": "crear $t(entity.playlist_one)",
"title": "crear $t(entity.playlist, {\"count\": 1})",
"input_public": "público",
"input_name": "$t(common.name)",
"success": "$t(entity.playlist_one) creado correctamente",
"success": "$t(entity.playlist, {\"count\": 1}) creado correctamente",
"input_owner": "$t(common.owner)"
},
"addServer": {
@@ -805,19 +898,22 @@
"input_name": "nombre del servidor",
"success": "servidor añadido correctamente",
"input_savePassword": "guardar contraseña",
"ignoreSsl": "ignorar ssl ($t(common.restartRequired))",
"ignoreCors": "ignorar cors ($t(common.restartRequired))",
"ignoreSsl": "Ignorar SSL ($t(common.restartRequired))",
"ignoreCors": "Ignorar CORS ($t(common.restartRequired))",
"error_savePassword": "un error ocurrió cuando se intentó guardar la contraseña",
"input_preferInstantMix": "Preferir mix instantáneo",
"input_preferInstantMixDescription": "Usa solo el mix instantáneo para obtener canciones similares. Útil si tienes complementos que modifican este comportamiento"
"input_preferInstantMixDescription": "Usa solo el mix instantáneo para obtener canciones similares. Útil si tienes complementos que modifican este comportamiento",
"input_remoteUrl": "URL pública",
"input_preferRemoteUrl": "Preferir URL pública",
"input_remoteUrlPlaceholder": "Opcional: URL pública para características externas"
},
"addToPlaylist": {
"success": "añadido $t(entity.trackWithCount, {\"count\": {{message}} }) a $t(entity.playlistWithCount, {\"count\": {{numOfPlaylists}} })",
"title": "añadir a $t(entity.playlist_one)",
"title": "añadir a $t(entity.playlist, {\"count\": 1})",
"input_skipDuplicates": "saltar duplicados",
"input_playlists": "$t(entity.playlist_other)",
"create": "Crear $t(entity.playlist_one) {{playlist}}",
"searchOrCreate": "Buscar $t(entity.playlist_other) o tipo para crear uno nuevo"
"input_playlists": "$t(entity.playlist, {\"count\": 2})",
"create": "Crear $t(entity.playlist, {\"count\": 1}) {{playlist}}",
"searchOrCreate": "Buscar $t(entity.playlist, {\"count\": 2}) o escribir para crear uno nuevo"
},
"updateServer": {
"title": "actualizar servidor",
@@ -825,12 +921,12 @@
},
"lyricSearch": {
"input_name": "$t(common.name)",
"input_artist": "$t(entity.artist_one)",
"input_artist": "$t(entity.artist, {\"count\": 1})",
"title": "buscar letras"
},
"editPlaylist": {
"title": "editar $t(entity.playlist_one)",
"success": "$t(entity.playlist_one) actualizada correctamente",
"title": "editar $t(entity.playlist, {\"count\": 1})",
"success": "$t(entity.playlist, {\"count\": 1}) actualizada correctamente",
"publicJellyfinNote": "Jellyfin por alguna razón no expone si una lista de reproducción es pública o no. Si deseas que ésta siga siendo pública, por favor ten seleccionada la siguiente entrada",
"editNote": "No se recomiendan las ediciones manuales para grandes listas de reproducción. ¿Seguro que aceptas el riesgo de pérdida de información incurrido por sobrescribir la lista de reproducción existente?"
},
@@ -849,7 +945,9 @@
"description": "Descripción",
"setExpiration": "Establecer expiración",
"success": "Enlace de compartición copiado al portapapeles (o pulsa aquí para abrir)",
"expireInvalid": "La expiración debe ser en el futuro"
"expireInvalid": "La expiración debe ser en el futuro",
"copyToClipboard": "Copiar al portapapeles: Ctrl+C, Enter",
"successMustClick": "Compartir creado correctamente. Haz clic aquí para abrir"
},
"privateMode": {
"enabled": "Modo privado activado, el estado de reproducción ahora está oculto de integraciones externas",
@@ -862,7 +960,7 @@
},
"shuffleAll": {
"title": "Reproducir aleatorio",
"input_genre": "$t(entity.genre_one)",
"input_genre": "$t(entity.genre, {\"count\": 1})",
"input_limit": "¿Cuántas canciones?",
"input_minYear": "Del año",
"input_maxYear": "Hasta el año",
@@ -894,23 +992,23 @@
"album": "álbum",
"favorite": "favorito",
"playCount": "reproducciones",
"albumCount": "$t(entity.album_other)",
"albumCount": "$t(entity.album, {\"count\": 2})",
"releaseYear": "año",
"lastPlayed": "última reproducción",
"biography": "biografía",
"releaseDate": "fecha de lanzamiento",
"bitrate": "tasa de bits",
"title": "título",
"bpm": "lpm",
"bpm": "bpm",
"dateAdded": "fecha de adición",
"artist": "$t(entity.artist_one)",
"songCount": "$t(entity.track_other)",
"artist": "$t(entity.artist, {\"count\": 1})",
"songCount": "$t(entity.track, {\"count\": 2})",
"trackNumber": "pista",
"genre": "$t(entity.genre_one)",
"genre": "$t(entity.genre, {\"count\": 1})",
"albumArtist": "artista del álbum",
"path": "ruta",
"discNumber": "disco",
"channels": "$t(common.channel_other)",
"channels": "$t(common.channel, {\"count\": 2})",
"size": "$t(common.size)",
"codec": "$t(common.codec)",
"owner": "Propietario",
@@ -923,13 +1021,13 @@
"dateAdded": "fecha de adición",
"bpm": "$t(common.bpm)",
"lastPlayed": "última reproducción",
"artist": "$t(entity.artist_one)",
"album": "$t(entity.album_one)",
"artist": "$t(entity.artist, {\"count\": 1})",
"album": "$t(entity.album, {\"count\": 1})",
"biography": "$t(common.biography)",
"channels": "$t(common.channel_other)",
"channels": "$t(common.channel, {\"count\": 2})",
"bitrate": "$t(common.bitrate)",
"actions": "$t(common.action_other)",
"albumArtist": "$t(entity.albumArtist_one)",
"actions": "$t(common.action, {\"count\": 2})",
"albumArtist": "$t(entity.albumArtist, {\"count\": 1})",
"discNumber": "número de disco",
"releaseDate": "fecha de lanzamiento",
"title": "$t(common.title)",
@@ -942,16 +1040,19 @@
"owner": "$t(common.owner)",
"path": "$t(common.path)",
"playCount": "número de reproducciones",
"genre": "$t(entity.genre_one)",
"genre": "$t(entity.genre, {\"count\": 1})",
"favorite": "$t(common.favorite)",
"year": "$t(common.year)",
"codec": "$t(common.codec)",
"songCount": "$t(entity.track_other)",
"albumCount": "$t(entity.album_other)",
"genreBadge": "$t(entity.genre_one) (insignias)",
"songCount": "$t(entity.track, {\"count\": 2})",
"albumCount": "$t(entity.album, {\"count\": 2})",
"genreBadge": "$t(entity.genre, {\"count\": 1}) (insignias)",
"image": "Imagen",
"bitDepth": "$t(common.bitDepth)",
"sampleRate": "$t(common.sampleRate)"
"sampleRate": "$t(common.sampleRate)",
"titleArtist": "$t(common.title) (artista)",
"composer": "Compositor",
"albumGroup": "Grupo del álbum"
},
"general": {
"gap": "$t(common.gap)",
@@ -964,8 +1065,8 @@
"followCurrentSong": "seguir la canción actual",
"advancedSettings": "Opciones avanzadas",
"autosize": "Autodimensionar",
"moveUp": "Ascender",
"moveDown": "Descender",
"moveUp": "Subir",
"moveDown": "Bajar",
"pinToLeft": "Anclar a la izquierda",
"pinToRight": "Anclar a la derecha",
"alignLeft": "Alinear a la izquierda",
@@ -982,17 +1083,19 @@
"alternateRowColors": "Colores de fila alternativos",
"horizontalBorders": "Bordes de fila",
"verticalBorders": "Bordes de columna",
"rowHoverHighlight": "Resaltar al pasar el cursor por la fila"
"rowHoverHighlight": "Resaltar al pasar el cursor por la fila",
"showHeader": "Mostrar cabecera"
},
"view": {
"table": "tabla",
"list": "Lista",
"grid": "Cuadrícula"
"grid": "Cuadrícula",
"detail": "Detalle"
}
}
},
"entity": {
"smartPlaylist": "$t(entity.playlist_one) inteligente",
"smartPlaylist": "$t(entity.playlist, {\"count\": 1}) inteligente",
"genre_one": "género",
"genre_many": "géneros",
"genre_other": "géneros",
@@ -1058,7 +1161,7 @@
},
"releaseType": {
"primary": {
"album": "$t(entity.album_one)",
"album": "$t(entity.album, {\"count\": 1})",
"broadcast": "Emisión",
"ep": "EP",
"other": "Otro",
@@ -1105,9 +1208,158 @@
"matchesRegex": "coincide con expresión regular"
},
"datetime": {
"minuteShort": "min",
"secondShort": "seg",
"minuteShort": "m",
"secondShort": "s",
"hourShort": "h",
"dayShort": "día"
"dayShort": "d"
},
"visualizer": {
"visualizerType": "Tipo de visualizador",
"copyConfiguration": "Copiar configuración",
"pasteConfiguration": "Pegar configuración",
"pasteConfigurationPlaceholder": "Pegar configuración de JSON aquí...",
"pasteFromClipboard": "Pegar desde el portapapeles",
"applyConfiguration": "Aplicar configuración",
"configCopied": "Configuración copiada al portapapeles",
"configCopyFailed": "Error al copiar la configuración",
"configPasted": "Configuración aplicada con éxito",
"configPasteFailed": "Error al aplicar la configuración. Por favor revisa el formato.",
"configPasteReadFailed": "Error al leer del portapapeles",
"general": "General",
"mode": "Modo",
"mode1To8": "Modo 1 - 8",
"mode10": "Modo 10",
"barSpace": "Espacio de barra",
"lineWidth": "Ancho de línea",
"maxFPS": "FPS máximos",
"opacity": "Opacidad",
"channelLayout": "Diseño del canal",
"fillAlpha": "Rellenar alfa",
"customGradients": "Degradados personalizados",
"addCustomGradient": "Añadir degradado personalizado",
"gradientName": "Nombre del degradado",
"gradientNamePlaceholder": "Nombre del degradado",
"vertical": "Vertical",
"horizontal": "Horizontal",
"addColor": "Añadir color",
"colorStops": "Paradas de color",
"position": "Posición",
"level": "Nivel",
"remove": "Eliminar",
"custom": "Personalizado",
"builtIn": "Integrado",
"colors": "Colores",
"colorMode": "Modo de color",
"gradient": "Degradado",
"gradientLeft": "Izquierda del degradado",
"gradientRight": "Derecha del degradado",
"fft": "FFT",
"fftSize": "Tamaño del FFT",
"smoothing": "Suavizado",
"frequencyRangeAndScaling": "Rango de frecuencia y escala",
"minimumFrequency": "Frecuencia mínima",
"maximumFrequency": "Frecuencia máxima",
"frequencyScale": "Escala de frecuencia",
"sensitivity": "Sensibilidad",
"weightingFilter": "Filtro de ponderación",
"minimumDecibels": "Decibelios mínimos",
"maximumDecibels": "Decibelios máximos",
"linearAmplitude": "Amplitud lineal",
"linearBoost": "Aumento lineal",
"peakBehavior": "Comportamiento del pico",
"showPeaks": "Mostrar picos",
"fadePeaks": "Picos desvanecidos",
"peakLine": "Línea del pico",
"gravity": "Gravedad",
"peakFadeTime": "Tiempo de desvanecimiento del pico (ms)",
"peakHoldTime": "Tiempo de espera del pico (ms)",
"radialSpectrum": "Espectro radial",
"radial": "Radial",
"radialInvert": "Invertir radial",
"spinSpeed": "Velocidad de giro",
"radius": "Radio",
"reflexMirror": "Espejo del reflejo",
"reflexFit": "Ajuste del reflejo",
"reflexRatio": "Proporción del reflejo",
"reflexAlpha": "Alfa del reflejo",
"reflexBrightness": "Brillo del reflejo",
"mirror": "Espejo",
"miscellaneousSettings": "Miscelánea",
"alphaBars": "Barras alfa",
"ansiBands": "Bandas ANSI",
"ledBars": "Barras LED",
"trueLeds": "True LED",
"options": {
"colorMode": {
"gradient": "Degradado",
"barLevel": "Nivel de barra",
"barIndex": "Índice de barra"
},
"gradient": {
"classic": "Clásico",
"prism": "Prisma",
"rainbow": "Arcoíris",
"steelblue": "Azul acero",
"orangered": "Naranja rojizo"
},
"channelLayout": {
"single": "Sencillo",
"dualCombined": "Doble combinado",
"dualHorizontal": "Doble horizontal",
"dualVertical": "Doble vertical"
},
"frequencyScale": {
"linear": "Escala lineal",
"none": "Ninguna",
"log": "Escala de registro",
"bark": "Escala Bark",
"mel": "Escala Mel"
},
"weightingFilter": {
"none": "Ninguno",
"a": "A",
"b": "B",
"c": "C",
"d": "D",
"z": "Z"
},
"mode": {
"0": "[0] Frecuencias discretas",
"1": "[1] 1/24ª octava / 240 bandas",
"2": "[1] 1/12ª octava / 120 bandas",
"3": "[3] 1/8ª octava / 80 bandas",
"4": "[4] 1/6ª octava / 60 bandas",
"5": "[5] 1/4ª octava / 40 bandas",
"6": "[6] 1/3ª octava / 30 bandas",
"7": "[7] Media octava / 20 bandas",
"8": "[8] Octava completa / 10 bandas",
"10": "[10] Línea / Gráfico de área"
}
},
"showFPS": "Mostrar FPS",
"showScaleX": "Mostrar escala X",
"showScaleY": "Mostrar escala Y",
"cyclePresets": "Ajustes preestablecidos del ciclo",
"cycleTime": "Tiempo del ciclo (segundos)",
"includeAllPresets": "Incluir todos los ajustes preestablecidos",
"ignoredPresets": "Ajustes preestablecidos ignorados",
"selectedPresets": "Ajustes preestablecidos seleccionados",
"randomizeNextPreset": "Aleatorizar el siguiente ajuste preestablecido",
"blendTime": "Tiempo de mezcla",
"presets": "Ajustes preestablecidos",
"selectPreset": "Seleccionar ajuste preestablecido",
"applyPreset": "Aplicar ajuste preestablecido",
"saveAsPreset": "Guardar como ajuste preestablecido",
"updatePreset": "Actualizar ajuste preestablecido",
"presetName": "Nombre del ajuste preestablecido",
"presetNamePlaceholder": "Introduce el nombre del ajuste preestablecido",
"pasteGradient": "Pegar degradado",
"pasteGradientPlaceholder": "Pegar JSON del degradado aquí...",
"outlineBars": "Barras de contorno",
"roundBars": "Barras redondeadas",
"lowResolution": "Baja resolución",
"splitGradient": "Dividir degradado",
"noteLabels": "Etiquetas de notas",
"lumiBars": "Barras luminiscentes"
}
}
+407 -84
View File
@@ -1,27 +1,39 @@
{
"action": {
"deselectAll": "deshautatu dena",
"editPlaylist": "editatu $t(entity.playlist_one)",
"editPlaylist": "editatu $t(entity.playlist, {\"count\": 1})",
"goToPage": "joan orrira",
"moveToNext": "mugitu hurrengora",
"moveToBottom": "mugitu behera",
"moveToTop": "mugitu gora",
"refresh": "$t(common.refresh)",
"removeFromFavorites": "kendu $t(entity.favorite_other)-(e)tik",
"removeFromPlaylist": "kendu $t(entity.playlist_one)-(e)tik",
"removeFromFavorites": "kendu gogokoetatik",
"removeFromPlaylist": "kendu $t(entity.playlist, {\"count\": 1})-(e)tik",
"removeFromQueue": "kendu ilaratik",
"setRating": "ezarri balorazioa",
"toggleSmartPlaylistEditor": "txandakatu $t(entity.smartPlaylist) editorea",
"viewPlaylists": "ikusi $t(entity.playlist_other)",
"viewPlaylists": "ikusi $t(entity.playlist, {\"count\": 2})",
"openIn": {
"lastfm": "Ireki Last.fm-n",
"musicbrainz": "Ireki MusicBrainz-en"
},
"clearQueue": "garbitu ilara",
"createPlaylist": "sortu $t(entity.playlist_one)",
"deletePlaylist": "ezabatu $t(entity.playlist_one)",
"addToFavorites": "gehitu $t(entity.favorite_other)-(e)ra",
"addToPlaylist": "gehitu $t(entity.playlist_one)-(e)ra"
"createPlaylist": "sortu $t(entity.playlist, {\"count\": 1})",
"deletePlaylist": "ezabatu $t(entity.playlist, {\"count\": 1})",
"addToFavorites": "gehitu gogokoetara",
"addToPlaylist": "gehitu $t(entity.playlist, {\"count\": 1})ra",
"createRadioStation": "sortu $t(entity.radioStation, {\"count\": 1})",
"deleteRadioStation": "ezabatu $t(entity.radioStation, {\"count\": 1})",
"viewMore": "ikusi gehiago",
"shuffle": "nahastu",
"selectAll": "aukeratu guztiak",
"downloadStarted": "{{count}} elementuren deskarga hasi da",
"addOrRemoveFromSelection": "gehitu edo kendu hautapenetik",
"selectRangeOfItems": "aukeratu elementu sorta bat",
"shuffleAll": "nahastu dena",
"shuffleSelected": "nahastu aukeratutak",
"moveItems": "elementuak mugitu",
"openApplicationDirectory": "ireki aplikazioaren direktorioa"
},
"common": {
"add": "gehitu",
@@ -38,7 +50,7 @@
"configure": "konfiguratu",
"confirm": "berretsi",
"create": "sortu",
"currentSong": "uneko $t(entity.track_one)",
"currentSong": "uneko $t(entity.track, {\"count\": 1})",
"decrease": "gutxitu",
"delete": "ezabatu",
"descending": "beheranzkoa",
@@ -55,7 +67,8 @@
"filter_other": "iragazkiak",
"filters": "iragazkiak",
"forceRestartRequired": "berreabiarazi aldaketak aplikatzeko... itxi notifikazioa berreabiarazteko",
"setting": "ezarpena",
"setting_one": "ezarpenak",
"setting_other": "",
"share": "partekatu",
"action_one": "ekintza",
"action_other": "ekintzak",
@@ -91,7 +104,7 @@
"path": "bidea",
"playerMustBePaused": "erreproduzitzailea pausatuta egon behar da",
"preview": "aurrebista",
"previousSong": "aurreko $t(entity.track_one)",
"previousSong": "aurreko $t(entity.track, {\"count\": 1})",
"quit": "irten",
"random": "ausazkoa",
"rating": "balorazioa",
@@ -124,7 +137,20 @@
"clean": "garbia",
"private": "pribatua",
"public": "publikoa",
"releaseType": "argitalpen mota"
"releaseType": "argitalpen mota",
"countSelected": "{{count}} hautatuta",
"view": "ikuspegia",
"externalLinks": "kanpoko estekak",
"faster": "azkarrago",
"noFilters": "ez dago iragazkirik konfiguratuta",
"retry": "saiatu berriro",
"slower": "motelago",
"itemsMore": "{{count}} gehiago",
"sort": "ordenatu",
"recordLabel": "diskoetxea",
"example": "adibidea",
"tableColumns": "taulako zutabeak",
"doNotShowAgain": "ez erakutsi hau berriro"
},
"player": {
"repeat": "errepikatu",
@@ -151,13 +177,20 @@
"queue_remove": "kendu hautatutakoak",
"repeat_all": "errepikatu dena",
"repeat_off": "errepikapena desgaituta",
"shuffle": "erreproduzitu ausaz",
"shuffle": "erreproduzitu (ausaz)",
"shuffle_off": "auza desgaituta",
"skip_back": "saltatu atzeraka",
"skip_forward": "saltatu aurreraka",
"toggleFullscreenPlayer": "txandakatu pantaila osoko erreproduzitzailea",
"viewQueue": "ikusi ilara",
"playbackFetchCancel": "honek denbora pixka bat behar du... itxi jakinarazpena bertan behera uzteko"
"playbackFetchCancel": "honek denbora pixka bat behar du... itxi jakinarazpena bertan behera uzteko",
"lyrics": "letrak",
"restoreQueueFromServer": "berrezarri ilara zerbitzaritik",
"saveQueueToServer": "gorde ilara zerbitzarira",
"addLastShuffled": "azkena (ausaz)",
"addNextShuffled": "hurrengoa (ausaz)",
"artistRadio": "artista irratia",
"trackRadio": "pista irratia"
},
"table": {
"config": {
@@ -171,13 +204,26 @@
"size": "$t(common.size)",
"tableColumns": "taula zutabeak",
"itemSize": "elementuaren tamaina (px)",
"followCurrentSong": "jarraitu uneko abestia"
"followCurrentSong": "jarraitu uneko abestia",
"size_default": "lehenetsia",
"advancedSettings": "ezarpen aurreratuak",
"autoFitColumns": "zutabeak automatikoki doitu",
"pinToLeft": "ezkerrera finkatu",
"pinToRight": "eskuinera finkatu",
"alignLeft": "ezkerrean lerrokatu",
"alignCenter": "lerrokatu erdian",
"alignRight": "eskuinean lerrokatu",
"itemGap": "elementuen arteko tartea (px)",
"itemsPerRow": "elementuak errenkada bakoitzeko",
"size_large": "handia",
"pagination_itemsPerPage": "elementuak orrialde bakoitzeko",
"pagination_infinite": "infinitua"
},
"label": {
"actions": "$t(common.action_other)",
"album": "$t(entity.album_one)",
"albumArtist": "$t(entity.albumArtist_one)",
"artist": "$t(entity.artist_one)",
"album": "$t(entity.album, {\"count\": 1})",
"albumArtist": "$t(entity.albumArtist, {\"count\": 1})",
"artist": "$t(entity.artist, {\"count\": 1})",
"biography": "$t(common.biography)",
"bitrate": "$t(common.bitrate)",
"bpm": "$t(common.bpm)",
@@ -185,13 +231,13 @@
"codec": "$t(common.codec)",
"duration": "$t(common.duration)",
"favorite": "$t(common.favorite)",
"genre": "$t(entity.genre_one)",
"genre": "$t(entity.genre, {\"count\": 1})",
"note": "$t(common.note)",
"owner": "$t(common.owner)",
"path": "$t(common.path)",
"rating": "$t(common.rating)",
"size": "$t(common.size)",
"songCount": "$t(entity.track_other)",
"songCount": "$t(entity.track, {\"count\": 2})",
"title": "$t(common.title)",
"year": "$t(common.year)",
"titleCombined": "$t(common.title) (batuta)",
@@ -199,25 +245,29 @@
"playCount": "erreprodukzio kopurua",
"lastPlayed": "azken aldiz entzunda",
"discNumber": "disko zenbakia",
"dateAdded": "gehitze data"
"dateAdded": "gehitze data",
"albumCount": "$t(entity.album, {\"count\": 2})",
"image": "irudia",
"bitDepth": "$t(common.bitDepth)",
"sampleRate": "$t(common.sampleRate)"
}
},
"column": {
"album": "albuma",
"albumCount": "$t(entity.album_other)",
"artist": "$t(entity.artist_one)",
"albumCount": "$t(entity.album, {\"count\": 2})",
"artist": "$t(entity.artist, {\"count\": 1})",
"biography": "biografia",
"bitrate": "bit-emaria",
"channels": "$t(common.channel_other)",
"codec": "$t(common.codec)",
"discNumber": "diskoa",
"favorite": "gogokoa",
"genre": "$t(entity.genre_one)",
"genre": "$t(entity.genre, {\"count\": 1})",
"path": "bidea",
"rating": "balorazioa",
"releaseYear": "urtea",
"size": "$t(common.size)",
"songCount": "$t(entity.track_other)",
"songCount": "$t(entity.track, {\"count\": 2})",
"title": "tituloa",
"trackNumber": "pista",
"bpm": "bpm",
@@ -226,7 +276,10 @@
"releaseDate": "argitalpen data",
"lastPlayed": "azken aldiz entzundakoa",
"dateAdded": "gehitutako data",
"albumArtist": "albumeko artista"
"albumArtist": "albumeko artista",
"owner": "jabea",
"bitDepth": "$t(common.bitDepth)",
"sampleRate": "$t(common.sampleRate)"
}
},
"entity": {
@@ -258,13 +311,17 @@
"play_other": "{{count}} erreprodukzio",
"playlistWithCount_one": "erreprodukzio-zerrenda {{count}}",
"playlistWithCount_other": "{{count}} erreprodukzio-zerrenda",
"smartPlaylist": "$t(entity.playlist_one) adimentsua",
"smartPlaylist": "$t(entity.playlist, {\"count\": 1}) adimentsua",
"track_one": "pista",
"track_other": "pistak",
"song_one": "abestia",
"song_other": "abestiak",
"trackWithCount_one": "pista {{count}}",
"trackWithCount_other": "{{count}} pista"
"trackWithCount_other": "{{count}} pista",
"radioStation_one": "irrati-katea",
"radioStation_other": "irrati-kateak",
"radioStationWithCount_one": "irrati-kate {{count}}",
"radioStationWithCount_other": "{{count}} irrati-kate"
},
"error": {
"apiRouteError": "ezin izan da eskaera bideratu",
@@ -290,7 +347,11 @@
"badAlbum": "Orrialde hau ikusten ari zara abesti hau album batekoa ez delako. Ziurrenik arazo hau ikusten ari zara zure musika karpetaren goiko mailan abesti bat baduzu. Jellyfinek abestiak karpeta batean badaude taldekatzen ditu bakarrik",
"loginRateError": "Saioa hasteko saiakera gehiegi egin dira, saiatu berriro segundo batzuk barru",
"notificationDenied": "jakinarazpenetarako baimenak ukatu dira. Ezarpen honek ez du eraginik",
"systemFontError": "errore bat gertatu da sistemaren letra-tipoak lortzen saiatzean"
"systemFontError": "errore bat gertatu da sistemaren letra-tipoak lortzen saiatzean",
"noNetwork": "zerbitzaria ez dago erabilgarri",
"noNetworkDescription": "ezin izan da zerbitzari honetara konektatu",
"saveQueueFailed": "huts egin du ilara gordetzean",
"multipleServerSaveQueueError": "erreprodukzio-ilarak zerbitzarikoak ez diren abesti bat edo gehiago ditu. hau ez da onartzen"
},
"filter": {
"disc": "diskoa",
@@ -304,19 +365,19 @@
"random": "ausazkoa",
"rating": "balorazioa",
"trackNumber": "pista",
"album": "$t(entity.album_one)",
"albumArtist": "$t(entity.albumArtist_one)",
"artist": "$t(entity.artist_one)",
"album": "$t(entity.album, {\"count\": 1})",
"albumArtist": "$t(entity.albumArtist, {\"count\": 1})",
"artist": "$t(entity.artist, {\"count\": 1})",
"biography": "biografia",
"bitrate": "bit-emaria",
"bpm": "bpm-ak",
"channels": "$t(common.channel_other)",
"comment": "iruzkina",
"favorited": "gogoko gisa markatua",
"genre": "$t(entity.genre_one)",
"genre": "$t(entity.genre, {\"count\": 1})",
"search": "bilatu",
"title": "tituloa",
"albumCount": "$t(entity.album_other) kopurua",
"albumCount": "$t(entity.album, {\"count\": 2}) kopurua",
"communityRating": "komunitatearen balorazioa",
"criticRating": "kritikarien balorazioa",
"dateAdded": "gehitutako data",
@@ -343,9 +404,9 @@
"playbackStyle_optionNormal": "normala",
"playButtonBehavior_optionPlay": "$t(player.play)",
"playButtonBehavior_optionPlayShuffled": "$t(player.shuffle)",
"replayGainMode_optionAlbum": "$t(entity.album_one)",
"replayGainMode_optionAlbum": "$t(entity.album, {\"count\": 1})",
"replayGainMode_optionNone": "$t(common.none)",
"replayGainMode_optionTrack": "$t(entity.track_one)",
"replayGainMode_optionTrack": "$t(entity.track, {\"count\": 1})",
"font": "letra-tipoa",
"hotkey_playbackStop": "gelditu",
"buttonSize_description": "erreproduzitzailearen barrako botoien tamaina",
@@ -358,7 +419,6 @@
"customCss": "css pertsonalizatua",
"customFontPath": "letra-tipo pertsonalizatuaren bidea",
"customFontPath_description": "aplikazioan erabiliko den letra-tipo pertsonalizatuaren bidea ezartzen du",
"disableAutomaticUpdates": "desgaitu eguneratze automatikoak",
"discordApplicationId": "{{discord}} aplikazioaren IDa",
"followLyric": "jarraitu uneko letra",
"font_description": "aplikazioan erabiliko den letra-tipoa ezartzen du",
@@ -536,7 +596,86 @@
"exportImportSettings_control_importText": "inportatu ezarpenak",
"exportImportSettings_control_title": "inportatu / esportatu ezarpenak",
"exportImportSettings_importBtn": "inportatu ezarpenak",
"exportImportSettings_importModalTitle": "inportatu feishin ezarpenak"
"exportImportSettings_importModalTitle": "inportatu feishin ezarpenak",
"autoDJ_itemCount": "elementu kopurua",
"language": "hizkuntza",
"queryBuilderCustomFields_inputTag": "etiketa",
"logLevel_optionError": "errore bat",
"logLevel_optionInfo": "informazioa",
"imageResolution_optionTable": "taula",
"imageResolution_optionSidebar": "alboko barra",
"replayGainClipping": "{{ReplayGain}} mozketa",
"replayGainFallback": "{{ReplayGain}} ordezko aukera",
"trayEnabled": "erakutsi erretilua",
"artistReleaseTypeConfiguration": "artistaren argitalpen motaren konfigurazioa",
"artistReleaseTypeConfiguration_description": "konfiguratu zein argitalpen mota erakusten diren, eta zein ordenatan, albumaren artistaren orrian",
"useThemeAccentColor": "erabili gaiaren azentu-kolorea",
"useThemeAccentColor_description": "erabili hautatutako gaian definitutako kolore nagusia azentu-kolore pertsonalizatuaren ordez",
"showRatings": "erakutsi izarren balorazioak",
"showRatings_description": "izarren balorazioen funtzioa interfazean agertzen den ala ez kontrolatzen du",
"imageResolution": "irudiaren erresoluzioa",
"imageResolution_description": "aplikazioan erabilitako irudien erresoluzioa. 0 balioa erabiliz gero, jatorrizko irudiaren erresoluzioa erabiliko da lehenespenez",
"followCurrentSong_description": "automatikoki korritu erreprodukzio-ilara uneko abestira",
"followCurrentSong": "jarraitu uneko abestia",
"lyricOffset_description": "letra zehaztutako milisegundo kopuruarekin desplazatu",
"lyricOffset": "letraren desplazamendua (ms)",
"mpvExtraParameters": "mpv parametro gehigarriak",
"mpvExtraParameters_description": "mpv-ri pasatzeko argumentu gehigarriak",
"notify": "abestien jakinarazpenak gaitu",
"notify_description": "erakutsi jakinarazpenak uneko abestia aldatzean",
"pathReplace": "fitxategiaren bidearen ordezkapena",
"pathReplace_description": "ordezkatu zure zerbitzariaren fitxategi-bide lehenetsia",
"pathReplace_optionRemovePrefix": "kendu aurrizkia",
"pathReplace_optionAddPrefix": "gehitu aurrizkia",
"passwordStore_description": "zein pasahitz/sekretu biltegi erabili. aldatu hau pasahitzak gordetzeko arazoak badituzu",
"playerFilters": "Iragazi ilarako abestiak",
"sidePlayQueueStyle_description": "alboko erreprodukzio-ilararen estiloa ezartzen du",
"mediaSession_description": "Windows Media Session integrazioa gaitzen du, multimedia kontrolak eta metadatuak sistemaren bolumenaren gainjartzean eta blokeo pantailan bistaratuz (Windows bakarrik)",
"sidePlayQueueStyle": "alboko erreprodukzio-ilarako estiloa",
"skipPlaylistPage": "saltatu erreprodukzio-zerrenda orria",
"startMinimized_description": "abiarazi aplikazioa sistemaren erretiluan",
"startMinimized": "hasi minimizatuta",
"transcode": "gaitu transkodetzea",
"transcode_description": "formatu ezberdinetara transkodetzea ahalbidetzen du",
"transcodeBitrate_description": "transkodetzeko bit-emaria hautatzen du. 0k zerbitzariari aukeratzen uzten diola esan nahi du",
"transcodeBitrate": "transkodetzeko bit-emaria",
"transcodeFormat_description": "transkodetzeko formatua hautatzen du. utzi hutsik zerbitzariak erabaki dezan",
"transcodeFormat": "transkodetzeko formatua",
"queryBuilderCustomFields_inputLabel": "etiketa",
"autoDJ": "DJ automatikoa",
"autoDJ_description": "automatikoki gehitu antzeko abestiak ilaran",
"autoDJ_itemCount_description": "DJ automatikoa gaituta dagoenean ilaran gehitzen saiatu diren elementuen kopurua",
"autoDJ_timing_description": "DJ automatikoa aktibatu aurretik ilaran geratzen diren abestien kopurua",
"analyticsDisable": "Erabileran oinarritutako analisiei uko egin",
"analyticsDisable_description": "Erabilera-datu anonimoak garatzaileari bidaltzen zaizkio aplikazioa hobetzen laguntzeko",
"contextMenu_description": "elementu batean eskuineko botoiarekin klik egitean menuan agertzen diren elementuak ezkutatzeko aukera ematen dizu. hautatuta ez dauden elementuak ezkutatuta egongo dira",
"enableAutoTranslation_description": "Gaitu itzulpena automatikoki letra kargatzen denean",
"exportImportSettings_control_description": "JSON bidez ezarpenak esportatu eta inportatu",
"exportImportSettings_destructiveWarning": "Ezarpenak inportatzea arriskutsua da, mesedez, berrikusi goikoa beheko \"inportatu\" klikatu aurretik!",
"exportImportSettings_importSuccess": "ezarpenak behar bezala inportatu dira!",
"exportImportSettings_offendingKeyError": "\"{{offendingKey}}\" okerra da - {{reason}}",
"hotkey_listPlayDefault": "zerrenda erreproduzitu",
"hotkey_listPlayLast": "zerrenda erreproduzitu amaieran",
"hotkey_listPlayNow": "zerrenda erreproduzitu orain",
"logLevel": "erregistro maila",
"logLevel_description": "Bistaratzeko erregistroen gutxieneko maila ezartzen du. Debug-ek erregistro guztiak erakusten ditu, «erroreak» erroreak bakarrik erakusten ditu",
"logLevel_optionDebug": "arazketa",
"playerFilters_description": "saltatu abestiak ilaran gehitzea irizpide hauen arabera",
"artistRadioCount_description": "artista eta abestien irratian bilatu beharreko abesti kopurua ezartzen du",
"artistRadioCount": "artista/abesti irratiko kopurua",
"imageResolution_optionItemCard": "elementu txartela",
"imageResolution_optionHeader": "goiburua",
"imageResolution_optionFullScreenPlayer": "pantaila osoko erreproduzitzailea",
"showVisualizerInSidebar": "erakutsi bistaratzailea erreproduzitzailearen alboko barran",
"combinedLyricsAndVisualizer_description": "konbinatu letrak eta bistaratzailea panel berean",
"combinedLyricsAndVisualizer": "konbinatu letrak eta bistaratzailea erreproduzitzailearen alboko barran",
"preventSleepOnPlayback_description": "saihestu pantaila lotan jartzea musika erreproduzitzen ari den bitartean",
"remotePassword_description": "urruneko kontrol zerbitzariaren pasahitza ezartzen du. Kredentzial hauek modu ez-seguruan transferitzen dira lehenespenez, beraz, axola ez zaizun pasahitz bakarra erabili beharko zenuke",
"remotePassword": "urruneko kontrol zerbitzariaren pasahitza",
"remotePort_description": "urruneko kontrol zerbitzariaren portua ezartzen du",
"remotePort": "urruneko kontrol zerbitzariaren ataka",
"remoteUsername_description": "urruneko kontrol zerbitzariaren erabiltzaile-izena ezartzen du. Erabiltzaile-izena eta pasahitza hutsik badaude, autentifikazioa desgaituta egongo da",
"remoteUsername": "urruneko kontrol zerbitzariaren erabiltzaile-izena"
},
"form": {
"addServer": {
@@ -552,26 +691,27 @@
"input_legacyAuthentication": "gaitu zaharkitutako autentifikazioa",
"success": "zerbitzaria behar bezala gehitu da",
"input_preferInstantMix": "nahiago izan berehalako nahasketa",
"input_preferInstantMixDescription": "erabili berehalako nahasketa soilik antzeko abestiak lortzeko. erabilgarria portaera hau aldatzen duten pluginak badituzu"
"input_preferInstantMixDescription": "erabili berehalako nahasketa soilik antzeko abestiak lortzeko. erabilgarria portaera hau aldatzen duten pluginak badituzu",
"input_remoteUrl": "URL publikoa"
},
"addToPlaylist": {
"input_playlists": "$t(entity.playlist_other)",
"input_playlists": "$t(entity.playlist, {\"count\": 2})",
"success": "$t(entity.trackWithCount, {\"count\": {{message}} }) gehitu da $t(entity.playlistWithCount, {\"count\": {{numOfPlaylists}} })-ra",
"input_skipDuplicates": "saltatu bikoiztuak",
"title": "gehitu $t(entity.playlist_one)-(a)ri",
"create": "sortu $t(entity.playlist_one) {{playlist}}",
"searchOrCreate": "bilatu $t(entity.playlist_other) edo idatzi berri bat sortzeko"
"title": "gehitu $t(entity.playlist, {\"count\": 1})-(a)ri",
"create": "sortu $t(entity.playlist, {\"count\": 1}) {{playlist}}",
"searchOrCreate": "bilatu $t(entity.playlist, {\"count\": 2}) edo idatzi berri bat sortzeko"
},
"createPlaylist": {
"input_description": "$t(common.description)",
"input_name": "$t(common.name)",
"input_owner": "$t(common.owner)",
"input_public": "publikoa",
"title": "$t(entity.playlist_one) sortu",
"success": "$t(entity.playlist_one) behar bezala sortu da"
"title": "$t(entity.playlist, {\"count\": 1}) sortu",
"success": "$t(entity.playlist, {\"count\": 1}) behar bezala sortu da"
},
"lyricSearch": {
"input_artist": "$t(entity.artist_one)",
"input_artist": "$t(entity.artist, {\"count\": 1})",
"input_name": "$t(common.name)",
"title": "letra bilatu"
},
@@ -584,19 +724,22 @@
"createFailed": "partekatzea sortzeak huts egin du (partekatzea gaituta al dago?)"
},
"deletePlaylist": {
"success": "$t(entity.playlist_one) behar bezala ezabatu da",
"title": "$t(entity.playlist_one) ezabatu",
"input_confirm": "idatzi $t(entity.playlist_one)-(a)ren izena berresteko"
"success": "$t(entity.playlist, {\"count\": 1}) behar bezala ezabatu da",
"title": "$t(entity.playlist, {\"count\": 1}) ezabatu",
"input_confirm": "idatzi $t(entity.playlist, {\"count\": 1})-(a)ren izena berresteko"
},
"editPlaylist": {
"success": "$t(entity.playlist_one) behar bezala eguneratu da",
"title": "$t(entity.playlist_one) editatu",
"publicJellyfinNote": "Arrazoiren batengatik, Jellyfin ez du erakusten erreprodukzio-zerrendak publikoak diren edo ez. Hau publiko izaten jarraitzea nahi baduzu, hautatu sarrera hau"
"success": "$t(entity.playlist, {\"count\": 1}) behar bezala eguneratu da",
"title": "$t(entity.playlist, {\"count\": 1}) editatu",
"publicJellyfinNote": "Arrazoiren batengatik, Jellyfin ez du erakusten erreprodukzio-zerrendak publikoak diren edo ez. Hau publiko izaten jarraitzea nahi baduzu, hautatu sarrera hau",
"editNote": "ez da gomendatzen eskuzko edizioak egitea erreprodukzio-zerrenda handietarako. ziur zaude onartzen duzula lehendik dagoen erreprodukzio-zerrenda gainidazteagatik datuak galtzeko arriskua?"
},
"queryEditor": {
"title": "kontsulta editorea",
"input_optionMatchAll": "guztiak bat etorri",
"input_optionMatchAny": "edozeinekin bat etorri"
"input_optionMatchAny": "edozeinekin bat etorri",
"resetToDefault": "lehenetsitako egoerara berrezarri",
"clearFilters": "garbitu iragazkiak"
},
"updateServer": {
"success": "zerbitzaria behar bezala eguneratu da",
@@ -606,25 +749,50 @@
"title": "modu pribatua",
"enabled": "modu pribatua gaituta, erreprodukzio egoera kanpoko integrazioetatik ezkutatuta dago orain",
"disabled": "modu pribatua desgaituta, erreprodukzio egoera ikusgai dago orain gaitutako kanpoko integrazioentzat"
},
"largeFetchConfirmation": {
"title": "gehitu elementuak ilaran"
},
"createRadioStation": {
"input_homepageUrl": "hasierako orriaren URLa",
"input_name": "izena",
"title": "irrati-katea sortu",
"success": "irrati-katea behar bezala sortu da"
},
"lyricsExport": {
"export": "esportatu letrak",
"input_synced": "esportatu sinkronizatutako letrak",
"input_offset": "$t(setting.lyricOffset)"
},
"shuffleAll": {
"input_genre": "$t(entity.genre, {\"count\": 1})",
"title": "ausaz erreproduzitu",
"input_limit": "zenbat abesti?",
"input_played_optionAll": "pista guztiak",
"input_played_optionUnplayed": "erreproduzitu gabeko pistak bakarrik",
"input_played_optionPlayed": "erreproduzitutako pistak bakarrik"
},
"saveQueue": {
"success": "erreprodukzio-ilara zerbitzarian gordeta"
}
},
"page": {
"albumArtistList": {
"title": "$t(entity.albumArtist_other)"
"title": "$t(entity.albumArtist, {\"count\": 2})"
},
"albumDetail": {
"released": "argitaratuta",
"moreFromArtist": "$t(entity.artist_one) honetatik gehiago",
"moreFromArtist": "$t(entity.artist, {\"count\": 1}) honetatik gehiago",
"moreFromGeneric": "{{item}}-(e)tik gehiago"
},
"albumList": {
"title": "$t(entity.album_other)",
"genreAlbums": "\"{{genre}}\" $t(entity.album_other)",
"title": "$t(entity.album, {\"count\": 2})",
"genreAlbums": "\"{{genre}}\" $t(entity.album, {\"count\": 2})",
"artistAlbums": "{{artist}}-(a)ren albumak"
},
"appMenu": {
"quit": "$t(common.quit)",
"settings": "$t(common.setting_other)",
"settings": "$t(common.setting, {\"count\": 2})",
"collapseSidebar": "tolestu alboko barra",
"expandSidebar": "zabaldu alboko barra",
"goBack": "atzera",
@@ -634,7 +802,11 @@
"privateModeOn": "aktibatu modu pribatua",
"selectServer": "aukeratu zerbitzaria",
"version": "bertsioa {{version}}",
"openBrowserDevtools": "ireki nabigatzailearen garapen tresnak"
"openBrowserDevtools": "ireki nabigatzailearen garapen tresnak",
"commandPalette": "ireki komando-paleta",
"noMusicFolder": "ez da musika karpetarik hautatu",
"selectMusicFolder": "aukeratu musika karpeta",
"multipleMusicFolders": "{{count}} musika karpeta aukeratuta"
},
"manageServers": {
"url": "URLa",
@@ -666,9 +838,10 @@
"playShuffled": "$t(player.shuffle)",
"numberSelected": "{{count}} hautatuta",
"shareItem": "partekatu elementua",
"goToAlbum": "joan $t(entity.album_one)-(e)ra",
"goToAlbum": "joan $t(entity.album, {\"count\": 1})-(e)ra",
"goToAlbumArtist": "joan albumera",
"showDetails": "informazioa lortu"
"showDetails": "informazioa lortu",
"moveItems": "$t(action.moveItems)"
},
"fullscreenPlayer": {
"config": {
@@ -694,9 +867,9 @@
"noLyrics": "ez da letrarik aurkitu"
},
"genreList": {
"title": "$t(entity.genre_other)",
"showAlbums": "erakutsi $t(entity.genre_one) $t(entity.album_other)",
"showTracks": "erakutsi $t(entity.genre_one) $t(entity.track_other)"
"title": "$t(entity.genre, {\"count\": 2})",
"showAlbums": "erakutsi $t(entity.genre, {\"count\": 1}) $t(entity.album, {\"count\": 2})",
"showTracks": "erakutsi $t(entity.genre, {\"count\": 1}) $t(entity.track, {\"count\": 2})"
},
"globalSearch": {
"title": "komandoak",
@@ -712,48 +885,68 @@
"newlyAdded": "azken aldian gehitutako argitalpenak",
"recentlyPlayed": "azken aldian entzundakoak",
"recentlyReleased": "azken aldian argitaratutak",
"explore": "arakatu zure liburutegitik"
"explore": "arakatu zure liburutegitik",
"genres": "$t(entity.genre, {\"count\": 2})"
},
"playlistList": {
"title": "$t(entity.playlist_other)"
"title": "$t(entity.playlist, {\"count\": 2})"
},
"setting": {
"advanced": "aurreratua",
"generalTab": "orokorra",
"playbackTab": "erreprodukzioa",
"windowTab": "leihoa",
"hotkeysTab": "laster-teklak"
"hotkeysTab": "laster-teklak",
"cache": "katxea",
"application": "aplikazioa",
"theme": "gaia",
"sidebar": "alboko barra",
"exportImport": "inportatu/esportatu",
"scrobble": "scrobble",
"audio": "audioa",
"lyrics": "letrak",
"discord": "discord",
"playerFilters": "erreproduzitzailearen iragazkiak",
"updates": "eguneraketa",
"queryBuilder": "kontsulta-sortzailea",
"controls": "kontrolak",
"remote": "urrunekoa",
"lyricsDisplay": "erakutsi letrak"
},
"sidebar": {
"albumArtists": "$t(entity.albumArtist_other)",
"albums": "$t(entity.album_other)",
"artists": "$t(entity.artist_other)",
"folders": "$t(entity.folder_other)",
"genres": "$t(entity.genre_other)",
"albumArtists": "$t(entity.albumArtist, {\"count\": 2})",
"albums": "$t(entity.album, {\"count\": 2})",
"artists": "$t(entity.artist, {\"count\": 2})",
"folders": "$t(entity.folder, {\"count\": 2})",
"genres": "$t(entity.genre, {\"count\": 2})",
"home": "$t(common.home)",
"playlists": "$t(entity.playlist_other)",
"playlists": "$t(entity.playlist, {\"count\": 2})",
"search": "$t(common.search)",
"settings": "$t(common.setting_other)",
"tracks": "$t(entity.track_other)",
"settings": "$t(common.setting, {\"count\": 2})",
"tracks": "$t(entity.track, {\"count\": 2})",
"myLibrary": "nire liburutegia",
"nowPlaying": "orain erreproduzitzen",
"shared": "partekatutako $t(entity.playlist_other)"
"shared": "partekatutako $t(entity.playlist, {\"count\": 2})",
"favorites": "$t(entity.favorite, {\"count\": 2})",
"radio": "$t(entity.radioStation, {\"count\": 2})"
},
"trackList": {
"title": "$t(entity.track_other)",
"genreTracks": "\"{{genre}}\" $t(entity.track_other)",
"title": "$t(entity.track, {\"count\": 2})",
"genreTracks": "\"{{genre}}\" $t(entity.track, {\"count\": 2})",
"artistTracks": "{{artist}}-(r)en abestiak"
},
"albumArtistDetail": {
"about": "{{artist}}-(r)i buruz",
"relatedArtists": "erlazionatutako $t(entity.artist_other)",
"relatedArtists": "erlazionatutako $t(entity.artist, {\"count\": 2})",
"topSongs": "abesti nagusiak",
"topSongsFrom": "{{title}}-(a)ren abesti nagusiak",
"viewAll": "ikusi guztiak",
"viewAllTracks": "ikusi $t(entity.track_other) guztiak",
"viewAllTracks": "ikusi $t(entity.track, {\"count\": 2}) guztiak",
"appearsOn": "agertzen da hemen",
"recentReleases": "azken argitalpenak",
"viewDiscography": "ikusi diskografia"
"viewDiscography": "ikusi diskografia",
"groupingTypeAll": "argitalpen mota guztiak",
"groupingTypePrimary": "argitalpen mota nagusiak"
},
"itemDetail": {
"copyPath": "kopiatu bidea arbelean",
@@ -762,18 +955,148 @@
},
"playlist": {
"reorder": "berrantolaketa IDaren arabera ordenatzean bakarrik gaituta dago"
},
"folderList": {
"title": "$t(entity.folder, {\"count\": 2})"
},
"favorites": {
"title": "$t(entity.favorite, {\"count\": 2})"
},
"radioList": {
"title": "irrati-kateak"
}
},
"releaseType": {
"primary": {
"album": "$t(entity.album_one)",
"other": "bestelakoa"
"album": "$t(entity.album, {\"count\": 1})",
"other": "bestelakoa",
"ep": "ep"
},
"secondary": {
"compilation": "konpilazioa",
"audiobook": "audioliburua",
"interview": "elkarrizketa",
"remix": "nahasketa"
"remix": "nahasketa",
"djMix": "dj nahasketa"
}
},
"datetime": {
"minuteShort": "m",
"secondShort": "s",
"hourShort": "h",
"dayShort": "d"
},
"queryBuilder": {
"customTags": "etiketa pertsonalizatutak",
"standardTags": "etiketa estandarrak"
},
"filterOperator": {
"is": "da",
"contains": "dauka",
"notContains": "ez dauka",
"startsWith": "honekin hasten da",
"endsWith": "honekin amaitzen da",
"isNot": "ez da"
},
"visualizer": {
"general": "Orokorra",
"mode": "Modua",
"vertical": "Bertikala",
"horizontal": "Horizontala",
"position": "Posizioa",
"level": "Maila",
"remove": "Kendu",
"custom": "Pertsonalizatua",
"builtIn": "Barneratua",
"colors": "Koloreak",
"gradient": "Gradientea",
"fft": "FFT",
"sensitivity": "Sentikortasuna",
"smoothing": "Leuntzea",
"gravity": "Grabitatea",
"radial": "Erradiala",
"radius": "Erradioa",
"mirror": "Ispilua",
"options": {
"colorMode": {
"gradient": "Gradientea",
"barIndex": "Barra-indizea",
"barLevel": "Barra-maila"
},
"gradient": {
"classic": "Klasikoa",
"prism": "Prisma",
"rainbow": "Ostadarra",
"orangered": "Laranja-gorria"
},
"weightingFilter": {
"none": "Bat ere ez",
"a": "A",
"b": "B",
"c": "C",
"d": "D",
"z": "Z"
},
"mode": {
"0": "[0] Maiztasun Diskretuak",
"1": "[1] 1/24 oktaba / 240 banda",
"2": "[2] 1/12 oktaba / 120 banda",
"3": "[3] 1/8 oktaba / 80 banda",
"4": "[4] 1/6ko oktaba / 60 banda",
"5": "[5] 1/4 oktaba / 40 banda",
"6": "[6] 1/3 oktaba / 30 banda",
"7": "[7] Oktaba erdi / 20 banda",
"8": "[8] Oktaba osoa / 10 banda",
"10": "[10] Lerroa / Azalera grafikoa"
},
"frequencyScale": {
"none": "Bat ere ez",
"linear": "Eskala Lineala",
"bark": "Bark Eskala",
"mel": "Mel Eskala"
}
},
"opacity": "Opakotasuna",
"minimumFrequency": "Gutxieneko Maiztasuna",
"maximumFrequency": "Gehienezko Maiztasuna",
"frequencyScale": "Maiztasun Eskala",
"weightingFilter": "Ponderazio-iragazkia",
"minimumDecibels": "Gutxieneko Dezibelioak",
"maximumDecibels": "Gehienezko Dezibelioak",
"linearAmplitude": "Anplitude Lineala",
"linearBoost": "Bultzada Lineala",
"showPeaks": "Erakutsi Gailurrak",
"configCopied": "Konfigurazioa arbelean kopiatu da",
"configCopyFailed": "Konfigurazioa kopiatzeak huts egin du",
"configPasted": "Konfigurazioa behar bezala aplikatu da",
"configPasteFailed": "Konfigurazioa aplikatzeak huts egin du. Mesedez, egiaztatu formatua.",
"configPasteReadFailed": "Arbelatik irakurtzeak huts egin du",
"colorMode": "Kolore Modua",
"fftSize": "FFT tamaina",
"frequencyRangeAndScaling": "Maiztasun-tartea eta eskalatzea",
"showScaleY": "Erakutsi Y Eskala",
"pasteGradientPlaceholder": "Itsatsi JSON gradientea hemen...",
"pasteGradient": "Itsatsi Gradientea",
"addColor": "Gehitu Kolorea",
"colorStops": "Kolore Geldialdiak",
"gradientNamePlaceholder": "Gradientearen Izena",
"gradientName": "Gradientearen Izena",
"addCustomGradient": "Gehitu Gradiente Pertsonalizatua",
"customGradients": "Gradiente Pertsonalizatuak",
"maxFPS": "FPS maximoak",
"channelLayout": "Kanalaren Diseinua",
"lineWidth": "Lerroaren Zabalera",
"presetNamePlaceholder": "Sartu aurrezarpenaren izena",
"presetName": "Aurrezarpenaren Izena",
"applyConfiguration": "Aplikatu konfigurazioa",
"pasteFromClipboard": "Itsatsi Arbeletik",
"pasteConfigurationPlaceholder": "Itsatsi JSON konfigurazioa hemen...",
"pasteConfiguration": "Itsatsi Konfigurazioa",
"copyConfiguration": "Kopiatu Konfigurazioa",
"updatePreset": "Aurrezarpena Eguneratu",
"saveAsPreset": "Aurrezarpen gisa gorde",
"applyPreset": "Aurrezarpena Aplikatu",
"selectPreset": "Aukeratu Aurrezarpena",
"presets": "Aurrezarpenak"
}
}
+55 -55
View File
@@ -33,23 +33,23 @@
"muted": "بی‌صدا"
},
"action": {
"editPlaylist": "ویرایش $t(entity.playlist_one)",
"editPlaylist": "ویرایش $t(entity.playlist, {\"count\": 1})",
"goToPage": "برو به صفحهٔ",
"moveToTop": "انتقال به بالا",
"clearQueue": "خالی کردن صف",
"addToFavorites": "افزودن به $t(entity.favorite_other)",
"addToPlaylist": "افزودن به $t(entity.playlist_one)",
"createPlaylist": "ساخت $t(entity.playlist_one)",
"removeFromPlaylist": "حذف از $t(entity.playlist_one)",
"viewPlaylists": "نمایش $t(entity.playlist_other)",
"addToFavorites": "افزودن به $t(entity.favorite, {\"count\": 2})",
"addToPlaylist": "افزودن به $t(entity.playlist, {\"count\": 1})",
"createPlaylist": "ساخت $t(entity.playlist, {\"count\": 1})",
"removeFromPlaylist": "حذف از $t(entity.playlist, {\"count\": 1})",
"viewPlaylists": "نمایش $t(entity.playlist, {\"count\": 2})",
"refresh": "$t(common.refresh)",
"deletePlaylist": "حذف $t(entity.playlist_one)",
"deletePlaylist": "حذف $t(entity.playlist, {\"count\": 1})",
"removeFromQueue": "حذف از صف",
"deselectAll": "لغو انتخاب همه",
"moveToBottom": "انتقال به پایین",
"setRating": "تعیین امتیاز",
"toggleSmartPlaylistEditor": "تغییر ویرایشگر $t(entity.smartPlaylist)",
"removeFromFavorites": "حذف از $t(entity.favorite_other)",
"removeFromFavorites": "حذف از $t(entity.favorite, {\"count\": 2})",
"openIn": {
"lastfm": "باز کردن در Last.fm",
"musicbrainz": "باز کردن در MusicBranz"
@@ -76,16 +76,15 @@
"hotkey_volumeDown": "کم کردن صدا",
"audioPlayer_description": "پخش‌کنندهٔ صدا را برای پخش انتخاب کنید",
"hotkey_globalSearch": "جست و جوی سراسری",
"disableAutomaticUpdates": "غیرفعال کردن به‌‌روزرسانی خودکار",
"exitToTray_description": "خروج از اپلیکیشن به system tray",
"replayGainMode_optionAlbum": "$t(entity.album_one)",
"replayGainMode_optionAlbum": "$t(entity.album, {\"count\": 1})",
"discordUpdateInterval_description": "فاصلهٔ بین هر به روزرسانی به ثانیه (حداقل ۱۵ ثانیه)",
"audioExclusiveMode": "حالت اختصاصی صدا",
"remotePassword": "رمز عبور کنترل از راه دور",
"language_description": "زبان اپلیکیشن را معین می‌کند $t(common.restartRequired)",
"hotkey_rate3": "امتیاز ۳ ستاره",
"font": "قلم",
"replayGainMode_optionTrack": "$t(entity.track_one)",
"replayGainMode_optionTrack": "$t(entity.track, {\"count\": 1})",
"hotkey_toggleFullScreenPlayer": "تغییر به پخش‌کنندهٔ تمام‌صفحه",
"hotkey_localSearch": "جست و جو در صفحه",
"hotkey_toggleQueue": "تغییر صف",
@@ -186,7 +185,7 @@
"left": "چپ",
"save": "ذخیره",
"right": "راست",
"currentSong": "فعلی $t(entity.track_one)",
"currentSong": "فعلی $t(entity.track, {\"count\": 1})",
"collapse": "بستن",
"trackNumber": "قطعه",
"descending": "نزولی",
@@ -239,7 +238,7 @@
"none": "هیچ",
"menu": "منو",
"restartRequired": "راه‌اندازی دوباره لازم است",
"previousSong": "$t(entity.track_one) پیشین",
"previousSong": "$t(entity.track, {\"count\": 1}) پیشین",
"noResultsFromQuery": "جست‌وجو نتیجه‌ای نداشت",
"quit": "خروج",
"expand": "گسترش",
@@ -256,7 +255,8 @@
"albumPeak": "اوج آلبوم",
"mbid": "شناسه‌ی MusicBrainz",
"reload": "بارگذاری مجدد",
"setting": "پیکربندی",
"setting_one": "پیکربندی",
"setting_other": "",
"trackGain": "گین قطعه",
"trackPeak": "اوج قطعه",
"translation": "ترجمه",
@@ -301,16 +301,16 @@
"rating": "امتیاز",
"search": "جست‌وجو",
"bitrate": "بیت‌ریت",
"genre": "$t(entity.genre_one)",
"genre": "$t(entity.genre, {\"count\": 1})",
"recentlyAdded": "به تازگی افزوده شده",
"note": "توجه",
"name": "نام",
"dateAdded": "تاریخ افزوده شدن",
"releaseDate": "تاریخ انتشار",
"albumCount": "$t(entity.album_other) عدد",
"albumCount": "$t(entity.album, {\"count\": 2}) عدد",
"path": "مسیر",
"favorited": "موردعلاقه",
"albumArtist": "$t(entity.albumArtist_one)",
"albumArtist": "$t(entity.albumArtist, {\"count\": 1})",
"isRecentlyPlayed": "به تازگی پخش شده است",
"isFavorited": "موردعلاقه است",
"bpm": "bpm",
@@ -319,7 +319,7 @@
"disc": "دیسک",
"biography": "زندگی‌نامه",
"songCount": "تعداد ترانه",
"artist": "$t(entity.artist_one)",
"artist": "$t(entity.artist, {\"count\": 1})",
"duration": "مدت",
"isPublic": "عمومی است",
"random": "تصادفی",
@@ -327,23 +327,23 @@
"toYear": "تا سال",
"fromYear": "از سال",
"criticRating": "امتیاز منتقدین",
"album": "$t(entity.album_one)",
"album": "$t(entity.album, {\"count\": 1})",
"trackNumber": "قطعه",
"communityRating": "رتبه بندی جامعه",
"isCompilation": "مخلوط است"
},
"form": {
"deletePlaylist": {
"title": "حذف $t(entity.playlist_one)",
"success": "$t(entity.playlist_one) حذف شد",
"input_confirm": "برای تایید، نام $t(entity.playlist_one) را وارد کنید"
"title": "حذف $t(entity.playlist, {\"count\": 1})",
"success": "$t(entity.playlist, {\"count\": 1}) حذف شد",
"input_confirm": "برای تایید، نام $t(entity.playlist, {\"count\": 1}) را وارد کنید"
},
"createPlaylist": {
"input_description": "$t(common.description)",
"title": "ساخت $t(entity.playlist_one)",
"title": "ساخت $t(entity.playlist, {\"count\": 1})",
"input_public": "عمومی",
"input_name": "$t(common.name)",
"success": "$t(entity.playlist_one) ساخته شد",
"success": "$t(entity.playlist, {\"count\": 1}) ساخته شد",
"input_owner": "$t(common.owner)"
},
"addServer": {
@@ -360,19 +360,19 @@
"ignoreSsl": "نادیده گرفتن ssl ($t(common.restartRequired))"
},
"addToPlaylist": {
"success": "$t(entity.song_other) به {{numOfPlaylists}}$t(entity.playlist_other) افزوده شد",
"title": "افزودن به $t(entity.playlist_one)",
"input_playlists": "$t(entity.playlist_other)",
"success": "$t(entity.song, {\"count\": 2}) به {{numOfPlaylists}}$t(entity.playlist, {\"count\": 2}) افزوده شد",
"title": "افزودن به $t(entity.playlist, {\"count\": 1})",
"input_playlists": "$t(entity.playlist, {\"count\": 2})",
"input_skipDuplicates": "پرش از تکراری‌ها"
},
"lyricSearch": {
"input_name": "$t(common.name)",
"input_artist": "$t(entity.artist_one)",
"input_artist": "$t(entity.artist, {\"count\": 1})",
"title": "جست‌وجو در متن شعر"
},
"editPlaylist": {
"title": "ویرایش $t(entity.playlist_one)",
"success": "$t(entity.playlist_one) با موفقیت بروزرسانی شد",
"title": "ویرایش $t(entity.playlist, {\"count\": 1})",
"success": "$t(entity.playlist, {\"count\": 1}) با موفقیت بروزرسانی شد",
"publicJellyfinNote": "جلی‌فین به دلیلی این‌که فهرست پخش عمومی‌ست یا خصوصی را فاش نمی‌کند. اگر می‌خواهید این عمومی باقی بماند، لطفاٌ ورودی پیش‌رو را منتخب داشته باشید"
},
"queryEditor": {
@@ -417,7 +417,7 @@
"artistWithCount_other": "{{count}} هنرمند",
"folder_one": "پوشه",
"folder_other": "پوشه‌ها",
"smartPlaylist": "$t(entity.playlist_one) هوشمند",
"smartPlaylist": "$t(entity.playlist, {\"count\": 1}) هوشمند",
"album_one": "آلبوم",
"album_other": "آلبوم‌ها",
"genreWithCount_one": "{{count}} ژانر",
@@ -431,12 +431,12 @@
},
"page": {
"albumList": {
"title": "$t(entity.album_other)",
"title": "$t(entity.album, {\"count\": 2})",
"artistAlbums": "آلبوم‌های {{artist}}",
"genreAlbums": "\"{{genre}}\" $t(entity.album_other)"
"genreAlbums": "\"{{genre}}\" $t(entity.album, {\"count\": 2})"
},
"appMenu": {
"settings": "$t(common.setting_other)",
"settings": "$t(common.setting, {\"count\": 2})",
"selectServer": "گزینش سرویس‌دهنده",
"expandSidebar": "گسترش نوار کناری",
"collapseSidebar": "فروکش نوار کناری",
@@ -451,11 +451,11 @@
"appearsOn": "مشاهده می‌شود در",
"about": "درباره‌ی {{artist}}",
"recentReleases": "عرضه‌های اخیر",
"viewAllTracks": "نمایش همه‌ی $t(entity.track_other)",
"viewAllTracks": "نمایش همه‌ی $t(entity.track, {\"count\": 2})",
"topSongsFrom": "قطعه‌های برتر از {{title}}",
"viewAll": "نمایش همه",
"viewDiscography": "نمایش کاتالوگ",
"relatedArtists": "$t(entity.artist_other) مربوطه",
"relatedArtists": "$t(entity.artist, {\"count\": 2}) مربوطه",
"topSongs": "قطعه‌های برتر"
},
"contextMenu": {
@@ -523,21 +523,21 @@
"playbackTab": "پخش"
},
"sidebar": {
"genres": "$t(entity.genre_other)",
"playlists": "$t(entity.playlist_other)",
"genres": "$t(entity.genre, {\"count\": 2})",
"playlists": "$t(entity.playlist, {\"count\": 2})",
"search": "$t(common.search)",
"albumArtists": "$t(entity.albumArtist_other)",
"albums": "$t(entity.album_other)",
"folders": "$t(entity.folder_other)",
"artists": "$t(entity.artist_other)",
"albumArtists": "$t(entity.albumArtist, {\"count\": 2})",
"albums": "$t(entity.album, {\"count\": 2})",
"folders": "$t(entity.folder, {\"count\": 2})",
"artists": "$t(entity.artist, {\"count\": 2})",
"home": "$t(common.home)",
"nowPlaying": "پخش کنونی",
"tracks": "$t(entity.track_other)",
"settings": "$t(common.setting_other)",
"shared": "$t(entity.playlist_other) اشتراک‌گذاری شده"
"tracks": "$t(entity.track, {\"count\": 2})",
"settings": "$t(common.setting, {\"count\": 2})",
"shared": "$t(entity.playlist, {\"count\": 2}) اشتراک‌گذاری شده"
},
"albumDetail": {
"moreFromArtist": "موارد بیشتر از این $t(entity.artist_one)",
"moreFromArtist": "موارد بیشتر از این $t(entity.artist, {\"count\": 1})",
"moreFromGeneric": "موارد بیشتر از {{item}}",
"released": "عرضه شده"
},
@@ -550,9 +550,9 @@
"editServerDetailsTooltip": "ویرایش ریزگان سرویس‌دهنده"
},
"genreList": {
"showAlbums": "نمایش $t(entity.genre_one) $t(entity.album_other)",
"title": "$t(entity.genre_other)",
"showTracks": "نمایش $t(entity.genre_one) $t(entity.track_other)"
"showAlbums": "نمایش $t(entity.genre, {\"count\": 1}) $t(entity.album, {\"count\": 2})",
"title": "$t(entity.genre, {\"count\": 2})",
"showTracks": "نمایش $t(entity.genre, {\"count\": 1}) $t(entity.track, {\"count\": 2})"
},
"globalSearch": {
"commands": {
@@ -563,15 +563,15 @@
"title": "فرمان‌ها"
},
"playlistList": {
"title": "$t(entity.playlist_other)"
"title": "$t(entity.playlist, {\"count\": 2})"
},
"trackList": {
"title": "$t(entity.track_other)",
"title": "$t(entity.track, {\"count\": 2})",
"artistTracks": "قطعه‌های {{artist}}",
"genreTracks": "$t(entity.track_other) \"{{genre}}\""
"genreTracks": "$t(entity.track, {\"count\": 2}) \"{{genre}}\""
},
"albumArtistList": {
"title": "$t(entity.albumArtist_other)"
"title": "$t(entity.albumArtist, {\"count\": 2})"
},
"itemDetail": {
"copyPath": "کپی کردن مسیر در کلیپ‌بورد",
@@ -584,11 +584,11 @@
"size": "$t(common.size)",
"lastPlayed": "آخرین بار پخش شده",
"discNumber": "دیسک",
"songCount": "$t(entity.track_other)",
"songCount": "$t(entity.track, {\"count\": 2})",
"title": "عنوان",
"trackNumber": "قطعه",
"favorite": "مورد علاقه",
"genre": "$t(entity.genre_one)",
"genre": "$t(entity.genre, {\"count\": 1})",
"comment": "دیدگاه",
"playCount": "تعداد پخش",
"rating": "امتیاز",
+286 -87
View File
@@ -3,7 +3,8 @@
"size": "koko",
"search": "etsi",
"sortOrder": "järjestys",
"setting": "asetus",
"setting_one": "asetus",
"setting_other": "asetukset",
"title": "otsikko",
"trackNumber": "raita",
"action_one": "toiminto",
@@ -44,7 +45,7 @@
"owner": "omistaja",
"path": "polku",
"preview": "esikatsele",
"previousSong": "edellinen $t(entity.track_one)",
"previousSong": "edellinen $t(entity.track, {\"count\": 1})",
"resetToDefault": "palauta oletusarvoihin",
"restartRequired": "vaatii uudelleenkäynnistyksen",
"right": "oikea",
@@ -66,7 +67,7 @@
"codec": "koodekki",
"create": "luo",
"description": "kuvaus",
"currentSong": "nykyinen $t(entity.track_one)",
"currentSong": "nykyinen $t(entity.track, {\"count\": 1})",
"delete": "poista",
"duration": "kesto",
"edit": "muokkaa",
@@ -101,7 +102,24 @@
"recordLabel": "levy-yhtiö",
"releaseType": "julkaisun tyyppi",
"explicit": "eksplisiittinen",
"clean": "puhdas"
"clean": "puhdas",
"countSelected": "{{count}} valittuna",
"doNotShowAgain": "älä näytä uudelleen",
"view": "katso",
"example": "esimerkki",
"externalLinks": "ulkoiset linkit",
"faster": "nopeammin",
"filter_single": "yksi",
"filter_multiple": "useampi",
"mood": "mieliala",
"noFilters": "suodattimia ei ole määritetty",
"retry": "yritä uudelleen",
"rename": "nimeä uudelleen",
"slower": "hitaammin",
"sort": "järjestä",
"gridRows": "ruudukon rivejä",
"tableColumns": "taulukon sarakkeita",
"itemsMore": "{{count}} lisää"
},
"entity": {
"album_one": "albumi",
@@ -130,7 +148,7 @@
"genre_other": "genret",
"genreWithCount_one": "{{count}} genre",
"genreWithCount_other": "{{count}} genreä",
"smartPlaylist": "älykäs $t(entity.playlist_one)",
"smartPlaylist": "älykäs $t(entity.playlist, {\"count\": 1})",
"track_one": "raita",
"track_other": "raidat",
"trackWithCount_one": "{{count}} raita",
@@ -138,31 +156,52 @@
"play_one": "{{count}} toisto",
"play_other": "{{count}} toistoa",
"song_one": "kappale",
"song_other": "kappaleet"
"song_other": "kappaleet",
"radioStation_one": "radioasema",
"radioStation_other": "radioasemaa",
"radioStationWithCount_one": "{{count}} radioasema",
"radioStationWithCount_other": "{{count}} radioasemaa"
},
"action": {
"clearQueue": "tyhjennä jono",
"createPlaylist": "luo $t(entity.playlist_one)",
"createPlaylist": "luo $t(entity.playlist, {\"count\": 1})",
"deselectAll": "poista kaikkien valinta",
"editPlaylist": "muokkaa $t(entity.playlist_one)",
"editPlaylist": "muokkaa $t(entity.playlist, {\"count\": 1})",
"removeFromQueue": "poista jonosta",
"viewPlaylists": "katsele $t(entity.playlist_other)",
"viewPlaylists": "katsele $t(entity.playlist, {\"count\": 2})",
"openIn": {
"lastfm": "Avaa Last.fm:ssä",
"musicbrainz": "Avaa MusicBrainz:ssä"
},
"goToPage": "mene sivulle",
"moveToBottom": "siirry pohjalle",
"moveToBottom": "siirrä alimmaksi",
"moveToTop": "siirry ylös",
"addToFavorites": "lisää kohteeseen $t(entity.favorite_other)",
"addToPlaylist": "lisää kohteeseen $t(entity.playlist_one)",
"addToFavorites": "lisää kohteeseen $t(entity.favorite, {\"count\": 2})",
"addToPlaylist": "lisää kohteeseen $t(entity.playlist, {\"count\": 1})",
"refresh": "$t(common.refresh)",
"removeFromFavorites": "poista kohteesta $t(entity.favorite_other)",
"removeFromFavorites": "poista kohteesta $t(entity.favorite, {\"count\": 2})",
"toggleSmartPlaylistEditor": "kytke $t(entity.smartPlaylist) editori",
"deletePlaylist": "poista $t(entity.playlist_one)",
"removeFromPlaylist": "poista kohteesta $t(entity.playlist_one)",
"deletePlaylist": "poista $t(entity.playlist, {\"count\": 1})",
"removeFromPlaylist": "poista kohteesta $t(entity.playlist, {\"count\": 1})",
"setRating": "aseta arvostelu",
"moveToNext": "siirry seuraavaan"
"moveToNext": "siirry seuraavaan",
"selectRangeOfItems": "valitse useita peräkkäisiä kohteita",
"goToCurrent": "siirry nykyiseen kohteeseen",
"createRadioStation": "luo $t(entity.radioStation, {\"count\": 1})",
"deleteRadioStation": "poista $t(entity.radioStation, {\"count\": 1})",
"selectAll": "valitse kaikki",
"downloadStarted": "aloitettiin lataamaan {{count}} kohdetta",
"moveUp": "siirrä ylöspäin",
"moveDown": "siirrä alaspäin",
"holdToMoveToTop": "pidä pohjassa siirtääksesi ylimmäksi",
"holdToMoveToBottom": "pidä pohjassa siirtääksesi alimmaksi",
"moveItems": "siirrä kohteet",
"shuffle": "sekoita",
"shuffleAll": "sekoita kaikki",
"shuffleSelected": "sekoita valitut",
"viewMore": "katso lisää",
"openApplicationDirectory": "avaa ohjelman kansio",
"addOrRemoveFromSelection": "lisää tai poista valinnasta"
},
"error": {
"remoteEnableError": "virhe tapahtui yrittäessä $t(common.enable) etäpalvelinta",
@@ -188,16 +227,24 @@
"remotePortWarning": "käynnistä palvelin uudestaan ottaaksesi uuden portin käyttöön",
"endpointNotImplementedError": "päätepiste {{endpoint}} ei ole toteutettu {{serverType}} varten",
"badValue": "kelpaamaton optio \"{{value}}\". tätä arvoa ei ole enää olemassa",
"notificationDenied": "luvat ilmouilmoituksia varten evättiin. tällä asetuksella ei ole vaikutusta"
"notificationDenied": "luvat ilmouilmoituksia varten evättiin. tällä asetuksella ei ole vaikutusta",
"invalidJson": "virheellinen JSON",
"multipleServerSaveQueueError": "soittojonossa on yksi tai useampi kappale, jotka eivät ole nykyiseltä palvelimelta. tätä ei ole tuettu",
"noNetwork": "palvelin ei ole käytettävissä",
"noNetworkDescription": "ei voida yhdistää palvelimeen",
"serverLockSingleServer": "lukitussa tilassa sallitaan vain yksi palvelin",
"settingsSyncError": "rendererin ja pääprosessin asetukset eivät täsmää. Käynnistä sovellus uudelleen, jotta muutokset otetaan käyttöön",
"playbackPausedDueToError": "toisto tauotettiin virheen takia",
"saveQueueFailed": "jonon tallentaminen epäonnistui"
},
"filter": {
"album": "$t(entity.album_one)",
"albumArtist": "$t(entity.albumArtist_one)",
"artist": "$t(entity.artist_one)",
"album": "$t(entity.album, {\"count\": 1})",
"albumArtist": "$t(entity.albumArtist, {\"count\": 1})",
"artist": "$t(entity.artist, {\"count\": 1})",
"biography": "biografia",
"bitrate": "bittinopeus",
"bpm": "lyöntiä minuutissa (bpm)",
"channels": "$t(common.channel_other)",
"channels": "$t(common.channel, {\"count\": 2})",
"title": "otsikko",
"playCount": "toistomäärä",
"dateAdded": "lisätty päivänä",
@@ -213,12 +260,12 @@
"search": "haku",
"trackNumber": "raita",
"isPublic": "on julkinen",
"genre": "$t(entity.genre_one)",
"genre": "$t(entity.genre, {\"count\": 1})",
"favorited": "suosikeissa",
"fromYear": "vuodelta",
"isRated": "on arvosteltu",
"recentlyPlayed": "äskettäin toistetut",
"albumCount": "$t(entity.album_other) määrä",
"albumCount": "$t(entity.album, {\"count\": 2}) määrä",
"disc": "levy",
"duration": "kesto",
"id": "tunnus",
@@ -233,7 +280,10 @@
"owner": "$t(common.owner)",
"path": "polku",
"songCount": "kappalemäärä",
"explicitStatus": "$t(common.explicitStatus)"
"explicitStatus": "$t(common.explicitStatus)",
"matchAnd": "ja",
"matchOr": "tai",
"sortName": "järjestä nimen mukaan"
},
"form": {
"addServer": {
@@ -249,40 +299,44 @@
"input_username": "käyttäjänimi",
"success": "palvelin lisätty onnistuneesti",
"input_preferInstantMix": "suosi pika-miksausta",
"input_preferInstantMixDescription": "käytä vain pika-miksausta saadaksesi samankaltaisia kappaleita. käytännöllinen jos sinulla on lisäosia, jotka muuttavat tätä käytöstä"
"input_preferInstantMixDescription": "käytä vain pika-miksausta saadaksesi samankaltaisia kappaleita. käytännöllinen jos sinulla on lisäosia, jotka muuttavat tätä käytöstä",
"input_preferRemoteUrl": "suosi julkista url-osoitetta",
"input_remoteUrl": "julkinen url-osoite",
"input_remoteUrlPlaceholder": "valinnainen: julkinen url-osoite ulkoisille toiminnoille"
},
"createPlaylist": {
"input_public": "julkinen",
"input_name": "$t(common.name)",
"input_owner": "$t(common.owner)",
"success": "$t(entity.playlist_one) luotu onnistuneesti",
"title": "luo $t(entity.playlist_one)",
"success": "$t(entity.playlist, {\"count\": 1}) luotu onnistuneesti",
"title": "luo $t(entity.playlist, {\"count\": 1})",
"input_description": "$t(common.description)"
},
"addToPlaylist": {
"input_skipDuplicates": "ohita kaksoiskappaleet",
"success": "$t(entity.trackWithCount, {\"count\": {{message}} }) lisätty $t(entity.playlistWithCount, {\"count\": {{numOfPlaylists}} })",
"title": "lisää soittolistalle $t(entity.playlist_one)",
"input_playlists": "$t(entity.playlist_other)",
"create": "luo $t(entity.playlist_one) {{playlist}}",
"searchOrCreate": "hae $t(entity.playlist_other) tai tyyppiä luodaksesi uuden"
"title": "lisää soittolistalle $t(entity.playlist, {\"count\": 1})",
"input_playlists": "$t(entity.playlist, {\"count\": 2})",
"create": "luo $t(entity.playlist, {\"count\": 1}) {{playlist}}",
"searchOrCreate": "hae $t(entity.playlist, {\"count\": 2}) tai tyyppiä luodaksesi uuden"
},
"updateServer": {
"success": "palvelin on päivitetty onnistuneesti",
"title": "päivitä palvelin"
},
"deletePlaylist": {
"success": "$t(entity.playlist_one) poistettu onnistuneesti",
"title": "poista $t(entity.playlist_one)",
"input_confirm": "kirjoita soittolistan $t(entity.playlist_one) nimi vahvistaaksesi"
"success": "$t(entity.playlist, {\"count\": 1}) poistettu onnistuneesti",
"title": "poista $t(entity.playlist, {\"count\": 1})",
"input_confirm": "kirjoita soittolistan $t(entity.playlist, {\"count\": 1}) nimi vahvistaaksesi"
},
"editPlaylist": {
"success": "$t(entity.playlist_one) päivitetty onnistuneesti",
"title": "muokkaa $t(entity.playlist_one)",
"publicJellyfinNote": "Jellyfin ei jostain syystä kerro onko soittolista julkinen vai ei. Jos haluat sen pysyvän julkisena, pidä seuraava valinta valittuna"
"success": "$t(entity.playlist, {\"count\": 1}) päivitetty onnistuneesti",
"title": "muokkaa $t(entity.playlist, {\"count\": 1})",
"publicJellyfinNote": "Jellyfin ei jostain syystä kerro onko soittolista julkinen vai ei. Jos haluat sen pysyvän julkisena, pidä seuraava valinta valittuna",
"editNote": "manuaalisia muokkauksia ei suositella suurille soittolistoille. haluatko varmasti hyväksyä riskin, että nykyinen soittolista ylikirjoitetaan ja tietoja voi hävitä?"
},
"lyricSearch": {
"input_artist": "$t(entity.artist_one)",
"input_artist": "$t(entity.artist, {\"count\": 1})",
"input_name": "$t(common.name)",
"title": "sanojen haku"
},
@@ -292,17 +346,53 @@
"description": "kuvaus",
"setExpiration": "aseta vanheneminen",
"success": "jakolinkki kopioitu leikepöydälle (tai klikkaa tästä avataksesi)",
"expireInvalid": "vanhetumisen pitää olla tulevaisuudessa"
"expireInvalid": "vanhetumisen pitää olla tulevaisuudessa",
"copyToClipboard": "Kopioi leikepöydälle: Ctrl+C, Enter",
"successMustClick": "jako luotu onnistuneesti. paina tästä avataksesi"
},
"queryEditor": {
"input_optionMatchAny": "sovita joku",
"input_optionMatchAll": "sovita kaikki",
"title": "kyselyeditori"
"title": "kyselyeditori",
"addRuleGroup": "lisää sääntöryhmä",
"removeRuleGroup": "poista sääntöryhmä",
"resetToDefault": "palauta oletukset",
"clearFilters": "poista suodattimet"
},
"privateMode": {
"enabled": "yksityinen tila käytössä, toistotila on nyt piilotettu ulkoisilta integraatioilta",
"disabled": "yksityinen tila poissa käytössä, toistotila on nyt näkyvillä ulkoisille integraatioille",
"title": "yksityinen tila"
},
"largeFetchConfirmation": {
"title": "lisää kohteet jonoon",
"description": "lisää kaikki suodatetun näkymän kohteet"
},
"createRadioStation": {
"success": "radiokanava luotu onnistuneesti",
"title": "luo radiokanava",
"input_homepageUrl": "kotisivun osoite",
"input_name": "nimi",
"input_streamUrl": "suoratoisto-osoite"
},
"lyricsExport": {
"export": "vie sanoitukset",
"input_synced": "vie ajastetut sanoitukset",
"input_offset": "$t(setting.lyricOffset)"
},
"saveQueue": {
"success": "toistojono tallennettu palvelimelle"
},
"shuffleAll": {
"title": "soita satunnainen",
"input_genre": "$t(entity.genre, {\"count\": 1})",
"input_limit": "kuinka monta kappaletta?",
"input_minYear": "vuodesta",
"input_maxYear": "vuoteen",
"input_played": "toiston suodatin",
"input_played_optionAll": "kaikki raidat",
"input_played_optionUnplayed": "vain toistamattomat raidat",
"input_played_optionPlayed": "vain toistetut raidat"
}
},
"setting": {
@@ -374,7 +464,6 @@
"customCss_description": "mukautettu CSS-sisältö. Huomautus: content- ja etä-URL-osoitteet ovat estettyjä ominaisuuksia. Esikatselu sisällöstäsi on alla. Lisäkenttiä, joita et ole määrittänyt, on näkyvissä puhdistuksen vuoksi",
"customCssNotice": "Varoitus: vaikka jonkinlainen puhdistus onkin tehty (url()- ja content:-komentojen estäminen), mukautetun css:n käyttäminen voi silti aiheuttaa riskejä muuttamalla käyttöliittymää",
"disableLibraryUpdateOnStartup": "poista uusimman version tarkistus käynnistyksen yhteydessä käytöstä",
"disableAutomaticUpdates": "poista automaattiset päivitykset käytöstä",
"discordIdleStatus": "näytä rich presencen käyttämätön tila",
"discordIdleStatus_description": "kun käytössä, päivitä tila kun soitin on käyttämättömänä",
"discordUpdateInterval_description": "päivitysväli sekunnteina (vähintään 15 sekunttia)",
@@ -437,7 +526,7 @@
"gaplessAudio": "tauoton toisto",
"transcodeFormat_description": "valitsee transkoodattavan formaatin. jätä tyhjäksi palvelimen valintaa varten",
"replayGainMode_optionNone": "$t(common.none)",
"replayGainMode_optionTrack": "$t(entity.track_one)",
"replayGainMode_optionTrack": "$t(entity.track, {\"count\": 1})",
"themeDark": "teema (tumma)",
"translationApiKey_description": "API-avain käännöstä varten (tukee vain globaalia palvelun palvelupistettä)",
"playbackStyle_description": "valitse toiston tyyli, jota käytetään soittimessa",
@@ -474,7 +563,7 @@
"replayGainClipping": "{{ReplayGain}} leikkaus",
"replayGainClipping_description": "Estää {{ReplayGain}}n aiheuttaman leikkauksen laskemalla vahvistusta automaatisesti",
"replayGainFallback": "{{ReplayGain}} palautus",
"replayGainMode_optionAlbum": "$t(entity.album_one)",
"replayGainMode_optionAlbum": "$t(entity.album, {\"count\": 1})",
"replayGainPreamp": "{{ReplayGain}} esivahvistus (dB)",
"scrobble_description": "skrobblaa toistot mediapalvelimellesi",
"replayGainPreamp_description": "säätää esivahvistuksen määrää {{ReplayGain}} arvoon",
@@ -540,7 +629,12 @@
"releaseChannel_optionLatest": "viimeisin",
"releaseChannel": "julkaisulinja",
"releaseChannel_description": "valitse vakaiden ja beetaversioiden välillä automaattisille päivityksille",
"discordDisplayType_artistname": "artistin nimi / artistien nimet"
"discordDisplayType_artistname": "artistin nimi / artistien nimet",
"autoDJ": "auto DJ",
"autoDJ_description": "lisää automaattisesti samanlaisia kappaleita jonoon",
"autoDJ_itemCount": "kohteiden määrä",
"autoDJ_itemCount_description": "jonoon lisättäväksi yritettyjen kohteiden määrä, kun auto DJ on käytössä",
"autoDJ_timing": "ajastus"
},
"page": {
"itemDetail": {
@@ -549,31 +643,35 @@
"openFile": "näytä kappale tiedostonhallinnassa"
},
"albumArtistList": {
"title": "$t(entity.albumArtist_other)"
"title": "$t(entity.albumArtist, {\"count\": 2})"
},
"albumDetail": {
"moreFromArtist": "siirrä kohteesta $t(entity.artist_one)",
"moreFromArtist": "siirrä kohteesta $t(entity.artist, {\"count\": 1})",
"moreFromGeneric": "listää kohteesta {{item}}",
"released": "julkaistu"
},
"albumList": {
"artistAlbums": "artistin {{artist}} albumit",
"genreAlbums": "\"{{genre}}\"$t(entity.album_other)",
"title": "$t(entity.album_other)"
"genreAlbums": "\"{{genre}}\"$t(entity.album, {\"count\": 2})",
"title": "$t(entity.album, {\"count\": 2})"
},
"appMenu": {
"goBack": "mene takaisin",
"openBrowserDevtools": "avaa selaimen kehitystyökalut",
"quit": "$t(common.quit)",
"selectServer": "valitse palvelin",
"settings": "$t(common.setting_other)",
"settings": "$t(common.setting, {\"count\": 2})",
"expandSidebar": "laajenna sivupalkki",
"goForward": "mene eteenpäin",
"manageServers": "hallitse palvelimia",
"collapseSidebar": "kutista sivupalkki",
"version": "versio {{version}}",
"privateModeOff": "käännä yksityinen tila pois käytöstä",
"privateModeOn": "käännä yksityinen tila käyttöön"
"privateModeOn": "käännä yksityinen tila käyttöön",
"commandPalette": "avaa komentopaletti",
"selectMusicFolder": "valitse musiikkikansio",
"noMusicFolder": "musiikkikansiota ei ole valittu",
"multipleMusicFolders": "{{count}} musiikkikansio(ta) valittu"
},
"contextMenu": {
"playSimilarSongs": "$t(player.playSimilarSongs)",
@@ -598,30 +696,53 @@
"addLast": "$t(player.addLast)",
"moveToNext": "$t(action.moveToNext)",
"removeFromQueue": "$t(action.removeFromQueue)",
"goToAlbum": "mene $t(entity.album_one)",
"goToAlbumArtist": "mene $t(entity.albumArtist_one)"
"goToAlbum": "mene $t(entity.album, {\"count\": 1})",
"goToAlbumArtist": "mene $t(entity.albumArtist, {\"count\": 1})",
"moveItems": "$t(action.moveItems)",
"goTo": "mene"
},
"sidebar": {
"albumArtists": "$t(entity.albumArtist_other)",
"albums": "$t(entity.album_other)",
"settings": "$t(common.setting_other)",
"shared": "$t(entity.playlist_other) jaettu",
"tracks": "$t(entity.track_other)",
"artists": "$t(entity.artist_other)",
"folders": "$t(entity.folder_other)",
"genres": "$t(entity.genre_other)",
"albumArtists": "$t(entity.albumArtist, {\"count\": 2})",
"albums": "$t(entity.album, {\"count\": 2})",
"settings": "$t(common.setting, {\"count\": 2})",
"shared": "$t(entity.playlist, {\"count\": 2}) jaettu",
"tracks": "$t(entity.track, {\"count\": 2})",
"artists": "$t(entity.artist, {\"count\": 2})",
"folders": "$t(entity.folder, {\"count\": 2})",
"genres": "$t(entity.genre, {\"count\": 2})",
"home": "$t(common.home)",
"nowPlaying": "nyt soi",
"playlists": "$t(entity.playlist_other)",
"playlists": "$t(entity.playlist, {\"count\": 2})",
"search": "$t(common.search)",
"myLibrary": "oma kirjasto"
"myLibrary": "oma kirjasto",
"collections": "kokoelmat",
"favorites": "$t(entity.favorite, {\"count\": 2})",
"radio": "$t(entity.radioStation, {\"count\": 2})"
},
"setting": {
"generalTab": "yleinen",
"windowTab": "ikkuna",
"hotkeysTab": "pikanäppäimet",
"playbackTab": "toisto",
"advanced": "edistyneet"
"advanced": "edistyneet",
"analytics": "tilastot",
"updates": "päivitä",
"cache": "välimuisti",
"application": "aplikaatio",
"queryBuilder": "kyselynrakentaja",
"theme": "teema",
"controls": "säätimet",
"sidebar": "sivupalkki",
"remote": "kauko-ohjain",
"exportImport": "tuo/vie",
"scrobble": "scrobblata",
"audio": "audio",
"lyrics": "sanat",
"lyricsDisplay": "sanojen näyttö",
"transcoding": "transkoodaus",
"discord": "discord",
"logger": "lokittaja",
"playerFilters": "soittimen suodattimet"
},
"fullscreenPlayer": {
"upNext": "seuraavaksi",
@@ -647,9 +768,9 @@
"related": "liittyvät"
},
"genreList": {
"showAlbums": "näytä $t(entity.genre_one) $t(entity.album_other)",
"showTracks": "näytä $t(entity.genre_one) $t(entity.track_other)",
"title": "$t(entity.genre_other)"
"showAlbums": "näytä $t(entity.genre, {\"count\": 1}) $t(entity.album, {\"count\": 2})",
"showTracks": "näytä $t(entity.genre, {\"count\": 1}) $t(entity.track, {\"count\": 2})",
"title": "$t(entity.genre, {\"count\": 2})"
},
"globalSearch": {
"commands": {
@@ -665,21 +786,28 @@
"title": "$t(common.home)",
"mostPlayed": "eniten soitetut",
"newlyAdded": "hiljattain lisätyt julkaisut",
"recentlyReleased": "hiljattain julkaistu"
"recentlyReleased": "hiljattain julkaistu",
"genres": "$t(entity.genre, {\"count\": 2})"
},
"albumArtistDetail": {
"about": "{{artist}}{sta/stä",
"about": "{{artist}}",
"viewDiscography": "katsele diskografiaa",
"relatedArtists": "liittyvät $t(entity.artist_other)",
"relatedArtists": "liittyvät $t(entity.artist, {\"count\": 2})",
"appearsOn": "esiintyy",
"topSongs": "parhaat kappaleet",
"topSongsFrom": "parhaat kappaleet albumilta {{title}}",
"recentReleases": "hiljattaiset julkaisut",
"viewAll": "katsele kaikkia",
"viewAllTracks": "katsele kaikkia $t(entity.track_other)"
"viewAllTracks": "katsele kaikkia $t(entity.track, {\"count\": 2})",
"favoriteSongs": "suosikki kappaleet",
"groupingTypeAll": "kaikki julkaisun tyypit",
"groupingTypePrimary": "ensisijaiset tyypin julkaisut",
"topSongsCommunity": "yhteisö",
"topSongsPersonal": "henkilökohtainen",
"favoriteSongsFrom": "suosikkikappale {{title}}:sta"
},
"playlistList": {
"title": "$t(entity.playlist_other)"
"title": "$t(entity.playlist, {\"count\": 2})"
},
"manageServers": {
"title": "hallitse palvelimia",
@@ -694,13 +822,35 @@
},
"trackList": {
"artistTracks": "artistin {{artist}} kappaleet",
"genreTracks": "\"{{genre}}\" $t(entity.track_other)",
"title": "$t(entity.track_other)"
"genreTracks": "\"{{genre}}\" $t(entity.track, {\"count\": 2})",
"title": "$t(entity.track, {\"count\": 2})"
},
"radioList": {
"title": "radiokanavat"
},
"releasenotes": {
"commitsSinceStable": "muutokset {{stable}} verrattuna",
"noNewCommits": "ei uusia muutoksia tällä välillä",
"noStableReleaseToCompare": "vertailukelpoista vakaata versiota ei löytynyt"
},
"favorites": {
"title": "$t(entity.favorite, {\"count\": 2})"
},
"windowBar": {
"paused": "(Tauotettu) ",
"privateMode": "(Yksityinen tila)"
},
"folderList": {
"title": "$t(entity.folder, {\"count\": 2})"
},
"collections": {
"overrideExisting": "syrjäytä olemassa olevat",
"saveAsCollection": "tallenna kokoelmana"
}
},
"player": {
"addLast": "lisää viimeinen",
"addNext": "lisää seuraava",
"addLast": "viimeinen",
"addNext": "seuraava",
"favorite": "suosikki",
"queue_moveToTop": "siirrä valittu alas",
"queue_remove": "poista valittu",
@@ -719,7 +869,7 @@
"repeat_all": "kertaa kaikki",
"playbackFetchCancel": "tämä vie aikaa... sulje ilmoitus peruaksesi",
"mute": "mykistä",
"shuffle": "soita sekoitettuna",
"shuffle": "soita (sekoitettuna)",
"next": "seuraava",
"play": "toista",
"playbackFetchInProgress": "ladataan kappaleita…",
@@ -729,7 +879,25 @@
"playSimilarSongs": "toista samanlaisia kappaleita",
"repeat_off": "kertaus pois päältä",
"shuffle_off": "sekoitus pois päältä",
"toggleFullscreenPlayer": "vaihda kokoruudun soittimeen"
"toggleFullscreenPlayer": "vaihda kokoruudun soittimeen",
"addLastShuffled": "viimeinen (sekoitettu)",
"addNextShuffled": "seuraava (sekoitettu)",
"albumRadio": "albumiradio",
"artistRadio": "artistiradio",
"holdToShuffle": "pidä sekoittaaksesi",
"lyrics": "sanat",
"restoreQueueFromServer": "palauta tiedustelu palvelimelta",
"saveQueueToServer": "tallenna tiedustelu palvelimelle",
"trackRadio": "raitaradio",
"sleepTimer": "uniajastin",
"sleepTimer_endOfSong": "nykyisen kappaleen loppu",
"sleepTimer_minutes": "{{count}} min",
"sleepTimer_hours": "{{count}} t",
"sleepTimer_custom": "mukautettu",
"sleepTimer_off": "pois",
"sleepTimer_timeRemaining": "{{time}} jäljellä",
"sleepTimer_setCustom": "aseta ajastin",
"sleepTimer_cancel": "peruuta ajastin"
},
"table": {
"config": {
@@ -746,14 +914,14 @@
"label": {
"channels": "$t(common.channel_other)",
"trackNumber": "raidan numero",
"album": "$t(entity.album_one)",
"album": "$t(entity.album, {\"count\": 1})",
"actions": "$t(common.action_other)",
"codec": "$t(common.codec)",
"dateAdded": "lisäyspäivämäärä",
"owner": "$t(common.owner)",
"path": "$t(common.path)",
"albumArtist": "$t(entity.albumArtist_one)",
"artist": "$t(entity.artist_one)",
"albumArtist": "$t(entity.albumArtist, {\"count\": 1})",
"artist": "$t(entity.artist, {\"count\": 1})",
"discNumber": "levyn numero",
"duration": "$t(common.duration)",
"favorite": "$t(common.favorite)",
@@ -764,12 +932,12 @@
"biography": "$t(common.biography)",
"bitrate": "$t(common.bitrate)",
"bpm": "$t(common.bpm)",
"genre": "$t(entity.genre_one)",
"genre": "$t(entity.genre, {\"count\": 1})",
"playCount": "toistojen lukumäärä",
"rating": "$t(common.rating)",
"releaseDate": "julkaisupäivämäärä",
"size": "$t(common.size)",
"songCount": "$t(entity.track_other)",
"songCount": "$t(entity.track, {\"count\": 2})",
"title": "$t(common.title)",
"year": "$t(common.year)"
},
@@ -782,7 +950,7 @@
"column": {
"releaseYear": "vuosi",
"bpm": "bpm",
"artist": "$t(entity.artist_one)",
"artist": "$t(entity.artist, {\"count\": 1})",
"biography": "biografia",
"dateAdded": "lisäyspäivämäärä",
"album": "albumi",
@@ -790,17 +958,17 @@
"lastPlayed": "viimeksi toistettu",
"path": "polku",
"size": "$t(common.size)",
"songCount": "$t(entity.track_other)",
"songCount": "$t(entity.track, {\"count\": 2})",
"title": "nimi",
"trackNumber": "raita",
"codec": "$t(common.codec)",
"comment": "kommentti",
"albumCount": "$t(entity.album_other)",
"albumCount": "$t(entity.album, {\"count\": 2})",
"bitrate": "bittinopeus",
"channels": "$t(common.channel_other)",
"discNumber": "levy",
"favorite": "suosikki",
"genre": "$t(entity.genre_one)",
"genre": "$t(entity.genre, {\"count\": 1})",
"playCount": "toistoja",
"rating": "arvostelu",
"releaseDate": "julkaisupäivämäärä"
@@ -808,7 +976,7 @@
},
"releaseType": {
"primary": {
"album": "$t(entity.album_one)",
"album": "$t(entity.album, {\"count\": 1})",
"broadcast": "lähetys",
"ep": "EP",
"other": "muu",
@@ -828,5 +996,36 @@
"soundtrack": "elokuvamusiikki",
"spokenWord": "puhetta"
}
},
"datetime": {
"minuteShort": "m",
"secondShort": "s",
"hourShort": "t",
"dayShort": "p"
},
"filterOperator": {
"after": "jälkeen",
"afterDate": "jälkeen (päivän)",
"before": "ennen",
"beforeDate": "ennen (päivää)",
"contains": "sisältää",
"endsWith": "loppuu",
"inPlaylist": "on",
"inTheLast": "on viimeisenä",
"inTheRange": "on välillä",
"inTheRangeDate": "on valitulla aikavälillä (päivä)",
"is": "on",
"isNot": "ei ole",
"isGreaterThan": "enemmän kuin",
"isLessThan": "vähemmän kuin",
"matchesRegex": "vastaa säännöllistä lausetta (regex)",
"notContains": "ei sisällä",
"notInPlaylist": "ei ole",
"notInTheLast": "ei ole viimeisenä",
"startsWith": "alkaa"
},
"queryBuilder": {
"standardTags": "standardi tagit",
"customTags": "mukautetut tagit"
}
}
+387 -130
View File
@@ -1,12 +1,12 @@
{
"player": {
"repeat_all": "répète tout",
"repeat_all": "répèter tout",
"stop": "stop",
"repeat": "répéter",
"queue_remove": "effacer la sélection",
"playRandom": "lecture aléatoire",
"skip": "sauter",
"previous": "précédant",
"previous": "précédent",
"toggleFullscreenPlayer": "plein écran",
"skip_back": "reculer",
"favorite": "favori",
@@ -23,7 +23,7 @@
"muted": "en sourdine",
"queue_moveToTop": "déplacer la sélection vers le bas",
"queue_moveToBottom": "déplacer la sélection vers le haut",
"shuffle_off": "aléatoire désactivée",
"shuffle_off": "aléatoire désactivé",
"addLast": "dernier",
"mute": "muet",
"skip_forward": "avancer",
@@ -33,32 +33,40 @@
"viewQueue": "voir la file d'attente",
"addLastShuffled": "dernier (mélangé)",
"addNextShuffled": "prochain (mélangé)",
"queueType": "type de file d'attente",
"queueType_default": "défaut",
"queueType_priority": "priorité",
"holdToShuffle": "maintenir pour mélanger",
"lyrics": "paroles",
"restoreQueueFromServer": "restaurer la file d'attente depuis le serveur",
"saveQueueToServer": "enregistrer la file d'attente sur le serveur"
"saveQueueToServer": "enregistrer la file d'attente sur le serveur",
"artistRadio": "radio de l'artiste",
"trackRadio": "radio du titre",
"sleepTimer": "minuterie de veille",
"sleepTimer_endOfSong": "fin du titre en cours",
"sleepTimer_minutes": "{{count}} min",
"sleepTimer_hours": "{{count}} h",
"sleepTimer_custom": "personnalisé",
"sleepTimer_off": "éteint",
"sleepTimer_timeRemaining": "{{time}} restante(s)",
"sleepTimer_setCustom": "définir le minuteur",
"sleepTimer_cancel": "annuler le minuteur"
},
"action": {
"editPlaylist": "éditer $t(entity.playlist_one)",
"editPlaylist": "éditer $t(entity.playlist, {\"count\": 1})",
"goToPage": "aller à la page",
"moveToTop": "déplacer en haut",
"clearQueue": "vider la file d'attente",
"addToFavorites": "ajouter aux $t(entity.favorite_other)",
"addToPlaylist": "ajouter à $t(entity.playlist_one)",
"createPlaylist": "créer $t(entity.playlist_one)",
"removeFromPlaylist": "supprimer des $t(entity.playlist_one)",
"viewPlaylists": "voir $t(entity.playlist_other)",
"addToFavorites": "ajouter aux $t(entity.favorite, {\"count\": 2})",
"addToPlaylist": "ajouter à $t(entity.playlist, {\"count\": 1})",
"createPlaylist": "créer $t(entity.playlist, {\"count\": 1})",
"removeFromPlaylist": "supprimer des $t(entity.playlist, {\"count\": 1})",
"viewPlaylists": "voir $t(entity.playlist, {\"count\": 2})",
"refresh": "$t(common.refresh)",
"deletePlaylist": "supprimer de $t(entity.playlist_one)",
"deletePlaylist": "supprimer de $t(entity.playlist, {\"count\": 1})",
"removeFromQueue": "retirer de la file d'attente",
"deselectAll": "désélectionner tout",
"moveToBottom": "déplacer en bas",
"setRating": "noter",
"toggleSmartPlaylistEditor": "basculer l'éditeur de $t(entity.smartPlaylist)",
"removeFromFavorites": "retirer des $t(entity.favorite_other)",
"removeFromFavorites": "retirer des $t(entity.favorite, {\"count\": 2})",
"openIn": {
"lastfm": "Ouvrir dans Last.fm",
"musicbrainz": "Ouvrir dans MusicBrainz"
@@ -72,10 +80,14 @@
"viewMore": "voir plus",
"moveUp": "monter",
"moveDown": "descendre",
"holdToMoveToTop": "Maintenir pour déplacer en haut",
"holdToMoveToBottom": "Maintenir pour déplacer en bas",
"createRadioStation": "créer $t(entity.radioStation_one)",
"deleteRadioStation": "supprimer $t(entity.radioStation_one)"
"holdToMoveToTop": "maintenir pour déplacer en haut",
"holdToMoveToBottom": "maintenir pour déplacer en bas",
"createRadioStation": "créer $t(entity.radioStation, {\"count\": 1})",
"deleteRadioStation": "supprimer $t(entity.radioStation, {\"count\": 1})",
"addOrRemoveFromSelection": "ajouter ou supprimer de la sélection",
"selectRangeOfItems": "sélectionner une plage d'entrées",
"selectAll": "tout sélectionner",
"openApplicationDirectory": "ouvrir le répertoire de l'application"
},
"common": {
"backward": "en arrière",
@@ -90,7 +102,7 @@
"left": "gauche",
"save": "enregistrer",
"right": "droite",
"currentSong": "$t(entity.track_one) actuelle",
"currentSong": "$t(entity.track, {\"count\": 1}) actuelle",
"collapse": "réduire",
"trackNumber": "piste",
"descending": "décroisant",
@@ -122,7 +134,7 @@
"forceRestartRequired": "redémarrer pour appliquer les changements… fermer la notification pour redémarrer",
"setting": "paramètre",
"setting_one": "paramètre",
"setting_many": "",
"setting_many": "paramètres",
"setting_other": "paramètres",
"version": "version",
"title": "titre",
@@ -150,7 +162,7 @@
"none": "aucun",
"menu": "menu",
"restartRequired": "redémarrage requis",
"previousSong": "$t(entity.track_one) précédente",
"previousSong": "$t(entity.track, {\"count\": 1}) précédente",
"noResultsFromQuery": "la requête n'a retourné aucun résultat",
"quit": "quitter",
"expand": "étendre",
@@ -179,7 +191,7 @@
"viewReleaseNotes": "voir la note de version",
"sampleRate": "taux d'échantillonnage",
"bitDepth": "format d'échantillonnage",
"explicitStatus": "status explicite",
"explicitStatus": "statut explicite",
"explicit": "explicite",
"clean": "propre",
"private": "privé",
@@ -195,7 +207,14 @@
"tableColumns": "colonnes du tableau",
"itemsMore": "plus {{count}}",
"view": "vue",
"noFilters": "aucun filtre configuré"
"noFilters": "aucun filtre configuré",
"countSelected": "{{count}} sélectionnée",
"example": "exemple",
"mood": "humeur",
"retry": "réessayer",
"filter_single": "unique",
"filter_multiple": "multiple",
"rename": "renommer"
},
"error": {
"remotePortWarning": "redémarrer le serveur pour appliquer le nouveau port",
@@ -219,15 +238,19 @@
"loginRateError": "trop de tentative de connexion, merci de réessayer dans quelques secondes",
"openError": "impossible d'ouvrir le fichier",
"networkError": "une erreur de réseau est survenue",
"badAlbum": "vous voyez cette page parce que cette chanson ne fait pas parti d'un album. vous rencontrez probablement cette erreur si vous avez une chanson qui n'est pas dans votre répertoire de musique. Jellyfin gère les chansons uniquement si elles sont dans un sous-dossier, qui est lui-même dans un dossier \"Musique(s)\"",
"badValue": "option {{value}} invalide. Cette valeur n'existe plus",
"badAlbum": "vous voyez cette page parce que ce titre ne fait pas parti d'un album. vous rencontrez probablement cette erreur si vous avez un titre à la racine de votre dossier musique. Jellyfin gère les chansons uniquement si elles sont dans un sous-dossier, qui est lui-même dans un dossier \"Musique(s)\"",
"badValue": "option {{value}} invalide. cette valeur n'existe plus",
"notificationDenied": "les autorisations pour les notifications ont été refusées. ce paramètre n'a aucun effet",
"multipleServerSaveQueueError": "la file d'attente de lecture contient un ou plusieurs morceaux qui ne proviennent pas du serveur actuel. Ceci n'est pas prise en charge",
"saveQueueFailed": "échec de l'enregistrement de la file d'attente",
"settingsSyncError": "des incohérences ont été détectées entre les paramètres du moteur de rendu et ceux du processus principal. redémarrez l'application pour appliquer les modifications"
"settingsSyncError": "des incohérences ont été détectées entre les paramètres du moteur de rendu et ceux du processus principal. redémarrez l'application pour appliquer les modifications",
"noNetwork": "serveur indisponible",
"noNetworkDescription": "impossible de se connecter à ce serveur",
"invalidJson": "JSON invalide",
"serverLockSingleServer": "un seul serveur est autorisé quand le serveur est verrouillé"
},
"filter": {
"mostPlayed": "plus joués",
"mostPlayed": "les plus joués",
"playCount": "nombre d'écoutes",
"isCompilation": "est une compilation",
"recentlyPlayed": "récemment joué",
@@ -244,13 +267,13 @@
"communityRating": "note de la communauté",
"path": "chemin",
"favorited": "favori",
"isRecentlyPlayed": "est récemment joué",
"isRecentlyPlayed": "a été joué récemment",
"isFavorited": "est favori",
"bpm": "BPM",
"releaseYear": "année de sortie",
"disc": "disque",
"biography": "biographie",
"songCount": "nombre de chansons",
"songCount": "nombre de titre",
"duration": "durée",
"random": "aléatoire",
"lastPlayed": "écouté récemment",
@@ -258,36 +281,40 @@
"fromYear": "depuis l'année",
"criticRating": "note des critiques",
"trackNumber": "piste",
"albumArtist": "$t(entity.albumArtist_one)",
"albumArtist": "$t(entity.albumArtist, {\"count\": 1})",
"comment": "commentaire",
"recentlyUpdated": "mis à jour récemment",
"channels": "$t(common.channel_other)",
"channels": "$t(common.channel, {\"count\": 2})",
"owner": "$t(common.owner)",
"genre": "$t(entity.genre_one)",
"albumCount": "$t(entity.album_other) total",
"genre": "$t(entity.genre, {\"count\": 1})",
"albumCount": "$t(entity.album, {\"count\": 2}) total",
"id": "id",
"artist": "$t(entity.artist_one)",
"artist": "$t(entity.artist, {\"count\": 1})",
"isPublic": "est public",
"album": "$t(entity.album_one)",
"explicitStatus": "$t(common.explicitStatus)"
"album": "$t(entity.album, {\"count\": 1})",
"explicitStatus": "$t(common.explicitStatus)",
"sortName": "tri par nom",
"matchAnd": "et",
"matchOr": "ou"
},
"page": {
"sidebar": {
"nowPlaying": "lecture en cours",
"playlists": "$t(entity.playlist_other)",
"playlists": "$t(entity.playlist, {\"count\": 2})",
"search": "$t(common.search)",
"tracks": "$t(entity.track_other)",
"albums": "$t(entity.album_other)",
"genres": "$t(entity.genre_other)",
"folders": "$t(entity.folder_other)",
"settings": "$t(common.setting_other)",
"tracks": "$t(entity.track, {\"count\": 2})",
"albums": "$t(entity.album, {\"count\": 2})",
"genres": "$t(entity.genre, {\"count\": 2})",
"folders": "$t(entity.folder, {\"count\": 2})",
"settings": "$t(common.setting, {\"count\": 2})",
"home": "$t(common.home)",
"artists": "$t(entity.artist_other)",
"albumArtists": "$t(entity.albumArtist_other)",
"shared": "partagé $t(entity.playlist_other)",
"artists": "$t(entity.artist, {\"count\": 2})",
"albumArtists": "$t(entity.albumArtist, {\"count\": 2})",
"shared": "$t(entity.playlist, {\"count\": 2}) partagée",
"myLibrary": "Bibliothèque",
"favorites": "$t(entity.favorite_other)",
"radio": "$t(entity.radioStation_other)"
"favorites": "$t(entity.favorite, {\"count\": 2})",
"radio": "$t(entity.radioStation, {\"count\": 2})",
"collections": "collections"
},
"fullscreenPlayer": {
"config": {
@@ -304,7 +331,7 @@
"lyricGap": "espacement des lettres",
"dynamicIsImage": "activer l'image d'arrière-plan",
"dynamicImageBlur": "intensité du flou sur l'image d'arrière-plan",
"lyricOffset": "paroles décalées (ms)"
"lyricOffset": "décalage des paroles (ms)"
},
"upNext": "à suivre",
"lyrics": "paroles",
@@ -321,14 +348,14 @@
"goBack": "retour arrière",
"goForward": "avancer",
"version": "version {{version}}",
"settings": "$t(common.setting_other)",
"settings": "$t(common.setting, {\"count\": 2})",
"quit": "$t(common.quit)",
"privateModeOff": "désactiver le mode privé",
"privateModeOn": "activer le mode privé",
"commandPalette": "ouvrir la palette de commandes",
"selectMusicFolder": "sélectionner le dossier musique",
"noMusicFolder": "aucun dossier musique de sélectionner",
"multipleMusicFolders": "{{count}} dossiers musique sélectionner"
"multipleMusicFolders": "{{count}} dossiers musique sélectionnés"
},
"home": {
"mostPlayed": "Les plus joués",
@@ -337,10 +364,10 @@
"recentlyPlayed": "Joués récemment",
"title": "$t(common.home)",
"recentlyReleased": "Sortis récemment",
"genres": "$t(entity.genre_other)"
"genres": "$t(entity.genre, {\"count\": 2})"
},
"albumDetail": {
"moreFromArtist": "plus de $t(entity.artist_one)",
"moreFromArtist": "plus de $t(entity.artist, {\"count\": 1})",
"moreFromGeneric": "plus de {{item}}",
"released": "publié"
},
@@ -348,7 +375,7 @@
"generalTab": "général",
"hotkeysTab": "raccourcis",
"windowTab": "fenêtre",
"playbackTab": "lecteur",
"playbackTab": "lecture",
"advanced": "avancé",
"analytics": "analytique",
"updates": "mise à jour",
@@ -366,7 +393,8 @@
"transcoding": "transcodage",
"discord": "discord",
"logger": "logger",
"playerFilters": "filtres du lecteur"
"playerFilters": "filtres du lecteur",
"lyricsDisplay": "affichage des paroles"
},
"globalSearch": {
"commands": {
@@ -399,42 +427,48 @@
"download": "télécharger",
"playShuffled": "$t(player.shuffle)",
"moveToNext": "$t(action.moveToNext)",
"goToAlbumArtist": "aller à l'$t(entity.albumArtist_one)",
"goToAlbum": "aller à l'$t(entity.album_one)",
"goToAlbumArtist": "aller à l'$t(entity.albumArtist, {\"count\": 1})",
"goToAlbum": "aller à l'$t(entity.album, {\"count\": 1})",
"moveItems": "$t(action.moveItems)",
"goTo": "aller à"
},
"albumArtistList": {
"title": "$t(entity.albumArtist_other)"
"title": "$t(entity.albumArtist, {\"count\": 2})"
},
"genreList": {
"title": "$t(entity.genre_other)",
"showAlbums": "afficher $t(entity.genre_one) $t(entity.album_other)",
"showTracks": "afficher $t(entity.genre_one) $t(entity.track_other)"
"title": "$t(entity.genre, {\"count\": 2})",
"showAlbums": "afficher $t(entity.genre, {\"count\": 1}) $t(entity.album, {\"count\": 2})",
"showTracks": "afficher $t(entity.genre, {\"count\": 1}) $t(entity.track, {\"count\": 2})"
},
"trackList": {
"title": "$t(entity.track_other)",
"title": "$t(entity.track, {\"count\": 2})",
"artistTracks": "pistes par {{artist}}",
"genreTracks": "'{{genre}}' $t(entity.track_other)"
"genreTracks": "\"{{genre}}\" $t(entity.track, {\"count\": 2})"
},
"playlistList": {
"title": "$t(entity.playlist_other)"
"title": "$t(entity.playlist, {\"count\": 2})"
},
"albumList": {
"title": "$t(entity.album_other)",
"title": "$t(entity.album, {\"count\": 2})",
"artistAlbums": "albums par {{artist}}",
"genreAlbums": "\"{{genre}}\" $t(entity.album_other)"
"genreAlbums": "\"{{genre}}\" $t(entity.album, {\"count\": 2})"
},
"albumArtistDetail": {
"about": "À propos de {{artist}}",
"appearsOn": "apparaît sur",
"topSongsFrom": "meilleurs titres de {{title}}",
"viewAll": "voir tout",
"viewAllTracks": "voir tout $t(entity.track_other)",
"viewAllTracks": "voir tout $t(entity.track, {\"count\": 2})",
"recentReleases": "sorties récentes",
"viewDiscography": "voir la discographie",
"relatedArtists": "$t(entity.artist_other) similaires",
"topSongs": "meilleurs titres"
"relatedArtists": "$t(entity.artist, {\"count\": 2}) similaires",
"topSongs": "meilleurs titres",
"groupingTypeAll": "toutes les types de sortie",
"favoriteSongs": "titres préférées",
"groupingTypePrimary": "types de parution principale",
"topSongsCommunity": "communauté",
"topSongsPersonal": "personnel",
"favoriteSongsFrom": "titres favori de {{title}}"
},
"itemDetail": {
"copyPath": "copier le chemin dans le presse-papiers",
@@ -442,7 +476,7 @@
"copiedPath": "chemin copié avec succès"
},
"playlist": {
"reorder": "le tri n'est possible que lors du tri par identifiant"
"reorder": "la réorganisation n'est possible que lors du tri par identifiant"
},
"manageServers": {
"serverDetails": "détails du serveur",
@@ -453,17 +487,30 @@
"editServerDetailsTooltip": "modifier les détails du serveur"
},
"favorites": {
"title": "$t(entity.favorite_other)"
"title": "$t(entity.favorite, {\"count\": 2})"
},
"folderList": {
"title": "$t(entity.folder_other)"
"title": "$t(entity.folder, {\"count\": 2})"
},
"radioList": {
"title": "stations radio"
},
"releasenotes": {
"commitsSinceStable": "commits depuis {{stable}}",
"noNewCommits": "pas de nouveaux commits dans cette plage",
"noStableReleaseToCompare": "aucune version stable disponible avec laquelle comparer"
},
"windowBar": {
"paused": "(Pause) ",
"privateMode": "(Mode Privé)"
},
"collections": {
"overrideExisting": "ignorer l'existant",
"saveAsCollection": "enregistrer comme collection"
}
},
"setting": {
"audioDevice_description": "sélectionnez le périphérique audio à utiliser pour la lecture (lecteur Web uniquement)",
"audioDevice_description": "sélectionnez le périphérique audio à utiliser pour la lecture",
"audioExclusiveMode_description": "activer le mode de sortie exclusif. Dans ce mode, le système est généralement verrouillé et seul mpv pourra émettre de l'audio",
"audioPlayer_description": "sélectionnez le lecteur audio à utiliser pour la lecture",
"crossfadeDuration_description": "définit la durée du fondu enchaîné",
@@ -476,13 +523,12 @@
"applicationHotkeys_description": "configurer les raccourcis clavier dapplication. activer la case à cocher pour définir comme raccourci clavier global (bureau uniquement)",
"crossfadeStyle_description": "sélectionnez le style du fondu enchaîné à utiliser pour le lecteur audio",
"customFontPath": "chemin de police personnalisé",
"disableAutomaticUpdates": "désactiver les mises à jour automatiques",
"customFontPath_description": "définit le chemin de police personnalisé pour l'application",
"remotePort_description": "définit le port du serveur de contrôle à distance",
"hotkey_skipBackward": "reculer",
"hotkey_playbackPause": "pause",
"hotkey_volumeUp": "monter le volume",
"discordIdleStatus_description": "quand activé, mettre à jour le status pendant que le lecteur est inactif",
"discordIdleStatus_description": "quand activé, mettre à jour le statut pendant que le lecteur est inactif",
"showSkipButtons": "affiche les boutons suivants et précédents",
"minimumScrobblePercentage": "durée minimal du scobble (pourcentage)",
"lyricFetch": "récupérer les paroles depuis internet",
@@ -534,7 +580,7 @@
"playbackStyle": "style de lecture",
"hotkey_toggleShuffle": "basculer la lecture aléatoire",
"playbackStyle_description": "sélectionnez le style de lecture à utiliser pour le lecteur audio",
"discordRichPresence_description": "active l'état de lecteur dans le status d'activité {{discord}}. Les images clés sont : {{icon}}, {{playing}}, et {{paused}}",
"discordRichPresence_description": "active l'état de lecteur dans le statut d'activité {{discord}}. Les images clés sont : {{icon}}, {{playing}}, et {{paused}}",
"mpvExecutablePath": "chemin de l'exécutable mpv",
"hotkey_rate2": "noter 2 étoiles",
"playButtonBehavior_description": "définit le comportement par défaut du bouton Jouer/Pause, lors de l'ajout de titres à la file d'attente",
@@ -554,7 +600,7 @@
"remotePort": "port du serveur de contrôle à distance",
"hotkey_playbackNext": "piste suivante",
"lyricFetch_description": "récupère les paroles depuis divers source d'internet",
"lyricFetchProvider_description": "sélectionnez le fournisseur auprès desquels récupérer les paroles. l'ordre des fournisseurs et l'ordre dans lequel ils seront interrogés",
"lyricFetchProvider_description": "sélectionnez les fournisseurs auprès desquels récupérer les paroles",
"globalMediaHotkeys_description": "active ou désactive l'utilisation des raccourcis clavier multimédia système pour contrôler la lecture",
"followLyric": "suivre les paroles actuelles",
"discordIdleStatus": "afficher l'état d'inactivité dans le statut de l'activité",
@@ -606,8 +652,8 @@
"playButtonBehavior_optionPlay": "$t(player.play)",
"replayGainMode_optionNone": "$t(common.none)",
"playButtonBehavior_optionAddLast": "$t(player.addLast)",
"replayGainMode_optionAlbum": "$t(entity.album_one)",
"replayGainMode_optionTrack": "$t(entity.track_one)",
"replayGainMode_optionAlbum": "$t(entity.album, {\"count\": 1})",
"replayGainMode_optionTrack": "$t(entity.track, {\"count\": 1})",
"playButtonBehavior_optionAddNext": "$t(player.addNext)",
"replayGainMode_description": "ajuste le gain de volume accordement à la valeur de {{ReplayGain}} sauvegardé dans les métadonnées du fichier",
"replayGainFallback": "valeur de repli {{ReplayGain}}",
@@ -685,10 +731,10 @@
"preferLocalLyrics_description": "privilégier les paroles locales aux paroles distantes lorsqu'elles sont disponibles",
"preferLocalLyrics": "privilégier les paroles locales",
"discordPausedStatus_description": "quand activé, le status s'affichera lorsque le lecteur est en pause",
"discordPausedStatus": "afficher le status d'activité en pause",
"discordPausedStatus": "afficher le statut dactivité en pause",
"preservePitch": "préserver la hauteur",
"preservePitch_description": "préserver la hauteur lors du changement de la vitesse de lecture",
"discordDisplayType": "type d'affichage du status {{discord}}",
"discordDisplayType": "type d'affichage du statut {{discord}}",
"discordDisplayType_description": "modifie ce que vous écoutez dans votre statut",
"discordDisplayType_songname": "nom du morceau",
"discordDisplayType_artistname": "nom(s) dartiste",
@@ -699,16 +745,16 @@
"discordLinkType_description": "Ajoute des liens externes vers {{lastfm}} ou {{musicbrainz}} aux champs piste et artiste de la Rich Presence de {{discord}}. {{musicbrainz}} est la méthode la plus précise, mais nécessite des balises et ne fournit pas de liens vers les artistes, tandis que {{lastfm}} doit toujours fournir un lien. Aucune requête réseau supplémentaire n'est effectuée",
"discordLinkType_none": "$t(common.none)",
"discordLinkType_mbz_lastfm": "{{musicbrainz}} avec {{lastfm}} si le premier n'est pas disponible",
"artistBackground": "image d'arrière-plan d'artiste",
"artistBackground_description": "ajoute une image d'arrière-plan pour les pages d'artiste contenant l'œuvre de l'artiste",
"artistBackground": "image d'arrière-plan de l'artiste",
"artistBackground_description": "ajoute une image d'arrière-plan pour les pages d'artiste contenant une image de l'artiste",
"artistBackgroundBlur": "intensité du flou sur l'image d'arrière-plan d'artiste",
"artistBackgroundBlur_description": "ajuste la quantité de flou appliquée à l'image d'arrière-plan de l'artiste",
"releaseChannel_optionLatest": "dernière",
"releaseChannel_optionBeta": "bêta",
"releaseChannel": "canal de diffusion",
"releaseChannel_description": "choisissez entre les versions stables ou les versions bêta pour les mises à jour automatiques",
"releaseChannel_description": "choisissez entre les versions stables, bêta, ou alpha (nightly) pour les mises à jour automatiques",
"mediaSession": "activer media session",
"mediaSession_description": "active l'intégration de la session Windows Media, affichant les commandes multimédias et les métadonnées dans la superposition du volume du système et l'écran de verrouillage (Windows uniquement)",
"mediaSession_description": "active l'intégration Media Session, affichant les commandes multimédias et les métadonnées dans la superposition du volume du système et l'écran de verrouillage",
"enableAutoTranslation_description": "activer la traduction automatiquement lorsque les paroles sont chargées",
"enableAutoTranslation": "activer la traduction automatique",
"exportImportSettings_control_description": "exporter et importer les paramètres en JSON",
@@ -729,8 +775,8 @@
"notify": "activer les notifications de chansons",
"analyticsDisable": "Désactiver l'analytique basée sur l'utilisation",
"analyticsDisable_description": "les données d'utilisation anonymisées sont envoyées au développeur afin de contribuer à l'amélioration de l'application",
"playerbarSlider": "curseur de la barre de lecture",
"playerbarSliderType_optionSlider": "curseur",
"playerbarSlider": "barre de lecture",
"playerbarSliderType_optionSlider": "pleine",
"playerbarSliderType_optionWaveform": "forme d'onde",
"playerbarWaveformAlign": "forme d'onde alignée",
"playerbarWaveformAlign_optionTop": "haut",
@@ -743,8 +789,8 @@
"showLyricsInSidebar": "afficher les paroles dans la barre de lecture latérale",
"showVisualizerInSidebar_description": "un panneau sera ajouté à la barre de lecture latérale qui affiche le visualiseur",
"showVisualizerInSidebar": "afficher le visualiseur dans la barre de lecture latérale",
"audioFadeOnStatusChange": "diminution du volume sonore lors du changement d'état",
"audioFadeOnStatusChange_description": "permet le fondu enchaîné et le fondu au noir quand la lecture/pause change d'états",
"audioFadeOnStatusChange": "diminution du volume sonore lors du changement d'état du statut",
"audioFadeOnStatusChange_description": "permet le fondu enchaîné et le fondu au noir quand la lecture/pause change d'états du statut",
"queryBuilder": "constructeur de requêtes",
"queryBuilderCustomFields_inputLabel": "label",
"queryBuilderCustomFields_inputTag": "tag",
@@ -764,45 +810,93 @@
"logLevel_optionError": "erreur",
"logLevel_optionInfo": "info",
"logLevel_optionWarn": "avertissement",
"playerFilters": "filtrer les tires de la file d'attente",
"playerFilters": "filtrer les titres de la file d'attente",
"playerFilters_description": "exclure les titres de la file d'attente selon les critères suivants",
"playerbarSlider_description": "la forme d'onde n'est pas recommandée sur une connexion lente ou limitée",
"useThemeAccentColor": "utiliser la couleur d'accent du thème",
"useThemeAccentColor_description": "utiliser la couleur principale définie dans le thème sélectionné au lieu de la couleur d'accent personnalisée"
"useThemeAccentColor_description": "utiliser la couleur principale définie dans le thème sélectionné au lieu de la couleur d'accentuation personnalisée",
"artistReleaseTypeConfiguration": "configuration du type de sortie de l'artiste",
"artistReleaseTypeConfiguration_description": "configure quel type de sortie est affiché, et dans quel ordre, sur la page artiste de l'album",
"mpvExtraParameters": "paramètres supplémentaires de mpv",
"mpvExtraParameters_description": "arguments supplémentaires à transmettre à mpv",
"pathReplace": "remplacement du chemin de fichier",
"pathReplace_description": "remplacez le chemin de fichier par défaut de votre serveur",
"pathReplace_optionRemovePrefix": "supprimer un prefix",
"pathReplace_optionAddPrefix": "ajouter un prefix",
"artistRadioCount_description": "définit le nombre de titres à récupérer pour la radio d'artiste et la radio de titre",
"artistRadioCount": "nombre de radio d'artiste/titre",
"imageResolution": "résolution d'image",
"imageResolution_description": "la résolution d'image utilisée dans l'application. définir une valeur à 0 utilisera la résolution native de l'image",
"imageResolution_optionTable": "tableau",
"imageResolution_optionItemCard": "entrée de carte",
"imageResolution_optionSidebar": "barre latérale",
"imageResolution_optionHeader": "en-tête",
"imageResolution_optionFullScreenPlayer": "lecteur en plein écran",
"showRatings_description": "contrôle si la notation à étoiles s'affiche dans l'interface",
"showRatings": "affiche la notation à étoiles",
"combinedLyricsAndVisualizer_description": "combine les paroles et le visualisateur dans le même panneau",
"combinedLyricsAndVisualizer": "combine les paroles et le visualisateur dans la barre latérale",
"analyticsEnable": "Envoyer des métriques d'utilisation",
"analyticsEnable_description": "Des métriques d'utilisation anonymisées sont envoyées au développeur pour aider à améliorer l'application",
"automaticUpdates": "Mises à jour automatiques",
"automaticUpdates_description": "Vérifier l'existence de mises à jour et les installer automatiquement",
"releaseChannel_optionAlpha": "alpha (toutes les nuits)",
"discordStateIcon": "afficher licône de lecture",
"discordStateIcon_description": "affiche une petite icône de lecture dans le statut d'activité. l'icône de pause est toujours affichée lorsque \"Afficher le statut d'activité en pause\" est activé",
"homeFeatureStyle_description": "contrôle le style du carousel d'accueil à la une",
"homeFeatureStyle": "style de carousel à la une de l'accueil",
"homeFeatureStyle_optionMultiple": "multiple",
"homeFeatureStyle_optionSingle": "simple",
"blurExplicitImages": "flouter les images explicites",
"blurExplicitImages_description": "les pochettes d'albums et de chansons étiquetées comme explicites seront floutées",
"enableGridMultiSelect": "activer la sélection multiple dans la grille",
"enableGridMultiSelect_description": "quand activé, permet la sélection de plusieurs entrées dans la vue en grille. quand désactivé, cliquer sur un item de la grille mène vers la page de l'entrée",
"sidebarPlaylistSorting_description": "permet le tri manuel des listes de lecture dans la barre latérale en utilisant le drag and drop plutôt que l'ordre par défaut du serveur",
"sidebarPlaylistSorting": "tri des listes de lecture dans la barre latérale",
"sidebarPlaylistListFilterRegex_description": "masquer les listes de lecture dans la barre latérale qui correspondent à cette expression régulière",
"sidebarPlaylistListFilterRegex_placeholder": "ex. ^Mix Journalier*",
"sidebarPlaylistListFilterRegex": "filtre d'expression régulière de liste de lecture",
"autosave": "sauvegarder automatiquement la file d'attente",
"autosave_description": "activez la sauvegarde automatique de la file d'attente de lecture sur votre serveur. Cette fonction est uniquement disponible avec Navidrome/Subsonic et ne permet pas d'utiliser une file d'attente mixte.",
"autosaveCount": "fréquence de sauvegarde automatique de la file d'attente",
"autosaveCount_description": "nombre de changement de piste avant la sauvegarde de la file d'attente. 1 (minimum) signifie chaque changement de titre"
},
"form": {
"deletePlaylist": {
"title": "supprimer de $t(entity.playlist_one)",
"success": "$t(entity.playlist_one) supprimée avec succès",
"input_confirm": "taper le nom de la $t(entity.playlist_one) pour confirmer"
"title": "supprimer de $t(entity.playlist, {\"count\": 1})",
"success": "$t(entity.playlist, {\"count\": 1}) supprimée avec succès",
"input_confirm": "taper le nom de la $t(entity.playlist, {\"count\": 1}) pour confirmer"
},
"addServer": {
"title": "ajouter un serveur",
"input_username": "nom d'utilisateur",
"input_url": "url",
"input_url": "URL",
"input_password": "mot de passe",
"input_legacyAuthentication": "activer l'authtication legacy",
"input_legacyAuthentication": "activer l'authentification legacy",
"input_name": "nom du serveur",
"success": "serveur ajouté avec succès",
"input_savePassword": "enregister le mot de passe",
"ignoreSsl": "ignorer ssl $t(common.restartRequired)",
"ignoreCors": "ignorer cors $t(common.restartRequired)",
"error_savePassword": "une erreur sest produite lors de la tentative de sauvegarde du mot de passe",
"input_preferInstantMix": "Préférer le mix instantané",
"input_preferInstantMixDescription": "Utiliser uniquement le mix instantané pour jouer des pistes similaires. Activez cette option si vous avez des plugins qui modifient ce comportement"
"input_preferInstantMix": "préférer le mix instantané",
"input_preferInstantMixDescription": "utiliser uniquement le mix instantané pour jouer des pistes similaires. utile si vous avez des plugins qui modifient ce comportement",
"input_preferRemoteUrl": "préférer une URL publique",
"input_remoteUrl": "URL publique",
"input_remoteUrlPlaceholder": "optionnel : URL publique pour les fonctionnalités externes"
},
"addToPlaylist": {
"success": "$t(entity.trackWithCount, {\"count\" : {{message}} }) ajouté à $t(entity.playlistWithCount, {\"count\" : {{numOfPlaylists}} })",
"title": "ajouter à $t(entity.playlist_one)",
"title": "ajouter à $t(entity.playlist, {\"count\": 1})",
"input_skipDuplicates": "sauter les doublons",
"input_playlists": "$t(entity.playlist_other)",
"create": "créer $t(entity.playlist_one) {{playlist}}",
"searchOrCreate": "rechercher $t(entity.playlist_other) ou tapez pour en créer une nouvelle"
"input_playlists": "$t(entity.playlist, {\"count\": 2})",
"create": "créer $t(entity.playlist, {\"count\": 1}) {{playlist}}",
"searchOrCreate": "rechercher $t(entity.playlist, {\"count\": 2}) ou tapez pour en créer une nouvelle"
},
"createPlaylist": {
"title": "créer une $t(entity.playlist_one)",
"title": "créer une $t(entity.playlist, {\"count\": 1})",
"input_public": "publique",
"success": "$t(entity.playlist_one) créée avec succès",
"success": "$t(entity.playlist, {\"count\": 1}) créée avec succès",
"input_description": "$t(common.description)",
"input_name": "$t(common.name)",
"input_owner": "$t(common.owner)"
@@ -821,15 +915,15 @@
"clearFilters": "réinitialiser les filtres"
},
"editPlaylist": {
"title": "modifier $t(entity.playlist_one)",
"title": "modifier $t(entity.playlist, {\"count\": 1})",
"publicJellyfinNote": "Jellyfin n'indique pas si une liste de lecture est publique ou non. Si vous souhaitez que cette liste de lecture reste publique, veuillez sélectionner l'entrée suivante",
"success": "$t(entity.playlist_one) mis à jour avec succès",
"success": "$t(entity.playlist, {\"count\": 1}) mis à jour avec succès",
"editNote": "les modifications manuelles ne sont pas recommandées pour les listes de lecture volumineuses. êtes-vous sûre d'accepter le risque d'une perte de données en écrasant la liste de lecture existante?"
},
"lyricSearch": {
"title": "recherche de paroles",
"input_name": "$t(common.name)",
"input_artist": "$t(entity.artist_one)"
"input_artist": "$t(entity.artist, {\"count\": 1})"
},
"shareItem": {
"allowDownloading": "autoriser le téléchargement",
@@ -837,7 +931,9 @@
"setExpiration": "définir une expiration",
"success": "lien de partage copié dans le presse-papier (ou cliquez ici pour ouvrir)",
"expireInvalid": "l'expiration doit être définie à une date ultérieure",
"createFailed": "échec de la création du lien de partage (le partage est-il activé ?)"
"createFailed": "échec de la création du lien de partage (le partage est-il activé ?)",
"copyToClipboard": "Copier vers le presse-papiers : Ctrl+C, Entrer",
"successMustClick": "partage créé avec succès. cliquez ici pour ouvrir"
},
"privateMode": {
"enabled": "le mode privé est activé, le statut de lecture est maintenant caché des intégrations externes",
@@ -846,11 +942,11 @@
},
"largeFetchConfirmation": {
"title": "ajouter des entrées à la file d'attente",
"description": "Cette action ajoutera tous les éléments dans la vue filtrée actuelle"
"description": "Cette action ajoutera toutes les entrées de la vue filtrée actuelle"
},
"shuffleAll": {
"title": "jouer aléatoirement",
"input_genre": "$t(entity.genre_one)",
"input_genre": "$t(entity.genre, {\"count\": 1})",
"input_limit": "combien de titres?",
"input_minYear": "à partir de l'année",
"input_maxYear": "à l'année",
@@ -868,6 +964,11 @@
},
"saveQueue": {
"success": "file d'attente de lecture enregistrée sur le serveur"
},
"lyricsExport": {
"export": "exporter les paroles",
"input_synced": "exporter les paroles synchronisées",
"input_offset": "$t(setting.lyricOffset)"
}
},
"entity": {
@@ -907,7 +1008,7 @@
"folder_one": "dossier",
"folder_many": "dossiers",
"folder_other": "dossiers",
"smartPlaylist": "$t(entity.playlist_one) intelligente",
"smartPlaylist": "$t(entity.playlist, {\"count\": 1}) intelligente",
"album_one": "album",
"album_many": "albums",
"album_other": "albums",
@@ -961,12 +1062,14 @@
"alternateRowColors": "alterner les couleurs des lignes",
"horizontalBorders": "bordures de ligne",
"rowHoverHighlight": "surligner les lignes au survol",
"verticalBorders": "bordure de colonne"
"verticalBorders": "bordure de colonne",
"showHeader": "affiche l'en-tête"
},
"view": {
"table": "liste",
"grid": "grille",
"list": "liste"
"list": "liste",
"detail": "détail"
},
"label": {
"releaseDate": "date de sortie",
@@ -979,29 +1082,31 @@
"discNumber": "disque n°",
"duration": "$t(common.duration)",
"bpm": "$t(common.bpm)",
"artist": "$t(entity.artist_one)",
"album": "$t(entity.album_one)",
"artist": "$t(entity.artist, {\"count\": 1})",
"album": "$t(entity.album, {\"count\": 1})",
"biography": "$t(common.biography)",
"channels": "$t(common.channel_other)",
"channels": "$t(common.channel, {\"count\": 2})",
"bitrate": "$t(common.bitrate)",
"actions": "$t(common.action_other)",
"actions": "$t(common.action, {\"count\": 2})",
"favorite": "$t(common.favorite)",
"albumArtist": "$t(entity.albumArtist_one)",
"albumArtist": "$t(entity.albumArtist, {\"count\": 1})",
"rating": "$t(common.rating)",
"note": "$t(common.note)",
"owner": "$t(common.owner)",
"path": "$t(common.path)",
"title": "$t(common.title)",
"size": "$t(common.size)",
"genre": "$t(entity.genre_one)",
"genre": "$t(entity.genre, {\"count\": 1})",
"year": "$t(common.year)",
"songCount": "$t(entity.track_other)",
"songCount": "$t(entity.track, {\"count\": 2})",
"codec": "$t(common.codec)",
"albumCount": "$t(entity.album_other)",
"genreBadge": "$t(entity.genre_one) (badges)",
"albumCount": "$t(entity.album, {\"count\": 2})",
"genreBadge": "$t(entity.genre, {\"count\": 1}) (badges)",
"image": "image",
"bitDepth": "$t(common.bitDepth)",
"sampleRate": "$t(common.sampleRate)"
"sampleRate": "$t(common.sampleRate)",
"composer": "compositeur",
"titleArtist": "$t(common.title) (artiste)"
}
},
"column": {
@@ -1021,12 +1126,12 @@
"albumArtist": "artiste de l'album",
"path": "chemin",
"discNumber": "disque",
"albumCount": "$t(entity.album_other)",
"albumCount": "$t(entity.album, {\"count\": 2})",
"lastPlayed": "écouté récemment",
"artist": "$t(entity.artist_one)",
"genre": "$t(entity.genre_one)",
"songCount": "$t(entity.track_other)",
"channels": "$t(common.channel_other)",
"artist": "$t(entity.artist, {\"count\": 1})",
"genre": "$t(entity.genre, {\"count\": 1})",
"songCount": "$t(entity.track, {\"count\": 2})",
"channels": "$t(common.channel, {\"count\": 2})",
"size": "$t(common.size)",
"codec": "$t(common.codec)",
"owner": "propriétaire",
@@ -1041,8 +1146,8 @@
},
"releaseType": {
"primary": {
"album": "$t(entity.album_one)",
"broadcast": "diffuser",
"album": "$t(entity.album, {\"count\": 1})",
"broadcast": "diffusion",
"ep": "ep",
"other": "autre",
"single": "single"
@@ -1086,5 +1191,157 @@
"notInPlaylist": "n'est pas dans",
"notInTheLast": "n'est pas dans le dernier",
"startsWith": "commence par"
},
"datetime": {
"minuteShort": "m",
"secondShort": "s",
"hourShort": "h",
"dayShort": "j"
},
"visualizer": {
"visualizerType": "type de visualisateur",
"cyclePresets": "cycle les préréglages",
"cycleTime": "temps de cycle (secondes)",
"includeAllPresets": "inclure tous les préréglages",
"ignoredPresets": "préréglages ignorés",
"selectedPresets": "préréglages sélectionné",
"randomizeNextPreset": "randomiser le préréglage suivant",
"blendTime": "temps de mélange",
"presets": "préréglages",
"selectPreset": "sélectionner un préréglage",
"applyPreset": "appliquer le préréglage",
"saveAsPreset": "enregistrer en tant que préréglage",
"updatePreset": "mettre à jour le préréglage",
"copyConfiguration": "copier la configuration",
"pasteConfiguration": "coller la configuration",
"pasteConfigurationPlaceholder": "coller ici la configuration JSON...",
"pasteFromClipboard": "coller depuis le presse-papier",
"applyConfiguration": "appliquer la configuration",
"configCopied": "configuration copiée dans le presse-papiers",
"configCopyFailed": "échec de la copie de la configuration",
"configPasted": "configuration appliquée avec succès",
"configPasteFailed": "échec de l'application de la configuration. Merci de vérifier le format.",
"configPasteReadFailed": "échec de la lecture du presse-papiers",
"presetName": "nom du préréglage",
"presetNamePlaceholder": "saisissez le nom du préréglage",
"general": "générale",
"mode": "mode",
"mode1To8": "Mode 1 - 8",
"mode10": "Mode 10",
"barSpace": "espacement des barres",
"lineWidth": "Largeur des traits",
"fillAlpha": "remplissage alpha",
"channelLayout": "disposition des canaux",
"maxFPS": "FPS Maximum",
"opacity": "opacité",
"customGradients": "dégradés personnalisés",
"addCustomGradient": "ajouter un dégradés personnalisés",
"gradientName": "nom du dégradé",
"gradientNamePlaceholder": "nom du dégradé",
"vertical": "verticale",
"horizontal": "horizontale",
"colorStops": "couleur d'arrêts",
"addColor": "ajouter un couleur",
"position": "position",
"level": "niveau",
"remove": "supprimer",
"pasteGradient": "coller le dégradé",
"pasteGradientPlaceholder": "coller ici le dégradé JSON...",
"custom": "personnalisé",
"builtIn": "intégré",
"colors": "couleurs",
"colorMode": "mode de couleur",
"gradient": "dégradé",
"gradientLeft": "dégradé gauche",
"gradientRight": "dégradé droite",
"smoothing": "lissage",
"frequencyRangeAndScaling": "plage de fréquence et mise à l'échelle",
"minimumFrequency": "fréquence minimum",
"maximumFrequency": "fréquence maximum",
"frequencyScale": "mise à l'échelle de fréquence",
"sensitivity": "sensibilité",
"weightingFilter": "filter de pondérage",
"minimumDecibels": "décibels minimum",
"maximumDecibels": "décibels maximum",
"linearAmplitude": "amplitude linéaire",
"linearBoost": "Augmentation Linéaire",
"peakBehavior": "Comportement des Crêtes",
"showPeaks": "afficher les crêtes",
"fft": "FFT",
"fftSize": "Taille de la FFT",
"fadePeaks": "adoucir les crêtes",
"peakLine": "Ligne de Crête",
"gravity": "gravité",
"peakFadeTime": "temps d'adoucissement des crêtes (ms)",
"peakHoldTime": "temps d'attente des crêtes (ms)",
"radialSpectrum": "Spectre Radial",
"radial": "Radial",
"radialInvert": "Inversion Radiale",
"spinSpeed": "Vitesse de Rotation",
"radius": "Rayon",
"reflexMirror": "Miroir Réflexe",
"reflexFit": "Ajustement du Réflexe",
"reflexRatio": "Rapport de Réflexe",
"reflexAlpha": "Alpha du Réflexe",
"reflexBrightness": "Luminosité du Réflexe",
"mirror": "Mirroir",
"miscellaneousSettings": "Paramètres divers",
"alphaBars": "Barres alpha",
"ansiBands": "Bandes ANSI",
"ledBars": "Barres LED",
"trueLeds": "True LEDs",
"roundBars": "Barres arrondies",
"lowResolution": "Basse Résolution",
"showFPS": "Afficher les FPS",
"showScaleX": "Afficher l’échelle X",
"noteLabels": "Étiquettes de notes",
"showScaleY": "Afficher l’échelle Y",
"options": {
"mode": {
"0": "[0] Fréquences discrètes",
"1": "[1] 1/24ᵉ octave / 240 bandes",
"2": "[2] 1/12ᵉ octave / 120 bandes",
"3": "[3] 1/8ᵉ octave / 80 bandes",
"4": "[4] 1/6ᵉ octave / 60 bandes",
"5": "[5] 1/4ᵉ octave / 40 bandes",
"6": "[6] 1/3ᵉ octave / 30 bandes",
"7": "[7] Demi-octave / 20 bandes",
"8": "[8] Octave complète / 10 bandes",
"10": "[10] Linéaire / Graphique en aires"
},
"colorMode": {
"gradient": "Dégradé",
"barIndex": "Indice de Barre",
"barLevel": "Niveau de Barre"
},
"gradient": {
"classic": "Classique",
"prism": "Prisme",
"rainbow": "Arc-en-ciel",
"steelblue": "Bleu Acier",
"orangered": "Orange rougeâtre"
},
"channelLayout": {
"single": "Simple",
"dualCombined": "Combiné Double",
"dualHorizontal": "Double Horizontale",
"dualVertical": "Double Verticale"
},
"frequencyScale": {
"none": "Aucun",
"bark": "Échelle Bark",
"linear": "Échelle Linéaire",
"log": "Échelle Logarithmique",
"mel": "Échelle Mel"
},
"weightingFilter": {
"none": "Aucun",
"a": "A",
"b": "B",
"c": "C",
"d": "D",
"z": "Z"
}
}
}
}
+76 -79
View File
@@ -1,26 +1,26 @@
{
"action": {
"moveToNext": "ugrás a következőre",
"deletePlaylist": "$t(entity.playlist_one) törlése",
"removeFromFavorites": "eltávolítás innen $t(entity.favorite_other)",
"deletePlaylist": "$t(entity.playlist, {\"count\": 1}) törlése",
"removeFromFavorites": "eltávolítás innen $t(entity.favorite, {\"count\": 2})",
"setRating": "értékelés",
"viewPlaylists": "$t(entity.playlist_other) megtekintése",
"viewPlaylists": "$t(entity.playlist, {\"count\": 2}) megtekintése",
"openIn": {
"lastfm": "Megnyitás Last.fm-ben",
"musicbrainz": "Megnyitás MusicBrainz-ben"
},
"clearQueue": "műsorlista kiürítése",
"createPlaylist": "$t(entity.playlist_one) létrehozása",
"createPlaylist": "$t(entity.playlist, {\"count\": 1}) létrehozása",
"deselectAll": "kijelölés törlése",
"editPlaylist": "$t(entity.playlist_one) szerkesztése",
"editPlaylist": "$t(entity.playlist, {\"count\": 1}) szerkesztése",
"goToPage": "menj az oldalra",
"moveToBottom": "ugrás az aljára",
"moveToTop": "ugrás a tetejére",
"removeFromPlaylist": "eltávolítás innen $t(entity.playlist_one)",
"removeFromPlaylist": "eltávolítás innen $t(entity.playlist, {\"count\": 1})",
"removeFromQueue": "eltávolítás a műsorlistáról",
"toggleSmartPlaylistEditor": "$t(entity.smartPlaylist) szerkesztője",
"addToFavorites": "$t(entity.favorite_other) kedvelése",
"addToPlaylist": "hozzáadás lejátszási listához: $t(entity.playlist_one)",
"addToFavorites": "$t(entity.favorite, {\"count\": 2}) kedvelése",
"addToPlaylist": "hozzáadás lejátszási listához: $t(entity.playlist, {\"count\": 1})",
"refresh": "$t(common.refresh)",
"downloadStarted": "megkezdődött {{count}} elem letöltése",
"moveItems": "elemek mozgatása",
@@ -33,15 +33,15 @@
"holdToMoveToTop": "hosszan nyomva felülre mozgat",
"holdToMoveToBottom": "hosszan nyomva lejjebb mozgat",
"selectAll": "összes kijelölése",
"deleteRadioStation": "$t(entity.radioStation_one) törlése",
"createRadioStation": "$t(entity.radioStation_one) létrehozása",
"deleteRadioStation": "$t(entity.radioStation, {\"count\": 1}) törlése",
"createRadioStation": "$t(entity.radioStation, {\"count\": 1}) létrehozása",
"openApplicationDirectory": "app könyvtár megnyitása",
"addOrRemoveFromSelection": "hozzáadás vagy eltávolítás a kiválasztásból",
"selectRangeOfItems": "válaszd ki a tartományt"
},
"common": {
"collapse": "összecsukás",
"currentSong": "jelenlegi: $t(entity.track_one)",
"currentSong": "jelenlegi: $t(entity.track, {\"count\": 1})",
"no": "nem",
"close": "bezárás",
"confirm": "rendben",
@@ -100,7 +100,7 @@
"path": "elérési út",
"playerMustBePaused": "a lejátszónak szüneteltetve kell lennie",
"preview": "előnézet",
"previousSong": "előző $t(entity.track_one)",
"previousSong": "előző $t(entity.track, {\"count\": 1})",
"quit": "kilépés",
"random": "véletlenszerű",
"refresh": "frissítés",
@@ -116,7 +116,8 @@
"yes": "igen",
"none": "egyik sem",
"restartRequired": "újraindítás szükséges",
"setting": "beállítás",
"setting_one": "beállítás",
"setting_other": "",
"translation": "fordítás",
"rating": "értékelés",
"reload": "újratöltés",
@@ -176,7 +177,7 @@
"song_other": "dalok",
"album_one": "album",
"album_other": "albumok",
"smartPlaylist": "intelligens $t(entity.playlist_one)",
"smartPlaylist": "intelligens $t(entity.playlist, {\"count\": 1})",
"artistWithCount_one": "{{count}} előadó",
"artistWithCount_other": "{{count}} előadók",
"playlist_one": "lejátszási lista",
@@ -228,7 +229,7 @@
"multipleServerSaveQueueError": "a műsorlistában egy vagy több olyan dal található, amely nem az aktuális szerverről származik. Ez nem támogatott"
},
"filter": {
"albumCount": "$t(entity.album_other) darab",
"albumCount": "$t(entity.album, {\"count\": 2}) darab",
"bitrate": "bitráta",
"comment": "megjegyzés",
"dateAdded": "hozzáadás ideje",
@@ -249,9 +250,9 @@
"disc": "lemez",
"criticRating": "kritikusok értékelése",
"communityRating": "közösségi értékelés",
"albumArtist": "$t(entity.albumArtist_one)",
"albumArtist": "$t(entity.albumArtist, {\"count\": 1})",
"biography": "életrajz",
"album": "$t(entity.album_one)",
"album": "$t(entity.album, {\"count\": 1})",
"favorited": "kedvelt",
"isRecentlyPlayed": "mostanában lejátszott",
"name": "név",
@@ -266,10 +267,10 @@
"path": "elérési út",
"toYear": "évhez",
"trackNumber": "sáv",
"artist": "$t(entity.artist_one)",
"artist": "$t(entity.artist, {\"count\": 1})",
"bpm": "bpm",
"channels": "$t(common.channel_other)",
"genre": "$t(entity.genre_one)",
"genre": "$t(entity.genre, {\"count\": 1})",
"explicitStatus": "$t(common.explicitStatus)"
},
"form": {
@@ -290,33 +291,33 @@
},
"addToPlaylist": {
"input_skipDuplicates": "duplikátumok átugrása",
"input_playlists": "$t(entity.playlist_other)",
"input_playlists": "$t(entity.playlist, {\"count\": 2})",
"success": "hozzáadtuk ezt: $t(entity.trackWithCount, {\"count\": {{message}} }) a következőhöz: $t(entity.playlistWithCount, {\"count\": {{numOfPlaylists}} })",
"title": "hozzáadás a következőhöz: $t(entity.playlist_one)",
"create": "létrehoz $t(entity.playlist_one) {{playlist}}",
"searchOrCreate": "keresés $t(entity.playlist_other) vagy új létrehozása"
"title": "hozzáadás a következőhöz: $t(entity.playlist, {\"count\": 1})",
"create": "létrehoz $t(entity.playlist, {\"count\": 1}) {{playlist}}",
"searchOrCreate": "keresés $t(entity.playlist, {\"count\": 2}) vagy új létrehozása"
},
"createPlaylist": {
"input_description": "$t(common.description)",
"input_name": "$t(common.name)",
"input_owner": "$t(common.owner)",
"input_public": "publikus",
"title": "$t(entity.playlist_one) létrehozása",
"success": "$t(entity.playlist_one) sikeresen létrehozva"
"title": "$t(entity.playlist, {\"count\": 1}) létrehozása",
"success": "$t(entity.playlist, {\"count\": 1}) sikeresen létrehozva"
},
"deletePlaylist": {
"input_confirm": "a megerősítéshez írd be a(z) $t(entity.playlist_one) nevét",
"success": "$t(entity.playlist_one) sikeresen törölve",
"title": "$t(entity.playlist_one) törlése"
"input_confirm": "a megerősítéshez írd be a(z) $t(entity.playlist, {\"count\": 1}) nevét",
"success": "$t(entity.playlist, {\"count\": 1}) sikeresen törölve",
"title": "$t(entity.playlist, {\"count\": 1}) törlése"
},
"editPlaylist": {
"success": "$t(entity.playlist_one) sikeresen módosítva",
"success": "$t(entity.playlist, {\"count\": 1}) sikeresen módosítva",
"publicJellyfinNote": "A Jellyfin valamiért nem teszi közzé, hogy egy lejátszási lista publikus-e vagy sem. Amennyiben azt szeretnéd, hogy publikus maradjon, válaszd ki az alábbi beviteli mezőt",
"title": "szerkesztés $t(entity.playlist_one)",
"title": "szerkesztés $t(entity.playlist, {\"count\": 1})",
"editNote": "A kézi szerkesztés nem ajánlott nagy lejátszási listák esetén. Biztosan vállalod a meglévő lejátszási lista felülírásával járó adatvesztés kockázatát?"
},
"lyricSearch": {
"input_artist": "$t(entity.artist_one)",
"input_artist": "$t(entity.artist, {\"count\": 1})",
"input_name": "$t(common.name)",
"title": "dalszöveg kereső"
},
@@ -352,7 +353,7 @@
},
"shuffleAll": {
"title": "véletlenszerű lejátszás",
"input_genre": "$t(entity.genre_one)",
"input_genre": "$t(entity.genre, {\"count\": 1})",
"input_limit": "Hány dal?",
"input_minYear": "ettől az évtől",
"input_maxYear": "eddig az évig",
@@ -383,24 +384,24 @@
"appearsOn": "megjelenik",
"recentReleases": "legújabb kiadványok",
"viewDiscography": "Diszkográfia megtekintése",
"relatedArtists": "kapcsolódik $t(entity.artist_other)",
"relatedArtists": "kapcsolódik $t(entity.artist, {\"count\": 2})",
"topSongs": "sláger dalok",
"topSongsFrom": "sláger dalok tőle {{title}}",
"viewAll": "mindet megtekint",
"viewAllTracks": "mindet megtekint $t(entity.track_other)"
"viewAllTracks": "mindet megtekint $t(entity.track, {\"count\": 2})"
},
"albumArtistList": {
"title": "$t(entity.albumArtist_other)"
"title": "$t(entity.albumArtist, {\"count\": 2})"
},
"albumDetail": {
"moreFromArtist": "még több ettől $t(entity.artist_one)",
"moreFromArtist": "még több ettől $t(entity.artist, {\"count\": 1})",
"moreFromGeneric": "Még több {{item}}",
"released": "megjelent"
},
"albumList": {
"artistAlbums": "albumok tőle {{artist}}",
"genreAlbums": "\"{{genre}}\" $t(entity.album_other)",
"title": "$t(entity.album_other)"
"genreAlbums": "\"{{genre}}\" $t(entity.album, {\"count\": 2})",
"title": "$t(entity.album, {\"count\": 2})"
},
"appMenu": {
"collapseSidebar": "oldalsáv",
@@ -413,7 +414,7 @@
"openBrowserDevtools": "Fejlesztői eszközök",
"quit": "$t(common.quit)",
"selectServer": "Szerver választása",
"settings": "$t(common.setting_other)",
"settings": "$t(common.setting, {\"count\": 2})",
"version": "verzió {{version}}",
"selectMusicFolder": "zene mappa kiválasztása",
"noMusicFolder": "nincs zene mappa kiválasztva",
@@ -450,8 +451,8 @@
"setRating": "$t(action.setRating)",
"playShuffled": "$t(player.shuffle)",
"shareItem": "Megosztás",
"goToAlbum": "menj az $t(entity.album_one)",
"goToAlbumArtist": "menj a $t(entity.albumArtist_one)",
"goToAlbum": "menj az $t(entity.album, {\"count\": 1})",
"goToAlbumArtist": "menj a $t(entity.albumArtist, {\"count\": 1})",
"showDetails": "info",
"moveItems": "$t(action.moveItems)",
"goTo": "menj"
@@ -480,9 +481,9 @@
"noLyrics": "nem található dalszöveg"
},
"genreList": {
"showAlbums": "mutasd a $t(entity.genre_one) $t(entity.album_other)",
"showTracks": "mutasd a $t(entity.genre_one) $t(entity.track_other)",
"title": "$t(entity.genre_other)"
"showAlbums": "mutasd a $t(entity.genre, {\"count\": 1}) $t(entity.album, {\"count\": 2})",
"showTracks": "mutasd a $t(entity.genre, {\"count\": 1}) $t(entity.track, {\"count\": 2})",
"title": "$t(entity.genre, {\"count\": 2})"
},
"globalSearch": {
"commands": {
@@ -499,7 +500,7 @@
"recentlyPlayed": "nemrég játszott",
"recentlyReleased": "nemrég megjelent",
"title": "$t(common.home)",
"genres": "$t(entity.genre_other)"
"genres": "$t(entity.genre, {\"count\": 2})"
},
"itemDetail": {
"copyPath": "másolja az útvonalat a vágólapra",
@@ -510,7 +511,7 @@
"reorder": "átrendezés csak ID szerinti rendezés esetén engedélyezett"
},
"playlistList": {
"title": "$t(entity.playlist_other)"
"title": "$t(entity.playlist, {\"count\": 2})"
},
"setting": {
"advanced": "haladó",
@@ -537,32 +538,32 @@
"logger": "naplózó"
},
"sidebar": {
"albumArtists": "$t(entity.albumArtist_other)",
"albums": "$t(entity.album_other)",
"artists": "$t(entity.artist_other)",
"folders": "$t(entity.folder_other)",
"genres": "$t(entity.genre_other)",
"albumArtists": "$t(entity.albumArtist, {\"count\": 2})",
"albums": "$t(entity.album, {\"count\": 2})",
"artists": "$t(entity.artist, {\"count\": 2})",
"folders": "$t(entity.folder, {\"count\": 2})",
"genres": "$t(entity.genre, {\"count\": 2})",
"home": "$t(common.home)",
"myLibrary": "Könyvtáram",
"nowPlaying": "most játszott",
"playlists": "$t(entity.playlist_other)",
"playlists": "$t(entity.playlist, {\"count\": 2})",
"search": "$t(common.search)",
"settings": "$t(common.setting_other)",
"shared": "megosztott $t(entity.playlist_other)",
"tracks": "$t(entity.track_other)",
"favorites": "$t(entity.favorite_other)",
"radio": "$t(entity.radioStation_other)"
"settings": "$t(common.setting, {\"count\": 2})",
"shared": "megosztott $t(entity.playlist, {\"count\": 2})",
"tracks": "$t(entity.track, {\"count\": 2})",
"favorites": "$t(entity.favorite, {\"count\": 2})",
"radio": "$t(entity.radioStation, {\"count\": 2})"
},
"trackList": {
"artistTracks": "dalok tőle {{artist}}",
"genreTracks": "\"{{genre}}\" $t(entity.track_other)",
"title": "$t(entity.track_other)"
"genreTracks": "\"{{genre}}\" $t(entity.track, {\"count\": 2})",
"title": "$t(entity.track, {\"count\": 2})"
},
"favorites": {
"title": "$t(entity.favorite_other)"
"title": "$t(entity.favorite, {\"count\": 2})"
},
"folderList": {
"title": "$t(entity.folder_other)"
"title": "$t(entity.folder, {\"count\": 2})"
},
"radioList": {
"title": "rádió állomások"
@@ -602,9 +603,6 @@
"shuffle_off": "kevert lejátszás ki",
"addLastShuffled": "végére (keverve)",
"addNextShuffled": "következő (keverve)",
"queueType": "lekérdezés típus",
"queueType_default": "alapértelmezett",
"queueType_priority": "prioritás",
"holdToShuffle": "tartsd lenyomva a keveréshez",
"lyrics": "dalszöveg",
"saveQueueToServer": "műsorlista mentése a szerverre",
@@ -612,7 +610,7 @@
},
"releaseType": {
"primary": {
"album": "$t(entity.album_one)",
"album": "$t(entity.album, {\"count\": 1})",
"broadcast": "sugárzás",
"ep": "ep",
"other": "más",
@@ -668,7 +666,6 @@
"customCss": "egyéni css",
"customCssEnable_description": "lehetővé teszi az egyéni css írását",
"customCssEnable": "egyéni css engedélyezése",
"disableAutomaticUpdates": "automatikus frissítés kikapcsolása",
"customFontPath": "egyéni betűtípus elérési út",
"customCss_description": "egyéni css tartalom. Megjegyzés: a tartalom és a távoli URL-ek nem megengedett tulajdonságok. A tartalom előnézete az alábbiakban látható. A tisztítás miatt további mezők is megjelennek, amelyeket te nem állítottál be",
"customCssNotice": "Figyelem: bár van némi tisztítás (az url() és a content: használata nem engedélyezett), az egyéni css használata továbbra is kockázatot jelenthet, mivel megváltoztatja a felületet",
@@ -827,9 +824,9 @@
"passwordStore_description": "jelszó/titkos tároló kiválasztása. Módosítsd, ha problémát tapasztalsz a jelszavak tárolásánál",
"passwordStore": "jelszó/titkos tároló",
"playbackStyle_optionCrossFade": "áthúzás",
"replayGainMode_optionAlbum": "$t(entity.album_one)",
"replayGainMode_optionAlbum": "$t(entity.album, {\"count\": 1})",
"replayGainMode_optionNone": "$t(common.none)",
"replayGainMode_optionTrack": "$t(entity.track_one)",
"replayGainMode_optionTrack": "$t(entity.track, {\"count\": 1})",
"replayGainMode": "{{ReplayGain}} mód",
"replayGainClipping_description": "A {{ReplayGain}} által okozott torzítás megelőzése az erősítés automatikus csökkentésével",
"replayGainClipping": "{{ReplayGain}} torzítás",
@@ -950,17 +947,17 @@
"releaseDate": "megjelenés dátuma",
"rowIndex": "sor index",
"size": "$t(common.size)",
"songCount": "$t(entity.track_other)",
"songCount": "$t(entity.track, {\"count\": 2})",
"title": "$t(common.title)",
"titleCombined": "$t(common.title) (kombinált)",
"trackNumber": "szám",
"year": "$t(common.year)",
"genre": "$t(entity.genre_one)",
"genre": "$t(entity.genre, {\"count\": 1})",
"lastPlayed": "utoljára játszott",
"note": "$t(common.note)",
"owner": "$t(common.owner)",
"albumArtist": "$t(entity.albumArtist_one)",
"artist": "$t(entity.artist_one)",
"albumArtist": "$t(entity.albumArtist, {\"count\": 1})",
"artist": "$t(entity.artist, {\"count\": 1})",
"biography": "$t(common.biography)",
"bitrate": "$t(common.bitrate)",
"bpm": "$t(common.bpm)",
@@ -971,9 +968,9 @@
"duration": "$t(common.duration)",
"favorite": "$t(common.favorite)",
"actions": "$t(common.action_other)",
"album": "$t(entity.album_one)",
"albumCount": "$t(entity.album_other)",
"genreBadge": "$t(entity.genre_one) (jelvények)",
"album": "$t(entity.album, {\"count\": 1})",
"albumCount": "$t(entity.album, {\"count\": 2})",
"genreBadge": "$t(entity.genre, {\"count\": 1}) (jelvények)",
"image": "kép",
"bitDepth": "$t(common.bitDepth)",
"sampleRate": "$t(common.sampleRate)"
@@ -1016,8 +1013,8 @@
}
},
"column": {
"albumCount": "$t(entity.album_other)",
"artist": "$t(entity.artist_one)",
"albumCount": "$t(entity.album, {\"count\": 2})",
"artist": "$t(entity.artist, {\"count\": 1})",
"biography": "életrajz",
"bitrate": "bitráta",
"bpm": "bpm",
@@ -1027,7 +1024,7 @@
"dateAdded": "hozzáadva",
"discNumber": "lemez",
"favorite": "kedvenc",
"genre": "$t(entity.genre_one)",
"genre": "$t(entity.genre, {\"count\": 1})",
"lastPlayed": "utoljára játszott",
"path": "elérési út",
"playCount": "lejátszások",
@@ -1035,7 +1032,7 @@
"releaseDate": "megjelenés",
"releaseYear": "év",
"size": "$t(common.size)",
"songCount": "$t(entity.track_other)",
"songCount": "$t(entity.track, {\"count\": 2})",
"title": "cím",
"trackNumber": "sáv",
"album": "album",
+681 -99
View File
File diff suppressed because it is too large Load Diff
+333 -86
View File
@@ -1,27 +1,40 @@
{
"action": {
"editPlaylist": "modifica $t(entity.playlist_one)",
"editPlaylist": "modifica $t(entity.playlist, {\"count\": 1})",
"goToPage": "vai alla pagina",
"clearQueue": "cancella la coda",
"addToFavorites": "aggiungi a $t(entity.favorite_other)",
"addToPlaylist": "aggiungi a $t(entity.playlist_one)",
"createPlaylist": "crea $t(entity.playlist_one)",
"removeFromPlaylist": "rimuovi da $t(entity.playlist_one)",
"viewPlaylists": "visualizza $t(entity.playlist_other)",
"addToFavorites": "aggiungi a $t(entity.favorite, {\"count\": 2})",
"addToPlaylist": "aggiungi a $t(entity.playlist, {\"count\": 1})",
"createPlaylist": "crea $t(entity.playlist, {\"count\": 1})",
"removeFromPlaylist": "rimuovi da $t(entity.playlist, {\"count\": 1})",
"viewPlaylists": "visualizza $t(entity.playlist, {\"count\": 2})",
"refresh": "$t(common.refresh)",
"deletePlaylist": "elimina $t(entity.playlist_one)",
"deletePlaylist": "elimina $t(entity.playlist, {\"count\": 1})",
"removeFromQueue": "rimuovi dalla coda",
"deselectAll": "deseleziona tutto",
"setRating": "vota",
"toggleSmartPlaylistEditor": "attiva/disattiva editor $t(entity.smartPlaylist)",
"removeFromFavorites": "rimuovi da $t(entity.favorite_other)",
"removeFromFavorites": "rimuovi da $t(entity.favorite, {\"count\": 2})",
"moveToTop": "sposta in cima",
"moveToBottom": "sposta in fondo",
"moveToNext": "passa al successivo",
"openIn": {
"lastfm": "Apri in Last.fm",
"musicbrainz": "Apri in MusicBrainz"
}
},
"addOrRemoveFromSelection": "aggiungi o rimuovi dalla selezione",
"selectRangeOfItems": "seleziona un intervallo di elementi",
"createRadioStation": "crea $t(entity.radioStation, {\"count\": 1})",
"deleteRadioStation": "rimuovi $t(entity.radioStation, {\"count\": 1})",
"selectAll": "seleziona tutto",
"downloadStarted": "download di {{count}} elementi iniziato",
"moveUp": "sposta sopra",
"moveDown": "sposta in basso",
"holdToMoveToTop": "tieni premuto per muovere in cima",
"holdToMoveToBottom": "tieni premuto per muoverlo in fondo",
"moveItems": "muovi elementi",
"shuffle": "casuale",
"viewMore": "mostra di più"
},
"common": {
"backward": "indietro",
@@ -51,7 +64,7 @@
"left": "sinistra",
"save": "salva",
"right": "destra",
"currentSong": "$t(entity.track_one) corrente",
"currentSong": "$t(entity.track, {\"count\": 1}) corrente",
"trackNumber": "traccia",
"descending": "decrescente",
"gap": "gap",
@@ -75,7 +88,9 @@
"forward": "successivo",
"delete": "elimina",
"forceRestartRequired": "riavvia per applicare le modifiche... chiudi la notifica per riavviare",
"setting": "impostazione",
"setting_one": "impostazione",
"setting_many": "impostazioni",
"setting_other": "impostazioni",
"version": "versione",
"title": "titolo",
"filter_one": "filtro",
@@ -94,7 +109,7 @@
"none": "nessuno",
"menu": "menù",
"restartRequired": "riavvio richiesto",
"previousSong": "$t(entity.track_one) precedente",
"previousSong": "$t(entity.track, {\"count\": 1}) precedente",
"noResultsFromQuery": "la query non ha ritornato risultati",
"quit": "esci",
"expand": "espandi",
@@ -121,7 +136,24 @@
"trackPeak": "picco di volume del brano",
"translation": "traduzione",
"bitDepth": "bit depth (profondità di bit)",
"sampleRate": "sample rate (frequenza di campionamento)"
"sampleRate": "sample rate (frequenza di campionamento)",
"countSelected": "{{count}} selezionati",
"doNotShowAgain": "non mostrarlo di nuovo",
"view": "visualizza",
"example": "esempio",
"externalLinks": "link esterni",
"faster": "più rapido",
"filter_single": "singolo",
"noFilters": "nessun filtro configurato",
"private": "privato",
"public": "pubblico",
"retry": "riprova",
"recordLabel": "registra etichetta",
"rename": "rinomina",
"sort": "ordina",
"explicit": "esplicito",
"clean": "pulisci",
"itemsMore": "ancora {{count}}"
},
"player": {
"repeat_all": "ripeti coda",
@@ -138,7 +170,7 @@
"shuffle": "riproduzione casuale",
"playbackFetchNoResults": "nessuna canzone trovata",
"playbackFetchInProgress": "caricamento canzoni…",
"addNext": "aggiungi successivo",
"addNext": "successivo",
"playbackSpeed": "velocità di riproduzione",
"playbackFetchCancel": "ci sta mettendo un po'... chiudi la notifica per annullare",
"play": "riproduci",
@@ -150,18 +182,30 @@
"queue_moveToTop": "sposta selezionati in fondo",
"queue_moveToBottom": "sposta selezionati in cima",
"shuffle_off": "non mescolare",
"addLast": "aggiungi in coda",
"addLast": "per ultima",
"mute": "silenzia",
"skip_forward": "salta avanti",
"playSimilarSongs": "riproduci brani simili",
"viewQueue": "visualizza coda"
"viewQueue": "visualizza coda",
"holdToShuffle": "tieni premuto per la riproduzione casuale",
"lyrics": "testi",
"restoreQueueFromServer": "ripristina coda dal server",
"saveQueueToServer": "salva coda sul server",
"trackRadio": "radio della traccia",
"sleepTimer_minutes": "{{count}} minuti",
"sleepTimer_hours": "{{count}} ore",
"sleepTimer_custom": "personalizzato",
"sleepTimer_off": "spento",
"sleepTimer_timeRemaining": "{{time}} rimanente",
"sleepTimer_setCustom": "imposta timer",
"sleepTimer_cancel": "cancella timer"
},
"setting": {
"crossfadeStyle_description": "seleziona lo stile dissolvenza da usare per il player audio",
"remotePort_description": "imposta la porta del server di controllo remoto",
"hotkey_skipBackward": "salta a precedente",
"volumeWheelStep_description": "la quantità di volume da cambiare quando si scorre la rotellina del mouse sullo slider del volume",
"audioDevice_description": "seleziona il device audioda usare per la riproduzione (solo web player)",
"audioDevice_description": "seleziona il dispositivo audio da usare per la riproduzione",
"theme_description": "imposta il tema da usare per l'applicazione",
"hotkey_playbackPause": "pausa",
"hotkey_volumeUp": "alza volume",
@@ -200,11 +244,10 @@
"hotkey_globalSearch": "ricerca globale",
"gaplessAudio_description": "imposta l'audio gapless per mpv",
"remoteUsername_description": "imposta l'username del server di controllo remoto. Se username e password sono vuoti, l'autenticazione sarà disattivata",
"disableAutomaticUpdates": "disabilita aggiornamenti automatici",
"exitToTray_description": "riduce a icona nella barra di sistema all'uscita",
"followLyric_description": "scorre il testo alla posizione di riproduzione corrente",
"hotkey_favoritePreviousSong": "$t(common.previousSong) preferita",
"replayGainMode_optionAlbum": "$t(entity.album_one)",
"replayGainMode_optionAlbum": "$t(entity.album, {\"count\": 1})",
"lyricOffset": "offset testi (ms)",
"discordUpdateInterval_description": "il tempo in secondi tra ogni aggiornamento (minimo 15 secondi)",
"fontType_optionCustom": "font personalizzato",
@@ -216,7 +259,7 @@
"playbackStyle_optionCrossFade": "dissolvenza",
"hotkey_rate3": "voto 3 stelle",
"font": "font",
"replayGainMode_optionTrack": "$t(entity.track_one)",
"replayGainMode_optionTrack": "$t(entity.track, {\"count\": 1})",
"themeLight_description": "imposta il tema chiaro da usare per l'applicazione",
"hotkey_toggleFullScreenPlayer": "attiva/disattiva player a schermo intero",
"hotkey_localSearch": "ricerca in-pagina",
@@ -259,7 +302,7 @@
"useSystemTheme_description": "segui le preferenze del tema definite dal sistema",
"playButtonBehavior_optionAddNext": "$t(player.addNext)",
"lyricFetch_description": "ottieni testi da varie sorgenti internet",
"lyricFetchProvider_description": "seleziona i provider da dove prendere i testi. l'ordine dei provider è l'ordine in cui vengono fatte le richieste",
"lyricFetchProvider_description": "seleziona i provider dai quali prendere i testi",
"globalMediaHotkeys_description": "attiva/disattiva l'uso dei tasti media globali per controllare la riproduzione",
"customFontPath": "percorso font personalizzato",
"followLyric": "segui testo corrente",
@@ -392,7 +435,35 @@
"discordLinkType": "link di attività {{discord}}",
"discordLinkType_description": "aggiunge collegamenti esterni a {{lastfm}} o {{musicbrainz}} ai campi del brano e dell'artista nell'attività {{discord}}. {{musicbrainz}} è il più accurato, ma richiede tag e non fornisce collegamenti dell'artista mentre {{lastfm}} dovrebbe sempre fornire un link. non rende richieste di rete extra",
"discordLinkType_none": "$t(common.none)",
"discordLinkType_mbz_lastfm": "{{musicbrainz}} con {{lastfm}} fallback"
"discordLinkType_mbz_lastfm": "{{musicbrainz}} con {{lastfm}} fallback",
"autoDJ": "auto DJ",
"autoDJ_description": "aggiungi automaticamente canzoni simili alla coda",
"autoDJ_itemCount": "conteggio elementi",
"analyticsDisable_description": "Alcuni dati anonimi sull'utilizzo vengono inviati allo sviluppatore per migliorare l'applicazione",
"artistBackground": "immagine dello sfondo dell'artista",
"releaseChannel_optionBeta": "beta",
"releaseChannel_optionLatest": "ultima",
"releaseChannel": "canale di rilascio",
"releaseChannel_description": "seleziona tra rilascio stabile, beta o alpha (nightly) per gli aggiornamenti automatici",
"discordRichPresence": "{{discord}} rich presence",
"releaseChannel_optionAlpha": "alpha (nightly)",
"automaticUpdates_description": "Controlla e installa aggiornamenti automaticamente",
"automaticUpdates": "Aggiornamenti automatici",
"exportImportSettings_notValidJSON": "il file passato non è un JSON valido",
"language": "lingua",
"logLevel_optionDebug": "debug",
"logLevel_optionError": "errore",
"logLevel_optionInfo": "info",
"pathReplace_optionRemovePrefix": "rimuovi prefisso",
"pathReplace_optionAddPrefix": "aggiungi prefisso",
"playerFilters": "Filtra canzoni dalla coda",
"imageResolution_optionHeader": "header",
"playerbarWaveformAlign_optionTop": "in cima",
"sidebarPlaylistListFilterRegex_placeholder": "es. ^Daily Mix.*",
"transcode": "abilita transcodifica",
"queryBuilderCustomFields_inputLabel": "etichetta",
"queryBuilderCustomFields_inputTag": "tag",
"queryBuilderCustomFields": "campi personalizzati"
},
"error": {
"remotePortWarning": "riavvia il server per applicare la nuova porta",
@@ -418,14 +489,17 @@
"badValue": "opzione non valida \"{{value}}\". valore inesistente",
"networkError": "si è verificato un errore di rete",
"openError": "impossibile aprire il file",
"notificationDenied": "i permessi per le notifiche non sono stati concessi. questa configurazione non ha effetto"
"notificationDenied": "i permessi per le notifiche non sono stati concessi. questa configurazione non ha effetto",
"invalidJson": "JSON non valido",
"noNetwork": "server non disponibile",
"noNetworkDescription": "impossibile connettersi al server"
},
"filter": {
"mostPlayed": "più riprodotti",
"comment": "commento",
"playCount": "numero di riproduzioni",
"recentlyUpdated": "aggiornati recentemente",
"channels": "$t(common.channel_other)",
"channels": "$t(common.channel, {\"count\": 2})",
"isCompilation": "è una compilation",
"recentlyPlayed": "riprodotti recentemente",
"isRated": "è valutato",
@@ -434,17 +508,17 @@
"rating": "voto",
"search": "cerca",
"bitrate": "bitrate",
"genre": "$t(entity.genre_one)",
"genre": "$t(entity.genre, {\"count\": 1})",
"recentlyAdded": "aggiunti recentemente",
"note": "nota",
"name": "nome",
"dateAdded": "data aggiunta",
"releaseDate": "data di rilascio",
"albumCount": "numero $t(entity.album_other)",
"albumCount": "numero $t(entity.album, {\"count\": 2})",
"communityRating": "voto della community",
"path": "percorso",
"favorited": "preferito",
"albumArtist": "$t(entity.albumArtist_one)",
"albumArtist": "$t(entity.albumArtist, {\"count\": 1})",
"isRecentlyPlayed": "è stato recentemente riprodotto",
"isFavorited": "è preferito",
"bpm": "bpm",
@@ -453,7 +527,7 @@
"disc": "disco",
"biography": "biografia",
"songCount": "conteggio canzoni",
"artist": "$t(entity.artist_one)",
"artist": "$t(entity.artist, {\"count\": 1})",
"duration": "durata",
"isPublic": "è pubblico",
"random": "casuale",
@@ -461,24 +535,29 @@
"toYear": "fino all'anno",
"fromYear": "dall'anno",
"criticRating": "voto della critica",
"album": "$t(entity.album_one)",
"trackNumber": "traccia"
"album": "$t(entity.album, {\"count\": 1})",
"trackNumber": "traccia",
"matchOr": "o",
"sortName": "ordina nome"
},
"page": {
"sidebar": {
"nowPlaying": "in riproduzione",
"playlists": "$t(entity.playlist_other)",
"playlists": "$t(entity.playlist, {\"count\": 2})",
"search": "$t(common.search)",
"tracks": "$t(entity.track_other)",
"albums": "$t(entity.album_other)",
"genres": "$t(entity.genre_other)",
"folders": "$t(entity.folder_other)",
"settings": "$t(common.setting_other)",
"tracks": "$t(entity.track, {\"count\": 2})",
"albums": "$t(entity.album, {\"count\": 2})",
"genres": "$t(entity.genre, {\"count\": 2})",
"folders": "$t(entity.folder, {\"count\": 2})",
"settings": "$t(common.setting, {\"count\": 2})",
"home": "$t(common.home)",
"artists": "$t(entity.artist_other)",
"albumArtists": "$t(entity.albumArtist_other)",
"artists": "$t(entity.artist, {\"count\": 2})",
"albumArtists": "$t(entity.albumArtist, {\"count\": 2})",
"myLibrary": "la mia libreria",
"shared": "condivisa $t(entity.playlist_other)"
"shared": "condivisa $t(entity.playlist, {\"count\": 2})",
"collections": "collezioni",
"favorites": "$t(entity.favorite, {\"count\": 2})",
"radio": "$t(entity.radioStation, {\"count\": 2})"
},
"fullscreenPlayer": {
"config": {
@@ -506,7 +585,7 @@
"appMenu": {
"selectServer": "seleziona server",
"version": "versione {{version}}",
"settings": "$t(common.setting_other)",
"settings": "$t(common.setting, {\"count\": 2})",
"manageServers": "gestisci server",
"expandSidebar": "espandi barra laterale",
"collapseSidebar": "collassa barra laterale",
@@ -515,7 +594,10 @@
"goBack": "torna indietro",
"goForward": "vai avanti",
"privateModeOff": "disabilita modalità privata",
"privateModeOn": "abilita modalità privata"
"privateModeOn": "abilita modalità privata",
"selectMusicFolder": "seleziona cartella con musica",
"noMusicFolder": "nessuna cartella con musica selezionata",
"multipleMusicFolders": "{{count}} cartelle con musica selezionate"
},
"contextMenu": {
"addToPlaylist": "$t(action.addToPlaylist)",
@@ -540,8 +622,10 @@
"playShuffled": "$t(player.shuffle)",
"shareItem": "condividi elemento",
"showDetails": "mostra info",
"goToAlbum": "vai a $t(entity.album_one)",
"goToAlbumArtist": "vai a $t(entity.albumArtist_one)"
"goToAlbum": "vai a $t(entity.album, {\"count\": 1})",
"goToAlbumArtist": "vai a $t(entity.albumArtist, {\"count\": 1})",
"moveItems": "$t(action.moveItems)",
"goTo": "vai a"
},
"home": {
"mostPlayed": "più riprodotti",
@@ -549,10 +633,11 @@
"title": "$t(common.home)",
"explore": "esplora dalla tua libreria",
"recentlyPlayed": "riprodotti recentemente",
"recentlyReleased": "appena pubblicato"
"recentlyReleased": "appena pubblicato",
"genres": "$t(entity.genre, {\"count\": 2})"
},
"albumDetail": {
"moreFromArtist": "di più da questo $t(entity.artist_one)",
"moreFromArtist": "di più da questo $t(entity.artist, {\"count\": 1})",
"moreFromGeneric": "di più da {{item}}",
"released": "rilasciato"
},
@@ -561,20 +646,33 @@
"generalTab": "generale",
"hotkeysTab": "tasti a scelta rapida",
"windowTab": "finestra",
"advanced": "avanzate"
"advanced": "avanzate",
"updates": "aggiorna",
"cache": "cache",
"application": "applicazione",
"theme": "tema",
"controls": "controlla",
"remote": "remoto",
"exportImport": "importa/esporta",
"scrobble": "scrobble",
"audio": "audio",
"lyrics": "testi",
"transcoding": "transcodifica",
"discord": "discord",
"lyricsDisplay": "mostra testi"
},
"albumArtistList": {
"title": "$t(entity.albumArtist_other)"
"title": "$t(entity.albumArtist, {\"count\": 2})"
},
"genreList": {
"title": "$t(entity.genre_other)",
"showAlbums": "mostra $t(entity.genre_one) $t(entity.album_other)",
"showTracks": "mostra $t(entity.genre_one) $t(entity.track_other)"
"title": "$t(entity.genre, {\"count\": 2})",
"showAlbums": "mostra $t(entity.genre, {\"count\": 1}) $t(entity.album, {\"count\": 2})",
"showTracks": "mostra $t(entity.genre, {\"count\": 1}) $t(entity.track, {\"count\": 2})"
},
"trackList": {
"title": "$t(entity.track_other)",
"title": "$t(entity.track, {\"count\": 2})",
"artistTracks": "tracce di {{artist}}",
"genreTracks": "\"{{genre}}\" $t(entity.track_other)"
"genreTracks": "\"{{genre}}\" $t(entity.track, {\"count\": 2})"
},
"globalSearch": {
"commands": {
@@ -585,23 +683,26 @@
"title": "comandi"
},
"playlistList": {
"title": "$t(entity.playlist_other)"
"title": "$t(entity.playlist, {\"count\": 2})"
},
"albumList": {
"title": "$t(entity.album_other)",
"title": "$t(entity.album, {\"count\": 2})",
"artistAlbums": "albums di {{artist}}",
"genreAlbums": "\"{{genre}}\" $t(entity.album_other)"
"genreAlbums": "\"{{genre}}\" $t(entity.album, {\"count\": 2})"
},
"albumArtistDetail": {
"about": "Info {{artist}}",
"appearsOn": "compare su",
"recentReleases": "uscite recenti",
"viewDiscography": "mostra discografia",
"relatedArtists": "correlati $t(entity.artist_other)",
"relatedArtists": "correlati $t(entity.artist, {\"count\": 2})",
"topSongs": "brani migliori",
"topSongsFrom": "brani migliori da {{title}}",
"viewAll": "mostra tutto",
"viewAllTracks": "mostra tutto $t(entity.track_other)"
"viewAllTracks": "mostra tutto $t(entity.track, {\"count\": 2})",
"favoriteSongs": "canzoni preferite",
"topSongsPersonal": "personale",
"favoriteSongsFrom": "canzoni preferite da {{title}}"
},
"manageServers": {
"title": "gestisci servers",
@@ -618,20 +719,30 @@
},
"playlist": {
"reorder": "riordino abilitato solo quando si ordina per id"
},
"radioList": {
"title": "stazioni radio"
},
"folderList": {
"title": "$t(entity.folder, {\"count\": 2})"
},
"collections": {
"overrideExisting": "sovrascrivi esistente",
"saveAsCollection": "salva come collezione"
}
},
"form": {
"deletePlaylist": {
"title": "elimina $t(entity.playlist_one)",
"success": "$t(entity.playlist_one) eliminata correttamente",
"input_confirm": "digita il nome della $t(entity.playlist_one) per confermare"
"title": "elimina $t(entity.playlist, {\"count\": 1})",
"success": "$t(entity.playlist, {\"count\": 1}) eliminata correttamente",
"input_confirm": "digita il nome della $t(entity.playlist, {\"count\": 1}) per confermare"
},
"createPlaylist": {
"input_description": "$t(common.description)",
"title": "crea $t(entity.playlist_one)",
"title": "crea $t(entity.playlist, {\"count\": 1})",
"input_public": "publico",
"input_name": "$t(common.name)",
"success": "$t(entity.playlist_one) creata con successo",
"success": "$t(entity.playlist, {\"count\": 1}) creata con successo",
"input_owner": "$t(common.owner)"
},
"addServer": {
@@ -647,13 +758,17 @@
"ignoreCors": "ignora cors ($t(common.restartRequired))",
"error_savePassword": "si è verificato un errore quando si è provato a salvare la password",
"input_preferInstantMix": "preferisci mix istantaneo",
"input_preferInstantMixDescription": "usa solo mix istantaneo per ottenere canzoni simili. utile se si dispone di plugin che modificano questo comportamento"
"input_preferInstantMixDescription": "usa solo mix istantaneo per ottenere canzoni simili. utile se si dispone di plugin che modificano questo comportamento",
"input_preferRemoteUrl": "preferisci url pubblico",
"input_remoteUrl": "url pubblico"
},
"addToPlaylist": {
"success": "aggiunto $t(entity.trackWithCount, {\"count\": {{message}} }) a $t(entity.playlistWithCount, {\"count\": {{numOfPlaylists}} })",
"title": "aggiungi a $t(entity.playlist_one)",
"title": "aggiungi a $t(entity.playlist, {\"count\": 1})",
"input_skipDuplicates": "salta duplicati",
"input_playlists": "$t(entity.playlist_other)"
"input_playlists": "$t(entity.playlist, {\"count\": 2})",
"create": "crea $t(entity.playlist, {\"count\": 1})",
"searchOrCreate": "cerca $t(entity.playlist, {\"count\": 2}) o digita per crearne una nuova"
},
"updateServer": {
"title": "aggiorna server",
@@ -662,17 +777,19 @@
"queryEditor": {
"input_optionMatchAll": "soddisfa tutti",
"input_optionMatchAny": "soddisfa qualsiasi",
"title": "editor di query"
"title": "editor di query",
"resetToDefault": "ripristina predefinito",
"clearFilters": "rimuovi filtri"
},
"lyricSearch": {
"input_name": "$t(common.name)",
"input_artist": "$t(entity.artist_one)",
"input_artist": "$t(entity.artist, {\"count\": 1})",
"title": "cerca testi"
},
"editPlaylist": {
"title": "modifica $t(entity.playlist_one)",
"title": "modifica $t(entity.playlist, {\"count\": 1})",
"publicJellyfinNote": "Jellyfin non mostra se una playlist è pubblica o meno. Se vuoi che rimanga pubblica, assicurati di selezionare lopzione seguente",
"success": "$t(entity.playlist_one) aggiornato con successo"
"success": "$t(entity.playlist, {\"count\": 1}) aggiornato con successo"
},
"shareItem": {
"allowDownloading": "consentire il download",
@@ -686,6 +803,27 @@
"enabled": "la modalità privata è abilitata: lo stato di riproduzione viene ora nascosto alle integrazioni esterne",
"disabled": "la modalità privata è disabilitata: lo stato di riproduzione è ora visibile alle integrazioni esterne abilitate",
"title": "modalità privata"
},
"largeFetchConfirmation": {
"title": "aggiungi elementi alla coda"
},
"createRadioStation": {
"success": "stazione radio creata con successo",
"title": "crea stazione radio",
"input_name": "nome"
},
"lyricsExport": {
"export": "esporta testi",
"input_synced": "esporta testi sincronizzati",
"input_offset": "$t(setting.lyricOffset)"
},
"shuffleAll": {
"input_limit": "quante canzoni?",
"input_minYear": "dall'anno",
"input_maxYear": "all'anno",
"input_played_optionAll": "tutte le tracce",
"input_played_optionUnplayed": "solo tracce non ancora riprodotte",
"input_played_optionPlayed": "solo tracce riprodotte"
}
},
"table": {
@@ -698,12 +836,29 @@
"size": "$t(common.size)",
"followCurrentSong": "segui il brano corrente",
"itemGap": "spaziatura tra gli elementi (px)",
"itemSize": "dimensione dellelemento (px)"
"itemSize": "dimensione dellelemento (px)",
"advancedSettings": "impostazioni avanzate",
"moveUp": "muovi sopra",
"moveDown": "muovi sotto",
"pinToLeft": "fissa a sinistra",
"pinToRight": "fissa a destra",
"alignLeft": "allinea a sinistra",
"alignCenter": "allina al centro",
"alignRight": "allinea a destra",
"itemsPerRow": "elementi per riga",
"size_default": "predefinito",
"size_compact": "compatto",
"size_large": "largo",
"pagination": "paginazione",
"pagination_itemsPerPage": "elementi per pagina",
"pagination_infinite": "infinita",
"pagination_paginate": "impaginato"
},
"view": {
"table": "tabella",
"grid": "griglia",
"list": "lista"
"list": "lista",
"detail": "dettaglio"
},
"label": {
"releaseDate": "data rilascio",
@@ -717,23 +872,29 @@
"trackNumber": "numero traccia",
"rowIndex": "indice riga",
"rating": "$t(common.rating)",
"artist": "$t(entity.artist_one)",
"album": "$t(entity.album_one)",
"artist": "$t(entity.artist, {\"count\": 1})",
"album": "$t(entity.album, {\"count\": 1})",
"note": "$t(common.note)",
"biography": "$t(common.biography)",
"owner": "$t(common.owner)",
"path": "$t(common.path)",
"channels": "$t(common.channel_other)",
"channels": "$t(common.channel, {\"count\": 2})",
"playCount": "numero riproduzioni",
"bitrate": "$t(common.bitrate)",
"actions": "$t(common.action_other)",
"genre": "$t(entity.genre_one)",
"actions": "$t(common.action, {\"count\": 2})",
"genre": "$t(entity.genre, {\"count\": 1})",
"discNumber": "numero disco",
"favorite": "$t(common.favorite)",
"year": "$t(common.year)",
"albumArtist": "$t(entity.albumArtist_one)",
"albumArtist": "$t(entity.albumArtist, {\"count\": 1})",
"codec": "$t(common.codec)",
"songCount": "$t(entity.track_other)"
"songCount": "$t(entity.track, {\"count\": 2})",
"bitDepth": "$t(common.bitDepth)",
"albumCount": "$t(entity.album, {\"count\": 2})",
"composer": "compositore",
"image": "immagine",
"sampleRate": "$t(common.sampleRate)",
"titleArtist": "$t(common.title) (artista)"
}
},
"column": {
@@ -742,7 +903,7 @@
"rating": "voto",
"favorite": "preferito",
"playCount": "riproduzioni",
"albumCount": "$t(entity.album_other)",
"albumCount": "$t(entity.album, {\"count\": 2})",
"releaseYear": "anno",
"lastPlayed": "ultima riproduzione",
"biography": "biografia",
@@ -751,16 +912,19 @@
"title": "titolo",
"bpm": "bpm",
"dateAdded": "data aggiunta",
"artist": "$t(entity.artist_one)",
"songCount": "$t(entity.track_other)",
"artist": "$t(entity.artist, {\"count\": 1})",
"songCount": "$t(entity.track, {\"count\": 2})",
"trackNumber": "traccia",
"genre": "$t(entity.genre_one)",
"genre": "$t(entity.genre, {\"count\": 1})",
"albumArtist": "artista album",
"path": "percorso",
"discNumber": "disco",
"channels": "$t(common.channel_other)",
"channels": "$t(common.channel, {\"count\": 2})",
"size": "$t(common.size)",
"codec": "$t(common.codec)"
"codec": "$t(common.codec)",
"bitDepth": "$t(common.bitDepth)",
"sampleRate": "$t(common.sampleRate)",
"owner": "proprietario"
}
},
"entity": {
@@ -800,7 +964,7 @@
"folder_one": "cartella",
"folder_many": "cartelle",
"folder_other": "cartelle",
"smartPlaylist": "$t(entity.playlist_one) smart",
"smartPlaylist": "$t(entity.playlist, {\"count\": 1}) smart",
"album_one": "album",
"album_many": "album",
"album_other": "album",
@@ -815,6 +979,89 @@
"play_other": "{{count}} riproduzioni",
"song_one": "traccia",
"song_many": "tracce",
"song_other": "tracce"
"song_other": "tracce",
"radioStation_one": "stazione radio",
"radioStation_many": "stazioni radio",
"radioStation_other": "stazioni radio",
"radioStationWithCount_one": "{{count}} stazione radio",
"radioStationWithCount_many": "{{count}} stazioni radio",
"radioStationWithCount_other": "{{count}} stazioni radio"
},
"datetime": {
"minuteShort": "m",
"secondShort": "s",
"hourShort": "o",
"dayShort": "g"
},
"filterOperator": {
"contains": "contiene",
"endsWith": "finisce con",
"inPlaylist": "è in",
"is": "è",
"isNot": "non è",
"isGreaterThan": "è più grande di",
"isLessThan": "è meno di",
"notContains": "non contiene",
"notInPlaylist": "non è in",
"startsWith": "inizia con"
},
"releaseType": {
"primary": {
"album": "$t(entity.album, {\"count\": 1})",
"broadcast": "broadcast",
"ep": "ep",
"other": "altro",
"single": "singolo"
},
"secondary": {
"audiobook": "audiolibro",
"audioDrama": "audio drama",
"compilation": "compilation",
"interview": "intervista",
"live": "live",
"mixtape": "mixtape",
"remix": "remix",
"soundtrack": "soundtrack"
}
},
"queryBuilder": {
"customTags": "tag personalizzati"
},
"dragDropZone": {
"error_oneFileOnly": "Per favore seleziona solo 1 file",
"error_readingFile": "errore nella lettura del file: {{errorMessage}}",
"mainText": "rilascia un file qui"
},
"visualizer": {
"ignoredPresets": "Preset Ignorati",
"includeAllPresets": "Includi Tutti i Preset",
"selectedPresets": "Preset Selezionati",
"presets": "Preset",
"selectPreset": "Seleziona Preset",
"applyPreset": "Applica Preset",
"saveAsPreset": "Salva come Preset",
"updatePreset": "Aggiorna Preset",
"copyConfiguration": "Copia Configurazione",
"pasteConfiguration": "Incolla Configurazione",
"pasteConfigurationPlaceholder": "Incolla la configurazione JSON qui...",
"pasteFromClipboard": "Incolla dalla Clipboard",
"applyConfiguration": "Applica Configurazione",
"presetName": "Nome Preset",
"presetNamePlaceholder": "Inserisci il nome del preset",
"general": "Generale",
"mode": "Modalità",
"maxFPS": "Max FPS",
"opacity": "Opacità",
"customGradients": "Gradienti Personalizzati",
"gradientNamePlaceholder": "Nome Gradiente",
"vertical": "Verticale",
"horizontal": "Orizzontale",
"addColor": "Aggiungi Colore",
"position": "Posizione",
"level": "Livello",
"remove": "Rimuovi",
"pasteGradient": "Incolla Gradiente",
"custom": "Personalizzato",
"gradient": "Gradiente"
}
}
+380 -117
View File
@@ -11,10 +11,10 @@
"skip_back": "前へスキップ",
"favorite": "お気に入り",
"next": "次へ",
"shuffle": "シャッフル",
"shuffle": "再生 (シャッフル)",
"playbackFetchNoResults": "曲が見つかりません",
"playbackFetchInProgress": "曲を読み込み中…",
"addNext": "次へ追加",
"addNext": "次",
"playbackSpeed": "再生速度",
"playbackFetchCancel": "処理に時間がかかります… 通知を閉じるとキャンセルします",
"play": "再生",
@@ -25,12 +25,26 @@
"queue_moveToTop": "選択項目を一番下に移動",
"queue_moveToBottom": "選択項目を先頭に移動",
"shuffle_off": "シャッフル無効",
"addLast": "最後へ追加",
"addLast": "最後",
"mute": "ミュート",
"skip_forward": "次へスキップ",
"pause": "一時停止",
"playSimilarSongs": "似たような曲を再生する",
"viewQueue": "キューを表示する"
"viewQueue": "キューを表示",
"lyrics": "歌詞",
"restoreQueueFromServer": "サーバーからキューを復元",
"saveQueueToServer": "サーバーにキューを保存",
"addLastShuffled": "最後 (シャッフル)",
"addNextShuffled": "次 (シャッフル)",
"sleepTimer_minutes": "{{count}} 分",
"sleepTimer_hours": "{{count}} 時間",
"sleepTimer": "スリープタイマー",
"sleepTimer_endOfSong": "現在の曲の終わり",
"sleepTimer_custom": "カスタム",
"sleepTimer_off": "オフ",
"sleepTimer_timeRemaining": "残り {{time}}",
"sleepTimer_setCustom": "タイマーを設定",
"sleepTimer_cancel": "タイマーをキャンセル"
},
"setting": {
"crossfadeStyle_description": "オーディオプレーヤーが使用するクロスフェードのスタイルを選択します",
@@ -38,7 +52,7 @@
"hotkey_skipBackward": "前にスキップ",
"replayGainMode_description": "ファイルのメタデータに保存されている {{ReplayGain}} 値に従って音量ゲインを調整します",
"volumeWheelStep_description": "音量スライダーでマウスホイールをスクロールしたときに変化する音量を設定します",
"audioDevice_description": "再生に使用するオーディオデバイスを選択します (Web プレーヤーのみ)",
"audioDevice_description": "再生に使用するオーディオデバイスを選択します",
"theme_description": "アプリケーションに使用するテーマを設定します",
"hotkey_playbackPause": "一時停止",
"replayGainFallback": "{{ReplayGain}} フォールバック",
@@ -68,7 +82,7 @@
"scrobble_description": "再生した音楽をメディアサーバーから Scrobble します",
"hotkey_browserForward": "ブラウザ 進む",
"audioExclusiveMode_description": "排他出力モードを有効にします。このモードでは、システムの他の出力がロックされ、MPV のみがオーディオを出力できるようになります",
"discordUpdateInterval": "{{discord}} Rich Presenceアップデート間隔",
"discordUpdateInterval": "{{discord}} Rich Presence の更新間隔",
"themeLight": "テーマ (ライト)",
"fontType_optionBuiltIn": "組み込みフォント",
"hotkey_playbackPlayPause": "再生 / 一時停止",
@@ -90,13 +104,12 @@
"hotkey_globalSearch": "グローバル検索",
"gaplessAudio_description": "MPV 向けのギャップレス再生を設定します",
"remoteUsername_description": "リモートコントロール サーバーのユーザ名を設定します。 ユーザー名とパスワードの両方が空の場合、認証は無効になります",
"disableAutomaticUpdates": "自動更新を無効化",
"exitToTray_description": "アプリケーション終了ボタンが押された際、システムトレイに格納します",
"followLyric_description": "現在の再生位置に歌詞をスクロールします",
"hotkey_favoritePreviousSong": "$t(common.previousSong) をお気に入り",
"replayGainMode_optionAlbum": "$t(entity.album_one)",
"replayGainMode_optionAlbum": "$t(entity.album, {\"count\": 1})",
"lyricOffset": "歌詞のオフセット (ミリ秒)",
"discordUpdateInterval_description": "更新間隔 (秒単位, 最小15秒)",
"discordUpdateInterval_description": "更新間隔 (秒単位最小 15 秒)",
"fontType_optionCustom": "カスタムフォント",
"themeDark_description": "アプリケーションに使用するダークテーマを設定します",
"audioExclusiveMode": "オーディオ排他モード",
@@ -106,7 +119,7 @@
"playbackStyle_optionCrossFade": "クロスフェード",
"hotkey_rate3": "3つ星で評価",
"font": "フォント",
"replayGainMode_optionTrack": "$t(entity.track_one)",
"replayGainMode_optionTrack": "$t(entity.track, {\"count\": 1})",
"themeLight_description": "アプリケーションに使用するライトテーマを設定します",
"hotkey_toggleFullScreenPlayer": "フルスクリーンプレーヤーの切り替え",
"hotkey_localSearch": "ページ内検索",
@@ -115,7 +128,7 @@
"remotePassword_description": "リモートコントロール サーバーのパスワードを設定します。 ログイン情報はデフォルトでセキュアな通信がされないため、個人情報と関係ないランダムなパスワードを利用してください",
"hotkey_rate5": "5つ星で評価",
"hotkey_playbackPrevious": "前のトラック",
"showSkipButtons_description": "プレーヤーバーのスキップボタンを表示/非表示にします",
"showSkipButtons_description": "プレーヤーバーのスキップボタンを表示または非表示にします",
"crossfadeDuration_description": "クロスフェード効果の時間を設定します",
"playbackStyle": "再生スタイル",
"hotkey_toggleShuffle": "シャッフルの切り替え",
@@ -130,7 +143,7 @@
"exitToTray": "終了時にシステムトレイに格納",
"hotkey_rate4": "4つ星で評価",
"enableRemote": "リモートコントロール サーバーを有効化",
"showSkipButton_description": "プレーヤーバーのスキップボタンを表示/非表示にします",
"showSkipButton_description": "プレーヤーバーのスキップボタンを表示または非表示にします",
"savePlayQueue": "再生キューを保存",
"minimumScrobbleSeconds_description": "Scrobble されるために必要な最短の再生時間 (秒)",
"skipPlaylistPage_description": "プレイリストに移動するときに、デフォルトページではなくプレイリストの曲リストページに移動します",
@@ -156,7 +169,7 @@
"useSystemTheme_description": "システム設定のライト/ダークテーマに従います",
"playButtonBehavior_optionAddNext": "$t(player.addNext)",
"lyricFetch_description": "様々なインターネットソースから歌詞を取得します",
"lyricFetchProvider_description": "歌詞を取得するサービスを選択します。サービスの並び順に検索されます",
"lyricFetchProvider_description": "歌詞を取得するプロバイダーを選択します",
"globalMediaHotkeys_description": "システムのメディアホットキーでの再生コントロールを有効/無効化します",
"customFontPath": "カスタムフォントパス",
"followLyric": "歌詞を再生位置に追従",
@@ -188,7 +201,7 @@
"savePlayQueue_description": "アプリケーション終了時に再生キューを保存し、アプリケーション開始時に復元します",
"useSystemTheme": "システムテーマを使用",
"webAudio": "Web Audio を使用する",
"mediaSession_description": "Windows Media Session の統合を有効にし、システムボリュームオーバーレイとロック画面にメディアコントロールとメタデータを表示します (Windows のみ)",
"mediaSession_description": "Media Session の統合を有効にし、システムボリュームオーバーレイとロック画面にメディアコントロールとメタデータを表示します",
"mediaSession": "Media Session を有効にする",
"startMinimized_description": "システムトレイでアプリケーションを起動する",
"startMinimized": "最小化して起動する",
@@ -208,8 +221,8 @@
"musicbrainz": "MusicBrainz リンクを表示する",
"neteaseTranslation_description": "有効にすると、利用可能な場合は NetEase から翻訳された歌詞を取得して表示します",
"neteaseTranslation": "NetEase 翻訳歌詞を有効にする",
"passwordStore_description": "使用するパスワード/シークレットストア。パスワードの保存に問題がある場合はこれを変更してください",
"passwordStore": "パスワード/シークレットストア",
"passwordStore_description": "使用するパスワード / シークレットストア。パスワードの保存に問題がある場合はこれを変更してください",
"passwordStore": "パスワード / シークレットストア",
"playerbarOpenDrawer_description": "プレーヤーバーをクリックすると全画面プレーヤーが開きます",
"preferLocalLyrics_description": "利用可能な場合は、リモート歌詞よりもローカル歌詞を優先します",
"preferLocalLyrics": "ローカル歌詞を優先する",
@@ -242,8 +255,8 @@
"artistConfiguration_description": "アルバムアーティストページに表示するアイテムと順序を設定します",
"buttonSize_description": "プレーヤーバーのボタンのサイズ",
"buttonSize": "プレーヤーバーのボタンサイズ",
"clearCache_description": "Feishin の「ハードクリア」。Feishin のキャッシュをクリアするだけでなく、ブラウザのキャッシュ (保存された画像やその他のアセット) も空にします。サーバーの資格情報や設定は保持されます",
"clearCache": "ブラウザのキャッシュをクリアする",
"clearCache_description": "Feishin の「ハードクリア」。Feishin のキャッシュをクリアするだけでなく、ブラウザのキャッシュ (保存された画像やその他のアセット) も空にします。サーバーの資格情報や設定は保持されます",
"clearCache": "ブラウザのキャッシュをクリア",
"clearCacheSuccess": "キャッシュが正常にクリアされました",
"clearQueryCache_description": "Feishin の「ソフトクリア」。これにより、プレイリストとトラックのメタデータが更新され、保存された歌詞がリセットされます。設定、サーバーの資格情報、キャッシュされた画像は保持されます",
"clearQueryCache": "Feishin のキャッシュをクリアする",
@@ -258,11 +271,11 @@
"releaseChannel_optionBeta": "ベータ",
"releaseChannel_optionLatest": "最新",
"releaseChannel": "リリースチャンネル",
"releaseChannel_description": "自動更新のために安定版リリースまたはベータ版リリース選択してください",
"releaseChannel_description": "自動更新のために安定版、ベータ版、またはアルファ版 (nightly build) リリースから選択してください",
"discordDisplayType_artistname": "アーティスト名",
"discordDisplayType_songname": "曲名",
"discordLinkType_description": "{{discord}} Rich Presence において、曲とアーティストのフィールドに {{lastfm}} または {{musicbrainz}} への外部リンクを追加します。{{musicbrainz}} は最も正確ですが、タグが必要でアーティストリンクを提供しません。一方、{{lastfm}} は常にリンクを提供します。追加のネットワークリクエストは発生しません",
"discordPausedStatus": "一時停止時に Rich Presence を表示する",
"discordPausedStatus": "一時停止時に Rich Presence を表示",
"discordRichPresence": "{{discord}} Rich Presence",
"discordServeImage_description": "{{discord}} Rich Presence 用のカバーアートをサーバーから共有します。Jellyfin と Navidrome でのみ利用できます。{{discord}} は bot を使用して画像を取得するため、サーバーはパブリックインターネットからアクセスできる必要があります",
"exportImportSettings_control_exportText": "設定をエクスポート",
@@ -286,36 +299,102 @@
"discordDisplayType": "{{discord}} Presence 表示タイプ",
"discordLinkType_none": "$t(common.none)",
"discordListening_description": "Playing ではなく Listening としてステータスを表示します",
"discordListening": "ステータスを Listening として表示する",
"discordListening": "ステータスを Listening として表示",
"discordPausedStatus_description": "有効にすると、プレーヤーが一時停止されているときにもステータスを表示します",
"discordDisplayType_description": "ステータスで聴いている内容を変更します",
"discordLinkType": "{{discord}} Presence リンク",
"discordLinkType_mbz_lastfm": "{{musicbrainz}} と {{lastfm}} のフォールバック",
"homeFeature": "ホーム画面の注目カルーセル",
"homeFeature_description": "ホーム画面に大きな注目カルーセルを表示するかどうかを制御します",
"homeFeature": "ホーム画面のカルーセル",
"homeFeature_description": "ホーム画面に大きなカルーセルを表示するかどうかを制御します",
"exportImportSettings_notValidJSON": "渡されたファイルは有効な JSON ではありません",
"exportImportSettings_importSuccess": "設定が正常にインポートされました!",
"exportImportSettings_importModalTitle": "Feishin 設定をインポート",
"exportImportSettings_importBtn": "設定をインポート"
"exportImportSettings_importBtn": "設定をインポート",
"autoDJ_description": "類似の曲を自動でキューに追加します",
"autoDJ": "自動 DJ",
"autoDJ_itemCount_description": "自動 DJ が有効なときにキューに追加しようとした曲数",
"autoDJ_itemCount": "曲数",
"autoDJ_timing": "タイミング",
"autoDJ_timing_description": "自動 DJ が作動するまでのキューに残っている曲数",
"analyticsDisable": "使用状況に基づく分析のオプトアウト",
"analyticsDisable_description": "匿名化された利用データは、アプリケーションの改善のために開発者に送信されます",
"useThemeAccentColor": "テーマのアクセントカラーを使用",
"useThemeAccentColor_description": "カスタムアクセントカラーの代わりに、選択したテーマで定義されたプライマリカラーを使用します",
"artistReleaseTypeConfiguration": "アーティストリリースタイプの設定",
"artistReleaseTypeConfiguration_description": "アルバムアーティストページでどのリリースタイプをどのような順序で表示するかを設定します",
"followCurrentSong": "現在の曲をフォロー",
"followCurrentSong_description": "再生キューを現在再生中の曲まで自動的にスクロールします",
"logLevel": "ログレベル",
"logLevel_description": "表示するログの最小レベルを設定します。debug はすべてのログを表示し、error はエラーのみを表示します",
"logLevel_optionDebug": "debug",
"logLevel_optionError": "error",
"logLevel_optionInfo": "info",
"logLevel_optionWarn": "warn",
"playerFilters": "キューから曲をフィルタリング",
"playerFilters_description": "以下の基準に基づいて曲をキューに追加しないようにします",
"artistRadioCount": "アーティスト / トラックのラジオカウント",
"artistRadioCount_description": "アーティストラジオとトラックラジオで取得する曲数を設定します",
"imageResolution": "画像の解像度",
"imageResolution_description": "アプリ内で使用される画像の解像度。値を 0 に設定すると、デフォルトでネイティブ画像解像度が適用されます",
"showLyricsInSidebar_description": "添付の再生キューに歌詞を表示するパネルが追加されます",
"showLyricsInSidebar": "プレーヤーのサイドバーに歌詞を表示する",
"showRatings": "星評価を表示する",
"imageResolution_optionSidebar": "サイドバー",
"imageResolution_optionHeader": "ヘッダー",
"imageResolution_optionFullScreenPlayer": "全画面プレーヤー",
"playerbarSlider": "プレーヤーバースライダー",
"playerbarSlider_description": "低速または従量制のインターネット接続の場合は、波形は推奨されません",
"playerbarSliderType_optionSlider": "スライダー",
"playerbarSliderType_optionWaveform": "波形",
"playerbarWaveformAlign": "波形アライメント",
"showRatings_description": "インターフェースに星評価機能を表示するかどうかを制御します",
"showVisualizerInSidebar": "プレーヤーのサイドバーにビジュアライザーを表示する",
"combinedLyricsAndVisualizer": "プレーヤーのサイドバーに歌詞とビジュアライザーを統合する",
"audioFadeOnStatusChange_description": "再生 / 一時停止の状態が変わったときにフェードアウトとフェードインを有効にします",
"audioFadeOnStatusChange": "ステータス変更時の音声フェード",
"combinedLyricsAndVisualizer_description": "歌詞とビジュアライザーを同じパネルに統合します",
"showVisualizerInSidebar_description": "プレーヤーのサイドバーにビジュアライザーを表示するパネルが追加されます",
"queryBuilderCustomFields": "カスタムフィールド",
"queryBuilderCustomFields_inputLabel": "ラベル",
"queryBuilderCustomFields_inputTag": "タグ",
"queryBuilderCustomFields_description": "クエリビルダーで使用するカスタムフィールドを追加します",
"queryBuilder": "クエリビルダー",
"homeFeatureStyle_description": "ホーム画面のカルーセルのスタイルを制御します",
"homeFeatureStyle": "ホーム画面のカルーセルのスタイル",
"homeFeatureStyle_optionMultiple": "複数",
"homeFeatureStyle_optionSingle": "単数",
"mpvExtraParameters": "MPV の追加パラメータ",
"mpvExtraParameters_description": "MPV に渡す追加の引数を設定します",
"pathReplace": "ファイルパスの置換",
"pathReplace_description": "サーバーのデフォルトのファイルパスを置き換えます",
"pathReplace_optionRemovePrefix": "接頭辞を削除",
"pathReplace_optionAddPrefix": "接頭辞を追加",
"analyticsEnable": "使用状況に基づく分析を送信する",
"analyticsEnable_description": "匿名化された利用データは、アプリケーションの改善のために開発者に送信されます",
"automaticUpdates": "自動更新",
"automaticUpdates_description": "更新を自動的に確認してインストールします",
"releaseChannel_optionAlpha": "アルファ (nightly)",
"discordStateIcon": "再生中アイコンを表示",
"discordStateIcon_description": "Rich Presence ステータスに小さな再生アイコンを表示します。「一時停止時に Rich Presence を表示」が有効になっている場合は、常に一時停止アイコンが表示されます"
},
"action": {
"editPlaylist": "$t(entity.playlist_one) を編集",
"editPlaylist": "$t(entity.playlist, {\"count\": 1}) を編集",
"goToPage": "ページへ移動",
"moveToTop": "先頭に移動",
"clearQueue": "キューをクリア",
"addToFavorites": "$t(entity.favorite_other) に追加",
"addToPlaylist": "$t(entity.playlist_one) に追加",
"createPlaylist": "$t(entity.playlist_one) を作成",
"removeFromPlaylist": "$t(entity.playlist_one) から削除",
"viewPlaylists": "$t(entity.playlist_other) を表示",
"addToFavorites": "$t(entity.favorite, {\"count\": 2}) に追加",
"addToPlaylist": "$t(entity.playlist, {\"count\": 1}) に追加",
"createPlaylist": "$t(entity.playlist, {\"count\": 1}) を作成",
"removeFromPlaylist": "$t(entity.playlist, {\"count\": 1}) から削除",
"viewPlaylists": "$t(entity.playlist, {\"count\": 2}) を表示",
"refresh": "$t(common.refresh)",
"deletePlaylist": "$t(entity.playlist_one) を削除",
"deletePlaylist": "$t(entity.playlist, {\"count\": 1}) を削除",
"removeFromQueue": "キューから削除",
"deselectAll": "すべて選択解除",
"moveToBottom": "末尾に移動",
"setRating": "評価を設定する",
"toggleSmartPlaylistEditor": "$t(entity.smartPlaylist) エディタの切り替え",
"removeFromFavorites": "$t(entity.favorite_other) から削除",
"removeFromFavorites": "$t(entity.favorite, {\"count\": 2}) から削除",
"openIn": {
"lastfm": "Last.fm で開く",
"musicbrainz": "MusicBrainz で開く"
@@ -326,7 +405,17 @@
"shuffle": "シャッフル",
"shuffleAll": "すべてシャッフル",
"shuffleSelected": "選択した曲をシャッフル",
"viewMore": "さらに表示"
"viewMore": "さらに表示",
"createRadioStation": "$t(entity.radioStation, {\"count\": 1}) を作成",
"deleteRadioStation": "$t(entity.radioStation, {\"count\": 1}) を削除",
"selectAll": "すべて選択",
"moveUp": "上に移動",
"moveDown": "下に移動",
"holdToMoveToTop": "押し続けると一番上に移動します",
"holdToMoveToBottom": "押し続けると一番下に移動します",
"openApplicationDirectory": "アプリケーションディレクトリを開く",
"selectRangeOfItems": "項目の範囲を選択",
"addOrRemoveFromSelection": "選択に追加または削除"
},
"common": {
"backward": "戻る",
@@ -341,7 +430,7 @@
"left": "左側",
"save": "保存",
"right": "右側",
"currentSong": "現在の $t(entity.track_one)",
"currentSong": "現在の $t(entity.track, {\"count\": 1})",
"collapse": "折りたたみ",
"trackNumber": "トラック",
"descending": "降順",
@@ -371,7 +460,7 @@
"delete": "削除",
"cancel": "キャンセル",
"forceRestartRequired": "変更を適用するために再起動が必要です… 通知を閉じると再起動します",
"setting": "設定",
"setting_other": "設定",
"version": "バージョン",
"title": "タイトル",
"filter_other": "フィルタ",
@@ -392,7 +481,7 @@
"none": "なし",
"menu": "メニュー",
"restartRequired": "再起動が必要です",
"previousSong": "前の $t(entity.track_one)",
"previousSong": "前の $t(entity.track, {\"count\": 1})",
"noResultsFromQuery": "条件にマッチするものがありません",
"quit": "終了",
"expand": "展開",
@@ -429,7 +518,22 @@
"doNotShowAgain": "再度表示しない",
"externalLinks": "外部リンク",
"sort": "分類",
"gridRows": "グリッド行"
"gridRows": "グリッド行",
"countSelected": "{{count}} 個選択されました",
"view": "表示",
"noFilters": "フィルターが設定されていません",
"retry": "再試行",
"itemsMore": "{{count}} 個以上",
"faster": "より速く",
"slower": "より遅く",
"example": "例",
"mood": "気分",
"recordLabel": "レコードレーベル",
"tableColumns": "テーブル列",
"clean": "クリーン",
"filter_single": "シングル",
"filter_multiple": "複数枚組",
"rename": "名前を変更"
},
"table": {
"config": {
@@ -446,37 +550,59 @@
"size": "$t(common.size)",
"itemSize": "項目のサイズ (px)",
"itemGap": "項目の間隔 (px)",
"followCurrentSong": "現在の曲をフォロー"
"followCurrentSong": "現在の曲をフォロー",
"advancedSettings": "詳細設定",
"autosize": "自動サイズ調整",
"moveUp": "上に移動",
"moveDown": "下に移動",
"alignLeft": "左揃え",
"alignCenter": "中央揃え",
"alignRight": "右揃え",
"itemsPerRow": "行あたりの項目数",
"size_default": "デフォルト",
"pinToLeft": "左にピン留め",
"pinToRight": "右にピン留め",
"size_compact": "コンパクト",
"size_large": "大きい",
"pagination_itemsPerPage": "ページあたりの項目数",
"pagination_infinite": "無限"
},
"label": {
"releaseDate": "リリース日時",
"releaseDate": "発売日",
"title": "$t(common.title)",
"duration": "$t(common.duration)",
"titleCombined": "$t(common.title) (結合)",
"dateAdded": "追加された日時",
"dateAdded": "追加",
"size": "$t(common.size)",
"bpm": "$t(common.bpm)",
"lastPlayed": "最後に再生",
"trackNumber": "トラック番号",
"rowIndex": "行インデックス",
"rating": "$t(common.rating)",
"artist": "$t(entity.artist_one)",
"album": "$t(entity.album_one)",
"artist": "$t(entity.artist, {\"count\": 1})",
"album": "$t(entity.album, {\"count\": 1})",
"note": "$t(common.note)",
"biography": "$t(common.biography)",
"owner": "$t(common.owner)",
"path": "$t(common.path)",
"channels": "$t(common.channel_other)",
"channels": "$t(common.channel, {\"count\": 2})",
"playCount": "再生回数",
"bitrate": "$t(common.bitrate)",
"actions": "$t(common.action_other)",
"genre": "$t(entity.genre_one)",
"actions": "$t(common.action, {\"count\": 2})",
"genre": "$t(entity.genre, {\"count\": 1})",
"discNumber": "ディスク番号",
"favorite": "$t(common.favorite)",
"year": "$t(common.year)",
"albumArtist": "$t(entity.albumArtist_one)",
"albumArtist": "$t(entity.albumArtist, {\"count\": 1})",
"codec": "$t(common.codec)",
"songCount": "$t(entity.track_other)"
"songCount": "$t(entity.track, {\"count\": 2})",
"albumCount": "$t(entity.album, {\"count\": 2})",
"bitDepth": "$t(common.bitDepth)",
"genreBadge": "$t(entity.genre, {\"count\": 1}) (バッジ)",
"image": "画像",
"sampleRate": "$t(common.sampleRate)",
"composer": "作曲家",
"titleArtist": "$t(common.title) (アーティスト)"
}
},
"column": {
@@ -485,7 +611,7 @@
"rating": "評価",
"favorite": "お気に入り",
"playCount": "再生回数",
"albumCount": "$t(entity.album_other)",
"albumCount": "$t(entity.album, {\"count\": 2})",
"releaseYear": "年",
"lastPlayed": "最後に再生",
"biography": "バイオグラフィー",
@@ -493,17 +619,20 @@
"bitrate": "ビットレート",
"title": "タイトル",
"bpm": "BPM",
"dateAdded": "追加された日時",
"artist": "$t(entity.artist_one)",
"songCount": "$t(entity.track_other)",
"dateAdded": "追加",
"artist": "$t(entity.artist, {\"count\": 1})",
"songCount": "$t(entity.track, {\"count\": 2})",
"trackNumber": "トラック",
"genre": "$t(entity.genre_one)",
"genre": "$t(entity.genre, {\"count\": 1})",
"albumArtist": "アルバムアーティスト",
"path": "パス",
"discNumber": "ディスク",
"channels": "$t(common.channel_other)",
"channels": "$t(common.channel, {\"count\": 2})",
"size": "$t(common.size)",
"codec": "$t(common.codec)"
"codec": "$t(common.codec)",
"bitDepth": "$t(common.bitDepth)",
"sampleRate": "$t(common.sampleRate)",
"owner": "所有者"
}
},
"error": {
@@ -517,20 +646,27 @@
"genericError": "エラーが発生しました",
"credentialsRequired": "ログイン情報が必要です",
"sessionExpiredError": "セッションの有効期限が切れました",
"remoteEnableError": "リモートサーバーを $t(common.enable) にする際にエラーが発生しました",
"remoteEnableError": "リモートサーバーを$t(common.enable)にする際にエラーが発生しました",
"localFontAccessDenied": "ローカルフォントへのアクセスが拒否されました",
"serverNotSelectedError": "サーバーが選択されていません",
"remoteDisableError": "リモートサーバーを $t(common.disable) にする際にエラーが発生しました",
"remoteDisableError": "リモートサーバーを$t(common.disable)にする際にエラーが発生しました",
"mpvRequired": "MPV が必要です",
"audioDeviceFetchError": "オーディオデバイスの取得時にエラーが発生しました",
"invalidServer": "無効なサーバー",
"loginRateError": "ログイン試行回数が多すぎます。数秒後に再試行してください",
"endpointNotImplementedError": "{{serverType}} にはエンドポイント {{endpoint}} が実装されていません",
"badAlbum": "このページが表示されたのは、この曲がアルバムに含まれていないためです。この問題は、音楽フォルダの最上位に曲がある場合に発生する可能性が高くなります。Jellyfin は、トラックがフォルダ内にある場合にのみトラックをグループ化します",
"badAlbum": "このページが表示されたのは、この曲がアルバムに含まれていないためです。この問題は、音楽フォルダの最上位に曲がある場合に発生する可能性が高くなります。Jellyfin は、トラックがフォルダ内にある場合にのみトラックをグループ化します",
"networkError": "ネットワークエラーが発生しました",
"notificationDenied": "通知の許可が拒否されました。この設定は効果がありません",
"openError": "ファイルを開けませんでした",
"badValue": "無効なオプション「{{value}}」。この値は存在しません"
"badValue": "無効なオプション「{{value}}」。この値は存在しません",
"multipleServerSaveQueueError": "再生キューに現在のサーバーに存在しない曲が 1 曲以上あります。これはサポートされていません",
"noNetwork": "サーバーが利用できません",
"noNetworkDescription": "このサーバーに接続できませんでした",
"saveQueueFailed": "キューを保存できませんでした",
"settingsSyncError": "レンダラーとメインプロセスの設定に矛盾が見つかりました。変更を適用するにはアプリケーションを再起動してください",
"invalidJson": "無効な JSON",
"serverLockSingleServer": "サーバーがロックされている場合、1 つのサーバーのみが許可されます"
},
"filter": {
"mostPlayed": "最も多く再生",
@@ -545,12 +681,12 @@
"recentlyAdded": "最近の追加",
"note": "ノート",
"name": "名前",
"dateAdded": "追加された日時",
"dateAdded": "追加",
"releaseDate": "発売日",
"communityRating": "コミュニティの評価",
"path": "パス",
"favorited": "お気に入り",
"albumArtist": "$t(entity.albumArtist_one)",
"albumArtist": "$t(entity.albumArtist, {\"count\": 1})",
"isRecentlyPlayed": "最近再生済み",
"isFavorited": "お気に入り済み",
"bpm": "BPM",
@@ -558,7 +694,7 @@
"disc": "ディスク",
"biography": "バイオグラフィー",
"songCount": "曲数",
"artist": "$t(entity.artist_one)",
"artist": "$t(entity.artist, {\"count\": 1})",
"duration": "長さ",
"random": "ランダム",
"lastPlayed": "最後に再生",
@@ -569,29 +705,33 @@
"comment": "コメント",
"recentlyUpdated": "新規更新",
"isPublic": "共有済み",
"channels": "$t(common.channel_other)",
"channels": "$t(common.channel, {\"count\": 2})",
"owner": "$t(common.owner)",
"genre": "$t(entity.genre_one)",
"albumCount": "$t(entity.album_other) ",
"genre": "$t(entity.genre, {\"count\": 1})",
"albumCount": "$t(entity.album, {\"count\": 2}) ",
"id": "ID",
"album": "$t(entity.album_one)",
"explicitStatus": "$t(common.explicitStatus)"
"album": "$t(entity.album, {\"count\": 1})",
"explicitStatus": "$t(common.explicitStatus)",
"sortName": "ソート名"
},
"page": {
"sidebar": {
"nowPlaying": "再生中",
"playlists": "$t(entity.playlist_other)",
"playlists": "$t(entity.playlist, {\"count\": 2})",
"search": "$t(common.search)",
"tracks": "$t(entity.track_other)",
"albums": "$t(entity.album_other)",
"genres": "$t(entity.genre_other)",
"folders": "$t(entity.folder_other)",
"settings": "$t(common.setting_other)",
"tracks": "$t(entity.track, {\"count\": 2})",
"albums": "$t(entity.album, {\"count\": 2})",
"genres": "$t(entity.genre, {\"count\": 2})",
"folders": "$t(entity.folder, {\"count\": 2})",
"settings": "$t(common.setting, {\"count\": 2})",
"home": "$t(common.home)",
"artists": "$t(entity.artist_other)",
"albumArtists": "$t(entity.albumArtist_other)",
"artists": "$t(entity.artist, {\"count\": 2})",
"albumArtists": "$t(entity.albumArtist, {\"count\": 2})",
"myLibrary": "マイライブラリ",
"shared": "$t(entity.playlist_other) を共有"
"shared": "$t(entity.playlist, {\"count\": 2}) を共有",
"radio": "$t(entity.radioStation, {\"count\": 2})",
"favorites": "$t(entity.favorite, {\"count\": 2})",
"collections": "コレクション"
},
"fullscreenPlayer": {
"config": {
@@ -619,16 +759,20 @@
"appMenu": {
"selectServer": "サーバーを選択",
"version": "バージョン {{version}}",
"settings": "$t(common.setting_other)",
"settings": "$t(common.setting, {\"count\": 2})",
"manageServers": "サーバーの管理",
"expandSidebar": "サイドバーを展開",
"collapseSidebar": "サイドバーを折りたたむ",
"openBrowserDevtools": "ブラウザの開発者ツールを開く",
"openBrowserDevtools": "ブラウザの開発者ツールを開く",
"quit": "$t(common.quit)",
"goBack": "戻る",
"goForward": "進む",
"privateModeOff": "プライベートモードをオフにする",
"privateModeOn": "プライベートモードをオンにする"
"privateModeOn": "プライベートモードをオンにする",
"selectMusicFolder": "音楽フォルダーを選択",
"noMusicFolder": "音楽フォルダーが選択されていません",
"commandPalette": "コマンドパレットを開く",
"multipleMusicFolders": "{{count}} 個の音楽フォルダーが選択されました"
},
"contextMenu": {
"addToPlaylist": "$t(action.addToPlaylist)",
@@ -651,10 +795,12 @@
"moveToNext": "$t(action.moveToNext)",
"playSimilarSongs": "$t(player.playSimilarSongs)",
"shareItem": "アイテムを共有する",
"goToAlbum": "$t(entity.album_one) に移動",
"goToAlbumArtist": "$t(entity.albumArtist_one) に移動",
"goToAlbum": "$t(entity.album, {\"count\": 1}) に移動",
"goToAlbumArtist": "$t(entity.albumArtist, {\"count\": 1}) に移動",
"showDetails": "情報を取得する",
"playShuffled": "$t(player.shuffle)"
"playShuffled": "$t(player.shuffle)",
"moveItems": "$t(action.moveItems)",
"goTo": "移動"
},
"home": {
"mostPlayed": "最も多く再生",
@@ -662,10 +808,11 @@
"title": "$t(common.home)",
"explore": "ライブラリから検索",
"recentlyPlayed": "最近の再生",
"recentlyReleased": "最近のリリース"
"recentlyReleased": "最近のリリース",
"genres": "$t(entity.genre, {\"count\": 2})"
},
"albumDetail": {
"moreFromArtist": "$t(entity.artist_one) の他の項目",
"moreFromArtist": "$t(entity.artist, {\"count\": 1}) の他の項目",
"moreFromGeneric": "{{item}} の他の作品",
"released": "リリース"
},
@@ -674,20 +821,38 @@
"generalTab": "一般",
"hotkeysTab": "ホットキー",
"windowTab": "ウィンドウ",
"advanced": "高度"
"advanced": "高度",
"analytics": "分析",
"updates": "更新",
"cache": "キャッシュ",
"application": "アプリケーション",
"queryBuilder": "クエリビルダー",
"theme": "テーマ",
"controls": "コントロール",
"sidebar": "サイドバー",
"remote": "リモート",
"exportImport": "インポート / エクスポート",
"scrobble": "Scrobble",
"audio": "オーディオ",
"lyrics": "歌詞",
"lyricsDisplay": "歌詞表示",
"transcoding": "トランスコーディング",
"discord": "Discord",
"logger": "ロガー",
"playerFilters": "プレーヤーフィルター"
},
"albumArtistList": {
"title": "$t(entity.albumArtist_other)"
"title": "$t(entity.albumArtist, {\"count\": 2})"
},
"genreList": {
"title": "$t(entity.genre_other)",
"showAlbums": "$t(entity.genre_one) $t(entity.album_other) を表示",
"showTracks": "$t(entity.genre_one) $t(entity.track_other) を表示"
"title": "$t(entity.genre, {\"count\": 2})",
"showAlbums": "$t(entity.genre, {\"count\": 1}) $t(entity.album, {\"count\": 2}) を表示",
"showTracks": "$t(entity.genre, {\"count\": 1}) $t(entity.track, {\"count\": 2}) を表示"
},
"trackList": {
"title": "$t(entity.track_other)",
"title": "$t(entity.track, {\"count\": 2})",
"artistTracks": "{{artist}} のトラック",
"genreTracks": "\"{{genre}}\" $t(entity.track_other)"
"genreTracks": "\"{{genre}}\" $t(entity.track, {\"count\": 2})"
},
"globalSearch": {
"commands": {
@@ -698,12 +863,12 @@
"title": "コマンド"
},
"playlistList": {
"title": "$t(entity.playlist_other)"
"title": "$t(entity.playlist, {\"count\": 2})"
},
"albumList": {
"title": "$t(entity.album_other)",
"title": "$t(entity.album, {\"count\": 2})",
"artistAlbums": "{{artist}} のアルバム",
"genreAlbums": "\"{{genre}}\" $t(entity.album_other)"
"genreAlbums": "\"{{genre}}\" $t(entity.album, {\"count\": 2})"
},
"albumArtistDetail": {
"about": "{{artist}} について",
@@ -711,10 +876,15 @@
"recentReleases": "最近のリリース",
"viewDiscography": "ディスコグラフィーを見る",
"topSongs": "人気曲",
"topSongsFrom": "{{title}} からの人気曲",
"topSongsFrom": "{{title}} の人気曲",
"viewAll": "すべて表示",
"viewAllTracks": "$t(entity.track_other) をすべて表示",
"relatedArtists": "関連の $t(entity.artist_other)"
"viewAllTracks": "$t(entity.track, {\"count\": 2}) をすべて表示",
"relatedArtists": "関連の $t(entity.artist, {\"count\": 2})",
"groupingTypeAll": "すべてのリリースタイプ",
"groupingTypePrimary": "主なリリースタイプ",
"favoriteSongs": "お気に入りの曲",
"topSongsCommunity": "コミュニティ",
"favoriteSongsFrom": "{{title}} のお気に入りの曲"
},
"manageServers": {
"title": "サーバーの管理",
@@ -731,20 +901,42 @@
},
"playlist": {
"reorder": "ID によるソート時のみ並べ替えが可能です"
},
"radioList": {
"title": "ラジオ局"
},
"favorites": {
"title": "$t(entity.favorite, {\"count\": 2})"
},
"folderList": {
"title": "$t(entity.folder, {\"count\": 2})"
},
"windowBar": {
"paused": "(一時停止) ",
"privateMode": "(プライベートモード)"
},
"collections": {
"overrideExisting": "既存のものを上書き",
"saveAsCollection": "コレクションとして保存"
},
"releasenotes": {
"commitsSinceStable": "{{stable}} 以降のコミット",
"noNewCommits": "この範囲に新しいコミットはありません",
"noStableReleaseToCompare": "比較可能な安定版リリースはありません"
}
},
"form": {
"deletePlaylist": {
"title": "$t(entity.playlist_one) を削除",
"success": "$t(entity.playlist_one) が削除されました",
"input_confirm": "確認のため $t(entity.playlist_one) の名前を入力してください"
"title": "$t(entity.playlist, {\"count\": 1}) を削除",
"success": "$t(entity.playlist, {\"count\": 1}) が削除されました",
"input_confirm": "確認のため $t(entity.playlist, {\"count\": 1}) の名前を入力してください"
},
"createPlaylist": {
"input_description": "$t(common.description)",
"title": "$t(entity.playlist_one) を作成",
"title": "$t(entity.playlist, {\"count\": 1}) を作成",
"input_public": "公開",
"input_name": "$t(common.name)",
"success": "$t(entity.playlist_one) を作成しました",
"success": "$t(entity.playlist, {\"count\": 1}) を作成しました",
"input_owner": "$t(common.owner)"
},
"addServer": {
@@ -756,19 +948,22 @@
"input_name": "サーバー名",
"success": "サーバーが追加されました",
"input_savePassword": "パスワードを保存",
"ignoreSsl": "SSL を無視 ($t(common.restartRequired))",
"ignoreCors": "CORSを無視 ($t(common.restartRequired))",
"ignoreSsl": "SSL を無視します ($t(common.restartRequired))",
"ignoreCors": "CORS を無視します ($t(common.restartRequired))",
"error_savePassword": "パスワードを保存する際にエラーが発生しました",
"input_preferInstantMixDescription": "類似曲を取得するにはインスタントミックスのみを使用してください。この動作を変更するプラグインがある場合に役立ちます",
"input_preferInstantMix": "インスタントミックスを優先する"
"input_preferInstantMix": "インスタントミックスを優先する",
"input_preferRemoteUrl": "公開 URL を優先する",
"input_remoteUrl": "公開 URL",
"input_remoteUrlPlaceholder": "オプション: 外部機能用の公開 URL"
},
"addToPlaylist": {
"success": "$t(entity.trackWithCount, {\"count\": {{message}} }) を $t(entity.playlistWithCount, {\"count\": {{numOfPlaylists}} }) に追加しました",
"title": "$t(entity.playlist_one) に追加",
"title": "$t(entity.playlist, {\"count\": 1}) に追加",
"input_skipDuplicates": "重複をスキップ",
"input_playlists": "$t(entity.playlist_other)",
"create": "$t(entity.playlist_one) {{playlist}} を作成する",
"searchOrCreate": "$t(entity.playlist_other) を検索するか、入力して新しいものを作成してください"
"input_playlists": "$t(entity.playlist, {\"count\": 2})",
"create": "$t(entity.playlist, {\"count\": 1}) {{playlist}} を作成する",
"searchOrCreate": "$t(entity.playlist, {\"count\": 2}) を検索するか、入力して新しいプレイリストを作成してください"
},
"updateServer": {
"title": "サーバーをアップデート",
@@ -777,17 +972,22 @@
"queryEditor": {
"input_optionMatchAll": "すべて一致",
"input_optionMatchAny": "一部一致",
"title": "クエリエディタ"
"title": "クエリエディタ",
"addRuleGroup": "ルールグループを追加",
"removeRuleGroup": "ルールグループを削除",
"resetToDefault": "デフォルトにリセット",
"clearFilters": "フィルターを削除"
},
"lyricSearch": {
"input_name": "$t(common.name)",
"input_artist": "$t(entity.artist_one)",
"input_artist": "$t(entity.artist, {\"count\": 1})",
"title": "歌詞検索"
},
"editPlaylist": {
"title": "$t(entity.playlist_one) を編集",
"title": "$t(entity.playlist, {\"count\": 1}) を編集",
"publicJellyfinNote": "Jellyfin では、何らかの理由でプレイリストが公開されているかどうかが表示されません。公開されたままにしたい場合は、以下の項目を選択してください",
"success": "$t(entity.playlist_one) が正常に更新されました"
"success": "$t(entity.playlist, {\"count\": 1}) が正常に更新されました",
"editNote": "大規模なプレイリストの場合、手動編集は推奨されません。既存のプレイリストを上書きすることでデータ損失が発生するリスクを許容しますか?"
},
"shareItem": {
"allowDownloading": "ダウンロードを許可",
@@ -805,6 +1005,32 @@
"largeFetchConfirmation": {
"title": "キューにアイテムを追加する",
"description": "このアクションは、現在のフィルターされたビュー内のすべてのアイテムを追加します"
},
"createRadioStation": {
"success": "ラジオ局が正常に作成されました",
"title": "ラジオ局を作成",
"input_homepageUrl": "ホームページ URL",
"input_name": "名前",
"input_streamUrl": "Stream URL"
},
"lyricsExport": {
"export": "歌詞をエクスポート",
"input_synced": "同期歌詞をエクスポート",
"input_offset": "$t(setting.lyricOffset)"
},
"shuffleAll": {
"title": "ランダムに再生",
"input_genre": "$t(entity.genre, {\"count\": 1})",
"input_limit": "何曲?",
"input_minYear": "年から",
"input_maxYear": "年まで",
"input_played_optionAll": "すべてのトラック",
"input_played_optionUnplayed": "未再生のトラックのみ",
"input_played_optionPlayed": "再生されたトラックのみ",
"input_played": "再生フィルター"
},
"saveQueue": {
"success": "プレイキューをサーバーに保存しました"
}
},
"entity": {
@@ -812,20 +1038,22 @@
"playlistWithCount_other": "{{count}} 個のプレイリスト",
"playlist_other": "プレイリスト",
"artist_other": "アーティスト",
"folderWithCount_other": "{{count}} 個のフォルダ",
"folderWithCount_other": "{{count}} 個のフォルダ",
"albumArtist_other": "アルバムアーティスト",
"track_other": "トラック",
"albumArtistCount_other": "{{count}} アルバムアーティスト",
"albumWithCount_other": "{{count}} 枚のアルバム",
"favorite_other": "お気に入り",
"artistWithCount_other": "{{count}} 人のアーティスト",
"folder_other": "フォルダ",
"smartPlaylist": "スマート $t(entity.playlist_one)",
"folder_other": "フォルダ",
"smartPlaylist": "スマート $t(entity.playlist, {\"count\": 1})",
"album_other": "アルバム",
"genreWithCount_other": "{{count}} 個のジャンル",
"trackWithCount_other": "{{count}} 個のトラック",
"play_other": "{{count}} 回再生",
"song_other": "曲"
"song_other": "曲",
"radioStation_other": "ラジオ局",
"radioStationWithCount_other": "{{count}} 局のラジオ局"
},
"dragDropZone": {
"error_oneFileOnly": "1 つのファイルのみ選択してください",
@@ -838,7 +1066,7 @@
"ep": "EP",
"other": "その他",
"single": "シングル",
"album": "$t(entity.album_one)"
"album": "$t(entity.album, {\"count\": 1})"
},
"secondary": {
"audiobook": "オーディオブック",
@@ -848,5 +1076,40 @@
"demo": "デモ",
"soundtrack": "サウンドトラック"
}
},
"datetime": {
"minuteShort": "分",
"secondShort": "秒",
"hourShort": "時間",
"dayShort": "日"
},
"queryBuilder": {
"standardTags": "標準タグ",
"customTags": "カスタムタグ"
},
"filterOperator": {
"matchesRegex": "正規表現に一致",
"notContains": "含まれていない",
"after": "以降",
"afterDate": "以降 (日付)",
"before": "以前",
"beforeDate": "以前 (日付)",
"contains": "を含む",
"endsWith": "で終わる",
"inPlaylist": "いずれか",
"inTheRange": "範囲内",
"inTheRangeDate": "範囲内 (日付)",
"is": "完全一致",
"isNot": "不一致",
"startsWith": "で始まる",
"inTheLast": "以内",
"isGreaterThan": "より大きい",
"isLessThan": "より小さい",
"notInPlaylist": "いずれでもない",
"notInTheLast": "より前"
},
"visualizer": {
"visualizerType": "ビジュアライザーの種類",
"colors": "色"
}
}
+40 -40
View File
@@ -1,31 +1,31 @@
{
"action": {
"createPlaylist": "$t(entity.playlist_one) 생성",
"addToFavorites": "$t(entity.favorite_other)에 추가",
"addToPlaylist": "$t(entity.playlist_one)에 추가",
"createPlaylist": "$t(entity.playlist, {\"count\": 1}) 생성",
"addToFavorites": "$t(entity.favorite, {\"count\": 2})에 추가",
"addToPlaylist": "$t(entity.playlist, {\"count\": 1})에 추가",
"clearQueue": "대기열 지우기",
"deletePlaylist": "$t(entity.playlist_one) 삭제",
"deletePlaylist": "$t(entity.playlist, {\"count\": 1}) 삭제",
"deselectAll": "모두 선택 해제",
"editPlaylist": "$t(entity.playlist_one) 편집",
"editPlaylist": "$t(entity.playlist, {\"count\": 1}) 편집",
"goToPage": "페이지 이동",
"moveToBottom": "맨 아래로 이동",
"moveToTop": "맨 위로 이동",
"moveToNext": "다음으로 이동",
"removeFromQueue": "대기열에서 제거",
"refresh": "$t(common.refresh)",
"removeFromFavorites": "$t(entity.favorite_other)에서 제거",
"removeFromPlaylist": "$t(entity.playlist_one)에서 제거",
"removeFromFavorites": "$t(entity.favorite, {\"count\": 2})에서 제거",
"removeFromPlaylist": "$t(entity.playlist, {\"count\": 1})에서 제거",
"openIn": {
"musicbrainz": "MusicBrainz에서 보기",
"lastfm": "Last.fm에서 보기"
},
"viewPlaylists": "$t(entity.playlist_other) 보기",
"viewPlaylists": "$t(entity.playlist, {\"count\": 2}) 보기",
"setRating": "평점 지정",
"toggleSmartPlaylistEditor": "$t(entity.smartPlaylist) 편집기 펼치기",
"addOrRemoveFromSelection": "선택항목에서 추가 또는 제거",
"selectRangeOfItems": "항목의 범위 선택",
"createRadioStation": "$t(entity.radioStation_one) 생성",
"deleteRadioStation": "$t(entity.radioStation_one) 삭제",
"createRadioStation": "$t(entity.radioStation, {\"count\": 1}) 생성",
"deleteRadioStation": "$t(entity.radioStation, {\"count\": 1}) 삭제",
"selectAll": "전부 선택",
"downloadStarted": "{{count}}개 항목 다운로드 시작했습니다",
"moveUp": "위로 옮기기",
@@ -59,7 +59,7 @@
"backward": "뒤로",
"saveAs": "(으)로 저장하기",
"search": "검색",
"setting": "설정",
"setting_other": "설정",
"share": "공유",
"size": "크기",
"sortOrder": "순서",
@@ -74,7 +74,7 @@
"comingSoon": "조만간…",
"configure": "설정",
"confirm": "확인",
"currentSong": "현재 $t(entity.track_one)",
"currentSong": "현재 $t(entity.track, {\"count\": 1})",
"decrease": "감소",
"delete": "삭제",
"descending": "내림차순",
@@ -96,7 +96,7 @@
"path": "경로",
"playerMustBePaused": "플레이어가 일시정지 되어야 합니다",
"preview": "미리보기",
"previousSong": "이전곡 $t(entity.track_one)",
"previousSong": "이전곡 $t(entity.track, {\"count\": 1})",
"quit": "종료",
"refresh": "새로고침",
"reload": "리로드",
@@ -168,7 +168,7 @@
"song_other": "곡",
"play_other": "{{count}} 재생",
"playlistWithCount_other": "{{count}} 재생목록",
"smartPlaylist": "스마트 $t(entity.playlist_one)",
"smartPlaylist": "스마트 $t(entity.playlist, {\"count\": 1})",
"track_other": "트랙",
"radioStation_other": "라디오 방송국",
"radioStationWithCount_other": "{{count}}개 라디오 방송국"
@@ -214,9 +214,9 @@
"dateAdded": "추가된 날짜",
"lastPlayed": "마지막으로 재생한",
"mostPlayed": "가장 많이 재생한",
"album": "$t(entity.album_one)",
"albumArtist": "$t(entity.albumArtist_one)",
"artist": "$t(entity.artist_one)",
"album": "$t(entity.album, {\"count\": 1})",
"albumArtist": "$t(entity.albumArtist, {\"count\": 1})",
"artist": "$t(entity.artist, {\"count\": 1})",
"communityRating": "커뮤니티 평점",
"criticRating": "비평가 평점",
"disc": "디스크",
@@ -225,11 +225,11 @@
"channels": "$t(common.channel_other)",
"duration": "길이",
"bpm": "bpm",
"albumCount": "$t(entity.album_other) 앨범수",
"albumCount": "$t(entity.album, {\"count\": 2}) 앨범수",
"comment": "코멘트",
"favorited": "즐겨찾기",
"fromYear": "시작 년도",
"genre": "$t(entity.genre_one)",
"genre": "$t(entity.genre, {\"count\": 1})",
"id": "아이디",
"isCompilation": "편집앨범 여부",
"isFavorited": "즐겨찾기 여부",
@@ -262,16 +262,16 @@
},
"addToPlaylist": {
"input_skipDuplicates": "중복 건너뛰기",
"title": "$t(entity.playlist_one) 에 추가",
"input_playlists": "$t(entity.playlist_other)",
"title": "$t(entity.playlist, {\"count\": 1}) 에 추가",
"input_playlists": "$t(entity.playlist, {\"count\": 2})",
"success": "$t(entity.playlistWithCount, {\"count\": {{numOfPlaylists}} })에 $t(entity.trackWithCount, {\"count\": {{message}} })가 추가되었습니다",
"create": "$t(entity.playlist_one) {{playlist}} 생성",
"searchOrCreate": "$t(entity.playlist_other) 검색 또는 입력하여 새로 만들기"
"create": "$t(entity.playlist, {\"count\": 1}) {{playlist}} 생성",
"searchOrCreate": "$t(entity.playlist, {\"count\": 2}) 검색 또는 입력하여 새로 만들기"
},
"lyricSearch": {
"title": "가사 검색",
"input_name": "$t(common.name)",
"input_artist": "$t(entity.artist_one)"
"input_artist": "$t(entity.artist, {\"count\": 1})"
},
"queryEditor": {
"input_optionMatchAll": "모두 일치",
@@ -279,9 +279,9 @@
"title": "쿼리 편집기"
},
"editPlaylist": {
"title": "$t(entity.playlist_one) 편집",
"title": "$t(entity.playlist, {\"count\": 1}) 편집",
"publicJellyfinNote": "Jellyfin은 재생목록 공개 여부를 노출하지 않습니다. 만약 공개되길 원한다면 다음을 선택하세요",
"success": "$t(entity.playlist_one) 업데이트 되었습니다"
"success": "$t(entity.playlist, {\"count\": 1}) 업데이트 되었습니다"
},
"shareItem": {
"allowDownloading": "다운로드 허용",
@@ -298,15 +298,15 @@
"createPlaylist": {
"input_description": "$t(common.description)",
"input_name": "$t(common.name)",
"success": "$t(entity.playlist_one)를 생성했습니다",
"success": "$t(entity.playlist, {\"count\": 1})를 생성했습니다",
"input_owner": "$t(common.owner)",
"input_public": "공개",
"title": "$t(entity.playlist_one) 생성"
"title": "$t(entity.playlist, {\"count\": 1}) 생성"
},
"deletePlaylist": {
"input_confirm": "확인을 위해 $t(entity.playlist_one)의 이름을 적어주세요",
"success": "$t(entity.playlist_one)가 삭제되었습니다",
"title": "$t(entity.playlist_one) 삭제"
"input_confirm": "확인을 위해 $t(entity.playlist, {\"count\": 1})의 이름을 적어주세요",
"success": "$t(entity.playlist, {\"count\": 1})가 삭제되었습니다",
"title": "$t(entity.playlist, {\"count\": 1}) 삭제"
},
"privateMode": {
"enabled": "프라이빗 모드가 활성화되었습니다. 재생상태가 외부 서비스에 지금부터 노출되지 않습니다",
@@ -362,8 +362,8 @@
"download": "다운로드",
"numberSelected": "{{count}}개 선택됨",
"shareItem": "공유",
"goToAlbum": "$t(entity.album_one)으로 이동",
"goToAlbumArtist": "$t(entity.albumArtist_one)으로 이동",
"goToAlbum": "$t(entity.album, {\"count\": 1})으로 이동",
"goToAlbumArtist": "$t(entity.albumArtist, {\"count\": 1})으로 이동",
"showDetails": "추가정보"
},
"albumArtistDetail": {
@@ -371,17 +371,17 @@
"viewDiscography": "디스코그래피 보기",
"appearsOn": "참여 앨범",
"recentReleases": "최근 앨범",
"relatedArtists": "연관 $t(entity.artist_other)",
"relatedArtists": "연관 $t(entity.artist, {\"count\": 2})",
"topSongs": "최고의 곡들",
"topSongsFrom": "{{title}}이 포함된 최고의 곡들",
"viewAll": "전부 보이기",
"viewAllTracks": "$t(entity.track_other) 전부 보이기"
"viewAllTracks": "$t(entity.track, {\"count\": 2}) 전부 보이기"
},
"albumArtistList": {
"title": "$t(entity.albumArtist_other)"
"title": "$t(entity.albumArtist, {\"count\": 2})"
},
"albumDetail": {
"moreFromArtist": "$t(entity.artist_one) 더 보기",
"moreFromArtist": "$t(entity.artist, {\"count\": 1}) 더 보기",
"moreFromGeneric": "{{item}} 더 보기",
"released": "발매"
},
@@ -389,8 +389,8 @@
"artistAlbums": "{{artist}}의 앨범"
},
"genreList": {
"showAlbums": "$t(entity.genre_one) $t(entity.album_other) 표시",
"showTracks": "$t(entity.genre_one) $t(entity.track_other) 표시"
"showAlbums": "$t(entity.genre, {\"count\": 1}) $t(entity.album, {\"count\": 2}) 표시",
"showTracks": "$t(entity.genre, {\"count\": 1}) $t(entity.track, {\"count\": 2}) 표시"
},
"globalSearch": {
"commands": {
@@ -425,7 +425,7 @@
"sidebar": {
"myLibrary": "내 라이브러리",
"nowPlaying": "재생중",
"shared": "공유 $t(entity.playlist_other)"
"shared": "공유 $t(entity.playlist, {\"count\": 2})"
},
"trackList": {
"artistTracks": "{{artist}}의 음악"
+194 -64
View File
@@ -5,23 +5,39 @@
"musicbrainz": "Åpne i MusicBrainz"
},
"moveToBottom": "flytt til bunnen",
"deletePlaylist": "slett $t(entity.playlist_one)",
"deletePlaylist": "slett $t(entity.playlist, {\"count\": 1})",
"deselectAll": "avmarker alle",
"editPlaylist": "rediger $t(entity.playlist_one)",
"addToFavorites": "legg til $t(entity.favorite_other)",
"addToPlaylist": "legg til $t(entity.playlist_one)",
"editPlaylist": "rediger $t(entity.playlist, {\"count\": 1})",
"addToFavorites": "legg til $t(entity.favorite, {\"count\": 2})",
"addToPlaylist": "legg til $t(entity.playlist, {\"count\": 1})",
"clearQueue": "tøm kø",
"createPlaylist": "opprett $t(entity.playlist_one)",
"createPlaylist": "opprett $t(entity.playlist, {\"count\": 1})",
"goToPage": "gå til side",
"moveToTop": "flytt til toppen",
"refresh": "$t(common.refresh)",
"removeFromFavorites": "fjern fra $t(entity.favorite_other)",
"removeFromFavorites": "fjern fra $t(entity.favorite, {\"count\": 2})",
"moveToNext": "flytt til neste",
"setRating": "angi vurdering",
"removeFromQueue": "fjern fra kø",
"removeFromPlaylist": "fjern fra $t(entity.playlist_one)",
"viewPlaylists": "vise $t(entity.playlist_other)",
"toggleSmartPlaylistEditor": "bytt $t(entity.smartPlaylist) editor"
"removeFromPlaylist": "fjern fra $t(entity.playlist, {\"count\": 1})",
"viewPlaylists": "vise $t(entity.playlist, {\"count\": 2})",
"toggleSmartPlaylistEditor": "bytt $t(entity.smartPlaylist) editor",
"selectAll": "marker alle",
"downloadStarted": "startet nedlasting av {{count}} elementer",
"selectRangeOfItems": "velg en rekke elementer",
"addOrRemoveFromSelection": "legge til eller fjerne fra utvalg",
"moveUp": "flytt opp",
"moveDown": "flytt ned",
"createRadioStation": "opprett $t(entity.radioStation, {\"count\": 1})",
"deleteRadioStation": "slett $t(entity.radioStation, {\"count\": 1})",
"holdToMoveToTop": "hold nede for å gå til toppen",
"holdToMoveToBottom": "hold nede for å gå til bunnen",
"moveItems": "flytt elementer",
"shuffle": "tilfeldig avspilling",
"shuffleAll": "tilfelding avspilling av alt",
"shuffleSelected": "tilfelding avspilling av utvalgte",
"viewMore": "se mer",
"openApplicationDirectory": "åpne applikasjonskatalogen"
},
"common": {
"bpm": "bpm",
@@ -31,7 +47,7 @@
"collapse": "slå sammen",
"configure": "konfigurer",
"confirm": "bekreft",
"currentSong": "gjeldende $t(entity.track_one)",
"currentSong": "gjeldende $t(entity.track, {\"count\": 1})",
"version": "versjon",
"areYouSure": "er du sikker?",
"ascending": "stigende",
@@ -50,8 +66,8 @@
"expand": "utvid",
"favorite": "favoritt",
"filters": "filter",
"forceRestartRequired": "ta omstart for å la endringene trå i kraft... lukk meldingen for å ta omstart",
"forward": "fremover",
"forceRestartRequired": "ta omstart for å aktivere endringene... lukk meldingen for å ta omstart",
"forward": "framover",
"gap": "avstand",
"home": "hjem",
"increase": "øke",
@@ -69,7 +85,7 @@
"owner": "eier",
"playerMustBePaused": "spilleren må settes på pause",
"path": "sti",
"previousSong": "forrige $t(entity.track_one)",
"previousSong": "forrige $t(entity.track, {\"count\": 1})",
"refresh": "frisk opp",
"rating": "vurdering",
"random": "vilkårlig",
@@ -87,7 +103,8 @@
"share": "del",
"quit": "avslutt",
"size": "størrelse",
"setting": "innstilling",
"setting_one": "innstilling",
"setting_other": "innstillinger",
"trackNumber": "spor",
"title": "tittel",
"channel_one": "kanal",
@@ -118,10 +135,34 @@
"albumGain": "gjennomsnittlig lydnivå for album",
"albumPeak": "høyeste lydnivå for album",
"bitDepth": "bitdybde",
"sampleRate": "samplingsfrekvens"
"sampleRate": "samplingsfrekvens",
"countSelected": "{{count}} valgt",
"doNotShowAgain": "ikke vis dette igjen",
"view": "vis",
"example": "eksempel",
"externalLinks": "eksterne lenker",
"faster": "raskere",
"filter_single": "enkelt",
"filter_multiple": "flerfoldige",
"mood": "humør",
"noFilters": "ingen filtre konfigurert",
"private": "privat",
"public": "offentlig",
"retry": "prøv igjen",
"recordLabel": "plateselskap",
"releaseType": "utgivelsestype",
"rename": "gi nytt navn",
"slower": "saktere",
"sort": "sorter",
"explicit": "grov",
"clean": "ren",
"gridRows": "rutenettrader",
"tableColumns": "tabellkolonner",
"itemsMore": "{{count}} fler",
"explicitStatus": "grovhetsstatus"
},
"entity": {
"smartPlaylist": "smart $t(entity.playlist_one)",
"smartPlaylist": "smart $t(entity.playlist, {\"count\": 1})",
"album_one": "album",
"album_other": "album",
"albumArtist_one": "albumartist",
@@ -155,7 +196,11 @@
"artist_one": "artist",
"artist_other": "artister",
"song_one": "sang",
"song_other": "sanger"
"song_other": "sanger",
"radioStation_one": "radiostasjon",
"radioStation_other": "radiostasjoner",
"radioStationWithCount_one": "{{count}} radiostasjon",
"radioStationWithCount_other": "{{count}} radiostasjoner"
},
"error": {
"apiRouteError": "kan ikke behandle forespørselen",
@@ -165,23 +210,30 @@
"endpointNotImplementedError": "endepunkt {{endpoint}} er ikke implementert for {{serverType}}",
"credentialsRequired": "innloggingsdetaljer er påkrevd",
"genericError": "en feil har oppstått",
"invalidServer": "ugyldig server",
"invalidServer": "ugyldig tjener",
"playbackError": "et problem oppstod ved avspilling av media",
"localFontAccessDenied": "ingen tilgang til lokale skrifttyper",
"loginRateError": "for mange innloggingsforsøk, vennligst prøv igjen om noen få sekunder",
"audioDeviceFetchError": "en feil oppstod ved innhenting av lydenheter",
"networkError": "at nettverksproblem har oppstått",
"networkError": "det har oppstått et nettverksproblem",
"openError": "kunne ikke åpne fil",
"serverNotSelectedError": "ingen server er valgt",
"serverNotSelectedError": "ingen tjener er valgt",
"remotePortError": "et problem oppstod med å sette serverport",
"systemFontError": "et problem oppstod med innlasting av systemskrifttyper",
"serverRequired": "server er påkrevd",
"serverRequired": "tjener er påkrevd",
"sessionExpiredError": "sesjonen din har utløpt",
"remotePortWarning": "ta omstart av serveren for å aktivere ny port",
"remoteDisableError": "en problem oppstod ved å $t(common.disable) serveren",
"remoteEnableError": "et problem oppstod ved å $t(common.enable) serveren",
"notificationDenied": "tillatelser for varsler ble avvist. Denne innstillingen har ingen effekt",
"badValue": "ugyldig alternativ \"{{value}}\". Denne verdien eksisterer ikke lenger"
"badValue": "ugyldig alternativ \"{{value}}\". Denne verdien eksisterer ikke lenger",
"noNetwork": "tjener utilgjengelig",
"noNetworkDescription": "kunne ikke koble til tjeneren",
"invalidJson": "ugyldig JSON",
"saveQueueFailed": "kunne ikke lagre kø",
"multipleServerSaveQueueError": "Spillekøen har en eller flere sanger som ikke finnes på gjeldene tjener. Dette er ikke støttet",
"serverLockSingleServer": "kun én tjener er tillatt når tjener er låst",
"settingsSyncError": "avvik ble funnet mellom innstillinger i avspilleren og hovedprosessen. ta en omstart av applikasjonen for å aktivere endringene"
},
"filter": {
"bpm": "bpm",
@@ -189,10 +241,10 @@
"id": "id",
"name": "navn",
"bitrate": "bithastighet",
"albumArtist": "$t(entity.albumArtist_one)",
"artist": "$t(entity.artist_one)",
"albumArtist": "$t(entity.albumArtist, {\"count\": 1})",
"artist": "$t(entity.artist, {\"count\": 1})",
"biography": "biografi",
"album": "$t(entity.album_one)",
"album": "$t(entity.album, {\"count\": 1})",
"duration": "lengde",
"favorited": "merket som favoritt",
"comment": "kommentar",
@@ -222,22 +274,26 @@
"isCompilation": "er samling",
"isFavorited": "er merket som favoritt",
"recentlyAdded": "nylig lagt til",
"channels": "$t(common.channel_other)",
"genre": "$t(entity.genre_one)",
"channels": "$t(common.channel, {\"count\": 2})",
"genre": "$t(entity.genre, {\"count\": 1})",
"trackNumber": "spor",
"albumCount": "$t(entity.album_other) opptelling"
"albumCount": "$t(entity.album, {\"count\": 2}) opptelling",
"matchAnd": "og",
"matchOr": "eller",
"sortName": "sorter navn",
"explicitStatus": "$t(common.explicitStatus)"
},
"form": {
"createPlaylist": {
"input_description": "$t(common.description)",
"input_owner": "$t(common.owner)",
"input_public": "offentlig",
"title": "opprett $t(entity.playlist_one)",
"title": "opprett $t(entity.playlist, {\"count\": 1})",
"input_name": "$t(common.name)",
"success": "$t(entity.playlist_one) opprettet"
"success": "$t(entity.playlist, {\"count\": 1}) opprettet"
},
"lyricSearch": {
"input_artist": "$t(entity.artist_one)",
"input_artist": "$t(entity.artist, {\"count\": 1})",
"input_name": "$t(common.name)",
"title": "sangtekstsøk"
},
@@ -252,22 +308,27 @@
"input_legacyAuthentication": "aktiver tradisjonell autentisering",
"input_name": "servernavn",
"title": "legg til server",
"input_password": "passord"
"input_password": "passord",
"input_preferInstantMix": "foretrekk øyeblikkelig miks",
"input_preferInstantMixDescription": "bruk bare øyeblikkelig miks for innhenting av lignende sanger. nyttig hvis du har tilleggsmoduler som endrer funksjonaliteten",
"input_preferRemoteUrl": "foretrekk offentlig url",
"input_remoteUrl": "offentlig url",
"input_remoteUrlPlaceholder": "valgfritt: offentlig nettadresse for eksterne funksjoner"
},
"addToPlaylist": {
"success": "la $t(entity.trackWithCount, {\"count\": {{message}} }) til $t(entity.playlistWithCount, {\"count\": {{numOfPlaylists}} })",
"title": "legg til i $t(entity.playlist_one)",
"title": "legg til i $t(entity.playlist, {\"count\": 1})",
"input_skipDuplicates": "hopp over duplikater",
"input_playlists": "$t(entity.playlist_other)"
"input_playlists": "$t(entity.playlist, {\"count\": 2})"
},
"deletePlaylist": {
"title": "slett $t(entity.playlist_one)",
"success": "$t(entity.playlist_one) er slettet",
"input_confirm": "skrive inn navnet på $t(entity.playlist_one) for å bekrefte"
"title": "slett $t(entity.playlist, {\"count\": 1})",
"success": "$t(entity.playlist, {\"count\": 1}) er slettet",
"input_confirm": "skrive inn navnet på $t(entity.playlist, {\"count\": 1}) for å bekrefte"
},
"editPlaylist": {
"title": "rediger $t(entity.playlist_one)",
"success": "$t(entity.playlist_one) er oppdatert"
"title": "rediger $t(entity.playlist, {\"count\": 1})",
"success": "$t(entity.playlist, {\"count\": 1}) er oppdatert"
},
"shareItem": {
"allowDownloading": "tillat nedlasting",
@@ -284,7 +345,29 @@
"queryEditor": {
"input_optionMatchAll": "match alle",
"input_optionMatchAny": "matche hvilken som helst",
"title": "redigeringsverktøy for spørringer"
"title": "redigeringsverktøy for spørringer",
"addRuleGroup": "legg til regelgruppe",
"removeRuleGroup": "fjern regelgruppe",
"resetToDefault": "tilbakestill til standard",
"clearFilters": "tøm filter"
},
"largeFetchConfirmation": {
"title": "legg til elementer i køen",
"description": "Denne handlingen vil legge alle elementene til den gjeldende filtervisningen"
},
"createRadioStation": {
"success": "vellykket opprettelse av radiostasjon",
"title": "opprett radiostasjon",
"input_homepageUrl": "hjemmesidelenke",
"input_name": "navn",
"input_streamUrl": "strømmelenke"
},
"saveQueue": {
"success": "lagre spillekø på tjener"
},
"lyricsExport": {
"export": "eksporter sangtekster",
"input_synced": "eksporter sunkroniserte sangtekster"
}
},
"page": {
@@ -296,7 +379,7 @@
"manageServers": "administrere servere",
"goBack": "gå tilbake",
"openBrowserDevtools": "åpne utviklingsverktøy i nettleser",
"settings": "$t(common.setting_other)",
"settings": "$t(common.setting, {\"count\": 2})",
"expandSidebar": "utvid sidefelt",
"goForward": "gå fremover"
},
@@ -329,22 +412,22 @@
"viewDiscography": "se diskografi",
"recentReleases": "nylige utgivelser",
"topSongsFrom": "beste sanger fra {{title}}",
"viewAllTracks": "se alle $t(entity.track_other)",
"viewAllTracks": "se alle $t(entity.track, {\"count\": 2})",
"viewAll": "se alle",
"about": "Om {{artist}}",
"appearsOn": "opptrer på",
"relatedArtists": "relatert $t(entity.artist_other)"
"relatedArtists": "relatert $t(entity.artist, {\"count\": 2})"
},
"albumList": {
"artistAlbums": "album av {{artist}}",
"genreAlbums": "\"{{genre}}\" $t(entity.album_other)",
"title": "$t(entity.album_other)"
"genreAlbums": "\"{{genre}}\" $t(entity.album, {\"count\": 2})",
"title": "$t(entity.album, {\"count\": 2})"
},
"albumArtistList": {
"title": "$t(entity.albumArtist_other)"
"title": "$t(entity.albumArtist, {\"count\": 2})"
},
"albumDetail": {
"moreFromArtist": "mer fra denne $t(entity.artist_one)",
"moreFromArtist": "mer fra denne $t(entity.artist, {\"count\": 1})",
"moreFromGeneric": "mer fra {{item}}",
"released": "utgitt"
},
@@ -372,9 +455,9 @@
"related": "relatert"
},
"genreList": {
"title": "$t(entity.genre_other)",
"showAlbums": "vis $t(entity.genre_one) $t(entity.album_other)",
"showTracks": "vis $t(entity.genre_one) $t(entity.track_other)"
"title": "$t(entity.genre, {\"count\": 2})",
"showAlbums": "vis $t(entity.genre, {\"count\": 1}) $t(entity.album, {\"count\": 2})",
"showTracks": "vis $t(entity.genre, {\"count\": 1}) $t(entity.track, {\"count\": 2})"
},
"globalSearch": {
"title": "kommandoer",
@@ -405,23 +488,23 @@
"copyPath": "kopier stien til utklippstavlen"
},
"trackList": {
"genreTracks": "\"{{genre}}\" $t(entity.track_other)",
"title": "$t(entity.track_other)",
"genreTracks": "\"{{genre}}\" $t(entity.track, {\"count\": 2})",
"title": "$t(entity.track, {\"count\": 2})",
"artistTracks": "spor fra {{artist}}"
},
"sidebar": {
"albumArtists": "$t(entity.albumArtist_other)",
"tracks": "$t(entity.track_other)",
"albumArtists": "$t(entity.albumArtist, {\"count\": 2})",
"tracks": "$t(entity.track, {\"count\": 2})",
"nowPlaying": "spilles nå",
"folders": "$t(entity.folder_other)",
"genres": "$t(entity.genre_other)",
"folders": "$t(entity.folder, {\"count\": 2})",
"genres": "$t(entity.genre, {\"count\": 2})",
"home": "$t(common.home)",
"albums": "$t(entity.album_other)",
"playlists": "$t(entity.playlist_other)",
"albums": "$t(entity.album, {\"count\": 2})",
"playlists": "$t(entity.playlist, {\"count\": 2})",
"search": "$t(common.search)",
"settings": "$t(common.setting_other)",
"shared": "delt $t(entity.playlist_other)",
"artists": "$t(entity.artist_other)",
"settings": "$t(common.setting, {\"count\": 2})",
"shared": "delt $t(entity.playlist, {\"count\": 2})",
"artists": "$t(entity.artist, {\"count\": 2})",
"myLibrary": "mitt bibliotek"
},
"setting": {
@@ -432,7 +515,7 @@
"windowTab": "vindu"
},
"playlistList": {
"title": "$t(entity.playlist_other)"
"title": "$t(entity.playlist, {\"count\": 2})"
},
"playlist": {
"reorder": "omorganisering kun mulig ved sortering på id"
@@ -500,7 +583,15 @@
"general": {
"autoFitColumns": "automatisk kolonnetilpasning",
"displayType": "visningstype",
"followCurrentSong": "følg gjeldende sang"
"followCurrentSong": "følg gjeldende sang",
"advancedSettings": "avanserte innstillinger",
"moveUp": "flytt opp",
"moveDown": "flytt ned",
"pinToLeft": "fest til venstre",
"pinToRight": "fest til høyre",
"alignLeft": "venstrejuster",
"alignCenter": "midtjuster",
"alignRight": "høyrejuster"
}
},
"column": {
@@ -518,7 +609,46 @@
"rating": "vurdering",
"releaseDate": "utgivelsesdato",
"title": "tittel",
"trackNumber": "spor"
"trackNumber": "spor",
"owner": "eier"
}
},
"filterOperator": {
"after": "er etter",
"afterDate": "er etter (date)",
"before": "er før",
"beforeDate": "er før (date)",
"contains": "inneholder",
"endsWith": "ender med",
"inPlaylist": "er inne i",
"inTheLast": "er inne i de siste",
"inTheRange": "er innenfor området",
"isGreaterThan": "er større enn",
"isLessThan": "er mindre enn",
"matchesRegex": "samsvarer med regex",
"notContains": "inneholder ikke",
"notInPlaylist": "er ikke med i",
"notInTheLast": "er ikke med i de siste",
"startsWith": "starter med",
"inTheRangeDate": "er innenfor området (date)",
"is": "er",
"isNot": "er ikke"
},
"datetime": {
"minuteShort": "m",
"secondShort": "s",
"hourShort": "h",
"dayShort": "d"
},
"visualizer": {
"options": {
"weightingFilter": {
"a": "A",
"b": "B",
"c": "C",
"d": "D",
"z": "Z"
}
}
}
}
+813 -97
View File
File diff suppressed because it is too large Load Diff
+234 -138
View File
@@ -1,20 +1,20 @@
{
"action": {
"editPlaylist": "edytuj $t(entity.playlist_one)",
"editPlaylist": "edytuj $t(entity.playlist, {\"count\": 1})",
"goToPage": "idź do strony",
"clearQueue": "wyczyść kolejkę",
"addToFavorites": "dodaj do $t(entity.favorite_other)",
"removeFromPlaylist": "usuń z $t(entity.playlist_one)",
"viewPlaylists": "zobacz $t(entity.playlist_other)",
"addToFavorites": "dodaj do $t(entity.favorite, {\"count\": 2})",
"removeFromPlaylist": "usuń z $t(entity.playlist, {\"count\": 1})",
"viewPlaylists": "zobacz $t(entity.playlist, {\"count\": 2})",
"refresh": "$t(common.refresh)",
"removeFromQueue": "usuń z kolejki",
"deselectAll": "odznacz wszystko",
"toggleSmartPlaylistEditor": "przełącz edytor $t(entity.smartPlaylist)",
"removeFromFavorites": "usuń z $t(entity.favorite_other)",
"removeFromFavorites": "usuń z $t(entity.favorite, {\"count\": 2})",
"moveToTop": "przesuń na górę",
"addToPlaylist": "dodaj do $t(entity.playlist_one)",
"createPlaylist": "utwórz $t(entity.playlist_one)",
"deletePlaylist": "usuń $t(entity.playlist_one)",
"addToPlaylist": "dodaj do $t(entity.playlist, {\"count\": 1})",
"createPlaylist": "utwórz $t(entity.playlist, {\"count\": 1})",
"deletePlaylist": "usuń $t(entity.playlist, {\"count\": 1})",
"moveToBottom": "przesuń na dół",
"setRating": "oceń",
"openIn": {
@@ -32,12 +32,13 @@
"moveDown": "przenieś niżej",
"holdToMoveToTop": "przytrzymaj aby, przesunąć na górę",
"holdToMoveToBottom": "przytrzymaj aby, przesunąć na dół",
"createRadioStation": "utwórz $t(entity.radioStation_one)",
"deleteRadioStation": "usuń $t(entity.radioStation_one)",
"createRadioStation": "utwórz $t(entity.radioStation, {\"count\": 1})",
"deleteRadioStation": "usuń $t(entity.radioStation, {\"count\": 1})",
"addOrRemoveFromSelection": "dodaj lub usuń z wyboru",
"selectRangeOfItems": "wybierz zakres elementów",
"selectAll": "wybierz wszystkie",
"openApplicationDirectory": "otwórz katalog aplikacji"
"openApplicationDirectory": "otwórz katalog aplikacji",
"goToCurrent": "przejdź do aktualnego elementu"
},
"common": {
"increase": "zwiększ",
@@ -73,7 +74,9 @@
"delete": "usuń",
"cancel": "anuluj",
"forceRestartRequired": "zrestartuj aby zastosować zmiany... zamknij powiadomienie aby zrestartować",
"setting": "ustawienie",
"setting_one": "ustawienie",
"setting_few": "ustawienia",
"setting_many": "ustawień",
"version": "wersja",
"title": "tytuł",
"filter_one": "filtr",
@@ -100,7 +103,7 @@
"none": "żaden",
"menu": "menu",
"restartRequired": "wymagany restart",
"previousSong": "poprzedni $t(entity.track_one)",
"previousSong": "poprzedni $t(entity.track, {\"count\": 1})",
"noResultsFromQuery": "kolejka zwróciła brak wyników",
"quit": "wyjdź",
"expand": "rozszerz",
@@ -113,7 +116,7 @@
"biography": "biografia",
"backward": "wstecz",
"left": "lewo",
"currentSong": "obecnie $t(entity.track_one)",
"currentSong": "obecnie $t(entity.track, {\"count\": 1})",
"collapse": "zwiń",
"gap": "luka",
"manage": "zarządzaj",
@@ -156,49 +159,54 @@
"noFilters": "nie skonfigurowano filtrów",
"view": "wyświetl",
"countSelected": "wybrano {{count}}",
"retry": "spróbuj ponownie"
"retry": "spróbuj ponownie",
"mood": "nastrój",
"example": "przykład",
"filter_multiple": "multi",
"filter_single": "single",
"rename": "zmień nazwę"
},
"entity": {
"genre_one": "gatunek",
"genre_few": "gatunki",
"genre_many": "gatunków",
"artist_one": "wykonawca",
"artist_few": "wykonawców",
"artist_many": "wykonawców",
"albumArtist_one": "wykonawca albumu",
"albumArtist_few": "wykonawców albumów",
"albumArtist_many": "wykonawców albumów",
"albumWithCount_one": "{{count}} album",
"albumWithCount_few": "{{count}} albumy",
"albumWithCount_many": "{{count}} albumów",
"favorite_one": "ulubiony",
"favorite_few": "ulubione",
"favorite_many": "ulubione",
"artistWithCount_one": "{{count}} wykonawca",
"artistWithCount_few": "{{count}} wykonawców",
"artistWithCount_many": "{{count}} wykonawców",
"folder_one": "katalog",
"folder_few": "katalogi",
"folder_many": "katalogów",
"album_one": "album",
"album_few": "albumy",
"album_many": "albumów",
"playlistWithCount_one": "{{count}} playlista",
"playlistWithCount_few": "{{count}} playlisty",
"playlistWithCount_many": "{{count}} playlist",
"playlist_one": "playlista",
"playlist_few": "playlisty",
"playlist_many": "playlist",
"artist_one": "wykonawca",
"artist_few": "wykonawcy",
"artist_many": "wykonawców",
"folderWithCount_one": "{{count}} katalog",
"folderWithCount_few": "{{count}} katalogi",
"folderWithCount_many": "{{count}} katalogów",
"albumArtist_one": "wykonawca albumu",
"albumArtist_few": "wykonawcy albumu",
"albumArtist_many": "wykonawcy albumów",
"track_one": "utwór",
"track_few": "utwory",
"track_many": "utworów",
"albumArtistCount_one": "{{count}} wykonawca albumu",
"albumArtistCount_few": "{{count}} wykonawców albumu",
"albumArtistCount_many": "{{count}} wykonawców albumu",
"smartPlaylist": "inteligentna $t(entity.playlist_one)",
"albumWithCount_one": "{{count}} album",
"albumWithCount_few": "{{count}} albumy",
"albumWithCount_many": "{{count}} albumów",
"favorite_one": "ulubiony",
"favorite_few": "ulubione",
"favorite_many": "ulubionych",
"artistWithCount_one": "{{count}} wykonawca",
"artistWithCount_few": "{{count}} wykonawców",
"artistWithCount_many": "{{count}} wykonawców",
"folder_one": "katalog",
"folder_few": "katalogi",
"folder_many": "katalogów",
"smartPlaylist": "inteligentna $t(entity.playlist, {\"count\": 1})",
"album_one": "album",
"album_few": "albumy",
"album_many": "albumów",
"genreWithCount_one": "{{count}} gatunek",
"genreWithCount_few": "{{count}} gatunki",
"genreWithCount_many": "{{count}} gatunków",
@@ -210,12 +218,12 @@
"play_many": "{{count}} odtworzeń",
"song_one": "piosenka",
"song_few": "piosenki",
"song_many": "piosenek",
"song_many": "­piosenek",
"radioStation_one": "stacja radiowa",
"radioStation_few": "stacje radiowe",
"radioStation_many": "stacji radiowych",
"radioStationWithCount_one": "{{count}} stacja radiowa",
"radioStationWithCount_few": "{{count}} stacje radiowe",
"radioStationWithCount_few": "{{count}} stacje radiowych",
"radioStationWithCount_many": "{{count}} stacji radiowych"
},
"error": {
@@ -247,7 +255,10 @@
"saveQueueFailed": "nie udało się zapisać kolejki",
"settingsSyncError": "zostały znalezione różnice pomiędzy ustawieniami w rendererze a głównym procesem. uruchom aplikację ponownie aby, zastosować zmiany",
"noNetwork": "serwer niedostępny",
"noNetworkDescription": "nie udało się połączyć z tym serwerem"
"noNetworkDescription": "nie udało się połączyć z tym serwerem",
"invalidJson": "nieprawidłowy JSON",
"serverLockSingleServer": "dozwolony jest tylko jeden serwer gdy serwer jest zablokowany",
"playbackPausedDueToError": "odtwarzanie zostało wstrzymane z powodu błędu"
},
"filter": {
"mostPlayed": "najczęściej odtwarzane",
@@ -267,7 +278,7 @@
"communityRating": "ocena społeczności",
"path": "ścieżka",
"favorited": "ulubione",
"albumArtist": "$t(entity.albumArtist_one)",
"albumArtist": "$t(entity.albumArtist, {\"count\": 1})",
"isRecentlyPlayed": "było niedawno odtwarzane",
"isFavorited": "jest ulubione",
"bpm": "bpm",
@@ -275,7 +286,7 @@
"disc": "płyta",
"biography": "biografia",
"songCount": "liczba utworów",
"artist": "$t(entity.artist_one)",
"artist": "$t(entity.artist, {\"count\": 1})",
"duration": "długość",
"random": "losowy",
"lastPlayed": "ostatnio odtwarzane",
@@ -285,27 +296,30 @@
"trackNumber": "utwór",
"comment": "komentarz",
"recentlyUpdated": "ostatnio aktualizowane",
"channels": "$t(common.channel_other)",
"channels": "$t(common.channel, {\"count\": 2})",
"owner": "$t(common.owner)",
"genre": "$t(entity.genre_one)",
"albumCount": "liczba $t(entity.album_other)",
"genre": "$t(entity.genre, {\"count\": 1})",
"albumCount": "liczba $t(entity.album, {\"count\": 2})",
"id": "id",
"isPublic": "jest publiczny",
"album": "$t(entity.album_one)",
"explicitStatus": "$t(common.explicitStatus)"
"album": "$t(entity.album, {\"count\": 1})",
"explicitStatus": "$t(common.explicitStatus)",
"sortName": "sortowanie po nazwie",
"matchAnd": "i",
"matchOr": "lub"
},
"form": {
"deletePlaylist": {
"title": "usuń $t(entity.playlist_one)",
"success": "$t(entity.playlist_one) usunięto pomyślnie",
"input_confirm": "wpisz nazwę $t(entity.playlist_one) aby potwierdzić"
"title": "usuń $t(entity.playlist, {\"count\": 1})",
"success": "$t(entity.playlist, {\"count\": 1}) usunięta pomyślnie",
"input_confirm": "wpisz nazwę $t(entity.playlist, {\"count\": 1}) aby potwierdzić"
},
"createPlaylist": {
"input_description": "$t(common.description)",
"title": "utwórz $t(entity.playlist_one)",
"title": "utwórz $t(entity.playlist, {\"count\": 1})",
"input_public": "publiczny",
"input_name": "$t(common.name)",
"success": "$t(entity.playlist_one) utworzono pomyślnie",
"success": "$t(entity.playlist, {\"count\": 1}) utworzona pomyślnie",
"input_owner": "$t(common.owner)"
},
"addServer": {
@@ -321,15 +335,18 @@
"ignoreCors": "zignoruj cors ($t(common.restartRequired))",
"error_savePassword": "wystąpił błąd podczas próby zapisania hasła",
"input_preferInstantMix": "preferuj natychmiastowy mix",
"input_preferInstantMixDescription": "używaj tylko natychmiastowego mixu, by otrzymać podobne piosenki. przydatne gdy masz wtyczki które zmieniają to zachowanie"
"input_preferInstantMixDescription": "używaj tylko natychmiastowego mixu, by otrzymać podobne piosenki. przydatne gdy masz wtyczki które zmieniają to zachowanie",
"input_preferRemoteUrl": "preferuj publiczny url",
"input_remoteUrl": "publiczny url",
"input_remoteUrlPlaceholder": "opcjonalne: publiczny url dla funkcji zewnętrznych"
},
"addToPlaylist": {
"success": "dodano $t(entity.trackWithCount, {\"count\": {{message}} }) do $t(entity.playlistWithCount, {\"count\": {{numOfPlaylists}} })",
"title": "dodano do $t(entity.playlist_one)",
"title": "dodano do $t(entity.playlist, {\"count\": 1})",
"input_skipDuplicates": "pomiń duplikaty",
"input_playlists": "$t(entity.playlist_other)",
"create": "utwórz $t(entity.playlist_one) {{playlist}}",
"searchOrCreate": "wyszukaj $t(entity.playlist_other) lub wpisz, aby utworzyć nową"
"input_playlists": "$t(entity.playlist, {\"count\": 2})",
"create": "utwórz $t(entity.playlist, {\"count\": 1}) {{playlist}}",
"searchOrCreate": "wyszukaj $t(entity.playlist, {\"count\": 2}) lub wpisz, aby utworzyć nową"
},
"updateServer": {
"title": "uaktualnij serwer",
@@ -346,12 +363,12 @@
},
"lyricSearch": {
"input_name": "$t(common.name)",
"input_artist": "$t(entity.artist_one)",
"input_artist": "$t(entity.artist, {\"count\": 1})",
"title": "wyszukiwanie tekstów"
},
"editPlaylist": {
"title": "edytuj $t(entity.playlist_one)",
"success": "$t(entity.playlist_one) zaktualizowana pomyślnie",
"title": "edytuj $t(entity.playlist, {\"count\": 1})",
"success": "$t(entity.playlist, {\"count\": 1}) zaktualizowana pomyślnie",
"publicJellyfinNote": "Z jakiegoś powodu Jellyfin nie udostępnia informacji na temat publiczności playlisty. Jeżeli chcesz, aby ta pozostała publiczna, mniej wybraną poniższą opcję",
"editNote": "manualne edytowanie nie jest zalecane dla dużych playlist. czy na pewno zgadzasz się na ryzyko utraty danych wywołane przez nadpisanie istniejącej playlisty?"
},
@@ -361,7 +378,9 @@
"setExpiration": "ustaw czas wygaśnięcia",
"success": "link do udostępniania skopiowany do schowka (lub kliknij tutaj, aby otworzyć)",
"createFailed": "nie udało się utworzyć linku do udostępniania (czy udostępnianie jest włączone?)",
"expireInvalid": "ustawiony czas wygaśnięcia musi być w przyszłości"
"expireInvalid": "ustawiony czas wygaśnięcia musi być w przyszłości",
"copyToClipboard": "Skopiuj do schowka: Ctrl+C, Enter",
"successMustClick": "udostępnianie utworzone pomyślnie, kliknij tutaj żeby otworzyć"
},
"privateMode": {
"enabled": "tryb prywatny włączony, status odtwarzania jest ukryty przed usługami zewnętrznymi",
@@ -374,7 +393,7 @@
},
"shuffleAll": {
"title": "odtwarzaj losowo",
"input_genre": "$t(entity.genre_one)",
"input_genre": "$t(entity.genre, {\"count\": 1})",
"input_limit": "ile piosenek?",
"input_minYear": "z roku",
"input_maxYear": "do roku",
@@ -417,7 +436,7 @@
"dynamicIsImage": "włącz obraz w tle",
"lyricOffset": "opóźnienie tekstów (ms)"
},
"upNext": "następny",
"upNext": "następne",
"lyrics": "tekst",
"related": "powiązane",
"visualizer": "wizualizer",
@@ -426,7 +445,7 @@
"appMenu": {
"selectServer": "wybierz serwer",
"version": "wersja {{version}}",
"settings": "$t(common.setting_other)",
"settings": "$t(common.setting, {\"count\": 2})",
"manageServers": "zarządzaj serwerami",
"expandSidebar": "rozwiń pasek boczny",
"collapseSidebar": "zwiń pasek boczny",
@@ -464,45 +483,46 @@
"playShuffled": "$t(player.shuffle)",
"playSimilarSongs": "$t(player.playSimilarSongs)",
"moveToNext": "$t(action.moveToNext)",
"goToAlbum": "przejdź do $t(entity.album_one)",
"goToAlbumArtist": "przejdź do $t(entity.albumArtist_one)",
"goToAlbum": "przejdź do $t(entity.album, {\"count\": 1})",
"goToAlbumArtist": "przejdź do $t(entity.albumArtist, {\"count\": 1})",
"moveItems": "$t(action.moveItems)",
"goTo": "przejdź do"
},
"albumDetail": {
"moreFromArtist": "więcej od $t(entity.artist_one)",
"moreFromArtist": "więcej od $t(entity.artist, {\"count\": 1})",
"moreFromGeneric": "więcej od {{item}}",
"released": "wydany"
},
"albumArtistList": {
"title": "$t(entity.albumArtist_other)"
"title": "$t(entity.albumArtist, {\"count\": 2})"
},
"genreList": {
"title": "$t(entity.genre_other)",
"showAlbums": "pokaż $t(entity.genre_one) $t(entity.album_other)",
"showTracks": "pokaż $t(entity.genre_one) $t(entity.track_other)"
"title": "$t(entity.genre, {\"count\": 2})",
"showAlbums": "pokaż $t(entity.album, {\"count\": 2}) $t(entity.genre, {\"count\": 1})",
"showTracks": "pokaż $t(entity.track, {\"count\": 2}) $t(entity.genre, {\"count\": 1})"
},
"albumList": {
"title": "$t(entity.album_other)",
"title": "$t(entity.album, {\"count\": 2})",
"artistAlbums": "albumy wykonawcy {{artist}}",
"genreAlbums": "\"{{genre}}\" $t(entity.album_other)"
"genreAlbums": "$t(entity.album, {\"count\": 2}) \"{{genre}}\""
},
"sidebar": {
"nowPlaying": "teraz odtwarzane",
"playlists": "$t(entity.playlist_other)",
"playlists": "$t(entity.playlist, {\"count\": 2})",
"search": "$t(common.search)",
"tracks": "$t(entity.track_other)",
"albums": "$t(entity.album_other)",
"genres": "$t(entity.genre_other)",
"folders": "$t(entity.folder_other)",
"settings": "$t(common.setting_other)",
"tracks": "$t(entity.track, {\"count\": 2})",
"albums": "$t(entity.album, {\"count\": 2})",
"genres": "$t(entity.genre, {\"count\": 2})",
"folders": "$t(entity.folder, {\"count\": 2})",
"settings": "$t(common.setting, {\"count\": 2})",
"home": "$t(common.home)",
"artists": "$t(entity.artist_other)",
"albumArtists": "$t(entity.albumArtist_other)",
"shared": "udostępnione $t(entity.playlist_other)",
"artists": "$t(entity.artist, {\"count\": 2})",
"albumArtists": "$t(entity.albumArtist, {\"count\": 2})",
"shared": "udostępniono $t(entity.playlist, {\"count\": 2})",
"myLibrary": "Moja biblioteka",
"favorites": "$t(entity.favorite_other)",
"radio": "$t(entity.radioStation_other)"
"favorites": "$t(entity.favorite, {\"count\": 2})",
"radio": "$t(entity.radioStation, {\"count\": 2})",
"collections": "kolekcje"
},
"home": {
"mostPlayed": "najczęściej odtwarzane",
@@ -511,7 +531,7 @@
"explore": "przeglądaj z biblioteki",
"recentlyPlayed": "ostatnio odtwarzane",
"recentlyReleased": "ostatnio wydane",
"genres": "$t(entity.genre_other)"
"genres": "$t(entity.genre, {\"count\": 2})"
},
"setting": {
"playbackTab": "odtworzenia",
@@ -539,9 +559,9 @@
"lyricsDisplay": "wyświetlanie tekstu"
},
"trackList": {
"title": "$t(entity.track_other)",
"title": "$t(entity.track, {\"count\": 2})",
"artistTracks": "utwory przez {{artist}}",
"genreTracks": "\"{{genre}}\" $t(entity.track_other)"
"genreTracks": "$t(entity.track, {\"count\": 2}) \"{{genre}}\""
},
"globalSearch": {
"commands": {
@@ -552,7 +572,7 @@
"title": "komendy"
},
"playlistList": {
"title": "$t(entity.playlist_other)"
"title": "$t(entity.playlist, {\"count\": 2})"
},
"albumArtistDetail": {
"topSongs": "popularne utwory",
@@ -561,11 +581,15 @@
"recentReleases": "ostatnie wydania",
"viewAll": "zobacz wszystko",
"viewDiscography": "przeglądaj dyskografię",
"relatedArtists": "powiązane z $t(entity.artist_other)",
"relatedArtists": "powiązane z $t(entity.artist, {\"count\": 2})",
"appearsOn": "pojawia się na",
"viewAllTracks": "zobacz wszystko $t(entity.track_other)",
"viewAllTracks": "zobacz wszystko $t(entity.track, {\"count\": 2})",
"groupingTypeAll": "wszystkie typy wydań",
"groupingTypePrimary": "główne typy wydań"
"groupingTypePrimary": "główne typy wydań",
"favoriteSongs": "ulubione piosenki",
"topSongsCommunity": "społeczność",
"topSongsPersonal": "osobiste",
"favoriteSongsFrom": "ulubione piosenki z {{title}}"
},
"itemDetail": {
"copyPath": "kopiuj ścieżkę do schowka",
@@ -584,13 +608,26 @@
"reorder": "zmiana kolejności jest możliwa tylko podczas sortowania według id"
},
"favorites": {
"title": "$t(entity.favorite_other)"
"title": "$t(entity.favorite, {\"count\": 2})"
},
"folderList": {
"title": "$t(entity.folder_other)"
"title": "$t(entity.folder, {\"count\": 2})"
},
"radioList": {
"title": "stacje radiowe"
},
"windowBar": {
"paused": "(Wstrzymane) ",
"privateMode": "(Tryb prywatny)"
},
"collections": {
"overrideExisting": "nadpisz istniejące",
"saveAsCollection": "zapisz jako kolekcję"
},
"releasenotes": {
"commitsSinceStable": "commity od {{stable}}",
"noNewCommits": "brak nowych commitów w tym zakresie",
"noStableReleaseToCompare": "brak dostępnego stabilnego wydania do porównania"
}
},
"player": {
@@ -627,20 +664,27 @@
"playSimilarSongs": "odtwarzaj podobne",
"addLastShuffled": "ostatnie (wylosowane)",
"addNextShuffled": "następne (wylosowane)",
"queueType": "typ kolejki",
"queueType_default": "domyślna",
"queueType_priority": "priorytetowa",
"holdToShuffle": "przytrzymaj aby odtwarzać losowo",
"lyrics": "tekst",
"restoreQueueFromServer": "przywróć kolejkę z serwera",
"saveQueueToServer": "zapisz kolejkę na serwerze",
"artistRadio": "radio wykonawcy",
"trackRadio": "radio utworu"
"trackRadio": "radio utworu",
"sleepTimer": "wyłącznik czasowy",
"sleepTimer_endOfSong": "do końca aktualnej piosenki",
"sleepTimer_minutes": "{{count}} min",
"sleepTimer_hours": "{{count}} godz",
"sleepTimer_custom": "niestandardowy",
"sleepTimer_off": "wyłączony",
"sleepTimer_timeRemaining": "pozostało {{time}}",
"sleepTimer_setCustom": "ustaw wyłącznik",
"sleepTimer_cancel": "anuluj wyłączanie",
"albumRadio": "radio albumu"
},
"setting": {
"crossfadeStyle_description": "wybierz styl przenikania, który ma być używany do odtwarzania dźwięku",
"hotkey_skipBackward": "przeskocz do tyłu",
"audioDevice_description": "wybierz urządzenie dźwiękowe używane do odtwarzania (tylko odtwarzacz przeglądarkowy)",
"audioDevice_description": "wybierz urządzenie dźwiękowe używane do odtwarzania",
"hotkey_playbackPause": "wstrzymaj",
"hotkey_volumeUp": "podgłoś",
"discordIdleStatus_description": "kiedy włączony, aktualizuje stan kiedy odtwarzacz jest bezczynny",
@@ -667,7 +711,6 @@
"globalMediaHotkeys": "globalne skróty klawiszowe multimediów",
"hotkey_globalSearch": "globalne wyszukiwanie",
"gaplessAudio_description": "ustaw dźwięk bez przerw dla mpv",
"disableAutomaticUpdates": "wyłącz automatyczne aktualizacje",
"exitToTray_description": "zamknij aplikację do zasobnika systemowego",
"followLyric_description": "przewiń tekst do obecnego momentu",
"hotkey_favoritePreviousSong": "ulubiona $t(common.previousSong)",
@@ -701,7 +744,7 @@
"applicationHotkeys": "skróty klawiszowe aplikacji",
"hotkey_playbackNext": "następny utwór",
"lyricFetch_description": "pobierz teksty z rozmaitych źródeł internetowych",
"lyricFetchProvider_description": "wybierz dostawców internetowych dla tekstów. zapytania będą wykonywane według podanej kolejności",
"lyricFetchProvider_description": "wybierz dostawców od których pobierane będą teksty",
"globalMediaHotkeys_description": "włącz lub wyłącz używanie systemowych skrótów klawiszowych do kontroli odtwarzania",
"customFontPath": "niestandardowa ścieżka czcionki",
"followLyric": "podążaj za tekstem",
@@ -711,7 +754,7 @@
"hotkey_zoomOut": "oddal",
"hotkey_unfavoriteCurrentSong": "usuń $t(common.currentSong) z ulubionych",
"hotkey_rate0": "wyczyść oceny",
"discordApplicationId": "ID aplikacji {{discord}}",
"discordApplicationId": "id aplikacji {{discord}}",
"applicationHotkeys_description": "ustaw skróty klawiszowe aplikacji. przełącz pole wyboru aby ustawić skrót globalny (tylko komputery)",
"hotkey_volumeMute": "wycisz",
"hotkey_toggleCurrentSongFavorite": "dodaj $t(common.currentSong) do ulubionych",
@@ -757,8 +800,8 @@
"scrobble_description": "przekazywanie informacji o odtwarzaniu (scrobbling) do twojego serwera multimediów",
"sidePlayQueueStyle": "boczny styl kolejki odtwarzania",
"remoteUsername_description": "ustaw nazwę użytkownika dla serwera zdalnej kontroli. Jeśli nazwa użytkownika i hasło są puste, autoryzacja będzie wyłączona",
"replayGainMode_optionAlbum": "$t(entity.album_one)",
"replayGainMode_optionTrack": "$t(entity.track_one)",
"replayGainMode_optionAlbum": "$t(entity.album, {\"count\": 1})",
"replayGainMode_optionTrack": "$t(entity.track, {\"count\": 1})",
"remotePassword_description": "ustawia hasło dla serwera zdalnego sterowania. Te poświadczenia są domyślnie przesyłane w sposób niezabezpieczony, dlatego należy użyć unikalnego hasła na którym ci nie zależy",
"showSkipButtons_description": "pokaż lub ukryj przyciski pomijania na pasku odtwarzacza",
"showSkipButton_description": "pokaż lub ukryj przyciski pomijania na pasku odtwarzacza",
@@ -869,7 +912,7 @@
"releaseChannel_optionBeta": "beta",
"releaseChannel_optionLatest": "najnowsza",
"releaseChannel": "kanał wydań",
"releaseChannel_description": "wybieraj pomiędzy stabilnymi wydaniami a wydaniami beta dla automatycznych aktualizacji",
"releaseChannel_description": "wybieraj pomiędzy wydaniami stabilnymi, beta lub alpha (nightly) dla automatycznych aktualizacji",
"discordDisplayType_artistname": "nazwa(y) wykonawców",
"discordDisplayType_description": "zmienia co jest pokazywane jako słuchane w twoim statusie",
"discordDisplayType_songname": "nazwa piosenki",
@@ -915,7 +958,7 @@
"preservePitch": "utrzymuj ton",
"preventSleepOnPlayback_description": "powstrzymuje ekran przed uśpieniem, gdy muzyka jest odtwarzana",
"preventSleepOnPlayback": "powstrzymuj uśpienie podczas odtwarzania",
"mediaSession_description": "włącza integrację z Windows Media Session, wyświetlając sterowanie mediami i metadane w systemowym oknie zmiany głośności i na ekranie blokady (tylko Windows)",
"mediaSession_description": "włącza integrację z Media Session, wyświetlając sterowanie mediami i metadane w systemowym oknie zmiany głośności i na ekranie blokady",
"mediaSession": "włącz media session",
"transcode": "włącz transkodowanie",
"queryBuilder": "kreator zaptań",
@@ -954,14 +997,56 @@
"imageResolution_optionHeader": "nagłówek",
"imageResolution_optionFullScreenPlayer": "odtwarzacz pełnoekranowy",
"combinedLyricsAndVisualizer_description": "połącz tekst i wizualizacje w tym samym panelu",
"combinedLyricsAndVisualizer": "połącz tekst i wizualizacje w pasku bocznym odtwarzacza"
"combinedLyricsAndVisualizer": "połącz tekst i wizualizacje w pasku bocznym odtwarzacza",
"artistReleaseTypeConfiguration": "konfiguracja typu wydań wykonawcy",
"artistReleaseTypeConfiguration_description": "skonfiguruj jakie typy wydań są pokazywane i w jakiej kolejności na stronie albumów wykonawcy",
"showRatings_description": "kontroluje czy funkcja oceniania gwiazdkami jest pokazywana w interfejsie",
"showRatings": "pokaż ocenianie gwiazdkami",
"mpvExtraParameters": "dodatkowe parametry mpv",
"mpvExtraParameters_description": "dodatkowe argumenty do przekazania mpv",
"hotkey_listNavigateToPage": "lista nawigacja do strony elementu",
"hotkey_listPlayDefault": "lista odtwarzaj",
"hotkey_listPlayLast": "lista odtwarzaj ostatnie",
"hotkey_listPlayNext": "lista odtwarzaj następne",
"hotkey_listPlayNow": "lista odtwarzaj teraz",
"pathReplace": "zamiana ścieżki pliku",
"pathReplace_description": "zamień domyślną ścieżkę pliku twojego serwera",
"pathReplace_optionRemovePrefix": "usuń prefix",
"pathReplace_optionAddPrefix": "dodaj prefix",
"homeFeatureStyle_description": "kontroluje styl karuzeli polecanych na stronie głównej",
"homeFeatureStyle": "Styl karuzeli polecanych na stronie głównej",
"homeFeatureStyle_optionMultiple": "wiele",
"homeFeatureStyle_optionSingle": "jeden",
"enableGridMultiSelect_description": "gdy włączone, pozwala na wybieranie wielu elementów w widokach siatki, gdy wyłączone, klikanie obrazów elementów siatki będzie przenosić na stronę elementu",
"enableGridMultiSelect": "wybieranie wielu w siatce",
"sidebarPlaylistSorting_description": "pozwala na ręczne sortowanie playlist w bocznym pasku używając przeciągania i upuszczania zamiast używania domyślnej kolejności serwera",
"sidebarPlaylistSorting": "sortowanie playlist w bocznym pasku",
"sidebarPlaylistListFilterRegex_description": "ukryj playlisty w pasku bocznym pasujące do wyrażenia regularnego",
"sidebarPlaylistListFilterRegex_placeholder": "np. ^Miks codzienny.^",
"sidebarPlaylistListFilterRegex": "filtr playlist regex",
"blurExplicitImages": "rozmazuj nieodpowiednie obrazy",
"blurExplicitImages_description": "obrazy piosenek oraz albumów oznaczone jako nieodpowiednie będą rozmazywane",
"releaseChannel_optionAlpha": "alpha (nightly)",
"analyticsEnable": "Wysyłaj statystyki na podstawie użytkowania",
"analyticsEnable_description": "Zanonimizowane statystki użytkowania będą wysyłane do twórcy, aby pomóc w poprawie aplikacji",
"automaticUpdates": "Automatyczne aktualizacje",
"automaticUpdates_description": "Automatycznie sprawdzaj i instaluj aktualizacje",
"discordStateIcon": "pokaż ikonę odtwarzania",
"discordStateIcon_description": "pokazuje małą ikonę odtwarzania w statusie. ikona pauzy jest zawsze pokazywana gdy \"Pokaż status podczas pauzy\" jest włączone",
"useThemePrimaryShade": "użyj głównego odcienia motywu",
"useThemePrimaryShade_description": "używaj głównego odcienia zdefiniowanego w wybranym motywie dla głównych wariantów kolorów",
"primaryShade": "główny odcień",
"primaryShade_description": "nadpisz główny odcień (0-9) używany dla przycisków, linków i innych głównie pokolorowanych elementów",
"playerItemConfiguration_description": "skonfiguruj jakie elementy są pokazywane i w jakiej kolejności, w odtwarzaczu pełnoekranowym",
"playerItemConfiguration": "konfiguracja elementów odtwarzacza"
},
"table": {
"config": {
"view": {
"table": "tabela",
"grid": "siatka",
"list": "lista"
"list": "lista",
"detail": "szczegół"
},
"general": {
"displayType": "typ wyświetlania",
@@ -992,7 +1077,8 @@
"alternateRowColors": "naprzemienne kolory wierszy",
"horizontalBorders": "obwódki wierszy",
"rowHoverHighlight": "podświetlanie wierszy po najechaniu",
"verticalBorders": "obwódki kolumn"
"verticalBorders": "obwódki kolumn",
"showHeader": "pokaż nagłówek"
},
"label": {
"releaseDate": "data premiery",
@@ -1006,28 +1092,31 @@
"trackNumber": "numer utworu",
"rowIndex": "indeks wiersza",
"rating": "$t(common.rating)",
"artist": "$t(entity.artist_one)",
"album": "$t(entity.album_one)",
"artist": "$t(entity.artist, {\"count\": 1})",
"album": "$t(entity.album, {\"count\": 1})",
"note": "$t(common.note)",
"biography": "$t(common.biography)",
"owner": "$t(common.owner)",
"path": "$t(common.path)",
"channels": "$t(common.channel_other)",
"channels": "$t(common.channel, {\"count\": 2})",
"playCount": "liczba odtworzeń",
"bitrate": "$t(common.bitrate)",
"actions": "$t(common.action_other)",
"genre": "$t(entity.genre_one)",
"actions": "$t(common.action, {\"count\": 2})",
"genre": "$t(entity.genre, {\"count\": 1})",
"discNumber": "numer płyty",
"favorite": "$t(common.favorite)",
"year": "$t(common.year)",
"albumArtist": "$t(entity.albumArtist_one)",
"albumArtist": "$t(entity.albumArtist, {\"count\": 1})",
"codec": "$t(common.codec)",
"songCount": "$t(entity.track_other)",
"albumCount": "$t(entity.album_other)",
"genreBadge": "$t(entity.genre_one) (znaczki)",
"songCount": "$t(entity.track, {\"count\": 2})",
"albumCount": "$t(entity.album, {\"count\": 2})",
"genreBadge": "$t(entity.genre, {\"count\": 1}) (znaczki)",
"image": "obraz",
"bitDepth": "$t(common.bitDepth)",
"sampleRate": "$t(common.sampleRate)"
"sampleRate": "$t(common.sampleRate)",
"composer": "kompozytor",
"titleArtist": "$t(common.title) (wykonawca)",
"albumGroup": "grupa albumu"
}
},
"column": {
@@ -1036,7 +1125,7 @@
"rating": "ocena",
"favorite": "ulubione",
"playCount": "odtwarzane",
"albumCount": "$t(entity.album_other)",
"albumCount": "$t(entity.album, {\"count\": 2})",
"releaseYear": "rok",
"lastPlayed": "ostatnio odtwarzane",
"biography": "biografia",
@@ -1045,14 +1134,14 @@
"title": "tytuł",
"bpm": "bpm",
"dateAdded": "data dodania",
"artist": "$t(entity.artist_one)",
"songCount": "$t(entity.track_other)",
"artist": "$t(entity.artist, {\"count\": 1})",
"songCount": "$t(entity.track, {\"count\": 2})",
"trackNumber": "utwór",
"genre": "$t(entity.genre_one)",
"genre": "$t(entity.genre, {\"count\": 1})",
"albumArtist": "wykonawca albumu",
"path": "ścieżka",
"discNumber": "płyta",
"channels": "$t(common.channel_other)",
"channels": "$t(common.channel, {\"count\": 2})",
"size": "$t(common.size)",
"codec": "$t(common.codec)",
"owner": "właściciel",
@@ -1066,7 +1155,7 @@
},
"releaseType": {
"primary": {
"album": "$t(entity.album_one)",
"album": "$t(entity.album, {\"count\": 1})",
"broadcast": "broadcast",
"ep": "ep",
"other": "inne",
@@ -1218,18 +1307,6 @@
"noteLabels": "Etykiety Nut",
"showScaleY": "Pokaż Skalę Y",
"options": {
"mode": {
"bars": "[0] Pasków",
"circle": "[1] Kółko",
"wave": "[2] Fala",
"rainbow": "[3] Tęcza",
"rings": "[4] Pierścienie",
"mirror": "[5] Lustro",
"line": "[6] Linia",
"particles": "[7] Cząsteczki",
"fullOctave": "[8] Pełna oktawa / 10 pasm",
"outlineBars": "[10] Paski z obwódką"
},
"colorMode": {
"gradient": "Gradient",
"barIndex": "Indeks-Paska",
@@ -1249,7 +1326,11 @@
"dualVertical": "Podwójne-Pionowe"
},
"frequencyScale": {
"linear": "Linearne"
"linear": "Skala linearna",
"none": "Żadna",
"bark": "Skala bark",
"log": "Skala log",
"mel": "Skala Mel"
},
"weightingFilter": {
"none": "Żadne",
@@ -1258,7 +1339,22 @@
"c": "C",
"d": "D",
"z": "Z"
},
"mode": {
"0": "[0] Dyskretne częstotliwości",
"1": "[1] 1/24 oktawy / 240 pasm",
"2": "[2] 1/12 oktawy / 120 pasm",
"3": "[3] 1/8 oktawy / 80 pasm",
"4": "[4] 1/6 oktawy / 60 pasm",
"5": "[5] 1/4 oktawy / 40 pasm",
"6": "[6] 1/3 oktawy / 30 pasm",
"7": "[7] Pół oktawy / 20 pasm",
"8": "[8] Pełna oktawa / 10 pasm",
"10": "[10] Linia / Wykres miejscowy"
}
}
},
"pasteGradient": "Wklej Gradient",
"pasteGradientPlaceholder": "Wklej tutaj JSON gradientu...",
"ansiBands": "Paski ANSI"
}
}
+64 -63
View File
@@ -14,7 +14,7 @@
"bpm": "BPM",
"edit": "editar",
"favorite": "favorito",
"currentSong": "$t(entity.track_one) atual",
"currentSong": "$t(entity.track, {\"count\": 1}) atual",
"descending": "abaixar",
"dismiss": "liberar",
"duration": "duração",
@@ -58,7 +58,9 @@
"owner": "dono",
"forward": "para frente",
"forceRestartRequired": "reinicie para aplicar as alterações… feche a notificação para reiniciar",
"setting": "configuração",
"setting_one": "configuração",
"setting_many": "",
"setting_other": "",
"version": "versão",
"filter_one": "filtro",
"filter_many": "filtros",
@@ -72,7 +74,7 @@
"none": "nenhum",
"menu": "menu",
"restartRequired": "é necessário reiniciar",
"previousSong": "anterior $t(entity.track_one)",
"previousSong": "anterior $t(entity.track, {\"count\": 1})",
"noResultsFromQuery": "a consulta não retornou resultados",
"quit": "sair",
"search": "procurar",
@@ -101,21 +103,21 @@
},
"action": {
"goToPage": "vá para página",
"addToFavorites": "adicionar em $t(entity.favorite_other)",
"viewPlaylists": "ver $t(entity.playlist_other)",
"addToFavorites": "adicionar em $t(entity.favorite, {\"count\": 2})",
"viewPlaylists": "ver $t(entity.playlist, {\"count\": 2})",
"setRating": "definir classificação",
"moveToTop": "mover para o topo",
"refresh": "$t(common.refresh)",
"removeFromQueue": "remover da fila",
"moveToBottom": "mover para baixo",
"editPlaylist": "editar $t(entity.playlist_one)",
"editPlaylist": "editar $t(entity.playlist, {\"count\": 1})",
"clearQueue": "Limpar fila",
"addToPlaylist": "adicionar à $t(entity.playlist_one)",
"createPlaylist": "Criar $t(entity.playlist_one)",
"removeFromPlaylist": "remover da $t(entity.playlist_one)",
"deletePlaylist": "deletar $t(entity.playlist_one)",
"addToPlaylist": "adicionar à $t(entity.playlist, {\"count\": 1})",
"createPlaylist": "Criar $t(entity.playlist, {\"count\": 1})",
"removeFromPlaylist": "remover da $t(entity.playlist, {\"count\": 1})",
"deletePlaylist": "deletar $t(entity.playlist, {\"count\": 1})",
"deselectAll": "desmarcar todos",
"removeFromFavorites": "remover de $t(entity.favorite_other)",
"removeFromFavorites": "remover de $t(entity.favorite, {\"count\": 2})",
"openIn": {
"lastfm": "Abrir em Last.fm",
"musicbrainz": "Abrir em MusicBrainz"
@@ -125,9 +127,9 @@
},
"form": {
"deletePlaylist": {
"title": "deletar $t(entity.playlist_one)",
"input_confirm": "escreva o nome da $t(entity.playlist_one) para confirmar",
"success": "$t(entity.playlist_one) deletada com sucesso"
"title": "deletar $t(entity.playlist, {\"count\": 1})",
"input_confirm": "escreva o nome da $t(entity.playlist, {\"count\": 1}) para confirmar",
"success": "$t(entity.playlist, {\"count\": 1}) deletada com sucesso"
},
"addServer": {
"title": "adicionar servidor",
@@ -145,10 +147,10 @@
"input_preferInstantMixDescription": "Usar apenas a mixagem instantânea para obter músicas semelhantes. Útil se você tiver plugins que modificam esse comportamento"
},
"createPlaylist": {
"title": "criar $t(entity.playlist_one)",
"title": "criar $t(entity.playlist, {\"count\": 1})",
"input_public": "público",
"input_description": "$t(common.description)",
"success": "$t(entity.playlist_one) criada com sucesso",
"success": "$t(entity.playlist, {\"count\": 1}) criada com sucesso",
"input_owner": "$t(common.owner)",
"input_name": "$t(common.name)"
},
@@ -157,19 +159,19 @@
"success": "servidor atualizado com sucesso"
},
"editPlaylist": {
"title": "editar $t(entity.playlist_one)",
"title": "editar $t(entity.playlist, {\"count\": 1})",
"publicJellyfinNote": "O Jellyfin por algum motivo não expõe se uma playlist é pública ou não. Se você deseja que ela permaneça pública, por favor selecione a seguinte entrada",
"success": "$t(entity.playlist_one) atualizada com sucesso"
"success": "$t(entity.playlist, {\"count\": 1}) atualizada com sucesso"
},
"addToPlaylist": {
"title": "adicionar à $t(entity.playlist_one)",
"input_playlists": "$t(entity.playlist_other)",
"title": "adicionar à $t(entity.playlist, {\"count\": 1})",
"input_playlists": "$t(entity.playlist, {\"count\": 2})",
"input_skipDuplicates": "pular duplicadas",
"success": "adicionado $t(entity.trackWithCount, {\"count\": {{message}} }) para $t(entity.playlistWithCount, {\"count\": {{numOfPlaylists}} })"
},
"lyricSearch": {
"title": "pesquisa de letras",
"input_artist": "$t(entity.artist_one)",
"input_artist": "$t(entity.artist, {\"count\": 1})",
"input_name": "$t(common.name)"
},
"shareItem": {
@@ -228,7 +230,6 @@
"crossfadeDuration_description": "define a duração do efeito crossfade",
"customCssNotice": "Atenção: embora haja alguma sanitização (proibindo url() e content:), usar CSS personalizado ainda pode representar riscos ao alterar a interface",
"crossfadeStyle_description": "seleciona qual estilo de crossfade usado no player de áudio",
"disableAutomaticUpdates": "desabilitar atualizações automáticas",
"disableLibraryUpdateOnStartup": "desabilitar a verificação de novas versões na inicialização",
"artistBackground": "Imagem de fundo do artista",
"artistBackground_description": "Adiciona uma imagem de fundo às páginas do artista contendo a arte do artista",
@@ -370,9 +371,9 @@
"replayGainFallback_description": "Ganho em dB a ser aplicado se o arquivo não tiver tags de {{ReplayGain}}",
"replayGainMode": "Modo {{ReplayGain}}",
"replayGainMode_description": "Ajustar o ganho de volume de acordo com os valores de {{ReplayGain}} armazenados nos metadados do arquivo",
"replayGainMode_optionAlbum": "$t(entity.album_one)",
"replayGainMode_optionAlbum": "$t(entity.album, {\"count\": 1})",
"replayGainMode_optionNone": "$t(common.none)",
"replayGainMode_optionTrack": "$t(entity.track_one)",
"replayGainMode_optionTrack": "$t(entity.track, {\"count\": 1})",
"replayGainPreamp": "Pré-amplificador {{ReplayGain}} (dB)",
"replayGainPreamp_description": "Ajustar o ganho do pré-amplificador aplicado aos valores de {{ReplayGain}}",
"sampleRate": "Taxa de amostragem (sample rate)",
@@ -448,9 +449,9 @@
"titleCombined": "$t(common.title) (combinado)",
"discNumber": "numero do disco",
"actions": "$t(common.action_other)",
"album": "$t(entity.album_one)",
"albumArtist": "$t(entity.albumArtist_one)",
"artist": "$t(entity.artist_one)",
"album": "$t(entity.album, {\"count\": 1})",
"albumArtist": "$t(entity.albumArtist, {\"count\": 1})",
"artist": "$t(entity.artist, {\"count\": 1})",
"biography": "$t(common.biography)",
"bitrate": "$t(common.bitrate)",
"bpm": "$t(common.bpm)",
@@ -459,7 +460,7 @@
"dateAdded": "Data de adição",
"duration": "$t(common.duration)",
"favorite": "$t(common.favorite)",
"genre": "$t(entity.genre_one)",
"genre": "$t(entity.genre, {\"count\": 1})",
"lastPlayed": "Última reprodução",
"note": "$t(common.note)",
"owner": "$t(common.owner)",
@@ -469,7 +470,7 @@
"releaseDate": "Data de lançamento",
"rowIndex": "Índice da linha",
"size": "$t(common.size)",
"songCount": "$t(entity.track_other)",
"songCount": "$t(entity.track, {\"count\": 2})",
"trackNumber": "Número da faixa",
"year": "$t(common.year)"
},
@@ -495,8 +496,8 @@
"size": "$t(common.size)",
"album": "Álbum",
"albumArtist": "Artista do álbum",
"albumCount": "$t(entity.album_other)",
"artist": "$t(entity.artist_one)",
"albumCount": "$t(entity.album, {\"count\": 2})",
"artist": "$t(entity.artist, {\"count\": 1})",
"biography": "Biografia",
"bitrate": "Taxa de bits",
"bpm": "BPM",
@@ -505,14 +506,14 @@
"comment": "Comentário",
"dateAdded": "Data adicionada",
"favorite": "Favorito",
"genre": "$t(entity.genre_one)",
"genre": "$t(entity.genre, {\"count\": 1})",
"lastPlayed": "Último tocado",
"path": "Caminho",
"playCount": "Tocados",
"rating": "Avaliação",
"releaseDate": "Data de lançamento",
"releaseYear": "Ano",
"songCount": "$t(entity.track_other)",
"songCount": "$t(entity.track, {\"count\": 2})",
"trackNumber": "Faixa"
}
},
@@ -526,17 +527,17 @@
"recentlyReleased": "Lançamentos recentes"
},
"albumArtistList": {
"title": "$t(entity.albumArtist_other)"
"title": "$t(entity.albumArtist, {\"count\": 2})"
},
"genreList": {
"title": "$t(entity.genre_other)",
"showTracks": "mostrar $t(entity.genre_one) $t(entity.track_other)",
"showAlbums": "mostrar $t(entity.genre_one) $t(entity.album_other)"
"title": "$t(entity.genre, {\"count\": 2})",
"showTracks": "mostrar $t(entity.genre, {\"count\": 1}) $t(entity.track, {\"count\": 2})",
"showAlbums": "mostrar $t(entity.genre, {\"count\": 1}) $t(entity.album, {\"count\": 2})"
},
"trackList": {
"title": "$t(entity.track_other)",
"title": "$t(entity.track, {\"count\": 2})",
"artistTracks": "faixas de {{artist}}",
"genreTracks": "\"{{genre}}\" $t(entity.track_other)"
"genreTracks": "\"{{genre}}\" $t(entity.track, {\"count\": 2})"
},
"globalSearch": {
"title": "comandos",
@@ -548,26 +549,26 @@
},
"sidebar": {
"home": "$t(common.home)",
"tracks": "$t(entity.track_other)",
"shared": "$t(entity.playlist_other) compartilhada",
"albums": "$t(entity.album_other)",
"genres": "$t(entity.genre_other)",
"folders": "$t(entity.folder_other)",
"albumArtists": "$t(entity.albumArtist_other)",
"artists": "$t(entity.artist_other)",
"tracks": "$t(entity.track, {\"count\": 2})",
"shared": "$t(entity.playlist, {\"count\": 2}) compartilhada",
"albums": "$t(entity.album, {\"count\": 2})",
"genres": "$t(entity.genre, {\"count\": 2})",
"folders": "$t(entity.folder, {\"count\": 2})",
"albumArtists": "$t(entity.albumArtist, {\"count\": 2})",
"artists": "$t(entity.artist, {\"count\": 2})",
"nowPlaying": "tocando agora",
"playlists": "$t(entity.playlist_other)",
"playlists": "$t(entity.playlist, {\"count\": 2})",
"search": "$t(common.search)",
"settings": "$t(common.setting_other)",
"settings": "$t(common.setting, {\"count\": 2})",
"myLibrary": "minha biblioteca"
},
"playlistList": {
"title": "$t(entity.playlist_other)"
"title": "$t(entity.playlist, {\"count\": 2})"
},
"albumList": {
"title": "$t(entity.album_other)",
"title": "$t(entity.album, {\"count\": 2})",
"artistAlbums": "álbuns de {{artist}}",
"genreAlbums": "\"{{genre}}\" $t(entity.album_other)"
"genreAlbums": "\"{{genre}}\" $t(entity.album, {\"count\": 2})"
},
"appMenu": {
"openBrowserDevtools": "abrir ferramentas do desenvolvedor",
@@ -579,7 +580,7 @@
"goForward": "avançar",
"version": "versão {{version}}",
"manageServers": "gerenciar servidores",
"settings": "$t(common.setting_other)",
"settings": "$t(common.setting, {\"count\": 2})",
"privateModeOff": "Desativar modo privado",
"privateModeOn": "Ativar modo privado"
},
@@ -606,15 +607,15 @@
"moveToNext": "$t(action.moveToNext)",
"removeFromPlaylist": "$t(action.removeFromPlaylist)",
"setRating": "$t(action.setRating)",
"goToAlbum": "Ir para $t(entity.album_one)",
"goToAlbumArtist": "Ir para $t(entity.albumArtist_one)"
"goToAlbum": "Ir para $t(entity.album, {\"count\": 1})",
"goToAlbumArtist": "Ir para $t(entity.albumArtist, {\"count\": 1})"
},
"albumArtistDetail": {
"viewAllTracks": "ver todas as $t(entity.track_other)",
"viewAllTracks": "ver todas as $t(entity.track, {\"count\": 2})",
"appearsOn": "aparece em",
"recentReleases": "lançamentos recentes",
"viewDiscography": "ver discografia",
"relatedArtists": "$t(entity.artist_other) relacionados",
"relatedArtists": "$t(entity.artist, {\"count\": 2}) relacionados",
"viewAll": "ver tudo",
"topSongsFrom": "músicas mais tocadas de {{title}}",
"topSongs": "músicas mais tocadas",
@@ -644,7 +645,7 @@
"noLyrics": "nenhuma letra encontrada"
},
"albumDetail": {
"moreFromArtist": "mais deste $t(entity.artist_one)",
"moreFromArtist": "mais deste $t(entity.artist, {\"count\": 1})",
"moreFromGeneric": "mais de {{item}}",
"released": "lançado"
},
@@ -676,7 +677,7 @@
"title": "titulo",
"disc": "disco",
"mostPlayed": "mais tocado",
"album": "$t(entity.album_one)",
"album": "$t(entity.album, {\"count\": 1})",
"name": "nome",
"biography": "bibliografia",
"duration": "duração",
@@ -695,7 +696,7 @@
"recentlyUpdated": "atualizado recentemente",
"dateAdded": "data de adição",
"isRecentlyPlayed": "foi tocado recentemente",
"albumArtist": "$t(entity.albumArtist_one)",
"albumArtist": "$t(entity.albumArtist, {\"count\": 1})",
"recentlyAdded": "adicionado recentemente",
"releaseDate": "data de lançamento",
"recentlyPlayed": "tocado recentemente",
@@ -703,7 +704,7 @@
"isFavorited": "é favoritado",
"releaseYear": "ano de lançamento",
"rating": "avaliação",
"artist": "$t(entity.artist_one)",
"artist": "$t(entity.artist, {\"count\": 1})",
"bpm": "bpm",
"channels": "$t(common.channel_other)",
"comment": "comentário",
@@ -713,8 +714,8 @@
"bitrate": "bitrate",
"isRated": "possui avaliação",
"note": "nota",
"albumCount": "número de $t(entity.album_other)",
"genre": "$t(entity.genre_one)"
"albumCount": "número de $t(entity.album, {\"count\": 2})",
"genre": "$t(entity.genre, {\"count\": 1})"
},
"player": {
"playbackFetchNoResults": "nenhuma música encontrada",
@@ -795,7 +796,7 @@
"track_one": "faixa",
"track_many": "faixas",
"track_other": "faixas",
"smartPlaylist": "$t(entity.playlist_one) inteligente",
"smartPlaylist": "$t(entity.playlist, {\"count\": 1}) inteligente",
"song_one": "música",
"song_many": "músicas",
"song_other": "músicas",
+51 -50
View File
@@ -1,23 +1,23 @@
{
"action": {
"addToFavorites": "adicionar a $t(entity.favorite_other)",
"addToPlaylist": "adicionar a $t(entity.playlist_one)",
"addToFavorites": "adicionar a $t(entity.favorite, {\"count\": 2})",
"addToPlaylist": "adicionar a $t(entity.playlist, {\"count\": 1})",
"clearQueue": "limpar fila",
"createPlaylist": "criar $t(entity.playlist_one)",
"deletePlaylist": "apagar $t(entity.playlist_one)",
"createPlaylist": "criar $t(entity.playlist, {\"count\": 1})",
"deletePlaylist": "apagar $t(entity.playlist, {\"count\": 1})",
"deselectAll": "desmarcar todos",
"editPlaylist": "editar $t(entity.playlist_one)",
"editPlaylist": "editar $t(entity.playlist, {\"count\": 1})",
"goToPage": "vá para página",
"moveToNext": "mover para o próximo",
"moveToBottom": "mover para baixo",
"moveToTop": "mover para o topo",
"refresh": "$t(common.refresh)",
"removeFromFavorites": "remover de $t(entity.favorite_other)",
"removeFromPlaylist": "remover da $t(entity.playlist_one)",
"removeFromFavorites": "remover de $t(entity.favorite, {\"count\": 2})",
"removeFromPlaylist": "remover da $t(entity.playlist, {\"count\": 1})",
"removeFromQueue": "remover da fila",
"setRating": "definir classificação",
"toggleSmartPlaylistEditor": "alternar editor $t(entity.smartPlaylist)",
"viewPlaylists": "ver $t(entity.playlist_other)",
"viewPlaylists": "ver $t(entity.playlist, {\"count\": 2})",
"openIn": {
"lastfm": "Abrir em Last.fm",
"musicbrainz": "Abrir em MusicBrainz"
@@ -52,7 +52,7 @@
"configure": "configurar",
"confirm": "confirmar",
"create": "criar",
"currentSong": "$t(entity.track_one) atual",
"currentSong": "$t(entity.track, {\"count\": 1}) atual",
"decrease": "diminuir",
"delete": "apagar",
"descending": "abaixar",
@@ -92,7 +92,7 @@
"path": "caminho",
"playerMustBePaused": "o player deve estar pausado",
"preview": "pré-visualizar",
"previousSong": "anterior $t(entity.track_one)",
"previousSong": "anterior $t(entity.track, {\"count\": 1})",
"quit": "sair",
"random": "aleatório",
"rating": "classificação",
@@ -106,7 +106,9 @@
"saveAndReplace": "gravar e substituir",
"saveAs": "gravar como",
"search": "procurar",
"setting": "configuração",
"setting_one": "configuração",
"setting_many": "",
"setting_other": "",
"share": "partilhar",
"size": "tamanho",
"sortOrder": "ordem",
@@ -164,7 +166,7 @@
"playlistWithCount_one": "{{count}} playlist",
"playlistWithCount_many": "{{count}} playlists",
"playlistWithCount_other": "{{count}} playlists",
"smartPlaylist": "$t(entity.playlist_one) inteligente",
"smartPlaylist": "$t(entity.playlist, {\"count\": 1}) inteligente",
"track_one": "faixa",
"track_many": "faixas",
"track_other": "faixas",
@@ -201,10 +203,10 @@
"systemFontError": "ocorreu um erro ao tentar obter fontes do sistema"
},
"filter": {
"album": "$t(entity.album_one)",
"albumArtist": "$t(entity.albumArtist_one)",
"albumCount": "número de $t(entity.album_other)",
"artist": "$t(entity.artist_one)",
"album": "$t(entity.album, {\"count\": 1})",
"albumArtist": "$t(entity.albumArtist, {\"count\": 1})",
"albumCount": "número de $t(entity.album, {\"count\": 2})",
"artist": "$t(entity.artist, {\"count\": 1})",
"biography": "bibliografia",
"bitrate": "bitrate",
"bpm": "bpm",
@@ -217,7 +219,7 @@
"duration": "duração",
"favorited": "favoritado",
"fromYear": "a partir do ano",
"genre": "$t(entity.genre_one)",
"genre": "$t(entity.genre, {\"count\": 1})",
"id": "id",
"isCompilation": "é compilação",
"isFavorited": "é favoritado",
@@ -259,31 +261,31 @@
"title": "adicionar servidor"
},
"addToPlaylist": {
"input_playlists": "$t(entity.playlist_other)",
"input_playlists": "$t(entity.playlist, {\"count\": 2})",
"input_skipDuplicates": "pular duplicadas",
"success": "adicionado $t(entity.trackWithCount, {\"count\": {{message}} }) para $t(entity.playlistWithCount, {\"count\": {{numOfPlaylists}} })",
"title": "adicionar à $t(entity.playlist_one)"
"title": "adicionar à $t(entity.playlist, {\"count\": 1})"
},
"createPlaylist": {
"input_description": "$t(common.description)",
"input_name": "$t(common.name)",
"input_owner": "$t(common.owner)",
"input_public": "público",
"success": "$t(entity.playlist_one) criada com sucesso",
"title": "criar $t(entity.playlist_one)"
"success": "$t(entity.playlist, {\"count\": 1}) criada com sucesso",
"title": "criar $t(entity.playlist, {\"count\": 1})"
},
"deletePlaylist": {
"input_confirm": "escreva o nome da $t(entity.playlist_one) para confirmar",
"success": "$t(entity.playlist_one) apagada com sucesso",
"title": "apagar $t(entity.playlist_one)"
"input_confirm": "escreva o nome da $t(entity.playlist, {\"count\": 1}) para confirmar",
"success": "$t(entity.playlist, {\"count\": 1}) apagada com sucesso",
"title": "apagar $t(entity.playlist, {\"count\": 1})"
},
"editPlaylist": {
"publicJellyfinNote": "O Jellyfin por algum motivo não expõe se uma playlist é pública ou não. Se deseja que ela permaneça pública, por favor selecione a seguinte entrada",
"success": "$t(entity.playlist_one) atualizada com sucesso",
"title": "editar $t(entity.playlist_one)"
"success": "$t(entity.playlist, {\"count\": 1}) atualizada com sucesso",
"title": "editar $t(entity.playlist, {\"count\": 1})"
},
"lyricSearch": {
"input_artist": "$t(entity.artist_one)",
"input_artist": "$t(entity.artist, {\"count\": 1})",
"input_name": "$t(common.name)",
"title": "pesquisa de letras"
},
@@ -310,24 +312,24 @@
"appearsOn": "aparece em",
"recentReleases": "lançamentos recentes",
"viewDiscography": "ver discografia",
"relatedArtists": "$t(entity.artist_other) relacionados",
"relatedArtists": "$t(entity.artist, {\"count\": 2}) relacionados",
"topSongs": "músicas mais tocadas",
"topSongsFrom": "músicas mais tocadas de {{title}}",
"viewAll": "ver tudo",
"viewAllTracks": "ver todas as $t(entity.track_other)"
"viewAllTracks": "ver todas as $t(entity.track, {\"count\": 2})"
},
"albumArtistList": {
"title": "$t(entity.albumArtist_other)"
"title": "$t(entity.albumArtist, {\"count\": 2})"
},
"albumDetail": {
"moreFromArtist": "mais deste $t(entity.artist_one)",
"moreFromArtist": "mais deste $t(entity.artist, {\"count\": 1})",
"moreFromGeneric": "mais que {{item}}",
"released": "lançado"
},
"albumList": {
"artistAlbums": "álbuns de {{artist}}",
"genreAlbums": "\"{{genre}}\" $t(entity.album_other)",
"title": "$t(entity.album_other)"
"genreAlbums": "\"{{genre}}\" $t(entity.album, {\"count\": 2})",
"title": "$t(entity.album, {\"count\": 2})"
},
"appMenu": {
"collapseSidebar": "recolher barra lateral",
@@ -338,7 +340,7 @@
"openBrowserDevtools": "abrir ferramentas do programador",
"quit": "$t(common.quit)",
"selectServer": "selecionar servidor",
"settings": "$t(common.setting_other)",
"settings": "$t(common.setting, {\"count\": 2})",
"version": "versão {{version}}"
},
"manageServers": {
@@ -397,9 +399,9 @@
"noLyrics": "nenhuma letra encontrada"
},
"genreList": {
"showAlbums": "mostrar $t(entity.genre_one) $t(entity.album_other)",
"showTracks": "mostrar $t(entity.genre_one) $t(entity.track_other)",
"title": "$t(entity.genre_other)"
"showAlbums": "mostrar $t(entity.genre, {\"count\": 1}) $t(entity.album, {\"count\": 2})",
"showTracks": "mostrar $t(entity.genre, {\"count\": 1}) $t(entity.track, {\"count\": 2})",
"title": "$t(entity.genre, {\"count\": 2})"
},
"globalSearch": {
"commands": {
@@ -425,7 +427,7 @@
"reorder": "reordenar apenas disponível quando ordenado pelo id"
},
"playlistList": {
"title": "$t(entity.playlist_other)"
"title": "$t(entity.playlist, {\"count\": 2})"
},
"setting": {
"advanced": "avançado",
@@ -435,24 +437,24 @@
"windowTab": "janela"
},
"sidebar": {
"albumArtists": "$t(entity.albumArtist_other)",
"albums": "$t(entity.album_other)",
"artists": "$t(entity.artist_other)",
"folders": "$t(entity.folder_other)",
"genres": "$t(entity.genre_other)",
"albumArtists": "$t(entity.albumArtist, {\"count\": 2})",
"albums": "$t(entity.album, {\"count\": 2})",
"artists": "$t(entity.artist, {\"count\": 2})",
"folders": "$t(entity.folder, {\"count\": 2})",
"genres": "$t(entity.genre, {\"count\": 2})",
"home": "$t(common.home)",
"myLibrary": "a minha biblioteca",
"nowPlaying": "agora a tocar",
"playlists": "$t(entity.playlist_other)",
"playlists": "$t(entity.playlist, {\"count\": 2})",
"search": "$t(common.search)",
"settings": "$t(common.setting_other)",
"shared": "$t(entity.playlist_other) partilhada",
"tracks": "$t(entity.track_other)"
"settings": "$t(common.setting, {\"count\": 2})",
"shared": "$t(entity.playlist, {\"count\": 2}) partilhada",
"tracks": "$t(entity.track, {\"count\": 2})"
},
"trackList": {
"artistTracks": "faixas de {{artist}}",
"genreTracks": "\"{{genre}}\" $t(entity.track_other)",
"title": "$t(entity.track_other)"
"genreTracks": "\"{{genre}}\" $t(entity.track, {\"count\": 2})",
"title": "$t(entity.track, {\"count\": 2})"
}
},
"player": {
@@ -521,7 +523,6 @@
"customCssEnable_description": "permite escrever css customizado",
"customCssNotice": "Aviso: apesar de existir alguma higienização (url() e content: não são permitidas), o uso de css personalizado ainda pode representar riscos ao alterar a interface",
"customCss": "css customizado",
"disableAutomaticUpdates": "desativar atualizações automáticas",
"disableLibraryUpdateOnStartup": "desativar a verificação de novas versões na inicialização",
"discordApplicationId": "{{discord}} ID da aplicação",
"discordIdleStatus_description": "quando ativado, atualiza o estado enquanto o player está ocioso",
+332 -82
View File
@@ -1,27 +1,43 @@
{
"action": {
"editPlaylist": "редактировать $t(entity.playlist_one)",
"editPlaylist": "редактировать $t(entity.playlist, {\"count\": 1})",
"goToPage": "перейти на страницу",
"moveToTop": "вверх",
"clearQueue": "очистить очередь",
"addToFavorites": "добавить в $t(entity.favorite_other)",
"addToPlaylist": "добавить в $t(entity.playlist_one)",
"createPlaylist": "создать $t(entity.playlist_one)",
"removeFromPlaylist": "удалить из $t(entity.playlist_one)",
"viewPlaylists": "показать $t(entity.playlist_other)",
"addToFavorites": "добавить в $t(entity.favorite, {\"count\": 2})",
"addToPlaylist": "добавить в $t(entity.playlist, {\"count\": 1})",
"createPlaylist": "создать $t(entity.playlist, {\"count\": 1})",
"removeFromPlaylist": "удалить из $t(entity.playlist, {\"count\": 1})",
"viewPlaylists": "показать $t(entity.playlist, {\"count\": 2})",
"refresh": "$t(common.refresh)",
"deletePlaylist": "удалить $t(entity.playlist_one)",
"deletePlaylist": "удалить $t(entity.playlist, {\"count\": 1})",
"removeFromQueue": "удалить из очереди",
"deselectAll": "снять выделение",
"moveToBottom": "вниз",
"setRating": "оценить",
"toggleSmartPlaylistEditor": "вкл./откл. редактор $t(entity.smartPlaylist)",
"removeFromFavorites": "удалить из $t(entity.favorite_other)",
"removeFromFavorites": "удалить из $t(entity.favorite, {\"count\": 2})",
"openIn": {
"lastfm": "открыть на Last.fm",
"musicbrainz": "открыть на MusicBrainz"
},
"moveToNext": "следующий"
"moveToNext": "следующий",
"addOrRemoveFromSelection": "добавить или удалить из выделения",
"createRadioStation": "создать $t(entity.radioStation, {\"count\": 1})",
"deleteRadioStation": "удалить $t(entity.radioStation, {\"count\": 1})",
"selectAll": "выделить все",
"downloadStarted": "Начата загрузка {{count}} предметов",
"moveUp": "перейти наверх",
"moveDown": "Перейти вниз",
"holdToMoveToTop": "Удержать для перехода на верх",
"holdToMoveToBottom": "удержать для перехода вниз",
"moveItems": "переместить предметы",
"shuffle": "Перемешать",
"shuffleAll": "перемешать все",
"shuffleSelected": "Смешать выбранное",
"viewMore": "Посмотреть больше",
"openApplicationDirectory": "открыть папку приложения",
"selectRangeOfItems": "выбрать диапазон элементов"
},
"common": {
"backward": "назад",
@@ -36,7 +52,7 @@
"left": "лево",
"save": "сохранить",
"right": "право",
"currentSong": "текущий $t(entity.track_one)",
"currentSong": "текущий $t(entity.track, {\"count\": 1})",
"collapse": "закрыть",
"trackNumber": "трек",
"descending": "по убыванию",
@@ -68,8 +84,8 @@
"forceRestartRequired": "перезапустите приложение, чтобы применить изменения... закройте уведомление для перезапуска",
"setting": "настройка",
"setting_one": "настройка",
"setting_few": "",
"setting_many": "",
"setting_few": "настройки",
"setting_many": "настроек",
"version": "версия",
"title": "название",
"filter_one": "фильтр",
@@ -95,7 +111,7 @@
"sortOrder": "порядок",
"menu": "меню",
"restartRequired": "необходим перезапуск приложения",
"previousSong": "предыдущий $t(entity.track_one)",
"previousSong": "предыдущий $t(entity.track, {\"count\": 1})",
"noResultsFromQuery": "ничего не найдено",
"quit": "выйти",
"expand": "раскрыть",
@@ -124,7 +140,30 @@
"viewReleaseNotes": "Список изменений",
"bitDepth": "Разрядность",
"sampleRate": "частота дискретизации",
"tags": "теги"
"tags": "теги",
"countSelected": "{{count}} выбрано",
"faster": "быстрее",
"filter_single": "один",
"filter_multiple": "несколько",
"mood": "настроение",
"noFilters": "фильтры не настроены",
"private": "приватный",
"public": "открытый",
"retry": "повторить",
"recordLabel": "лейбл звукозаписи",
"releaseType": "тип выпуска",
"slower": "медленее",
"sort": "сортировать",
"clean": "очистить",
"gridRows": "Строки в сетке",
"tableColumns": "Столбцы таблицы",
"doNotShowAgain": "не показывать снова",
"itemsMore": "{{count}} более",
"view": "посмотреть",
"example": "пример",
"rename": "переименовать",
"explicit": "нецензурная лексика",
"externalLinks": "внешние ссылки"
},
"entity": {
"album_one": "альбом",
@@ -173,13 +212,19 @@
"folder_one": "папка",
"folder_few": "папки",
"folder_many": "папок",
"smartPlaylist": "умный $t(entity.playlist_one)",
"smartPlaylist": "умный $t(entity.playlist, {\"count\": 1})",
"genreWithCount_one": "{{count}} жанр",
"genreWithCount_few": "{{count}} жанра",
"genreWithCount_many": "{{count}} жанров",
"trackWithCount_one": "{{count}} трек",
"trackWithCount_few": "{{count}} трека",
"trackWithCount_many": "{{count}} треков"
"trackWithCount_many": "{{count}} треков",
"radioStation_one": "радиостанция",
"radioStation_few": "радиостанции",
"radioStation_many": "радиостанции",
"radioStationWithCount_one": "Радиостанция",
"radioStationWithCount_few": "Радиостанций",
"radioStationWithCount_many": "Радиостанции"
},
"table": {
"config": {
@@ -208,8 +253,8 @@
"trackNumber": "номер трека",
"rowIndex": "номер строки",
"rating": "$t(common.rating)",
"artist": "$t(entity.artist_one)",
"album": "$t(entity.album_one)",
"artist": "$t(entity.artist, {\"count\": 1})",
"album": "$t(entity.album, {\"count\": 1})",
"note": "$t(common.note)",
"biography": "$t(common.biography)",
"owner": "$t(common.owner)",
@@ -218,13 +263,14 @@
"playCount": "количество воспроизведений",
"bitrate": "$t(common.bitrate)",
"actions": "$t(common.action_other)",
"genre": "$t(entity.genre_one)",
"genre": "$t(entity.genre, {\"count\": 1})",
"discNumber": "номер диска",
"favorite": "$t(common.favorite)",
"year": "$t(common.year)",
"albumArtist": "$t(entity.albumArtist_one)",
"albumArtist": "$t(entity.albumArtist, {\"count\": 1})",
"codec": "$t(common.codec)",
"songCount": "$t(entity.track_other)"
"songCount": "$t(entity.track, {\"count\": 2})",
"titleArtist": "$t(common.title) (артист)"
}
},
"column": {
@@ -235,9 +281,9 @@
"lastPlayed": "последний",
"releaseDate": "дата выхода",
"title": "название",
"songCount": "$t(entity.track_other)",
"songCount": "$t(entity.track, {\"count\": 2})",
"trackNumber": "трек",
"genre": "$t(entity.genre_one)",
"genre": "$t(entity.genre, {\"count\": 1})",
"path": "путь",
"discNumber": "диск",
"size": "$t(common.size)",
@@ -247,8 +293,8 @@
"biography": "биография",
"codec": "$t(common.codec)",
"comment": "комментарий",
"albumCount": "$t(entity.album_other)",
"artist": "$t(entity.artist_one)",
"albumCount": "$t(entity.album, {\"count\": 2})",
"artist": "$t(entity.artist, {\"count\": 1})",
"bitrate": "битрейт",
"channels": "$t(common.channel_other)",
"bpm": "bpm"
@@ -278,7 +324,14 @@
"badAlbum": "вы видите эту страницу из-за того, что эта песня не входит в альбом. скорее всего, вы видите эту ошибку, так как песня находится в корневой директории папки с музыкой. Jellyfin группирует треки только по папкам",
"networkError": "возникла ошибка сети",
"badValue": "Недопустимый параметр «{{value}}». Это значение больше не существует",
"notificationDenied": "Доступ к уведомлениям запрещен. Настройка не работает"
"notificationDenied": "Доступ к уведомлениям запрещен. Настройка не работает",
"multipleServerSaveQueueError": "в очереди воспроизведения присутствует одна или несколько песен, которые не загружены с текущего сервера. это не поддерживается",
"noNetwork": "сервер недоступен",
"noNetworkDescription": "Не удалось подключиться к серверу",
"saveQueueFailed": "Не удалось сохранить очередь",
"settingsSyncError": "обнаружены несоответствия между настройками рендерера и основным процессом. перезапустите приложение, чтобы изменения вступили в силу",
"invalidJson": "невалидный JSON",
"serverLockSingleServer": "при заблокированном сервере разрешается использовать только один сервер"
},
"filter": {
"isCompilation": "сборник",
@@ -287,12 +340,12 @@
"dateAdded": "дата добавления",
"communityRating": "рейтинг сообщества",
"favorited": "любимый",
"albumArtist": "$t(entity.albumArtist_one)",
"albumArtist": "$t(entity.albumArtist, {\"count\": 1})",
"isFavorited": "любимые",
"bpm": "уд./мин.",
"disc": "диск",
"biography": "биография",
"artist": "$t(entity.artist_one)",
"artist": "$t(entity.artist, {\"count\": 1})",
"duration": "длительность",
"fromYear": "год",
"criticRating": "рейтинг критиков",
@@ -306,12 +359,12 @@
"title": "название",
"rating": "рейтинг",
"search": "поиск",
"genre": "$t(entity.genre_one)",
"genre": "$t(entity.genre, {\"count\": 1})",
"recentlyAdded": "недавно добавленные",
"note": "заметка",
"name": "название",
"releaseDate": "дата выхода",
"albumCount": "количество $t(entity.album_other)",
"albumCount": "количество $t(entity.album, {\"count\": 2})",
"path": "путь",
"isRecentlyPlayed": "недавно проигрывался",
"releaseYear": "год выхода",
@@ -321,8 +374,12 @@
"random": "случайно",
"lastPlayed": "последний раз проигрывалась",
"toYear": "до года",
"album": "$t(entity.album_one)",
"trackNumber": "трек"
"album": "$t(entity.album, {\"count\": 1})",
"trackNumber": "трек",
"matchAnd": "и",
"matchOr": "или",
"sortName": "сортировка по имени",
"explicitStatus": "$t(common.explicitStatus)"
},
"player": {
"repeat_all": "повторять все",
@@ -352,26 +409,45 @@
"queue_moveToTop": "переместить выделенное вниз",
"queue_moveToBottom": "переместить выделенное вверх",
"shuffle_off": "перемешивание выключено",
"addLast": "воспроизвести после всех",
"addLast": "последний",
"mute": "отключить звук",
"skip_forward": "вперёд",
"viewQueue": "показать очередь"
"viewQueue": "показать очередь",
"addLastShuffled": "последний (смешанный)",
"addNextShuffled": "следующий (смешанный)",
"artistRadio": "Радио артист",
"holdToShuffle": "удержать для смешивания",
"lyrics": "тексты песен",
"restoreQueueFromServer": "восстановить очередь с сервера",
"saveQueueToServer": "сохранить очередь на сервер",
"trackRadio": "трек радио",
"albumRadio": "Радио по альбому",
"sleepTimer": "таймер сна",
"sleepTimer_endOfSong": "конец текущей песни",
"sleepTimer_minutes": "{{count}} минут",
"sleepTimer_hours": "{{count}} часов",
"sleepTimer_off": "выключено",
"sleepTimer_timeRemaining": "{{time}} осталось",
"sleepTimer_setCustom": "установить таймер"
},
"page": {
"sidebar": {
"nowPlaying": "сейчас играет",
"playlists": "$t(entity.playlist_other)",
"playlists": "$t(entity.playlist, {\"count\": 2})",
"search": "$t(common.search)",
"tracks": "$t(entity.track_other)",
"albums": "$t(entity.album_other)",
"genres": "$t(entity.genre_other)",
"folders": "$t(entity.folder_other)",
"settings": "$t(common.setting_other)",
"tracks": "$t(entity.track, {\"count\": 2})",
"albums": "$t(entity.album, {\"count\": 2})",
"genres": "$t(entity.genre, {\"count\": 2})",
"folders": "$t(entity.folder, {\"count\": 2})",
"settings": "$t(common.setting, {\"count\": 2})",
"home": "$t(common.home)",
"artists": "$t(entity.artist_other)",
"albumArtists": "$t(entity.albumArtist_other)",
"artists": "$t(entity.artist, {\"count\": 2})",
"albumArtists": "$t(entity.albumArtist, {\"count\": 2})",
"myLibrary": "Моя библиотека",
"shared": "Публичные плейлисты $t(entity.playlist_other)"
"shared": "Публичные плейлисты $t(entity.playlist, {\"count\": 2})",
"collections": "коллекции",
"favorites": "$t(entity.favorite, {\"count\": 2})",
"radio": "$t(entity.radioStation, {\"count\": 2})"
},
"fullscreenPlayer": {
"config": {
@@ -399,7 +475,7 @@
"appMenu": {
"selectServer": "список серверов",
"version": "версия {{version}}",
"settings": "$t(common.setting_other)",
"settings": "$t(common.setting, {\"count\": 2})",
"manageServers": "редактировать список серверов",
"expandSidebar": "развернуть боковую панель",
"collapseSidebar": "Скрыть боковую панель",
@@ -408,7 +484,11 @@
"goBack": "назад",
"goForward": "вперёд",
"privateModeOff": "Выключить приватный режим",
"privateModeOn": "Включить приватный режим"
"privateModeOn": "Включить приватный режим",
"selectMusicFolder": "выбрать папку с музыкой",
"noMusicFolder": "папка с музыкой не выбрана",
"multipleMusicFolders": "{{count}} выбрано музыкальных папок",
"commandPalette": "открыть командную строку"
},
"manageServers": {
"title": "сервера",
@@ -438,8 +518,13 @@
"removeFromQueue": "$t(action.removeFromQueue)",
"showDetails": "получить информацию",
"shareItem": "поделиться",
"goToAlbum": "Перейти к $t(entity.album_one)",
"goToAlbumArtist": "Перейти к $t(entity.albumArtist_one)"
"goToAlbum": "Перейти к $t(entity.album, {\"count\": 1})",
"goToAlbumArtist": "Перейти к $t(entity.albumArtist, {\"count\": 1})",
"goTo": "перейти в",
"moveItems": "$t(action.moveItems)",
"moveToNext": "$t(action.moveToNext)",
"playSimilarSongs": "$t(player.playSimilarSongs)",
"playShuffled": "$t(player.shuffle)"
},
"home": {
"mostPlayed": "слушают чаще всего",
@@ -447,10 +532,11 @@
"title": "$t(common.home)",
"explore": "откройте новое",
"recentlyPlayed": "игралось недавно",
"recentlyReleased": "Новинки"
"recentlyReleased": "Новинки",
"genres": "$t(entity.genre, {\"count\": 2})"
},
"albumDetail": {
"moreFromArtist": "больше от $t(entity.artist_one)",
"moreFromArtist": "больше от $t(entity.artist, {\"count\": 1})",
"moreFromGeneric": "больше из {{item}}",
"released": "выпущен"
},
@@ -459,19 +545,37 @@
"generalTab": "общее",
"hotkeysTab": "горячие клавиши",
"windowTab": "окно",
"advanced": "расширенные"
"advanced": "расширенные",
"analytics": "аналитика",
"updates": "обновить",
"cache": "кэш",
"application": "приложение",
"theme": "тема",
"controls": "элементы управления",
"sidebar": "боковая панель",
"remote": "удаленный",
"exportImport": "импорт/экспорт",
"audio": "аудио",
"lyrics": "тексты песен",
"lyricsDisplay": "отображение текстов песен",
"transcoding": "транскодирование",
"scrobble": "скробблер",
"logger": "Отладка",
"playerFilters": "фильтры проигрывателя",
"queryBuilder": "конструктор очереди",
"discord": "discord"
},
"albumArtistList": {
"title": "$t(entity.albumArtist_other)"
"title": "$t(entity.albumArtist, {\"count\": 2})"
},
"genreList": {
"title": "$t(entity.genre_other)",
"showAlbums": "показать $t(entity.genre_one) $t(entity.album_other)",
"showTracks": "показать $t(entity.genre_one) $t(entity.track_other)"
"title": "$t(entity.genre, {\"count\": 2})",
"showAlbums": "показать $t(entity.genre, {\"count\": 1}) $t(entity.album, {\"count\": 2})",
"showTracks": "показать $t(entity.genre, {\"count\": 1}) $t(entity.track, {\"count\": 2})"
},
"trackList": {
"title": "$t(entity.track_other)",
"genreTracks": "\"{{genre}}\" $t(entity.track_other)",
"title": "$t(entity.track, {\"count\": 2})",
"genreTracks": "\"{{genre}}\" $t(entity.track, {\"count\": 2})",
"artistTracks": "Треки {{artist}}"
},
"globalSearch": {
@@ -486,42 +590,68 @@
"reorder": "сортировка доступна только по ID"
},
"playlistList": {
"title": "$t(entity.playlist_other)"
"title": "$t(entity.playlist, {\"count\": 2})"
},
"albumList": {
"title": "$t(entity.album_other)",
"title": "$t(entity.album, {\"count\": 2})",
"artistAlbums": "альбомы {{artist}}",
"genreAlbums": "\"{{genre}}\" $t(entity.album_other)"
"genreAlbums": "\"{{genre}}\" $t(entity.album, {\"count\": 2})"
},
"albumArtistDetail": {
"topSongs": "популярные треки",
"viewAll": "посмотреть всё",
"appearsOn": "появляется в",
"viewDiscography": "посмотреть дискографию",
"relatedArtists": "похож на $t(entity.artist_other)",
"viewAllTracks": "посмотреть все $t(entity.track_other)",
"relatedArtists": "похож на $t(entity.artist, {\"count\": 2})",
"viewAllTracks": "посмотреть все $t(entity.track, {\"count\": 2})",
"recentReleases": "недавние релизы",
"about": "О {{artist}}",
"topSongsFrom": "популярные треки из {{title}}"
"topSongsFrom": "популярные треки из {{title}}",
"groupingTypeAll": "все типы выпусков",
"groupingTypePrimary": "основные типы выпусков",
"favoriteSongs": "любимые треки",
"topSongsCommunity": "сообщество",
"topSongsPersonal": "личное",
"favoriteSongsFrom": "любимые треки от {{title}}"
},
"itemDetail": {
"copyPath": "скопировать путь в буфер обмена",
"openFile": "открыть трек в менеджере файлов",
"copiedPath": "путь успешно скопирован"
},
"radioList": {
"title": "радиостанции"
},
"windowBar": {
"privateMode": "(Режим приватности)",
"paused": "(Приостановлено) "
},
"collections": {
"saveAsCollection": "сохранить коллекцией",
"overrideExisting": "переопределить существующий"
},
"releasenotes": {
"commitsSinceStable": "коммито после {{stable}}"
},
"favorites": {
"title": "$t(entity.favorite, {\"count\": 2})"
},
"folderList": {
"title": "$t(entity.folder, {\"count\": 2})"
}
},
"form": {
"deletePlaylist": {
"title": "удалить $t(entity.playlist_one)",
"success": "$t(entity.playlist_one) успешно удалён",
"input_confirm": "напишите название $t(entity.playlist_one) для подтверждения"
"title": "удалить $t(entity.playlist, {\"count\": 1})",
"success": "$t(entity.playlist, {\"count\": 1}) успешно удалён",
"input_confirm": "напишите название $t(entity.playlist, {\"count\": 1}) для подтверждения"
},
"createPlaylist": {
"input_description": "$t(common.description)",
"title": "создать $t(entity.playlist_one)",
"title": "создать $t(entity.playlist, {\"count\": 1})",
"input_public": "публичный",
"input_name": "$t(common.name)",
"success": "$t(entity.playlist_one) успешно создан",
"success": "$t(entity.playlist, {\"count\": 1}) успешно создан",
"input_owner": "$t(common.owner)"
},
"addServer": {
@@ -537,13 +667,18 @@
"ignoreCors": "игнорировать CORS ($t(common.restartRequired))",
"error_savePassword": "произошла ошибка при сохранении пароля",
"input_preferInstantMix": "Предпочитать автоподборку",
"input_preferInstantMixDescription": "Использовать быстрый микс только для поиска похожих композиций. Полезно, если у вас есть плагины, которые изменяют это поведение"
"input_preferInstantMixDescription": "Использовать быстрый микс только для поиска похожих композиций. Полезно, если у вас есть плагины, которые изменяют это поведение",
"input_preferRemoteUrl": "предпочитать публичный url",
"input_remoteUrl": "публичный url",
"input_remoteUrlPlaceholder": "необязательно: публичный гкд-адрес для доступа к внешним функциям"
},
"addToPlaylist": {
"success": "добавлено: $t(entity.trackWithCount, {\"count\": {{message}} }) в $t(entity.playlistWithCount, {\"count\": {{numOfPlaylists}} })",
"title": "добавить в $t(entity.playlist_one)",
"title": "добавить в $t(entity.playlist, {\"count\": 1})",
"input_skipDuplicates": "не добавлять дубликаты",
"input_playlists": "$t(entity.playlist_other)"
"input_playlists": "$t(entity.playlist, {\"count\": 2})",
"create": "создать $t(entity.playlist, {\"count\": 1}) {{playlist}}",
"searchOrCreate": "для создания нового списка выполните поиск по $t(entity.playlist, {\"count\": 2}) или введите соответствующий текст"
},
"updateServer": {
"title": "обновление сервера",
@@ -552,17 +687,22 @@
"queryEditor": {
"input_optionMatchAll": "сопоставить все",
"input_optionMatchAny": "сопоставить любой",
"title": "Редактор запросов"
"title": "Редактор запросов",
"addRuleGroup": "добавить группу правил",
"removeRuleGroup": "удалить группу правил",
"resetToDefault": "сбросить на настройки по умолчанию",
"clearFilters": "очистить фильтры"
},
"lyricSearch": {
"input_name": "$t(common.name)",
"input_artist": "$t(entity.artist_one)",
"input_artist": "$t(entity.artist, {\"count\": 1})",
"title": "поиск слов песни"
},
"editPlaylist": {
"title": "редактировать $t(entity.playlist_one)",
"success": "$t(entity.playlist_one) обновлён успешно",
"publicJellyfinNote": "Jellyfin по какой-то причине не предоставляет информацию о том, публичный плейлист или нет. Если вы хотите, чтобы он остался публичным, выберите следующую опцию"
"title": "редактировать $t(entity.playlist, {\"count\": 1})",
"success": "$t(entity.playlist, {\"count\": 1}) обновлён успешно",
"publicJellyfinNote": "Jellyfin по какой-то причине не предоставляет информацию о том, публичный плейлист или нет. Если вы хотите, чтобы он остался публичным, выберите следующую опцию",
"editNote": "редактирование больших плейлистов вручную не рекомендуется. Вы уверены, что готовы принять риск потери данных, который может возникнуть в результате перезаписи существующего плейлиста?"
},
"shareItem": {
"success": "ссылка скопирована в буфер обмена (нажмите здесь, чтобы открыть)",
@@ -570,12 +710,44 @@
"createFailed": "не удалось создать ссылку для общего доступа (проверьте, включен ли общий доступ?)",
"allowDownloading": "разрешить скачивание",
"setExpiration": "установить срок действия",
"description": "описание"
"description": "описание",
"copyToClipboard": "Скопировано в буфер обмена: Ctrl+C, Enter",
"successMustClick": "Ссылка создана успешо. Нажимите, чтобы окрыть"
},
"privateMode": {
"enabled": "Приватный режим включен. Статус воспроизведения скрыт от внешних интеграций",
"disabled": "Приватный режим отключен. Статус воспроизведения теперь виден внешним интеграциям",
"title": "Приватный режим"
},
"largeFetchConfirmation": {
"title": "добавить элементы в очередь",
"description": "Это действие добавит все элементы в текущий отфильтрованный вид"
},
"createRadioStation": {
"success": "радиостанция успешно создана",
"title": "создать радиостанцию",
"input_homepageUrl": "домашняя страница",
"input_name": "имя",
"input_streamUrl": "ссылка потока"
},
"lyricsExport": {
"export": "экспортировать тексты песен",
"input_synced": "экспорт синхронизированных текстов песен",
"input_offset": "$t(setting.lyricOffset)"
},
"saveQueue": {
"success": "сохранена очередь воспроизведения на сервере"
},
"shuffleAll": {
"title": "Случайное воспроизведение",
"input_limit": "сколько песен?",
"input_minYear": "от года",
"input_maxYear": "до года",
"input_played": "воспроизвести фильтр",
"input_played_optionAll": "все треки",
"input_played_optionUnplayed": "только не игранные треки",
"input_played_optionPlayed": "только игранные треки",
"input_genre": "$t(entity.genre, {\"count\": 1})"
}
},
"setting": {
@@ -596,7 +768,6 @@
"disableLibraryUpdateOnStartup": "отключить проверку новых версий при запуске приложения",
"minimizeToTray_description": "сворачивать приложение в панель уведомлений",
"audioPlayer_description": "укажите, какой аудиоплеер использовать для воспроизведения",
"disableAutomaticUpdates": "отключить проверку обновлений",
"exitToTray_description": "При закрытии приложения - оно останется в панели уведомлений",
"fontType_optionCustom": "пользовательский",
"remotePassword": "пароль к серверу удалённого управления",
@@ -629,9 +800,9 @@
"hotkey_zoomOut": "уменьшить масштаб",
"playbackStyle_optionCrossFade": "затухание",
"replayGainMode": "режим {{ReplayGain}}",
"replayGainMode_optionAlbum": "$t(entity.album_one)",
"replayGainMode_optionAlbum": "$t(entity.album, {\"count\": 1})",
"replayGainMode_optionNone": "$t(common.none)",
"replayGainMode_optionTrack": "$t(entity.track_one)",
"replayGainMode_optionTrack": "$t(entity.track, {\"count\": 1})",
"clearQueryCache_description": "так называемая \"мягкая очистка\" feishin: обновляются плейлисты, метаданные треков, но сохранённые тексты треков сбрасываются. настройки, учётные данные и кэшированные изображения сохраняются",
"hotkey_favoriteCurrentSong": "добавить $t(common.currentSong) в избранное",
"globalMediaHotkeys": "глобальные мультимедийные горячие клавиши",
@@ -775,7 +946,28 @@
"artistBackground": "Фоновое изображение исполнителя",
"artistBackground_description": "Добавляет фоновое изображение для страниц исполнителя, содержащих обложку исполнителя",
"artistBackgroundBlur": "процент размытия обложки исполнителя",
"artistBackgroundBlur_description": "регулирует процент размытия к заднему фону исполнителя"
"artistBackgroundBlur_description": "регулирует процент размытия к заднему фону исполнителя",
"autoDJ_description": "автоматически добавлять похожие песни в очередь воспроизведения",
"autoDJ_itemCount": "количество элементов",
"autoDJ_itemCount_description": "количество элементов, которые пытаются добавить в очередь при включенной функции автоматического диджеинга",
"autoDJ_timing": "расчетное время",
"autoDJ_timing_description": "количество песен, оставшихся в очереди до срабатывания автоматического диджея",
"useThemeAccentColor": "использовать цвет темы",
"useThemeAccentColor_description": "используйте основной цвет определенный в выбранной теме вместо пользовательского акцентного цвета",
"analyticsDisable": "Отказаться от аналитики на основе использования",
"analyticsDisable_description": "Анонимизированные данные об использовании отправляются разработчику для улучшения приложения",
"crossfadeStyle": "стиль перехода",
"customCss_description": "пользовательский CSS-контент. Примечание: свойства content и remote urls не допускаются. Предварительный просмотр вашего контента показан ниже. Дополнительные поля, которые вы не задали, присутствуют из-за проверки на наличие ошибок",
"customCss": "Пользовательский CSS",
"customCssNotice": "Предупреждение: несмотря на некоторую очистку (запрет использования url() и content:), использование пользовательских CSS-стилей всё ещё может представлять риски, изменяя интерфейс",
"releaseChannel_optionBeta": "Бета",
"releaseChannel_optionLatest": "последний",
"releaseChannel": "Тип релиза",
"releaseChannel_description": "Выберите между стабильной или бета версией для автоматического обновления",
"discordDisplayType_artistname": "Имя (имена) исполнителя",
"discordDisplayType_description": "это меняет то, что вы слушаете в своем статусе",
"discordDisplayType_songname": "имя песни",
"discordDisplayType": "{{discord}} тип отображения"
},
"releaseType": {
"secondary": {
@@ -784,10 +976,68 @@
"compilation": "подборка",
"interview": "интервью",
"remix": "ремикс",
"live": "прямой эфир"
"live": "прямой эфир",
"soundtrack": "саундтрек",
"spokenWord": "Художественная декламация",
"audioDrama": "радиопостановка"
},
"primary": {
"other": "другие"
"other": "другие",
"broadcast": "транслировать",
"ep": "эп",
"single": "сингл"
}
},
"datetime": {
"minuteShort": "м",
"secondShort": "с",
"hourShort": "ч",
"dayShort": "д"
},
"filterOperator": {
"after": "после",
"afterDate": "после (дата)",
"before": "это раньше",
"beforeDate": "это раньше (дата)",
"contains": "содержит",
"endsWith": "заканчивается",
"inPlaylist": "находится в",
"inTheLast": "находится в последнем",
"inTheRange": "находится в диапазоне",
"inTheRangeDate": "находится в диапазоне (дата)",
"is": "является",
"isNot": "не",
"isGreaterThan": "больше чем",
"isLessThan": "меньше чем",
"matchesRegex": "соответствует выражению",
"notContains": "не содержит",
"notInPlaylist": "не в",
"notInTheLast": "не в последнем",
"startsWith": "начинается с"
},
"queryBuilder": {
"standardTags": "стандартные теги",
"customTags": "пользовательские теги"
},
"visualizer": {
"presets": "Пресеты",
"selectPreset": "Выбрать Пресет",
"applyPreset": "Применить Пресет",
"saveAsPreset": "Сохранить пресет",
"updatePreset": "Обновить пресет",
"copyConfiguration": "Копировать Конфигурацию",
"pasteConfiguration": "Вставить Конфигурацию",
"pasteConfigurationPlaceholder": "Вставить JSON конфигурацию",
"pasteFromClipboard": "Вставить из буфера обмена",
"applyConfiguration": "Применить Конфигурацию",
"configCopied": "Конфигурация скопирована в буфер обмена",
"configCopyFailed": "Ошибка применения конфигурации",
"configPasted": "Конфигурация успешно установлена",
"configPasteFailed": "Ошибка применения конфигурации. Проверьте формат.",
"configPasteReadFailed": "Ошибка чтения из буфера обмена",
"presetName": "Название пресета",
"presetNamePlaceholder": "Введите название пресета",
"general": "Главная",
"lineWidth": "Ширина линии"
}
}
+66 -64
View File
@@ -1,27 +1,28 @@
{
"action": {
"addToFavorites": "pridať do $t(entity.favorite_other)",
"addToPlaylist": "pridať do $t(entity.playlist_one)",
"addToFavorites": "pridať do $t(entity.favorite, {\"count\": 2})",
"addToPlaylist": "pridať do $t(entity.playlist, {\"count\": 1})",
"clearQueue": "vymazať frontu",
"createPlaylist": "vytvoriť $t(entity.playlist_one)",
"deletePlaylist": "odstrániť $t(entity.playlist_one)",
"createPlaylist": "vytvoriť $t(entity.playlist, {\"count\": 1})",
"deletePlaylist": "odstrániť $t(entity.playlist, {\"count\": 1})",
"deselectAll": "odznačiť všetko",
"editPlaylist": "upraviť $t(entity.playlist_one)",
"editPlaylist": "upraviť $t(entity.playlist, {\"count\": 1})",
"goToPage": "ísť na stránku",
"moveToNext": "prejsť na ďalší",
"moveToBottom": "presunúť sa na spodok",
"moveToTop": "presunúť sa navrch",
"refresh": "$t(common.refresh)",
"removeFromFavorites": "odstrániť z $t(entity.favorite_other)",
"removeFromPlaylist": "odstrániť z $t(entity.playlist_one)",
"removeFromFavorites": "odstrániť z $t(entity.favorite, {\"count\": 2})",
"removeFromPlaylist": "odstrániť z $t(entity.playlist, {\"count\": 1})",
"removeFromQueue": "odstrániť z fronty",
"setRating": "ohodnotiť",
"toggleSmartPlaylistEditor": "prepnúť $t(entity.smartPlaylist) editor",
"viewPlaylists": "zobraziť $t(entity.playlist_other)",
"viewPlaylists": "zobraziť $t(entity.playlist, {\"count\": 2})",
"openIn": {
"lastfm": "Otvoriť v Last.fm",
"musicbrainz": "Otvoriť v MusicBrainz"
}
},
"addOrRemoveFromSelection": "pridať či odstrániť z vybranie"
},
"common": {
"action_one": "akcia",
@@ -53,7 +54,7 @@
"configure": "nastaviť",
"confirm": "potvrdiť",
"create": "vytvoriť",
"currentSong": "aktuálne $t(entity.track_one)",
"currentSong": "aktuálne $t(entity.track, {\"count\": 1})",
"decrease": "znížiť",
"delete": "zmazať",
"descending": "zostupne",
@@ -93,7 +94,7 @@
"path": "cesta",
"playerMustBePaused": "prehrávač musí byť pozastavený",
"preview": "náhľad",
"previousSong": "predchádzajúca $t(entity.track_one)",
"previousSong": "predchádzajúca $t(entity.track, {\"count\": 1})",
"quit": "ukončiť",
"random": "náhodne",
"rating": "hodnotenie",
@@ -108,7 +109,9 @@
"saveAndReplace": "uložiť a nahradiť",
"saveAs": "uložiť ako",
"search": "vyhľadať",
"setting": "nastavenie",
"setting_one": "nastavenie",
"setting_few": "",
"setting_other": "",
"share": "zdieľať",
"size": "veľkosť",
"sortOrder": "poradie",
@@ -125,10 +128,10 @@
},
"filter": {
"name": "meno",
"album": "$t(entity.album_one)",
"albumArtist": "$t(entity.albumArtist_one)",
"albumCount": "$t(entity.album_other) počet",
"artist": "$t(entity.artist_one)",
"album": "$t(entity.album, {\"count\": 1})",
"albumArtist": "$t(entity.albumArtist, {\"count\": 1})",
"albumCount": "$t(entity.album, {\"count\": 2}) počet",
"artist": "$t(entity.artist, {\"count\": 1})",
"biography": "životopis",
"bitrate": "bitrate",
"bpm": "bpm",
@@ -141,7 +144,7 @@
"duration": "dĺžka",
"favorited": "obľúbené",
"fromYear": "od roku",
"genre": "$t(entity.genre_one)",
"genre": "$t(entity.genre, {\"count\": 1})",
"id": "id",
"isCompilation": "je kompilácia",
"isFavorited": "je obľúbený",
@@ -182,31 +185,31 @@
"title": "pridať server"
},
"addToPlaylist": {
"input_playlists": "$t(entity.playlist_other)",
"input_playlists": "$t(entity.playlist, {\"count\": 2})",
"input_skipDuplicates": "preskočiť duplicity",
"success": "$t(entity.trackWithCount, {\"count\": {{message}} }) pridané do $t(entity.playlistWithCount, {\"count\": {{numOfPlaylists}} })",
"title": "pridať do $t(entity.playlist_one)"
"title": "pridať do $t(entity.playlist, {\"count\": 1})"
},
"createPlaylist": {
"input_description": "$t(common.description)",
"input_name": "$t(common.name)",
"input_owner": "$t(common.owner)",
"input_public": "verejný",
"success": "$t(entity.playlist_one) úspešne vytvorený",
"title": "vytvoriť $t(entity.playlist_one)"
"success": "$t(entity.playlist, {\"count\": 1}) úspešne vytvorený",
"title": "vytvoriť $t(entity.playlist, {\"count\": 1})"
},
"deletePlaylist": {
"input_confirm": "pre potvrdenie zadajte názov $t(entity.playlist_one)",
"success": "$t(entity.playlist_one) bol úspešne odstránený",
"title": "odstrániť $t(entity.playlist_one)"
"input_confirm": "pre potvrdenie zadajte názov $t(entity.playlist, {\"count\": 1})",
"success": "$t(entity.playlist, {\"count\": 1}) bol úspešne odstránený",
"title": "odstrániť $t(entity.playlist, {\"count\": 1})"
},
"editPlaylist": {
"publicJellyfinNote": "Jellyfin z nejakého dôvodu neinformuje, či je playlist verejný alebo nie. Ak si ho želáte ponechať ako verejný, ponechajte nasledujúci vstup ako povolený",
"success": "$t(entity.playlist_one) úspešne aktualizovaný",
"title": "upraviť $t(entity.playlist_one)"
"success": "$t(entity.playlist, {\"count\": 1}) úspešne aktualizovaný",
"title": "upraviť $t(entity.playlist, {\"count\": 1})"
},
"lyricSearch": {
"input_artist": "$t(entity.artist_one)",
"input_artist": "$t(entity.artist, {\"count\": 1})",
"input_name": "$t(common.name)",
"title": "vyhľadať text skladby"
},
@@ -276,7 +279,7 @@
"playlistWithCount_one": "{{count}} playlist",
"playlistWithCount_few": "{{count}} playlisty",
"playlistWithCount_other": "{{count}} playlistov",
"smartPlaylist": "smart $t(entity.playlist_one)",
"smartPlaylist": "smart $t(entity.playlist, {\"count\": 1})",
"track_one": "stopa",
"track_few": "stopy",
"track_other": "stôp",
@@ -319,24 +322,24 @@
"appearsOn": "vyskytuje sa na",
"recentReleases": "posledné vydania",
"viewDiscography": "zobraziť diskografiu",
"relatedArtists": "súvisiaci s $t(entity.artist_other)",
"relatedArtists": "súvisiaci s $t(entity.artist, {\"count\": 2})",
"topSongs": "top skladby",
"topSongsFrom": "top skladby z {{title}}",
"viewAll": "zobraziť všetko",
"viewAllTracks": "zobraziť všetky $t(entity.track_other)"
"viewAllTracks": "zobraziť všetky $t(entity.track, {\"count\": 2})"
},
"albumArtistList": {
"title": "$t(entity.albumArtist_other)"
"title": "$t(entity.albumArtist, {\"count\": 2})"
},
"albumDetail": {
"moreFromArtist": "viac od $t(entity.artist_one)",
"moreFromArtist": "viac od $t(entity.artist, {\"count\": 1})",
"moreFromGeneric": "viac z {{item}}",
"released": "vydané"
},
"albumList": {
"artistAlbums": "albumy {{artist}}",
"genreAlbums": "\"{{genre}}\" $t(entity.album_other)",
"title": "$t(entity.album_other)"
"genreAlbums": "\"{{genre}}\" $t(entity.album, {\"count\": 2})",
"title": "$t(entity.album, {\"count\": 2})"
},
"appMenu": {
"collapseSidebar": "zbaliť bočnú lištu",
@@ -349,7 +352,7 @@
"openBrowserDevtools": "otvoriť vývojárske nástroje prehliadača",
"quit": "$t(common.quit)",
"selectServer": "vybrať server",
"settings": "$t(common.setting_other)",
"settings": "$t(common.setting, {\"count\": 2})",
"version": "verzia {{version}}"
},
"manageServers": {
@@ -383,8 +386,8 @@
"playShuffled": "$t(player.shuffle)",
"shareItem": "zdieľať položku",
"showDetails": "získať informácie",
"goToAlbum": "choď na $t(entity.album_one)",
"goToAlbumArtist": "choď na $t(entity.albumArtist_one)"
"goToAlbum": "choď na $t(entity.album, {\"count\": 1})",
"goToAlbumArtist": "choď na $t(entity.albumArtist, {\"count\": 1})"
},
"fullscreenPlayer": {
"config": {
@@ -410,9 +413,9 @@
"noLyrics": "nenašli sa žiadne texty"
},
"genreList": {
"showAlbums": "zobraziť $t(entity.genre_one) $t(entity.album_other)",
"showTracks": "zobraziť $t(entity.genre_one) $t(entity.track_other)",
"title": "$t(entity.genre_other)"
"showAlbums": "zobraziť $t(entity.genre, {\"count\": 1}) $t(entity.album, {\"count\": 2})",
"showTracks": "zobraziť $t(entity.genre, {\"count\": 1}) $t(entity.track, {\"count\": 2})",
"title": "$t(entity.genre, {\"count\": 2})"
},
"globalSearch": {
"commands": {
@@ -438,7 +441,7 @@
"reorder": "zmena poradia povolená len pri zoradení podľa id"
},
"playlistList": {
"title": "$t(entity.playlist_other)"
"title": "$t(entity.playlist, {\"count\": 2})"
},
"setting": {
"advanced": "pokročilé",
@@ -448,24 +451,24 @@
"windowTab": "okno"
},
"sidebar": {
"albumArtists": "$t(entity.albumArtist_other)",
"albums": "$t(entity.album_other)",
"artists": "$t(entity.artist_other)",
"folders": "$t(entity.folder_other)",
"genres": "$t(entity.genre_other)",
"albumArtists": "$t(entity.albumArtist, {\"count\": 2})",
"albums": "$t(entity.album, {\"count\": 2})",
"artists": "$t(entity.artist, {\"count\": 2})",
"folders": "$t(entity.folder, {\"count\": 2})",
"genres": "$t(entity.genre, {\"count\": 2})",
"home": "$t(common.home)",
"myLibrary": "moja knižnica",
"nowPlaying": "teraz hrá",
"playlists": "$t(entity.playlist_other)",
"playlists": "$t(entity.playlist, {\"count\": 2})",
"search": "$t(common.search)",
"settings": "$t(common.setting_other)",
"shared": "zdieľaný $t(entity.playlist_other)",
"tracks": "$t(entity.track_other)"
"settings": "$t(common.setting, {\"count\": 2})",
"shared": "zdieľaný $t(entity.playlist, {\"count\": 2})",
"tracks": "$t(entity.track, {\"count\": 2})"
},
"trackList": {
"artistTracks": "skladby {{artist}}",
"genreTracks": "\"{{genre}}\" $t(entity.track_other)",
"title": "$t(entity.track_other)"
"genreTracks": "\"{{genre}}\" $t(entity.track, {\"count\": 2})",
"title": "$t(entity.track, {\"count\": 2})"
}
},
"player": {
@@ -538,7 +541,6 @@
"customCss_description": "vlastný css obsah. Poznámka: obsah a vzdialené url linky sú defaultne deaktivované.Náhľad vášho obsahu je zobrazený nižšie. Pridané polia, ktoré ste nenastavovali boli pridané pri sanitizácii",
"customFontPath": "cesta k vlastným fontom",
"customFontPath_description": "Nastaví cestu k vlastným fontom na použitie aplikáciou",
"disableAutomaticUpdates": "vypnúť automatické aktualizácie",
"disableLibraryUpdateOnStartup": "vypnúť kontrolu nových verzií pri štarte",
"discordApplicationId": "id aplikácie {{discord}}",
"discordApplicationId_description": "aplikačné id pre plnohodnotné prepojenie s {{discord}} (predvolená hodnota {{defaultId}})",
@@ -668,9 +670,9 @@
"replayGainFallback_description": "zosilenie v db, ktoré sa aplikuje, ak súbor nemá {{ReplayGain}} štítky",
"replayGainMode": "{{ReplayGain}} režim",
"replayGainMode_description": "pozmení zosilenie hlasitosti podľa hodnôt {{ReplayGain}} uložených v metadátach súboru",
"replayGainMode_optionAlbum": "$t(entity.album_one)",
"replayGainMode_optionAlbum": "$t(entity.album, {\"count\": 1})",
"replayGainMode_optionNone": "$t(common.none)",
"replayGainMode_optionTrack": "$t(entity.track_one)",
"replayGainMode_optionTrack": "$t(entity.track, {\"count\": 1})",
"replayGainPreamp": "predzosilenie {{ReplayGain}} dB",
"replayGainPreamp_description": "pozmení predzosilenie použité na hodnoty {{ReplayGain}}",
"sampleRate": "vzorkovacia frekvencia",
@@ -739,8 +741,8 @@
"column": {
"album": "album",
"albumArtist": "interpret albumu",
"albumCount": "$t(entity.album_other)",
"artist": "$t(entity.artist_one)",
"albumCount": "$t(entity.album, {\"count\": 2})",
"artist": "$t(entity.artist, {\"count\": 1})",
"biography": "životopis",
"bitrate": "bitrate",
"bpm": "bpm",
@@ -750,7 +752,7 @@
"dateAdded": "dátum pridania",
"discNumber": "disk",
"favorite": "obľúbené",
"genre": "$t(entity.genre_one)",
"genre": "$t(entity.genre, {\"count\": 1})",
"lastPlayed": "posledne hraný",
"path": "cesta",
"playCount": "prehratí",
@@ -758,7 +760,7 @@
"releaseDate": "dátum vydania",
"releaseYear": "rok",
"size": "$t(common.size)",
"songCount": "$t(entity.track_other)",
"songCount": "$t(entity.track, {\"count\": 2})",
"title": "názov",
"trackNumber": "skladba"
},
@@ -775,9 +777,9 @@
},
"label": {
"actions": "$t(common.action_other)",
"album": "$t(entity.album_one)",
"albumArtist": "$t(entity.albumArtist_one)",
"artist": "$t(entity.artist_one)",
"album": "$t(entity.album, {\"count\": 1})",
"albumArtist": "$t(entity.albumArtist, {\"count\": 1})",
"artist": "$t(entity.artist, {\"count\": 1})",
"biography": "$t(common.biography)",
"bitrate": "$t(common.bitrate)",
"bpm": "$t(common.bpm)",
@@ -787,7 +789,7 @@
"discNumber": "číslo disku",
"duration": "$t(common.duration)",
"favorite": "$t(common.favorite)",
"genre": "$t(entity.genre_one)",
"genre": "$t(entity.genre, {\"count\": 1})",
"lastPlayed": "posledne prehraté",
"note": "$t(common.note)",
"owner": "$t(common.owner)",
@@ -797,7 +799,7 @@
"releaseDate": "dátum vydania",
"rowIndex": "číslo riadku",
"size": "$t(common.size)",
"songCount": "$t(entity.track_other)",
"songCount": "$t(entity.track, {\"count\": 2})",
"title": "$t(common.title)",
"titleCombined": "$t(common.title) (kombinovaný)",
"trackNumber": "číslo skladby",
+52 -50
View File
@@ -1,23 +1,23 @@
{
"action": {
"addToFavorites": "dodaj na $t(entity.favorite_other)",
"addToPlaylist": "dodaj na $t(entity.playlist_one)",
"addToFavorites": "dodaj na $t(entity.favorite, {\"count\": 2})",
"addToPlaylist": "dodaj na $t(entity.playlist, {\"count\": 1})",
"clearQueue": "počisti čakalno vrsto",
"createPlaylist": "ustvari $t(entity.playlist_one)",
"deletePlaylist": "izbriši $t(entity.playlist_one)",
"createPlaylist": "ustvari $t(entity.playlist, {\"count\": 1})",
"deletePlaylist": "izbriši $t(entity.playlist, {\"count\": 1})",
"deselectAll": "odizberi vse",
"editPlaylist": "uredi $t(entity.playlist_one)",
"editPlaylist": "uredi $t(entity.playlist, {\"count\": 1})",
"goToPage": "pojdi na stran",
"moveToNext": "pojdi na naslednjo",
"moveToBottom": "pojdi na dno",
"moveToTop": "pojdi na vrh",
"refresh": "$t(common.refresh)",
"removeFromFavorites": "odstrani iz $t(entity.favorite_other)",
"removeFromPlaylist": "odstrani iz $t(entity.playlist_one)",
"removeFromFavorites": "odstrani iz $t(entity.favorite, {\"count\": 2})",
"removeFromPlaylist": "odstrani iz $t(entity.playlist, {\"count\": 1})",
"removeFromQueue": "odstrani iz čakalne vrste",
"setRating": "nastavi oceno",
"toggleSmartPlaylistEditor": "preklopi urejevalnik $t(entity.smartPlaylist)",
"viewPlaylists": "poglej $t(entity.playlist_other)",
"viewPlaylists": "poglej $t(entity.playlist, {\"count\": 2})",
"openIn": {
"lastfm": "Odpri v Last.fm",
"musicbrainz": "Odpri v MusicBrainz"
@@ -54,7 +54,7 @@
"configure": "prilagodi",
"confirm": "potrdi",
"create": "ustvari",
"currentSong": "trenutna $t(entity.track_one)",
"currentSong": "trenutna $t(entity.track, {\"count\": 1})",
"decrease": "zmanjšaj",
"delete": "izbriši",
"descending": "padajoče",
@@ -94,7 +94,7 @@
"path": "pot",
"playerMustBePaused": "predvajalnik mora biti ustavljen",
"preview": "predogled",
"previousSong": "prejšnja $t(entity.track_one)",
"previousSong": "prejšnja $t(entity.track, {\"count\": 1})",
"quit": "izhod",
"random": "naključno",
"rating": "ocena",
@@ -108,7 +108,10 @@
"saveAndReplace": "shrani in zamenjaj",
"saveAs": "shrani kot",
"search": "išči",
"setting": "nastavitev",
"setting_one": "nastavitev",
"setting_two": "",
"setting_few": "",
"setting_other": "",
"share": "deli",
"size": "velikost",
"sortOrder": "vrstni red",
@@ -181,7 +184,7 @@
"playlistWithCount_two": "{{count}} seznama predvajanja",
"playlistWithCount_few": "{{count}} seznami predvajanja",
"playlistWithCount_other": "{{count}} seznamov predvajanja",
"smartPlaylist": "pametni $t(entity.playlist_one)",
"smartPlaylist": "pametni $t(entity.playlist, {\"count\": 1})",
"track_one": "skladba",
"track_two": "skladbi",
"track_few": "skladbe",
@@ -221,10 +224,10 @@
"systemFontError": "napaka pri pridobivanju sistemskih pisav"
},
"filter": {
"album": "$t(entity.album_one)",
"albumArtist": "$t(entity.albumArtist_one)",
"albumCount": "število $t(entity.album_other)",
"artist": "$t(entity.artist_one)",
"album": "$t(entity.album, {\"count\": 1})",
"albumArtist": "$t(entity.albumArtist, {\"count\": 1})",
"albumCount": "število $t(entity.album, {\"count\": 2})",
"artist": "$t(entity.artist, {\"count\": 1})",
"biography": "biografija",
"bitrate": "bitna hitrost",
"bpm": "bpm",
@@ -237,7 +240,7 @@
"duration": "trajanje",
"favorited": "priljubljeno",
"fromYear": "od leta",
"genre": "$t(entity.genre_one)",
"genre": "$t(entity.genre, {\"count\": 1})",
"id": "identifikator",
"isCompilation": "je kompilacija",
"isFavorited": "je dodan med priljubljene",
@@ -279,31 +282,31 @@
"title": "dodaj strežnik"
},
"addToPlaylist": {
"input_playlists": "$t(entity.playlist_other)",
"input_playlists": "$t(entity.playlist, {\"count\": 2})",
"input_skipDuplicates": "preskoči duplikate",
"success": "$t(entity.trackWithCount, {\"count\": {{message}} }) dodan v $t(entity.playlistWithCount, {\"count\": {{numOfPlaylists}} })",
"title": "dodaj v $t(entity.playlist_one)"
"title": "dodaj v $t(entity.playlist, {\"count\": 1})"
},
"createPlaylist": {
"input_description": "$t(common.description)",
"input_name": "$t(common.name)",
"input_owner": "$t(common.owner)",
"input_public": "javno",
"success": "$t(entity.playlist_one) je bil uspešno ustvarjen",
"title": "ustvari $t(entity.playlist_one)"
"success": "$t(entity.playlist, {\"count\": 1}) je bil uspešno ustvarjen",
"title": "ustvari $t(entity.playlist, {\"count\": 1})"
},
"deletePlaylist": {
"input_confirm": "vpišite ime $t(entity.playlist_one) za potrditev",
"success": "$t(entity.playlist_one) uspešno izbrisan",
"title": "izbriši $t(entity.playlist_one)"
"input_confirm": "vpišite ime $t(entity.playlist, {\"count\": 1}) za potrditev",
"success": "$t(entity.playlist, {\"count\": 1}) uspešno izbrisan",
"title": "izbriši $t(entity.playlist, {\"count\": 1})"
},
"editPlaylist": {
"publicJellyfinNote": "Jellyfin ne poda informacij o tem, ali gre za javni ali zasebni seznam predvajanja. Če želite, da seznam predvajanja ostane javen, izberite naslednji vnos",
"success": "$t(entity.playlist_one) uspešno posodobljen",
"title": "uredi $t(entity.playlist_one)"
"success": "$t(entity.playlist, {\"count\": 1}) uspešno posodobljen",
"title": "uredi $t(entity.playlist, {\"count\": 1})"
},
"lyricSearch": {
"input_artist": "$t(entity.artist_one)",
"input_artist": "$t(entity.artist, {\"count\": 1})",
"input_name": "$t(common.name)",
"title": "iskanje po besedilu"
},
@@ -331,24 +334,24 @@
"appearsOn": "se pojavi na",
"recentReleases": "zadnje izdaje",
"viewDiscography": "poglej diskografijo",
"relatedArtists": "sorodni $t(entity.artist_other)",
"relatedArtists": "sorodni $t(entity.artist, {\"count\": 2})",
"topSongs": "najboljše skladbe",
"topSongsFrom": "najboljše skladbe iz {{title}}",
"viewAll": "poglej vse",
"viewAllTracks": "poglej vse $t(entity.track_other)"
"viewAllTracks": "poglej vse $t(entity.track, {\"count\": 2})"
},
"albumArtistList": {
"title": "$t(entity.albumArtist_other)"
"title": "$t(entity.albumArtist, {\"count\": 2})"
},
"albumDetail": {
"moreFromArtist": "več od $t(entity.artist_one)",
"moreFromArtist": "več od $t(entity.artist, {\"count\": 1})",
"moreFromGeneric": "več iz {{item}}",
"released": "izdano"
},
"albumList": {
"artistAlbums": "albumi izvajalca {{artist}}",
"genreAlbums": "\"{{genre}}\" $t(entity.album_other)",
"title": "$t(entity.album_other)"
"genreAlbums": "\"{{genre}}\" $t(entity.album, {\"count\": 2})",
"title": "$t(entity.album, {\"count\": 2})"
},
"appMenu": {
"collapseSidebar": "skrij stransko vrstico",
@@ -359,7 +362,7 @@
"openBrowserDevtools": "odpri orodja za razvijalce brskalnika",
"quit": "$t(common.quit)",
"selectServer": "izberi strežnik",
"settings": "$t(common.setting_other)",
"settings": "$t(common.setting, {\"count\": 2})",
"version": "verzija {{version}}"
},
"manageServers": {
@@ -418,9 +421,9 @@
"noLyrics": "ni bilo najdenih besedil"
},
"genreList": {
"showAlbums": "prikaži $t(entity.genre_one) $t(entity.album_other)",
"showTracks": "prikaži $t(entity.genre_one) $t(entity.track_other)",
"title": "$t(entity.genre_other)"
"showAlbums": "prikaži $t(entity.genre, {\"count\": 1}) $t(entity.album, {\"count\": 2})",
"showTracks": "prikaži $t(entity.genre, {\"count\": 1}) $t(entity.track, {\"count\": 2})",
"title": "$t(entity.genre, {\"count\": 2})"
},
"globalSearch": {
"commands": {
@@ -446,7 +449,7 @@
"reorder": "preurejanje je omogočeno samo pri razvrščanju po identifikatorju"
},
"playlistList": {
"title": "$t(entity.playlist_other)"
"title": "$t(entity.playlist, {\"count\": 2})"
},
"setting": {
"advanced": "napredno",
@@ -456,24 +459,24 @@
"windowTab": "okno"
},
"sidebar": {
"albumArtists": "$t(entity.albumArtist_other)",
"albums": "$t(entity.album_other)",
"artists": "$t(entity.artist_other)",
"folders": "$t(entity.folder_other)",
"genres": "$t(entity.genre_other)",
"albumArtists": "$t(entity.albumArtist, {\"count\": 2})",
"albums": "$t(entity.album, {\"count\": 2})",
"artists": "$t(entity.artist, {\"count\": 2})",
"folders": "$t(entity.folder, {\"count\": 2})",
"genres": "$t(entity.genre, {\"count\": 2})",
"home": "$t(common.home)",
"myLibrary": "moja knjižnica",
"nowPlaying": "trenutno se predvaja",
"playlists": "$t(entity.playlist_other)",
"playlists": "$t(entity.playlist, {\"count\": 2})",
"search": "$t(common.search)",
"settings": "$t(common.setting_other)",
"shared": "deljen $t(entity.playlist_other)",
"tracks": "$t(entity.track_other)"
"settings": "$t(common.setting, {\"count\": 2})",
"shared": "deljen $t(entity.playlist, {\"count\": 2})",
"tracks": "$t(entity.track, {\"count\": 2})"
},
"trackList": {
"artistTracks": "skladbe po {{artist}}",
"genreTracks": "\"{{genre}}\" $t(entity.track_other)",
"title": "$t(entity.track_other)"
"genreTracks": "\"{{genre}}\" $t(entity.track, {\"count\": 2})",
"title": "$t(entity.track, {\"count\": 2})"
}
},
"player": {
@@ -545,7 +548,6 @@
"customCss_description": "vsebina css po meri. Opomba: vsebina in oddaljeni url-ji so prepovedane lastnosti. Spodaj je prikazan predogled vaše vsebine. Dodatna polja, ki jih niste nastavili, so prisotna zaradi prečiščevanja",
"customFontPath": "pot za pisavo po meri",
"customFontPath_description": "nastavi pot do pisave po meri",
"disableAutomaticUpdates": "onemogoči samodejne posodobitve",
"disableLibraryUpdateOnStartup": "onemogoči prevejranje novih verzij ob zagonu",
"discordApplicationId": "{{discord}} identifikator aplikacije",
"discordApplicationId_description": "identifikator aplikacije za {{discord}} bogato prezenco (privzeto {{defaultId}})",
+54 -53
View File
@@ -88,11 +88,10 @@
"hotkey_globalSearch": "globalno pretraživanje",
"gaplessAudio_description": "postavlja opciju bez pauze zvuka za mpv (preporučeno: slabo)",
"remoteUsername_description": "postavlja korisničko ime za daljinsku kontrolu servera. Ako su i korisničko ime i lozinka prazni, autentifikacija će biti onemogućena",
"disableAutomaticUpdates": "onemogući automatsko ažuriranje",
"exitToTray_description": "izlazak aplikacije u sistemsku traku",
"followLyric_description": "pomera tekst pesme na trenutnu poziciju reprodukcije",
"hotkey_favoritePreviousSong": "omiljena $t(common.previousSong)",
"replayGainMode_optionAlbum": "$t(entity.album_one)",
"replayGainMode_optionAlbum": "$t(entity.album, {\"count\": 1})",
"lyricOffset": "pomeraj teksta (ms)",
"discordUpdateInterval_description": "vreme u sekundama između svakog ažuriranja (minimum 15 sekundi)",
"fontType_optionCustom": "prilagođeni font",
@@ -104,7 +103,7 @@
"playbackStyle_optionCrossFade": "prelazak sa preklapanjem",
"hotkey_rate3": "oceni sa 3 zvezdice",
"font": "font",
"replayGainMode_optionTrack": "$t(entity.track_one)",
"replayGainMode_optionTrack": "$t(entity.track, {\"count\": 1})",
"themeLight_description": "postavlja svetlu temu za aplikaciju",
"hotkey_toggleFullScreenPlayer": "prebaci na prikaz na celom ekranu",
"hotkey_localSearch": "pretraživanje na stranici",
@@ -187,23 +186,23 @@
"useSystemTheme": "koristi sistemsku temu"
},
"action": {
"editPlaylist": "izmeni $t(entity.playlist_one)",
"editPlaylist": "izmeni $t(entity.playlist, {\"count\": 1})",
"goToPage": "idi na stranu",
"moveToTop": "idi na vrh",
"clearQueue": "očisti listu",
"addToFavorites": "dodaj u $t(entity.favorite_other)",
"addToPlaylist": "dodaj u $t(entity.playlist_one)",
"createPlaylist": "napravi $t(entity.playlist_one)",
"removeFromPlaylist": "ukloni iz $t(entity.playlist_one)",
"viewPlaylists": "vidi $t(entity.playlist_other)",
"addToFavorites": "dodaj u $t(entity.favorite, {\"count\": 2})",
"addToPlaylist": "dodaj u $t(entity.playlist, {\"count\": 1})",
"createPlaylist": "napravi $t(entity.playlist, {\"count\": 1})",
"removeFromPlaylist": "ukloni iz $t(entity.playlist, {\"count\": 1})",
"viewPlaylists": "vidi $t(entity.playlist, {\"count\": 2})",
"refresh": "$t(common.refresh)",
"deletePlaylist": "obriši $t(entity.playlist_one)",
"deletePlaylist": "obriši $t(entity.playlist, {\"count\": 1})",
"removeFromQueue": "ukloni iz liste",
"deselectAll": "deselektuj sve",
"moveToBottom": "idi na dno",
"setRating": "oceni",
"toggleSmartPlaylistEditor": "pokreni $t(entity.smartPlaylist) editor",
"removeFromFavorites": "ukloni iz $t(entity.favorite_other)",
"removeFromFavorites": "ukloni iz $t(entity.favorite, {\"count\": 2})",
"openIn": {
"lastfm": "Otvori u Last.fm",
"musicbrainz": "Otvori u MusicBrainz"
@@ -222,7 +221,7 @@
"left": "levo",
"save": "sačuvaj",
"right": "desno",
"currentSong": "trenutno $t(entity.track_one)",
"currentSong": "trenutno $t(entity.track, {\"count\": 1})",
"collapse": "sklopi",
"trackNumber": "pesma",
"descending": "silazno",
@@ -252,7 +251,9 @@
"delete": "obriši",
"cancel": "otkaži",
"forceRestartRequired": "restartuj da primeniš izmene… zatvori notifikaciju za restart",
"setting": "podešavanje",
"setting_one": "podešavanje",
"setting_few": "",
"setting_other": "",
"version": "verzija",
"title": "naziv",
"filter_one": "filter",
@@ -279,7 +280,7 @@
"none": "nijedan",
"menu": "meni",
"restartRequired": "restart potreban",
"previousSong": "prethodna $t(entity.track_one)",
"previousSong": "prethodna $t(entity.track, {\"count\": 1})",
"noResultsFromQuery": "upit je bez rezultata",
"quit": "izađi",
"expand": "proširi",
@@ -316,8 +317,8 @@
"trackNumber": "broj pesme",
"rowIndex": "indeks reda",
"rating": "$t(common.rating)",
"artist": "$t(entity.artist_one)",
"album": "$t(entity.album_one)",
"artist": "$t(entity.artist, {\"count\": 1})",
"album": "$t(entity.album, {\"count\": 1})",
"note": "$t(common.note)",
"biography": "$t(common.biography)",
"owner": "$t(common.owner)",
@@ -326,11 +327,11 @@
"playCount": "broj puštanja",
"bitrate": "$t(common.bitrate)",
"actions": "$t(common.action_other)",
"genre": "$t(entity.genre_one)",
"genre": "$t(entity.genre, {\"count\": 1})",
"discNumber": "disk broj",
"favorite": "$t(common.favorite)",
"year": "$t(common.year)",
"albumArtist": "$t(entity.albumArtist_one)"
"albumArtist": "$t(entity.albumArtist, {\"count\": 1})"
}
},
"column": {
@@ -339,7 +340,7 @@
"rating": "rejting",
"favorite": "favorit",
"playCount": "puštanja",
"albumCount": "$t(entity.album_other)",
"albumCount": "$t(entity.album, {\"count\": 2})",
"releaseYear": "godina",
"lastPlayed": "zadnje puštana",
"biography": "biografija",
@@ -348,10 +349,10 @@
"title": "naziv",
"bpm": "bpm",
"dateAdded": "datum dodavanja",
"artist": "$t(entity.artist_one)",
"songCount": "$t(entity.track_other)",
"artist": "$t(entity.artist, {\"count\": 1})",
"songCount": "$t(entity.track, {\"count\": 2})",
"trackNumber": "pesma",
"genre": "$t(entity.genre_one)",
"genre": "$t(entity.genre, {\"count\": 1})",
"albumArtist": "album artist",
"path": "putanja",
"discNumber": "disk",
@@ -394,17 +395,17 @@
"rating": "rejting",
"search": "pretraga",
"bitrate": "bitrejt",
"genre": "$t(entity.genre_one)",
"genre": "$t(entity.genre, {\"count\": 1})",
"recentlyAdded": "skorije dodata",
"note": "notacija",
"name": "ime",
"dateAdded": "datum dodavanja",
"releaseDate": "datum izdavanja",
"albumCount": "$t(entity.album_other) albuma",
"albumCount": "$t(entity.album, {\"count\": 2}) albuma",
"communityRating": "ocena zajednice",
"path": "putanja",
"favorited": "favoriti",
"albumArtist": "$t(entity.albumArtist_one)",
"albumArtist": "$t(entity.albumArtist, {\"count\": 1})",
"isRecentlyPlayed": "je skorije puštana",
"isFavorited": "je favorit",
"bpm": "bpm",
@@ -413,7 +414,7 @@
"disc": "disk",
"biography": "biografija",
"songCount": "broj pesama",
"artist": "$t(entity.artist_one)",
"artist": "$t(entity.artist, {\"count\": 1})",
"duration": "trajanje",
"isPublic": "je javna",
"random": "nasumično",
@@ -421,22 +422,22 @@
"toYear": "do godine",
"fromYear": "iz godine",
"criticRating": "ocena kritičara",
"album": "$t(entity.album_one)",
"album": "$t(entity.album, {\"count\": 1})",
"trackNumber": "pesma"
},
"page": {
"sidebar": {
"nowPlaying": "trenutno pušta",
"playlists": "$t(entity.playlist_other)",
"playlists": "$t(entity.playlist, {\"count\": 2})",
"search": "$t(common.search)",
"tracks": "$t(entity.track_other)",
"albums": "$t(entity.album_other)",
"genres": "$t(entity.genre_other)",
"folders": "$t(entity.folder_other)",
"settings": "$t(common.setting_other)",
"tracks": "$t(entity.track, {\"count\": 2})",
"albums": "$t(entity.album, {\"count\": 2})",
"genres": "$t(entity.genre, {\"count\": 2})",
"folders": "$t(entity.folder, {\"count\": 2})",
"settings": "$t(common.setting, {\"count\": 2})",
"home": "$t(common.home)",
"artists": "$t(entity.artist_other)",
"albumArtists": "$t(entity.albumArtist_other)"
"artists": "$t(entity.artist, {\"count\": 2})",
"albumArtists": "$t(entity.albumArtist, {\"count\": 2})"
},
"fullscreenPlayer": {
"config": {
@@ -459,7 +460,7 @@
"appMenu": {
"selectServer": "izaberi server",
"version": "verzija {{version}}",
"settings": "$t(common.setting_other)",
"settings": "$t(common.setting, {\"count\": 2})",
"manageServers": "upravljaj serverima",
"expandSidebar": "proširi bočnu traku",
"collapseSidebar": "skloni bočnu traku",
@@ -494,7 +495,7 @@
"recentlyPlayed": "nedavno puštane pesme"
},
"albumDetail": {
"moreFromArtist": "još od ovog $t(entity.artist_one)",
"moreFromArtist": "još od ovog $t(entity.artist, {\"count\": 1})",
"moreFromGeneric": "još od {{item}}"
},
"setting": {
@@ -504,13 +505,13 @@
"windowTab": "prozor"
},
"albumArtistList": {
"title": "$t(entity.albumArtist_other)"
"title": "$t(entity.albumArtist, {\"count\": 2})"
},
"genreList": {
"title": "$t(entity.genre_other)"
"title": "$t(entity.genre, {\"count\": 2})"
},
"trackList": {
"title": "$t(entity.track_other)"
"title": "$t(entity.track, {\"count\": 2})"
},
"globalSearch": {
"commands": {
@@ -521,24 +522,24 @@
"title": "komande"
},
"playlistList": {
"title": "$t(entity.playlist_other)"
"title": "$t(entity.playlist, {\"count\": 2})"
},
"albumList": {
"title": "$t(entity.album_other)"
"title": "$t(entity.album, {\"count\": 2})"
}
},
"form": {
"deletePlaylist": {
"title": "obriši $t(entity.playlist_one)",
"success": "$t(entity.playlist_one) uspešno obrisan",
"input_confirm": "unesite ime $t(entity.playlist_one) za potvrdu"
"title": "obriši $t(entity.playlist, {\"count\": 1})",
"success": "$t(entity.playlist, {\"count\": 1}) uspešno obrisan",
"input_confirm": "unesite ime $t(entity.playlist, {\"count\": 1}) za potvrdu"
},
"createPlaylist": {
"input_description": "$t(common.description)",
"title": "kreiraj $t(entity.playlist_one)",
"title": "kreiraj $t(entity.playlist, {\"count\": 1})",
"input_public": "javno",
"input_name": "$t(common.name)",
"success": "$t(entity.playlist_one) uspešno kreiran",
"success": "$t(entity.playlist, {\"count\": 1}) uspešno kreiran",
"input_owner": "$t(common.owner)"
},
"addServer": {
@@ -555,10 +556,10 @@
"error_savePassword": "došlo je do greške prilikom pokušaja čuvanja lozinke"
},
"addToPlaylist": {
"success": "dodato {{message}} $t(entity.track_other) u {{numOfPlaylists}} $t(entity.playlist_other)",
"title": "dodaj u $t(entity.playlist_one)",
"success": "dodato {{message}} $t(entity.track, {\"count\": 2}) u {{numOfPlaylists}} $t(entity.playlist, {\"count\": 2})",
"title": "dodaj u $t(entity.playlist, {\"count\": 1})",
"input_skipDuplicates": "preskoči duplikate",
"input_playlists": "$t(entity.playlist_other)"
"input_playlists": "$t(entity.playlist, {\"count\": 2})"
},
"updateServer": {
"title": "ažuriraj server",
@@ -570,11 +571,11 @@
},
"lyricSearch": {
"input_name": "$t(common.name)",
"input_artist": "$t(entity.artist_one)",
"input_artist": "$t(entity.artist, {\"count\": 1})",
"title": "pretraga teksta pesme"
},
"editPlaylist": {
"title": "izmeni $t(entity.playlist_one)"
"title": "izmeni $t(entity.playlist, {\"count\": 1})"
}
},
"entity": {
@@ -614,7 +615,7 @@
"folder_one": "folder",
"folder_few": "foldera",
"folder_other": "foldera",
"smartPlaylist": "pametna $t(entity.playlist_one)",
"smartPlaylist": "pametna $t(entity.playlist, {\"count\": 1})",
"album_one": "album",
"album_few": "albumi",
"album_other": "albuma",
+37 -36
View File
@@ -1,22 +1,22 @@
{
"action": {
"editPlaylist": "redigera $t(entity.playlist_one)",
"editPlaylist": "redigera $t(entity.playlist, {\"count\": 1})",
"goToPage": "gå till sida",
"moveToTop": "flytta till toppen",
"clearQueue": "rensa kö",
"addToFavorites": "lägg till $t(entity.favorite_other)",
"addToPlaylist": "lägg till $t(entity.playlist_one)",
"createPlaylist": "skapa $t(entity.playlist_one)",
"removeFromPlaylist": "ta bort från $t(entity.playlist_one)",
"viewPlaylists": "visa $t(entity.playlist_other)",
"addToFavorites": "lägg till $t(entity.favorite, {\"count\": 2})",
"addToPlaylist": "lägg till $t(entity.playlist, {\"count\": 1})",
"createPlaylist": "skapa $t(entity.playlist, {\"count\": 1})",
"removeFromPlaylist": "ta bort från $t(entity.playlist, {\"count\": 1})",
"viewPlaylists": "visa $t(entity.playlist, {\"count\": 2})",
"refresh": "$t(common.refresh)",
"deletePlaylist": "ta bort $t(entity.playlist_one)",
"deletePlaylist": "ta bort $t(entity.playlist, {\"count\": 1})",
"removeFromQueue": "ta bort från kö",
"deselectAll": "avmarkera alla",
"moveToBottom": "flytta till botten",
"setRating": "sätt betyg",
"toggleSmartPlaylistEditor": "växla $t(entity.smartPlaylist) redigerare",
"removeFromFavorites": "ta bort från $t(entity.favorite_other)",
"removeFromFavorites": "ta bort från $t(entity.favorite, {\"count\": 2})",
"downloadStarted": "startade nedladdning av {{count}} objekt",
"moveToNext": "flytta till nästa",
"moveUp": "flytta upp",
@@ -32,8 +32,8 @@
"lastfm": "Öppna i Last.fm",
"musicbrainz": "Öppna i MusicBrainz"
},
"createRadioStation": "skapa $t(entity.radioStation_one)",
"deleteRadioStation": "ta bort $t(entity.radioStation_one)",
"createRadioStation": "skapa $t(entity.radioStation, {\"count\": 1})",
"deleteRadioStation": "ta bort $t(entity.radioStation, {\"count\": 1})",
"addOrRemoveFromSelection": "lägg till eller ta bort från markerade",
"selectRangeOfItems": "välj en mängd objekt",
"selectAll": "markera alla",
@@ -52,7 +52,7 @@
"left": "vänster",
"save": "spara",
"right": "höger",
"currentSong": "aktuell $t(entity.track_one)",
"currentSong": "aktuell $t(entity.track, {\"count\": 1})",
"collapse": "kollaps",
"trackNumber": "spår",
"descending": "fallande",
@@ -81,7 +81,8 @@
"delete": "ta bort",
"cancel": "avbryt",
"forceRestartRequired": "starta om för att tillämpa ändringar... Stäng meddelandet för att starta om",
"setting": "inställning",
"setting_one": "inställning",
"setting_other": "",
"version": "version",
"title": "titel",
"filter_one": "filter",
@@ -105,7 +106,7 @@
"none": "ingen",
"menu": "meny",
"restartRequired": "omstart krävs",
"previousSong": "föregående $t(entity.track_one)",
"previousSong": "föregående $t(entity.track, {\"count\": 1})",
"noResultsFromQuery": "frågan returnerade inga resultat",
"quit": "avsluta",
"expand": "expandera",
@@ -192,7 +193,7 @@
"rating": "betyg",
"search": "sök",
"bitrate": "bithastighet",
"genre": "$t(entity.genre_one)",
"genre": "$t(entity.genre, {\"count\": 1})",
"recentlyAdded": "nyligen tillagda",
"note": "anteckning",
"name": "namn",
@@ -201,7 +202,7 @@
"communityRating": "betyg från communityn",
"path": "sökväg",
"favorited": "favoritmärkt",
"albumArtist": "$t(entity.albumArtist_one)",
"albumArtist": "$t(entity.albumArtist, {\"count\": 1})",
"isRecentlyPlayed": "spelas nyligen",
"isFavorited": "är favoritmärkt",
"bpm": "bpm",
@@ -209,32 +210,32 @@
"id": "id",
"disc": "skiva",
"biography": "biografi",
"artist": "$t(entity.artist_one)",
"artist": "$t(entity.artist, {\"count\": 1})",
"duration": "längd",
"isPublic": "är offentlig",
"random": "slumpmässig",
"lastPlayed": "senast spelad",
"toYear": "till år",
"fromYear": "från år",
"album": "$t(entity.album_one)",
"album": "$t(entity.album, {\"count\": 1})",
"trackNumber": "spår",
"songCount": "sångräkning",
"criticRating": "kritikerbetyg",
"albumCount": "$t(entity.album_other) antal",
"albumCount": "$t(entity.album, {\"count\": 2}) antal",
"explicitStatus": "$t(common.explicitStatus)"
},
"form": {
"deletePlaylist": {
"title": "ta bort $t(entity.playlist_one)",
"success": "$t(entity.playlist_one) har tagits bort",
"input_confirm": "Skriv namnet på $t(entity.playlist_one) för att bekräfta"
"title": "ta bort $t(entity.playlist, {\"count\": 1})",
"success": "$t(entity.playlist, {\"count\": 1}) har tagits bort",
"input_confirm": "Skriv namnet på $t(entity.playlist, {\"count\": 1}) för att bekräfta"
},
"createPlaylist": {
"input_description": "$t(common.description)",
"title": "skapa $t(entity.playlist_one)",
"title": "skapa $t(entity.playlist, {\"count\": 1})",
"input_public": "offentlig",
"input_name": "$t(common.name)",
"success": "$t(entity.playlist_one) skapad",
"success": "$t(entity.playlist, {\"count\": 1}) skapad",
"input_owner": "$t(common.owner)"
},
"addServer": {
@@ -254,11 +255,11 @@
},
"addToPlaylist": {
"success": "lade till $t(entity.trackWithCount, {\"count\": {{message}} }) till $t(entity.playlistWithCount, {\"count\": {{numOfPlaylists}} })",
"title": "lägg till i $t(entity.playlist_one)",
"title": "lägg till i $t(entity.playlist, {\"count\": 1})",
"input_skipDuplicates": "hoppa över dubbletter",
"input_playlists": "$t(entity.playlist_other)",
"create": "skapa $t(entity.playlist_one) {{playlist}}",
"searchOrCreate": "sök $t(entity.playlist_other) eller skriv för att skapa en ny"
"input_playlists": "$t(entity.playlist, {\"count\": 2})",
"create": "skapa $t(entity.playlist, {\"count\": 1}) {{playlist}}",
"searchOrCreate": "sök $t(entity.playlist, {\"count\": 2}) eller skriv för att skapa en ny"
},
"updateServer": {
"title": "uppdatera server",
@@ -270,11 +271,11 @@
},
"lyricSearch": {
"input_name": "$t(common.name)",
"input_artist": "$t(entity.artist_one)",
"input_artist": "$t(entity.artist, {\"count\": 1})",
"title": "sångtext sök"
},
"editPlaylist": {
"title": "redigera $t(entity.playlist_one)",
"title": "redigera $t(entity.playlist, {\"count\": 1})",
"publicJellyfinNote": "Jellyfin visar av någon anledning inte om en spellista är publik eller inte. Om du önskar att denna ska förbli publik, så får du ha följande indata markerade"
},
"largeFetchConfirmation": {
@@ -309,7 +310,7 @@
"appMenu": {
"selectServer": "välj server",
"version": "version {{version}}",
"settings": "$t(common.setting_other)",
"settings": "$t(common.setting, {\"count\": 2})",
"manageServers": "hantera servrar",
"expandSidebar": "expandera sidofältet",
"openBrowserDevtools": "öppna webbläsarens utvecklingsverktyg",
@@ -342,19 +343,19 @@
"playShuffled": "$t(player.shuffle)",
"shareItem": "dela objekt",
"goTo": "gå till",
"goToAlbum": "gå till $t(entity.album_one)",
"goToAlbumArtist": "gå till $t(entity.albumArtist_one)",
"goToAlbum": "gå till $t(entity.album, {\"count\": 1})",
"goToAlbumArtist": "gå till $t(entity.albumArtist, {\"count\": 1})",
"showDetails": "hämta information"
},
"albumDetail": {
"moreFromArtist": "mer från $t(entity.artist_one)",
"moreFromArtist": "mer från $t(entity.artist, {\"count\": 1})",
"moreFromGeneric": "mer från {{item}}"
},
"albumArtistList": {
"title": "$t(entity.albumArtist_other)"
"title": "$t(entity.albumArtist, {\"count\": 2})"
},
"albumList": {
"title": "$t(entity.album_other)"
"title": "$t(entity.album, {\"count\": 2})"
},
"sidebar": {
"nowPlaying": "nu spelas"
@@ -419,7 +420,7 @@
"genreWithCount_other": "{{count}} genrer",
"play_one": "{{count}} spelning",
"play_other": "{{count}} spelningar",
"smartPlaylist": "smart $t(entity.playlist_one)",
"smartPlaylist": "smart $t(entity.playlist, {\"count\": 1})",
"song_one": "låt",
"song_other": "låtar",
"radioStation_one": "radiostation",
+650 -98
View File
File diff suppressed because it is too large Load Diff
+71 -68
View File
@@ -2,30 +2,30 @@
"action": {
"moveToBottom": "alttakine geç",
"moveToTop": "başa dön",
"removeFromFavorites": "$t(entity.favorite_other)lerden kaldır",
"removeFromPlaylist": "$t(entity.playlist_one) listesinden kaldır",
"removeFromFavorites": "$t(entity.favorite, {\"count\": 2})lerden kaldır",
"removeFromPlaylist": "$t(entity.playlist, {\"count\": 1}) listesinden kaldır",
"removeFromQueue": "sıradan kaldır",
"setRating": "oyla",
"viewPlaylists": "$t(entity.playlist_other) listesini görüntüle",
"viewPlaylists": "$t(entity.playlist, {\"count\": 2}) listesini görüntüle",
"openIn": {
"lastfm": "Last.fm'de aç",
"musicbrainz": "MusicBrainz'da aç"
},
"addToFavorites": "$t(entity.favorite_other) listesine ekle",
"addToPlaylist": "$t(entity.playlist_one) listesine ekle",
"addToFavorites": "$t(entity.favorite, {\"count\": 2}) listesine ekle",
"addToPlaylist": "$t(entity.playlist, {\"count\": 1}) listesine ekle",
"clearQueue": "sırayı temizle",
"createPlaylist": "$t(entity.playlist_one) listesini oluştur",
"deletePlaylist": "$t(entity.playlist_one) listesini sil",
"createPlaylist": "$t(entity.playlist, {\"count\": 1}) listesini oluştur",
"deletePlaylist": "$t(entity.playlist, {\"count\": 1}) listesini sil",
"deselectAll": "seçimleri kaldır",
"editPlaylist": "$t(entity.playlist_one) listesini düzenle",
"editPlaylist": "$t(entity.playlist, {\"count\": 1}) listesini düzenle",
"goToPage": "sayfaya git",
"moveToNext": "sonrakine geç",
"refresh": "$t(common.refresh)",
"toggleSmartPlaylistEditor": "$t(entity.smartPlaylist) düzenleyiciye geç",
"addOrRemoveFromSelection": "seçime ekle veya seçimi kaldır",
"selectRangeOfItems": "bir dizi öğe seçin",
"createRadioStation": "$t(entity.radioStation_one) oluştur",
"deleteRadioStation": "$t(entity.radioStation_one) istasyonunu sil",
"createRadioStation": "$t(entity.radioStation, {\"count\": 1}) oluştur",
"deleteRadioStation": "$t(entity.radioStation, {\"count\": 1}) istasyonunu sil",
"selectAll": "tümünü seç",
"downloadStarted": "{{count}} öğenin indirilmesine başlandı",
"moveUp": "yukarı kaydır",
@@ -55,7 +55,7 @@
"configure": "yapılandır",
"confirm": "onayla",
"create": "oluştur",
"currentSong": "şu anki parça $t(entity.track_one)",
"currentSong": "şu anki parça $t(entity.track, {\"count\": 1})",
"decrease": "azalt",
"delete": "sil",
"descending": "azalan",
@@ -93,7 +93,7 @@
"path": "yol",
"playerMustBePaused": "oynatıcı duraklatılmalı",
"preview": "önizleme",
"previousSong": "önceki $t(entity.track_one)",
"previousSong": "önceki $t(entity.track, {\"count\": 1})",
"quit": "çık",
"random": "rastgele",
"rating": "oylama",
@@ -108,7 +108,8 @@
"saveAndReplace": "kaydet ve değiştir",
"saveAs": "farklı kaydet",
"search": "arama",
"setting": "ayarlar",
"setting_one": "ayarlar",
"setting_other": "",
"share": "paylaş",
"size": "boyut",
"sortOrder": "sıralama düzeni",
@@ -129,7 +130,8 @@
"trackPeak": "parça zirvesi",
"private": "gizli",
"clean": "temiz",
"countSelected": "{{count}} adet seçildi"
"countSelected": "{{count}} adet seçildi",
"public": "herkese açık"
},
"entity": {
"album_one": "albüm",
@@ -160,13 +162,15 @@
"play_other": "{{count}} oynatma",
"playlistWithCount_one": "{{count}} oynatma listesi",
"playlistWithCount_other": "{{count}} oynatma listesi",
"smartPlaylist": "akıllı $t(entity.playlist_one)",
"smartPlaylist": "akıllı $t(entity.playlist, {\"count\": 1})",
"track_one": "parça",
"track_other": "parçalar",
"song_one": "şarkı",
"song_other": "şarkılar",
"trackWithCount_one": "{{count}} parça",
"trackWithCount_other": "{{count}} parça"
"trackWithCount_other": "{{count}} parça",
"radioStation_one": "radyo istasyonu",
"radioStation_other": "radyo istasyonları"
},
"error": {
"apiRouteError": "istek yönlendirilemiyor",
@@ -195,7 +199,7 @@
"remoteEnableError": "uzak sunucuyu $t(common.enable) yapmaya çalışırken bir hata oluştu"
},
"filter": {
"albumCount": "$t(entity.album_other) sayısı",
"albumCount": "$t(entity.album, {\"count\": 2}) sayısı",
"biography": "biyografi",
"bitrate": "bit hızı",
"bpm": "bpm",
@@ -210,7 +214,7 @@
"id": "kimlik",
"isCompilation": "derleme",
"isFavorited": "favorilendi",
"isPublic": "herkese açık",
"isPublic": "halka açıktır",
"isRated": "oylandı",
"isRecentlyPlayed": "yakın zamanda çalındı",
"lastPlayed": "son çalınan",
@@ -232,10 +236,10 @@
"title": "başlık",
"toYear": "yılına kadar",
"trackNumber": "parça",
"genre": "$t(entity.genre_one)",
"album": "$t(entity.album_one)",
"albumArtist": "$t(entity.albumArtist_one)",
"artist": "$t(entity.artist_one)",
"genre": "$t(entity.genre, {\"count\": 1})",
"album": "$t(entity.album, {\"count\": 1})",
"albumArtist": "$t(entity.albumArtist, {\"count\": 1})",
"artist": "$t(entity.artist, {\"count\": 1})",
"channels": "$t(common.channel_other)"
},
"form": {
@@ -255,9 +259,9 @@
"input_preferInstantMixDescription": "sadece benzer şarkılari bulmak icin anında mix kullan. Bu davranışı değiştiren eklentilere sahipseniz faydalı"
},
"addToPlaylist": {
"input_playlists": "$t(entity.playlist_other)",
"input_playlists": "$t(entity.playlist, {\"count\": 2})",
"input_skipDuplicates": "kopyaları atla",
"title": "$t(entity.playlist_one) listesine ekle",
"title": "$t(entity.playlist, {\"count\": 1}) listesine ekle",
"success": "$t(entity.playlistWithCount, {\"count\": {{numOfPlaylists}} }) $t(entity.trackWithCount, {\"count\": {{message}} }) eklendi"
},
"createPlaylist": {
@@ -265,21 +269,21 @@
"input_name": "$t(common.name)",
"input_owner": "$t(common.owner)",
"input_public": "herkese açık",
"success": "$t(entity.playlist_one) listesi başarıyla oluşturuldu",
"title": "$t(entity.playlist_one) listesini oluştur"
"success": "$t(entity.playlist, {\"count\": 1}) listesi başarıyla oluşturuldu",
"title": "$t(entity.playlist, {\"count\": 1}) listesini oluştur"
},
"deletePlaylist": {
"input_confirm": "onaylamak için $t(entity.playlist_one) listesinin adını yazın",
"success": "$t(entity.playlist_one) listesi başarıyla silindi",
"title": "$t(entity.playlist_one) listesini sil"
"input_confirm": "onaylamak için $t(entity.playlist, {\"count\": 1}) listesinin adını yazın",
"success": "$t(entity.playlist, {\"count\": 1}) listesi başarıyla silindi",
"title": "$t(entity.playlist, {\"count\": 1}) listesini sil"
},
"editPlaylist": {
"publicJellyfinNote": "Jellyfin bazı nedenlerden dolayı bir çalma listesinin herkese açık olup olmadığını göstermez. Bunun herkese açık kalmasını istiyorsanız, lütfen aşağıdaki girdiyi seçin",
"success": "$t(entity.playlist_one) listesi başarıyla güncellendi",
"title": "$t(entity.playlist_one) listesini düzenle"
"success": "$t(entity.playlist, {\"count\": 1}) listesi başarıyla güncellendi",
"title": "$t(entity.playlist, {\"count\": 1}) listesini düzenle"
},
"lyricSearch": {
"input_artist": "$t(entity.artist_one)",
"input_artist": "$t(entity.artist, {\"count\": 1})",
"input_name": "$t(common.name)",
"title": "şarkı sözü arama"
},
@@ -312,10 +316,10 @@
"appearsOn": "üzerinde görünür",
"recentReleases": "son sürümler",
"viewDiscography": "diskografiyi görüntüle",
"relatedArtists": "$t(entity.artist_other) ile benzer",
"relatedArtists": "$t(entity.artist, {\"count\": 2}) ile benzer",
"topSongs": "en iyi şarkılar",
"viewAll": "tümünü görüntüle",
"viewAllTracks": "tüm $t(entity.track_other) görüntüle",
"viewAllTracks": "tüm $t(entity.track, {\"count\": 2}) görüntüle",
"topSongsFrom": "{{title}} tarafından en iyi şarkılar"
},
"contextMenu": {
@@ -341,8 +345,8 @@
"playShuffled": "$t(player.shuffle)",
"shareItem": "öğeyi paylaş",
"showDetails": "bilgi al",
"goToAlbum": "$t(entity.album_one) sayfasına git",
"goToAlbumArtist": "$t(entity.albumArtist_one) sayfasına git"
"goToAlbum": "$t(entity.album, {\"count\": 1}) sayfasına git",
"goToAlbumArtist": "$t(entity.albumArtist, {\"count\": 1}) sayfasına git"
},
"manageServers": {
"url": "URL",
@@ -376,9 +380,9 @@
"noLyrics": "şarkı sözü bulunamadı"
},
"genreList": {
"showAlbums": "$t(entity.genre_one) $t(entity.album_other) göster",
"showTracks": "$t(entity.genre_one)$t(entity.track_other) göster",
"title": "$t(entity.genre_other)"
"showAlbums": "$t(entity.genre, {\"count\": 1}) $t(entity.album, {\"count\": 2}) göster",
"showTracks": "$t(entity.genre, {\"count\": 1})$t(entity.track, {\"count\": 2}) göster",
"title": "$t(entity.genre, {\"count\": 2})"
},
"globalSearch": {
"commands": {
@@ -404,7 +408,7 @@
"reorder": "yeniden sıralama yalnızca kimliğe göre sıralama yapıldığında etkinleştirilir"
},
"playlistList": {
"title": "$t(entity.playlist_other)"
"title": "$t(entity.playlist, {\"count\": 2})"
},
"setting": {
"advanced": "gelişmiş",
@@ -414,36 +418,36 @@
"windowTab": "pencere"
},
"sidebar": {
"albumArtists": "$t(entity.albumArtist_other)",
"albums": "$t(entity.album_other)",
"artists": "$t(entity.artist_other)",
"folders": "$t(entity.folder_other)",
"genres": "$t(entity.genre_other)",
"albumArtists": "$t(entity.albumArtist, {\"count\": 2})",
"albums": "$t(entity.album, {\"count\": 2})",
"artists": "$t(entity.artist, {\"count\": 2})",
"folders": "$t(entity.folder, {\"count\": 2})",
"genres": "$t(entity.genre, {\"count\": 2})",
"home": "$t(common.home)",
"myLibrary": "kütüphanem",
"nowPlaying": "şimdi oynatılıyor",
"playlists": "$t(entity.playlist_other)",
"playlists": "$t(entity.playlist, {\"count\": 2})",
"search": "$t(common.search)",
"settings": "$t(common.setting_other)",
"shared": "paylaşılan $t(entity.playlist_other)",
"tracks": "$t(entity.track_other)"
"settings": "$t(common.setting, {\"count\": 2})",
"shared": "paylaşılan $t(entity.playlist, {\"count\": 2})",
"tracks": "$t(entity.track, {\"count\": 2})"
},
"trackList": {
"artistTracks": "{{artist}} parçaları",
"genreTracks": "\"{{genre}}\" $t(entity.track_other)",
"title": "$t(entity.track_other)"
"genreTracks": "\"{{genre}}\" $t(entity.track, {\"count\": 2})",
"title": "$t(entity.track, {\"count\": 2})"
},
"albumArtistList": {
"title": "$t(entity.albumArtist_other)"
"title": "$t(entity.albumArtist, {\"count\": 2})"
},
"albumDetail": {
"moreFromArtist": "$t(entity.artist_one) sanatçısından daha fazla",
"moreFromArtist": "$t(entity.artist, {\"count\": 1}) sanatçısından daha fazla",
"moreFromGeneric": "{{item}} tarafından daha fazla",
"released": "yayınlandı"
},
"albumList": {
"title": "$t(entity.album_other)",
"genreAlbums": "\"{{genre}}\" $t(entity.album_other)",
"title": "$t(entity.album, {\"count\": 2})",
"genreAlbums": "\"{{genre}}\" $t(entity.album, {\"count\": 2})",
"artistAlbums": "{{artist}} albümleri"
},
"appMenu": {
@@ -455,7 +459,7 @@
"openBrowserDevtools": "tarayıcı geliştirici araçlarını aç",
"quit": "$t(common.quit)",
"selectServer": "sunucu seç",
"settings": "$t(common.setting_other)",
"settings": "$t(common.setting, {\"count\": 2})",
"version": "{{version}} sürümü",
"privateModeOff": "gizli modu kapat",
"privateModeOn": "gizli modu aç"
@@ -530,7 +534,6 @@
"customCss_description": "özel css içeriği. Not: içerik ve uzaktan URL'ler izin verilmeyen özelliklerdir. İçeriğinizin önizlemesi aşağıda gösterilmektedir. Ayarlamadığınız ek alanlar sterilleme nedeniyle mevcuttur",
"customFontPath": "özel yazı tipi yolu",
"customFontPath_description": "uygulama için kullanılacak özel yazı tipinin yolunu ayarlar",
"disableAutomaticUpdates": "otomatik güncellemeleri devre dışı bırak",
"disableLibraryUpdateOnStartup": "başlangıçta yeni sürümler için denetimi devre dışı bırak",
"discordApplicationId": "{{discord}} uygulama kimliği",
"discordApplicationId_description": "{{discord}} \"Rich Presence\" için uygulama kimliği (varsayılan olarak {{defaultId}})",
@@ -627,9 +630,9 @@
"replayGainFallback_description": "dosyada {{ReplayGain}} etiketi yoksa db'e uygulanacak kazanç",
"replayGainMode": "{{ReplayGain}} modu",
"replayGainMode_description": "ses seviyesi kazancını dosya meta verilerinde saklanan {{ReplayGain}} değerlerine göre ayarlayın",
"replayGainMode_optionAlbum": "$t(entity.album_one)",
"replayGainMode_optionAlbum": "$t(entity.album, {\"count\": 1})",
"replayGainMode_optionNone": "$t(common.none)",
"replayGainMode_optionTrack": "$t(entity.track_one)",
"replayGainMode_optionTrack": "$t(entity.track, {\"count\": 1})",
"replayGainPreamp": "{{ReplayGain}} preamp (dB)",
"replayGainPreamp_description": "{{ReplayGain}} değerlerine uygulanan preamp kazancını ayarlar",
"sampleRate": "örnekleme hızı",
@@ -736,8 +739,8 @@
"column": {
"album": "albüm",
"albumArtist": "albüm sanatçısı",
"albumCount": "$t(entity.album_other)",
"artist": "$t(entity.artist_one)",
"albumCount": "$t(entity.album, {\"count\": 2})",
"artist": "$t(entity.artist, {\"count\": 1})",
"biography": "biyografi",
"bitrate": "bit hızı",
"bpm": "bpm (dakika başına vuruş)",
@@ -747,7 +750,7 @@
"dateAdded": "tarih eklendi",
"discNumber": "disk",
"favorite": "favori",
"genre": "$t(entity.genre_one)",
"genre": "$t(entity.genre, {\"count\": 1})",
"lastPlayed": "son çalınan",
"path": "yol",
"playCount": "oynatılıyor",
@@ -755,7 +758,7 @@
"releaseDate": "çıkış tarihi",
"releaseYear": "yıl",
"size": "$t(common.size)",
"songCount": "$t(entity.track_other)",
"songCount": "$t(entity.track, {\"count\": 2})",
"title": "başlık",
"trackNumber": "parça"
},
@@ -772,9 +775,9 @@
},
"label": {
"actions": "$t(common.action_other)",
"album": "$t(entity.album_one)",
"albumArtist": "$t(entity.albumArtist_one)",
"artist": "$t(entity.artist_one)",
"album": "$t(entity.album, {\"count\": 1})",
"albumArtist": "$t(entity.albumArtist, {\"count\": 1})",
"artist": "$t(entity.artist, {\"count\": 1})",
"biography": "$t(common.biography)",
"bitrate": "$t(common.bitrate)",
"bpm": "$t(common.bpm)",
@@ -784,7 +787,7 @@
"discNumber": "disk numarası",
"duration": "$t(common.duration)",
"favorite": "$t(common.favorite)",
"genre": "$t(entity.genre_one)",
"genre": "$t(entity.genre, {\"count\": 1})",
"lastPlayed": "son çalınan",
"note": "$t(common.note)",
"owner": "$t(common.owner)",
@@ -794,7 +797,7 @@
"releaseDate": "çıkış tarihi",
"rowIndex": "satır indeksi",
"size": "$t(common.size)",
"songCount": "$t(entity.track_other)",
"songCount": "$t(entity.track, {\"count\": 2})",
"title": "$t(common.title)",
"titleCombined": "$t(common.title) (birleşik)",
"trackNumber": "parça numarası",
+544 -1
View File
@@ -1 +1,544 @@
{}
{
"action": {
"addToFavorites": "додати до $t(entity.favorite, {\"count\": 2})",
"addOrRemoveFromSelection": "додати або видалити з вибору",
"selectRangeOfItems": "вибрати діапазон елементів",
"addToPlaylist": "додати до $t(entity.playlist, {\"count\": 1})",
"clearQueue": "очистити чергу",
"createPlaylist": "створити $t(entity.playlist, {\"count\": 1})",
"createRadioStation": "створити $t(entity.radioStation, {\"count\": 1})",
"deletePlaylist": "видалити $t(entity.playlist, {\"count\": 1})",
"deleteRadioStation": "видалити $t(entity.radioStation, {\"count\": 1})",
"selectAll": "вибрати все",
"deselectAll": "скасувати вибір усього",
"downloadStarted": "почато завантаження {{count}} елементів",
"editPlaylist": "редагувати $t(entity.playlist, {\"count\": 1})",
"goToPage": "перейти на сторінку",
"moveToNext": "перейти до наступного",
"moveToBottom": "перемістити вниз",
"moveToTop": "перемістити вгору",
"moveUp": "перемістити вище",
"moveDown": "перемістити нижче",
"holdToMoveToTop": "утримуйте, щоб перемістити вгору",
"holdToMoveToBottom": "утримувати, щоб перемістити вниз",
"moveItems": "перемістити елементи",
"shuffle": "перемішати",
"shuffleAll": "все випадково",
"shuffleSelected": "вибране випадково",
"refresh": "$t(common.refresh)",
"removeFromFavorites": "видалити з $t(entity.favorite, {\"count\": 2})",
"removeFromPlaylist": "видалити з $t(entity.playlist, {\"count\": 1})",
"removeFromQueue": "видалити з черги",
"setRating": "встановити рейтинг",
"toggleSmartPlaylistEditor": "перемикати редактор $t(entity.smartPlaylist)",
"viewPlaylists": "показати $t(entity.playlist, {\"count\": 2})",
"viewMore": "переглянути більше",
"openApplicationDirectory": "відкрити каталог додатків",
"openIn": {
"lastfm": "Відкрити в Last.fm",
"musicbrainz": "Відкрити в MusicBrainz"
}
},
"common": {
"countSelected": "вибрано {{count}}",
"explicitStatus": "явний статус",
"action_one": "дія",
"action_few": "дії",
"action_many": "дій",
"add": "додати",
"additionalParticipants": "додаткові учасники",
"newVersion": "встановлено нову версію ({{version}})",
"viewReleaseNotes": "переглянути список змін",
"albumGain": "підсилення альбому",
"albumPeak": "піковий рівень альбому",
"areYouSure": "ви впевнені?",
"ascending": "зростаючи",
"backward": "назад",
"biography": "біографія",
"bitDepth": "розрядність",
"bitrate": "бітрейт",
"bpm": "уд/хв",
"cancel": "скасувати",
"center": "посередині",
"channel_one": "канал",
"channel_few": "канали",
"channel_many": "каналів",
"clear": "очистити",
"close": "закрити",
"codec": "кодек",
"collapse": "згорнути",
"comingSoon": "скоро…",
"configure": "налаштувати",
"confirm": "підтвердити",
"create": "створити",
"currentSong": "поточний $t(entity.track, {\"count\": 1})",
"decrease": "знизити",
"delete": "видалити",
"descending": "за спаданням",
"description": "опис",
"disable": "вимкнути",
"disc": "диск",
"dismiss": "відхилити",
"doNotShowAgain": "не показувати це знову",
"duration": "тривалість",
"view": "показати",
"edit": "змінити",
"enable": "увімкнути",
"expand": "розширити",
"example": "приклад",
"externalLinks": "зовнішні посилання",
"faster": "швидше",
"favorite": "улюблений",
"filter_one": "фільтр",
"filter_few": "фільтри",
"filter_many": "фільтрів",
"filters": "фільтри",
"filter_single": "одиночний",
"filter_multiple": "кілька",
"forceRestartRequired": "перезапустіть, щоб застосувати зміни… закрийте повідомлення, щоб перезапустити",
"forward": "уперед",
"gap": "прогалина",
"home": "додому",
"increase": "збільшити",
"left": "ліво",
"limit": "ліміт",
"manage": "управління",
"maximize": "максимізувати",
"menu": "меню",
"minimize": "мінімізувати",
"modified": "відредаговано",
"mbid": "MusicBrainz ID",
"mood": "настрій",
"name": "назва",
"no": "ні",
"none": "жоден",
"noResultsFromQuery": "запит не дав результатів",
"noFilters": "фільтри не налаштовані",
"note": "примітка",
"ok": "ок",
"owner": "власник",
"path": "шлях",
"playerMustBePaused": "плеєр повинен бути призупинений",
"preview": "перегляд",
"previousSong": "минулий $t(entity.track, {\"count\": 1})",
"private": "приватний",
"public": "публічний",
"quit": "вийти",
"random": "випадково",
"rating": "рейтинг",
"retry": "повторити спробу",
"recordLabel": "лейбл звукозапису",
"releaseType": "тип випуску",
"refresh": "оновити",
"reload": "перезавантажити",
"rename": "перейменувати",
"reset": "скинути",
"resetToDefault": "скинути до заводських налаштувань",
"restartRequired": "необхідний перезапуск",
"right": "право",
"clean": "чистo",
"sampleRate": "частота дискретизації",
"save": "зберегти",
"saveAndReplace": "зберегти та замінити",
"saveAs": "зберегти як",
"search": "пошук",
"setting_one": "налаштування",
"setting_few": "налаштування",
"setting_many": "налаштувань",
"slower": "повільніше",
"share": "поділитися",
"size": "розмір",
"sort": "впорядкувати",
"sortOrder": "порядок",
"tags": "теги",
"title": "назва",
"trackNumber": "трек",
"trackGain": "підсилення треку",
"trackPeak": "піковий рівень треку",
"translation": "переклад",
"unknown": "невідомий",
"version": "версія",
"year": "рік",
"yes": "так",
"explicit": "Експліцитний зміст",
"gridRows": "рядки сітки",
"tableColumns": "стовпці таблиці",
"itemsMore": "{{count}} більше"
},
"entity": {
"album_one": "альбом",
"album_few": "альбоми",
"album_many": "альбомів",
"albumArtist_one": "виконавець альбому",
"albumArtist_few": "виконавці альбому",
"albumArtist_many": "виконавців альбому",
"albumArtistCount_one": "{{count}} виконавець альбому",
"albumArtistCount_few": "{{count}} виконавці альбому",
"albumArtistCount_many": "{{count}} виконавців альбому",
"albumWithCount_one": "{{count}} альбом",
"albumWithCount_few": "{{count}} альбоми",
"albumWithCount_many": "{{count}} альбомів",
"radioStation_one": "радіостанція",
"radioStation_few": "радіостанції",
"radioStation_many": "радіостанцій",
"radioStationWithCount_one": "{{count}} радіостанція",
"radioStationWithCount_few": "{{count}} радіостанції",
"radioStationWithCount_many": "{{count}} радіостанцій",
"artist_one": "виконавець",
"artist_few": "виконавці",
"artist_many": "виконавців",
"artistWithCount_one": "{{count}} виконавець",
"artistWithCount_few": "{{count}} виконавці",
"artistWithCount_many": "{{count}} виконавців",
"favorite_one": "улюблений",
"favorite_few": "улюблені",
"favorite_many": "улюблених",
"folder_one": "папка",
"folder_few": "папки",
"folder_many": "папок",
"folderWithCount_one": "{{count}} папка",
"folderWithCount_few": "{{count}} папки",
"folderWithCount_many": "{{count}} папок",
"genre_one": "жанр",
"genre_few": "жанри",
"genre_many": "жанрів",
"genreWithCount_one": "{{count}} жанр",
"genreWithCount_few": "{{count}} жанри",
"genreWithCount_many": "{{count}} жанрів",
"playlist_one": "плейлист",
"playlist_few": "плейлисти",
"playlist_many": "плейлистів",
"play_one": "{{count}} відтворення",
"play_few": "{{count}} відтворення",
"play_many": "{{count}} відтворень",
"playlistWithCount_one": "{{count}} плейлист",
"playlistWithCount_few": "{{count}} плейлисти",
"playlistWithCount_many": "{{count}} плейлистів",
"smartPlaylist": "розумний $t(entity.playlist, {\"count\": 1})",
"track_one": "трек",
"track_few": "треки",
"track_many": "треків",
"song_one": "пісня",
"song_few": "пісні",
"song_many": "пісень",
"trackWithCount_one": "{{count}} трек",
"trackWithCount_few": "{{count}} треки",
"trackWithCount_many": "{{count}} треків"
},
"error": {
"apiRouteError": "неможливо виконати запит",
"audioDeviceFetchError": "сталася помилка під час спроби отримати аудіопристрої",
"authenticationFailed": "аутентифікація не вдалася",
"badAlbum": "ви бачите цю сторінку, тому що ця пісня не входить до альбому. найімовірніше, ця проблема виникає, якщо у верхньому рівні вашої музичної папки знаходиться пісня. Jellyfin групує треки тільки в тому випадку, якщо вони знаходяться в папці",
"badValue": "недійсний параметр \"{{value}}\". це значення більше не існує",
"credentialsRequired": "необхідні дані для входу",
"endpointNotImplementedError": "кінцева точка {{endpoint}} не реалізована для {{serverType}}",
"genericError": "сталася помилка",
"invalidServer": "недійсний сервер",
"localFontAccessDenied": "відмова в доступі до локальних шрифтів",
"loginRateError": "занадто багато спроб входу, спробуйте ще раз через кілька секунд",
"mpvRequired": "необхідний MPV",
"multipleServerSaveQueueError": "у черзі відтворення є одна або кілька пісень, які не належать до поточного сервера. це не підтримується",
"networkError": "сталася мережева помилка",
"noNetwork": "сервер недоступний",
"noNetworkDescription": "не вдалося підключитися до цього сервера",
"notificationDenied": "дозвіл на сповіщення було відхилено. це налаштування не має впливу",
"openError": "не вдалося відкрити файл",
"playbackError": "сталася помилка під час спроби відтворити медіафайл",
"remoteDisableError": "сталася помилка під час спроби $t(common.disable) віддаленого сервера",
"remoteEnableError": "сталася помилка під час спроби $t(common.enable) віддаленого сервера",
"remotePortError": "сталася помилка під час спроби налаштувати порт віддаленого сервера",
"remotePortWarning": "перезапустіть сервер щоб застосувати новий порт",
"saveQueueFailed": "не вдалося зберегти чергу",
"serverNotSelectedError": "не вибрано жодного сервера",
"serverRequired": "потрібен сервер",
"sessionExpiredError": "ваша сесія закінчилася",
"systemFontError": "сталася помилка під час спроби отримати системні шрифти",
"settingsSyncError": "виявлено розбіжності між налаштуваннями в рендерері та основним процесом. перезапустіть програму, щоб застосувати зміни"
},
"filter": {
"album": "$t(entity.album, {\"count\": 1})",
"albumArtist": "$t(entity.albumArtist, {\"count\": 1})",
"albumCount": "кількість $t(entity.album, {\"count\": 2})",
"artist": "$t(entity.artist, {\"count\": 1})",
"biography": "біографія",
"bitrate": "бітрейт",
"bpm": "уд/хв",
"channels": "$t(common.channel, {\"count\": 2})",
"comment": "коментар",
"communityRating": "рейтинг спільноти",
"criticRating": "рейтинг критиків",
"dateAdded": "дата додавання",
"disc": "диск",
"duration": "тривалість",
"favorited": "улюблене",
"fromYear": "з року",
"genre": "$t(entity.genre, {\"count\": 1})",
"id": "id",
"isCompilation": "є компіляцією",
"isFavorited": "є улюбленим",
"isPublic": "є публічним",
"isRated": "є оціненим",
"isRecentlyPlayed": "нещодавно відтворено",
"lastPlayed": "нещодавно відтворені",
"mostPlayed": "найбільш відтворювані",
"name": "назва",
"note": "примітка",
"owner": "$t(common.owner)",
"path": "шлях",
"playCount": "кількість відтворень",
"random": "випадково",
"rating": "рейтинг",
"recentlyAdded": "нещодавно додано",
"recentlyPlayed": "нещодавно відтворено",
"recentlyUpdated": "нещодавно оновлено",
"releaseDate": "дата випуску",
"releaseYear": "рік випуску",
"search": "шукати",
"songCount": "кількість пісень",
"sortName": "сортування за назвою",
"title": "назва",
"toYear": "до року",
"trackNumber": "трек",
"explicitStatus": "$t(common.explicitStatus)"
},
"datetime": {
"minuteShort": "хв.",
"secondShort": "сек.",
"hourShort": "год",
"dayShort": "дн."
},
"filterOperator": {
"after": "є після",
"afterDate": "після (дата)",
"before": "є перед",
"beforeDate": "є перед (дата)",
"contains": "містить",
"endsWith": "закінчується на",
"inPlaylist": "є в",
"inTheLast": "є в останньому",
"inTheRange": "є в межах",
"inTheRangeDate": "є в межах (дата)",
"is": "є",
"isNot": "не є",
"isGreaterThan": "більше ніж",
"isLessThan": "менше ніж",
"matchesRegex": "відповідає регулярному виразу",
"notContains": "не містить",
"notInPlaylist": "немає в",
"notInTheLast": "не є в останньому",
"startsWith": "починається з"
},
"form": {
"addServer": {
"error_savePassword": "сталася помилка під час спроби зберегти пароль",
"ignoreCors": "ігнорувати cors ($t(common.restartRequired))",
"ignoreSsl": "ігнорувати ssl ($t(common.restartRequired)}",
"input_legacyAuthentication": "увімкнути застарілу автентифікацію",
"input_name": "назва сервера",
"input_password": "пароль",
"input_preferInstantMix": "віддавати перевагу миттєвому міксу",
"input_preferInstantMixDescription": "використовувати тільки миттєвий мікс щоб отримати подібні пісні. корисно, коли у вас є плагіни, які змінюють цю поведінку",
"input_preferRemoteUrl": "віддавати перевагу публічній URL-адресі",
"input_remoteUrl": "публічна URL-адреса",
"input_remoteUrlPlaceholder": "опціонально: публічна URL-адреса для зовнішніх функцій",
"input_savePassword": "зберегти пароль",
"input_url": "URL-адреса",
"input_username": "Ім'я користувача",
"success": "сервер додано успішно",
"title": "додати сервер"
},
"largeFetchConfirmation": {
"title": "додати елементи до черги",
"description": "Ця дія додасть усі елементи в поточний відфільтрований перегляд"
},
"addToPlaylist": {
"create": "створити $t(entity.playlist, {\"count\": 1}) {{playlist}}",
"input_playlists": "$t(entity.playlist, {\"count\": 2})",
"input_skipDuplicates": "пропустити дублікати",
"searchOrCreate": "шукайте $t(entity.playlist, {\"count\": 2}) або пишіть, щоб створити новий",
"success": "додано $t(entity.trackWithCount, {\"count\": {{message}} }) до $t(entity.playlistWithCount, {\"count\": {{numOfPlaylists}} })",
"title": "додати до $t(entity.playlist, {\"count\": 1})"
},
"createPlaylist": {
"input_description": "$t(common.description)",
"input_name": "$t(common.name)",
"input_owner": "$t(common.owner)",
"input_public": "публічний",
"success": "$t(entity.playlist, {\"count\": 1}) стрворено успішно",
"title": "створити $t(entity.playlist, {\"count\": 1})"
},
"createRadioStation": {
"success": "радіостанція створена успішно",
"title": "створити радіостанцію",
"input_homepageUrl": "адреса домашньої сторінки",
"input_name": "назва",
"input_streamUrl": "URL-адреса потоку"
},
"deletePlaylist": {
"input_confirm": "введіть ім'я $t(entity.playlist, {\"count\": 1}) для підтвердження",
"success": "$t(entity.playlist, {\"count\": 1}) успішно видалено",
"title": "видалити $t(entity.playlist, {\"count\": 1})"
},
"editPlaylist": {
"publicJellyfinNote": "Jellyfin з якоїсь причини не показує, чи є плейлист публічним чи ні. Якщо ви хочете, щоб він залишався публічним, виберіть варіант нижче",
"editNote": "ручне редагування не рекомендується для великих плейлистів. ви впевнені, що готові прийняти ризик втрати даних, який виникає при перезапису існуючого плейлисту?",
"success": "$t(entity.playlist, {\"count\": 1}) успішно оновлено",
"title": "змінити $t(entity.playlist, {\"count\": 1})"
},
"lyricsExport": {
"export": "експортувати тексти пісень",
"input_synced": "експортувати синхронізовані тексти пісень",
"input_offset": "$t(setting.lyricOffset)"
},
"lyricSearch": {
"input_artist": "$t(entity.artist, {\"count\": 1})",
"input_name": "$t(common.name)",
"title": "шукати тексти пісень"
},
"queryEditor": {
"title": "редактор запитів",
"input_optionMatchAll": "збіг за всіма",
"input_optionMatchAny": "збіг за будь-яким",
"addRuleGroup": "додати групу правил",
"removeRuleGroup": "видалити групу правил",
"resetToDefault": "скинути до заводських налаштувань",
"clearFilters": "очистити фільтри"
},
"saveQueue": {
"success": "черга відтворення збережена на сервері"
},
"shareItem": {
"allowDownloading": "дозволити завантаження",
"description": "опис",
"setExpiration": "встановити термін дії",
"success": "посилання для спільного використання скопійовано в буфер обміну (натисніть тут, щоб відкрити)",
"expireInvalid": "термін дії повинен бути в майбутньому",
"createFailed": "не вдалося створити спільний доступ (чи ввімкнено спільний доступ?)"
},
"shuffleAll": {
"title": "відтворити випадково",
"input_genre": "$t(entity.genre, {\"count\": 1})",
"input_limit": "скільки пісень?",
"input_minYear": "від року",
"input_maxYear": "до року",
"input_played": "відтворити фільтр",
"input_played_optionAll": "всі треки",
"input_played_optionUnplayed": "тільки не відтворені треки",
"input_played_optionPlayed": "тільки відтворені треки"
},
"updateServer": {
"success": "сервер успішно оновлено",
"title": "оновити сервер"
},
"privateMode": {
"enabled": "приватний режим увімкнено, стан відтворення тепер приховано від зовнішніх інтеграцій",
"disabled": "приватний режим вимкнено, стан відтворення тепер видно для увімкнених зовнішніх інтеграцій",
"title": "приватний режим"
}
},
"player": {
"skip": "пропустити"
},
"page": {
"albumArtistDetail": {
"about": "Про {{artist}}",
"appearsOn": "з'являється на",
"favoriteSongs": "улюблені пісні",
"groupingTypeAll": "всі типи випуску",
"groupingTypePrimary": "основні типи випуску",
"recentReleases": "останні випуски",
"viewDiscography": "переглянути дискографію",
"relatedArtists": "подібні $t(entity.artist, {\"count\": 2})",
"topSongs": "найкращі пісні",
"topSongsCommunity": "спільнота",
"topSongsFrom": "найкращі пісні від {{title}}",
"topSongsPersonal": "особисте",
"favoriteSongsFrom": "улюблені пісні від {{title}}",
"viewAll": "показати все",
"viewAllTracks": "показати усі $t(entity.track, {\"count\": 2})"
},
"albumArtistList": {
"title": "$t(entity.albumArtist, {\"count\": 2})"
},
"albumDetail": {
"moreFromArtist": "більше від цього $t(entity.artist, {\"count\": 1})",
"moreFromGeneric": "більше від {{item}}",
"released": "видано"
},
"albumList": {
"artistAlbums": "альбоми виконавця {{artist}}",
"genreAlbums": "\"{{genre}}\" $t(entity.album, {\"count\": 2})",
"title": "$t(entity.album, {\"count\": 2})"
},
"radioList": {
"title": "радіостанції"
},
"releasenotes": {
"commitsSinceStable": "комміти від {{stable}}",
"noNewCommits": "немає нових коммітів у цьому періоді",
"noStableReleaseToCompare": "немає доступної стабільної версії для порівняння"
},
"favorites": {
"title": "$t(entity.favorite, {\"count\": 2})"
},
"windowBar": {
"paused": "(Призупинено) ",
"privateMode": "(Приватний режим)"
},
"appMenu": {
"collapseSidebar": "згорнути бічну панель",
"commandPalette": "відкрити палітру команд",
"expandSidebar": "розгорнути бічну панель",
"goBack": "повернутися назад",
"goForward": "перейти вперед",
"manageServers": "управління серверами",
"privateModeOff": "вимкнути приватний режим",
"privateModeOn": "увімкнути приватний режим",
"openBrowserDevtools": "відкрити інструменти розробника",
"quit": "$t(common.quit)",
"selectServer": "вибрати сервер",
"selectMusicFolder": "вибрати папку з музикою",
"noMusicFolder": "не вибрано папку з музикою",
"multipleMusicFolders": "Вибрано {{count}} папок з музикою",
"settings": "$t(common.setting, {\"count\": 2})",
"version": "версія {{version}}"
},
"manageServers": {
"title": "управління серверами",
"serverDetails": "інформація про сервер",
"url": "URL-адреса",
"username": "Ім'я користувача",
"editServerDetailsTooltip": "редагувати дані сервера",
"removeServer": "видалити сервер"
},
"contextMenu": {
"addFavorite": "$t(action.addToFavorites)",
"addLast": "$t(player.addLast)",
"addNext": "$t(player.addNext)",
"addToFavorites": "$t(action.addToFavorites)",
"addToPlaylist": "$t(action.addToPlaylist)",
"createPlaylist": "$t(action.createPlaylist)",
"deletePlaylist": "$t(action.deletePlaylist)",
"deselectAll": "$t(action.deselectAll)",
"download": "завантажити",
"moveItems": "$t(action.moveItems)",
"moveToNext": "$t(action.moveToNext)",
"moveToBottom": "$t(action.moveToBottom)",
"moveToTop": "$t(action.moveToTop)",
"numberSelected": "{{count}} вибрано",
"play": "$t(player.play)",
"playSimilarSongs": "$t(player.playSimilarSongs)",
"removeFromFavorites": "$t(action.removeFromFavorites)",
"removeFromPlaylist": "$t(action.removeFromPlaylist)",
"removeFromQueue": "$t(action.removeFromQueue)",
"setRating": "$t(action.setRating)",
"playShuffled": "$t(player.shuffle)",
"shareItem": "поділитися елементом",
"goTo": "перейти до",
"goToAlbum": "перейти до $t(entity.album, {\"count\": 1})",
"goToAlbumArtist": "перейти до $t(entity.albumArtist, {\"count\": 1})",
"showDetails": "отримати інформацію"
}
}
}
+567 -103
View File
@@ -1,21 +1,21 @@
{
"action": {
"editPlaylist": "编辑 $t(entity.playlist_one)",
"editPlaylist": "编辑 $t(entity.playlist, {\"count\": 1})",
"moveToTop": "移至顶部",
"clearQueue": "清空播放队列",
"addToFavorites": "添加到 $t(entity.favorite_other)",
"addToPlaylist": "添加到 $t(entity.playlist_one)",
"createPlaylist": "创建 $t(entity.playlist_one)",
"removeFromPlaylist": "从 $t(entity.playlist_one) 移除",
"viewPlaylists": "查看 $t(entity.playlist_other)",
"addToFavorites": "添加到 $t(entity.favorite, {\"count\": 2})",
"addToPlaylist": "添加到 $t(entity.playlist, {\"count\": 1})",
"createPlaylist": "创建 $t(entity.playlist, {\"count\": 1})",
"removeFromPlaylist": "从 $t(entity.playlist, {\"count\": 1}) 移除",
"viewPlaylists": "查看 $t(entity.playlist, {\"count\": 2})",
"refresh": "$t(common.refresh)",
"deletePlaylist": "删除 $t(entity.playlist_one)",
"deletePlaylist": "删除 $t(entity.playlist, {\"count\": 1})",
"removeFromQueue": "从播放队列中移除",
"deselectAll": "取消全选",
"moveToBottom": "移至底部",
"setRating": "评分",
"toggleSmartPlaylistEditor": "切换 $t(entity.smartPlaylist) 编辑器",
"removeFromFavorites": "从 $t(entity.favorite_other) 移除",
"removeFromFavorites": "从 $t(entity.favorite, {\"count\": 2}) 移除",
"goToPage": "前往页面",
"openIn": {
"lastfm": "在 Last.fm 中打开",
@@ -35,8 +35,10 @@
"addOrRemoveFromSelection": "在所选内容中添加或移除",
"selectRangeOfItems": "批量选择",
"selectAll": "全选",
"createRadioStation": "创建$t(entity.radioStation_one)",
"deleteRadioStation": "删除$t(entity.radioStation_one)"
"createRadioStation": "创建$t(entity.radioStation, {\"count\": 1})",
"deleteRadioStation": "删除$t(entity.radioStation, {\"count\": 1})",
"openApplicationDirectory": "打开应用程序目录",
"goToCurrent": "转到当前项目"
},
"common": {
"increase": "增高",
@@ -49,7 +51,7 @@
"left": "左",
"save": "保存",
"right": "右",
"currentSong": "当前$t(entity.track_one)",
"currentSong": "当前$t(entity.track, {\"count\": 1})",
"collapse": "折叠",
"trackNumber": "音轨编号",
"descending": "降序",
@@ -73,8 +75,8 @@
"forward": "前进",
"delete": "删除",
"cancel": "取消",
"forceRestartRequired": "重启应用使更改生效…关闭通知即可重启",
"setting": "设置",
"forceRestartRequired": "重启应用使更改生效…关闭通知即可重启",
"setting_other": "设置",
"version": "版本",
"title": "标题",
"filter_other": "筛选",
@@ -91,7 +93,7 @@
"disable": "禁用",
"menu": "菜单",
"restartRequired": "需要重启应用",
"previousSong": "上一首$t(entity.track_one)",
"previousSong": "上一首$t(entity.track, {\"count\": 1})",
"noResultsFromQuery": "未查询到匹配结果",
"quit": "退出",
"expand": "展开",
@@ -106,7 +108,7 @@
"duration": "时长",
"ok": "好",
"no": "否",
"playerMustBePaused": "播放器必须暂停",
"playerMustBePaused": "播放器必须暂停",
"channel_other": "频道",
"none": "无",
"disc": "碟片",
@@ -147,7 +149,15 @@
"sort": "排序",
"gridRows": "网格行",
"tableColumns": "表格列",
"itemsMore": "{{count}} 更多"
"itemsMore": "{{count}} 更多",
"countSelected": "已选择{{count}}项",
"retry": "重试",
"example": "示例",
"filter_single": "单项",
"mood": "氛围",
"rename": "重命名",
"filter_multiple": "多项",
"newVersionAvailable": "a new version is available"
},
"entity": {
"albumArtist_other": "专辑艺术家",
@@ -163,11 +173,13 @@
"favorite_other": "收藏",
"artistWithCount_other": "{{count}} 位艺术家",
"folder_other": "文件夹",
"smartPlaylist": "智能$t(entity.playlist_one)",
"smartPlaylist": "智能$t(entity.playlist, {\"count\": 1})",
"genreWithCount_other": "{{count}} 种流派",
"trackWithCount_other": "{{count}} 首曲目",
"play_other": "{{count}} 次播放",
"song_other": "歌曲"
"song_other": "歌曲",
"radioStation_other": "广播电台",
"radioStationWithCount_other": "{{count}} 个广播电台"
},
"player": {
"repeat_all": "循环全部",
@@ -181,10 +193,10 @@
"skip_back": "向后跳过",
"favorite": "收藏",
"next": "下一首",
"shuffle": "随机播放",
"shuffle": "播放(随机)",
"playbackFetchNoResults": "未找到歌曲",
"playbackFetchInProgress": "正在加载歌曲…",
"addNext": "添加为播放列表下一",
"addNext": "下一",
"playbackFetchCancel": "请稍等…关闭通知以取消操作",
"play": "播放",
"repeat_off": "循环关闭",
@@ -194,13 +206,31 @@
"queue_moveToTop": "将所选项移至底部",
"queue_moveToBottom": "将所选项移至顶部",
"shuffle_off": "禁用随机播放",
"addLast": "上一曲",
"addLast": "最后",
"mute": "静音",
"skip_forward": "向前跳过",
"playbackSpeed": "播放速度",
"pause": "暂停",
"playSimilarSongs": "播放类似的歌曲",
"viewQueue": "查看播放队列"
"viewQueue": "查看播放队列",
"saveQueueToServer": "将播放队列保存到服务器",
"restoreQueueFromServer": "从服务器恢复播放队列",
"lyrics": "歌词",
"addLastShuffled": "最后(随机)",
"addNextShuffled": "下一个(随机)",
"artistRadio": "艺术家电台",
"holdToShuffle": "按住即可随机",
"trackRadio": "追踪广播",
"sleepTimer": "睡眠定时器",
"sleepTimer_endOfSong": "当前歌曲结束时",
"sleepTimer_minutes": "{{count}} 分钟",
"sleepTimer_hours": "{{count}} 小时",
"sleepTimer_custom": "自定义",
"sleepTimer_off": "关闭",
"sleepTimer_timeRemaining": "剩余时间 {{time}}",
"sleepTimer_setCustom": "设置定时器",
"sleepTimer_cancel": "取消定时器",
"albumRadio": "专辑电台"
},
"setting": {
"crossfadeStyle_description": "选择用于音频播放器的淡入淡出风格",
@@ -211,7 +241,6 @@
"audioPlayer_description": "选择用于播放的音频播放器",
"globalMediaHotkeys": "全局媒体快捷键",
"gaplessAudio_description": "调整 mpv 无缝音频设置",
"disableAutomaticUpdates": "禁用自动更新",
"followLyric_description": "滚动歌词到当前播放位置",
"audioExclusiveMode": "音频独占模式",
"font": "字体",
@@ -232,7 +261,7 @@
"customFontPath_description": "设置应用使用的自定义字体路径",
"gaplessAudio_optionWeak": "弱(推荐)",
"font_description": "设置应用使用的字体",
"audioDevice_description": "选择用于播放的音频设备(仅 web 播放器)",
"audioDevice_description": "选择用于播放的音频设备",
"enableRemote_description": "启用远程控制服务器,以允许其他设备控制此应用",
"remotePort_description": "设置远程服务器端口",
"hotkey_skipBackward": "向后跳过",
@@ -277,7 +306,7 @@
"remoteUsername_description": "设置远程控制服务器的用户名。如果用户名和密码都为空,则身份验证将被禁用",
"exitToTray_description": "退出应用时最小化到系统托盘",
"hotkey_favoritePreviousSong": "收藏$t(common.previousSong)",
"replayGainMode_optionAlbum": "$t(entity.album_one)",
"replayGainMode_optionAlbum": "$t(entity.album, {\"count\": 1})",
"lyricOffset": "歌词偏移(毫秒)",
"fontType_optionCustom": "自定义字体",
"themeDark_description": "应用将使用深色主题",
@@ -286,7 +315,7 @@
"language_description": "设置应用的语言($t(common.restartRequired)",
"playbackStyle_optionCrossFade": "淡入淡出",
"hotkey_rate3": "评为 3 星",
"replayGainMode_optionTrack": "$t(entity.track_one)",
"replayGainMode_optionTrack": "$t(entity.track, {\"count\": 1})",
"themeLight_description": "应用将使用浅色主题",
"hotkey_toggleFullScreenPlayer": "全屏播放",
"hotkey_localSearch": "页面内搜索",
@@ -327,7 +356,7 @@
"useSystemTheme_description": "使用系统定义的浅色或深色主题",
"playButtonBehavior_optionAddNext": "$t(player.addNext)",
"lyricFetch_description": "从多个互联网源获取歌词",
"lyricFetchProvider_description": "选择歌词源。 歌词源顺序与查询顺序一致",
"lyricFetchProvider_description": "选择要从中获取歌词的提供商",
"sidePlayQueueStyle_optionDetached": "不吸附",
"hotkey_zoomOut": "缩小",
"hotkey_unfavoriteCurrentSong": "取消收藏$t(common.currentSong)",
@@ -446,9 +475,9 @@
"releaseChannel_optionLatest": "最新的",
"releaseChannel_optionBeta": "测试版",
"releaseChannel": "发布通道",
"releaseChannel_description": "选择稳定版本或测试版以进行自动更新",
"releaseChannel_description": "选择稳定版测试版或 Alpha(夜间构建版)以启用自动更新",
"mediaSession": "启用媒体会话",
"mediaSession_description": "启用 Windows 媒体会话集成,在系统音量覆盖和锁定屏幕中显示媒体控件和元数据(仅限 Windows",
"mediaSession_description": "启用媒体会话集成,在系统音量叠加层和锁屏界面显示媒体控件和元数据",
"exportImportSettings_control_description": "通过 JSON 导出和导入设置",
"exportImportSettings_control_exportText": "导出设置",
"exportImportSettings_control_importText": "导入设置",
@@ -460,7 +489,111 @@
"exportImportSettings_notValidJSON": "传递的文件不是有效的 JSON 文件",
"exportImportSettings_offendingKeyError": "\"{{offendingKey}}\" 不正确 - {{reason}}",
"enableAutoTranslation_description": "歌词加载时自动启用翻译",
"enableAutoTranslation": "启用自动翻译"
"enableAutoTranslation": "启用自动翻译",
"imageResolution_description": "程序中使用的图片分辨率,设置为0时使用原始图片",
"artistReleaseTypeConfiguration_description": "配置专辑艺术家页面上显示的发行类型及顺序",
"logLevel_description": "设置显示的最低日志级别。debug显示所有日志,error仅显示错误日志",
"showLyricsInSidebar_description": "在播放列表的附加面板中增加歌词显示页面",
"playerbarSlider_description": "不建议在网络速度较慢或按流量计费情况下使用波形图",
"showVisualizerInSidebar_description": "在播放侧边栏中增加可视化效果",
"analyticsDisable_description": "发送匿名使用数据帮助开发者改进应用程序",
"showRatings_description": "控制是否在界面上显示星级评分",
"followCurrentSong_description": "自动滚动播放列表至当前播放的歌曲",
"audioFadeOnStatusChange_description": "启用音乐淡入和淡出效果",
"combinedLyricsAndVisualizer_description": "将歌词和可视化界面合并到同一面板中",
"queryBuilderCustomFields_description": "在查询构建器添加自定义字段",
"combinedLyricsAndVisualizer": "在播放器侧边栏合并歌词和可视化界面",
"autoDJ_description": "自动添加相似歌曲到队列中",
"notify_description": "歌曲变更时显示通知",
"mpvExtraParameters_description": "向mpv传递额外参数",
"audioFadeOnStatusChange": "音频改变时淡入淡出",
"showVisualizerInSidebar": "在播放器侧边栏显示可视化效果",
"showLyricsInSidebar": "在播放器侧边栏显示歌词",
"analyticsDisable": "退出使用情况的分析",
"artistReleaseTypeConfiguration": "艺术家发行类型设置",
"useThemeAccentColor": "使用主题强调色",
"mpvExtraParameters": "mpv额外参数",
"showRatings": "显示星级评分",
"followCurrentSong": "跟随当前歌曲",
"logLevel": "日志等级",
"playerbarWaveformAlign_optionTop": "顶部对齐",
"playerbarWaveformAlign_optionCenter": "居中对齐",
"playerbarWaveformAlign_optionBottom": "底部对齐",
"queryBuilderCustomFields_inputLabel": "厂牌",
"queryBuilderCustomFields_inputTag": "标签",
"logLevel_optionDebug": "Debug",
"logLevel_optionError": "Error",
"logLevel_optionInfo": "Info",
"logLevel_optionWarn": "Warn",
"imageResolution_optionSidebar": "侧边栏",
"imageResolution_optionHeader": "页首",
"language": "语言",
"notify": "启用歌曲通知",
"imageResolution": "图像分辨率",
"imageResolution_optionTable": "表格",
"imageResolution_optionFullScreenPlayer": "全屏播放器",
"playerbarSlider": "播放进度条",
"playerbarSliderType_optionSlider": "滑块",
"playerbarSliderType_optionWaveform": "波形",
"playerbarWaveformAlign": "波形对齐方式",
"playerbarWaveformBarWidth": "波形宽度",
"playerbarWaveformGap": "波形间距",
"transcode": "启用转码功能",
"useThemeAccentColor_description": "使用所选主题中定义的主色,而不是自定义强调色",
"homeFeatureStyle_optionSingle": "单项",
"autoDJ": "自动DJ",
"autoDJ_itemCount": "项目数量",
"autoDJ_itemCount_description": "启用自动 DJ 功能后,尝试添加到队列中的项目数",
"autoDJ_timing": "定时",
"autoDJ_timing_description": "自动 DJ 触发前队列中剩余的歌曲数量",
"crossfadeStyle": "交叉渐变风格",
"discordRichPresence": "{{discord}} rich presence",
"homeFeatureStyle_description": "控制首页特色轮播图的样式",
"homeFeatureStyle": "首页特色旋转样式",
"homeFeatureStyle_optionMultiple": "多样",
"hotkey_listNavigateToPage": "列表导航至项目页面",
"hotkey_listPlayDefault": "播放列表",
"hotkey_listPlayLast": "播放列表最后",
"hotkey_listPlayNext": "播放列表下一个",
"hotkey_listPlayNow": "播放列表现在",
"pathReplace": "文件路径替换",
"pathReplace_description": "替换服务器的默认文件路径",
"pathReplace_optionRemovePrefix": "移除前缀",
"pathReplace_optionAddPrefix": "添加前缀",
"playerFilters": "从队列中筛选歌曲",
"playerFilters_description": "根据以下条件,忽略添加到队列中的歌曲",
"artistRadioCount_description": "设置艺术家电台和曲目电台要获取的歌曲数量",
"artistRadioCount": "艺术家/曲目电台数量",
"imageResolution_optionItemCard": "项目卡",
"playerbarWaveformRadius": "波形半径",
"enableGridMultiSelect": "启用网格多选",
"enableGridMultiSelect_description": "启用后,允许在网格视图中选择多个项目。禁用后,点击网格项目图像将跳转到项目页面",
"sidebarPlaylistSorting_description": "允许在侧边栏中使用拖放操作手动对播放列表进行排序,而不是使用默认的服务器顺序",
"sidebarPlaylistSorting": "侧边栏播放列表排序",
"sidebarPlaylistListFilterRegex_description": "隐藏侧边栏中与此正则表达式匹配的播放列表",
"sidebarPlaylistListFilterRegex_placeholder": "例如:^每日精选*",
"sidebarPlaylistListFilterRegex": "播放列表筛选正则表达式",
"queryBuilder": "查询构建器",
"queryBuilderCustomFields": "自定义字段",
"analyticsEnable": "发送基于使用情况的分析",
"analyticsEnable_description": "发送匿名使用数据帮助开发者改进应用程序",
"automaticUpdates": "自动更新",
"automaticUpdates_description": "自动检查并安装更新",
"releaseChannel_optionAlpha": "alpha(每日构建版)",
"discordStateIcon": "显示播放图标",
"discordStateIcon_description": "在 rich presence 状态中显示一个小的播放图标。启用“暂停时显示 rich presence 在线状态”后,暂停图标始终显示",
"blurExplicitImages": "模糊显式图片",
"blurExplicitImages_description": "专辑和歌曲封面若被标记为不雅内容,将会进行模糊处理",
"autosave": "自动保存播放队列",
"autosave_description": "启用自动将播放队列保存到服务器的功能。此功能仅在使用 Navidrome/Subsonic 时可用,且不能使用混合播放队列。",
"autosaveCount": "自动播放队列保存频率",
"autosaveCount_description": "队列保存前需要更改多少首歌曲?1(最少)表示每次歌曲更改",
"useThemePrimaryShade": "使用主题主色调",
"useThemePrimaryShade_description": "对于主要颜色变体,请使用所选主题中定义的主色调",
"primaryShade": "主色调",
"primaryShade_description": "覆盖按钮、链接和其他主色元素使用的主色调(0-9)",
"playerItemConfiguration_description": "配置全屏播放器上显示的项目及其显示顺序",
"playerItemConfiguration": "播放器项目配置"
},
"error": {
"remotePortWarning": "重启服务器使新端口生效",
@@ -486,7 +619,15 @@
"networkError": "发生网络错误",
"openError": "无法打开文件",
"badValue": "无效的选项 \"{{value}}\". 此值不再存在",
"notificationDenied": "通知权限被拒绝。此设置无效"
"notificationDenied": "通知权限被拒绝。此设置无效",
"multipleServerSaveQueueError": "不支持此操作(播放列表中包含来自其他服务器的歌曲)",
"noNetwork": "服务器不可用",
"noNetworkDescription": "无法连接到该服务器",
"saveQueueFailed": "播放列表保存失败",
"settingsSyncError": "渲染器设置与主进程中存在差异,请重启程序以应用更改",
"invalidJson": "无效的 JSON",
"serverLockSingleServer": "服务器锁定时,只允许一台服务器运行",
"playbackPausedDueToError": "发生错误,播放已暂停"
},
"filter": {
"mostPlayed": "最多播放过",
@@ -503,18 +644,18 @@
"communityRating": "社区评分",
"path": "路径",
"favorited": "已收藏",
"albumArtist": "$t(entity.albumArtist_one)",
"albumArtist": "$t(entity.albumArtist, {\"count\": 1})",
"releaseYear": "发布年份",
"biography": "个人简介",
"songCount": "歌曲数量",
"random": "随机",
"lastPlayed": "上次播放",
"toYear": "年份",
"fromYear": "年份",
"lastPlayed": "最后播放",
"toYear": "截止年份",
"fromYear": "起始年份",
"criticRating": "评论家评分",
"trackNumber": "曲目",
"bpm": "bpm",
"artist": "$t(entity.artist_one)",
"artist": "$t(entity.artist, {\"count\": 1})",
"comment": "评论",
"isCompilation": "为合辑",
"isFavorited": "已收藏",
@@ -522,32 +663,38 @@
"recentlyUpdated": "最近更新",
"isRated": "已评分",
"isRecentlyPlayed": "最近播放过",
"channels": "$t(common.channel_other)",
"channels": "$t(common.channel, {\"count\": 2})",
"owner": "$t(common.owner)",
"genre": "$t(entity.genre_one)",
"genre": "$t(entity.genre, {\"count\": 1})",
"note": "注释",
"albumCount": "$t(entity.album_other)数",
"albumCount": "$t(entity.album, {\"count\": 2})数",
"id": "id",
"disc": "碟片",
"duration": "时长",
"album": "$t(entity.album_one)",
"explicitStatus": "$t(common.explicitStatus)"
"album": "$t(entity.album, {\"count\": 1})",
"explicitStatus": "$t(common.explicitStatus)",
"sortName": "排序名称",
"matchAnd": "和",
"matchOr": "或"
},
"page": {
"sidebar": {
"nowPlaying": "正在播放",
"playlists": "$t(entity.playlist_other)",
"playlists": "$t(entity.playlist, {\"count\": 2})",
"search": "$t(common.search)",
"tracks": "$t(entity.track_other)",
"albums": "$t(entity.album_other)",
"genres": "$t(entity.genre_other)",
"folders": "$t(entity.folder_other)",
"settings": "$t(common.setting_other)",
"tracks": "$t(entity.track, {\"count\": 2})",
"albums": "$t(entity.album, {\"count\": 2})",
"genres": "$t(entity.genre, {\"count\": 2})",
"folders": "$t(entity.folder, {\"count\": 2})",
"settings": "$t(common.setting, {\"count\": 2})",
"home": "$t(common.home)",
"artists": "$t(entity.artist_other)",
"albumArtists": "$t(entity.albumArtist_other)",
"shared": "共享$t(entity.playlist_other)",
"myLibrary": "我的媒体库"
"artists": "$t(entity.artist, {\"count\": 2})",
"albumArtists": "$t(entity.albumArtist, {\"count\": 2})",
"shared": "共享$t(entity.playlist, {\"count\": 2})",
"myLibrary": "我的媒体库",
"favorites": "$t(entity.favorite, {\"count\": 2})",
"radio": "$t(entity.radioStation, {\"count\": 2})",
"collections": "合集"
},
"fullscreenPlayer": {
"config": {
@@ -581,10 +728,14 @@
"openBrowserDevtools": "打开浏览器开发者工具",
"goBack": "返回",
"goForward": "前进",
"settings": "$t(common.setting_other)",
"settings": "$t(common.setting, {\"count\": 2})",
"quit": "$t(common.quit)",
"privateModeOff": "关闭私人模式",
"privateModeOn": "开启私人模式"
"privateModeOn": "开启私人模式",
"multipleMusicFolders": "已选择{{count}}个媒体库",
"noMusicFolder": "未选择任何音乐库",
"selectMusicFolder": "选择媒体库",
"commandPalette": "打开命令面板"
},
"home": {
"mostPlayed": "最多播放",
@@ -592,10 +743,11 @@
"explore": "从库中搜索",
"recentlyPlayed": "最近播放",
"title": "$t(common.home)",
"recentlyReleased": "最近发布"
"recentlyReleased": "最近发布",
"genres": "$t(entity.genre, {\"count\": 2})"
},
"albumDetail": {
"moreFromArtist": "更多该$t(entity.artist_one)作品",
"moreFromArtist": "更多该$t(entity.artist, {\"count\": 1})作品",
"moreFromGeneric": "更多{{item}}作品",
"released": "已发布"
},
@@ -604,7 +756,25 @@
"generalTab": "通用",
"hotkeysTab": "快捷键",
"windowTab": "窗口",
"advanced": "高级"
"advanced": "高级",
"updates": "更新",
"cache": "缓存",
"analytics": "分析",
"application": "应用",
"theme": "主题",
"controls": "控制",
"sidebar": "侧边栏",
"remote": "远程服务",
"exportImport": "导入/导出",
"scrobble": "播放记录",
"audio": "音频",
"lyrics": "歌词",
"transcoding": "转码",
"discord": "Discord",
"logger": "日志记录器",
"queryBuilder": "查询构建器",
"lyricsDisplay": "歌词显示",
"playerFilters": "播放筛选器"
},
"globalSearch": {
"commands": {
@@ -637,40 +807,48 @@
"download": "下载",
"playShuffled": "$t(player.shuffle)",
"moveToNext": "$t(action.moveToNext)",
"goToAlbum": "转到 $t(entity.album_one)",
"goToAlbumArtist": "转到 $t(entity.albumArtist_one)"
"goToAlbum": "转到 $t(entity.album, {\"count\": 1})",
"goToAlbumArtist": "转到 $t(entity.albumArtist, {\"count\": 1})",
"moveItems": "$t(action.moveItems)",
"goTo": "前往"
},
"trackList": {
"title": "$t(entity.track_other)",
"genreTracks": "\"{{genre}}\" $t(entity.track_other)",
"title": "$t(entity.track, {\"count\": 2})",
"genreTracks": "\"{{genre}}\" $t(entity.track, {\"count\": 2})",
"artistTracks": "{{artist}} 的曲目"
},
"albumArtistList": {
"title": "$t(entity.albumArtist_other)"
"title": "$t(entity.albumArtist, {\"count\": 2})"
},
"albumList": {
"title": "$t(entity.album_other)",
"title": "$t(entity.album, {\"count\": 2})",
"artistAlbums": "{{artist}}的专辑",
"genreAlbums": "\"{{genre}}\" $t(entity.album_other)"
"genreAlbums": "\"{{genre}}\" $t(entity.album, {\"count\": 2})"
},
"genreList": {
"title": "$t(entity.genre_other)",
"showAlbums": "显示$t(entity.genre_one) $t(entity.album_other)",
"showTracks": "显示$t(entity.genre_one) $t(entity.track_other)"
"title": "$t(entity.genre, {\"count\": 2})",
"showAlbums": "显示$t(entity.genre, {\"count\": 1}) $t(entity.album, {\"count\": 2})",
"showTracks": "显示$t(entity.genre, {\"count\": 1}) $t(entity.track, {\"count\": 2})"
},
"playlistList": {
"title": "$t(entity.playlist_other)"
"title": "$t(entity.playlist, {\"count\": 2})"
},
"albumArtistDetail": {
"recentReleases": "最近发布",
"viewDiscography": "查看唱片目录",
"relatedArtists": "相关$t(entity.artist_other)",
"relatedArtists": "相关$t(entity.artist, {\"count\": 2})",
"topSongs": "热门歌曲",
"topSongsFrom": "{{title}}的热门歌曲",
"viewAllTracks": "查看所有$t(entity.track_other)",
"viewAllTracks": "查看所有$t(entity.track, {\"count\": 2})",
"about": "关于{{artist}}",
"appearsOn": "出现在",
"viewAll": "查看全部"
"viewAll": "查看全部",
"groupingTypeAll": "所有发行类型",
"groupingTypePrimary": "首选发布类型",
"favoriteSongs": "收藏的歌曲",
"favoriteSongsFrom": "来自 {{title}} 收藏的歌曲",
"topSongsCommunity": "社区",
"topSongsPersonal": "个人"
},
"itemDetail": {
"copyPath": "将路径复制到剪贴板",
@@ -687,13 +865,35 @@
"username": "用户名",
"editServerDetailsTooltip": "编辑服务器详细信息",
"removeServer": "移除服务器"
},
"favorites": {
"title": "$t(entity.favorite, {\"count\": 2})"
},
"folderList": {
"title": "$t(entity.folder, {\"count\": 2})"
},
"radioList": {
"title": "广播电台"
},
"windowBar": {
"paused": "(暂停) ",
"privateMode": "(私人模式)"
},
"collections": {
"overrideExisting": "覆盖现有",
"saveAsCollection": "保存为集合"
},
"releasenotes": {
"commitsSinceStable": "自 {{stable}} 以来的提交",
"noNewCommits": "此范围内没有新的提交",
"noStableReleaseToCompare": "目前没有稳定版本可供比较"
}
},
"form": {
"deletePlaylist": {
"title": "删除$t(entity.playlist_one)",
"success": "$t(entity.playlist_one)已成功删除",
"input_confirm": "输入$t(entity.playlist_one)的名称进行确认"
"title": "删除$t(entity.playlist, {\"count\": 1})",
"success": "$t(entity.playlist, {\"count\": 1})已成功删除",
"input_confirm": "输入$t(entity.playlist, {\"count\": 1})的名称进行确认"
},
"addServer": {
"title": "添加服务器",
@@ -708,20 +908,23 @@
"error_savePassword": "保存密码时出现错误",
"input_url": "url",
"input_preferInstantMixDescription": "仅使用即时混音来获取类似的歌曲。如果您有修改此行为的插件,则很有用",
"input_preferInstantMix": "首选即时混音"
"input_preferInstantMix": "首选即时混音",
"input_preferRemoteUrl": "首选公共 url",
"input_remoteUrl": "公共 url",
"input_remoteUrlPlaceholder": "可选:对外功能的公共 url"
},
"addToPlaylist": {
"success": "添加$t(entity.trackWithCount, {\"count\": {{message}} })到$t(entity.playlistWithCount, {\"count\": {{numOfPlaylists}} })",
"title": "添加到$t(entity.playlist_one)",
"title": "添加到$t(entity.playlist, {\"count\": 1})",
"input_skipDuplicates": "跳过重复",
"input_playlists": "$t(entity.playlist_other)",
"create": "创建 $t(entity.playlist_one) {{playlist}}",
"searchOrCreate": "搜索 $t(entity.playlist_other) 或键入以创建一个新的"
"input_playlists": "$t(entity.playlist, {\"count\": 2})",
"create": "创建 $t(entity.playlist, {\"count\": 1}) {{playlist}}",
"searchOrCreate": "搜索 $t(entity.playlist, {\"count\": 2}) 或键入以创建一个新的"
},
"createPlaylist": {
"title": "创建$t(entity.playlist_one)",
"title": "创建$t(entity.playlist, {\"count\": 1})",
"input_public": "公开",
"success": "已成功创建 $t(entity.playlist_one)",
"success": "已成功创建 $t(entity.playlist, {\"count\": 1})",
"input_description": "$t(common.description)",
"input_name": "$t(common.name)",
"input_owner": "$t(common.owner)"
@@ -733,17 +936,22 @@
"queryEditor": {
"input_optionMatchAll": "匹配全部",
"input_optionMatchAny": "匹配任何",
"title": "查询编辑器"
"title": "查询编辑器",
"resetToDefault": "恢复默认值",
"clearFilters": "清除筛选",
"addRuleGroup": "添加规则组",
"removeRuleGroup": "移除规则组"
},
"editPlaylist": {
"title": "编辑$t(entity.playlist_one)",
"title": "编辑$t(entity.playlist, {\"count\": 1})",
"publicJellyfinNote": "Jellyfin 出于某种原因不会显示播放列表是否公开。如果您希望保持公开,请选择以下输入",
"success": "$t(entity.playlist_one)更新成功"
"success": "$t(entity.playlist, {\"count\": 1})更新成功",
"editNote": "不建议对大型播放列表进行手动编辑,你确定接受新播放列表覆盖已有播放列表可能导致的数据丢失风险吗?"
},
"lyricSearch": {
"title": "搜索歌词",
"input_name": "$t(common.name)",
"input_artist": "$t(entity.artist_one)"
"input_artist": "$t(entity.artist, {\"count\": 1})"
},
"shareItem": {
"expireInvalid": "过期时间必须是将来的时间",
@@ -751,12 +959,44 @@
"allowDownloading": "允许下载",
"description": "描述",
"setExpiration": "设置过期时间",
"success": "共享链接已复制到剪贴板(或单击此处打开)"
"success": "共享链接已复制到剪贴板(或单击此处打开)",
"copyToClipboard": "复制到剪贴板:Ctrl+CEnter",
"successMustClick": "分享创建成功。点击此处打开"
},
"privateMode": {
"enabled": "启用私人模式,播放状态现在对外部集成隐藏",
"disabled": "私人模式已禁用,播放状态现在对启用的外部集成可见",
"title": "私人模式"
},
"largeFetchConfirmation": {
"title": "将项目加入到播放列表",
"description": "此操作将添加当前筛选视图中的所有项目"
},
"createRadioStation": {
"input_homepageUrl": "首页地址",
"input_name": "名称",
"input_streamUrl": "串流地址",
"success": "电台创建成功",
"title": "创建广播电台"
},
"lyricsExport": {
"export": "导出歌词",
"input_synced": "导出同步歌词",
"input_offset": "$t(setting.lyricOffset)"
},
"saveQueue": {
"success": "播放列表已保存至服务器"
},
"shuffleAll": {
"title": "随机播放",
"input_genre": "$t(entity.genre, {\"count\": 1})",
"input_played_optionAll": "所有曲目",
"input_maxYear": "截止年份",
"input_minYear": "起始年份",
"input_played_optionUnplayed": "仅未播放的曲目",
"input_played_optionPlayed": "仅已播放的曲目",
"input_limit": "有多少首歌?",
"input_played": "播放筛选器"
}
},
"table": {
@@ -769,12 +1009,35 @@
"size": "$t(common.size)",
"itemGap": "项目间隙(px",
"itemSize": "项目大小 (px)",
"followCurrentSong": "关注当前播放的歌曲"
"followCurrentSong": "关注当前播放的歌曲",
"rowHoverHighlight": "鼠标悬停时高亮",
"pagination_itemsPerPage": "每页项目条数",
"itemsPerRow": "每行项目条数",
"pinToRight": "固定到右侧",
"size_default": "默认",
"size_compact": "紧凑",
"size_large": "松散",
"pagination": "分页",
"pagination_infinite": "无限滚动",
"pagination_paginate": "分页式",
"moveUp": "上移",
"moveDown": "下移",
"pinToLeft": "固定在左侧",
"alignLeft": "左对齐",
"alignCenter": "居中对齐",
"alignRight": "右对齐",
"alternateRowColors": "隔行填色",
"advancedSettings": "高级设置",
"autosize": "自动调整大小",
"horizontalBorders": "行边框",
"verticalBorders": "列边框",
"showHeader": "显示标题"
},
"view": {
"table": "表格",
"grid": "网格",
"list": "列表"
"list": "列表",
"detail": "详情"
},
"label": {
"releaseDate": "发布日期",
@@ -787,24 +1050,32 @@
"trackNumber": "音轨编号",
"rowIndex": "行索引",
"rating": "$t(common.rating)",
"artist": "$t(entity.artist_one)",
"album": "$t(entity.album_one)",
"artist": "$t(entity.artist, {\"count\": 1})",
"album": "$t(entity.album, {\"count\": 1})",
"note": "$t(common.note)",
"biography": "$t(common.biography)",
"owner": "$t(common.owner)",
"path": "$t(common.path)",
"channels": "$t(common.channel_other)",
"channels": "$t(common.channel, {\"count\": 2})",
"playCount": "播放次数",
"bitrate": "$t(common.bitrate)",
"actions": "$t(common.action_other)",
"genre": "$t(entity.genre_one)",
"actions": "$t(common.action, {\"count\": 2})",
"genre": "$t(entity.genre, {\"count\": 1})",
"discNumber": "碟片编号",
"favorite": "$t(common.favorite)",
"year": "$t(common.year)",
"albumArtist": "$t(entity.albumArtist_one)",
"albumArtist": "$t(entity.albumArtist, {\"count\": 1})",
"titleCombined": "$t(common.title)(合并)",
"codec": "$t(common.codec)",
"songCount": "$t(entity.track_other)"
"songCount": "$t(entity.track, {\"count\": 2})",
"albumCount": "$t(entity.album, {\"count\": 2})",
"image": "图片",
"bitDepth": "$t(common.bitDepth)",
"sampleRate": "$t(common.sampleRate)",
"genreBadge": "$t(entity.genre, {\"count\": 1})(徽章)",
"composer": "作曲家",
"titleArtist": "$t(common.title) (艺术家)",
"albumGroup": "专辑分组"
}
},
"column": {
@@ -813,7 +1084,7 @@
"rating": "评分",
"favorite": "收藏",
"playCount": "播放次数",
"albumCount": "$t(entity.album_other)",
"albumCount": "$t(entity.album, {\"count\": 2})",
"releaseYear": "年份",
"lastPlayed": "最后播放",
"biography": "简介",
@@ -822,16 +1093,19 @@
"title": "标题",
"bpm": "bpm",
"dateAdded": "添加日期",
"artist": "$t(entity.artist_one)",
"songCount": "$t(entity.track_other)",
"artist": "$t(entity.artist, {\"count\": 1})",
"songCount": "$t(entity.track, {\"count\": 2})",
"trackNumber": "音轨编号",
"genre": "$t(entity.genre_one)",
"genre": "$t(entity.genre, {\"count\": 1})",
"albumArtist": "专辑艺术家",
"path": "路径",
"channels": "$t(common.channel_other)",
"channels": "$t(common.channel, {\"count\": 2})",
"discNumber": "碟片",
"size": "$t(common.size)",
"codec": "$t(common.codec)"
"codec": "$t(common.codec)",
"owner": "所有者",
"bitDepth": "$t(common.bitDepth)",
"sampleRate": "$t(common.sampleRate)"
}
},
"dragDropZone": {
@@ -841,8 +1115,25 @@
},
"releaseType": {
"primary": {
"album": "$t(entity.album_one)",
"broadcast": "播送"
"album": "$t(entity.album, {\"count\": 1})",
"broadcast": "播送",
"ep": "迷你专辑(EP",
"single": "单曲",
"other": "其他"
},
"secondary": {
"audiobook": "有声读物",
"compilation": "合辑",
"demo": "样本唱片(Demo",
"interview": "访谈",
"live": "现场表演(Live",
"mixtape": "混音专辑",
"remix": "再混音(Remix",
"soundtrack": "原声带",
"audioDrama": "广播剧",
"djMix": "DJ混音",
"fieldRecording": "现场录制",
"spokenWord": "访谈"
}
},
"filterOperator": {
@@ -850,6 +1141,179 @@
"afterDate": "晚于(日期)",
"before": "之前",
"beforeDate": "早于(日期)",
"contains": "包含"
"contains": "包含",
"endsWith": "以…结尾",
"inPlaylist": "在…中",
"inTheRange": "在范围内",
"inTheLast": "在最后",
"is": "是",
"isNot": "不是",
"isGreaterThan": "大于",
"isLessThan": "小于",
"matchesRegex": "匹配正则表达式",
"notContains": "不包含",
"startsWith": "以…开头",
"inTheRangeDate": "在(日期)范围内",
"notInPlaylist": "不在…中",
"notInTheLast": "不在最后"
},
"datetime": {
"minuteShort": "分",
"secondShort": "秒",
"hourShort": "小时",
"dayShort": "天"
},
"visualizer": {
"configPasteFailed": "应用配置失败,请检查配置格式。",
"configPasteReadFailed": "读取剪贴板失败",
"configCopyFailed": "复制设置失败",
"configCopied": "已复制设置到剪贴板",
"pasteConfigurationPlaceholder": "将JSON配置粘贴到此处…",
"addCustomGradient": "添加自定义渐变",
"presetNamePlaceholder": "输入预设名称",
"configPasted": "成功应用配置",
"pasteFromClipboard": "从剪贴板粘贴",
"saveAsPreset": "保存为预设",
"customGradients": "自定义渐变",
"showFPS": "显示帧率(FPS",
"presets": "预设",
"general": "普通",
"mode": "模式",
"visualizerType": "可视化器效果类型",
"selectPreset": "选择预设",
"applyPreset": "应用预设",
"updatePreset": "更新预设",
"copyConfiguration": "复制配置",
"pasteConfiguration": "粘贴配置",
"applyConfiguration": "应用配置",
"presetName": "预设名称",
"mode1To8": "模式 1 - 8",
"mode10": "模式 10",
"fillAlpha": "填充透明度",
"lineWidth": "线宽",
"maxFPS": "最大帧率(FPS",
"opacity": "不透明度",
"gradientName": "渐变名称",
"gradientNamePlaceholder": "渐变名称",
"vertical": "垂直",
"horizontal": "水平",
"addColor": "添加颜色",
"position": "位置",
"cycleTime": "循环时间(秒)",
"channelLayout": "声道布局",
"remove": "移除",
"pasteGradientPlaceholder": "在此处粘贴颜色渐变的配置JSON…",
"pasteGradient": "粘贴颜色渐变配置",
"custom": "自定义",
"builtIn": "内置",
"colors": "颜色",
"gradient": "渐变",
"miscellaneousSettings": "杂项设置",
"options": {
"channelLayout": {
"single": "单项",
"dualCombined": "Dual-Combined",
"dualHorizontal": "Dual-Horizontal",
"dualVertical": "Dual-Vertical"
},
"mode": {
"0": "[0] 离散频率",
"1": "[1] 1/24th octave / 240 bands",
"2": "[2] 1/12th octave / 120 bands",
"3": "[3] 1/8th octave / 80 bands",
"4": "[4] 1/6th octave / 60 bands",
"5": "[5] 1/4th octave / 40 bands",
"6": "[6] 1/3rd octave / 30 bands",
"7": "[7] Half octave / 20 bands",
"8": "[8] Full octave / 10 bands",
"10": "[10] Line / Area graph"
},
"colorMode": {
"gradient": "渐变",
"barIndex": "Bar-Index",
"barLevel": "Bar-Level"
},
"gradient": {
"classic": "经典",
"prism": "棱镜",
"rainbow": "彩虹",
"steelblue": "钢蓝色",
"orangered": "橙红色"
},
"frequencyScale": {
"none": "无",
"bark": "Bark Scale",
"linear": "Linear Scale",
"log": "Log Scale",
"mel": "Mel Scale"
},
"weightingFilter": {
"none": "无",
"a": "A",
"b": "B",
"c": "C",
"d": "D",
"z": "Z"
}
},
"cyclePresets": "循环预设",
"includeAllPresets": "包含所有预设",
"ignoredPresets": "忽略预设",
"selectedPresets": "已选预设",
"randomizeNextPreset": "随机化下一个预设",
"blendTime": "混合时间",
"barSpace": "住间距",
"colorStops": "颜色停止",
"level": "等级",
"colorMode": "颜色模式",
"gradientLeft": "左侧渐变",
"gradientRight": "右侧渐变",
"fft": "FFT",
"fftSize": "FFT 大小",
"smoothing": "平滑",
"frequencyRangeAndScaling": "频率范围和缩放",
"minimumFrequency": "最低频率",
"maximumFrequency": "最大频率",
"frequencyScale": "频率尺度",
"sensitivity": "灵敏度",
"weightingFilter": "加权滤波器",
"minimumDecibels": "最低分贝",
"maximumDecibels": "最大分贝",
"linearAmplitude": "线性振幅",
"linearBoost": "线性增强",
"peakBehavior": "峰值行为",
"showPeaks": "显示峰值",
"fadePeaks": "峰值淡出",
"peakLine": "峰值线条",
"gravity": "重力",
"peakFadeTime": "峰值淡出时间(毫秒)",
"peakHoldTime": "峰值保持时间(毫秒)",
"radialSpectrum": "圆形频谱",
"radial": "径向",
"radialInvert": "径向反转",
"spinSpeed": "旋转速度",
"radius": "半径",
"reflexMirror": "反射镜",
"reflexFit": "反射贴合",
"reflexRatio": "反射比率",
"reflexAlpha": "反射Alpha",
"reflexBrightness": "反射亮度",
"mirror": "镜像",
"lowResolution": "低分辨率",
"splitGradient": "渐变分割",
"showScaleX": "显示比例尺 X",
"noteLabels": "笔记标签",
"showScaleY": "显示比例尺 Y",
"alphaBars": "Alpha Bars",
"ansiBands": "ANSI Bands",
"ledBars": "LED Bars",
"trueLeds": "True LEDs",
"lumiBars": "Lumi Bars",
"outlineBars": "Outline Bars",
"roundBars": "Round Bars"
},
"queryBuilder": {
"standardTags": "标准标签",
"customTags": "自定义标签"
}
}
File diff suppressed because it is too large Load Diff
+4 -5
View File
@@ -100,7 +100,7 @@ export async function getLyricsBySongId(url: string): Promise<null | string> {
try {
result = await axios.get<string>(url, { responseType: 'text' });
} catch (e) {
console.error('Genius lyrics request got an error!', e);
console.error('Genius lyrics request got an error!', (e as Error)?.message);
return null;
}
@@ -138,7 +138,7 @@ export async function getSearchResults(
},
});
} catch (e) {
console.error('Genius search request got an error!', e);
console.error('Genius search request got an error!', (e as Error)?.message);
return null;
}
@@ -150,6 +150,7 @@ export async function getSearchResults(
return {
artist: song.artist_names,
id: song.url,
isSync: null,
name: song.full_title,
source: LyricSource.GENIUS,
};
@@ -163,13 +164,11 @@ export async function query(
): Promise<InternetProviderLyricResponse | null> {
const response = await getSongId(params);
if (!response) {
console.error('Could not find the song on Genius!');
return null;
}
const lyrics = await getLyricsBySongId(response.id);
if (!lyrics) {
console.error('Could not get lyrics on Genius!');
return null;
}
@@ -194,7 +193,7 @@ async function getSongId(
},
});
} catch (e) {
console.error('Genius search request got an error!', e);
console.error('Genius search request got an error!', (e as Error)?.message);
return null;
}
+94 -62
View File
@@ -1,21 +1,10 @@
import { ipcMain } from 'electron';
import { store } from '../settings';
import {
getLyricsBySongId as getGenius,
query as queryGenius,
getSearchResults as searchGenius,
} from './genius';
import {
getLyricsBySongId as getLrcLib,
query as queryLrclib,
getSearchResults as searchLrcLib,
} from './lrclib';
import {
getLyricsBySongId as getNetease,
query as queryNetease,
getSearchResults as searchNetease,
} from './netease';
import { getLyricsBySongId as getGenius, getSearchResults as searchGenius } from './genius';
import { getLyricsBySongId as getLrcLib, getSearchResults as searchLrcLib } from './lrclib';
import { getLyricsBySongId as getNetease, getSearchResults as searchNetease } from './netease';
import { orderSearchResults } from './shared';
import { Song } from '/@/shared/types/domain-types';
@@ -42,6 +31,7 @@ export type InternetProviderLyricResponse = {
export type InternetProviderLyricSearchResponse = {
artist: string;
id: string;
isSync: boolean | null;
name: string;
score?: number;
source: LyricSource;
@@ -72,14 +62,6 @@ type SearchFetcher = (
params: LyricSearchQuery,
) => Promise<InternetProviderLyricSearchResponse[] | null>;
type SongFetcher = (params: LyricSearchQuery) => Promise<InternetProviderLyricResponse | null>;
const FETCHERS: Record<LyricSource, SongFetcher> = {
[LyricSource.GENIUS]: queryGenius,
[LyricSource.LRCLIB]: queryLrclib,
[LyricSource.NETEASE]: queryNetease,
};
const SEARCH_FETCHERS: Record<LyricSource, SearchFetcher> = {
[LyricSource.GENIUS]: searchGenius,
[LyricSource.LRCLIB]: searchLrcLib,
@@ -96,6 +78,30 @@ const MAX_CACHED_ITEMS = 10;
const lyricCache = new Map<string, CachedLyrics>();
const searchAllSources = async (
params: LyricSearchQuery,
): Promise<InternetProviderLyricSearchResponse[]> => {
const sources = store.get('lyrics', []) as LyricSource[];
const searchPromises = sources.map((source) =>
SEARCH_FETCHERS[source](params).then((searchResults) => ({ searchResults, source })),
);
const settled = await Promise.allSettled(searchPromises);
const allSearchResults: InternetProviderLyricSearchResponse[] = [];
for (const result of settled) {
if (result.status === 'fulfilled' && result.value.searchResults) {
allSearchResults.push(...result.value.searchResults);
} else if (result.status === 'rejected') {
const index = settled.indexOf(result);
console.error(`Error searching ${sources[index]} for lyrics:`, result.reason);
}
}
return allSearchResults;
};
const getRemoteLyrics = async (song: Song) => {
const sources = store.get('lyrics', []) as LyricSource[];
@@ -108,61 +114,87 @@ const getRemoteLyrics = async (song: Song) => {
}
}
const params: LyricSearchQuery = {
album: song.album || song.name,
artist: song.artists[0].name,
duration: song.duration / 1000.0,
name: song.name,
};
const allSearchResults = await searchAllSources(params);
if (allSearchResults.length === 0) {
return null;
}
const rankedResults = orderSearchResults({
params,
results: allSearchResults,
});
const bestMatch = rankedResults[0];
if (!bestMatch) {
return null;
}
// Score is 0-1 where 0 = perfect match, 1 = worst match
const matchThreshold = 0.55;
const matchScore = bestMatch.score ?? 1;
if (matchScore > matchThreshold) {
return null;
}
let lyricsFromSource: InternetProviderLyricResponse | null = null;
for (const source of sources) {
const params = {
album: song.album || song.name,
artist: song.artists[0].name,
duration: song.duration / 1000.0,
name: song.name,
};
const response = await FETCHERS[source](params as unknown as LyricSearchQuery);
if (response) {
const newResult = cached
? {
...cached,
[source]: response,
}
: ({ [source]: response } as CachedLyrics);
if (lyricCache.size === MAX_CACHED_ITEMS && cached === undefined) {
const toRemove = lyricCache.keys().next().value;
if (toRemove) {
lyricCache.delete(toRemove);
}
}
lyricCache.set(song.id.toString(), newResult);
lyricsFromSource = response;
break;
try {
const lyrics = await GET_FETCHERS[bestMatch.source](bestMatch.id);
if (lyrics) {
lyricsFromSource = {
artist: bestMatch.artist,
id: bestMatch.id,
lyrics,
name: bestMatch.name,
source: bestMatch.source,
};
}
} catch (error) {
console.error(`Error fetching lyrics from ${bestMatch.source}:`, error);
}
if (lyricsFromSource) {
const newResult = cached
? {
...cached,
[lyricsFromSource.source]: lyricsFromSource,
}
: ({ [lyricsFromSource.source]: lyricsFromSource } as CachedLyrics);
if (lyricCache.size === MAX_CACHED_ITEMS && cached === undefined) {
const toRemove = lyricCache.keys().next().value;
if (toRemove) {
lyricCache.delete(toRemove);
}
}
lyricCache.set(song.id.toString(), newResult);
}
return lyricsFromSource;
};
const searchRemoteLyrics = async (params: LyricSearchQuery) => {
const sources = store.get('lyrics', []) as LyricSource[];
const allSearchResults = await searchAllSources(params);
const results: Record<LyricSource, InternetProviderLyricSearchResponse[]> = {
[LyricSource.GENIUS]: [],
[LyricSource.LRCLIB]: [],
[LyricSource.NETEASE]: [],
};
for (const source of sources) {
const response = await SEARCH_FETCHERS[source](params);
if (response) {
response.forEach((result) => {
results[source].push(result);
});
}
for (const item of allSearchResults) {
results[item.source].push(item);
}
return results;
};
+8 -4
View File
@@ -17,8 +17,12 @@ const TIMEOUT_MS = 5000;
export interface LrcLibSearchResponse {
albumName: string;
artistName: string;
duration?: number;
id: number;
instrumental?: boolean;
name: string;
plainLyrics: null | string;
syncedLyrics: null | string;
}
export interface LrcLibTrackResponse {
@@ -42,7 +46,7 @@ export async function getLyricsBySongId(songId: string): Promise<null | string>
try {
result = await axios.get<LrcLibTrackResponse>(`${FETCH_URL}/${songId}`);
} catch (e) {
console.error('LrcLib lyrics request got an error!', e);
console.error('LrcLib lyrics request got an error!', (e as Error)?.message);
return null;
}
@@ -65,7 +69,7 @@ export async function getSearchResults(
},
});
} catch (e) {
console.error('LrcLib search request got an error!', e);
console.error('LrcLib search request got an error!', (e as Error)?.message);
return null;
}
@@ -75,6 +79,7 @@ export async function getSearchResults(
return {
artist: song.artistName,
id: String(song.id),
isSync: song.syncedLyrics ? true : false,
name: song.name,
source: LyricSource.LRCLIB,
};
@@ -102,14 +107,13 @@ export async function query(
timeout: TIMEOUT_MS,
});
} catch (e) {
console.error('LrcLib search request got an error!', e);
console.error('LrcLib search request got an error!', (e as Error).message);
return null;
}
const lyrics = result.data.syncedLyrics || result.data.plainLyrics || null;
if (!lyrics) {
console.error(`Could not get lyrics on LrcLib!`);
return null;
}
+1 -2
View File
@@ -128,6 +128,7 @@ export async function getSearchResults(
return {
artist,
id: String(song.id),
isSync: null,
name: song.name,
source: LyricSource.NETEASE,
};
@@ -141,13 +142,11 @@ export async function query(
): Promise<InternetProviderLyricResponse | null> {
const lyricsMatch = await getMatchedLyrics(params);
if (!lyricsMatch) {
console.error('Could not find the song on NetEase!');
return null;
}
const lyrics = await getLyricsBySongId(lyricsMatch.id);
if (!lyrics) {
console.error('Could not get lyrics on NetEase!');
return null;
}
+69 -8
View File
@@ -1,4 +1,4 @@
import Fuse, { IFuseOptions } from 'fuse.js';
import Fuse, { FuseResult, IFuseOptions } from 'fuse.js';
import {
InternetProviderLyricSearchResponse,
@@ -15,20 +15,81 @@ export const orderSearchResults = (args: {
fieldNormWeight: 1,
includeScore: true,
keys: [
{ getFn: (song) => song.name, name: 'name', weight: 3 },
{ getFn: (song) => song.artist, name: 'artist' },
{ getFn: (song) => song.name, name: 'name', weight: 2 },
{ getFn: (song) => song.artist, name: 'artist', weight: 2 },
],
threshold: 1.0,
threshold: 0.6,
};
const fuse = new Fuse(results, options);
const searchResults = fuse.search<InternetProviderLyricSearchResponse>({
...(params.artist && { artist: params.artist }),
...(params.name && { name: params.name }),
let searchResults: Array<FuseResult<InternetProviderLyricSearchResponse>>;
if (params.artist && params.name) {
const artistFuse = new Fuse(results, {
includeScore: true,
keys: [{ getFn: (song) => song.artist, name: 'artist' }],
threshold: 0.6,
});
const nameFuse = new Fuse(results, {
includeScore: true,
keys: [{ getFn: (song) => song.name, name: 'name' }],
threshold: 0.6,
});
const artistResults = artistFuse.search(params.artist);
const nameResults = nameFuse.search(params.name);
const artistScores = new Map(artistResults.map((r) => [r.item.id, r.score ?? 1]));
const nameScores = new Map(nameResults.map((r) => [r.item.id, r.score ?? 1]));
const combinedResults = new Map<string, FuseResult<InternetProviderLyricSearchResponse>>();
artistResults.forEach((result) => {
const nameScore = nameScores.get(result.item.id);
if (nameScore !== undefined) {
const combinedScore = Math.max(result.score ?? 1, nameScore);
combinedResults.set(result.item.id, {
...result,
score: combinedScore,
});
}
});
nameResults.forEach((result) => {
if (!combinedResults.has(result.item.id)) {
const artistScore = artistScores.get(result.item.id);
if (artistScore !== undefined) {
const combinedScore = Math.max(result.score ?? 1, artistScore);
combinedResults.set(result.item.id, {
...result,
score: combinedScore,
});
}
}
});
searchResults = Array.from(combinedResults.values());
} else {
searchResults = fuse.search<InternetProviderLyricSearchResponse>({
...(params.artist && { artist: params.artist }),
...(params.name && { name: params.name }),
});
}
const sortedResults = searchResults.sort((a, b) => {
const aIsSync = a.item.isSync === true ? 1 : 0;
const bIsSync = b.item.isSync === true ? 1 : 0;
if (aIsSync !== bIsSync) {
return bIsSync - aIsSync;
}
return (a.score || 0) - (b.score || 0);
});
return searchResults.map((result) => ({
return sortedResults.map((result) => ({
...result.item,
score: result.score,
}));
+62 -1
View File
@@ -116,11 +116,15 @@ const createMpv = async (data: {
mpv.on('status', (status) => {
if (status.property === 'playlist-pos') {
// mpv uses playlist-pos = -1 when nothing is playing (ended, cleared, load failure, etc).
if (status.value === -1) {
mpv?.pause();
return;
}
if (status.value !== 0) {
// In our 2-item queue model, playlist-pos should normally be 0.
// When mpv auto-advances to the next track it becomes > 0 (typically 1).
if (typeof status.value === 'number' && status.value > 0) {
getMainWindow()?.webContents.send('renderer-player-auto-next');
}
}
@@ -525,6 +529,63 @@ ipcMain.handle(
},
);
ipcMain.handle(
'player-get-audio-devices',
async (): Promise<{ label: string; value: string }[]> => {
try {
const instance = getMpvInstance();
let tempInstance: MpvAPI | null = null;
let mpvToUse: MpvAPI | null = null;
if (instance && instance.isRunning()) {
mpvToUse = instance;
} else {
try {
tempInstance = await createMpv({});
mpvToUse = tempInstance;
} catch (err: any | NodeMpvError) {
mpvLog(
{ action: 'Failed to create temporary MPV instance for audio device list' },
err,
);
return [];
}
}
try {
const deviceList = await mpvToUse.getProperty('audio-device-list');
if (!deviceList || !Array.isArray(deviceList)) {
return [];
}
const devices = deviceList.map((device: any) => {
const name = device.name || device.description || 'Unknown Device';
const description = device.description || '';
const label = description ? `${name} (${description})` : name;
return {
label,
value: name,
};
});
return devices;
} finally {
if (tempInstance && tempInstance !== instance) {
try {
await quit(tempInstance);
} catch {
// Ignore
}
}
}
} catch (err: any | NodeMpvError) {
mpvLog({ action: 'Failed to get audio devices' }, err);
return [];
}
},
);
enum MpvState {
STARTED,
IN_PROGRESS,
+4 -1
View File
@@ -620,8 +620,11 @@ ipcMain.on('update-playback', (_event, status: PlayerStatus) => {
broadcast({ data: status, event: 'playback' });
});
ipcMain.on('update-song', (_event, song: QueueSong | undefined) => {
ipcMain.on('update-song', (_event, song: QueueSong | undefined, imageUrl?: null | string) => {
const songChanged = song?.id !== currentState.song?.id;
if (song) {
song.imageUrl = imageUrl || null;
}
currentState.song = song;
if (songChanged) {
+16 -2
View File
@@ -1,7 +1,8 @@
import type { TitleTheme } from '/@/shared/types/types';
import { dialog, ipcMain, nativeTheme, OpenDialogOptions, safeStorage } from 'electron';
import { app, dialog, ipcMain, nativeTheme, OpenDialogOptions, safeStorage } from 'electron';
import Store from 'electron-store';
import path from 'path';
const getFrame = () => {
const isWindows = process.platform === 'win32';
@@ -18,14 +19,23 @@ const getFrame = () => {
return 'linux';
};
const isDevelopment = process.env.NODE_ENV === 'development';
const defaultUserDataPath = app.getPath('userData');
const storePath = isDevelopment
? path.normalize(`${defaultUserDataPath}-dev`)
: path.normalize(defaultUserDataPath);
export const store = new Store<any>({
beforeEachMigration: (_store, context) => {
console.log(`settings migrate from ${context.fromVersion}${context.toVersion}`);
},
cwd: storePath,
defaults: {
disable_auto_updates: false,
enableNeteaseTranslation: false,
global_media_hotkeys: true,
lyrics: ['NetEase', 'lrclib.net'],
mediaSession: false,
playbackType: 'web',
should_prompt_accessibility: true,
@@ -51,7 +61,11 @@ ipcMain.handle('settings-get', (_event, data: { property: string }) => {
});
ipcMain.on('settings-set', (__event, data: { property: string; value: any }) => {
store.set(`${data.property}`, data.value);
if (data.value === undefined) {
store.delete(data.property);
} else {
store.set(data.property, data.value);
}
});
ipcMain.handle('password-get', (_event, server: string): null | string => {
+57
View File
@@ -0,0 +1,57 @@
import { app, ipcMain, Menu } from 'electron';
import { getMainWindow } from '/@/main/index';
import { PlayerStatus } from '/@/shared/types/types';
let currentStatus: PlayerStatus = PlayerStatus.PAUSED;
const updateDockMenu = () => {
if (!app.dock) return;
const isPlaying = currentStatus === PlayerStatus.PLAYING;
const dockMenu = Menu.buildFromTemplate([
{
click: () => {
getMainWindow()?.webContents.send('renderer-player-play-pause');
},
label: isPlaying ? 'Pause' : 'Play',
},
{
type: 'separator',
},
{
click: () => {
getMainWindow()?.webContents.send('renderer-player-next');
},
label: 'Next',
},
{
click: () => {
getMainWindow()?.webContents.send('renderer-player-previous');
},
label: 'Previous',
},
{
type: 'separator',
},
{
click: () => {
getMainWindow()?.webContents.send('renderer-player-stop');
},
label: 'Stop',
},
]);
app.dock.setMenu(dockMenu);
};
ipcMain.on('update-playback', (_event, status: PlayerStatus) => {
currentStatus = status;
updateDockMenu();
});
// Initialize dock menu after app is ready
app.whenReady().then(() => {
updateDockMenu();
});
+1
View File
@@ -0,0 +1 @@
import './dock-menu';
+296 -40
View File
@@ -1,3 +1,5 @@
import type { UpdateCheckResult } from 'electron-updater';
import { is } from '@electron-toolkit/utils';
import {
app,
@@ -18,9 +20,10 @@ import {
} from 'electron';
import electronLocalShortcut from 'electron-localshortcut';
import log from 'electron-log/main';
import { autoUpdater } from 'electron-updater';
import { AppImageUpdater, autoUpdater, MacUpdater, NsisUpdater } from 'electron-updater';
import { access, constants } from 'fs';
import path, { join } from 'path';
import semver from 'semver';
import packageJson from '../../package.json';
import { disableMediaKeys, enableMediaKeys } from './features/core/player/media-keys';
@@ -40,40 +43,219 @@ import './features';
import { PlayerType, TitleTheme } from '/@/shared/types/types';
export default class AppUpdater {
const ALPHA_UPDATER_CONFIG: {
bucket: string;
channel: string;
endpoint: string;
provider: 's3';
} = {
bucket: '',
channel: 'alpha',
endpoint: 'https://feishin-nightly-bucket.jeffvli.org',
provider: 's3',
};
const GITHUB_UPDATER_CONFIG = {
owner: 'jeffvli',
provider: 'github' as const,
repo: 'feishin',
};
type UpdaterInstance = AppImageUpdater | MacUpdater | NsisUpdater | typeof autoUpdater;
class AppUpdater {
constructor() {
log.transports.file.level = 'info';
autoUpdater.logger = autoUpdaterLogInterface;
const isBetaVersion = packageJson.version.includes('-beta');
const releaseChannel = store.get('release_channel');
const isNotConfigured = !releaseChannel;
console.log('Release channel: ', releaseChannel);
console.log('Is beta version: ', isBetaVersion);
if (isNotConfigured) {
console.log(
'Release channel not configured, setting to ',
isBetaVersion ? 'beta' : 'latest',
);
store.set('release_channel', isBetaVersion ? 'beta' : 'latest');
const effectiveChannel = store.get('release_channel') as string;
console.log('Effective update channel:', effectiveChannel);
if (effectiveChannel === 'alpha') {
checkAllChannelsAndGetBest().then(({ result, updater: updaterInstance }) => {
updaterInstance.autoInstallOnAppQuit = true;
updaterInstance.autoRunAppAfterInstall = true;
if (isMacOS()) {
if (result?.isUpdateAvailable) {
getMainWindow()?.webContents.send(
'update-available',
result.updateInfo.version,
);
}
} else {
updaterInstance.checkForUpdatesAndNotify();
}
});
return;
}
if (releaseChannel === 'beta') {
autoUpdater.channel = 'beta';
autoUpdater.allowPrerelease = true;
autoUpdater.disableDifferentialDownload = true;
} else if (releaseChannel === 'latest') {
autoUpdater.channel = 'latest';
autoUpdater.allowDowngrade = true;
autoUpdater.allowPrerelease = false;
configureAndGetUpdater();
if (isMacOS()) {
autoUpdater.autoDownload = false;
autoUpdater
.checkForUpdates()
.then((result) => {
if (result?.isUpdateAvailable) {
getMainWindow()?.webContents.send(
'update-available',
result.updateInfo.version,
);
}
})
.catch((err) => console.error('Check for updates failed', err));
} else {
autoUpdater.checkForUpdatesAndNotify();
}
autoUpdater.checkForUpdatesAndNotify();
}
}
// When release channel is alpha, check alpha and latest for updates and return
// the updater + result for the newest version found (so alpha users can receive
// latest updates when they are newer than the current alpha).
async function checkAllChannelsAndGetBest(): Promise<{
result: null | UpdateCheckResult;
updater: UpdaterInstance;
}> {
const currentVersion = packageJson.version;
const candidates: Array<{
channel: 'alpha' | 'beta' | 'latest';
result: UpdateCheckResult;
updater: UpdaterInstance;
}> = [];
const alphaUpdater = createAlphaUpdaterInstance();
alphaUpdater.logger = autoUpdaterLogInterface;
alphaUpdater.channel = ALPHA_UPDATER_CONFIG.channel;
alphaUpdater.allowPrerelease = true;
alphaUpdater.disableDifferentialDownload = true;
alphaUpdater.allowDowngrade = true;
try {
console.log('Checking for updates on alpha channel');
const alphaResult = await alphaUpdater.checkForUpdates();
if (
alphaResult?.updateInfo?.version &&
alphaResult.isUpdateAvailable &&
semver.valid(alphaResult.updateInfo.version) &&
semver.gt(alphaResult.updateInfo.version, currentVersion)
) {
candidates.push({ channel: 'alpha', result: alphaResult, updater: alphaUpdater });
}
} catch (e) {
log.warn('Alpha channel check failed', e);
}
try {
autoUpdater.setFeedURL(GITHUB_UPDATER_CONFIG);
configureAutoUpdaterForChannel('latest');
console.log('Checking for updates on latest channel (GitHub)');
const latestResult = await autoUpdater.checkForUpdates();
if (
latestResult?.updateInfo?.version &&
latestResult.isUpdateAvailable &&
semver.valid(latestResult.updateInfo.version) &&
semver.gt(latestResult.updateInfo.version, currentVersion)
) {
candidates.push({ channel: 'latest', result: latestResult, updater: autoUpdater });
}
} catch (e) {
log.warn('Latest channel check failed', e);
}
if (candidates.length === 0) {
return { result: null, updater: alphaUpdater };
}
const best = candidates.reduce((a, b) =>
semver.gt(a.result.updateInfo.version, b.result.updateInfo.version) ? a : b,
);
if (best.channel === 'latest') {
configureAutoUpdaterForChannel('latest');
}
return { result: best.result, updater: best.updater };
}
function configureAndGetUpdater(): UpdaterInstance {
const isBetaVersion = packageJson.version.includes('-beta');
const isAlphaVersion = packageJson.version.includes('-alpha');
let releaseChannel = store.get('release_channel');
const isNotConfigured = !releaseChannel;
console.log('Release channel:', releaseChannel);
console.log('Is beta version:', isBetaVersion);
console.log('Is alpha version:', isAlphaVersion);
console.log('Is not configured:', isNotConfigured);
if (isNotConfigured) {
console.log('Release channel not configured, setting default channel');
const defaultChannel = isAlphaVersion ? 'alpha' : isBetaVersion ? 'beta' : 'latest';
store.set('release_channel', defaultChannel);
releaseChannel = defaultChannel;
}
const effectiveChannel = store.get('release_channel') as string;
if (effectiveChannel === 'alpha') {
const updater = createAlphaUpdaterInstance();
log.transports.file.level = 'info';
updater.logger = autoUpdaterLogInterface;
updater.channel = ALPHA_UPDATER_CONFIG.channel;
updater.allowPrerelease = true;
updater.disableDifferentialDownload = true;
updater.allowDowngrade = true;
updater.autoInstallOnAppQuit = true;
updater.autoRunAppAfterInstall = true;
return updater;
}
log.transports.file.level = 'info';
autoUpdater.logger = autoUpdaterLogInterface;
autoUpdater.autoInstallOnAppQuit = true;
autoUpdater.autoRunAppAfterInstall = true;
if (effectiveChannel === 'beta') {
autoUpdater.channel = 'beta';
autoUpdater.allowDowngrade = true;
autoUpdater.allowPrerelease = true;
autoUpdater.disableDifferentialDownload = true;
} else {
autoUpdater.channel = 'latest';
autoUpdater.allowPrerelease = false;
}
return autoUpdater;
}
/**
* Configures the global autoUpdater for a specific GitHub channel (beta or latest).
* Used when checking multiple channels or when the winning channel is beta/latest.
*/
function configureAutoUpdaterForChannel(channel: 'beta' | 'latest'): void {
log.transports.file.level = 'info';
autoUpdater.logger = autoUpdaterLogInterface;
autoUpdater.autoInstallOnAppQuit = true;
autoUpdater.autoRunAppAfterInstall = true;
if (channel === 'beta') {
autoUpdater.channel = 'beta';
autoUpdater.allowDowngrade = true;
autoUpdater.allowPrerelease = true;
autoUpdater.disableDifferentialDownload = true;
} else {
autoUpdater.channel = 'latest';
autoUpdater.allowPrerelease = false;
}
}
function createAlphaUpdaterInstance(): AppImageUpdater | MacUpdater | NsisUpdater {
if (isMacOS()) {
return new MacUpdater(ALPHA_UPDATER_CONFIG);
}
if (isLinux()) {
return new AppImageUpdater(ALPHA_UPDATER_CONFIG);
}
return new NsisUpdater(ALPHA_UPDATER_CONFIG);
}
protocol.registerSchemesAsPrivileged([{ privileges: { bypassCSP: true }, scheme: 'feishin' }]);
process.on('uncaughtException', (error: any) => {
@@ -126,7 +308,9 @@ const installExtensions = async () => {
type: 'info',
});
})
.catch(console.error);
.catch(() => {
// Ignore
});
});
};
@@ -185,13 +369,21 @@ const createWinThumbarButtons = () => {
};
const createTray = () => {
let trayIcon: Electron.NativeImage | string;
if (isMacOS()) {
return;
const iconPath = getAssetPath('icons/IconTemplate.png');
const icon = nativeImage.createFromPath(iconPath);
icon.setTemplateImage(true);
trayIcon = icon;
} else if (isLinux()) {
trayIcon = getAssetPath('icons/icon.png');
} else {
trayIcon = getAssetPath('icons/icon.ico');
}
tray = isLinux()
? new Tray(getAssetPath('icons/icon.png'))
: new Tray(getAssetPath('icons/icon.ico'));
tray = new Tray(trayIcon);
const contextMenu = Menu.buildFromTemplate([
{
click: () => {
@@ -222,8 +414,11 @@ const createTray = () => {
},
{
click: () => {
mainWindow?.show();
createWinThumbarButtons();
if (mainWindow === null) createWindow(false);
else {
mainWindow.show();
createWinThumbarButtons();
}
},
label: 'Open main window',
},
@@ -237,8 +432,17 @@ const createTray = () => {
]);
tray.on('click', () => {
mainWindow?.show();
createWinThumbarButtons();
if (store.get('window_minimize_to_tray')) {
if (mainWindow?.isVisible()) {
mainWindow?.hide();
} else {
mainWindow?.show();
createWinThumbarButtons();
}
} else {
mainWindow?.show();
createWinThumbarButtons();
}
});
tray.setToolTip('Feishin');
@@ -275,8 +479,8 @@ async function createWindow(first = true): Promise<void> {
autoHideMenuBar: true,
frame: false,
height: 900,
icon: getAssetPath('icons/icon.png'),
minHeight: 640,
icon: isWindows() ? getAssetPath('icons/icon.ico') : getAssetPath('icons/icon.png'),
minHeight: 120,
minWidth: 480,
show: false,
webPreferences: {
@@ -349,6 +553,54 @@ async function createWindow(first = true): Promise<void> {
return mainWindow?.webContents.session.clearCache();
});
ipcMain.handle(
'app-check-for-updates',
async (): Promise<{ updateAvailable: boolean; version?: string }> => {
if (disableAutoUpdates()) {
console.log('Auto updates are disabled');
return { updateAvailable: false };
}
try {
console.log('Checking for updates');
const effectiveChannel = store.get('release_channel') as string;
let result: null | UpdateCheckResult;
let updater: UpdaterInstance;
if (effectiveChannel === 'alpha') {
const best = await checkAllChannelsAndGetBest();
result = best.result;
updater = best.updater;
} else {
updater = configureAndGetUpdater();
result = await updater.checkForUpdates();
}
const updateAvailable = result?.isUpdateAvailable ?? false;
console.log('Update available:', updateAvailable);
if (updateAvailable && store.get('disable_auto_updates') !== true) {
if (isMacOS()) {
getMainWindow()?.webContents.send(
'update-available',
result?.updateInfo?.version,
);
} else {
console.log('Downloading update');
updater.downloadUpdate();
}
}
return {
updateAvailable,
version: result?.updateInfo?.version,
};
} catch {
console.log('Error checking for updates');
return { updateAvailable: false };
}
},
);
ipcMain.on('app-restart', () => {
// Fix for .AppImage
if (process.env.APPIMAGE) {
@@ -409,6 +661,7 @@ async function createWindow(first = true): Promise<void> {
mainWindow.on('closed', () => {
ipcMain.removeHandler('window-clear-cache');
ipcMain.removeHandler('app-check-for-updates');
mainWindow = null;
});
@@ -497,6 +750,9 @@ if (shouldDisableMediaFeatures) {
// https://github.com/electron/electron/issues/46538#issuecomment-2808806722
app.commandLine.appendSwitch('gtk-version', '3');
// Enable garbage collection API
app.commandLine.appendSwitch('js-flags', '--expose-gc');
// Must duplicate with the one in renderer process settings.store.ts
enum BindingActions {
GLOBAL_SEARCH = 'globalSearch',
@@ -654,7 +910,7 @@ if (!singleInstance) {
app.whenReady()
.then(() => {
protocol.handle('feishin', async (request) => {
const filePath = `file://${request.url.slice('feishin://'.length)}`;
const filePath = `file:${request.url.slice('feishin:'.length)}`;
const response = await net.fetch(filePath);
const contentType = response.headers.get('content-type');
+18 -2
View File
@@ -21,6 +21,14 @@ export default class MenuBuilder {
selector: 'orderFrontStandardAboutPanel:',
},
{ type: 'separator' },
{
accelerator: 'Command+,',
click: () => {
this.mainWindow.webContents.send('renderer-open-settings');
},
label: 'Settings',
},
{ type: 'separator' },
{ label: 'Services', submenu: [] },
{ type: 'separator' },
{
@@ -151,8 +159,8 @@ export default class MenuBuilder {
return [subMenuAbout, subMenuEdit, subMenuView, subMenuWindow, subMenuHelp];
}
buildDefaultTemplate() {
const templateDefault = [
buildDefaultTemplate(): MenuItemConstructorOptions[] {
const templateDefault: MenuItemConstructorOptions[] = [
{
label: '&File',
submenu: [
@@ -160,6 +168,14 @@ export default class MenuBuilder {
accelerator: 'Ctrl+O',
label: '&Open',
},
{
accelerator: 'Ctrl+,',
click: () => {
this.mainWindow.webContents.send('renderer-open-settings');
},
label: '&Settings...',
},
{ type: 'separator' },
{
accelerator: 'Ctrl+W',
click: () => {
+2
View File
@@ -6,7 +6,9 @@ declare global {
interface Window {
api: PreloadApi;
electron: ElectronAPI;
LEGACY_AUTHENTICATION?: boolean;
queryLocalFonts?: () => Promise<Font[]>;
REMOTE_URL?: string;
SERVER_LOCK?: boolean;
SERVER_NAME?: string;
SERVER_TYPE?: ServerType;
+10
View File
@@ -12,9 +12,19 @@ const invoke = (channel: string, ...args: any[]) => {
return ipcRenderer.invoke(channel, ...args);
};
const on = (channel: string, listener: (event: any, ...args: any[]) => void) => {
ipcRenderer.on(channel, listener);
};
const removeListener = (channel: string, listener: (event: any, ...args: any[]) => void) => {
ipcRenderer.removeListener(channel, listener);
};
export const ipc = {
invoke,
on,
removeAllListeners,
removeListener,
send,
};

Some files were not shown because too many files have changed in this diff Show More